⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linecount.cpp

📁 IP电话计费管理系统本地版
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	//获得文件的当前路径
	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 + -