Mercurial > mercurial > hgweb_searcher2.cgi
comparison src/hhsdb.cpp @ 0:c174ac668e9f
First commit ! (ver2.8)
| author | pyon@macmini |
|---|---|
| date | Tue, 05 Apr 2011 18:44:57 +0900 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:c174ac668e9f |
|---|---|
| 1 // Filename : hhsdb.cpp | |
| 2 // Last Change: 07-Mar-2011. | |
| 3 // | |
| 4 | |
| 5 #include "hhsdb.h" | |
| 6 #include "wx/wxsqlite3.h" | |
| 7 | |
| 8 // for all others, include the necessary headers (this file is usually all you | |
| 9 // need because it includes almost all "standard" wxWidgets headers) | |
| 10 #ifndef WX_PRECOMP | |
| 11 #include "wx/utils.h" | |
| 12 #include "wx/textfile.h" | |
| 13 #include "wx/tokenzr.h" | |
| 14 #endif | |
| 15 | |
| 16 // Constructor | |
| 17 FrameHhsDB::FrameHhsDB( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) | |
| 18 : wxFrame( parent, id, title, pos, size, style ) | |
| 19 { | |
| 20 this->SetSizeHints( wxDefaultSize, wxDefaultSize ); | |
| 21 | |
| 22 wxBoxSizer* bSizer; | |
| 23 bSizer = new wxBoxSizer( wxVERTICAL ); | |
| 24 | |
| 25 m_panel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); | |
| 26 | |
| 27 wxBoxSizer* bSizerPanel; | |
| 28 bSizerPanel = new wxBoxSizer( wxVERTICAL ); | |
| 29 | |
| 30 wxString wildcard = wxT("CSV files (*.csv) | *.csv"); | |
| 31 m_filePicker = new wxFilePickerCtrl( m_panel, ID_CSVPK, wxT("CSVファイルを指定します"), wxT("Select a file"), wildcard, wxDefaultPosition, wxSize( 400,-1 ), wxFLP_DEFAULT_STYLE|wxFLP_FILE_MUST_EXIST|wxFLP_OPEN ); | |
| 32 bSizerPanel->Add( m_filePicker, 0, wxEXPAND|wxALL, 5 ); | |
| 33 | |
| 34 m_grid = new wxGrid( m_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); | |
| 35 | |
| 36 // Grid | |
| 37 m_grid->CreateGrid( 200, 6 ); | |
| 38 m_grid->EnableEditing( true ); | |
| 39 m_grid->EnableGridLines( true ); | |
| 40 m_grid->EnableDragGridSize( false ); | |
| 41 m_grid->SetMargins( 0, 0 ); | |
| 42 | |
| 43 // Columns | |
| 44 m_grid->EnableDragColMove( false ); | |
| 45 m_grid->EnableDragColSize( true ); | |
| 46 m_grid->SetColLabelSize( 30 ); | |
| 47 m_grid->SetColLabelValue( 0, wxT("被保険者番号") ); | |
| 48 m_grid->SetColLabelValue( 1, wxT("氏名") ); | |
| 49 m_grid->SetColLabelValue( 2, wxT("カナ氏名") ); | |
| 50 m_grid->SetColLabelValue( 3, wxT("住所") ); | |
| 51 m_grid->SetColLabelValue( 4, wxT("生年月日") ); | |
| 52 m_grid->SetColLabelValue( 5, wxT("性別") ); | |
| 53 m_grid->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE ); | |
| 54 | |
| 55 // Rows | |
| 56 m_grid->EnableDragRowSize( true ); | |
| 57 m_grid->SetRowLabelSize( 40 ); | |
| 58 m_grid->SetRowLabelAlignment( wxALIGN_RIGHT, wxALIGN_CENTRE ); | |
| 59 | |
| 60 // Label Appearance | |
| 61 | |
| 62 // Cell Defaults | |
| 63 m_grid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP ); | |
| 64 bSizerPanel->Add( m_grid, 1, wxEXPAND|wxALL, 5 ); | |
| 65 | |
| 66 wxBoxSizer* bSizerBtns; | |
| 67 bSizerBtns = new wxBoxSizer( wxHORIZONTAL ); | |
| 68 | |
| 69 m_staticText = new wxStaticText( m_panel, wxID_ANY, wxT("パスワード"), wxDefaultPosition, wxDefaultSize, 0 ); | |
| 70 | |
| 71 m_textCtrlPassword = new wxTextCtrl( m_panel, ID_PSWD, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD ); | |
| 72 m_textCtrlPassword->SetMaxLength( 4 ); | |
| 73 | |
| 74 m_btnDBUpdate = new wxButton( m_panel, ID_HHSUP, wxT("DB更新"), wxDefaultPosition, wxDefaultSize, 0 ); | |
| 75 m_btnDBUpdate->Enable( false ); | |
| 76 | |
| 77 m_btnCancel = new wxButton( m_panel, wxID_CANCEL, wxT("キャンセル"), wxDefaultPosition, wxDefaultSize, 0 ); | |
| 78 m_btnCancel->SetDefault(); | |
| 79 | |
| 80 bSizerBtns->Add( 0, 0, 1, wxEXPAND, 5 ); // spacer | |
| 81 bSizerBtns->Add( m_staticText, 0, wxALL, 5 ); | |
| 82 bSizerBtns->Add( m_textCtrlPassword, 0, wxALL, 5 ); | |
| 83 bSizerBtns->Add( m_btnDBUpdate, 0, wxALL, 5 ); | |
| 84 bSizerBtns->Add( m_btnCancel, 0, wxALL, 5 ); | |
| 85 | |
| 86 bSizerPanel->Add( bSizerBtns, 0, wxALIGN_RIGHT|wxEXPAND, 5 ); | |
| 87 | |
| 88 m_panel->SetSizer( bSizerPanel ); | |
| 89 m_panel->Layout(); | |
| 90 bSizerPanel->Fit( m_panel ); | |
| 91 | |
| 92 bSizer->Add( m_panel, 1, wxEXPAND|wxALL, 0 ); | |
| 93 this->SetSizer( bSizer ); | |
| 94 this->Layout(); | |
| 95 } | |
| 96 // Destructor | |
| 97 FrameHhsDB::~FrameHhsDB() | |
| 98 { | |
| 99 } | |
| 100 | |
| 101 // Event Table | |
| 102 BEGIN_EVENT_TABLE(FrameHhsDB, wxFrame) | |
| 103 EVT_FILEPICKER_CHANGED( ID_CSVPK, FrameHhsDB::ReadCSV ) | |
| 104 EVT_TEXT( ID_PSWD, FrameHhsDB::CheckPassword ) | |
| 105 EVT_BUTTON( ID_HHSUP, FrameHhsDB::UpdateHhsDB ) | |
| 106 EVT_BUTTON( wxID_CANCEL, FrameHhsDB::OnClose ) | |
| 107 END_EVENT_TABLE() | |
| 108 | |
| 109 // Event Handlers | |
| 110 void FrameHhsDB::UpdateHhsDB(wxCommandEvent& WXUNUSED(event)) | |
| 111 { | |
| 112 //this->m_filePicker-> | |
| 113 wxString gszFile = wxGetCwd() + wxT("/db/hhs.db"); | |
| 114 wxSQLite3Database hhsdb; | |
| 115 hhsdb.Open( gszFile ); | |
| 116 | |
| 117 wxSQLite3Statement stmt = hhsdb.PrepareStatement("INSERT INTO hhs_master VALUES ( ?, ?, ?, ?, ?, ? )"); | |
| 118 | |
| 119 //stmt.Bind( 1, hhs ); | |
| 120 //stmt.Bind( 2, hhs ); | |
| 121 //stmt.Bind( 3, hhs ); | |
| 122 //stmt.Bind( 4, hhs ); | |
| 123 //stmt.Bind( 5, hhs ); | |
| 124 //stmt.Bind( 6, hhs ); | |
| 125 wxSQLite3ResultSet q = stmt.ExecuteQuery(); | |
| 126 | |
| 127 stmt.Finalize(); | |
| 128 hhsdb.Close(); | |
| 129 } | |
| 130 | |
| 131 void FrameHhsDB::ReadCSV(wxFileDirPickerEvent& WXUNUSED(event)) | |
| 132 { | |
| 133 wxString filename = m_filePicker->GetPath(); | |
| 134 wxTextFile file; | |
| 135 if ( file.Open(filename) ) { | |
| 136 if ( file.GetLineCount() > 200 ) { | |
| 137 wxMessageBox(wxT("件数が200件を超えました.")); | |
| 138 return; | |
| 139 } | |
| 140 for ( size_t r=0; r<file.GetLineCount(); r++ ) { | |
| 141 int c = 0; | |
| 142 wxStringTokenizer tkz( file[r], wxT(",") ); | |
| 143 while ( tkz.HasMoreTokens() ) { | |
| 144 wxString token = tkz.GetNextToken(); | |
| 145 m_grid->SetCellValue( r, c, token ); | |
| 146 c++; | |
| 147 } | |
| 148 } | |
| 149 } | |
| 150 } | |
| 151 | |
| 152 void FrameHhsDB::CheckPassword(wxCommandEvent& WXUNUSED(event)) | |
| 153 { | |
| 154 wxString pw = this->m_textCtrlPassword->GetLineText(0); | |
| 155 if ( pw.IsSameAs(wxT("9999")) ) { | |
| 156 this->m_btnDBUpdate->Enable( true ); | |
| 157 } | |
| 158 else { | |
| 159 this->m_btnDBUpdate->Enable( false ); | |
| 160 } | |
| 161 } | |
| 162 | |
| 163 void FrameHhsDB::OnClose(wxCommandEvent& WXUNUSED(event)) | |
| 164 { | |
| 165 Close(true); | |
| 166 } | |
| 167 |
