changeset 30:e4d585cbd172 v2.3 v2.4

add auto make ccndir
author pyon@macmini
date Sun, 06 Nov 2011 14:08:42 +0900
parents 24283d3a9592
children fbe6bce63f2a
files TODO include/myframe.h src/myframe.cpp
diffstat 3 files changed, 59 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/TODO	Sat Nov 05 12:25:39 2011 +0900
+++ b/TODO	Sun Nov 06 14:08:42 2011 +0900
@@ -1,16 +1,15 @@
 ======================================================================
  TODO
 ======================================================================
+v2.4
+* hhs name from db
+
+v2.5
+* twain
+
+v2.6
 * d&d image
 * auto cache rebuild off
-
-* ccn folder make
-
-* hhs name from db
-
-* error check hhsno
-* color red if guess hhsno failed
-
 * help
 
 ----------------------------------------------------------------------
--- a/include/myframe.h	Sat Nov 05 12:25:39 2011 +0900
+++ b/include/myframe.h	Sun Nov 06 14:08:42 2011 +0900
@@ -1,5 +1,5 @@
 // Filename   : myframe.h
-// Last Change: 05-Nov-2011.
+// Last Change: 06-Nov-2011.
 //
 
 #ifndef __myframe__
@@ -72,10 +72,9 @@
         void ListHhsDir(void);
         void MoveImages(void);
         void OnOpenHhsDir(wxListEvent& event);
+        void GetCCnArrayInfo(wxArrayString& array, int n, wxString& nName, wxString& nDir);
         // $B0J2<!$Dj7?$b$N(B
         void OnTimer(wxTimerEvent& event);
-        void OnChar(wxKeyEvent& event);
-        void F7_Shortcut(void);
         void OnIdle(wxIdleEvent& event);
         void OnWinSize(wxSizeEvent& event);
         void OnWinMove(wxMoveEvent& event);
--- a/src/myframe.cpp	Sat Nov 05 12:25:39 2011 +0900
+++ b/src/myframe.cpp	Sun Nov 06 14:08:42 2011 +0900
@@ -1,5 +1,5 @@
 // Filename   : myframe.cpp
-// Last Change: 05-Nov-2011.
+// Last Change: 06-Nov-2011.
 //
 
 #include "main.h"
@@ -106,12 +106,8 @@
 	m_staticTextCcn = new wxStaticText( this, wxID_ANY, wxT("合議体"), wxDefaultPosition, wxDefaultSize, 0 );
 	bSizerDist->Add( m_staticTextCcn, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 	
-    wxArrayString ccns;
-	ccns.Add(wxT("角館1")); ccns.Add(wxT("角館2")); ccns.Add(wxT("角館3")); ccns.Add(wxT("角館4"));
-	ccns.Add(wxT("西仙1")); ccns.Add(wxT("西仙2")); ccns.Add(wxT("西仙3"));
-	ccns.Add(wxT("千畑1")); ccns.Add(wxT("千畑2")); ccns.Add(wxT("千畑3"));
-	ccns.Add(wxT("大曲1")); ccns.Add(wxT("大曲2")); ccns.Add(wxT("大曲3")); ccns.Add(wxT("大曲4")); ccns.Add(wxT("大曲5")); ccns.Add(wxT("大曲6"));
-	ccns.Add(wxT("六郷1")); ccns.Add(wxT("六郷2")); ccns.Add(wxT("六郷3"));
+    wxArrayString ccns; wxString dummy;
+    GetCCnArrayInfo( ccns, -1, dummy, dummy );
 	m_comboBoxCcn = new wxComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(100,-1), ccns, 0 ); 
 	bSizerDist->Add( m_comboBoxCcn, 0, wxALL, 5 );
 	
@@ -243,7 +239,26 @@
     EVT_CLOSE( MyFrame::SaveConfig )
 END_EVENT_TABLE()
 
-// Event Handlers
+// Event Handlers & Functions
+void MyFrame::GetCCnArrayInfo(wxArrayString& array , int n, wxString& nName, wxString& nDir)
+{
+    if ( n == -1 ) {
+        array.Add(wxT("角館1")); array.Add(wxT("角館2")); array.Add(wxT("角館3")); array.Add(wxT("角館4"));
+        array.Add(wxT("西仙1")); array.Add(wxT("西仙2")); array.Add(wxT("西仙3"));
+        array.Add(wxT("千畑1")); array.Add(wxT("千畑2")); array.Add(wxT("千畑3"));
+        array.Add(wxT("大曲1")); array.Add(wxT("大曲2")); array.Add(wxT("大曲3")); array.Add(wxT("大曲4")); array.Add(wxT("大曲5")); array.Add(wxT("大曲6"));
+        array.Add(wxT("六郷1")); array.Add(wxT("六郷2")); array.Add(wxT("六郷3"));
+    }
+    else {
+        wxArrayString ccndir;
+        ccndir.Add(wxT("0000000031")); ccndir.Add(wxT("0000000032")); ccndir.Add(wxT("0000000033")); ccndir.Add(wxT("0000000034"));
+        ccndir.Add(wxT("0000000021")); ccndir.Add(wxT("0000000022")); ccndir.Add(wxT("0000000023"));
+        ccndir.Add(wxT("0000000041")); ccndir.Add(wxT("0000000042")); ccndir.Add(wxT("0000000043"));
+        ccndir.Add(wxT("0000000001")); ccndir.Add(wxT("0000000002")); ccndir.Add(wxT("0000000003")); ccndir.Add(wxT("0000000004")); ccndir.Add(wxT("0000000005")); ccndir.Add(wxT("0000000006"));
+        ccndir.Add(wxT("00000000x1")); ccndir.Add(wxT("00000000x2")); ccndir.Add(wxT("00000000x3"));
+        nDir = ccndir[n];
+    }
+}
 /* 次の木曜日 */
 void MyFrame::OnNextThursday(wxCommandEvent& WXUNUSED(event))
 {
@@ -258,20 +273,32 @@
 void MyFrame::OnMakeDir(wxCommandEvent& WXUNUSED(event))
 {
     wxString to;
-    to.Append( m_comboBoxDrive->GetValue() );
-    to.Append( wxFILE_SEP_PATH );
-    wxDateTime dt = m_datePicker->GetValue();
-    to.Append( dt.Format(wxT("%Y%m%d")) );
-    to.Append( wxFILE_SEP_PATH );
-    to.Append( m_comboBoxCcn->GetValue() );
+    to.Append( m_comboBoxDrive->GetValue() );   // C:
+    to.Append( wxFILE_SEP_PATH );               // C:/
+    wxDateTime dt = m_datePicker->GetValue();   
+    wxString month = dt.Format(wxT("%m"));
+    wxString year  = dt.Format(wxT("%Y"));
+    if ( month.IsSameAs(wxT("01")) || month.IsSameAs(wxT("02")) || month.IsSameAs(wxT("03")) ) {
+        long y;
+        year.ToLong( &y, 10 );
+        y--;
+        year = wxString::Format(wxT("%d"),y);
+    }
+    to.Append( year );                          // C:/20xx
+    to.Append( wxFILE_SEP_PATH );               // C:/20xx/
+    to.Append( dt.Format(wxT("%Y%m%d")) );      // C:/20xx/20yymmdd
+    to.Append( wxFILE_SEP_PATH );               // C:/20xx/20yymmdd/
+    to.Append( m_comboBoxCcn->GetValue() );     // C:/20xx/20yymmdd/XXN
     m_textCtrlDist->SetValue( to );
 
+
     wxString ccn = m_comboBoxCcn->GetValue();
     if ( to.Len() < 15 || ccn.IsEmpty() ) {
         wxMessageBox(wxT("フォルダを指定してください."));
         return;
     }
 
+    // いったんバラして,各階層のフォルダがあるかチェック.なければ作成
     wxStringTokenizer tkz( to, wxFILE_SEP_PATH );
     wxString d;
     while ( tkz.HasMoreTokens() ) {
@@ -279,10 +306,16 @@
         d.Append( wxFILE_SEP_PATH );
         if ( !wxDirExists( d ) ) wxMkdir( d );
     }
-    m_buttonMove->Enable(true);
 
-    // TODO.
-    // make 申請書ふぉるだ
+    // 申請書フォルダ作成
+    int n = m_comboBoxCcn->GetCurrentSelection();
+    wxString ccndir, dummy; wxArrayString array;
+    GetCCnArrayInfo( array, n, dummy, ccndir );
+    d.Append( ccndir );
+    d.Append( wxFILE_SEP_PATH );
+    if ( !wxDirExists( d ) ) wxMkdir( d );
+
+    m_buttonMove->Enable(true);
 
     wxMessageBox(wxT("移動先フォルダ準備完了"));
     wxString cmd = wxT("explorer ") + to;