#pragma once #include "stdafx.h" #include "GlobalFun.h" #include "Global.h" #include "mdlProject.h" #include "CSpreadSheet.h" int g_GetControlIDByControlName( CString sControlName ) { int nRet=0; for( int i=0;i=0 && g_Controller[i].sName==sControlName ) { nRet = g_Controller[i].nID; break; } } return nRet; } int g_GetUserIDByUserName( CString sUserName ) { int nRet=0; for( int i=0;i=0 && g_Card[i].sName==sUserName ) { nRet = g_Card[i].nID; break; } } return nRet; } int g_GetDoorIDByDoorName( CString sDoorName ) { int nRet=0; for( int i=0;i=0 ) { if( g_Controller[i].sDoorName[1]==sDoorName ) { nRet = 0; break; } if( g_Controller[i].sDoorName[2]==sDoorName ) { nRet = 1; break; } if( g_Controller[i].sDoorName[3]==sDoorName ) { nRet = 2; break; } if( g_Controller[i].sDoorName[4]==sDoorName ) { nRet = 3; break; } if( g_Controller[i].sDoorName[5]==sDoorName ) { nRet = 4; break; } if( g_Controller[i].sDoorName[6]==sDoorName ) { nRet = 5; break; } if( g_Controller[i].sDoorName[7]==sDoorName ) { nRet = 6; break; } if( g_Controller[i].sDoorName[8]==sDoorName ) { nRet = 7; break; } } } return nRet; } bool g_FindDoorStatusByDoorName( CString sDoorName ) { bool bRet=false; if( sDoorName=="" ) return bRet; for( int i=0;im_pThread_Controller[i] ) { CString sTemp1,sTemp2,sTemp3,sTemp4,sTemp5,sTemp6,sTemp7,sTemp8; sTemp1.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[1] ); sTemp2.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[2] ); sTemp3.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[3] ); sTemp4.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[4] ); sTemp5.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[5] ); sTemp6.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[6] ); sTemp7.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[7] ); sTemp8.Format("%d-%s",g_pDlgMain->m_pThread_Controller[i]->m_Controller.nID,g_pDlgMain->m_pThread_Controller[i]->m_Controller.sDoorName[8] ); if( sTemp1==sDoorName ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { bRet = true; break; } else { bRet = false; break; } } else if( sTemp2==sDoorName ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { bRet = true; break; } else { bRet = false; break; } } else if( sTemp3==sDoorName ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { bRet = true; break; } else { bRet = false; break; } } else if( sTemp4==sDoorName ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { bRet = true; break; } else { bRet = false; break; } } else if( sTemp5==sDoorName ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { bRet = true; break; } else { bRet = false; break; } } else if( sTemp6==sDoorName ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { bRet = true; break; } else { bRet = false; break; } } else if( sTemp7==sDoorName ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { bRet = true; break; } else { bRet = false; break; } } else if( sTemp8==sDoorName ) { if( !g_pDlgMain->m_pThread_Controller[i]->m_bExitFinish ) { bRet = true; break; } else { bRet = false; break; } } } } return bRet; } bool g_GetCardInfoByUserName( CString sUserName,long &lCardNumber,CString &sClass,CString &sJobNumber,CString &sRemarks ) { bool bRet=false; for( int nCardIndex=0;nCardIndex=0 ) { if( g_Card[nCardIndex].sName==sUserName ) { lCardNumber = g_Card[nCardIndex].nNumber; sClass = g_Card[nCardIndex].sClass; sJobNumber = g_Card[nCardIndex].sJobNumber; sRemarks = g_Card[nCardIndex].sRemarks; bRet = true; break; } } } return bRet; } bool g_GetCardInfoByCardNumber( long lCardNumber,CString &sName,CString &sClass,CString &sJobNumber,CString &sRemarks ) { bool bRet=false; for( int nCardIndex=0;nCardIndex=0 ) { if( g_Card[nCardIndex].nNumber==lCardNumber ) { sName = g_Card[nCardIndex].sName; sClass = g_Card[nCardIndex].sClass; sJobNumber = g_Card[nCardIndex].sJobNumber; sRemarks = g_Card[nCardIndex].sRemarks; bRet = true; break; } } } return bRet; } CString g_GetStatus( int iBrandType,int iCardNumber,int iStatus,int &iIndex ) { CString sRet; CString sStatus,sCardNumber; //门禁品牌类型 0:微耕 1:中控 //1:金凯 2:奇瑞 if( iBrandType==BRAND_WG ) { sStatus.Format("%02x",iStatus ); sStatus = sStatus.MakeUpper(); sCardNumber.Format("%d",iCardNumber ); if( iCardNumber>100 ) { for( int i=0;i<48*4;i+=4 ) { if( g_sStatus_WG[i+1]==sStatus ) { iIndex = i; sRet = g_sStatus_WG[i+2]+g_sStatus_WG[i+3]; break; } } } else { for( int i=48*4;i<82*4;i+=4 ) { if( g_sStatus_WG[i+0]==sCardNumber && g_sStatus_WG[i+1]==sStatus ) { iIndex = i; sRet = g_sStatus_WG[i+2]+g_sStatus_WG[i+3]; break; } } } } //else if( iBrandType==1 ) //{ // sStatus.Format("%d",iStatus ); // sStatus = sStatus.MakeUpper(); // sCardNumber.Format("%d",iCardNumber ); // for( int i=0;i<107*2;i+=2 ) // { // if( g_sStatus_JK[i]==sStatus ) // { // iIndex = i; // sRet = g_sStatus_JK[i+1]; // break; // } // } //} //else if( iBrandType==2 ) //{ //} else if( iBrandType==BRAND_ZK )//中控 { if( iStatus==0 ) sRet = "允许通过"; else sRet = "验证失败"; } return sRet; } int g_FindComStatus( CString sComName ) { int nRet=0; for( int i=0;iResetContent(); for( int i=0;i=0 )//g_pDlgMain { CString s; s.Format( "%d-",g_Controller[i].nID ); if( g_Controller[i].sDoorName[1]!="" ) pComboBox->InsertString( 0,s+g_Controller[i].sDoorName[1] ); if( g_Controller[i].sDoorName[2]!="" ) pComboBox->InsertString( 0,s+g_Controller[i].sDoorName[2] ); if( g_Controller[i].sDoorName[3]!="" ) pComboBox->InsertString( 0,s+g_Controller[i].sDoorName[3] ); if( g_Controller[i].sDoorName[4]!="" ) pComboBox->InsertString( 0,s+g_Controller[i].sDoorName[4] ); if( g_Controller[i].sDoorName[5]!="" ) pComboBox->InsertString( 0,s+g_Controller[i].sDoorName[5] ); if( g_Controller[i].sDoorName[6]!="" ) pComboBox->InsertString( 0,s+g_Controller[i].sDoorName[6] ); if( g_Controller[i].sDoorName[7]!="" ) pComboBox->InsertString( 0,s+g_Controller[i].sDoorName[7] ); if( g_Controller[i].sDoorName[8]!="" ) pComboBox->InsertString( 0,s+g_Controller[i].sDoorName[8] ); } } pComboBox->InsertString( 0,g_strAll ); pComboBox->SetCurSel( 0 ); } int g_GetResourceString() { g_strTip.LoadString(IDS_TIP); g_strNotNull.LoadString(IDS_PROMPT_NOTNULL); g_strExist.LoadString(IDS_PROMPT_EXIST); g_strRepeat.LoadString(IDS_PROMPT_NOTREPEAT); g_strControlName.LoadString(IDS_CONTROLLER_NAME); g_strControlSN.LoadString(IDS_CONTROLLER_SN); g_strDoorName.LoadString(IDS_DOOR_NAME); g_strDoorName1.LoadString(IDS_DOOR_NAME1); g_strDoorName2.LoadString(IDS_DOOR_NAME2); g_strDoorName3.LoadString(IDS_DOOR_NAME3); g_strDoorName4.LoadString(IDS_DOOR_NAME4); g_strUserName.LoadString(IDS_USER_NAME); g_strCardNumber.LoadString(IDS_CARDNUMBER); g_strInitComFail.LoadString(IDS_PROMPT_INIT_COM_FAIL); g_strInitSerialFail.LoadString(IDS_PROMPT_INIT_SERIAL_FAIL); g_strChooseThenDel.LoadString(IDS_PROMPT_CHOOSE_DEL); g_strSendPermitOK.LoadString(IDS_PROMPT_SEND_PERMIT_OK); g_strGetRecordFail.LoadString(IDS_PROMPT_GET_RECORD_FAIL); g_strNoRecord.LoadString(IDS_PROMPT_NOT_RECORD); g_strConfigDelRecord.LoadString(IDS_PROMPT_DEL_RECORD); g_strGetRecordOK.LoadString(IDS_PROMPT_GETRECORD_OK); g_strSaveExcelForRecordOK.LoadString(IDS_PROMPT_SAVEEXCEL_OK); g_strAll.LoadString( IDS_ALL ); g_strConnectType.LoadString( IDS_CONNECT_TYPE ); g_strConnectCom.LoadString( IDS_CONNECT_COM ); g_strDoor1.LoadString( IDS_DOOR1 ); g_strDoor2.LoadString( IDS_DOOR2 ); g_strDoor3.LoadString( IDS_DOOR3 ); g_strDoor4.LoadString( IDS_DOOR4 ); g_strSecond.LoadString( IDS_SECOND ); g_strControl_Open.LoadString( IDS_CONTROL_TYPE_OPEN ); g_strControl_Close.LoadString( IDS_CONTROL_TYPE_CLOSE ); g_strControl_Online.LoadString( IDS_CONTROL_TYPE_ONLINE); g_strIndex.LoadString( IDS_INDEX ); g_strHappenTime.LoadString( IDS_HAPPENTIME ); g_strUserInfo.LoadString( IDS_USERINFO ); g_strDescribe.LoadString( IDS_DESCRIBE ); g_strInfomation.LoadString( IDS_INFOMATION ); g_strName.LoadString( IDS_NAME ); g_strSN.LoadString( IDS_SN ); g_strClass.LoadString( IDS_CLASS ); g_strJobNumber.LoadString( IDS_JOBNUMBER ); g_strChooseControl.LoadString( IDS_PROMPT_DCLICK_CHOOSE_CONTROLLER ); g_strAllController.LoadString( IDS_ALL_CONTROLLER ); g_strHistory.LoadString( IDS_HISTORY ); g_strSuccess.LoadString( IDS_SUCCESS ); g_strFail.LoadString( IDS_FAIL); g_strAdjustTime.LoadString( IDS_ADJUSTTIME ); g_strOpenDoor.LoadString( IDS_OPENDOOR ); g_strCloseDoor.LoadString( IDS_CLOSEDOOR ); g_strSetDelayTime.LoadString( IDS_SET_DELAYTIME ); g_strConnect.LoadString( IDS_CONNECT ); return 0; } CString g_sLogFilePath = "C:\\log4c.txt"; bool WriteLog(CString sData) { return false; CString sTime; SYSTEMTIME st; GetLocalTime( &st ); sTime.Format( "%d-%02d-%02d %02d:%02d:%02d ",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond ); CString m_sPathName = g_sLogFilePath; CString strTemp; CStdioFile MyFile; if(!MyFile.Open(m_sPathName,CFile::modeWrite)) MyFile.Open(m_sPathName,CFile::modeCreate|CFile::modeWrite); strTemp.Format("%s: %s\n",sTime,sData); MyFile.SeekToEnd(); MyFile.WriteString(strTemp); MyFile.Close(); return true; } void ReadExcelToList(CListCtrl* pList, CString strTitle) { //strTitle+=".xls"; CSpreadSheet sheet(strTitle,""); CStringArray Rows, Column; //清空列表框 pList->DeleteAllItems();//首先清空listview int nIndex=0; CString s[5]; for( int i =0; i InsertItem( nIndex, " "+s[0]) ; pList->SetItemText(nIndex,1," "+s[1]); pList->SetItemText(nIndex,2," "+s[2]); pList->SetItemText(nIndex,3," "+s[3]); pList->SetItemText(nIndex,4," "+s[4]); nIndex++; #else // 读取一行 sheet.ReadRow(Rows, i+2); CString strContents = ""; pList->InsertItem(i, strContents) ; for (int j = 0; j < Rows.GetSize(); j++) { strContents = Rows.GetAt(j); pList->SetItemText(i,j,strContents); } #endif } } ////////////////////////////////////////////////////////////////////////////// //名称:GetExcelDriver //功能:获取ODBC中Excel驱动 //作者:徐景周(jingzhou_xu@163.net) //组织:未来工作室(Future Studio) //日期:2002.9.1 ///////////////////////////////////////////////////////////////////////////// CString GetExcelDriver() { char szBuf[2001]; WORD cbBufMax = 2000; WORD cbBufOut; char *pszBuf = szBuf; CString sDriver; // 获取已安装驱动的名称(涵数在odbcinst.h里) if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut)) return ""; // 检索已安装的驱动是否有Excel... do { if (strstr(pszBuf, "Excel") != 0) { //发现 ! sDriver = CString(pszBuf); break; } pszBuf = strchr(pszBuf, '\0') + 1; } while (pszBuf[1] != '\0'); return sDriver; } /////////////////////////////////////////////////////////////////////////////// // void ExportListToExcel(CListCtrl* pList, CString strTitle) // 参数: // pList 需要导出的List控件指针 // strTitle 导出的数据表标题 // 说明: // 导出CListCtrl控件的全部数据到Excel文件。Excel文件名由用户通过“另存为” // 对话框输入指定。创建名为strTitle的工作表,将List控件内的所有数据(包括 // 列名和数据项)以文本的形式保存到Excel工作表中。保持行列关系。 // // edit by [r]@dotlive.cnblogs.com /////////////////////////////////////////////////////////////////////////////// void ExportListToExcel(CListCtrl* pList, CString strTitle) { CString warningStr; if (pList->GetItemCount ()>0) { CDatabase database; CString sDriver; CString sExcelFile; CString sSql; CString tableName = strTitle; // 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)" sDriver = GetExcelDriver(); if (sDriver.IsEmpty()) { // 没有发现Excel驱动 AfxMessageBox("没有安装Excel!"); return; } sExcelFile = "C:\\卡信息表.xls"; // 创建进行存取的字符串 sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile); // 创建数据库 (既Excel表格文件) if( database.OpenEx(sSql,CDatabase::noOdbcDialog) ) { // 创建表结构 int i; LVCOLUMN columnData; CString columnName; int columnNum = 0; CString strH; CString strV; sSql = ""; strH = ""; columnData.mask = LVCF_TEXT; columnData.cchTextMax =100; columnData.pszText = columnName.GetBuffer (100); for(i=1;pList->GetColumn(i,&columnData);i++) { if (i!=1) { sSql = sSql + ", " ; strH = strH + ", " ; } sSql = sSql + " " + columnData.pszText +" TEXT"; strH = strH + " " + columnData.pszText +" "; } columnName.ReleaseBuffer (); columnNum = i; sSql = "CREATE TABLE " + tableName + " ( " + sSql + " ) "; database.ExecuteSQL(sSql); // 插入数据项 int nItemIndex; for (nItemIndex=0;nItemIndexGetItemCount ();nItemIndex++){ strV = ""; for(i=1;iGetItemText(nItemIndex,i) +"' "; } sSql = "INSERT INTO "+ tableName +" ("+ strH + ")" +" VALUES("+ strV + ")"; database.ExecuteSQL(sSql); } } // 关闭数据库 database.Close(); warningStr.Format("Excel文件成功保存至%s",sExcelFile); AfxMessageBox(warningStr); } } CString g_ReturnStr( int iTemp,int iStrLen ) { CString sRet,s0 = "000000000000000"; sRet.Format( "%X",iTemp ); sRet += s0.Left( iStrLen-sRet.GetLength() ); return sRet; } bool g_bPassOK( CString sData ) { bool bRet=false; int n1=-1,n2=-1,n3=-1; n1 = sData.Find( "允许通过" ); n2 = sData.Find( "超级密码开门" ); n3 = sData.Find( "离开按钮开门" ); if( n1!=-1 || n2!=-1 || n3!=-1 ) { bRet = true; } return bRet; }