浏览代码

添加日志模块;添加Line在线时读取所有线体名称。

JeffWang 2 年之前
父节点
当前提交
efb044ae3b

+ 57 - 4
Source/OGCAssistTool/OGCAssistTool/DlgLogin.cpp

@@ -62,7 +62,7 @@ BOOL CDlgLogin::OnInitDialog()
 	SetBackgroundImage(IDB_LOGO);
 
 	if ( _tcslen(GLOBAL::g_config.szLine) )
-		SetDlgItemText(EDIT_LINE, GLOBAL::g_config.szLine);
+		SetDlgItemText(CB_LINE, GLOBAL::g_config.szLine);
 
 	if ( _tcslen(GLOBAL::g_config.szAccount) )
 		SetDlgItemText(EDIT_ACCOUNT, GLOBAL::g_config.szAccount);
@@ -72,13 +72,66 @@ BOOL CDlgLogin::OnInitDialog()
 	if (m_bConfigLogin)
 	{
 		GetDlgItem(CHECK_OFFLINE)->EnableWindow(FALSE);
-		GetDlgItem(EDIT_LINE)->EnableWindow(FALSE);
+		GetDlgItem(CB_LINE)->EnableWindow(FALSE);
 	}
 
+	InitCBLine();
+
 	return TRUE;  // return TRUE unless you set the focus to a control
 	// 异常: OCX 属性页应返回 FALSE
 }
 
+void CDlgLogin::InitCBLine()
+{
+	CComboBox *pCB =  (CComboBox*)GetDlgItem(CB_LINE);
+	// 如果是在线模式,先更新;
+	if (GLOBAL::g_config.nOffline == 0)
+	{
+		if (CMESdb::GetInstance())
+		{
+			std::vector<TString> vtLineName;
+			if (CMESdb::GetInstance()->GetAllLineName(vtLineName))
+			{
+				TString strLineNames;
+				for ( std::vector<TString>::iterator it = vtLineName.begin(); it != vtLineName.end(); it++ )
+				{
+					strLineNames.append(it->c_str());
+					strLineNames.append(_T(";"));
+				}
+
+				// 保存到配置文件;
+				if (strLineNames.size())
+				{
+					WritePrivateProfileString(_T("SYSTEM"), _T("Line"), strLineNames.c_str(), GLOBAL::g_szConfigFile);
+				}
+
+				strLineNames.clear();
+			}
+		}
+	}
+
+	// 再从文件中获取;
+	int nPos = -1;
+	TString strVal;
+	TCHAR szLine[4096] = {0};
+	GetPrivateProfileString(_T("SYSTEM"), _T("Line"), _T(""), szLine, 4096, GLOBAL::g_szConfigFile);
+	TString strLineName = szLine;
+	for (;;)
+	{
+		nPos = strLineName.find(_T(";"));
+		if (nPos == TString::npos)
+			break;
+		
+		strVal = strLineName.substr(0, nPos);
+		if (strVal.size())
+			pCB->AddString(strVal.c_str());
+
+		strLineName = strLineName.substr(nPos + 1);
+	}
+
+	pCB->SelectString(0, GLOBAL::g_config.szLine);
+}
+
 HBRUSH CDlgLogin::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
 {
 	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
@@ -116,7 +169,7 @@ void CDlgLogin::OnBnClickedOk()
 {
 	// TODO: 在此添加控件通知处理程序代码
 	CString strAccount, strPassword, strLine;
-	GetDlgItemText(EDIT_LINE, strLine);
+	GetDlgItemText(CB_LINE, strLine);
 	GetDlgItemText(EDIT_ACCOUNT, strAccount);
 	GetDlgItemText(EDIT_PASSWORD, strPassword);
 
@@ -162,7 +215,7 @@ void CDlgLogin::OnBnClickedOk()
 		}
 
 		CString strDynamicPassword;
-		strDynamicPassword.Format(_T("OGC%s"), CTime::GetCurrentTime().Format(_T("%Y%m%d%w%p")));
+		strDynamicPassword.Format(_T("OGC%s"), CTime::GetCurrentTime().Format(_T("%Y%m%d%w%p")).GetString());
 		if ( strPassword != strDynamicPassword )
 		{
 			MessageBox(_T("密码错误"), _T("提示"), MB_OK);

+ 1 - 0
Source/OGCAssistTool/OGCAssistTool/DlgLogin.h

@@ -22,6 +22,7 @@ protected:
 public:
 	virtual BOOL OnInitDialog();
 	void SetConfigLogin() { m_bConfigLogin = TRUE; };
+	void InitCBLine();
 	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
 	afx_msg void OnBnClickedOk();
 	afx_msg void OnBnClickedCancel();

+ 39 - 1
Source/OGCAssistTool/OGCAssistTool/MESdb.cpp

@@ -608,4 +608,42 @@ bool CMESdb::GetBomFromSN(TString strSN, TString &strBom)
 	}
 
 	return false;
-}
+}
+
+bool CMESdb::GetAllLineName(std::vector<TString>& vtLineName, TString strWhere)
+{
+	try
+	{
+		CString strSql;
+		_RecordsetPtr rsData;
+		rsData.CreateInstance(__uuidof(Recordset));
+		if (strWhere.size() == 0)
+			strSql = _T("select CompanyName from T_Company");
+		else 
+			strSql.Format(_T("select CompanyName from T_Company where %s"), strWhere.c_str());
+
+		HRESULT hr = rsData->Open(_variant_t(strSql), _variant_t((IDispatch*)m_pConnection2, true), adOpenDynamic, adLockPessimistic, adCmdText);
+
+		if (SUCCEEDED(hr))
+		{
+			while (rsData->EndOfFile == VARIANT_FALSE)
+			{
+				TString strValue = rsData->GetCollect(_T("CompanyName")).bstrVal;
+				vtLineName.push_back(strValue);
+				rsData->MoveNext();
+			}
+
+			rsData->Close();
+		}
+
+		return true;
+	}
+	catch (_com_error& e)
+	{
+		_bstr_t bstrSource(e.Source());
+		_bstr_t bstrDescription(e.Description());
+		//WriteTextLog(_T("%s,%d =>%08lx,%s,%s,%s"), __FUNCTIONW__, __LINE__, e.Error(), e.ErrorMessage(), (TCHAR*)bstrSource, (TCHAR*)bstrDescription);
+	}
+
+	return false;
+}

+ 1 - 0
Source/OGCAssistTool/OGCAssistTool/MESdb.h

@@ -91,4 +91,5 @@ public:
 	bool GetDeltaEInfo(TString strBatch, TString &strDeltaEType, TString &strDeltaValue);
 	// ͨ¹ýSN»ñÈ¡Bom;
 	bool GetBomFromSN(TString strSN, TString &strBom);
+	bool GetAllLineName(std::vector<TString> &vtLineName, TString strWhere = _T(""));
 };

+ 19 - 7
Source/OGCAssistTool/OGCAssistTool/OGCAssistTool.rc

@@ -16,13 +16,11 @@
 #undef APSTUDIO_READONLY_SYMBOLS
 
 /////////////////////////////////////////////////////////////////////////////
-// 中文(中华人民共和国) resources
+// 中文(简体,中国) resources
 
 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
-#ifdef _WIN32
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
 #pragma code_page(936)
-#endif //_WIN32
 
 #ifdef APSTUDIO_INVOKED
 /////////////////////////////////////////////////////////////////////////////
@@ -72,6 +70,7 @@ END
 // remains consistent on all systems.
 IDR_MAINFRAME           ICON                    "res\\OGCAssistTool.ico"
 
+
 /////////////////////////////////////////////////////////////////////////////
 //
 // Dialog
@@ -104,13 +103,13 @@ FONT 8, "Microsoft Sans Serif", 400, 0, 0x0
 BEGIN
     EDITTEXT        EDIT_ACCOUNT,101,26,88,14,ES_AUTOHSCROLL
     EDITTEXT        EDIT_PASSWORD,101,47,88,14,ES_PASSWORD | ES_AUTOHSCROLL
-    EDITTEXT        EDIT_LINE,101,68,88,14,ES_AUTOHSCROLL
     CONTROL         "离线模式",CHECK_OFFLINE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,101,88,48,10,WS_EX_TRANSPARENT
     DEFPUSHBUTTON   "登录",IDOK,65,102,52,16
     PUSHBUTTON      "取消",IDCANCEL,143,102,52,16
     LTEXT           "账号:",IDC_STATIC,70,29,25,8
     LTEXT           "密码:",IDC_STATIC,70,50,25,8
     LTEXT           "线体:",IDC_STATIC,70,71,25,8
+    COMBOBOX        CB_LINE,101,68,88,30,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
 END
 
 PAGE_DEBUG DIALOGEX 0, 0, 732, 322
@@ -238,7 +237,7 @@ END
 //
 
 #ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO 
+GUIDELINES DESIGNINFO
 BEGIN
     IDD_ABOUTBOX, DIALOG
     BEGIN
@@ -305,8 +304,10 @@ END
 //
 
 IDB_LOGO                BITMAP                  "res\\logo.bmp"
+
 IDB_TAB                 BITMAP                  "res\\tab.bmp"
 
+
 /////////////////////////////////////////////////////////////////////////////
 //
 // Dialog Info
@@ -333,17 +334,28 @@ BEGIN
 END
 
 
+/////////////////////////////////////////////////////////////////////////////
+//
+// AFX_DIALOG_LAYOUT
+//
+
+DLG_LOGIN AFX_DIALOG_LAYOUT
+BEGIN
+    0
+END
+
+
 /////////////////////////////////////////////////////////////////////////////
 //
 // String Table
 //
 
-STRINGTABLE 
+STRINGTABLE
 BEGIN
     IDS_ABOUTBOX            "关于 OGCAssistTool(&A)..."
 END
 
-#endif    // 中文(中华人民共和国) resources
+#endif    // 中文(简体,中国) resources
 /////////////////////////////////////////////////////////////////////////////
 
 

+ 10 - 0
Source/OGCAssistTool/OGCAssistTool/log4z.cfg

@@ -0,0 +1,10 @@
+[Main]
+path = ./log2/
+level = trace
+display = false    
+outfile = false     
+monthdir = false  
+limitsize = 10     
+fileline = false    
+enable = false    
+reserve = 60        

+ 5 - 5
Source/OGCAssistTool/OGCAssistTool/resource.h

@@ -1,6 +1,6 @@
 //{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by OGCAssistTool.rc
+// Microsoft Visual C++ 生成的包含文件。
+// 供 OGCAssistTool.rc 使用
 //
 #define IDM_ABOUTBOX                    0x0010
 #define IDD_ABOUTBOX                    100
@@ -53,16 +53,16 @@
 #define IDC_DATETIMEPICKER2             1023
 #define IDC_LIST1                       1024
 #define COMBO_ORDER                     1025
-#define IDC_CHECK2                      1026
 #define CHECK_SN_GET                    1026
+#define CB_LINE                         1027
 
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        136
+#define _APS_NEXT_RESOURCE_VALUE        137
 #define _APS_NEXT_COMMAND_VALUE         32771
-#define _APS_NEXT_CONTROL_VALUE         1027
+#define _APS_NEXT_CONTROL_VALUE         1028
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif