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