comparison src/kana.cpp @ 2:c066fde99517

Added Batch Print Mode.
author pyon@macmini
date Fri, 23 Aug 2013 18:32:09 +0900
parents 7b6dab24f4b8
children a2ad87cad48b
comparison
equal deleted inserted replaced
1:7b6dab24f4b8 2:c066fde99517
1 // Filename : kana.cpp 1 // Filename : kana.cpp
2 // Last Change: 04-Aug-2013. 2 // Last Change: 22-Aug-2013.
3 // 3 //
4 4
5 #include "kana.h" 5 #include "kana.h"
6 #include "db.h" 6 #include "db.h"
7 7
47 m_listCtrl->InsertColumn( 4, itemCol ); 47 m_listCtrl->InsertColumn( 4, itemCol );
48 m_listCtrl->SetColumnWidth( 4, 60 ); 48 m_listCtrl->SetColumnWidth( 4, 60 );
49 itemCol.SetText( wxT("住所") ); 49 itemCol.SetText( wxT("住所") );
50 m_listCtrl->InsertColumn( 5, itemCol ); 50 m_listCtrl->InsertColumn( 5, itemCol );
51 m_listCtrl->SetColumnWidth( 5, 180 ); 51 m_listCtrl->SetColumnWidth( 5, 180 );
52 itemCol.SetText( wxT("認定") );
53 m_listCtrl->InsertColumn( 6, itemCol );
54 m_listCtrl->SetColumnWidth( 6, 40 );
52 55
53 bSizerTop->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 ); 56 bSizerTop->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 );
54 57
55 // 58 //
56 wxBoxSizer* bSizerBtn = new wxBoxSizer( wxHORIZONTAL ); 59 wxBoxSizer* bSizerBtn = new wxBoxSizer( wxHORIZONTAL );
57 60
58 m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("キャンセル"), wxDefaultPosition, wxDefaultSize, 0 ); 61 m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("キャンセル"), wxDefaultPosition, wxDefaultSize, 0 );
59 bSizerBtn->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); 62 bSizerBtn->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
60 63
61 m_buttonSet = new wxButton( this, ID_SETKANA, wxT("セット"), wxDefaultPosition, wxDefaultSize, 0 ); 64 m_buttonSet = new wxButton( this, ID_SETKANA, wxT("セット"), wxDefaultPosition, wxDefaultSize, 0 );
62 bSizerBtn->Add( m_buttonSet, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); 65 bSizerBtn->Add( m_buttonSet, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
63 66
64 bSizerTop->Add( bSizerBtn, 0, wxALIGN_RIGHT|wxALL, 5 ); 67 bSizerTop->Add( bSizerBtn, 0, wxALIGN_RIGHT|wxALL, 5 );
65 68
66 this->SetSizer( bSizerTop ); 69 this->SetSizer( bSizerTop );
67 this->Layout(); 70 this->Layout();
68 71
69 this->Centre( wxBOTH ); 72 this->Centre( wxBOTH );
70 73
71 m_searchCtrl->SetFocus(); 74 m_searchCtrl->SetFocus();
72 m_searchCtrl->SetValue( wxT("全角で入力してネ! (性と名の間は全角スペースで)") ); 75 m_searchCtrl->SetValue( wxT("全角で入力してネ! (性と名の間は全角スペースで)") );
73 m_searchCtrl->SelectAll(); 76 m_searchCtrl->SelectAll();
74 } 77 }
94 void KanaDialog::OnFuzzyCheck( wxCommandEvent& WXUNUSED(event) ) 97 void KanaDialog::OnFuzzyCheck( wxCommandEvent& WXUNUSED(event) )
95 { 98 {
96 UpdateList(); 99 UpdateList();
97 } 100 }
98 101
99 void KanaDialog::OnSelectItem( wxListEvent& WXUNUSED(event) ) 102 void KanaDialog::OnSelectItem( wxListEvent& event )
100 { 103 {
101 m_hhsno = wxT("hoge"); 104 int i = event.GetIndex();
105 wxListItem item;
106 item.SetId( i );
107
108 item.SetColumn( 1 );
109 item.SetMask( wxLIST_MASK_TEXT );
110 m_listCtrl->GetItem( item );
111 m_hhsno = item.GetText();
112
102 if ( IsModal() ) 113 if ( IsModal() )
103 EndModal( wxID_OK ); 114 EndModal( wxID_OK );
104 else { 115 else {
105 SetReturnCode( wxID_OK ); 116 SetReturnCode( wxID_OK );
106 Show( false ); 117 Show( false );
107 } 118 }
108 } 119 }
109 120
110 void KanaDialog::OnSet( wxCommandEvent& WXUNUSED(event) ) 121 void KanaDialog::OnSet( wxCommandEvent& WXUNUSED(event) )
111 { 122 {
112 m_hhsno = wxT("hoge"); 123 long i = -1;
124 for ( ;; ) {
125 i = m_listCtrl->GetNextItem( i, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
126 if ( i == -1 ) break;
127
128 wxListItem item;
129 item.SetId( i );
130
131 item.SetColumn( 1 );
132 item.SetMask( wxLIST_MASK_TEXT );
133 m_listCtrl->GetItem( item );
134 m_hhsno = item.GetText();
135 }
136
113 if ( IsModal() ) 137 if ( IsModal() )
114 EndModal( wxID_OK ); 138 EndModal( wxID_OK );
115 else { 139 else {
116 SetReturnCode( wxID_OK ); 140 SetReturnCode( wxID_OK );
117 Show( false ); 141 Show( false );
135 return; 159 return;
136 } 160 }
137 */ 161 */
138 162
139 bool fuzzy = m_checkBox->IsChecked(); 163 bool fuzzy = m_checkBox->IsChecked();
140 m_hhs = GetHhsInfoByKana( s, fuzzy ); 164 wxArrayString hhs = GetHhsInfoByKana( s, fuzzy );
141 165
142 if ( m_hhs.GetCount() > 200 ) { 166 if ( hhs.GetCount() > 200 ) {
143 wxMessageBox( wxT("該当件数が 200 件を超えました.\n条件を変えてみてください.") ); 167 wxMessageBox( wxT("該当件数が 200 件を超えました.\n条件を変えてみてください.") );
144 return; 168 return;
145 } 169 }
146 else if ( m_hhs.IsEmpty() ){ 170 else if ( hhs.IsEmpty() ){
147 wxMessageBox( wxT("該当なし.") ); 171 wxMessageBox( wxT("該当なし.") );
148 return; 172 return;
149 } 173 }
150 174
151 wxString buf; 175 wxString buf;
152 for ( int i = 0; i < m_hhs.GetCount(); i++ ) { 176 for ( int i = 0; i < hhs.GetCount(); i++ ) {
153 int col = 0; 177 int col = 0;
154 m_listCtrl->InsertItem( i, -1 ); 178 m_listCtrl->InsertItem( i, -1 );
155 buf.Printf( wxT("%02d"), i + 1 ); 179 buf.Printf( wxT("%02d"), i + 1 );
156 m_listCtrl->SetItem( i, col, buf, -1 ); // No 180 m_listCtrl->SetItem( i, col, buf, -1 ); // No
157 181
158 wxStringTokenizer tkz( m_hhs[i], wxT("_") ); 182 wxStringTokenizer tkz( hhs[i], wxT("_") ); // hhsno, kana, name, birth, addr
159 while ( tkz.HasMoreTokens() ) { 183 while ( tkz.HasMoreTokens() ) {
160 col++; 184 col++;
161 wxString token = tkz.GetNextToken(); 185 wxString token = tkz.GetNextToken();
162 m_listCtrl->SetItem( i, col, token, -1 ); 186 m_listCtrl->SetItem( i, col, token, -1 );
187 if ( col == 1 ) { // ccn
188 if ( IsHhsJudged( token ) ) {
189 m_listCtrl->SetItem( i, 6, wxT("○"), -1 );
190 }
191 }
163 } 192 }
164 if ( i % 2 ) m_listCtrl->SetItemBackgroundColour( i, wxColour(wxT("WHEAT")) ); 193 if ( i % 2 ) m_listCtrl->SetItemBackgroundColour( i, wxColour( wxT("WHEAT") ) );
165 } 194 }
166 } 195 }
167 196
168