comparison src/myframe.cpp @ 11:07adad93df84

ver2.9 Add Name-View
author pyon@macmini
date Thu, 23 Jun 2011 20:13:34 +0900
parents 24e0775af32e
children 9452ed888d10
comparison
equal deleted inserted replaced
10:24e0775af32e 11:07adad93df84
1 // Filename : mainframe.cpp 1 // Filename : mainframe.cpp
2 // Last Change: 22-Jun-2011. 2 // Last Change: 23-Jun-2011.
3 // 3 //
4 4
5 #include "symbol.h" 5 #include "symbol.h"
6 #include "common.h" 6 #include "common.h"
7 #include "myframe.h" 7 #include "myframe.h"
161 h->Show(true); 161 h->Show(true);
162 g->Show(false); 162 g->Show(false);
163 163
164 wxRegEx reHhs(wxT("^0[1238][0-9]{8}$")); // 1:被保番チェック 164 wxRegEx reHhs(wxT("^0[1238][0-9]{8}$")); // 1:被保番チェック
165 wxRegEx reCno(wxT("^[0-9]{1,2}$")); // 2:開くフォルダの番号 165 wxRegEx reCno(wxT("^[0-9]{1,2}$")); // 2:開くフォルダの番号
166 wxRegEx rePrint(wxT("^.[0-9]{1,2}$")); // 3:印刷するフォルダの番号 166 wxRegEx rePrint(wxT("^\.[0-9]*$")); // 3:印刷するフォルダの番号
167 167
168 wxString cmd; 168 wxString cmd;
169 cmd = this->GetLineText(0); 169 cmd = this->GetLineText(0);
170 int cond = 0; 170 int cond = 0;
171 if ( reHhs.Matches( cmd ) ) 171 if ( reHhs.Matches( cmd ) )
220 hr->LoadPage( wxT("html/notfound.html") ); 220 hr->LoadPage( wxT("html/notfound.html") );
221 mf->m_statusBar->SetStatusText( wxT("データが存在しません."), 0 ); 221 mf->m_statusBar->SetStatusText( wxT("データが存在しません."), 0 );
222 return; 222 return;
223 } 223 }
224 224
225 // HTML 生成
226 path.Clear(); 225 path.Clear();
227 htmlbody = wxT("<html><body>");
228 htmlbody += wxT("該当者: ");
229 htmlbody += wxT("<b>") + name + wxT("</b>");
230 htmlbody += wxT(" ( ") + hhs + wxT(" )");
231 htmlbody += wxT("<br /><br />検索結果");
232 htmlbody += wxT("<table border=1>");
233 htmlbody += wxT("<tr bgcolor=\"#ffcc33\"><th>番号</th><th>日付</th><th>フォルダ</th></tr>");
234
235 wxRegEx reDate(wxT("(^.*20[0-9]{2}.)(20[0-9]{2})([0-2][0-9])([0-9]{2})(.*$)")); 226 wxRegEx reDate(wxT("(^.*20[0-9]{2}.)(20[0-9]{2})([0-2][0-9])([0-9]{2})(.*$)"));
236 227
237 int i=1; 228 int i=1;
238 int clrflg = 1; 229 int clrflg = -1;
239 while ( q.NextRow() ) { 230 while ( q.NextRow() ) {
240 wxString filepath; 231 wxString filepath = q.GetString(0);
241 filepath = q.GetString(0);
242 // 氏名画像生成 232 // 氏名画像生成
243 if ( 0 ) { 233 wxDir dir(filepath);
244 wxDir dir(filepath); 234 wxString file;
245 wxString file; 235 if ( !dir.IsOpened() ) return;
246 if ( !dir.IsOpened() ) return; 236
247 237 if ( clrflg == -1 ) {
248 bool cout = dir.GetFirst( &file, wxT("*.jpg"), wxDIR_FILES ); 238 bool cout = dir.GetFirst( &file, wxT("*.jpg"), wxDIR_FILES );
249 if ( cout ) { 239 if ( cout ) {
250 wxString s = filepath + wxFILE_SEP_PATH + file; 240 wxString s = filepath + wxFILE_SEP_PATH + file;
251 wxImage img_org( s, wxBITMAP_TYPE_JPEG ); 241 wxImage img_org( s, wxBITMAP_TYPE_JPEG );
252 wxImage img_name; 242 wxImage img_name;
253 img_name = img_org.GetSubImage( wxRect( wxPoint(328,556), wxSize(626,288) ) ); 243 img_name = img_org.GetSubImage( wxRect( wxPoint(328,556), wxSize(626,288) ) );
254 img_name.Scale( 92, 200 ); 244 img_name = img_name.Scale( 200, 92 );
255 img_name.SaveFile( wxT("tmp/tmp.jpg") ); 245 img_name.SaveFile( wxT("tmp/tmp.jpg") );
246
247 // HTML生成
248 htmlbody = wxT("<html><body>");
249 htmlbody += wxT("<table border=0>");
250 htmlbody += wxT("<tr bgcolor=\"#ffffcc\"><td>該当者: </td><td></td></tr>");
251 htmlbody += wxT("<tr><td><b>") + name + wxT("</b></td>");
252 htmlbody += wxT("<td> ( ") + hhs + wxT(" )") + wxT("</td></tr>");
253 htmlbody += wxT("</table><br /><br />");
254 htmlbody += wxT("<table border=0>");
255 htmlbody += wxT("<tr><td bgcolor=\"#ffffcc\">番号1の画像情報:</td></tr>");
256 htmlbody += wxT("<tr><td><img src=\"tmp/tmp.jpg\" /></td></tr>");
257 htmlbody += wxT("</table>");
258 htmlbody += wxT("<br /><br />検索結果");
259 htmlbody += wxT("<table border=1>");
260 htmlbody += wxT("<tr bgcolor=\"#ffcc33\"><th>番号</th><th>日付</th><th>フォルダ</th></tr>");
256 } 261 }
257 } 262 clrflg = 1;
263 }
258 264
259 path.Add(filepath); 265 path.Add(filepath);
260 wxString date = filepath; 266 wxString date = filepath;
261 reDate.ReplaceAll( &date, wxT("\\2-\\3-\\4") ); 267 reDate.ReplaceAll( &date, wxT("\\2-\\3-\\4") );
262 268
277 path.Shrink(); 283 path.Shrink();
278 284
279 htmlbody += wxT("</table>"); 285 htmlbody += wxT("</table>");
280 htmlbody += wxT("<br />"); 286 htmlbody += wxT("<br />");
281 htmlbody += wxT("<div>"); 287 htmlbody += wxT("<div>");
282 htmlbody += wxT("番号1の画像情報");
283 htmlbody += wxT("<img src=\"tmp/name.jpg\" />");
284 htmlbody += wxT("</div>");
285 htmlbody += wxT("<div>");
286 htmlbody += wxT("フォルダを開くには,番号を入力してください.<br />"); 288 htmlbody += wxT("フォルダを開くには,番号を入力してください.<br />");
287 htmlbody += wxT("他の被保険者を検索するには,被保番を入力してください."); 289 htmlbody += wxT("他の被保険者を検索するには,被保番を入力してください.");
288 htmlbody += wxT("</div>"); 290 htmlbody += wxT("</div>");
289 htmlbody += wxT("</body></html>"); 291 htmlbody += wxT("</body></html>");
290 292
299 cmd.ToLong( &val, 10 ); 301 cmd.ToLong( &val, 10 );
300 val--; 302 val--;
301 if ( path.IsEmpty() 303 if ( path.IsEmpty()
302 || val < 0 304 || val < 0
303 || val > path.GetCount()-1 ) { 305 || val > path.GetCount()-1 ) {
304 mf->m_statusBar->SetStatusText( wxT("不適切な入力です."), 0 ); 306 mf->m_statusBar->SetStatusText( wxT("不適切な入力です.警告コード2"), 0 );
305 break; 307 break;
306 } 308 }
307 wxString execmd = wxT("explorer ") + path[val]; 309 wxString execmd = wxT("explorer ") + path[val];
308 wxExecute( execmd ); 310 wxExecute( execmd );
309 mf->m_statusBar->SetStatusText( wxEmptyString, 0 ); 311 mf->m_statusBar->SetStatusText( wxEmptyString, 0 );
310 312
311 // 検索履歴をログに保存 313 // 検索履歴をログに保存
312 wxString logfn = wxGetCwd() + wxT("/tmp/log.txt"); 314 wxString logfn = wxGetCwd() + wxFILE_SEP_PATH + wxT("tmp") + wxFILE_SEP_PATH + wxT("log.txt");
313 wxTextFile logFile; 315 wxTextFile logFile;
314 logFile.Open( logfn ); 316 logFile.Open( logfn );
315 wxDateTime now = wxDateTime::Now(); 317 wxDateTime now = wxDateTime::Now();
316 wxString log = now.Format() + wxT(" " ) + cmd + wxT(" ") + path[val]; 318 wxString log = now.Format() + wxT(" " ) + cmd + wxT(" ") + path[val];
317 logFile.AddLine( log ); 319 logFile.AddLine( log );
320 322
321 break; 323 break;
322 } 324 }
323 // ファイル印刷 325 // ファイル印刷
324 case 3: { 326 case 3: {
327 this->SetSelection( 0, this->GetLastPosition() );
328 if ( path.IsEmpty() ) {
329 mf->m_statusBar->SetStatusText( wxT("不適切な入力です.警告コード3"), 0 );
330 break;
331 }
332 wxMessageBox(wxT("333"));
325 break; 333 break;
326 } 334 }
327 // 制御用コマンド 335 // 制御用コマンド
328 case 0: { 336 case 0: {
329 337