annotate src/db.cpp @ 6:76db82822e73

Implement kana fuzzy search. Implement batch print log.
author pyon@macmini
date Wed, 18 Sep 2013 18:20:40 +0900
parents fdba695b99f1
children 7ac7d28699af
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
1 // Filename : db.cpp
6
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 4
diff changeset
2 // Last Change: 18-Sep-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 "db.h"
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
6 #include "wx/wxsqlite3.h"
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
7
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
8 //********** HHS-DB **********//
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
9 /* 被保番で被保険者情報を取得 */
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
10 wxString GetHhsInfoByHhsNo( wxString hhsno )
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
11 {
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
12 wxString name, addr;
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
13
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
14 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("hhs.db");
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
15 wxSQLite3Database hhsdb;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
16 hhsdb.Open( gszFile );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
17
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
18 wxSQLite3Statement stmt = hhsdb.PrepareStatement( "SELECT name, addr FROM hhs_master WHERE hhsno = ?" );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
19 stmt.Bind( 1, hhsno );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
20 wxSQLite3ResultSet q = stmt.ExecuteQuery();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
21 if ( !q.IsNull(0) ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
22 while ( q.NextRow() ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
23 name = q.GetString(0);
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
24 addr = q.GetString(1);
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
25 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
26 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
27 stmt.Finalize();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
28 hhsdb.Close();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
29
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
30 if ( name.IsEmpty() ) {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
31 return wxEmptyString;
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
32 }
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
33 else {
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
34 return name + wxT("_") + addr;
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
35 }
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
36 }
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
37
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
38 // 氏名カナで被保険者情報を検索
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
39 wxArrayString GetHhsInfoByKana( wxString kana, bool fuzzy )
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
40 {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
41 wxArrayString data;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
42
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
43 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("hhs.db");
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
44 wxSQLite3Database hhsdb;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
45 hhsdb.Open( gszFile );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
46
6
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 4
diff changeset
47 wxString sql = wxT( "SELECT hhsno, kana, name, birth, addr FROM hhs_master " );
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 4
diff changeset
48 if ( fuzzy ) {
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 4
diff changeset
49 kana = wxT("%") + kana + wxT("%");
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 4
diff changeset
50 sql += wxT( "WHERE kana LIKE ? ORDER BY kana, birth;" );
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 4
diff changeset
51 }
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 4
diff changeset
52 else {
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 4
diff changeset
53 sql += wxT( "WHERE kana = ? ORDER BY kana, birth;" );
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 4
diff changeset
54 }
1
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
55
7b6dab24f4b8 Gui parts complete.
pyon@macmini
parents: 0
diff changeset
56 wxSQLite3Statement stmt = hhsdb.PrepareStatement( sql );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
57 stmt.Bind( 1, kana );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
58 wxSQLite3ResultSet q = stmt.ExecuteQuery();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
59
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
60 if ( !q.IsNull(0) ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
61 wxString str;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
62 while ( q.NextRow() ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
63 str = q.GetString(0);
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
64 for ( int i=1; i<5; i++ ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
65 str += "_" + q.GetString(i);
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
66 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
67 data.Add( str );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
68 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
69 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
70 stmt.Finalize();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
71 hhsdb.Close();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
72
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
73 return data;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
74 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
75
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
76 //********** CCN-DB **********//
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
77 /* 被保険者番号からファイルパスを取得 */
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
78 wxArrayString GetPathByHhsNo( wxString hhsno )
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
79 {
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
80 wxArrayString path;
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
81
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
82 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("ccn.db");
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
83 wxSQLite3Database ccndb;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
84 ccndb.Open( gszFile );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
85
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
86 wxString sql = wxT( "SELECT path FROM path WHERE hhsno = ? ORDER BY path DESC;" );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
87 wxSQLite3Statement stmt = ccndb.PrepareStatement( sql );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
88 stmt.Bind( 1, hhsno );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
89 wxSQLite3ResultSet q = stmt.ExecuteQuery();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
90
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
91 if ( !q.IsNull(0) ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
92 while ( q.NextRow() ) {
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
93 path.Add( q.GetString(0) );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
94 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
95 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
96 stmt.Finalize();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
97 ccndb.Close();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
98
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
99 return path;
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
100 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
101
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
102 /* 被保険者が審査会にかかったかどうか */
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
103 bool IsHhsJudged( wxString hhsno )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
104 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
105 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("ccn.db");
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
106 wxSQLite3Database ccndb;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
107 ccndb.Open( gszFile );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
108
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
109 wxString sql = wxT( "SELECT path FROM path WHERE hhsno = ?;" );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
110 wxSQLite3Statement stmt = ccndb.PrepareStatement( sql );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
111 stmt.Bind( 1, hhsno );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
112 wxSQLite3ResultSet q = stmt.ExecuteQuery();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
113
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
114 bool ret = true;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
115 if ( q.IsNull(0) ) ret = false;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
116
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
117 stmt.Finalize();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
118 ccndb.Close();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
119
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
120 return ret;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
121 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
122
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
123 /* 合議体開催日を取得 */
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
124 wxArrayString GetCcnDate( void )
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
125 {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
126 wxArrayString date_cnt;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
127
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
128 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("ccn.db");
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
129 wxSQLite3Database ccndb;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
130 ccndb.Open( gszFile );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
131
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
132 wxSQLite3Statement stmt = ccndb.PrepareStatement( "SELECT date, count(*) FROM ccn GROUP BY date ORDER BY date desc" );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
133 wxSQLite3ResultSet q = stmt.ExecuteQuery();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
134
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
135 wxString str;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
136 if ( !q.IsNull(0) ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
137 while ( q.NextRow() ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
138 str = q.GetString(0) + "_" + q.GetString(1);
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
139 date_cnt.Add( str );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
140 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
141 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
142 stmt.Finalize();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
143 ccndb.Close();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
144
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
145 return date_cnt;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
146 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
147
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
148 /* 日付から審査会を取得 */
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
149 wxArrayString GetCcnByDate( wxString date )
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
150 {
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
151 wxArrayString data;
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
152
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
153 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("ccn.db");
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
154 wxSQLite3Database ccndb;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
155 ccndb.Open( gszFile );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
156
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
157 wxSQLite3Statement stmt = ccndb.PrepareStatement( "SELECT hhsno, path, date FROM path WHERE date = ? ORDER BY path" );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
158 stmt.Bind( 1, date );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
159 wxSQLite3ResultSet q = stmt.ExecuteQuery();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
160
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
161 wxString str;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
162 if ( !q.IsNull(0) ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
163 while ( q.NextRow() ) {
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
164 str = q.GetString(0) + "_" + q.GetString(1) + "_" + q.GetString(2);
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
165 data.Add( str );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
166 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
167 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
168 stmt.Finalize();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
169 ccndb.Close();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
170
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
171 return data;
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
172 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
173
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
174 /* 合議体から被保険者番号を取得 */
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
175 wxArrayString GetHhsNoByCcn( wxString ccn, wxString date )
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
176 {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
177 wxArrayString hhsno;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
178
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
179 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("ccn.db");
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
180 wxSQLite3Database ccndb;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
181 ccndb.Open( gszFile );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
182
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
183 wxSQLite3Statement stmt = ccndb.PrepareStatement( "SELECT hhsno FROM ccn WHERE ccn = ? AND date = ? ORDER BY hhsno" );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
184 stmt.Bind( 1, ccn );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
185 stmt.Bind( 2, date );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
186 wxSQLite3ResultSet q = stmt.ExecuteQuery();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
187
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
188 if ( !q.IsNull(0) ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
189 while ( q.NextRow() ) {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
190 hhsno.Add( q.GetString(0) );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
191 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
192 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
193 stmt.Finalize();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
194 ccndb.Close();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
195
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
196 return hhsno;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
197 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
198
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
199 /* インデックスを更新 */
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
200 void UpdateIndex( wxString datedir, wxString date )
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
201 {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
202 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("ccn.db");
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
203 wxSQLite3Database ccndb;
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
204 ccndb.Open( gszFile );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
205
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
206 wxSQLite3Statement stmt = ccndb.PrepareStatement( "DELETE FROM path WHERE date = ?;" );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
207 stmt.Bind( 1, date );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
208 stmt.ExecuteQuery();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
209 stmt.Finalize();
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
210
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
211 wxString ccndir;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
212 wxDir dated( datedir );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
213 if ( !dated.IsOpened() ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
214 return;
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
215 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
216
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
217 wxRegEx reSinsei( wxT("^00000") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
218 bool cont = dated.GetFirst( &ccndir, wxEmptyString, wxDIR_DIRS );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
219
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
220 wxProgressDialog pd( wxT("進行状況"), wxT("処理開始..."), 240, NULL, wxPD_APP_MODAL|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
221 pd.SetSize( wxSize( 320, 140 ) );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
222 int count = 0;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
223
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
224 while ( cont ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
225
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
226 wxDir ccnd( datedir + wxFILE_SEP_PATH + ccndir );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
227 if ( !ccnd.IsOpened() ) return;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
228 wxString hhsdir;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
229 bool c = ccnd.GetFirst( &hhsdir, wxEmptyString, wxDIR_DIRS );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
230
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
231 while ( c ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
232 if ( ! reSinsei.Matches( hhsdir ) ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
233
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
234 wxString path = datedir + wxFILE_SEP_PATH + ccndir + wxFILE_SEP_PATH + hhsdir;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
235
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
236 stmt = ccndb.PrepareStatement( "INSERT INTO path VALUES( ?, ?, ?, datetime( 'now', 'localtime' ) );" );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
237 stmt.Bind( 1, hhsdir );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
238 stmt.Bind( 2, path );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
239 stmt.Bind( 3, date );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
240 stmt.ExecuteQuery();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
241 stmt.Finalize();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
242 pd.Update( count++, hhsdir + wxT("@") + ccndir + wxT("を処理しました.") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
243 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
244 c = ccnd.GetNext( &hhsdir );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
245 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
246
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
247 cont = dated.GetNext( &ccndir );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
248 }
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
249 ccndb.Close();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
250 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
251
4
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
252 //********** HHS-DB & CCN-DB **********//
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
253 /* DB整合性チェック */
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
254 wxArrayString CheckDBs( void )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
255 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
256 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("ccn.db");
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
257 wxSQLite3Database ccndb;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
258 ccndb.Open( gszFile );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
259
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
260 wxString sql = wxT("ATTACH 'db/hhs.db' AS hhs");
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
261 wxSQLite3Statement stmt = ccndb.PrepareStatement( sql );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
262 wxSQLite3ResultSet q = stmt.ExecuteQuery();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
263
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
264 sql = wxT("SELECT hhsno FROM path EXCEPT SELECT hhsno FROM hhs.hhs_master");
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
265 stmt = ccndb.PrepareStatement( sql );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
266 q = stmt.ExecuteQuery();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
267
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
268 wxArrayString result;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
269 while ( q.NextRow() ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
270 result.Add( q.GetString(0) );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
271 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
272
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
273 stmt.Finalize();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
274 ccndb.Close();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
275
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
276 return result;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
277 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 1
diff changeset
278
4
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
279 // 被保険者番号リストから氏名と最新ファイルパスを取得
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
280 wxArrayString GetHhsInfoAndPathByHhsNoList( wxArrayString hhsno )
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
281 {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
282 wxString gszFile = wxGetCwd() + wxFILE_SEP_PATH + wxT("db") + wxFILE_SEP_PATH + wxT("ccn.db");
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
283 wxSQLite3Database ccndb;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
284 ccndb.Open( gszFile );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
285
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
286 wxString sql = wxT( "ATTACH 'db/hhs.db' AS hhs;" );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
287 wxSQLite3Statement stmt = ccndb.PrepareStatement( sql );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
288 wxSQLite3ResultSet q = stmt.ExecuteQuery();
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
289
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
290 wxArrayString result;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
291 for ( int i = 0; i < hhsno.GetCount(); i++ ) {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
292 wxString str = hhsno[i];
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
293 str.Append( wxT("_") );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
294
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
295 sql = wxT( "SELECT name FROM hhs.hhs_master WHERE hhsno = ?;" );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
296 stmt = ccndb.PrepareStatement( sql );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
297 stmt.Bind( 1, hhsno[i] );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
298 q = stmt.ExecuteQuery();
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
299 if ( !q.IsNull(0) ) {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
300 while ( q.NextRow() ) {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
301 str.Append( q.GetString(0) );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
302 }
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
303 }
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
304 str.Append( wxT("_") );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
305
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
306 sql = wxT( "SELECT path FROM path WHERE hhsno = ? ORDER BY path DESC LIMIT 1;" );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
307 stmt = ccndb.PrepareStatement( sql );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
308 stmt.Bind( 1, hhsno[i] );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
309 q = stmt.ExecuteQuery();
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
310 if ( !q.IsNull(0) ) {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
311 while ( q.NextRow() ) {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
312 str.Append( q.GetString(0) );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
313 }
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
314 }
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
315
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
316 result.Add( str );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
317 }
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
318 stmt.Finalize();
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
319 ccndb.Close();
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
320
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
321 return result;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 2
diff changeset
322 }