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

📄 fworkfnc.c

📁 嵌入式开发
💻 C
📖 第 1 页 / 共 2 页
字号:

	//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 + -