comparison src/mngdb.cpp @ 13:f5ffc34f045a

manage DB.
author pyon@macmini
date Wed, 14 Nov 2018 19:43:40 +0900
parents 799b6008db8e
children c1dc1fcee7fe
comparison
equal deleted inserted replaced
12:240752cbe11b 13:f5ffc34f045a
1 // Filename : mngdeb.cpp 1 // Filename : mngdeb.cpp
2 // Last Change: 2018-11-09 金 13:35:54. 2 // Last Change: 2018-11-14 水 13:48:58.
3 // 3 //
4 4
5 #include <wx/datetime.h>
6 #include <wx/textfile.h>
5 #include "id.h" 7 #include "id.h"
6 #include "mngdb.h" 8 #include "mngdb.h"
7 9
8 ManageDBFrame::ManageDBFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) 10 ManageDBFrame::ManageDBFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style )
9 : wxFrame( parent, id, title, pos, size, style ) 11 : wxFrame( parent, id, title, pos, size, style )
10 { 12 {
13 this->SetBackgroundColour( wxColour( 140, 240, 140 ) );
11 this->SetSizeHints( wxDefaultSize, wxDefaultSize ); 14 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
12 15
13 wxBoxSizer* bSizerTop = new wxBoxSizer( wxVERTICAL ); 16 wxBoxSizer* bSizerTop = new wxBoxSizer( wxVERTICAL );
14 17
15 wxFlexGridSizer* fgSizer = new wxFlexGridSizer( 0, 2, 0, 0 ); 18 wxFlexGridSizer* fgSizer = new wxFlexGridSizer( 0, 2, 0, 0 );
17 fgSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); 20 fgSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
18 21
19 m_staticTextDate = new wxStaticText( this, wxID_ANY, wxT( "Date" ), wxDefaultPosition, wxDefaultSize, 0 ); 22 m_staticTextDate = new wxStaticText( this, wxID_ANY, wxT( "Date" ), wxDefaultPosition, wxDefaultSize, 0 );
20 fgSizer->Add( m_staticTextDate, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); 23 fgSizer->Add( m_staticTextDate, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
21 24
22 m_datePicker = new wxDatePickerCtrl( this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN|wxDP_SHOWCENTURY ); 25 m_datePicker = new wxDatePickerCtrl( this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxSize( 180, -1 ), wxDP_DROPDOWN|wxDP_SHOWCENTURY );
23 fgSizer->Add( m_datePicker, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); 26 fgSizer->Add( m_datePicker, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
24 27
25 m_staticTextHhs = new wxStaticText( this, wxID_ANY, wxT( "HHS" ), wxDefaultPosition, wxDefaultSize, 0 ); 28 m_staticTextHhs = new wxStaticText( this, wxID_ANY, wxT( "HHS" ), wxDefaultPosition, wxDefaultSize, 0 );
26 fgSizer->Add( m_staticTextHhs, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); 29 fgSizer->Add( m_staticTextHhs, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
27 30
28 m_filePickerHhs = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, wxT( "Select a file" ), wxT( "*.db" ), wxDefaultPosition, wxDefaultSize, wxFLP_FILE_MUST_EXIST|wxFLP_OPEN|wxFLP_SMALL|wxFLP_USE_TEXTCTRL ); 31 m_filePickerHhs = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, wxT( "Select a file" ), wxT( "*.db" ), wxDefaultPosition, wxSize( 180, -1 ), wxFLP_FILE_MUST_EXIST|wxFLP_OPEN|wxFLP_SMALL|wxFLP_USE_TEXTCTRL );
29 fgSizer->Add( m_filePickerHhs, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); 32 fgSizer->Add( m_filePickerHhs, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
30 33
31 m_staticTextCcn = new wxStaticText( this, wxID_ANY, wxT( "CCN" ), wxDefaultPosition, wxDefaultSize, 0 ); 34 m_staticTextCcn = new wxStaticText( this, wxID_ANY, wxT( "CCN" ), wxDefaultPosition, wxDefaultSize, 0 );
32 fgSizer->Add( m_staticTextCcn, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); 35 fgSizer->Add( m_staticTextCcn, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
33 36
34 m_filePickerCcn = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, wxT( "Select a file" ), wxT( "*.db" ), wxDefaultPosition, wxDefaultSize, wxFLP_FILE_MUST_EXIST|wxFLP_OPEN|wxFLP_SMALL|wxFLP_USE_TEXTCTRL ); 37 m_filePickerCcn = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, wxT( "Select a file" ), wxT( "*.db" ), wxDefaultPosition, wxSize( 180, -1 ), wxFLP_FILE_MUST_EXIST|wxFLP_OPEN|wxFLP_SMALL|wxFLP_USE_TEXTCTRL );
35 fgSizer->Add( m_filePickerCcn, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); 38 fgSizer->Add( m_filePickerCcn, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
36 39
37 bSizerTop->Add( fgSizer, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); 40 bSizerTop->Add( fgSizer, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
38 41
39 //--- 42 //---
55 58
56 this->SetSizer( bSizerTop ); 59 this->SetSizer( bSizerTop );
57 this->Layout(); 60 this->Layout();
58 61
59 this->Centre( wxBOTH ); 62 this->Centre( wxBOTH );
63 m_buttonUpld->Enable( false );
60 } 64 }
61 65
62 ManageDBFrame::~ManageDBFrame() 66 ManageDBFrame::~ManageDBFrame()
63 { 67 {
64 } 68 }
71 END_EVENT_TABLE() 75 END_EVENT_TABLE()
72 76
73 // Event Handler 77 // Event Handler
74 void ManageDBFrame::OnBuild( wxCommandEvent& WXUNUSED(event) ) 78 void ManageDBFrame::OnBuild( wxCommandEvent& WXUNUSED(event) )
75 { 79 {
80 wxString hhs = m_filePickerHhs->GetPath();
81 wxString ccn = m_filePickerCcn->GetPath();
82 wxDateTime dt = m_datePicker->GetValue();
83 wxString ymd = dt.Format( wxT( "%Y%m%d" ) );
84
85 // index.db.tmp, hhs.csv.tmp(utf-8)
86 wxArrayString args;
87 args.Add( wxT( "extsql.exe" ) );
88 args.Add( hhs );
89 args.Add( ccn );
90 args.Add( ymd );
91 wxExecute( wxJoin( args, ' ', '\\' ), wxEXEC_SYNC|wxEXEC_HIDE_CONSOLE );
92
93 // hhs.csv(cp932)
94 wxCSConv cust( wxT( "cp932" ) );
95 wxTextFile input( wxT( "hhs.csv.tmp" ) );
96 wxTextFile output( wxT( "hhs.csv" ) );
97 input.Open();
98 output.Create();
99 for ( wxString buf = input.GetFirstLine(); !input.Eof(); buf = input.GetNextLine() )
100 output.AddLine( buf );
101 input.Close();
102 output.Write( wxTextFileType_Dos, cust );
103 output.Close();
104
105 // hhs.db(encryptoed)
106 wxString key = wxT( "12345678900123456789abcdefabcdef" );
107 args.Clear();
108 args.Add( wxT( "crypto.exe" ) );
109 args.Add( wxT( "-e" ) );
110 args.Add( wxT( "hhs.csv" ) );
111 args.Add( wxT( "-k" ) );
112 args.Add( key );
113 args.Add( wxT( "-o" ) );
114 args.Add( wxT( "hhs.db" ) );
115 wxExecute( wxJoin( args, ' ', '\\' ), wxEXEC_SYNC|wxEXEC_HIDE_CONSOLE );
116
76 wxMessageBox( wxT( "build done." ) ); 117 wxMessageBox( wxT( "build done." ) );
118 m_buttonUpld->Enable( true );
77 } 119 }
78 120
79 void ManageDBFrame::OnUpload( wxCommandEvent& WXUNUSED(event) ) 121 void ManageDBFrame::OnUpload( wxCommandEvent& WXUNUSED(event) )
80 { 122 {
81 ClearServer();
82 Upload( wxT( "index.db" ) ); 123 Upload( wxT( "index.db" ) );
83 Upload( wxT( "hhs.db" ) ); 124 Upload( wxT( "hhs.db" ) );
84 UpdateDB();
85 wxMessageBox( wxT( "upload done." ) ); 125 wxMessageBox( wxT( "upload done." ) );
86 } 126 }
87 127
88 void ManageDBFrame::OnExit( wxCommandEvent& WXUNUSED(event) ) 128 void ManageDBFrame::OnExit( wxCommandEvent& WXUNUSED(event) )
89 { 129 {
94 // Functions 134 // Functions
95 void ManageDBFrame::Upload( wxString file ) 135 void ManageDBFrame::Upload( wxString file )
96 { 136 {
97 wxArrayString args; 137 wxArrayString args;
98 args.Add( wxT( "client.exe" ) ); 138 args.Add( wxT( "client.exe" ) );
99 args.Add( wxT( "-a" ) ); 139 args.Add( wxT( "-m" ) );
100 args.Add( m_server ); 140 args.Add( m_server );
101 args.Add( file ); 141 args.Add( file );
102 142
103 wxExecute( wxJoin( args, ' ', '\\' ) ); 143 wxExecute( wxJoin( args, ' ', '\\' ), wxEXEC_SYNC|wxEXEC_HIDE_CONSOLE );
104 } 144 }
105 145
106 void ManageDBFrame::ClearServer( void ) 146 void ManageDBFrame::SetDBdir( wxString dir )
107 { 147 {
108 // go-server get /clean -> rm -f upload/* 148 wxDateTime dt;
109 wxArrayString args; 149 dt.ParseFormat( wxT( "20160401" ), wxT( "%Y%m%d") );
110 args.Add( wxT( "client.exe" ) ); 150 m_datePicker->SetValue( dt );
111 args.Add( m_server ); 151 m_filePickerHhs->SetPath( dir + wxFILE_SEP_PATH + wxT( "hhs.db") );
112 152 m_filePickerCcn->SetPath( dir + wxFILE_SEP_PATH + wxT( "ccn.db") );
113 wxExecute( wxJoin( args, ' ', '\\' ) );
114 } 153 }
115 154
116 void ManageDBFrame::UpdateDB( void )
117 {
118 // go-server get /mangedb -> mv upload/xxx db/index.db
119 // mv upload/yyy db/hhs.db
120 wxArrayString args;
121 args.Add( wxT( "client.exe" ) );
122 args.Add( m_server );
123
124 wxExecute( wxJoin( args, ' ', '\\' ) );
125 }
126