📄 fworkfnc.c
字号:
//DB_Create_Index( hBill,"CODEID", 100 );
//DB_Rebuild_Index( hBill , 100 );
DB_Go_Top( hBill ) ;
sfxTrim(sBillNo);
sprintf(tmp,"%-5s",sBillNo);
iErrCode=DB_Seek_First( hBill , tmp);
while (iErrCode==DB_FIND_RECORD)
{
if (DB_Is_Deleted(hBill)==DB_RECORD_NOT_DELETE) return DB_FIND_RECORD;
iErrCode=DB_Seek_Next( hBill);
}
return DB_RECORD_NOT_EXIST;
}
int sfxWorkIdGetValue(DB_HANDLE hKDan,char *sCodeId,char *sMaxId,char *sState)
{
char tmp[50]={0};
int iErr=DB_NO_ERROR;
iErr=DB_Get_Field_Val(hKDan,"CODEID",tmp,sizeof(tmp));
if(iErr!=DB_NO_ERROR) return iErr;
else
{
strcpy(sCodeId,tmp);
sfxTrim(sCodeId);
}
iErr=DB_Get_Field_Val(hKDan,"MAXID",tmp,sizeof(tmp));
if(iErr!=DB_NO_ERROR) return iErr;
else
{
strcpy(sMaxId,tmp);
sfxTrim(sMaxId);
}
iErr=DB_Get_Field_Val(hKDan,"STATE",tmp,sizeof(tmp));
if(iErr!=DB_NO_ERROR) return iErr;
else
{
strcpy(sState,tmp);
sfxTrim(sState);
}
return iErr;
}
int sfxWorkIdUpdate(DB_HANDLE hBill,char *sCodeId,char *sMaxId,char *sState)
{
int iResult=DB_NO_ERROR;
char tmp[50]={0};
sfxTrim(sCodeId);
sfxTrim(sMaxId);
sfxTrim(sState);
iResult=DB_Set_Field_Value(hBill,"CODEID",sCodeId);
iResult=DB_Set_Field_Value(hBill,"MAXID",sMaxId);
iResult=DB_Set_Field_Value(hBill,"STATE",sState);
iResult=DB_Post_Rec(hBill);
return iResult;
}
int sfxWorkIdAddNew(DB_HANDLE hBill,char *sCodeId,char *sMaxId,char *sState)
{
int iResult=DB_NO_ERROR;
char tmp[50]={0};
iResult=DB_Append_Rec(hBill);
sfxTrim(sCodeId);
sfxTrim(sMaxId);
sfxTrim(sState);
if(iResult==DB_NO_ERROR)
{
iResult=DB_Set_Field_Value(hBill,"CODEID",sCodeId);
iResult=DB_Set_Field_Value(hBill,"MAXID",sMaxId);
iResult=DB_Set_Field_Value(hBill,"STATE",sState);
DB_Post_Rec(hBill);
}
else
{
DB_Unpost_Rec(hBill);
}
return iResult;
}
int sfxPreRecCnt(char *sBillName)
{
char sCodeId[30]={0},sMaxId[30]={0},sState[30]={0};
char sBillNo[30]={0},sCount[30]={0},sFileName[30]={0};
char sTmp[30]={0};
int iErrCode;
int iCurId;
int k,iCount;
DB_HANDLE hRec, hInfo;//hInfo:WorkId;hRec:Detail
int iResult;
iResult=0;
strcpy(sBillName,"");
sfxWorkIdOpen(&hInfo);
sfxDetailOpen(&hRec);
iErrCode=DB_Go_Top(hInfo);
while(iErrCode==DB_NO_ERROR)
{
if(DB_Is_Deleted(hInfo)==DB_RECORD_NOT_DELETE)
{
if(sfxWorkIdGetValue(hInfo,sCodeId,sMaxId,sState)==DB_NO_ERROR)
{
if(!strcmp(sState,"1") )
{
break;
}
}
}
iErrCode=DB_Go_Next(hInfo);
}
if(iErrCode==DB_NO_ERROR)
{
sfxWorkIdGetValue(hInfo,sCodeId,sMaxId,sState);
iCurId=atoi(sMaxId);
sprintf(sMaxId,"%d",iCurId);
iCount=strlen(sMaxId);
if(iCount<3)
{
//位长不够的处理
strcpy(sTmp,"");
iCount=3-iCount;
for(k=1;k<=iCount;k++)
{
strcat(sTmp,"0");
}
strcat(sTmp,sMaxId);
strcpy(sMaxId,sTmp);
}
sprintf(sBillNo,"%s%s",sCodeId,sMaxId);
if(sfxDetailSeek(hRec,sBillNo)==DB_FIND_RECORD)
{
if(sfxDetailGetValue(hRec,sBillNo,sCount)==DB_NO_ERROR)
{
if(atoi(sCount)>0)
{
iCurId=atoi(sMaxId)+1;
sprintf(sMaxId,"%d",iCurId);
iCount=strlen(sMaxId);
if(iCount<3)
{
//位长不够的处理
strcpy(sTmp,"");
iCount=3-iCount;
for(k=1;k<=iCount;k++)
{
strcat(sTmp,"0");
}
strcat(sTmp,sMaxId);
strcpy(sMaxId,sTmp);
}
//保存记录
sprintf(sBillNo,"%s%s",sCodeId,sMaxId);
sfxDetailAddNew(hRec,sBillNo,"0");
}
else
{
iCurId=atoi(sMaxId);
sprintf(sMaxId,"%d",iCurId);
iCount=strlen(sMaxId);
if(iCount<3)
{
//位长不够的处理
strcpy(sTmp,"");
iCount=3-iCount;
for(k=1;k<=iCount;k++)
{
strcat(sTmp,"0");
}
strcat(sTmp,sMaxId);
strcpy(sMaxId,sTmp);
}
//保存记录
sprintf(sBillNo,"%s%s",sCodeId,sMaxId);
sfxDetailUpdate(hRec,sBillNo,"0");
}
}
}
else
{
iCurId=atoi(sMaxId);
sprintf(sMaxId,"%d",iCurId);
iCount=strlen(sMaxId);
if(iCount<3)
{
//位长不够的处理
strcpy(sTmp,"");
iCount=3-iCount;
for(k=1;k<=iCount;k++)
{
strcat(sTmp,"0");
}
strcat(sTmp,sMaxId);
strcpy(sMaxId,sTmp);
}
//保存记录
sprintf(sBillNo,"%s%s",sCodeId,sMaxId);
sfxDetailAddNew(hRec,sBillNo,"0");
}
sfxTrim(sBillNo);
if(!sfxIsNull(sBillNo))
{
sfxWorkIdUpdate(hInfo,sCodeId,sMaxId,sState);
//创建文本文件
strcpy(sFileName,"/usr/db/");
strcat(sFileName,sBillNo);
strcat(sFileName,".txt");
sfxCreatFile(sFileName,1);//覆盖
strcpy(sBillName,sBillNo);
iResult=1;
}
else
{
iResult=-1;//其它错误
}
}
else
{
//提示建立新代码
iResult=0;
}
sfxDBClose(hRec);
sfxDBClose(hInfo);
return iResult;
}
int sfxSetWorkId(char *sWorkId)
{
char sBuff[30]={0};
char sCodeId[30]={0},sMaxId[30]={0},sState[30]={0};
int iErrCode;
DB_HANDLE hInfo;//hInfo:WorkId;hRec:Detail
int iResult;
iResult=0;
iErrCode=sfxWorkIdOpen(&hInfo);
iErrCode=DB_Go_Top(hInfo);
while(iErrCode==DB_NO_ERROR)
{
//DB_Delete_All(hInfo);
sfxWorkIdGetValue(hInfo,sCodeId,sMaxId,sState);
if(!strcmp(sState,"1"))
{
sfxWorkIdUpdate(hInfo,sCodeId,sMaxId,"0");
}
iErrCode=DB_Go_Next(hInfo);
}
iErrCode=DB_Go_Top(hInfo);
while(iErrCode==DB_NO_ERROR)
{
if(sfxWorkIdGetValue(hInfo,sCodeId,sMaxId,sState)==DB_NO_ERROR)
{
strcpy(sBuff,sWorkId);
sfxTrim(sBuff);
if(!strcmp(sCodeId,sBuff))
{
break;
}
}
iErrCode=DB_Go_Next(hInfo);
}
if(iErrCode==DB_NO_ERROR)
{
sfxWorkIdUpdate(hInfo,sWorkId,sMaxId,"1");
iResult=1;//存在,并更新
}
else
{
sfxWorkIdAddNew(hInfo,sWorkId,"1","1");
iResult=0;//不存在,新建
}
sfxDBClose(hInfo);
return iResult;
}
int sfxDeleteFile(char *sSeekWord)
{
char sBillNo[30]={0},sFileName[30]={0};
int iErrCode;
char sFmtKey[50]={0};
DB_HANDLE hRec;//hInfo:WorkId;hRec:Detail
int iResult;
iResult=0;
//void sfxStrSplit(char *sStrLine,char cSplit,int iStrCount,char *sResult)
sfxStrSplit(sSeekWord,' ',0,sFmtKey);
sfxTrim(sFmtKey);
if(sfxIsNull(sFmtKey))
{
iResult=0;//没有查到相关资料
}
else
{
sfxDetailOpen(&hRec);
//int sfxDetailSeek(DB_HANDLE hBill,char *sBillNo)
sprintf(sBillNo,"%-10s",sFmtKey);
if(sfxDetailSeek(hRec,sBillNo)==DB_FIND_RECORD)
{
//删除文件
strcpy(sFileName,"/usr/db/");
strcat(sFileName,sBillNo);
strcat(sFileName,".txt");
remove(sFileName);
//删除记录
DB_Delete_Rec(hRec);
DB_Post_Rec(hRec);
iResult=1;
}
else
{
iResult=0;//没有查到相关资料
}
sfxDBClose(hRec);
}
return iResult;
}
void sfxUploadFiles(int baud_rate)
{
DB_HANDLE hdb,hInfo;
char sBillNo[30]={0},sCount[30]={0};
char sWorkId[30]={0},sMaxId[30]={0},sState[30]={0};
int iErrCode;
sfxDetailOpen(&hdb);
iErrCode=DB_Go_Top(hdb);
while(iErrCode==DB_NO_ERROR)
{
if(DB_Is_Deleted(hdb)==DB_RECORD_NOT_DELETE)
{
if(sfxDetailGetValue(hdb,sBillNo,sCount)==DB_NO_ERROR)
{
sfxUploadFileSgl(sBillNo,baud_rate);
}
}
iErrCode=DB_Go_Next(hdb);
}
DB_Delete_All(hdb);
iErrCode=sfxWorkIdOpen(&hInfo);
DB_Delete_All(hInfo);
sfxDBClose(hInfo);
sfxDBClose(hdb);
}
void sfxUploadFileSgl(char *sBillNo,int baud_rate)
{
char sFileName[50]={0};
int iErrCode;
//strcpy(sFileName,"/usr/db/");
strcpy(sFileName,sBillNo);
strcat(sFileName,".txt");
sfxUploadFileAuto(sFileName,baud_rate);
}
void sfxUploadFile( char *sFileName,int ibaud_rate )
{
char sPathName[50];
POPWIN popwin ;
char info[60] = {0} ;
sprintf( info , "是否上传[%s]?" , sFileName ) ;
if( MessageBox( info , OK_CANCEL ) == KEY_F(12) )
return ;
sprintf(info,"正在上传[%s]...",sFileName);
popwin = OpenPopWin( info ) ;
set_baud_rate( ibaud_rate ) ; // 设置波特率
if( upload_file( sFileName , info ) == 0 ){ // 上传文件
// 出错处理
MessageBox( info , ONLY_OK ) ;
ClosePopWin( popwin ) ;
return ;
}
ClosePopWin( popwin ) ;
//MessageBox( "上传完毕" , ONLY_OK ) ;
strcpy(sPathName,"/usr/db/");
strcat(sPathName,sFileName);
remove(sFileName);
}
void sfxUploadFileAuto( char *sFileName,int ibaud_rate )
{
char sPathName[50];
POPWIN popwin ;
char info[50];
sprintf(info,"正在上传文件[%s]...",sFileName);
popwin = OpenPopWin( info ) ;
set_baud_rate( ibaud_rate ) ; // 设置波特率
if( upload_file( sFileName , info ) == 0 ){ // 上传文件
// 出错处理
MessageBox( info , ONLY_OK ) ;
ClosePopWin( popwin ) ;
return ;
}
ClosePopWin( popwin ) ;
strcpy(sPathName,"/usr/db/");
strcat(sPathName,sFileName);
remove(sPathName);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -