# HG changeset patch
# User pyon@macmini
# Date 1311760869 -32400
# Node ID 05f76f9f9186de525c5aecff0381030c7c30a0e7
# Parent eb3f5c7c990f5f1b115f8b57ba495ec77ea2aa49
index buttons move to main-frame.
diff -r eb3f5c7c990f -r 05f76f9f9186 html/start.html
--- a/html/start.html Mon Jul 25 05:20:55 2011 +0900
+++ b/html/start.html Wed Jul 27 19:01:09 2011 +0900
@@ -17,8 +17,11 @@
年月日 | バージョン | 内容 |
+ 2011.08.02 | 2.12 | 木曜日簡単選択ボタン追加 |
+ | | 審査会一覧を別フォームで表示 |
+ 2011.07.08 | 2.11 | 細かい修正 |
2011.07.01 | 2.10 | イージープリント機能搭載 |
2011.06.30 | 2.9 | のぞき窓搭載 |
2011.04.01 | 2.8 | 細かい機能追加 |
diff -r eb3f5c7c990f -r 05f76f9f9186 include/ccnframe.h
--- a/include/ccnframe.h Mon Jul 25 05:20:55 2011 +0900
+++ b/include/ccnframe.h Wed Jul 27 19:01:09 2011 +0900
@@ -1,5 +1,5 @@
// Filename : ccnframe.h
-// Last Change: 22-Jul-2011.
+// Last Change: 26-Jul-2011.
//
#ifndef __CCNFRAME__
@@ -37,10 +37,6 @@
wxListCtrl* m_listCtrlCcn;
wxStaticText* m_staticText5;
wxListCtrl* m_listCtrlHhs;
- wxButton* m_btnPrevThu;
- wxButton* m_btnNextThu;
- wxDatePickerCtrl* m_datePicker;
- wxButton* m_btnMkIdX;
wxButton* m_btnClose;
public:
@@ -51,9 +47,6 @@
void OnSelectYmd(wxListEvent&);
void OnSelectCcn(wxListEvent&);
- void OnPrevThu(wxCommandEvent&);
- void OnNextThu(wxCommandEvent&);
- void OnMkIndex(wxCommandEvent&);
void OnClose(wxCommandEvent&);
};
diff -r eb3f5c7c990f -r 05f76f9f9186 include/common.h
--- a/include/common.h Mon Jul 25 05:20:55 2011 +0900
+++ b/include/common.h Wed Jul 27 19:01:09 2011 +0900
@@ -1,5 +1,5 @@
// Filename : common.h
-// Last Change: 23-Jul-2011.
+// Last Change: 26-Jul-2011.
//
#ifndef __COMMON__
#define __COMMON__
@@ -15,23 +15,20 @@
ID_MAIN = wxID_HIGHEST + 1,
ID_MUPHHS,
- ID_MLSCCN,
ID_MCHKHHS,
ID_MDBBKUP,
ID_MDBOPT,
- ID_MOAD,
- ID_MODD,
+ ID_MOPAD,
+ ID_MOPDD,
ID_MHELP,
- ID_SRCHHHS,
- ID_DTIDX,
- ID_MKIDXx,
+ ID_PRVTHU,
+ ID_NXTTHU,
+ ID_DTPICKER,
+ ID_MKIDX,
+ ID_LSCCN,
- ID_SPLT,
ID_HTML,
- ID_HLST,
- ID_CCNx,
-
ID_CMD,
// ccn
@@ -39,10 +36,6 @@
ID_YMD,
ID_CCN,
ID_HHS,
- ID_PRVTHU,
- ID_NXTTHU,
- ID_DTPICKER,
- ID_MKIDX,
ID_CLOSE,
// hhs-db
@@ -70,8 +63,6 @@
ID_PRINT,
ID_PRTALL,
ID_CLSFRM,
-
-
};
#endif // __COMMON__
diff -r eb3f5c7c990f -r 05f76f9f9186 include/myframe.h
--- a/include/myframe.h Mon Jul 25 05:20:55 2011 +0900
+++ b/include/myframe.h Wed Jul 27 19:01:09 2011 +0900
@@ -1,5 +1,5 @@
// Filename : myframe.h
-// Last Change: 06-Jul-2011.
+// Last Change: 27-Jul-2011.
//
#ifndef MYFRAME
#define MYFRAME
@@ -24,6 +24,7 @@
//////////////////////////////////////////////////////////////////////////
class MyCmdBox : public wxTextCtrl
{
+private:
DECLARE_EVENT_TABLE()
public:
MyCmdBox( wxWindow *parent, wxWindowID id, const wxString value, const wxPoint pos, const wxSize size, long style );
@@ -54,30 +55,31 @@
wxToolBar* m_toolBar;
wxStatusBar* m_statusBar;
+ wxPanel* m_panel;
wxPanel* m_panelHead;
wxStaticText* m_staticTextHname;
- wxSearchCtrl* m_searchCtrlHname;
wxStaticText* m_staticTextIdx;
- wxStaticBitmap* m_bitmapMkidx;
+ wxButton* m_btnPrevThu;
+ wxButton* m_btnNextThu;
wxDatePickerCtrl* m_datePicker;
- wxButton* m_buttonMkidx;
+ wxButton* m_btnMkIdx;
+ wxButton* m_btnLsCcn;
- wxSplitterWindow* m_splitter;
wxHtmlWindow* m_html;
- wxGrid* m_gridHhs;
- wxGrid* m_gridCcn;
wxPanel* m_panelCmd;
wxStaticText* m_staticTextCmd;
MyCmdBox* m_cmdbox;
-
MyFrame( wxWindow* parent, wxWindowID id, const wxString& title );
~MyFrame();
+ void OnSize( wxSizeEvent& event );
+ void OnMove( wxMoveEvent& event );
void OnQuit( wxCommandEvent& event );
void OnAbout( wxCommandEvent& event );
void OnHelp( wxCommandEvent& event );
+ void SaveConfig( wxCloseEvent& event );
void OnListCcn( wxCommandEvent& event );
void OnCheckHhs( wxCommandEvent& event );
void OnBackupDB( wxCommandEvent& event );
@@ -85,10 +87,9 @@
void OnOpenAppDir( wxCommandEvent& event );
void OnOpenDataDir( wxCommandEvent& event );
void OnUpdateHhsDb( wxCommandEvent& event );
-
- //void OnHhsSearch( wxCommandEvent& event ); after version 2.11
+ void OnPrevThu( wxCommandEvent& event );
+ void OnNextThu( wxCommandEvent& event );
void OnMkIndex( wxCommandEvent& event );
- void SaveConfig( wxCloseEvent& event );
};
#endif
diff -r eb3f5c7c990f -r 05f76f9f9186 include/symbol.h
--- a/include/symbol.h Mon Jul 25 05:20:55 2011 +0900
+++ b/include/symbol.h Wed Jul 27 19:01:09 2011 +0900
@@ -1,10 +1,10 @@
// Filename : symbol.h
-// Last Change: 06-Jul-2011.
+// Last Change: 26-Jul-2011.
//
#define MYAPPNAME wxT("Searcher2")
#define VER 2
-#define REV 11
-#define BLD 20110708
+#define REV 12
+#define BLD 20110802
diff -r eb3f5c7c990f -r 05f76f9f9186 src/ccnframe.cpp
--- a/src/ccnframe.cpp Mon Jul 25 05:20:55 2011 +0900
+++ b/src/ccnframe.cpp Wed Jul 27 19:01:09 2011 +0900
@@ -1,5 +1,5 @@
// Filename : ccnframe.cpp
-// Last Change: 23-Jul-2011.
+// Last Change: 27-Jul-2011.
//
#include "common.h"
@@ -17,23 +17,22 @@
bSizer = new wxBoxSizer( wxHORIZONTAL );
// DB表示
- wxFlexGridSizer* fgSizer = new wxFlexGridSizer( 2, 5, 0, 0 );
+ wxFlexGridSizer* fgSizer = new wxFlexGridSizer( 2, 6, 0, 0 );
fgSizer->AddGrowableRow(1);
m_staticText1 = new wxStaticText( m_Panel, wxID_ANY, wxT("開催年月日"), wxDefaultPosition, wxDefaultSize, 0 );
fgSizer->Add( m_staticText1, 0, wxALL, 5 );
-
fgSizer->Add( 0, 0, 1, wxEXPAND, 5 );
m_staticText2 = new wxStaticText( m_Panel, wxID_ANY, wxT("合議体"), wxDefaultPosition, wxDefaultSize, 0 );
fgSizer->Add( m_staticText2, 0, wxALL, 5 );
-
fgSizer->Add( 0, 0, 1, wxEXPAND, 5 );
m_staticText3 = new wxStaticText( m_Panel, wxID_ANY, wxT("被保険者"), wxDefaultPosition, wxDefaultSize, 0 );
fgSizer->Add( m_staticText3, 0, wxALL, 5 );
+ fgSizer->Add( 0, 0, 1, wxEXPAND, 5 );
- m_listCtrlYmd = new wxListCtrl( m_Panel, ID_YMD, wxDefaultPosition, wxSize( 220, -1 ), wxLC_REPORT|wxLC_SINGLE_SEL );
+ m_listCtrlYmd = new wxListCtrl( m_Panel, ID_YMD, wxDefaultPosition, wxSize( 300, -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 );
@@ -48,35 +47,16 @@
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|wxALL, 5 );
-
- // Index作成
- wxGridBagSizer* gbSizer = new wxGridBagSizer( 0, 0 );
- gbSizer->SetFlexibleDirection( wxVERTICAL );
- gbSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- gbSizer->AddGrowableRow(3);
-
- m_btnPrevThu = new wxButton( m_Panel, ID_PRVTHU, wxT("<< 前木"), wxDefaultPosition, wxDefaultSize, 0 );
- gbSizer->Add( m_btnPrevThu, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
+ m_btnClose = new wxButton( m_Panel, ID_CLOSE, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer->Add( m_btnClose, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL, 5 );
+ m_btnClose->SetFocus();
- 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_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 );
- gbSizer->Add( m_btnMkIdX, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALL, 5 );
-
- 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|wxALL, 5 );
+ bSizer->Add( fgSizer, 1, wxEXPAND|wxALL, 5 );
m_Panel->SetSizer( bSizer );
m_Panel->Layout();
- this->SetSize( 1000, 400 );
+ this->SetSize( 1000, 500 );
this->Centre( wxBOTH );
InitListCtrl();
}
@@ -90,32 +70,33 @@
BEGIN_EVENT_TABLE( FrameCcn, wxFrame )
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))
+void FrameCcn::OnSelectYmd(wxListEvent& event)
{
- m_listCtrlCcn->DeleteAllItems();
+ long i = event.GetIndex();
+ wxString ymd = m_listCtrlYmd->GetItemText( i );
+ ymd.Replace( wxT("-"), wxEmptyString, true );
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") );
+ wxSQLite3Statement stmt = ccndb.PrepareStatement("SELECT hhsno, path FROM path WHERE path LIKE ?");
+ stmt.Bind( 1, wxT("08") );
wxSQLite3ResultSet q = stmt.ExecuteQuery();
if ( q.IsNull(0) ) {
return;
}
+
long r=0;
while ( q.NextRow() ) {
- wxString ccn = q.GetString(0);
+ wxMessageBox(wxT("aaa"));
+ wxString hhsno = q.GetString(0);
//wxString cnt = q.GetString(1);
- m_listCtrlCcn->InsertItem( r, ccn );
+ m_listCtrlHhs->InsertItem( r, hhsno );
//m_listCtrlCcn->SetItem( r, 1, cnt, -1 );
r++;
}
@@ -146,88 +127,6 @@
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))
{
@@ -243,7 +142,7 @@
m_listCtrlYmd->SetColumnWidth( 0, 100 );
itemCol.SetText( wxT("更新時刻") );
m_listCtrlYmd->InsertColumn( 1, itemCol );
- m_listCtrlYmd->SetColumnWidth( 1, 200 );
+ m_listCtrlYmd->SetColumnWidth( 1, 180 );
itemCol.SetText( wxT("合議体名") );
m_listCtrlCcn->InsertColumn( 0, itemCol );
@@ -259,7 +158,7 @@
m_listCtrlHhs->InsertColumn( 1, itemCol );
m_listCtrlHhs->SetColumnWidth( 1, 100 );
- // read from db
+ // Ymd: read from db
m_listCtrlCcn->DeleteAllItems();
wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
@@ -274,10 +173,34 @@
wxString time = q.GetString(1);
m_listCtrlYmd->InsertItem( r, ymd );
m_listCtrlYmd->SetItem( r, 1, time, -1 );
+ if ( r % 2 )
+ m_listCtrlYmd->SetItemBackgroundColour( r, wxColour(wxT("WHEAT")) );
r++;
}
stmt.Finalize();
ccndb.Close();
+
+ // Ccn
+ m_listCtrlCcn->InsertItem( 0, wxT("六郷1") );
+ m_listCtrlCcn->InsertItem( 1, wxT("六郷2") );
+ m_listCtrlCcn->InsertItem( 2, wxT("六郷3") );
+ m_listCtrlCcn->InsertItem( 3, wxT("千畑1") );
+ m_listCtrlCcn->InsertItem( 4, wxT("千畑2") );
+ m_listCtrlCcn->InsertItem( 5, wxT("千畑3") );
+ m_listCtrlCcn->InsertItem( 6, wxT("大曲1") );
+ m_listCtrlCcn->InsertItem( 7, wxT("大曲2") );
+ m_listCtrlCcn->InsertItem( 8, wxT("大曲3") );
+ m_listCtrlCcn->InsertItem( 9, wxT("大曲4") );
+ m_listCtrlCcn->InsertItem( 10, wxT("大曲5") );
+ m_listCtrlCcn->InsertItem( 11, wxT("大曲6") );
+ m_listCtrlCcn->InsertItem( 12, wxT("西仙1") );
+ m_listCtrlCcn->InsertItem( 13, wxT("西仙2") );
+ m_listCtrlCcn->InsertItem( 14, wxT("西仙3") );
+ m_listCtrlCcn->InsertItem( 15, wxT("角館1") );
+ m_listCtrlCcn->InsertItem( 16, wxT("角館2") );
+ m_listCtrlCcn->InsertItem( 17, wxT("角館3") );
+ m_listCtrlCcn->InsertItem( 18, wxT("角館4") );
+ m_listCtrlCcn->InsertItem( 19, wxT("合計") );
}
diff -r eb3f5c7c990f -r 05f76f9f9186 src/main.cpp
--- a/src/main.cpp Mon Jul 25 05:20:55 2011 +0900
+++ b/src/main.cpp Wed Jul 27 19:01:09 2011 +0900
@@ -1,5 +1,5 @@
// Filename : main.cpp
-// Last Change: 18-Jul-2011.
+// Last Change: 26-Jul-2011.
//
#include "common.h"
@@ -26,15 +26,9 @@
ConfInit();
- /*
MyFrame *mainframe = new MyFrame( NULL, ID_MAIN, wxT("Searcher v2") );
mainframe->SetSize( rect );
mainframe->Show(true);
- */
-
- //FrameCcn *a = new FrameCcn( NULL, ID_CCN, wxEmptyString, wxDefaultPosition, wxSize( 512,394 ), wxCAPTION|wxFRAME_NO_TASKBAR|wxTAB_TRAVERSAL );
- FrameCcn *a = new FrameCcn( NULL, ID_CCN, wxEmptyString );
- a->Show(true);
return true;
}
diff -r eb3f5c7c990f -r 05f76f9f9186 src/myframe.cpp
--- a/src/myframe.cpp Mon Jul 25 05:20:55 2011 +0900
+++ b/src/myframe.cpp Wed Jul 27 19:01:09 2011 +0900
@@ -1,5 +1,5 @@
// Filename : mainframe.cpp
-// Last Change: 22-Jul-2011.
+// Last Change: 27-Jul-2011.
//
#include "wx/html/htmprint.h"
#include "wx/print.h"
@@ -157,13 +157,6 @@
void MyCmdBox::OnCmd( wxCommandEvent& event )
{
- wxHtmlWindow *h = (wxHtmlWindow*)FindWindowById( ID_HTML );
- wxGrid *g = (wxGrid*)FindWindowById( ID_CCN );
- wxSplitterWindow *s = (wxSplitterWindow*)FindWindowById( ID_SPLT );
- s->ReplaceWindow( h, g );
- h->Show(true);
- g->Show(false);
-
wxRegEx reHhs(wxT("^0[1238][0-9]{8}$")); // 1:被保番チェック
wxRegEx reCno(wxT("^[0-9]{1,2}$")); // 2:開くフォルダの番号
wxRegEx rePrint(wxT("^\\+$")); // 3:印刷するフォルダの番号
@@ -448,11 +441,9 @@
m_menubar = new wxMenuBar();
m_menuFile = new wxMenu();
- m_menuFile->Append( ID_MUPHHS, wxT("被保険者DB更新"), wxT("Update hhs-db") );
- m_menuFile->Append( ID_MLSCCN, wxT("インデックス更新一覧"), wxT("List index") );
- m_menuFile->AppendSeparator(); //----
wxMenu *menuMaintain = new wxMenu();
m_menuFile->AppendSubMenu( menuMaintain, wxT("メンテナンス") );
+ menuMaintain->Append( ID_MUPHHS, wxT("被保険者DB更新"), wxT("Update hhs-db") );
menuMaintain->Append( ID_MDBBKUP, wxT("データベースバックアップ"), wxT("Backup DBs") );
menuMaintain->Append( ID_MDBOPT, wxT("データベース最適化"), wxT("Optimize DBs") );
menuMaintain->Enable( ID_MDBOPT, false );
@@ -460,8 +451,8 @@
m_menuFile->AppendSeparator(); //----
wxMenu *menuOpendir = new wxMenu();
m_menuFile->AppendSubMenu( menuOpendir, wxT("フォルダを開く") );
- menuOpendir->Append( ID_MOAD, wxT("アプリケーションフォルダ"), wxT("Open App Folder") );
- menuOpendir->Append( ID_MODD, wxT("データフォルダ"), wxT("Open Data Folder") );
+ menuOpendir->Append( ID_MOPAD, wxT("アプリケーションフォルダ"), wxT("Open App Folder") );
+ menuOpendir->Append( ID_MOPDD, wxT("データフォルダ"), wxT("Open Data Folder") );
m_menuFile->AppendSeparator(); //----
m_menuFile->Append( wxID_EXIT, wxT("終了(&X)\tAlt-X"), wxT("Quit this program") );
@@ -488,102 +479,45 @@
wxBoxSizer* bSizer;
bSizer = new wxBoxSizer( wxVERTICAL );
+ m_panel = new wxPanel( this );
+ wxBoxSizer* bSizerPanel;
+ bSizerPanel = new wxBoxSizer( wxVERTICAL );
+
// controls here
- m_panelHead = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize );
+ m_panelHead = new wxPanel( m_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize );
wxBoxSizer* bSizerHead;
bSizerHead = new wxBoxSizer( wxHORIZONTAL );
- /* after version 2.11
- m_staticTextHname = new wxStaticText( m_panelHead, wxID_ANY, wxT("氏名カナ検索"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizerHead->Add( m_staticTextHname, 0, wxALL, 5 );
-
- m_searchCtrlHname = new wxSearchCtrl( m_panelHead, ID_SRCHHHS, wxT("3字以上入力"), wxDefaultPosition, wxSize(200,20), 0 );
- #ifndef __WXMAC__
- m_searchCtrlHname->ShowSearchButton( true );
- #endif
- bSizerHead->Add( m_searchCtrlHname, 0, wxALL, 1 );
-
- m_bitmapMkidx = new wxStaticBitmap( m_panelHead, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerHead->Add( m_bitmapMkidx, 0, wxALL, 1 );
- */
-
bSizerHead->AddStretchSpacer( 1 ); // spacer
-
m_staticTextIdx = new wxStaticText( m_panelHead, wxID_ANY, wxT("インデックス"), wxDefaultPosition, wxDefaultSize, 0 );
bSizerHead->Add( m_staticTextIdx, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_datePicker = new wxDatePickerCtrl( m_panelHead, ID_DTIDX, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_SHOWCENTURY|wxDP_DROPDOWN );
- bSizerHead->Add( m_datePicker, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_btnLsCcn = new wxButton( m_panelHead, ID_LSCCN, wxT("一覧"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerHead->Add( m_btnLsCcn, 0, wxALL, 5 );
+
+ m_btnPrevThu = new wxButton( m_panelHead, ID_PRVTHU, wxT("<< 前木"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerHead->Add( m_btnPrevThu, 0, wxALL, 5 );
- m_buttonMkidx = new wxButton( m_panelHead, ID_MKIDX, wxT("作成"), wxDefaultPosition, wxSize(50,25), 0 );
- bSizerHead->Add( m_buttonMkidx, 0, wxALL, 5 );
+ m_datePicker = new wxDatePickerCtrl( m_panelHead, ID_DTPICKER, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN|wxDP_SHOWCENTURY );
+ bSizerHead->Add( m_datePicker, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_btnNextThu = new wxButton( m_panelHead, ID_NXTTHU, wxT("次木 >>"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerHead->Add( m_btnNextThu, 0, wxALL, 5 );
+ m_btnMkIdx = new wxButton( m_panelHead, ID_MKIDX, wxT("作成"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerHead->Add( m_btnMkIdx, 0, wxALL, 5 );
+
m_panelHead->SetSizer( bSizerHead );
m_panelHead->Layout();
bSizerHead->Fit( m_panelHead );
- // メインペイン
- wxBoxSizer* bSizerHtml;
- bSizerHtml = new wxBoxSizer( wxVERTICAL );
- m_splitter = new wxSplitterWindow( this, ID_SPLT, wxDefaultPosition, wxDefaultSize, 0 );
-
// 検索結果Html
- m_html = new wxHtmlWindow( m_splitter, ID_HTML, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );
+ m_html = new wxHtmlWindow( m_panel, ID_HTML, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );
m_html->LoadPage( wxT("html/start.html") );
- /* after version 2.11
- // 被保険者カナ検索Grid
- m_gridHhs = new wxGrid( m_panelHtml, ID_HLST, wxDefaultPosition, wxDefaultSize, 0 );
- m_gridHhs->CreateGrid( 0, 5 );
- m_gridHhs->EnableEditing( true );
- m_gridHhs->EnableGridLines( true );
- m_gridHhs->EnableDragGridSize( false );
- m_gridHhs->SetMargins( 0, 0 );
-
- // Columns
- m_gridHhs->AutoSizeColumns();
- m_gridHhs->EnableDragColMove( false );
- m_gridHhs->SetColLabelValue( 0, wxT("番号") );
- m_gridHhs->SetColLabelValue( 1, wxT("氏名") );
- m_gridHhs->SetColLabelValue( 2, wxT("カナ") );
- m_gridHhs->SetColLabelValue( 3, wxT("生年月日") );
- m_gridHhs->SetColLabelValue( 4, wxT("住所") );
- m_gridHhs->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
-
- // Cell Defaults
- m_gridHhs->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_BOTTOM );
- m_gridHhs->Hide();
-
- bSizerHtml->Add( m_gridHhs, 0, wxALL, 5 );
- */
-
- // 審査会合議体表示Grid
- m_gridCcn = new wxGrid( m_splitter, ID_CCN, wxDefaultPosition, wxDefaultSize, 0 );
- m_gridCcn->CreateGrid( 0, 2 );
- m_gridCcn->EnableEditing( true );
- m_gridCcn->EnableGridLines( true );
- m_gridCcn->EnableDragGridSize( false );
- m_gridCcn->SetMargins( 0, 0 );
- m_gridCcn->SetDefaultCellAlignment( wxALIGN_CENTRE, wxALIGN_BOTTOM );
- m_gridCcn->Show(false);
-
- // Columns
- m_gridCcn->AutoSizeColumns();
- m_gridCcn->EnableDragColMove( false );
- m_gridCcn->SetColLabelValue( 0, wxT("審査会年月日") );
- m_gridCcn->SetColLabelValue( 1, wxT("DB更新時刻") );
- m_gridCcn->SetColSize( 0, 100 );
- m_gridCcn->SetColSize( 1, 200 );
- m_gridCcn->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
-
- m_splitter->Initialize( m_html );
- m_splitter->SetSizer( bSizerHtml );
- m_splitter->Layout();
- bSizerHtml->Fit( m_splitter );
-
// コマンドライン
- m_panelCmd = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize );
+ m_panelCmd = new wxPanel( m_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize );
wxBoxSizer* bSizerCmd;
bSizerCmd = new wxBoxSizer( wxHORIZONTAL );
@@ -598,13 +532,18 @@
m_panelCmd->Layout();
bSizerCmd->Fit( m_panelCmd );
+ bSizerPanel->Add( m_panelHead, 0, wxEXPAND|wxTOP, 1 );
+ bSizerPanel->Add( m_html, 1, wxEXPAND|wxALL, 1 );
+ bSizerPanel->Add( m_panelCmd, 0, wxEXPAND|wxALL, 0 );
+
+ m_panel->SetSizer( bSizerPanel );
+ m_panel->Layout();
+ bSizerPanel->Fit( m_panel );
- bSizer->Add( m_panelHead, 0, wxEXPAND|wxTOP, 1 );
- bSizer->Add( m_splitter, 1, wxEXPAND|wxALL, 1 );
- bSizer->Add( m_panelCmd, 0, wxEXPAND|wxALL, 0 );
-
+ bSizer->Add( m_panel, 1, wxEXPAND|wxALL, 0 );
this->SetSizer( bSizer );
this->Layout();
+ this->SetMinSize( wxSize( 550, 600 ) );
}
// destructor
@@ -614,24 +553,43 @@
// Event Table
BEGIN_EVENT_TABLE( MyFrame, wxFrame )
+ EVT_SIZE( MyFrame::OnSize )
+ EVT_MOVE( MyFrame::OnMove )
EVT_MENU( wxID_EXIT, MyFrame::OnQuit )
EVT_MENU( wxID_ABOUT, MyFrame::OnAbout )
EVT_MENU( ID_MUPHHS, MyFrame::OnUpdateHhsDb )
- EVT_MENU( ID_MLSCCN, MyFrame::OnListCcn )
EVT_MENU( ID_MDBBKUP, MyFrame::OnBackupDB )
EVT_MENU( ID_MDBOPT, MyFrame::OnOptimizeDB )
EVT_MENU( ID_MCHKHHS, MyFrame::OnCheckHhs )
- EVT_MENU( ID_MOAD, MyFrame::OnOpenAppDir )
- EVT_MENU( ID_MODD, MyFrame::OnOpenDataDir )
+ EVT_MENU( ID_MOPAD, MyFrame::OnOpenAppDir )
+ EVT_MENU( ID_MOPDD, MyFrame::OnOpenDataDir )
EVT_MENU( ID_MHELP, MyFrame::OnHelp )
-
- //EVT_TEXT_ENTER( ID_SRCHHHS, MyFrame::OnHhsSearch ) after version 2.11
- EVT_BUTTON( ID_MKIDX, MyFrame::OnMkIndex )
-
+ EVT_BUTTON( ID_PRVTHU, MyFrame::OnPrevThu )
+ EVT_BUTTON( ID_NXTTHU, MyFrame::OnNextThu )
+ EVT_BUTTON( ID_MKIDX, MyFrame::OnMkIndex )
+ EVT_BUTTON( ID_LSCCN, MyFrame::OnListCcn )
EVT_CLOSE( MyFrame::SaveConfig )
END_EVENT_TABLE()
// Event Handlers
+/* サイズ変更 */
+void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event))
+{
+ wxRect r = this->GetRect();
+ int w = r.GetWidth();
+ int h = r.GetHeight();
+ SetStatusText( wxString::Format(wxT("%dx%d"),w,h), 2 );
+ return;
+}
+/* ウィンドウ移動 */
+void MyFrame::OnMove(wxMoveEvent& WXUNUSED(event))
+{
+ wxRect r = this->GetRect();
+ int x = r.GetX();
+ int y = r.GetY();
+ SetStatusText( wxString::Format(wxT("(%d,%d)"),x,y), 2 );
+ return;
+}
/* 終了 */
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
@@ -669,91 +627,92 @@
wxT("About this program"), wxOK | wxICON_INFORMATION, this );
}
-/* 被保険者検索 */
-/* after version 2.11
-void MyFrame::OnHhsSearch(wxCommandEvent& WXUNUSED(event))
+// 前木
+void MyFrame::OnPrevThu(wxCommandEvent& WXUNUSED(event))
{
- this->m_html->Hide();
- this->m_gridCcn->Hide();
- this->m_gridHhs->Show(true);
-
- wxString gszFile = wxGetCwd() + wxT("/db/hhs.db");
- wxSQLite3Database hhsdb;
- hhsdb.Open( gszFile );
-
- wxSQLite3Statement stmt = hhsdb.PrepareStatement("SELECT count(*) FROM hhs_master WHERE kana LIKE ?");
- stmt.Bind( 1, this->m_searchCtrlHname->GetValue() );
- wxSQLite3ResultSet q = stmt.ExecuteQuery();
- wxString cnt = q.GetString(0);
-
- if ( cnt.Cmp(wxT("0")) == '0' ) {
- wxString msg = cnt + wxT("指定した条件の被保険者はいませんでした.");
- }
- else {
- wxString msg = cnt + wxT("件マッチしました.");
- return ; // test now
-
- stmt = hhsdb.PrepareStatement("SELECT hhs, name, kana, addr, birth, sex FROM hhs_master ORDER BY birth DESC");
- q = stmt.ExecuteQuery();
- wxSQLite3ResultSet q = stmt.ExecuteQuery();
- while ( q.NextRow() ) {
- wxString hhs = q.GetString(0);
- wxString name = q.GetString(1);
- wxString kana = q.GetString(2);
- wxString addr = q.GetString(3);
- wxString birth = q.GetString(4);
- wxString sex = q.GetString(5);
- // ここに gridに 追加するコード
- }
- }
-
- stmt.Finalize();
- hhsdb.Close();
+ wxDateTime dt = m_datePicker->GetValue();
+ wxDateSpan ds( 0, 0, 0, 1 );
+ dt -= ds;
+ dt.SetToPrevWeekDay( wxDateTime::Thu );
+ m_datePicker->SetValue( dt );
}
-*/
+// 次木
+void MyFrame::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 MyFrame::OnMkIndex(wxCommandEvent& WXUNUSED(event))
{
- FrameHhsDB *f = (FrameHhsDB*)FindWindowById( ID_HHSDB );
+ 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 );
- if ( f == NULL ) {
- FrameHhsDB *hhsdb = new FrameHhsDB( this, ID_HHSDB );
- hhsdb->Show(true);
+ 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);
}
- else {
- f->Raise();
- }
- return;
+ wxMessageBox(wxT("インデックス作成が終了しました."));
}
-/* インデックス更新一覧 */
+/* インデックス一覧 */
void MyFrame::OnListCcn(wxCommandEvent& WXUNUSED(event))
{
- this->m_splitter->ReplaceWindow( this->m_html, this->m_gridCcn );
- this->m_gridCcn->Show(true);
- this->m_html->Show(false);
- MyCmdBox *c = (MyCmdBox*)FindWindowById( ID_CMD );
- c->Clear();
-
- wxString gszFile = wxGetCwd() + wxT("/db/ccn.db");
- wxSQLite3Database ccndb;
- ccndb.Open( gszFile );
-
- wxSQLite3Statement stmt = ccndb.PrepareStatement("SELECT ymd, time FROM ccn ORDER BY ymd DESC, time DESC");
- wxSQLite3ResultSet q = stmt.ExecuteQuery();
- int r=0;
- while ( q.NextRow() ) {
- wxString ymd = q.GetString(0);
- wxString time = q.GetString(1);
- this->m_gridCcn->AppendRows(1);
- this->m_gridCcn->SetCellValue(r,0,ymd);
- this->m_gridCcn->SetCellValue(r,1,time);
- r++;
- }
-
- stmt.Finalize();
- ccndb.Close();
+ FrameCcn *fc = new FrameCcn( NULL, ID_CCN, wxT("Index Viewer"), wxDefaultPosition, wxDefaultSize, wxCAPTION|wxFRAME_NO_TASKBAR|wxTAB_TRAVERSAL );
+ fc->Show(true);
}
/* 被保険者DB更新 */