123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700 |
- #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<CONCTROLLER_NUM_MAX;i++ )
- {
- if( g_Controller[i].nID>=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<CARD_NUM_MAX;i++ )
- {
- if( g_Card[i].nID>=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<CONCTROLLER_NUM_MAX;i++ )
- {
- if( g_Controller[i].nID>=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;i<CONCTROLLER_NUM_MAX;i++ )
- {
- if( g_pDlgMain->m_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<CARD_NUM_MAX;nCardIndex++ )
- {
- if( g_Card[nCardIndex].nID>=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<CARD_NUM_MAX;nCardIndex++ )
- {
- if( g_Card[nCardIndex].nID>=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;i<COM_NUM_MAX;i++ )
- {
- if( g_COM[i].sPortName==sComName )
- {
- nRet = g_COM[i].nStatus;
- break;
- }
- }
- return nRet;
- }
- bool g_SetComIsOpen( CString sComName,int iStatus )
- {
- bool bRet=false;
- for( int i=0;i<COM_NUM_MAX;i++ )
- {
- if( g_COM[i].sPortName==sComName )
- {
- g_COM[i].nStatus = iStatus;
- break;
- }
- }
- return bRet;
- }
- void SetCombDoor( CComboBox *pComboBox )
- {
- pComboBox->ResetContent();
- for( int i=0;i<CONCTROLLER_NUM_MAX;i++ )
- {
- if( g_Controller[i].nID>=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 <sheet.GetTotalRows()-1; i++ )
- {
- #if 1
- // 读取一行
- sheet.ReadRow(Rows, i+2);
-
- s[0] = Rows.GetAt( 0 );
- s[1] = Rows.GetAt( 1 );
- s[2] = Rows.GetAt( 2 );
- s[3] = Rows.GetAt( 3 );
- s[4] = Rows.GetAt( 4 );
- if( s[0]=="" && s[1]=="" && s[2]=="" && s[3]=="" && s[4]=="" )
- continue;
- int nPos=0;
- nPos = s[1].Find(".0");
- if( nPos!=-1 )
- s[1] = s[1].Left( nPos );
- nPos = s[2].Find(".0");
- if( nPos!=-1 )
- s[2] = s[2].Left( nPos );
- nPos = s[2].Find(".0");
- if( nPos!=-1 )
- s[2] = s[2].Left( nPos );
- nPos = s[3].Find(".0");
- if( nPos!=-1 )
- s[3] = s[3].Left( nPos );
- nPos = s[4].Find(".0");
- if( nPos!=-1 )
- s[4] = s[4].Left( nPos );
- pList->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;nItemIndex<pList->GetItemCount ();nItemIndex++){
- strV = "";
- for(i=1;i<columnNum;i++)
- {
- if (i!=1)
- {
- strV = strV + ", " ;
- }
- strV = strV + " '" + pList->GetItemText(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;
- }
|