annotate src/bprint.cpp @ 21:a2ad87cad48b

Enhanced the convenience of Cache dialog.
author pyon@macmini
date Wed, 17 Dec 2014 00:52:43 +0900
parents bbd65edf71d4
children 92188f60323d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
1 // Filename : bprint.cpp
21
a2ad87cad48b Enhanced the convenience of Cache dialog.
pyon@macmini
parents: 13
diff changeset
2 // Last Change: 12-Aug-2014.
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
3 //
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
4
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
5 #include "bprint.h"
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
6 #include "marksheet.h"
3
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents: 2
diff changeset
7 #include "dndfile.h"
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
8 #include "db.h"
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
9
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
10 FrameBatchPrint::FrameBatchPrint( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
11 : wxDialog( parent, id, title, pos, size, style )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
12 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
13 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
14 this->SetBackgroundColour( wxColour( wxT("WHEAT") ) );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
15
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
16 wxBoxSizer* bSizerTop = new wxBoxSizer( wxHORIZONTAL );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
17
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
18 m_grid = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
19
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
20 // Grid
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
21 m_grid->CreateGrid( 25, 4 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
22 m_grid->EnableEditing( true );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
23 m_grid->EnableGridLines( true );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
24 m_grid->EnableDragGridSize( false );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
25 m_grid->SetMargins( 0, 0 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
26
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
27 // Columns
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
28 m_grid->EnableDragColMove( false );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
29 m_grid->EnableDragColSize( true );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
30 m_grid->SetColLabelSize( 30 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
31 m_grid->SetColLabelValue( 0, wxT("被保険者番号") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
32 m_grid->SetColLabelValue( 1, wxT("氏名") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
33 m_grid->SetColLabelValue( 2, wxT("最新フォルダ") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
34 m_grid->SetColLabelValue( 3, wxT("ステータス") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
35 m_grid->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
36 m_grid->SetColSize( 0, 100 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
37 m_grid->SetColSize( 1, 100 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
38 m_grid->SetColSize( 2, 220 );
8
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
39 m_grid->SetColSize( 3, 90 );
3
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents: 2
diff changeset
40 m_grid->ShowScrollbars( wxSHOW_SB_NEVER, wxSHOW_SB_ALWAYS );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
41
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
42 // Rows
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
43 m_grid->EnableDragRowSize( true );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
44 m_grid->SetRowLabelSize( 30 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
45 m_grid->SetRowLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
46
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
47 // Cell Defaults
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
48 m_grid->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_CENTRE );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
49 bSizerTop->Add( m_grid, 1, wxALL|wxEXPAND, 5 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
50
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
51 wxBoxSizer* bSizerButton = new wxBoxSizer( wxVERTICAL );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
52
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
53 bSizerButton->Add( 0, 20, 0, 0, 5 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
54
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
55 m_buttonClear = new wxButton( this, ID_BPCLEAR, wxT("クリア"), wxDefaultPosition, wxDefaultSize, 0 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
56 bSizerButton->Add( m_buttonClear, 0, wxALL, 5 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
57
12
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
58 m_buttonMaskPrint = new wxButton( this, ID_BPFFMP, wxT("FFMP"), wxDefaultPosition, wxDefaultSize, 0 );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
59 bSizerButton->Add( m_buttonMaskPrint, 0, wxALL, 5 );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
60
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
61 m_buttonPrint = new wxButton( this, ID_BPPRINT, wxT("一括印刷"), wxDefaultPosition, wxDefaultSize, 0 );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
62 bSizerButton->Add( m_buttonPrint, 0, wxALL, 5 );
12
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
63
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
64 m_buttonLdLog = new wxButton( this, ID_BPLDLOG, wxT("一括印刷ログ"), wxDefaultPosition, wxDefaultSize, 0 );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
65 bSizerButton->Add( m_buttonLdLog, 0, wxALL, 5 );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
66
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
67 bSizerButton->Add( 0, 20, 0, 0, 5 );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
68
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
69 bSizerButton->Add( 0, 20, 0, 0, 5 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
70
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
71 m_buttonClose = new wxButton( this, wxID_CANCEL, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
72 m_buttonClose->SetDefault();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
73 bSizerButton->Add( m_buttonClose, 0, wxALL, 5 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
74
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
75 bSizerTop->Add( bSizerButton, 0, wxEXPAND, 5 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
76
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
77 this->SetSizer( bSizerTop );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
78 this->Layout();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
79
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
80 this->Centre( wxBOTH );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
81
3
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents: 2
diff changeset
82 this->SetDropTarget( new DnDFile( m_grid ) );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
83 SetGridReadOnly();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
84 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
85
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
86 FrameBatchPrint::~FrameBatchPrint()
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
87 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
88 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
89
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
90 // Event Table
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
91 BEGIN_EVENT_TABLE( FrameBatchPrint, wxDialog )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
92 EVT_GRID_CELL_CHANGING( FrameBatchPrint::OnInput )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
93 EVT_BUTTON( ID_BPCLEAR, FrameBatchPrint::OnClear )
12
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
94 EVT_BUTTON( ID_BPFFMP, FrameBatchPrint::OnMaskPrint )
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
95 EVT_BUTTON( ID_BPPRINT, FrameBatchPrint::OnPrint )
12
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
96 EVT_BUTTON( ID_BPLDLOG, FrameBatchPrint::OnLoadLog )
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
97 END_EVENT_TABLE()
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
98
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
99 // Event Handlers & Functions
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
100 /* 氏名などを表示 */
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
101 void FrameBatchPrint::OnInput( wxGridEvent& event )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
102 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
103 wxString hhsno = event.GetString();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
104 int r = event.GetRow();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
105 for ( int c = 1; c < m_grid->GetNumberCols(); c++ )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
106 m_grid->SetCellValue( r, c, wxEmptyString );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
107
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
108 wxArrayString info = wxSplit( GetHhsInfoByHhsNo( hhsno ), '_', '\\' );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
109 wxArrayString path = GetPathByHhsNo( hhsno );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
110
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
111 if ( info.IsEmpty() ) info.Add( wxEmptyString );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
112 if ( path.IsEmpty() ) {
13
bbd65edf71d4 Implement Hhs DB update dialog.
pyon@macmini
parents: 12
diff changeset
113 wxMessageBox( wxT("審査会がありません.") );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
114 path.Add( wxEmptyString );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
115 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
116
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
117 m_grid->SetCellValue( r, 1, info[0] );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
118 m_grid->SetCellValue( r, 2, path[0] );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
119 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
120
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
121 /* グリッドをクリア */
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
122 void FrameBatchPrint::OnClear( wxCommandEvent& WXUNUSED(event) )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
123 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
124 m_grid->ClearGrid();
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
125 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
126
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
127 /* 一括印刷処理 */
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
128 void FrameBatchPrint::OnPrint( wxCommandEvent& WXUNUSED(event) )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
129 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
130 wxPrintDialogData pd;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
131 wxPrinter p( &pd );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
132 p.PrintDialog( NULL );
6
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
133 wxArrayString log;
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
134
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
135 for ( int r = 0; r < m_grid->GetNumberRows(); r++ ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
136 wxString path = m_grid->GetCellValue( r, 2 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
137
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
138 // 印刷用の html を作成
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
139 if ( path.IsEmpty() ) continue;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
140
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
141 wxDir dir( path );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
142 if ( !dir.IsOpened() ) return;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
143
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
144 wxString html;
12
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
145 html = wxT("<html><body>\n");
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
146
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
147 wxString file;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
148 bool cout = dir.GetFirst( &file, wxT("*.jpg"), wxDIR_FILES );
4
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
149 bool notyet_mask = true;
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
150 int n = 0;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
151 wxString tmpdir = wxGetCwd() + wxFILE_SEP_PATH + wxT("tmp") + wxFILE_SEP_PATH;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
152 while ( cout ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
153 file = path + wxFILE_SEP_PATH + file;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
154 file.Replace( wxFILE_SEP_PATH, wxT("/") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
155 wxString tmpjpg = wxString::Format( wxT("%stmp%d.jpg"), tmpdir, n );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
156
5
bc2e2b304095 Clean up code.
pyon@macmini
parents: 4
diff changeset
157 if ( notyet_mask && IsMarksheet( file, m_zmin, m_zmax, m_lmin, m_lmax ) ) { // マークシート表面をマスクする
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
158 wxImage img_org( file, wxBITMAP_TYPE_JPEG );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
159 int ver = GetMarksheetVersion( file );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
160 if ( ver == 2 ) {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
161 img_org.SetRGB( m_mask1, 255, 255, 255 ); // cm name
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
162 img_org.SetRGB( m_mask2, 255, 255, 255 ); // cm no.
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
163 img_org.SetRGB( m_mask3, 255, 255, 255 ); // barcode
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
164 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
165 else { // 古いマークシート ver == 1
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
166 img_org.SetRGB( m_mask1old, 255, 255, 255 ); // cm name
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
167 img_org.SetRGB( m_mask2old, 255, 255, 255 ); // cm no.
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
168 img_org.SetRGB( m_mask3old, 255, 255, 255 ); // barcode
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
169 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
170 img_org.SaveFile( tmpjpg );
8
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
171 notyet_mask = false;
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
172 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
173 else {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
174 wxCopyFile( file, tmpjpg, true );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
175 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
176 html = html + wxT("<img src=\"") + tmpjpg + wxT("\" width=\"750\" height=\"1060\"/>");
21
a2ad87cad48b Enhanced the convenience of Cache dialog.
pyon@macmini
parents: 13
diff changeset
177 html = html + wxT("<div align=right><font size=-2><u>") + m_grid->GetCellValue( r, 0 ) + wxT("</u></font></div>");
a2ad87cad48b Enhanced the convenience of Cache dialog.
pyon@macmini
parents: 13
diff changeset
178
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
179 cout = dir.GetNext( &file );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
180 n++;
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
181 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
182 html = html + wxT("</body></html>");
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
183
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
184 // start printing
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
185 wxHtmlPrintout hpout( wxT("Searcher03") );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
186 hpout.SetMargins( 0, 0, 0, 0, 0 );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
187
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
188 hpout.SetHtmlText( html, wxEmptyString, false );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
189 p.Print( NULL, &hpout, false );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
190
8
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
191 wxString pst = wxT("処理済");
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
192 wxString logmsg = path;
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
193 if ( notyet_mask ) {
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
194 pst.Append( wxT(" 非マスク") );
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
195 logmsg.Append( wxT(" not mask") );
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
196 }
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
197 m_grid->SetCellValue( r, 3, pst );
4967d1e2b30c Alert when not mask in batch print mode.
pyon@macmini
parents: 6
diff changeset
198 log.Add( logmsg );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
199 }
6
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
200 WriteLog( log );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
201 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
202
12
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
203 /* 一枚目強制マスク印刷 */
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
204 void FrameBatchPrint::OnMaskPrint( wxCommandEvent& WXUNUSED(event) )
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
205 {
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
206 wxArrayInt rows = m_grid->GetSelectedRows();
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
207 if ( rows.GetCount() != 1 ) {
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
208 wxMessageDialog md( this, wxT("1件のみ選択してください."), wxT("Message"), wxOK|wxICON_INFORMATION );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
209 md.ShowModal();
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
210 return;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
211 }
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
212
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
213 wxString path = m_grid->GetCellValue( rows[0], 2 );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
214 wxDir dir( path );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
215 if ( !dir.IsOpened() ) return;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
216
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
217 wxPrintDialogData pd;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
218 wxPrinter p( &pd );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
219 p.PrintDialog( NULL );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
220
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
221 // 印刷用の html を作成
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
222 wxString file;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
223 if ( dir.GetFirst( &file, wxT("*.jpg"), wxDIR_FILES ) ) {
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
224 wxString tmpdir = wxGetCwd() + wxFILE_SEP_PATH + wxT("tmp") + wxFILE_SEP_PATH;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
225 file = path + wxFILE_SEP_PATH + file;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
226 file.Replace( wxFILE_SEP_PATH, wxT("/") );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
227 wxString tmpjpg = wxString::Format( wxT("%stmp.jpg"), tmpdir );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
228
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
229 wxImage img_org( file, wxBITMAP_TYPE_JPEG );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
230 img_org.SetRGB( m_mask1, 255, 255, 255 ); // cm name
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
231 img_org.SetRGB( m_mask2, 255, 255, 255 ); // cm no.
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
232 img_org.SetRGB( m_mask3, 255, 255, 255 ); // barcode
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
233 img_org.SaveFile( tmpjpg );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
234
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
235 wxString html;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
236 html = wxT("<html><body>\n");
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
237 html = html + wxT("<img src=\"") + tmpjpg + wxT("\" width=\"750\" height=\"1060\"/>");
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
238 html = html + wxT("</body></html>");
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
239
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
240 // start printing
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
241 wxHtmlPrintout hpout( wxT("Searcher03") );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
242 hpout.SetMargins( 0, 0, 0, 0, 0 );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
243 hpout.SetHtmlText( html, wxEmptyString, false );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
244 p.Print( NULL, &hpout, false );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
245 }
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
246 }
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
247
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
248 /* 入力禁止 */
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
249 void FrameBatchPrint::SetGridReadOnly( void )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
250 {
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
251 for ( int r = 0; r < m_grid->GetNumberRows(); r++ )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
252 for ( int c = 1; c < m_grid->GetNumberCols(); c++ )
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
253 m_grid->SetReadOnly( r, c, true );
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
254 }
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
255
12
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
256 /* 印刷ログ表示 */
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
257 void FrameBatchPrint::OnLoadLog( wxCommandEvent& WXUNUSED(event) )
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
258 {
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
259 wxFileDialog fd( this, wxT("Choose a file"), wxT("log"), wxEmptyString, wxT("log files (*.log)|bp_*.log"), wxFD_OPEN|wxFD_FILE_MUST_EXIST );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
260 if ( fd.ShowModal() == wxID_CANCEL )
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
261 return;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
262
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
263 m_grid->ClearGrid();
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
264
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
265 wxTextFile logfile;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
266 logfile.Open( fd.GetPath() );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
267
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
268 //
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
269 int d = logfile.GetLineCount() - m_grid->GetNumberRows();
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
270 if ( d > 0 )
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
271 m_grid->AppendRows( d, true );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
272
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
273 wxArrayString hhsno;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
274 wxString hhs, path, stat;
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
275 for ( int n = 0; n < logfile.GetLineCount(); n++ ) {
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
276 hhs = logfile[n].AfterLast( wxFILE_SEP_PATH );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
277 stat = hhs.AfterFirst( ' ' );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
278 hhs = hhs.BeforeFirst( ' ' );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
279 path = logfile[n];
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
280 if ( !stat.IsEmpty() ) {
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
281 path = path.BeforeFirst( ' ' );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
282 }
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
283 m_grid->SetCellValue( n, 0, hhs );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
284 m_grid->SetCellValue( n, 2, path );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
285 m_grid->SetCellValue( n, 3, stat );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
286 hhsno.Add( hhs );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
287 }
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
288 for ( int n = 0; n < hhsno.GetCount(); n++ ) {
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
289 wxArrayString info = wxSplit( GetHhsInfoByHhsNo( hhsno[n] ), '_', '\\' );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
290 m_grid->SetCellValue( n, 1, info[0] );
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
291 }
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
292 logfile.Close();
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
293 }
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
294
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 8
diff changeset
295 /* 印刷ログ出力 */
6
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
296 void FrameBatchPrint::WriteLog( wxArrayString logline )
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
297 {
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
298 wxDateTime now = wxDateTime::Now();
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
299 wxString log_file = wxGetCwd() + wxFILE_SEP_PATH + wxT("log") + wxFILE_SEP_PATH + wxT("bp_") + now.Format( wxT("%Y%m%d%H%M%S.log") );
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
300 wxTextFile file( log_file );
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
301 file.Create();
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
302 wxTextFile logfile;
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
303 logfile.Open( log_file );
2
c066fde99517 Added Batch Print Mode.
pyon@macmini
parents:
diff changeset
304
6
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
305 for ( int n = 0; n < logline.GetCount(); n++ ) {
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
306 logfile.AddLine( logline[n] );
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
307 }
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
308 logfile.Write();
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
309 logfile.Close();
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
310 }
76db82822e73 Implement kana fuzzy search.
pyon@macmini
parents: 5
diff changeset
311