annotate include/dndfile.h @ 4:fdba695b99f1

More fast ( read from DB ). Improve the precision of marksheet judgement.
author pyon@macmini
date Wed, 11 Sep 2013 19:09:14 +0900
parents 1a64119ab257
children bc2e2b304095
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
1 // Filename : dndfile.h
4
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
2 // Last Change: 11-Sep-2013.
3
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
3 //
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
4
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
5 #include "db.h"
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
6
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
7 class DnDFile : public wxFileDropTarget
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
8 {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
9 public:
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
10 DnDFile( wxGrid *grid )
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
11 {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
12 m_grid = grid;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
13 }
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
14 virtual bool OnDropFiles( wxCoord x, wxCoord y, const wxArrayString& filenames )
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
15 {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
16 size_t nFiles = filenames.GetCount();
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
17 if ( nFiles != 1 ) return false;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
18
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
19 m_grid->ClearGrid();
4
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
20
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
21 // ファイルから被保番リストを生成
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
22 wxTextFile csv;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
23 csv.Open( filenames[0] );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
24
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
25 wxRegEx reHhs( wxT("^0[1238][0-9]{8}$") );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
26 wxArrayString hhs;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
27 for ( int n = 0; n < csv.GetLineCount(); n++ ) {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
28 wxString hhsno = csv.GetLine( n ).BeforeFirst( ',', NULL );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
29 if ( ! reHhs.Matches( hhsno ) )
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
30 continue;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
31 hhs.Add( hhsno );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
32 }
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
33 csv.Close();
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
34
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
35 //
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
36 int d = hhs.GetCount() - m_grid->GetNumberRows();
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
37 if ( d > 0 )
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
38 m_grid->AppendRows( d, true );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
39
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
40 // グリッドに情報を読込み
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
41 wxArrayString res = GetHhsInfoAndPathByHhsNoList( hhs );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
42 for ( int r = 0; r < res.GetCount(); r++ ) {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
43 wxArrayString data = wxSplit( res[r], '_', '\\' );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
44 m_grid->SetCellValue( r, 0, data[0] );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
45 m_grid->SetCellValue( r, 1, data[1] );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
46 m_grid->SetCellValue( r, 2, data[2] );
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
47 }
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
48
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
49 return true;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
50 }
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
51
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
52 private:
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
53 wxGrid* m_grid;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
54 };
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
55
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
56 class DnDFile2 : public wxFileDropTarget
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
57 {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
58 public:
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
59 DnDFile2( wxGrid *grid )
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
60 {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
61 m_grid = grid;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
62 }
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
63 virtual bool OnDropFiles( wxCoord x, wxCoord y, const wxArrayString& filenames )
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
64 {
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
65 size_t nFiles = filenames.GetCount();
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
66 if ( nFiles != 1 ) return false;
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
67
fdba695b99f1 More fast ( read from DB ).
pyon@macmini
parents: 3
diff changeset
68 m_grid->ClearGrid();
3
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
69 wxTextFile csv;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
70 csv.Open( filenames[0] );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
71
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
72 int d = csv.GetLineCount() - m_grid->GetNumberRows();
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
73 if ( d > 0 )
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
74 m_grid->AppendRows( d, true );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
75
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
76 wxRegEx reHhs( wxT("^0[1238][0-9]{8}$") );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
77 for ( int n = 0, j = 0; n < csv.GetLineCount(); n++ ) {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
78 wxString hhsno = csv.GetLine( n ).BeforeFirst( ',', NULL );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
79 if ( ! reHhs.Matches( hhsno ) ) {
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
80 j++;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
81 continue;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
82 }
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
83 int r = n - j;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
84
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
85 wxArrayString info = wxSplit( GetHhsInfoByHhsNo( hhsno ), '_', '\\' );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
86 wxArrayString path = GetPathByHhsNo( hhsno );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
87
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
88 if ( info.IsEmpty() ) info.Add( wxEmptyString );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
89 if ( path.IsEmpty() ) path.Add( wxEmptyString );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
90
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
91 m_grid->SetCellValue( r, 0, hhsno );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
92 m_grid->SetCellValue( r, 1, info[0] );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
93 m_grid->SetCellValue( r, 2, path[0] );
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
94 }
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
95 csv.Close();
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
96 return true;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
97 }
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
98
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
99 private:
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
100 wxGrid* m_grid;
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
101 };
1a64119ab257 Equipment Regist print-target by Drag & Drop.
pyon@macmini
parents:
diff changeset
102