changeset 21:eb3f5c7c990f

small changes.
author pyon@macmini
date Mon, 25 Jul 2011 05:20:55 +0900
parents 39f9f1c7618c
children 05f76f9f9186
files include/ccnframe.h include/common.h makefile src/ccnframe.cpp src/myframe.cpp
diffstat 5 files changed, 250 insertions(+), 122 deletions(-) [+]
line wrap: on
line diff
--- a/include/ccnframe.h	Thu Jul 21 05:38:27 2011 +0900
+++ b/include/ccnframe.h	Mon Jul 25 05:20:55 2011 +0900
@@ -1,9 +1,9 @@
 // Filename   : ccnframe.h
-// Last Change: 18-Jul-2011.
+// Last Change: 22-Jul-2011.
 //
 
-#ifndef __ccnframe__
-#define __ccnframe__
+#ifndef __CCNFRAME__
+#define __CCNFRAME__
 #include "wx/wxprec.h"
 
 #ifndef WX_PRECOMP
@@ -13,6 +13,10 @@
     #include <wx/button.h>
     #include <wx/datectrl.h>
     #include <wx/gbsizer.h>
+    #include "wx/dir.h"
+    #include "wx/regex.h"
+    #include "wx/progdlg.h"
+    #include "wx/stdpaths.h"
 #endif
 
 ///////////////////////////////////////////////////////////////////////////
@@ -44,7 +48,14 @@
 		~FrameCcn();
 
         void InitListCtrl(void);
+
+        void OnSelectYmd(wxListEvent&);
+        void OnSelectCcn(wxListEvent&);
+        void OnPrevThu(wxCommandEvent&);
+        void OnNextThu(wxCommandEvent&);
+        void OnMkIndex(wxCommandEvent&);
+        void OnClose(wxCommandEvent&);
 };
 
-#endif //__ccnframe__
+#endif //__CCNFRAME__
 
--- a/include/common.h	Thu Jul 21 05:38:27 2011 +0900
+++ b/include/common.h	Mon Jul 25 05:20:55 2011 +0900
@@ -1,5 +1,5 @@
 // Filename   : common.h
-// Last Change: 14-Jul-2011.
+// Last Change: 23-Jul-2011.
 //
 #ifndef __COMMON__
 #define __COMMON__
@@ -14,64 +14,64 @@
     // mainframe
     ID_MAIN    = wxID_HIGHEST + 1,
 
-    ID_MUPHHS  = wxID_HIGHEST + 2,
-    ID_MLSCCN  = wxID_HIGHEST + 3,
-    ID_MCHKHHS = wxID_HIGHEST + 4,
-    ID_MDBBKUP = wxID_HIGHEST + 5,
-    ID_MDBOPT  = wxID_HIGHEST + 6,
-    ID_MOAD    = wxID_HIGHEST + 7,
-    ID_MODD    = wxID_HIGHEST + 8,
-    ID_MHELP   = wxID_HIGHEST + 9,
+    ID_MUPHHS,
+    ID_MLSCCN,
+    ID_MCHKHHS,
+    ID_MDBBKUP,
+    ID_MDBOPT,
+    ID_MOAD,
+    ID_MODD,
+    ID_MHELP,
 
-    ID_SRCHHHS = wxID_HIGHEST + 20,
-    ID_DTIDX   = wxID_HIGHEST + 21,
-    ID_MKIDXx  = wxID_HIGHEST + 22,
+    ID_SRCHHHS,
+    ID_DTIDX,
+    ID_MKIDXx,
 
-    ID_SPLT    = wxID_HIGHEST + 23,
-    ID_HTML    = wxID_HIGHEST + 24,
-    ID_HLST    = wxID_HIGHEST + 25,
-    ID_CCNx    = wxID_HIGHEST + 26,
+    ID_SPLT,
+    ID_HTML,
+    ID_HLST,
+    ID_CCNx,
 
-    ID_CMD     = wxID_HIGHEST + 27,
+    ID_CMD,
 
     // ccn
-    ID_FRAMECCN = wxID_HIGHEST + 30,
-    ID_YMD  	= wxID_HIGHEST + 31,
-    ID_CCN  	= wxID_HIGHEST + 32,
-    ID_HHS  	= wxID_HIGHEST + 33,
-    ID_PRVTHU	= wxID_HIGHEST + 34,
-    ID_NXTTHU	= wxID_HIGHEST + 35,
-    ID_DTPICKER	= wxID_HIGHEST + 36,
-    ID_MKIDX	= wxID_HIGHEST + 37,
-    ID_CLOSE	= wxID_HIGHEST + 38,
+    ID_FRAMECCN,
+    ID_YMD,
+    ID_CCN,
+    ID_HHS,
+    ID_PRVTHU,
+    ID_NXTTHU,
+    ID_DTPICKER,
+    ID_MKIDX,
+    ID_CLOSE,
 
     // hhs-db
-    ID_HHSDB   = wxID_HIGHEST + 50,
-    ID_CSVPK   = wxID_HIGHEST + 51,
-    ID_HHSUP   = wxID_HIGHEST + 52,
-    ID_PSWD    = wxID_HIGHEST + 53,
+    ID_HHSDB,
+    ID_CSVPK,
+    ID_HHSUP,
+    ID_PSWD,
 
     // html-help
-    ID_HELP    = wxID_HIGHEST + 60,
+    ID_HELP,
 
-		
     // preview
-    ID_IMGFRM  = wxID_HIGHEST + 70,
-    ID_LSTCTRL = wxID_HIGHEST + 71,
-    ID_IMG1    = wxID_HIGHEST + 72,
-    ID_IMG2	   = wxID_HIGHEST + 73,
-    ID_IMG3	   = wxID_HIGHEST + 74,
-    ID_IMG4    = wxID_HIGHEST + 75,
-    ID_IMG5    = wxID_HIGHEST + 76,
-    ID_IMG     = wxID_HIGHEST + 77,
-    ID_MGNFY   = wxID_HIGHEST + 78,
-    ID_SLDR    = wxID_HIGHEST + 79,
-    ID_EDIT    = wxID_HIGHEST + 80,
-    ID_MASK    = wxID_HIGHEST + 81,
-    ID_PRINT   = wxID_HIGHEST + 82,
-    ID_PRTALL  = wxID_HIGHEST + 83,
-    ID_CLSFRM  = wxID_HIGHEST + 84,
+    ID_IMGFRM,
+    ID_LSTCTRL,
+    ID_IMG1,
+    ID_IMG2,
+    ID_IMG3,
+    ID_IMG4,
+    ID_IMG5,
+    ID_IMG,
+    ID_MGNFY,
+    ID_SLDR,
+    ID_EDIT,
+    ID_MASK,
+    ID_PRINT,
+    ID_PRTALL,
+    ID_CLSFRM,
+
 
 };
-#endif
+#endif  // __COMMON__
 
--- a/makefile	Thu Jul 21 05:38:27 2011 +0900
+++ b/makefile	Mon Jul 25 05:20:55 2011 +0900
@@ -1,6 +1,6 @@
 #
 # Makefile for wxWidgets Application
-#  Last Change: 19-Jul-2011.
+#  Last Change: 23-Jul-2011.
 #  by Takayuki Mutoh
 #
 
@@ -102,7 +102,7 @@
 endif
 
 $(OBJDIR)/main.o: main.cpp main.h myframe.h common.h
-	-mkdir $(OBJDIR)
+	-mkdir -p $(OBJDIR)
 	$(CXX) -c $< -o $@ $(CPPFLAGS)
 
 $(OBJDIR)/myframe.o: myframe.cpp myframe.h symbol.h common.h
--- a/src/ccnframe.cpp	Thu Jul 21 05:38:27 2011 +0900
+++ b/src/ccnframe.cpp	Mon Jul 25 05:20:55 2011 +0900
@@ -1,9 +1,11 @@
 // Filename   : ccnframe.cpp
-// Last Change: 18-Jul-2011.
+// Last Change: 23-Jul-2011.
 //
 
 #include "common.h"
+#include "main.h"
 #include "ccnframe.h"
+#include "wx/wxsqlite3.h"
 
 FrameCcn::FrameCcn( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style )
     : wxFrame( parent, id, title, pos, size, style )
@@ -31,22 +33,22 @@
 	m_staticText3 = new wxStaticText( m_Panel, wxID_ANY, wxT("被保険者"), wxDefaultPosition, wxDefaultSize, 0 );
 	fgSizer->Add( m_staticText3, 0, wxALL, 5 );
 	
-	m_listCtrlYmd = new wxListCtrl( m_Panel, ID_YMD, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL );
+	m_listCtrlYmd = new wxListCtrl( m_Panel, ID_YMD, wxDefaultPosition, wxSize( 220, -1 ), wxLC_REPORT|wxLC_SINGLE_SEL );
 	fgSizer->Add( m_listCtrlYmd, 1, wxALL|wxEXPAND, 5 );
 	
 	m_staticText4 = new wxStaticText( m_Panel, wxID_ANY, wxT("→"), wxDefaultPosition, wxDefaultSize, 0 );
 	fgSizer->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
 	
-	m_listCtrlCcn = new wxListCtrl( m_Panel, ID_CCN, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL );
+	m_listCtrlCcn = new wxListCtrl( m_Panel, ID_CCN, wxDefaultPosition, wxSize( 220, -1 ), wxLC_REPORT|wxLC_SINGLE_SEL );
 	fgSizer->Add( m_listCtrlCcn, 1, wxALL|wxEXPAND, 5 );
 	
 	m_staticText5 = new wxStaticText( m_Panel, wxID_ANY, wxT("→"), wxDefaultPosition, wxDefaultSize, 0 );
 	fgSizer->Add( m_staticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
 	
-	m_listCtrlHhs = new wxListCtrl( m_Panel, ID_HHS, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL );
+	m_listCtrlHhs = new wxListCtrl( m_Panel, ID_HHS, wxDefaultPosition, wxSize( 220, -1 ), wxLC_REPORT|wxLC_SINGLE_SEL );
 	fgSizer->Add( m_listCtrlHhs, 1, wxALL|wxEXPAND, 5 );
 	
-	bSizer->Add( fgSizer, 1, wxEXPAND, 5 );
+	bSizer->Add( fgSizer, 1, wxEXPAND|wxALL, 5 );
 	
     // Index作成
 	wxGridBagSizer* gbSizer = new wxGridBagSizer( 0, 0 );
@@ -60,7 +62,7 @@
 	m_btnNextThu = new wxButton( m_Panel, ID_NXTTHU, wxT("次木 >>"), wxDefaultPosition, wxDefaultSize, 0 );
 	gbSizer->Add( m_btnNextThu, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
 	
-	m_datePicker = new wxDatePickerCtrl( m_Panel, ID_DTPICKER, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_SHOWCENTURY );
+	m_datePicker = new wxDatePickerCtrl( m_Panel, ID_DTPICKER, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN|wxDP_SHOWCENTURY );
 	gbSizer->Add( m_datePicker, wxGBPosition( 1, 0 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER|wxALL, 5 );
 	
 	m_btnMkIdX = new wxButton( m_Panel, ID_MKIDX, wxT("作成"), wxDefaultPosition, wxDefaultSize, 0 );
@@ -69,11 +71,12 @@
 	m_btnClose = new wxButton( m_Panel, ID_CLOSE, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
 	gbSizer->Add( m_btnClose, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_BOTTOM|wxALL, 5 );
 	
-	bSizer->Add( gbSizer, 0, wxEXPAND, 5 );
+	bSizer->Add( gbSizer, 0, wxEXPAND|wxALL, 5 );
 	
 	m_Panel->SetSizer( bSizer );
 	m_Panel->Layout();
 	
+    this->SetSize( 1000, 400 );
 	this->Centre( wxBOTH );
     InitListCtrl();
 }
@@ -85,10 +88,151 @@
 
 // Event Table
 BEGIN_EVENT_TABLE( FrameCcn, wxFrame )
-	//EVT_TEXT_ENTER( ID_CMD, MyCmdBox::OnCmd )
+    EVT_LIST_ITEM_SELECTED( ID_YMD, FrameCcn::OnSelectYmd )
+    EVT_LIST_ITEM_SELECTED( ID_CCN, FrameCcn::OnSelectCcn )
+    EVT_BUTTON( ID_PRVTHU, FrameCcn::OnPrevThu )
+    EVT_BUTTON( ID_NXTTHU, FrameCcn::OnNextThu )
+    EVT_BUTTON( ID_MKIDX,  FrameCcn::OnMkIndex )
+    EVT_BUTTON( ID_CLOSE,  FrameCcn::OnClose )
 END_EVENT_TABLE()
 
 // Event Handlers
+void FrameCcn::OnSelectYmd(wxListEvent& WXUNUSED(event))
+{
+    m_listCtrlCcn->DeleteAllItems();
+
+    wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
+    wxSQLite3Database ccndb;
+    ccndb.Open( gszFile );
+
+    wxSQLite3Statement stmt = ccndb.PrepareStatement("SELECT path FROM path WHERE hhsno = ?");
+    stmt.Bind( 1, wxT("0300012345") );
+    wxSQLite3ResultSet q = stmt.ExecuteQuery();
+    if ( q.IsNull(0) ) {
+        return;
+    }
+    long r=0;
+    while ( q.NextRow() ) {
+        wxString ccn = q.GetString(0);
+        //wxString cnt = q.GetString(1);
+        m_listCtrlCcn->InsertItem( r, ccn );
+        //m_listCtrlCcn->SetItem( r, 1, cnt, -1 );
+        r++;
+    }
+    stmt.Finalize();
+    ccndb.Close();
+}
+
+void FrameCcn::OnSelectCcn(wxListEvent& WXUNUSED(event))
+{
+    m_listCtrlHhs->DeleteAllItems();
+
+    wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
+    wxSQLite3Database ccndb;
+    ccndb.Open( gszFile );
+
+    wxSQLite3Statement stmt = ccndb.PrepareStatement("SELECT ymd, MAX(time) FROM ccn GROUP BY ymd ORDER BY ymd DESC, time DESC");
+    wxSQLite3ResultSet q = stmt.ExecuteQuery();
+    long r=0;
+    while ( q.NextRow() ) {
+        wxString ymd  = q.GetString(0);
+        wxString time = q.GetString(1);
+        m_listCtrlHhs->InsertItem( r, wxEmptyString );
+        m_listCtrlHhs->SetItemText( r, ymd );
+        r++;
+    }
+
+    stmt.Finalize();
+    ccndb.Close();
+}
+
+// 前木
+void FrameCcn::OnPrevThu(wxCommandEvent& WXUNUSED(event))
+{
+	wxDateTime dt = m_datePicker->GetValue();
+    wxDateSpan ds( 0, 0, 0, 1 );
+    dt -= ds;
+    dt.SetToPrevWeekDay( wxDateTime::Thu );
+    m_datePicker->SetValue( dt );
+
+}
+// 次木
+void FrameCcn::OnNextThu(wxCommandEvent& WXUNUSED(event))
+{
+	wxDateTime dt = m_datePicker->GetValue();
+    wxDateSpan ds( 0, 0, 0, 1 );
+    dt += ds;
+    dt.SetToNextWeekDay( wxDateTime::Thu );
+    m_datePicker->SetValue( dt );
+}
+
+/* インデックス作成 */
+void FrameCcn::OnMkIndex(wxCommandEvent& WXUNUSED(event))
+{
+	wxDateTime dt = m_datePicker->GetValue();
+    wxString month = dt.Format(wxT("%m"));
+    wxString year  = dt.Format(wxT("%Y"));
+    if ( month.IsSameAs(wxT("01")) || month.IsSameAs(wxT("02")) || month.IsSameAs(wxT("03")) ) {
+        long y;
+        year.ToLong( &y, 10 );
+        y--;
+        year = wxString::Format(wxT("%d"),y);
+    }
+    wxString pathroot = wxGetApp().rootdir + wxFILE_SEP_PATH + year + dt.Format(wxT("\\%Y%m%d"));
+    wxDir rootd(pathroot);
+    if ( !wxDir::Exists(pathroot) ) {
+        wxMessageBox( wxT("フォルダが存在しません.")+pathroot );
+        return;
+    }
+
+    wxProgressDialog pd( wxT("進行状況"), wxT("処理開始..."), 200, this, wxPD_APP_MODAL|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE );
+    pd.SetSize( wxSize(320,140) );
+    int count=0;
+
+    wxString ccndir;
+    bool cont = rootd.GetFirst( &ccndir, wxT("*.*"), wxDIR_DIRS );
+    while ( cont ) {
+        wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
+        wxSQLite3Database ccndb;
+        ccndb.Open( gszFile );
+
+        wxSQLite3Statement stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO ccn VALUES( ?, datetime('now','localtime') )");
+        stmt.Bind( 1, dt.Format(wxT("%Y-%m-%d")) );
+        stmt.ExecuteQuery();
+
+        stmt.Finalize();
+
+        wxDir ccnd( pathroot + wxFILE_SEP_PATH + ccndir );
+        if ( !ccnd.IsOpened() ) return;
+        wxString hhsdir;
+        bool c = ccnd.GetFirst( &hhsdir, wxT("*.*"), wxDIR_DIRS );
+	    wxRegEx reHhs(wxT("^0[1238][0-9]{8}$"));	// 被保番チェック
+        while ( c ) {
+            if ( reHhs.Matches(hhsdir) ) {
+                wxString path = pathroot + wxFILE_SEP_PATH + ccndir + wxFILE_SEP_PATH + hhsdir;
+
+                stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO path VALUES( ?, ? )");
+                stmt.Bind( 1, hhsdir );
+                stmt.Bind( 2, path );
+                stmt.ExecuteQuery();
+
+                stmt.Finalize();
+            }
+            c = ccnd.GetNext(&hhsdir);
+            pd.Update( count++, hhsdir+wxT("@")+ccndir+wxT("を処理しました.") );
+        }
+        ccndb.Close();
+
+        cont = rootd.GetNext(&ccndir);
+    }
+    wxMessageBox(wxT("インデックス作成が終了しました."));
+}
+
+// 閉じる
+void FrameCcn::OnClose(wxCommandEvent& WXUNUSED(event))
+{
+    this->Close();
+}
 
 // Functions
 void FrameCcn::InitListCtrl()
@@ -97,6 +241,9 @@
     itemCol.SetText( wxT("年-月-日") );
     m_listCtrlYmd->InsertColumn( 0, itemCol );
     m_listCtrlYmd->SetColumnWidth( 0, 100 );
+    itemCol.SetText( wxT("更新時刻") );
+    m_listCtrlYmd->InsertColumn( 1, itemCol );
+    m_listCtrlYmd->SetColumnWidth( 1, 200 );
 
     itemCol.SetText( wxT("合議体名") );
     m_listCtrlCcn->InsertColumn( 0, itemCol );
@@ -104,9 +251,6 @@
     itemCol.SetText( wxT("件数") );
     m_listCtrlCcn->InsertColumn( 1, itemCol );
     m_listCtrlCcn->SetColumnWidth( 1, 100 );
-    itemCol.SetText( wxT("更新時刻") );
-    m_listCtrlCcn->InsertColumn( 2, itemCol );
-    m_listCtrlCcn->SetColumnWidth( 2, 100 );
 
     itemCol.SetText( wxT("被保険者番号") );
     m_listCtrlHhs->InsertColumn( 0, itemCol );
@@ -115,6 +259,25 @@
     m_listCtrlHhs->InsertColumn( 1, itemCol );
     m_listCtrlHhs->SetColumnWidth( 1, 100 );
 
-    m_listCtrlYmd->InsertItem( 0, wxT("aaa") );
+    // read from db
+    m_listCtrlCcn->DeleteAllItems();
+
+    wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
+    wxSQLite3Database ccndb;
+    ccndb.Open( gszFile );
+
+    wxSQLite3Statement stmt = ccndb.PrepareStatement("SELECT ymd, MAX(time) FROM ccn GROUP BY ymd ORDER BY ymd DESC, time DESC");
+    wxSQLite3ResultSet q = stmt.ExecuteQuery();
+    long r=0;
+    while ( q.NextRow() ) {
+        wxString ymd  = q.GetString(0);
+        wxString time = q.GetString(1);
+        m_listCtrlYmd->InsertItem( r, ymd );
+        m_listCtrlYmd->SetItem( r, 1, time, -1 );
+        r++;
+    }
+
+    stmt.Finalize();
+    ccndb.Close();
 }
 
--- a/src/myframe.cpp	Thu Jul 21 05:38:27 2011 +0900
+++ b/src/myframe.cpp	Mon Jul 25 05:20:55 2011 +0900
@@ -1,5 +1,5 @@
 // Filename   : mainframe.cpp
-// Last Change: 06-Jul-2011.
+// Last Change: 22-Jul-2011.
 //
 #include "wx/html/htmprint.h"
 #include "wx/print.h"
@@ -7,6 +7,7 @@
 #include "symbol.h"
 #include "common.h"
 #include "myframe.h"
+#include "ccnframe.h"
 #include "hhsdb.h"
 #include "htmlhelp.h"
 #include "main.h"
@@ -714,63 +715,16 @@
 /* インデックス作成 */
 void MyFrame::OnMkIndex(wxCommandEvent& WXUNUSED(event))
 {
-	wxDateTime dt = m_datePicker->GetValue();
-    wxString month = dt.Format(wxT("%m"));
-    wxString year  = dt.Format(wxT("%Y"));
-    if ( month.IsSameAs(wxT("01")) || month.IsSameAs(wxT("02")) || month.IsSameAs(wxT("03")) ) {
-        long y;
-        year.ToLong( &y, 10 );
-        y--;
-        year = wxString::Format(wxT("%d"),y);
-    }
-    wxString pathroot = wxGetApp().rootdir + wxFILE_SEP_PATH + year + dt.Format(wxT("\\%Y%m%d"));
-    wxDir rootd(pathroot);
-    if ( !wxDir::Exists(pathroot) ) {
-        wxMessageBox( wxT("フォルダが存在しません.")+pathroot );
-        return;
-    }
-
-    wxProgressDialog pd( wxT("進行状況"), wxT("処理開始..."), 200, this, wxPD_APP_MODAL|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE );
-    pd.SetSize( wxSize(320,140) );
-    int count=0;
-
-    wxString ccndir;
-    bool cont = rootd.GetFirst( &ccndir, wxT("*.*"), wxDIR_DIRS );
-    while ( cont ) {
-        wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
-        wxSQLite3Database ccndb;
-        ccndb.Open( gszFile );
+    FrameHhsDB *f = (FrameHhsDB*)FindWindowById( ID_HHSDB );
 
-        wxSQLite3Statement stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO ccn VALUES( ?, datetime('now','localtime') )");
-        stmt.Bind( 1, dt.Format(wxT("%Y-%m-%d")) );
-        stmt.ExecuteQuery();
-
-        stmt.Finalize();
-
-        wxDir ccnd( pathroot + wxFILE_SEP_PATH + ccndir );
-        if ( !ccnd.IsOpened() ) return;
-        wxString hhsdir;
-        bool c = ccnd.GetFirst( &hhsdir, wxT("*.*"), wxDIR_DIRS );
-	    wxRegEx reHhs(wxT("^0[1238][0-9]{8}$"));	// 被保番チェック
-        while ( c ) {
-            if ( reHhs.Matches(hhsdir) ) {
-                wxString path = pathroot + wxFILE_SEP_PATH + ccndir + wxFILE_SEP_PATH + hhsdir;
-
-                stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO path VALUES( ?, ? )");
-                stmt.Bind( 1, hhsdir );
-                stmt.Bind( 2, path );
-                stmt.ExecuteQuery();
-
-                stmt.Finalize();
-            }
-            c = ccnd.GetNext(&hhsdir);
-            pd.Update( count++, hhsdir+wxT("@")+ccndir+wxT("を処理しました.") );
-        }
-        ccndb.Close();
-
-        cont = rootd.GetNext(&ccndir);
+    if ( f == NULL ) {
+        FrameHhsDB *hhsdb = new FrameHhsDB( this, ID_HHSDB ); 
+        hhsdb->Show(true);
     }
-    wxMessageBox(wxT("インデックス作成が終了しました."));
+    else {
+        f->Raise();
+    }
+    return;
 }
 
 /* インデックス更新一覧 */