📄 transview.cpp
字号:
{
p->LogMsg("接收银行请求失败(1125)!",0);
return 0;
}
int SendLen=0;
p->LogMsg(SendBuf,0);
SendLen=p->m_BankInte->FormatAns(SendBuf,(void*)myBuf,RecvBuf);
FD_ZERO(&sendset);
FD_SET(s,&sendset);
OK=select(1,NULL,&sendset,NULL,&timeout);
if(OK)
{
int slen=send(s,myBuf,SendLen,0);
if(slen==SendLen)
{
p->LogMsg("发送成功!",0);
}
else
{
p->LogMsg("发送失败!1178",0);
closesocket(s);
return 0;
}
}
else
{
p->LogMsg("不能发送信息!(1183)",0);
}
closesocket(s);
return 0;
}
//******************************************************************************
//功 能:比较对账结果,保留在文件yyyymmdd.jg
// 成功:>=0
// 错误:<0
//说 明:20070807 修改,对于不平的帐单记录在yyyymmdd.dbz
//******************************************************************************
int CTransView::ValidDzd(LPCSTR source, LPCSTR dest)
{
int v_BToS,v_SToB; //银行券商转账笔数
int v_Open,v_Cancel;;
int v_MBToS,v_MSToB;
int ret=-1;
//
try
{
CTime t=CTime::GetCurrentTime();
CString strDzjg=t.Format(".\\log\\%Y%m%d.jg");
CString strDbz=t.Format(".\\log\\%Y%m%d.Dbz");
ofstream ofDbz((LPCSTR)strDbz);
CStdioFile fSource,fDest,fDzjg;
CString strLog,strDestRead,strSourceRead;
if(fDzjg.Open(strDzjg,CFile::modeWrite|CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText))
{
if(!fDest.Open(dest,CFile::modeRead|CFile::typeText))
{
strLog="不能打开文件";
strLog+=dest;
strLog+=",对账失败!";
fDzjg.WriteString(strLog);
fDzjg.Close();
return ret;
}
if(!fSource.Open(source,CFile::modeRead|CFile::typeText))
{
strLog="不能打开文件";
strLog+=source;
strLog+=",对账失败!";
fDzjg.WriteString(strLog);
fDzjg.Close();
return ret;
}
v_BToS=0;
v_SToB=0;
v_Open=0;
v_Cancel=0;
v_MBToS=0;
v_MSToB=0;
BOOL bOK=TRUE;
while(fDest.ReadString(strDestRead))
{
strDestRead.Replace(" ","");
char szDest[1024];
char szParse[7][40];
strcpy(szDest,(LPCSTR)strDestRead);
memset(szParse,0,7*40);
int i=0,j=0,k=0;
while(szDest[i])
{
if(szDest[i]!='|')
szParse[j][k++]=szDest[i];
else
{
szParse[j][k]=0;
k=0;
j++;
}
i++;
if(j>=7) break;
if(i>1024) break;
}
switch(szParse[0][0]){
case '1':
v_SToB++;
break;
case '2':
v_BToS++;
break;
case '6':
v_Open++;
break;
case '7':
v_Cancel++;
}
fSource.SeekToBegin();
BOOL bFound=FALSE;
while(fSource.ReadString(strSourceRead))
{
strSourceRead.Replace(" ","");
char szSource[1024];
char szParse2[7][40];
strcpy(szSource,(LPCSTR)strSourceRead);
if(szSource[0]!=szDest[0])
continue;
i=0;j=0;k=0;
while(szSource[i])
{
if(szSource[i]!='|')
szParse2[j][k++]=szSource[i];
else
{
szParse2[j][k]=0;
k=0;
j++;
}
i++;
if(j>=7) break;
if(i>1024) break;
}
CString str1,str2;
str1=szParse[2];
str2=szParse2[2];
if(str1.GetLength()>str2.GetLength())
{
if(str1.Right(str2.GetLength())!=str2)
continue;
}
else
{
if(str2.Right(str1.GetLength())!=str1)
continue;
}
if(strcmp(szParse[3],szParse2[3])!=0)//比较银行账户
continue;
str1=szParse[4]; //比较合同序号
str2=szParse2[4];
if(str1.GetLength()>str2.GetLength())
{
if(str1.Right(str2.GetLength())!=str2)
continue;
}
else
{
if(str2.Right(str1.GetLength())!=str1)
continue;
}
int nJe1,nJe2;
nJe1=int(atof(szParse[5])*100);
nJe2=int(atof(szParse2[5])*100);
if(nJe1!=nJe2) continue;
if(szParse[6][0]!=szParse2[6][0]) continue;
bFound=TRUE;
}
strLog=strDestRead;
ofDbz<<(LPCSTR)strLog<<endl;
if(bFound)
strLog+=" 对账成功!\n";
else
{
strLog+=" 对账有误!\n";
bOK=FALSE;
}
fDzjg.SeekToEnd();
fDzjg.WriteString(strLog);
}
fDest.Close();
fSource.Close();
fDzjg.Close();
if(bOK) ret=1;
}
}
catch(...)
{
}
return ret;
}
//******************************************************************************
//功 能:比较对账结果,保留在文件yyyymmdd.jg
// 成功:>=0
// 错误:<0
//******************************************************************************
/*int CTransView::ValidDzd(LPCSTR source, LPCSTR dest)
{
int v_BToS,v_SToB; //银行券商转账笔数
int v_Open,v_Cancel;;
int v_MBToS,v_MSToB;
int ret=-1;
//
try
{
CTime t=CTime::GetCurrentTime();
CString strDzjg=t.Format(".\\log\\%Y%m%d.jg");
CStdioFile fSource,fDest,fDzjg;
CString strLog,strDestRead,strSourceRead;
if(fDzjg.Open(strDzjg,CFile::modeWrite|CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText))
{
if(!fDest.Open(dest,CFile::modeRead|CFile::typeText))
{
strLog="不能打开文件";
strLog+=dest;
strLog+=",对账失败!";
fDzjg.WriteString(strLog);
fDzjg.Close();
return ret;
}
if(!fSource.Open(source,CFile::modeRead|CFile::typeText))
{
strLog="不能打开文件";
strLog+=source;
strLog+=",对账失败!";
fDzjg.WriteString(strLog);
fDzjg.Close();
return ret;
}
v_BToS=0;
v_SToB=0;
v_Open=0;
v_Cancel=0;
v_MBToS=0;
v_MSToB=0;
BOOL bOK=TRUE;
while(fDest.ReadString(strDestRead))
{
strDestRead.Replace(" ","");
char szDest[1024];
char szParse[7][40];
strcpy(szDest,(LPCSTR)strDestRead);
memset(szParse,0,7*40);
int i=0,j=0,k=0;
while(szDest[i])
{
if(szDest[i]!='|')
szParse[j][k++]=szDest[i];
else
{
szParse[j][k]=0;
k=0;
j++;
}
i++;
if(j>=7) break;
if(i>1024) break;
}
switch(szParse[0][0]){
case '1':
v_SToB++;
break;
case '2':
v_BToS++;
break;
case '6':
v_Open++;
break;
case '7':
v_Cancel++;
}
fSource.SeekToBegin();
BOOL bFound=FALSE;
while(fSource.ReadString(strSourceRead))
{
strSourceRead.Replace(" ","");
char szSource[1024];
char szParse2[7][40];
strcpy(szSource,(LPCSTR)strSourceRead);
if(szSource[0]!=szDest[0])
continue;
i=0;j=0;k=0;
while(szSource[i])
{
if(szSource[i]!='|')
szParse2[j][k++]=szSource[i];
else
{
szParse2[j][k]=0;
k=0;
j++;
}
i++;
if(j>=7) break;
if(i>1024) break;
}
CString str1,str2;
str1=szParse[2];
str2=szParse2[2];
if(str1.GetLength()>str2.GetLength())
{
if(str1.Right(str2.GetLength())!=str2)
continue;
}
else
{
if(str2.Right(str1.GetLength())!=str1)
continue;
}
if(strcmp(szParse[3],szParse2[3])!=0)//比较银行账户
continue;
str1=szParse[4]; //比较合同序号
str2=szParse2[4];
if(str1.GetLength()>str2.GetLength())
{
if(str1.Right(str2.GetLength())!=str2)
continue;
}
else
{
if(str2.Right(str1.GetLength())!=str1)
continue;
}
int nJe1,nJe2;
nJe1=int(atof(szParse[5])*100);
nJe2=int(atof(szParse2[5])*100);
if(nJe1!=nJe2) continue;
if(szParse[6][0]!=szParse2[6][0]) continue;
bFound=TRUE;
}
strLog=strDestRead;
if(bFound)
strLog+=" 对账成功!\n";
else
{
strLog+=" 对账有误!\n";
bOK=FALSE;
}
fDzjg.SeekToEnd();
fDzjg.WriteString(strLog);
}
fDest.Close();
fSource.Close();
fDzjg.Close();
if(bOK) ret=1;
}
}
catch(...)
{
}
return ret;
}
*/
void CTransView::OnMenuSgdz()
{
CTime t=CTime::GetCurrentTime();
CString str1=t.Format(".\\tmp\\%Y%m%d.ls");
CString str2=t.Format(".\\tmp\\%Y%m%d.Dzd");
CString str3=t.Format(".\\log\\%Y%m%d.jg");
int ret=ValidDzd(str1,str2);
if(ret>=0)
ret=ValidDzd(str2,str1);
if(ret>=0)
MessageBox("对帐成功!");
else
{
MessageBox("对帐不平!");
CString strcmd="notepad ";
strcmd+=str3;
WinExec(strcmd,2);
}
}
BOOL CTransView::LogMsg(char *format, ...)
{
char sLogStr[1000]="";
CString csLogStr("");
CTime t=CTime::GetCurrentTime();
CString s=t.Format("%H:%M:%S");
CString FileName=t.Format(".\\log\\%Y%m%d.log");
va_list marker;
va_start(marker,format);
_vsnprintf(sLogStr,1000,format,marker);
try
{
csLogStr.Format("%s \n",sLogStr);
ofstream logFile(FileName,ios::app);
logFile<<(LPCSTR)s<<" "<<sLogStr<<endl;
logFile.close();
}
catch(...)
{
}
va_end(marker);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -