Mercurial > mercurial > hgweb_searcher2.cgi
comparison src/myframe.cpp @ 22:05f76f9f9186
index buttons move to main-frame.
| author | pyon@macmini |
|---|---|
| date | Wed, 27 Jul 2011 19:01:09 +0900 |
| parents | eb3f5c7c990f |
| children | a10c2fe880f8 |
comparison
equal
deleted
inserted
replaced
| 21:eb3f5c7c990f | 22:05f76f9f9186 |
|---|---|
| 1 // Filename : mainframe.cpp | 1 // Filename : mainframe.cpp |
| 2 // Last Change: 22-Jul-2011. | 2 // Last Change: 27-Jul-2011. |
| 3 // | 3 // |
| 4 #include "wx/html/htmprint.h" | 4 #include "wx/html/htmprint.h" |
| 5 #include "wx/print.h" | 5 #include "wx/print.h" |
| 6 | 6 |
| 7 #include "symbol.h" | 7 #include "symbol.h" |
| 155 event.Skip(); | 155 event.Skip(); |
| 156 } | 156 } |
| 157 | 157 |
| 158 void MyCmdBox::OnCmd( wxCommandEvent& event ) | 158 void MyCmdBox::OnCmd( wxCommandEvent& event ) |
| 159 { | 159 { |
| 160 wxHtmlWindow *h = (wxHtmlWindow*)FindWindowById( ID_HTML ); | |
| 161 wxGrid *g = (wxGrid*)FindWindowById( ID_CCN ); | |
| 162 wxSplitterWindow *s = (wxSplitterWindow*)FindWindowById( ID_SPLT ); | |
| 163 s->ReplaceWindow( h, g ); | |
| 164 h->Show(true); | |
| 165 g->Show(false); | |
| 166 | |
| 167 wxRegEx reHhs(wxT("^0[1238][0-9]{8}$")); // 1:被保番チェック | 160 wxRegEx reHhs(wxT("^0[1238][0-9]{8}$")); // 1:被保番チェック |
| 168 wxRegEx reCno(wxT("^[0-9]{1,2}$")); // 2:開くフォルダの番号 | 161 wxRegEx reCno(wxT("^[0-9]{1,2}$")); // 2:開くフォルダの番号 |
| 169 wxRegEx rePrint(wxT("^\\+$")); // 3:印刷するフォルダの番号 | 162 wxRegEx rePrint(wxT("^\\+$")); // 3:印刷するフォルダの番号 |
| 170 | 163 |
| 171 wxString cmd; | 164 wxString cmd; |
| 446 | 439 |
| 447 // メニューバー | 440 // メニューバー |
| 448 m_menubar = new wxMenuBar(); | 441 m_menubar = new wxMenuBar(); |
| 449 | 442 |
| 450 m_menuFile = new wxMenu(); | 443 m_menuFile = new wxMenu(); |
| 451 m_menuFile->Append( ID_MUPHHS, wxT("被保険者DB更新"), wxT("Update hhs-db") ); | |
| 452 m_menuFile->Append( ID_MLSCCN, wxT("インデックス更新一覧"), wxT("List index") ); | |
| 453 m_menuFile->AppendSeparator(); //---- | |
| 454 wxMenu *menuMaintain = new wxMenu(); | 444 wxMenu *menuMaintain = new wxMenu(); |
| 455 m_menuFile->AppendSubMenu( menuMaintain, wxT("メンテナンス") ); | 445 m_menuFile->AppendSubMenu( menuMaintain, wxT("メンテナンス") ); |
| 446 menuMaintain->Append( ID_MUPHHS, wxT("被保険者DB更新"), wxT("Update hhs-db") ); | |
| 456 menuMaintain->Append( ID_MDBBKUP, wxT("データベースバックアップ"), wxT("Backup DBs") ); | 447 menuMaintain->Append( ID_MDBBKUP, wxT("データベースバックアップ"), wxT("Backup DBs") ); |
| 457 menuMaintain->Append( ID_MDBOPT, wxT("データベース最適化"), wxT("Optimize DBs") ); | 448 menuMaintain->Append( ID_MDBOPT, wxT("データベース最適化"), wxT("Optimize DBs") ); |
| 458 menuMaintain->Enable( ID_MDBOPT, false ); | 449 menuMaintain->Enable( ID_MDBOPT, false ); |
| 459 menuMaintain->Append( ID_MCHKHHS, wxT("被保者整合性チェック"), wxT("Check hhs") ); | 450 menuMaintain->Append( ID_MCHKHHS, wxT("被保者整合性チェック"), wxT("Check hhs") ); |
| 460 m_menuFile->AppendSeparator(); //---- | 451 m_menuFile->AppendSeparator(); //---- |
| 461 wxMenu *menuOpendir = new wxMenu(); | 452 wxMenu *menuOpendir = new wxMenu(); |
| 462 m_menuFile->AppendSubMenu( menuOpendir, wxT("フォルダを開く") ); | 453 m_menuFile->AppendSubMenu( menuOpendir, wxT("フォルダを開く") ); |
| 463 menuOpendir->Append( ID_MOAD, wxT("アプリケーションフォルダ"), wxT("Open App Folder") ); | 454 menuOpendir->Append( ID_MOPAD, wxT("アプリケーションフォルダ"), wxT("Open App Folder") ); |
| 464 menuOpendir->Append( ID_MODD, wxT("データフォルダ"), wxT("Open Data Folder") ); | 455 menuOpendir->Append( ID_MOPDD, wxT("データフォルダ"), wxT("Open Data Folder") ); |
| 465 m_menuFile->AppendSeparator(); //---- | 456 m_menuFile->AppendSeparator(); //---- |
| 466 m_menuFile->Append( wxID_EXIT, wxT("終了(&X)\tAlt-X"), wxT("Quit this program") ); | 457 m_menuFile->Append( wxID_EXIT, wxT("終了(&X)\tAlt-X"), wxT("Quit this program") ); |
| 467 | 458 |
| 468 m_menuHelp = new wxMenu(); | 459 m_menuHelp = new wxMenu(); |
| 469 m_menuHelp->Append( ID_MHELP, wxT("&Help"), wxT("Show help") ); | 460 m_menuHelp->Append( ID_MHELP, wxT("&Help"), wxT("Show help") ); |
| 486 m_statusBar->SetStatusWidths( WXSIZEOF(widths), widths ); | 477 m_statusBar->SetStatusWidths( WXSIZEOF(widths), widths ); |
| 487 m_statusBar->SetStatusText( wxEmptyString, 0 ); | 478 m_statusBar->SetStatusText( wxEmptyString, 0 ); |
| 488 | 479 |
| 489 wxBoxSizer* bSizer; | 480 wxBoxSizer* bSizer; |
| 490 bSizer = new wxBoxSizer( wxVERTICAL ); | 481 bSizer = new wxBoxSizer( wxVERTICAL ); |
| 491 | 482 m_panel = new wxPanel( this ); |
| 483 | |
| 484 wxBoxSizer* bSizerPanel; | |
| 485 bSizerPanel = new wxBoxSizer( wxVERTICAL ); | |
| 486 | |
| 492 // controls here | 487 // controls here |
| 493 m_panelHead = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize ); | 488 m_panelHead = new wxPanel( m_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize ); |
| 494 wxBoxSizer* bSizerHead; | 489 wxBoxSizer* bSizerHead; |
| 495 bSizerHead = new wxBoxSizer( wxHORIZONTAL ); | 490 bSizerHead = new wxBoxSizer( wxHORIZONTAL ); |
| 496 | 491 |
| 497 /* after version 2.11 | |
| 498 m_staticTextHname = new wxStaticText( m_panelHead, wxID_ANY, wxT("氏名カナ検索"), wxDefaultPosition, wxDefaultSize, 0 ); | |
| 499 bSizerHead->Add( m_staticTextHname, 0, wxALL, 5 ); | |
| 500 | |
| 501 m_searchCtrlHname = new wxSearchCtrl( m_panelHead, ID_SRCHHHS, wxT("3字以上入力"), wxDefaultPosition, wxSize(200,20), 0 ); | |
| 502 #ifndef __WXMAC__ | |
| 503 m_searchCtrlHname->ShowSearchButton( true ); | |
| 504 #endif | |
| 505 bSizerHead->Add( m_searchCtrlHname, 0, wxALL, 1 ); | |
| 506 | |
| 507 m_bitmapMkidx = new wxStaticBitmap( m_panelHead, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); | |
| 508 bSizerHead->Add( m_bitmapMkidx, 0, wxALL, 1 ); | |
| 509 */ | |
| 510 | |
| 511 bSizerHead->AddStretchSpacer( 1 ); // spacer | 492 bSizerHead->AddStretchSpacer( 1 ); // spacer |
| 512 | |
| 513 m_staticTextIdx = new wxStaticText( m_panelHead, wxID_ANY, wxT("インデックス"), wxDefaultPosition, wxDefaultSize, 0 ); | 493 m_staticTextIdx = new wxStaticText( m_panelHead, wxID_ANY, wxT("インデックス"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 514 bSizerHead->Add( m_staticTextIdx, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); | 494 bSizerHead->Add( m_staticTextIdx, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
| 515 | 495 |
| 516 m_datePicker = new wxDatePickerCtrl( m_panelHead, ID_DTIDX, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_SHOWCENTURY|wxDP_DROPDOWN ); | 496 m_btnLsCcn = new wxButton( m_panelHead, ID_LSCCN, wxT("一覧"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 497 bSizerHead->Add( m_btnLsCcn, 0, wxALL, 5 ); | |
| 498 | |
| 499 m_btnPrevThu = new wxButton( m_panelHead, ID_PRVTHU, wxT("<< 前木"), wxDefaultPosition, wxDefaultSize, 0 ); | |
| 500 bSizerHead->Add( m_btnPrevThu, 0, wxALL, 5 ); | |
| 501 | |
| 502 m_datePicker = new wxDatePickerCtrl( m_panelHead, ID_DTPICKER, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN|wxDP_SHOWCENTURY ); | |
| 517 bSizerHead->Add( m_datePicker, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); | 503 bSizerHead->Add( m_datePicker, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); |
| 518 | 504 |
| 519 m_buttonMkidx = new wxButton( m_panelHead, ID_MKIDX, wxT("作成"), wxDefaultPosition, wxSize(50,25), 0 ); | 505 m_btnNextThu = new wxButton( m_panelHead, ID_NXTTHU, wxT("次木 >>"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 520 bSizerHead->Add( m_buttonMkidx, 0, wxALL, 5 ); | 506 bSizerHead->Add( m_btnNextThu, 0, wxALL, 5 ); |
| 521 | 507 |
| 508 m_btnMkIdx = new wxButton( m_panelHead, ID_MKIDX, wxT("作成"), wxDefaultPosition, wxDefaultSize, 0 ); | |
| 509 bSizerHead->Add( m_btnMkIdx, 0, wxALL, 5 ); | |
| 510 | |
| 522 m_panelHead->SetSizer( bSizerHead ); | 511 m_panelHead->SetSizer( bSizerHead ); |
| 523 m_panelHead->Layout(); | 512 m_panelHead->Layout(); |
| 524 bSizerHead->Fit( m_panelHead ); | 513 bSizerHead->Fit( m_panelHead ); |
| 525 | 514 |
| 526 // メインペイン | |
| 527 wxBoxSizer* bSizerHtml; | |
| 528 bSizerHtml = new wxBoxSizer( wxVERTICAL ); | |
| 529 m_splitter = new wxSplitterWindow( this, ID_SPLT, wxDefaultPosition, wxDefaultSize, 0 ); | |
| 530 | |
| 531 // 検索結果Html | 515 // 検索結果Html |
| 532 m_html = new wxHtmlWindow( m_splitter, ID_HTML, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO ); | 516 m_html = new wxHtmlWindow( m_panel, ID_HTML, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO ); |
| 533 m_html->LoadPage( wxT("html/start.html") ); | 517 m_html->LoadPage( wxT("html/start.html") ); |
| 534 | 518 |
| 535 /* after version 2.11 | |
| 536 // 被保険者カナ検索Grid | |
| 537 m_gridHhs = new wxGrid( m_panelHtml, ID_HLST, wxDefaultPosition, wxDefaultSize, 0 ); | |
| 538 m_gridHhs->CreateGrid( 0, 5 ); | |
| 539 m_gridHhs->EnableEditing( true ); | |
| 540 m_gridHhs->EnableGridLines( true ); | |
| 541 m_gridHhs->EnableDragGridSize( false ); | |
| 542 m_gridHhs->SetMargins( 0, 0 ); | |
| 543 | |
| 544 // Columns | |
| 545 m_gridHhs->AutoSizeColumns(); | |
| 546 m_gridHhs->EnableDragColMove( false ); | |
| 547 m_gridHhs->SetColLabelValue( 0, wxT("番号") ); | |
| 548 m_gridHhs->SetColLabelValue( 1, wxT("氏名") ); | |
| 549 m_gridHhs->SetColLabelValue( 2, wxT("カナ") ); | |
| 550 m_gridHhs->SetColLabelValue( 3, wxT("生年月日") ); | |
| 551 m_gridHhs->SetColLabelValue( 4, wxT("住所") ); | |
| 552 m_gridHhs->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE ); | |
| 553 | |
| 554 // Cell Defaults | |
| 555 m_gridHhs->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_BOTTOM ); | |
| 556 m_gridHhs->Hide(); | |
| 557 | |
| 558 bSizerHtml->Add( m_gridHhs, 0, wxALL, 5 ); | |
| 559 */ | |
| 560 | |
| 561 // 審査会合議体表示Grid | |
| 562 m_gridCcn = new wxGrid( m_splitter, ID_CCN, wxDefaultPosition, wxDefaultSize, 0 ); | |
| 563 m_gridCcn->CreateGrid( 0, 2 ); | |
| 564 m_gridCcn->EnableEditing( true ); | |
| 565 m_gridCcn->EnableGridLines( true ); | |
| 566 m_gridCcn->EnableDragGridSize( false ); | |
| 567 m_gridCcn->SetMargins( 0, 0 ); | |
| 568 m_gridCcn->SetDefaultCellAlignment( wxALIGN_CENTRE, wxALIGN_BOTTOM ); | |
| 569 m_gridCcn->Show(false); | |
| 570 | |
| 571 // Columns | |
| 572 m_gridCcn->AutoSizeColumns(); | |
| 573 m_gridCcn->EnableDragColMove( false ); | |
| 574 m_gridCcn->SetColLabelValue( 0, wxT("審査会年月日") ); | |
| 575 m_gridCcn->SetColLabelValue( 1, wxT("DB更新時刻") ); | |
| 576 m_gridCcn->SetColSize( 0, 100 ); | |
| 577 m_gridCcn->SetColSize( 1, 200 ); | |
| 578 m_gridCcn->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE ); | |
| 579 | |
| 580 m_splitter->Initialize( m_html ); | |
| 581 m_splitter->SetSizer( bSizerHtml ); | |
| 582 m_splitter->Layout(); | |
| 583 bSizerHtml->Fit( m_splitter ); | |
| 584 | |
| 585 // コマンドライン | 519 // コマンドライン |
| 586 m_panelCmd = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize ); | 520 m_panelCmd = new wxPanel( m_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize ); |
| 587 wxBoxSizer* bSizerCmd; | 521 wxBoxSizer* bSizerCmd; |
| 588 bSizerCmd = new wxBoxSizer( wxHORIZONTAL ); | 522 bSizerCmd = new wxBoxSizer( wxHORIZONTAL ); |
| 589 | 523 |
| 590 m_staticTextCmd = new wxStaticText( m_panelCmd, wxID_ANY, wxT("コマンド?"), wxDefaultPosition, wxDefaultSize, 0 ); | 524 m_staticTextCmd = new wxStaticText( m_panelCmd, wxID_ANY, wxT("コマンド?"), wxDefaultPosition, wxDefaultSize, 0 ); |
| 591 bSizerCmd->Add( m_staticTextCmd, 0, wxALL, 5 ); | 525 bSizerCmd->Add( m_staticTextCmd, 0, wxALL, 5 ); |
| 596 | 530 |
| 597 m_panelCmd->SetSizer( bSizerCmd ); | 531 m_panelCmd->SetSizer( bSizerCmd ); |
| 598 m_panelCmd->Layout(); | 532 m_panelCmd->Layout(); |
| 599 bSizerCmd->Fit( m_panelCmd ); | 533 bSizerCmd->Fit( m_panelCmd ); |
| 600 | 534 |
| 601 | 535 bSizerPanel->Add( m_panelHead, 0, wxEXPAND|wxTOP, 1 ); |
| 602 bSizer->Add( m_panelHead, 0, wxEXPAND|wxTOP, 1 ); | 536 bSizerPanel->Add( m_html, 1, wxEXPAND|wxALL, 1 ); |
| 603 bSizer->Add( m_splitter, 1, wxEXPAND|wxALL, 1 ); | 537 bSizerPanel->Add( m_panelCmd, 0, wxEXPAND|wxALL, 0 ); |
| 604 bSizer->Add( m_panelCmd, 0, wxEXPAND|wxALL, 0 ); | 538 |
| 605 | 539 m_panel->SetSizer( bSizerPanel ); |
| 540 m_panel->Layout(); | |
| 541 bSizerPanel->Fit( m_panel ); | |
| 542 | |
| 543 bSizer->Add( m_panel, 1, wxEXPAND|wxALL, 0 ); | |
| 606 this->SetSizer( bSizer ); | 544 this->SetSizer( bSizer ); |
| 607 this->Layout(); | 545 this->Layout(); |
| 546 this->SetMinSize( wxSize( 550, 600 ) ); | |
| 608 } | 547 } |
| 609 | 548 |
| 610 // destructor | 549 // destructor |
| 611 MyFrame::~MyFrame() | 550 MyFrame::~MyFrame() |
| 612 { | 551 { |
| 613 } | 552 } |
| 614 | 553 |
| 615 // Event Table | 554 // Event Table |
| 616 BEGIN_EVENT_TABLE( MyFrame, wxFrame ) | 555 BEGIN_EVENT_TABLE( MyFrame, wxFrame ) |
| 556 EVT_SIZE( MyFrame::OnSize ) | |
| 557 EVT_MOVE( MyFrame::OnMove ) | |
| 617 EVT_MENU( wxID_EXIT, MyFrame::OnQuit ) | 558 EVT_MENU( wxID_EXIT, MyFrame::OnQuit ) |
| 618 EVT_MENU( wxID_ABOUT, MyFrame::OnAbout ) | 559 EVT_MENU( wxID_ABOUT, MyFrame::OnAbout ) |
| 619 EVT_MENU( ID_MUPHHS, MyFrame::OnUpdateHhsDb ) | 560 EVT_MENU( ID_MUPHHS, MyFrame::OnUpdateHhsDb ) |
| 620 EVT_MENU( ID_MLSCCN, MyFrame::OnListCcn ) | |
| 621 EVT_MENU( ID_MDBBKUP, MyFrame::OnBackupDB ) | 561 EVT_MENU( ID_MDBBKUP, MyFrame::OnBackupDB ) |
| 622 EVT_MENU( ID_MDBOPT, MyFrame::OnOptimizeDB ) | 562 EVT_MENU( ID_MDBOPT, MyFrame::OnOptimizeDB ) |
| 623 EVT_MENU( ID_MCHKHHS, MyFrame::OnCheckHhs ) | 563 EVT_MENU( ID_MCHKHHS, MyFrame::OnCheckHhs ) |
| 624 EVT_MENU( ID_MOAD, MyFrame::OnOpenAppDir ) | 564 EVT_MENU( ID_MOPAD, MyFrame::OnOpenAppDir ) |
| 625 EVT_MENU( ID_MODD, MyFrame::OnOpenDataDir ) | 565 EVT_MENU( ID_MOPDD, MyFrame::OnOpenDataDir ) |
| 626 EVT_MENU( ID_MHELP, MyFrame::OnHelp ) | 566 EVT_MENU( ID_MHELP, MyFrame::OnHelp ) |
| 627 | 567 EVT_BUTTON( ID_PRVTHU, MyFrame::OnPrevThu ) |
| 628 //EVT_TEXT_ENTER( ID_SRCHHHS, MyFrame::OnHhsSearch ) after version 2.11 | 568 EVT_BUTTON( ID_NXTTHU, MyFrame::OnNextThu ) |
| 629 EVT_BUTTON( ID_MKIDX, MyFrame::OnMkIndex ) | 569 EVT_BUTTON( ID_MKIDX, MyFrame::OnMkIndex ) |
| 630 | 570 EVT_BUTTON( ID_LSCCN, MyFrame::OnListCcn ) |
| 631 EVT_CLOSE( MyFrame::SaveConfig ) | 571 EVT_CLOSE( MyFrame::SaveConfig ) |
| 632 END_EVENT_TABLE() | 572 END_EVENT_TABLE() |
| 633 | 573 |
| 634 // Event Handlers | 574 // Event Handlers |
| 575 /* サイズ変更 */ | |
| 576 void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event)) | |
| 577 { | |
| 578 wxRect r = this->GetRect(); | |
| 579 int w = r.GetWidth(); | |
| 580 int h = r.GetHeight(); | |
| 581 SetStatusText( wxString::Format(wxT("%dx%d"),w,h), 2 ); | |
| 582 return; | |
| 583 } | |
| 584 /* ウィンドウ移動 */ | |
| 585 void MyFrame::OnMove(wxMoveEvent& WXUNUSED(event)) | |
| 586 { | |
| 587 wxRect r = this->GetRect(); | |
| 588 int x = r.GetX(); | |
| 589 int y = r.GetY(); | |
| 590 SetStatusText( wxString::Format(wxT("(%d,%d)"),x,y), 2 ); | |
| 591 return; | |
| 592 } | |
| 635 /* 終了 */ | 593 /* 終了 */ |
| 636 void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) | 594 void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) |
| 637 { | 595 { |
| 638 Close(true); | 596 Close(true); |
| 639 } | 597 } |
| 667 wxGetOsDescription().c_str() | 625 wxGetOsDescription().c_str() |
| 668 ), | 626 ), |
| 669 wxT("About this program"), wxOK | wxICON_INFORMATION, this ); | 627 wxT("About this program"), wxOK | wxICON_INFORMATION, this ); |
| 670 } | 628 } |
| 671 | 629 |
| 672 /* 被保険者検索 */ | 630 // 前木 |
| 673 /* after version 2.11 | 631 void MyFrame::OnPrevThu(wxCommandEvent& WXUNUSED(event)) |
| 674 void MyFrame::OnHhsSearch(wxCommandEvent& WXUNUSED(event)) | 632 { |
| 675 { | 633 wxDateTime dt = m_datePicker->GetValue(); |
| 676 this->m_html->Hide(); | 634 wxDateSpan ds( 0, 0, 0, 1 ); |
| 677 this->m_gridCcn->Hide(); | 635 dt -= ds; |
| 678 this->m_gridHhs->Show(true); | 636 dt.SetToPrevWeekDay( wxDateTime::Thu ); |
| 679 | 637 m_datePicker->SetValue( dt ); |
| 680 wxString gszFile = wxGetCwd() + wxT("/db/hhs.db"); | 638 } |
| 681 wxSQLite3Database hhsdb; | 639 // 次木 |
| 682 hhsdb.Open( gszFile ); | 640 void MyFrame::OnNextThu(wxCommandEvent& WXUNUSED(event)) |
| 683 | 641 { |
| 684 wxSQLite3Statement stmt = hhsdb.PrepareStatement("SELECT count(*) FROM hhs_master WHERE kana LIKE ?"); | 642 wxDateTime dt = m_datePicker->GetValue(); |
| 685 stmt.Bind( 1, this->m_searchCtrlHname->GetValue() ); | 643 wxDateSpan ds( 0, 0, 0, 1 ); |
| 686 wxSQLite3ResultSet q = stmt.ExecuteQuery(); | 644 dt += ds; |
| 687 wxString cnt = q.GetString(0); | 645 dt.SetToNextWeekDay( wxDateTime::Thu ); |
| 688 | 646 m_datePicker->SetValue( dt ); |
| 689 if ( cnt.Cmp(wxT("0")) == '0' ) { | 647 } |
| 690 wxString msg = cnt + wxT("指定した条件の被保険者はいませんでした."); | |
| 691 } | |
| 692 else { | |
| 693 wxString msg = cnt + wxT("件マッチしました."); | |
| 694 return ; // test now | |
| 695 | |
| 696 stmt = hhsdb.PrepareStatement("SELECT hhs, name, kana, addr, birth, sex FROM hhs_master ORDER BY birth DESC"); | |
| 697 q = stmt.ExecuteQuery(); | |
| 698 wxSQLite3ResultSet q = stmt.ExecuteQuery(); | |
| 699 while ( q.NextRow() ) { | |
| 700 wxString hhs = q.GetString(0); | |
| 701 wxString name = q.GetString(1); | |
| 702 wxString kana = q.GetString(2); | |
| 703 wxString addr = q.GetString(3); | |
| 704 wxString birth = q.GetString(4); | |
| 705 wxString sex = q.GetString(5); | |
| 706 // ここに gridに 追加するコード | |
| 707 } | |
| 708 } | |
| 709 | |
| 710 stmt.Finalize(); | |
| 711 hhsdb.Close(); | |
| 712 } | |
| 713 */ | |
| 714 | 648 |
| 715 /* インデックス作成 */ | 649 /* インデックス作成 */ |
| 716 void MyFrame::OnMkIndex(wxCommandEvent& WXUNUSED(event)) | 650 void MyFrame::OnMkIndex(wxCommandEvent& WXUNUSED(event)) |
| 717 { | 651 { |
| 718 FrameHhsDB *f = (FrameHhsDB*)FindWindowById( ID_HHSDB ); | 652 wxDateTime dt = m_datePicker->GetValue(); |
| 719 | 653 wxString month = dt.Format(wxT("%m")); |
| 720 if ( f == NULL ) { | 654 wxString year = dt.Format(wxT("%Y")); |
| 721 FrameHhsDB *hhsdb = new FrameHhsDB( this, ID_HHSDB ); | 655 if ( month.IsSameAs(wxT("01")) || month.IsSameAs(wxT("02")) || month.IsSameAs(wxT("03")) ) { |
| 722 hhsdb->Show(true); | 656 long y; |
| 723 } | 657 year.ToLong( &y, 10 ); |
| 724 else { | 658 y--; |
| 725 f->Raise(); | 659 year = wxString::Format(wxT("%d"),y); |
| 726 } | 660 } |
| 727 return; | 661 wxString pathroot = wxGetApp().rootdir + wxFILE_SEP_PATH + year + dt.Format(wxT("\\%Y%m%d")); |
| 728 } | 662 wxDir rootd(pathroot); |
| 729 | 663 if ( !wxDir::Exists(pathroot) ) { |
| 730 /* インデックス更新一覧 */ | 664 wxMessageBox( wxT("フォルダが存在しません.")+pathroot ); |
| 665 return; | |
| 666 } | |
| 667 | |
| 668 wxProgressDialog pd( wxT("進行状況"), wxT("処理開始..."), 200, this, wxPD_APP_MODAL|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE ); | |
| 669 pd.SetSize( wxSize(320,140) ); | |
| 670 int count=0; | |
| 671 | |
| 672 wxString ccndir; | |
| 673 bool cont = rootd.GetFirst( &ccndir, wxT("*.*"), wxDIR_DIRS ); | |
| 674 while ( cont ) { | |
| 675 wxString gszFile = wxGetCwd() + wxT("/db/ccn.db"); | |
| 676 wxSQLite3Database ccndb; | |
| 677 ccndb.Open( gszFile ); | |
| 678 | |
| 679 wxSQLite3Statement stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO ccn VALUES( ?, datetime('now','localtime') )"); | |
| 680 stmt.Bind( 1, dt.Format(wxT("%Y-%m-%d")) ); | |
| 681 stmt.ExecuteQuery(); | |
| 682 | |
| 683 stmt.Finalize(); | |
| 684 | |
| 685 wxDir ccnd( pathroot + wxFILE_SEP_PATH + ccndir ); | |
| 686 if ( !ccnd.IsOpened() ) return; | |
| 687 wxString hhsdir; | |
| 688 bool c = ccnd.GetFirst( &hhsdir, wxT("*.*"), wxDIR_DIRS ); | |
| 689 wxRegEx reHhs(wxT("^0[1238][0-9]{8}$")); // 被保番チェック | |
| 690 while ( c ) { | |
| 691 if ( reHhs.Matches(hhsdir) ) { | |
| 692 wxString path = pathroot + wxFILE_SEP_PATH + ccndir + wxFILE_SEP_PATH + hhsdir; | |
| 693 | |
| 694 stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO path VALUES( ?, ? )"); | |
| 695 stmt.Bind( 1, hhsdir ); | |
| 696 stmt.Bind( 2, path ); | |
| 697 stmt.ExecuteQuery(); | |
| 698 | |
| 699 stmt.Finalize(); | |
| 700 } | |
| 701 c = ccnd.GetNext(&hhsdir); | |
| 702 pd.Update( count++, hhsdir+wxT("@")+ccndir+wxT("を処理しました.") ); | |
| 703 } | |
| 704 ccndb.Close(); | |
| 705 | |
| 706 cont = rootd.GetNext(&ccndir); | |
| 707 } | |
| 708 wxMessageBox(wxT("インデックス作成が終了しました.")); | |
| 709 } | |
| 710 | |
| 711 /* インデックス一覧 */ | |
| 731 void MyFrame::OnListCcn(wxCommandEvent& WXUNUSED(event)) | 712 void MyFrame::OnListCcn(wxCommandEvent& WXUNUSED(event)) |
| 732 { | 713 { |
| 733 this->m_splitter->ReplaceWindow( this->m_html, this->m_gridCcn ); | 714 FrameCcn *fc = new FrameCcn( NULL, ID_CCN, wxT("Index Viewer"), wxDefaultPosition, wxDefaultSize, wxCAPTION|wxFRAME_NO_TASKBAR|wxTAB_TRAVERSAL ); |
| 734 this->m_gridCcn->Show(true); | 715 fc->Show(true); |
| 735 this->m_html->Show(false); | |
| 736 MyCmdBox *c = (MyCmdBox*)FindWindowById( ID_CMD ); | |
| 737 c->Clear(); | |
| 738 | |
| 739 wxString gszFile = wxGetCwd() + wxT("/db/ccn.db"); | |
| 740 wxSQLite3Database ccndb; | |
| 741 ccndb.Open( gszFile ); | |
| 742 | |
| 743 wxSQLite3Statement stmt = ccndb.PrepareStatement("SELECT ymd, time FROM ccn ORDER BY ymd DESC, time DESC"); | |
| 744 wxSQLite3ResultSet q = stmt.ExecuteQuery(); | |
| 745 int r=0; | |
| 746 while ( q.NextRow() ) { | |
| 747 wxString ymd = q.GetString(0); | |
| 748 wxString time = q.GetString(1); | |
| 749 this->m_gridCcn->AppendRows(1); | |
| 750 this->m_gridCcn->SetCellValue(r,0,ymd); | |
| 751 this->m_gridCcn->SetCellValue(r,1,time); | |
| 752 r++; | |
| 753 } | |
| 754 | |
| 755 stmt.Finalize(); | |
| 756 ccndb.Close(); | |
| 757 } | 716 } |
| 758 | 717 |
| 759 /* 被保険者DB更新 */ | 718 /* 被保険者DB更新 */ |
| 760 void MyFrame::OnUpdateHhsDb(wxCommandEvent& WXUNUSED(event)) | 719 void MyFrame::OnUpdateHhsDb(wxCommandEvent& WXUNUSED(event)) |
| 761 { | 720 { |
