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

📄 mtestfee.c

📁 电力与银行通讯的源码 1.应用tuxedo中间件. 2.与银行的前置机通讯. 3.proc*c 的应用
💻 C
字号:
/*	MGETFEE(MQRYFEE):取费用(或查询费用)(该文件有改动需要同步更新mqryfee.cpp,完全一致,只有函数名不相同)	Input : 		序号 说明		长度	备注		1	客户编号	10			2	查询类别	1	0-只取该客户编号费用1-按该户合同号取费用		3	起始日期	8	YYYYMMDD,空白--不限制		4	截止日期	8	YYYYMMDD,空白--不限制		5	电费类别	2	00-全部(查询使用)                    11-所有应收(收费使用)		6	强制标志	2	00--不返回费用明细数据包;且超过阈值也不返回费用记录结果集,但返回记录数;				10--返回费用明细数据包;但超过阈值只返回记录数;				01-强制返回费用记录结果集,不返回费用明细数据;				11-强制返回所有结果				(缴费时默认给11,查询时默认给00)	Output: 		1	返回状态(可以转换成int型)	8	>0-返回的费用记录数											=0-没有费用记录											<0-访问失败											-100-该客户编号不存在		2	实际的结果记录数n	4	如不等于上面的值,则认为查询结果太多		3	费用明细记录数m		4	用于校验		4	费用记录结果集		226 * n	将各费用记录以一定格式拼成的字符串,格式:附		5	费用明细数据包		37 * m	结果集的格式:	电费流水	CHAR(15)		费用月份	CHAR(6)		YYYYMM	电费总额	CHAR(13)	##########.##	违约金额	CHAR(13)	##########.##	户名		CHAR(40)		用电地址	CHAR(80)		表号		CHAR(20)		平起码		CHAR(10)	#######.##	平止码		CHAR(10)	#######.##	客户编号	CHAR(10)		抄表顺序	CHAR(6)	明细结果的格式:	电费流水	CHAR(15)		项目代码	CHAR(2)	将电费中的各个项目进行编码,每一项都代表一个实际的名称	项目值		CHAR(20)	可以为金额、数量、说明等*/#include "public.h"#include "feeid.h"#define SIZE_OF_MAIN 223	/*主结构的大小*/#define SIZE_OF_DETAIL 37	/*明细结构的大小*/#define MAX_RESULT	100		/*最大的结果数,如不是强制处理,则大于该数则不处理*/#define MAX_DETAIL_ONE 40   /*每条记录的最大明细数*/#ifdef __cplusplusextern "C"#endifvoid#ifdef MW_CICSmain(MW_SVCINFO * transb)#endif#ifdef MW_TUXEDOMTESTFEE(MW_SVCINFO * transb)#endif{	/*定义输入参数*/	char szKHBH[11] = "";	char szDateFrom[9] = "";	char szDateTo[9] = "";	int  iFlag = 0;	int  iFeeFlag = 0;	int  iForceFlag = 0;	/*定义输出参数*/	int  iResultCount = 0;	/*结果记录数*/	int  iDetailCount = 0;	/*明细记录数*/char szKHBHTmp[11] = "";char szTemp1[100] = "";char szPara1[13]="";char szPara2[13]="";	/*定义临时变量*/	void *ppVar[100];	unsigned char pParam[] = TYPE_CHAR TYPE_CHAR TYPE_CHAR TYPE_INT TYPE_INT TYPE_INT TYPE_CHAR TYPE_CHAR;	int nStatus = 0;	int i,j;	BOOL bRet;	CMiddleWare mwMidWare;	char *szInBuf;	char *szOutBuf;	char szTemp[1000]= "";	int iReturn;	int  nBufferSize = 0;	/*输出的Buffer大小*/	MW_Init(&mwMidWare,transb);	szInBuf = MW_GetInBuf(&mwMidWare);	if (szInBuf == NULL)	{		gf_Return(&mwMidWare,-1,"没有输入参数!");		return;	}/*	MW_Trace("OK1");*/	/*取输入参数*/	strncpy(szKHBH,szInBuf,10);	szKHBH[10] = '\0';	strncpy(szTemp,szInBuf + 10,1);	szTemp[1] = '\0';	iFlag = atoi(szTemp);	strncpy(szDateFrom,szInBuf + 11,8);	szDateFrom[8] = '\0';	strncpy(szDateTo  ,szInBuf + 11 + 8,8);	szDateTo[8] = '\0';	strncpy(szTemp,szInBuf + 11 + 8 + 8,2);	szTemp[2] = '\0';	iFeeFlag = atoi(szTemp);	strncpy(szTemp,szInBuf + 11 + 8 + 8 + 2,2);	szTemp[2] = '\0';	iForceFlag = atoi(szTemp);	/*建费用临时表*/	    /* 输入参数:客户编号;起始日期;截止日期;           根据合同号:0-否,1-是;           电费类别:0-全部(欠费表与历史表中),                    11-所有应收应退,                    21-所有欠费(超过收费期限),                    22-当年欠费,                    23-历欠(非当年欠费) 输出参数:查询结果:0-正常结束, -100-客户编号不存在或重复@ac_khbh VARCHAR(10),@act_from CHAR(8),@act_to CHAR(8),@ai_gjhth INT,@ai_dflb INT,@ai_cxjg INT output	*/	iReturn=0;	sprintf(szPara1,"%13s","123456789012");	sprintf(szPara2,"%13s","123456789012");		ppVar[0] = &iReturn;	ppVar[1] = szPara1;    ppVar[2] = szPara2;	/*执行取费用存储过程*/	bRet = DB_ExecuteStoredProcedureWithResult(&theDatabase, "Up_c_test_fee", &nStatus, 		ppVar,1,		pParam,szKHBH,szDateFrom,szDateTo,iFlag,iFeeFlag,0,"xxxxxxxx","yyyyyyyy");	if(!bRet || nStatus)	//失败	{				gf_Return(&mwMidWare,-1,"APP Error:call procedure Up_c_test_fee failure!");		return;	}	/*根据数据量分配内存空间*/    iResultCount=2;    iForceFlag = 0;	if (iForceFlag == 0)	{		if (iResultCount <= MAX_RESULT)			nBufferSize = SIZE_OF_MAIN * iResultCount;	}	if (iForceFlag == 10)	{		nBufferSize = SIZE_OF_MAIN * iResultCount;		if (iResultCount <= MAX_RESULT)			nBufferSize += SIZE_OF_DETAIL * iResultCount * MAX_DETAIL_ONE;	}	if (iForceFlag == 1)	{		nBufferSize = SIZE_OF_MAIN * iResultCount;	}	if (iForceFlag == 11)	{		nBufferSize = SIZE_OF_MAIN * iResultCount + SIZE_OF_DETAIL * iResultCount * MAX_DETAIL_ONE;	}	MW_AllocateString(&mwMidWare,nBufferSize + 40);	/*最大设置32K的空间*/	szOutBuf = MW_GetOutBuf(&mwMidWare);	if (szOutBuf == NULL)	{		gf_Return(&mwMidWare,-1,"分配空间失败!");		return;	}	if (iResultCount > 0 && (iForceFlag > 0 || (iForceFlag ==0 && iResultCount <= MAX_RESULT)))	{	sprintf(szTemp,"%13s%13s%4d",szPara1,szPara2,iReturn);	memcpy(szOutBuf,szTemp,8+26);	MW_Trace(szTemp);	}	gf_Return(&mwMidWare,iResultCount,"");	return;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -