annotate src/index.cpp @ 10:29021e6e1ebe

Implement thumbnail list in PreviewDialog.
author pyon@macmini
date Mon, 28 Apr 2014 18:14:04 +0900
parents 4967d1e2b30c
children 52958cd4a073
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
1 // Filename : index.cpp
10
29021e6e1ebe Implement thumbnail list in PreviewDialog.
pyon@macmini
parents: 8
diff changeset
2 // Last Change: 28-Apr-2014.
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 "index.h"
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
6 #include "db.h"
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
7 #include "wx/wxsqlite3.h"
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
8
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
9 IndexDialog::IndexDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style )
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
10 : wxDialog( parent, id, title, pos, size, style )
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
11 {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
12 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
13
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
14 wxBoxSizer* bSizerTop = new wxBoxSizer( wxHORIZONTAL );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
15
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
16 m_listCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
17
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
18 wxListItem itemCol;
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
19 itemCol.SetText( wxT("通番") );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
20 m_listCtrl->InsertColumn( 0, itemCol );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
21 m_listCtrl->SetColumnWidth( 0, 50 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
22 itemCol.SetText( wxT("年月日") );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
23 m_listCtrl->InsertColumn( 1, itemCol );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
24 m_listCtrl->SetColumnWidth( 1, 80 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
25 itemCol.SetText( wxT("合議体") );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
26 m_listCtrl->InsertColumn( 2, itemCol );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
27 m_listCtrl->SetColumnWidth( 2, 60 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
28 itemCol.SetText( wxT("被保険者番号") );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
29 m_listCtrl->InsertColumn( 3, itemCol );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
30 m_listCtrl->SetColumnWidth( 3, 100 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
31 itemCol.SetText( wxT("氏名") );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
32 m_listCtrl->InsertColumn( 4, itemCol );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
33 m_listCtrl->SetColumnWidth( 4, 120 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
34
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
35 bSizerTop->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
36
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
37 wxBoxSizer* bSizerR = new wxBoxSizer( wxVERTICAL );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
38
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
39 m_calendar = new wxCalendarCtrl( this, ID_CALNENDER, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
40 bSizerR->Add( m_calendar, 0, wxALL, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
41
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
42 m_buttonMake = new wxButton( this, ID_MKINDEX, wxT("作成"), wxDefaultPosition, wxDefaultSize, 0 );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
43 bSizerR->Add( m_buttonMake, 0, wxALIGN_RIGHT|wxALL, 5 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
44
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
45 bSizerR->Add( 0, 300, 1, wxEXPAND, 5 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
46
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
47 m_richText = new wxRichTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1, 100 ), wxVSCROLL|wxBORDER_NONE|wxWANTS_CHARS );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
48 bSizerR->Add( m_richText, 0, wxEXPAND|wxALL, 5 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
49
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
50 m_buttonClose = new wxButton( this, wxID_CANCEL, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
51 bSizerR->Add( m_buttonClose, 0, wxALIGN_RIGHT|wxALL, 5 );
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
52
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
53 bSizerTop->Add( bSizerR, 0, wxALIGN_RIGHT, 5 );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
54
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
55 this->SetSizer( bSizerTop );
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
56 this->Layout();
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
57
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
58 this->Centre( wxBOTH );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
59
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
60 CheckHhs();
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
61 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
62
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
63 IndexDialog::~IndexDialog()
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
64 {
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
65 }
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
66
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
67 // Event Table
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
68 BEGIN_EVENT_TABLE( IndexDialog, wxDialog )
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
69 EVT_CALENDAR_PAGE_CHANGED( ID_CALNENDER, IndexDialog::OnPage )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
70 EVT_CALENDAR( ID_CALNENDER, IndexDialog::OnSelect )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
71 EVT_BUTTON( ID_MKINDEX, IndexDialog::OnMakeIndex )
0
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
72 END_EVENT_TABLE()
0c0701a935f8 Start Development.
pyon@macmini
parents:
diff changeset
73
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
74 // Event Handlers & Functions
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
75 void IndexDialog::OnSelect( wxCalendarEvent& WXUNUSED(event) )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
76 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
77 UpdateList();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
78 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
79
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
80 void IndexDialog::OnMakeIndex( wxCommandEvent& WXUNUSED(event) )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
81 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
82 wxDateTime dt = m_calendar->GetDate();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
83 wxString month = dt.Format( wxT("%m") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
84 wxString year = dt.Format( wxT("%Y") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
85 if ( month.IsSameAs( wxT("01") ) || month.IsSameAs( wxT("02") ) || month.IsSameAs( wxT("03") ) ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
86 long y;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
87 year.ToLong( &y, 10 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
88 y--;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
89 year = wxString::Format( wxT("%d"), y );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
90 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
91
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
92
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
93 wxString date = dt.Format( wxT("%Y%m%d") );
8
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 7
diff changeset
94 wxString datadir = m_rootdir + wxFILE_SEP_PATH + year + wxFILE_SEP_PATH + date;
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 7
diff changeset
95 if ( !wxDir::Exists( datadir ) ) {
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 7
diff changeset
96 wxMessageBox( wxT("フォルダが存在しません.") + datadir );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
97 return;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
98 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
99
8
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 7
diff changeset
100 UpdateIndex( datadir, date );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
101
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
102 UpdateList();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
103 wxMessageBox( wxT("インデックス作成が終了しました.") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
104 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
105
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
106 void IndexDialog::OnPage( wxCalendarEvent& WXUNUSED(event) ) {}
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
107
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
108 void IndexDialog::UpdateList( void )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
109 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
110 wxDateTime dt = m_calendar->GetDate();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
111 wxString ymd = dt.Format( wxT("%Y%m%d") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
112
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
113 wxArrayString ccn = GetCcnByDate( ymd );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
114
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
115 m_listCtrl->DeleteAllItems();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
116
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
117 wxString buf;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
118 for ( int i = 0; i < ccn.GetCount(); i++ ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
119 m_listCtrl->InsertItem( i, -1 );
10
29021e6e1ebe Implement thumbnail list in PreviewDialog.
pyon@macmini
parents: 8
diff changeset
120 buf.Printf( wxT("%03d"), i + 1 );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
121 m_listCtrl->SetItem( i, 0, buf, -1 ); // No
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
122
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
123 wxArrayString ary = wxSplit( ccn[i], '_', '\\' ); // hhsno, path, date
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
124 buf = GetHhsInfoByHhsNo( ary[0] );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
125 wxString name = buf.BeforeFirst( '_' );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
126 wxString ccnn = ary[1].Mid( 17, 3 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
127
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
128 m_listCtrl->SetItem( i, 1, ary[2], -1 ); // date
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
129 m_listCtrl->SetItem( i, 2, ccnn, -1 ); // ccn
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
130 m_listCtrl->SetItem( i, 3, ary[0], -1 ); // hhsno
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
131 m_listCtrl->SetItem( i, 4, name, -1 ); // name
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
132
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
133 if ( i % 2 ) m_listCtrl->SetItemBackgroundColour( i, wxColour(wxT("WHEAT")) );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
134 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
135 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
136
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
137 void IndexDialog::CheckHhs( void )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
138 {
7
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
139 wxArrayString date = GetLastUpdate();
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
140 wxArrayString result = CheckDBs();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
141
7
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
142 m_richText->BeginBold();
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
143 m_richText->WriteText( wxT("最終更新年月日") );
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
144 m_richText->EndBold();
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
145 m_richText->Newline();
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
146 m_richText->BeginTextColour( wxColour( 0, 0, 255 ) );
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
147 m_richText->WriteText( wxT("インデックス:") );
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
148 m_richText->EndTextColour();
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
149 m_richText->WriteText( date[0] );
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
150 m_richText->Newline();
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
151
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
152 m_richText->BeginTextColour( wxColour( 0, 0, 255 ) );
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
153 m_richText->WriteText( wxT("被保険者情報:") );
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
154 m_richText->EndTextColour();
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
155 m_richText->WriteText( date[1] );
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
156 m_richText->Newline();
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
157 m_richText->Newline();
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
158
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
159 for ( int i = 0; i < result.GetCount(); i++ ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
160 m_richText->WriteText( wxT("チェック対象 : ") );
7
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
161 m_richText->BeginTextColour( wxColour( 255, 0, 0 ) );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
162 m_richText->WriteText( result[i] );
7
7ac7d28699af Display DB update day.
pyon@macmini
parents: 2
diff changeset
163 m_richText->EndTextColour();
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
164 m_richText->Newline();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
165 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
166 m_richText->SetEditable( false );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
167 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents: 0
diff changeset
168