📄 linecount.cpp
字号:
//获得文件的当前路径
TCHAR pFileName[MAX_PATH];
GetModuleFileName(NULL,pFileName,MAX_PATH);
if(strchr(pFileName,'\\'))
*strrchr(pFileName,'\\')='\0';
strcat(pFileName,"\\IPCount.mdb");
CString strChar="";
try
{
CString sDSN="ODBC;DRIVER=Microsoft Access Driver (*.mdb);DSN='';DBQ="+strChar+pFileName+strChar;
if(!m_database.IsOpen())
{
if(!m_database.Open(NULL,FALSE,FALSE,sDSN,FALSE))//打开数据库是否成功
{
CDialog::EndDialog(0);
GetParent()->PostMessage(WM_CLOSE);
}
}
CString strChar='\'';
CString strSQL="";
if(mdlg->bCountLineAll)
{
strSQL="select * from Temp";
}
else
strSQL="select * from Temp where [线号]="+strChar+m_strShowLine+strChar;
m_TSet.Open(CTempRecordSet::dynaset,strSQL);//打开数据表是否成功
}
catch(CDBException* pEx)//丢出异常处理
{
pEx->ReportError();
m_TSet.Close();
m_database.Close();
pEx->Delete();
}
if(!m_TSet.IsEOF())
m_TSet.MoveLast();
while( ! m_TSet.IsBOF())
{
m_TSet.Delete();
m_TSet.MovePrev();
}
m_TSet.Close();
int nTempInfo=-1;
if(!mdlg->bCountLineAll)
{
nTempInfo=mdlg->nLineCountFlag+1;
mdlg->nCountMoneyTimes[nTempInfo-1]=0;
mdlg->nHolidayCount[nTempInfo-1]=0;//节假日计数器
mdlg->nWeekCount[nTempInfo-1]=0;//周末计数器
mdlg->nTimeBetweenCount[nTempInfo-1]=0;//优惠时段计数器
mdlg->nNoSaleCutCount[nTempInfo-1]=0;//无折扣优惠计数器
//修改,只有在空闲或锁定状态才清空信息
if((strcmp(mdlg->m_SaleGrid.GetTextMatrix(nTempInfo,1),"锁定")==0)||(strcmp(mdlg->m_SaleGrid.GetTextMatrix(nTempInfo,1),"空闲")==0))
{
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,2,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,3,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,4,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,5,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,6,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,7,mdlg->strNum[nTempInfo-1]);
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,8,mdlg->strNum[nTempInfo-1]);
if(strcmp(mdlg->m_SaleGrid.GetTextMatrix(nTempInfo,9),"关")!=0)
{
mdlg->nCountClk[nTempInfo-1]=mdlg->nCountClk[nTempInfo-1]+1;
mdlg->ControlLine(mdlg->nCountClk[nTempInfo-1],nTempInfo);
}
}
}
else
{
int nMaxTime=0;
if(mdlg->nLineCountFlag==16)
nMaxTime=17;
else
nMaxTime=9;
for(nTempInfo=1;nTempInfo<nMaxTime;nTempInfo++)
{
mdlg->nCountMoneyTimes[nTempInfo-1]=0;
mdlg->nHolidayCount[nTempInfo-1]=0;//节假日计数器
mdlg->nWeekCount[nTempInfo-1]=0;//周末计数器
mdlg->nTimeBetweenCount[nTempInfo-1]=0;//优惠时段计数器
mdlg->nNoSaleCutCount[nTempInfo-1]=0;//无折扣优惠计数器
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,2,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,3,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,4,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,5,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,6,"");
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,7,mdlg->strNum[nTempInfo-1]);
mdlg->m_SaleGrid.SetTextMatrix(nTempInfo,8,mdlg->strNum[nTempInfo-1]);
if(strcmp(mdlg->m_SaleGrid.GetTextMatrix(nTempInfo,9),"关")!=0)
{
mdlg->nCountClk[nTempInfo-1]=mdlg->nCountClk[nTempInfo-1]+1;
mdlg->ControlLine(mdlg->nCountClk[nTempInfo-1],nTempInfo);
}
}
mdlg->bCountLineAll=FALSE;
}
CDialog::OnOK();
}
BOOL CLineCount::PreparePrint(int nLineNum)
{
UpdateData(TRUE);
CSaleMang *mdlg;
mdlg=(CSaleMang *)GetParent();
CIPCountDlg *IPCdlg;
IPCdlg=(CIPCountDlg *)GetParent()->GetParent();
char szSaveInfo[30];
memset(szSaveInfo,0,30);
CFile pFile;
//获得文件的当前路径
TCHAR pFileName[MAX_PATH];
GetModuleFileName(NULL,pFileName,MAX_PATH);
if(strchr(pFileName,'\\'))
*strrchr(pFileName,'\\')='\0';
strcat(pFileName,"\\PrintSet.DAT");
if (pFile.Open(pFileName, CFile::modeRead))
{
pFile.Read(szSaveInfo,30);
pFile.Close();
}
int nRow=0;
m_HideGrid.SetTextMatrix(nRow,0,szSaveInfo);
m_HideGrid.SetTextMatrix(nRow,1,"");
m_HideGrid.SetTextMatrix(nRow,2,m_LineGrid.GetTextMatrix(nLineNum,10));//区名
if(IPCdlg->nPrintMode==0)
{
m_HideGrid.SetTextMatrix(nRow,4,szSaveInfo);
m_HideGrid.SetTextMatrix(nRow,5,"");
m_HideGrid.SetTextMatrix(nRow,6,m_LineGrid.GetTextMatrix(nLineNum,10));
}
CString strDate="";
CString strStartTime="";
CString strTempTime=m_LineGrid.GetTextMatrix(nLineNum,3);
int nFindSpace=-1;
nFindSpace=strTempTime.Find(' ',0);
if(nFindSpace!=-1)
{
strDate=strTempTime.Mid(0,nFindSpace);
strStartTime=strTempTime.Mid(nFindSpace+1);
}
m_HideGrid.SetTextMatrix(nRow+1,0,m_LineGrid.GetTextMatrix(nLineNum,0));//流水号
m_HideGrid.SetTextMatrix(nRow+1,1,"");
m_HideGrid.SetTextMatrix(nRow+1,2,strDate);//日期
if(IPCdlg->nPrintMode==0)
{
m_HideGrid.SetTextMatrix(nRow+1,4,m_LineGrid.GetTextMatrix(nLineNum,0));
m_HideGrid.SetTextMatrix(nRow+1,5,"");
m_HideGrid.SetTextMatrix(nRow+1,6,strDate);
}
m_HideGrid.SetTextMatrix(nRow+2,0,m_LineGrid.GetTextMatrix(nLineNum,2));//被叫号
m_HideGrid.SetTextMatrix(nRow+2,1,"线号:");
m_HideGrid.SetTextMatrix(nRow+2,2,m_strShowLine);
if(IPCdlg->nPrintMode==0)
{
m_HideGrid.SetTextMatrix(nRow+2,4,m_LineGrid.GetTextMatrix(nLineNum,2));
m_HideGrid.SetTextMatrix(nRow+2,5,"线号:");
m_HideGrid.SetTextMatrix(nRow+2,6,m_strShowLine);
}
m_HideGrid.SetTextMatrix(nRow+3,0,m_LineGrid.GetTextMatrix(nLineNum,7));//话费
m_HideGrid.SetTextMatrix(nRow+3,1,"");
m_HideGrid.SetTextMatrix(nRow+3,2,m_LineGrid.GetTextMatrix(nLineNum,6));//附加费
if(IPCdlg->nPrintMode==0)
{
m_HideGrid.SetTextMatrix(nRow+3,4,m_LineGrid.GetTextMatrix(nLineNum,7));
m_HideGrid.SetTextMatrix(nRow+3,5,"");
m_HideGrid.SetTextMatrix(nRow+3,6,m_LineGrid.GetTextMatrix(nLineNum,6));
}
m_HideGrid.SetTextMatrix(nRow+4,0,strStartTime);
m_HideGrid.SetTextMatrix(nRow+4,1,"");
m_HideGrid.SetTextMatrix(nRow+4,2,m_LineGrid.GetTextMatrix(nLineNum,4));//时长
if(IPCdlg->nPrintMode==0)
{
m_HideGrid.SetTextMatrix(nRow+4,4,strStartTime);
m_HideGrid.SetTextMatrix(nRow+4,5,"");
m_HideGrid.SetTextMatrix(nRow+4,6,m_LineGrid.GetTextMatrix(nLineNum,4));
}
m_HideGrid.SetTextMatrix(nRow+5,0,m_LineGrid.GetTextMatrix(nLineNum,5));//费率
m_HideGrid.SetTextMatrix(nRow+5,1,"");
m_HideGrid.SetTextMatrix(nRow+5,2,m_LineGrid.GetTextMatrix(nLineNum,7));//总计
if(IPCdlg->nPrintMode==0)
{
m_HideGrid.SetTextMatrix(nRow+5,4,m_LineGrid.GetTextMatrix(nLineNum,5));
m_HideGrid.SetTextMatrix(nRow+5,5,"");
m_HideGrid.SetTextMatrix(nRow+5,6,m_LineGrid.GetTextMatrix(nLineNum,7));
}
//m_HideGrid.SetRowHeight(0,1000);
return TRUE;
}
void CLineCount::ReadFromFile()
{
SQLHENV henv = NULL;
SQLHDBC hdbc = NULL;
BOOL bIsConnected = FALSE;
SQLHSTMT hstmt = NULL;
SQLRETURN rc;
SWORD sMsgNum = 0;
SDWORD pfNative=0;
for (int k=0;k<10;k++)
strLanWidth[k]="";
if (SQL_SUCCESS == (rc =::SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv)))
{
if (SQL_SUCCESS == (rc = ::SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3,SQL_IS_INTEGER)))
{
if (SQL_SUCCESS == (rc =::SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc)))
{
rc = ::SQLConnect(hdbc,(SQLCHAR*)"IPCount",SQL_NTS,(SQLCHAR*)"", SQL_NTS, (SQLCHAR*)"", SQL_NTS);
if ((SQL_SUCCESS == rc)|| (SQL_SUCCESS_WITH_INFO == rc))
{
bIsConnected = TRUE;
if (SQL_SUCCESS == (rc =::SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt)))
{
CString strChar='\'';
CString strSQL="";
strSQL="select * from PrintTb";
LPCSTR szSQL =strSQL;
if (SQL_SUCCESS == (rc = ::SQLPrepare(hstmt,(unsigned char*)szSQL, SQL_NTS)))
{
if (SQL_SUCCESS == (rc = ::SQLExecute(hstmt)))
{
SDWORD cb;
char sz1[10]="";
char sz2[10]="";
char sz3[10]="";
char sz4[10]="";
char sz5[10]="";
char sz6[10]="";
char sz7[10]="";
char sz8[10]="";
char sz9[10]="";
char sz10[10]="";
//SQLBindCol(hstmt,1,SQL_C_CHAR,sz1,10,&cb);
SQLBindCol(hstmt,2,SQL_C_CHAR,sz2,10,&cb);
SQLBindCol(hstmt,3,SQL_C_CHAR,sz3,10,&cb);
SQLBindCol(hstmt,4,SQL_C_CHAR,sz4,10,&cb);
SQLBindCol(hstmt,5,SQL_C_CHAR,sz5,10,&cb);
SQLBindCol(hstmt,6,SQL_C_CHAR,sz6,10,&cb);
SQLBindCol(hstmt,7,SQL_C_CHAR,sz7,10,&cb);
SQLBindCol(hstmt,8,SQL_C_CHAR,sz8,10,&cb);
SQLBindCol(hstmt,9,SQL_C_CHAR,sz9,10,&cb);
SQLBindCol(hstmt,10,SQL_C_CHAR,sz10,10,&cb);
rc = SQLFetch(hstmt);
nPrintGridCount=0;
while (SQL_SUCCESS == rc)
{
nPrintGridCount++;
//重新初始化每一个变量
if(nPrintGridCount==1)
{
strLanWidth[0]=sz2;
strLanWidth[1]=sz3;
strLanWidth[2]=sz4;
strLanWidth[3]=sz5;
strLanWidth[4]=sz6;
strLanWidth[5]=sz7;
strLanWidth[6]=sz8;
strLanWidth[7]=sz9;
strLanWidth[8]=sz10;
}
strcpy((char *)sz1,LPCTSTR(""));
strcpy((char *)sz2,LPCTSTR(""));
strcpy((char *)sz3,LPCTSTR(""));
strcpy((char *)sz4,LPCTSTR(""));
strcpy((char *)sz5,LPCTSTR(""));
strcpy((char *)sz6,LPCTSTR(""));
strcpy((char *)sz7,LPCTSTR(""));
strcpy((char *)sz8,LPCTSTR(""));
strcpy((char *)sz9,LPCTSTR(""));
strcpy((char *)sz10,LPCTSTR(""));
rc = SQLFetch(hstmt);
}
}
}
}
}
}
}
}
if (henv)
{
if (hdbc)
{
if (bIsConnected)
{
if (hstmt)
{
::SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
}
::SQLDisconnect(hdbc);
bIsConnected = FALSE;
}
::SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
hdbc = NULL;
}
::SQLFreeHandle(SQL_HANDLE_ENV, henv);
henv = NULL;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -