Mercurial > mercurial > hgweb_searcher2.cgi
diff src/ccnframe.cpp @ 22:05f76f9f9186
index buttons move to main-frame.
author | pyon@macmini |
---|---|
date | Wed, 27 Jul 2011 19:01:09 +0900 |
parents | eb3f5c7c990f |
children |
line wrap: on
line diff
--- 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("合計") ); }