annotate src/kana.cpp @ 1:7b6dab24f4b8

Gui parts complete.
author pyon@macmini
date Sun, 04 Aug 2013 21:42:49 +0900
parents 0c0701a935f8
children c066fde99517
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
1 // Filename : kana.cpp
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
2 // Last Change: 04-Aug-2013.
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
3 //
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
4
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
5 #include "kana.h"
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
6 #include "db.h"
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
7
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
8 KanaDialog::KanaDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style )
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
9 : wxDialog( parent, id, title, pos, size, style )
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
10 {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
11 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
12
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
13 wxBoxSizer* bSizerTop = new wxBoxSizer( wxVERTICAL );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
14
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
15 //
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
16 wxBoxSizer* bSizerSearch = new wxBoxSizer( wxHORIZONTAL );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
17
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
18 m_searchCtrl = new wxSearchCtrl( this, ID_SEARCHKANA, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
19 #ifndef __WXMAC__
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
20 m_searchCtrl->ShowSearchButton( true );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
21 #endif
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
22 m_searchCtrl->ShowCancelButton( false );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
23 bSizerSearch->Add( m_searchCtrl, 1, wxALL|wxEXPAND, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
24
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
25 m_checkBox = new wxCheckBox( this, ID_FUZZY, wxT("部分一致"), wxDefaultPosition, wxDefaultSize, 0 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
26 bSizerSearch->Add( m_checkBox, 0, wxALL|wxEXPAND, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
27
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
28 bSizerTop->Add( bSizerSearch, 0, wxALL|wxEXPAND, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
29
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
30 //
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
31 m_listCtrl = new wxListCtrl( this, ID_LISTKANA, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
32
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
33 wxListItem itemCol;
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
34 itemCol.SetText( wxT("通番") );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
35 m_listCtrl->InsertColumn( 0, itemCol );
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
36 m_listCtrl->SetColumnWidth( 0, 40 );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
37 itemCol.SetText( wxT("被保険者番号") );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
38 m_listCtrl->InsertColumn( 1, itemCol );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
39 m_listCtrl->SetColumnWidth( 1, 90 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
40 itemCol.SetText( wxT("カナ") );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
41 m_listCtrl->InsertColumn( 2, itemCol );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
42 m_listCtrl->SetColumnWidth( 2, 100 );
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
43 itemCol.SetText( wxT("氏名") );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
44 m_listCtrl->InsertColumn( 3, itemCol );
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
45 m_listCtrl->SetColumnWidth( 3, 100 );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
46 itemCol.SetText( wxT("生年月日") );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
47 m_listCtrl->InsertColumn( 4, itemCol );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
48 m_listCtrl->SetColumnWidth( 4, 60 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
49 itemCol.SetText( wxT("住所") );
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
50 m_listCtrl->InsertColumn( 5, itemCol );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
51 m_listCtrl->SetColumnWidth( 5, 180 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
52
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
53 bSizerTop->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
54
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
55 //
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
56 wxBoxSizer* bSizerBtn = new wxBoxSizer( wxHORIZONTAL );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
57
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
58 m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("キャンセル"), wxDefaultPosition, wxDefaultSize, 0 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
59 bSizerBtn->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
60
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
61 m_buttonSet = new wxButton( this, ID_SETKANA, wxT("セット"), wxDefaultPosition, wxDefaultSize, 0 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
62 bSizerBtn->Add( m_buttonSet, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
63
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
64 bSizerTop->Add( bSizerBtn, 0, wxALIGN_RIGHT|wxALL, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
65
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
66 this->SetSizer( bSizerTop );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
67 this->Layout();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
68
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
69 this->Centre( wxBOTH );
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
70
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
71 m_searchCtrl->SetFocus();
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
72 m_searchCtrl->SetValue( wxT("全角で入力してネ! (性と名の間は全角スペースで)") );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
73 m_searchCtrl->SelectAll();
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
74 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
75
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
76 KanaDialog::~KanaDialog()
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
77 {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
78 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
79
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
80 // Event Table
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
81 BEGIN_EVENT_TABLE( KanaDialog, wxDialog )
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
82 EVT_TEXT_ENTER( ID_SEARCHKANA, KanaDialog::OnSearch )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
83 EVT_CHECKBOX( ID_FUZZY, KanaDialog::OnFuzzyCheck )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
84 EVT_LIST_ITEM_ACTIVATED( ID_LISTKANA, KanaDialog::OnSelectItem )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
85 EVT_BUTTON( ID_SETKANA, KanaDialog::OnSet )
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
86 END_EVENT_TABLE()
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
87
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
88 // Event Handlers & Functions
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
89 void KanaDialog::OnSearch( wxCommandEvent& WXUNUSED(event) )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
90 {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
91 UpdateList();
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
92 }
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
93
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
94 void KanaDialog::OnFuzzyCheck( wxCommandEvent& WXUNUSED(event) )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
95 {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
96 UpdateList();
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
97 }
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
98
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
99 void KanaDialog::OnSelectItem( wxListEvent& WXUNUSED(event) )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
100 {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
101 m_hhsno = wxT("hoge");
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
102 if ( IsModal() )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
103 EndModal( wxID_OK );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
104 else {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
105 SetReturnCode( wxID_OK );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
106 Show( false );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
107 }
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
108 }
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
109
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
110 void KanaDialog::OnSet( wxCommandEvent& WXUNUSED(event) )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
111 {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
112 m_hhsno = wxT("hoge");
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
113 if ( IsModal() )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
114 EndModal( wxID_OK );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
115 else {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
116 SetReturnCode( wxID_OK );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
117 Show( false );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
118 }
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
119 }
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
120
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
121 void KanaDialog::UpdateList( void )
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
122 {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
123 m_listCtrl->DeleteAllItems();
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
124
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
125 wxString s = m_searchCtrl->GetValue();
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
126 if ( s.Len() < 3 ) {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
127 wxMessageBox( wxT("指定する文字列は 3文字以上としてください.") );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
128 return;
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
129 }
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
130
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
131 /*
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
132 wxRegEx reKana( "^[アイウエオカキクケコサシスセソナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲコザジズゼゾダヂヅデドバビブベボパピプペポァィゥェォャュョ ]+$" );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
133 if ( !reKana.Matches( s ) ) {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
134 wxMessageBox( wxT("カタカナで入力してください.") );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
135 return;
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
136 }
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
137 */
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
138
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
139 bool fuzzy = m_checkBox->IsChecked();
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
140 m_hhs = GetHhsInfoByKana( s, fuzzy );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
141
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
142 if ( m_hhs.GetCount() > 200 ) {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
143 wxMessageBox( wxT("該当件数が 200 件を超えました.\n条件を変えてみてください.") );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
144 return;
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
145 }
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
146 else if ( m_hhs.IsEmpty() ){
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
147 wxMessageBox( wxT("該当なし.") );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
148 return;
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
149 }
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
150
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
151 wxString buf;
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
152 for ( int i = 0; i < m_hhs.GetCount(); i++ ) {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
153 int col = 0;
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
154 m_listCtrl->InsertItem( i, -1 );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
155 buf.Printf( wxT("%02d"), i + 1 );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
156 m_listCtrl->SetItem( i, col, buf, -1 ); // No
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
157
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
158 wxStringTokenizer tkz( m_hhs[i], wxT("_") );
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
159 while ( tkz.HasMoreTokens() ) {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
160 col++;
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
161 wxString token = tkz.GetNextToken();
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
162 m_listCtrl->SetItem( i, col, token, -1 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
163 }
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
164 if ( i % 2 ) m_listCtrl->SetItemBackgroundColour( i, wxColour(wxT("WHEAT")) );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
165 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
166 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
167
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
168