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

📄 cmsb15.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
📖 第 1 页 / 共 2 页
字号:
/******************************************************************** **   源码文件名称 : cmsB15.SQC **   函数名称 	   : cms21B015 **   所属子系统   : CMS  **   当前文件版本 : 1.0.0.0 **   作        者 : XuZy  **   版本创建日期 : 2004/10/14 **   功能描述     : 自助设备业务量统计表 **   修改记录     : **   修改人       修改日期     修改日期*********************************************************************/#include    "sysdefine.h"#include    <stdio.h>#include	"pubcom.h"#include	"funcapi.h"#include    "code.h"#include    "attrdef.h"#include    "cmscode.h"#include	"cmsoperstat.h"#include	"cmsmerchantinfo.h"#include	"pubbranchinfo.h"#include 	"errlog.h"EXEC SQL INCLUDE sqlca;#define 	OVERPAGE	36       /* 满页行数 */ #define 	OVERLINE	5        /* 换行行数 */ #define		LIMIT		36struct	prtdata{	char	acBer[BIT9_LEN +1];					/* 序号			*/	char	acDevTypeComm[70 +1];				/* 设备类型 	*/	char	acDevId[BIT16_LEN +1];				/* 设备代码		*/	char	acPNumber[BIT7_LEN + 1];			/* 存现笔数		*/	char	acPAmt[TXAMT_LEN + 1];				/* 存现金额		*/	char	acGNumber[BIT7_LEN + 1];			/* 取现笔数		*/	char	acGAmt[TXAMT_LEN + 1];				/* 取现金额		*/	char	acSNumber[BIT7_LEN + 1];			/* 代理缴费笔数	*/	char	acSAmt[TXAMT_LEN + 1];				/* 代理缴费金额	*/	char	acTrNumber[BIT7_LEN + 1];			/* 转帐笔数		*/	char	acTrAmt[TXAMT_LEN + 1];				/* 转帐金额		*/	char	acCPNumber[BIT7_LEN + 1];			/* 改密笔数		*/	char	acQBNumber[BIT7_LEN + 1];			/* 查询笔数		*/	char	acUNumber[BIT7_LEN + 1];			/* 银联笔数		*/	char	acUAmt[TXAMT_LEN + 1];				/* 银联金额		*/	char    acBrc[BIT10_LEN + 1 ];    	        /* 所属机构码   */ };#define 	PRTLINE												\	if( prtline( fp, acFmtFile,acPrtData ) ) 					\	FUNCERR_PRO                                                 \	iLineCount++;/* 打印表头 */#define		PRTHEAD 											\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp,"title:" );										\	iLineCount++;												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "title0:%s|%s", 						        \				 pstPubcom->acBrc, acPage);						\	iLineCount++;                                               \	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "title1:%s|%s|%s|%s|%s|%s|%s|%s", 		        \				 acCardKindComm, acYear,						\				 acMonth,acDate, acYear1,acMonth1,				\				 acDate1,acCcyComm );							\	iLineCount++;                                               \	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "head:" );										\	iLineCount++;												\	iLine   ++ ;#define		PRTBODY0											\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "body0:"	);									\	iLineCount++;												\/* 打印数据 */#define		PRTBODY												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "body:%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s",\			stPrtdata.acBer,  		stPrtdata.acDevTypeComm,	\			stPrtdata.acDevId,		stPrtdata.acBrc,			\			stPrtdata.acPNumber,	stPrtdata.acPAmt,			\			stPrtdata.acGNumber,	stPrtdata.acGAmt,			\			stPrtdata.acSNumber,	stPrtdata.acSAmt,			\			stPrtdata.acTrNumber,	stPrtdata.acTrAmt,			\			stPrtdata.acCPNumber,	stPrtdata.acQBNumber,		\			stPrtdata.acUNumber,	stPrtdata.acUAmt);			\	iLineCount++;												\	iLine++;													\	iNum++;/* 打印页表尾 */#define		PRTFOOT												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "body1:" );									\	iLineCount++;												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "foot:%ld|%.2f|%ld|%.2f|%ld|%.2f|%ld|%.2f|%ld|%ld|%ld|%.2f",\			 		lTPNumber,  dTPAmt ,						\			 		lTGNumber,  dTGAmt ,						\			 		lTSNumber,  dTSAmt ,						\			 		lTTrNumber, dTTrAmt ,						\			 		lTCPNumber, lTQBNumber ,					\			 		lTUNumber,  dTUAmt );						\	iLineCount++;#define		PRTFOOTO											\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "foot0:" );									\	iLineCount++;												\	prtline( fp, "foot1:%ld|%.2f|%ld|%.2f|%ld|%.2f|%ld|%.2f|%ld|%ld|%ld|%.2f",\			 		lToPNumber,  dToPAmt ,						\			 		lToGNumber,  dToGAmt ,						\			 		lToSNumber,  dToSAmt ,						\			 		lToTrNumber, dToTrAmt ,						\			 		lToCPNumber, lToQBNumber ,					\			 		lToUNumber,  dToUAmt );						\	iLineCount++;												\	prtline( fp, "foot2:" );									\	iLineCount++;												\	iLine	=	0 ;		#define		BOTTM												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "bottm:%s|%s|%s|%s", 							\				pstPubcom->acTeller, acYear3, acMonth3,acDate3);\	iLineCount++;												\	iPage ++ ; iLine = 0 ; #define		PRTFOOTF											\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "head0:" );									\	iLineCount++;#define		PRTFOOTM											\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "head1:" );									\	iLineCount++; int cms21B015(pstPubcom)struct          pubcom          *pstPubcom;{	EXEC SQL BEGIN DECLARE SECTION;		char    acBrc[BRC_LEN +1];                  /* 机构代码 */ 		char    acBeginDate[DATE_LEN + 1 ];         /* 起始日期 */ 		char    acEndDate[DATE_LEN + 1 ];           /* 终止日期 */ 		char    acType[BIT2_LEN + 1];               /* 机构类型 */ 		char	acSelStr[512];		char	acSelStr1[512];		char	acCcy[3 + 1];		char    acCardKind[8 + 1];		char    acTranDevType[2 + 1];		char    acCardKindComm[70 + 1];		char    acCcyComm[16 + 1];		char    acDevId[15 + 1];		char    acDevId2[15 + 1];	EXEC SQL END   DECLARE SECTION;	int		lNumber = 0;		 				/* 交易笔数小计	*/	int		lTmpNumber = 0;		 				/* 交易笔数小计	*/	int		lTNumber = 0;		 				/* POS交易笔数小计	*/	int		lTmpTNumber = 0;	 				/* POS交易笔数小计	*/	int		iLineCount	=	0 ;	int		i, iPage , iLine, iNum, iFlag,iT;	int		iPN,iGN,iSN,iTN,iCPN,iQBN,iUN;	FILE	*fp, *fmtfp;						/* 文件指针	*/ 	double	dAmt = 0.00;		 				/* 交易金额小计	*/	double	dTmpAmt = 0.00;		 				/* 交易金额小计	*/	double	dTAmt = 0.00;	 		 			/* POS交易金额小计	*/	double	dTmpTAmt = 0.00;	 		 		/* POS交易金额小计	*/	int		iPNumber,iGNumber, iCPNumber, iTrNumber, iSNumber,iQBNumber, iUNumber;	long	lTPNumber,lTGNumber, lTCPNumber, lTTrNumber, lTQBNumber, lTUNumber,lTSNumber;	long	lToPNumber,lToGNumber, lToCPNumber, lToTrNumber, lToQBNumber, lToUNumber,lToSNumber;	double	dGAmt, dTrAmt, dUAmt, dPAmt,dSAmt;	double	dTGAmt, dTTrAmt, dTUAmt, dTPAmt,dTSAmt;	double	dToGAmt, dToTrAmt, dToUAmt, dToPAmt,dToSAmt;	char    caBrc[BRC_LEN + 1];                 /* 机构码   */	char	acWhrStr[ 512 ];	char	acFileName[ 101 ];	char	acFmtFile[ 101 ];	char	acPrtData[ 4096 ];	char	acPage[ 5 ];	char	acAmt[ 18 ];	char	acTAmt[ 18 ];	char	acTNumber[ 8 ];	char	acNumber[ 8 ];	char    acBankname[ 41 ];	char    acTmpCcy[BIT4_LEN + 1];	char    acTmpCardKind[BIT9_LEN + 1];	char    acTmpTranDevType[BIT3_LEN + 1];	char    acTranDevType1[BIT3_LEN + 1];	char    acDevId1[BIT16_LEN + 1];	char    acYear[BIT5_LEN + 1];	char    acMonth[BIT3_LEN + 1];	char    acDate[BIT3_LEN + 1];	char    acYear1[BIT5_LEN + 1];	char    acMonth1[BIT3_LEN + 1];	char    acDate1[BIT3_LEN + 1];	char    acYear3[BIT5_LEN + 1];	char    acMonth3[BIT3_LEN + 1];	char    acDate3[BIT3_LEN + 1];	char	acTmp1[70 +1];	char	acTmp2[BIT5_LEN +1];	char	acTmp3[BIT10_LEN +1];	struct	prtdata	stPrtdata;	struct	cmsoperstat	stCmsOperStat;	memset( acSelStr, 	   	0x00, sizeof( acSelStr ) );	memset( acSelStr1, 	   	0x00, sizeof( acSelStr1 ));	memset( acWhrStr, 	   	0x00, sizeof( acWhrStr )   );	memset( acBrc,	 	   	0x00, sizeof( acBrc )   );	memset( acPage,	 	   	0x00, sizeof( acPage )   );	memset( &stPrtdata,		0x00, sizeof( struct prtdata ));	memset( &stCmsOperStat,	0x00, sizeof( struct cmsoperstat ));	memset( acBankname,    	0x00, sizeof( acBankname ) );	memset( acYear,	    	0x00, sizeof( acYear ) );	memset( acMonth,	    0x00, sizeof( acMonth ) );	memset( acDate,		    0x00, sizeof( acDate ) );	memset( acYear1,	    0x00, sizeof( acYear1 ) );	memset( acMonth1,	    0x00, sizeof( acMonth1 ) );	memset( acDate1,		0x00, sizeof( acDate1 ) );	memset( acYear3,	    0x00, sizeof( acYear3 ) );	memset( acMonth3,	    0x00, sizeof( acMonth3 ) );	memset( acDate3,		0x00, sizeof( acDate3 ) );	if ( pubGetBaseInfo("BANKNAME", acBankname ) )		FUNCERR_PRO	/* 取数据字典 */	getstring( "BeginDate1", 	acBeginDate );	getstring( "EndDate1", 		acEndDate 	);	getstring( "DevID", 		acDevId1 	);	getstring( "TranDevType", 	acTranDevType1 	);	sprintf( g_acTrcMsg, "BeginDate1[%s]EndDate1[%s]DevID[%s]TranDevType[%s]", acBeginDate,acEndDate,acDevId1,acTranDevType1 );	TRCLOG4	/* 赋打印时间 */	strncpy(acYear3, pstPubcom->acTranDate8, 4);	strncpy(acMonth3, pstPubcom->acTranDate8  + 4, 2);	strncpy(acDate3, pstPubcom->acTranDate8 + 6, 4);    /*检查交易机构是否为中心机构,如果不是,不能做此交易*/    if (strcmp( pstPubcom->acBrcType, BRCTYPE_CRDCENTER))    {        strcpy( g_acRspCode, "CMS214" );        pubCrtRspInfo( );        ERRLOG        goto Exit;    }	fp = (FILE *)BeginFile( pstPubcom, NULL );	if ( fp == NULL )	{		strcpy( g_acRspCode, "DPS902" );		pubCrtRspInfo( );		ERRLOG		goto Exit;	}	sprintf( acFmtFile, "%s/fmt/cmsB15.fmt", getenv("HOME") );	sprintf( g_acFmtFile, acFmtFile );	if	( ( fmtfp=fopen(acFmtFile,"r") ) == NULL )	{		strcpy( g_acRspCode, "DPS902" );		strcpy( g_acTrcMsg, acFmtFile );		TRCLOG4        sprintf( g_acRspMsg, "打开格式文件[%s]错", acFmtFile );		ERRLOG		goto Exit ;	}	iLine	=	0 ;	iFlag	=	0 ;	iPage	=	1 ;	iNum	=	1 ;	sprintf( acSelStr, "select DISTINCT(cardkind), ccy, trandevtype, devid, cardkindcomm, ccycomm from cmsoperstat where 1=1 " );	if (strcmp(acBeginDate, INITDATE) != 0)	{		sprintf( acSelStr + strlen(acSelStr), "and trandate >= '%s' ", acBeginDate );	}	if (strcmp(acEndDate, INITDATE) != 0)	{		sprintf( acSelStr + strlen(acSelStr), "and trandate <= '%s' ", acEndDate );	}	if (strlen(acTranDevType1) > 0)	{		sprintf( acSelStr + strlen(acSelStr), "and trandevtype = '%s' ", acTranDevType1 );	}	if (strlen(acDevId1) > 0)	{		sprintf( acSelStr + strlen(acSelStr), "and devid = '%s' ", acDevId1 );	}	sprintf( acSelStr + strlen(acSelStr), "and trandevtype in ('13', '15','19','21') and trankind in ('003','034','020','042','004','022','033','005','029','030','031','015','040','016','041','023','024','032','036','037','055') " );	sprintf( acSelStr + strlen(acSelStr), "GROUP BY cardkind, ccy, trandevtype, devid, cardkindcomm, ccycomm" );    sprintf( g_acTrcMsg,"%s", acSelStr );    TRCLOG4	EXEC SQL PREPARE pre1_cur FROM :acSelStr;    if ( SQLCODE )    {        strcpy( g_acRspCode, "CMS1A7" );        pubCrtRspInfo( SQLCODE );        ERRLOG        goto Exit;    }	EXEC SQL DECLARE report_cur CURSOR FOR pre1_cur;    if(SQLCODE)    {        sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);        TRCLOG4        strcpy( g_acRspCode, "CMS110" );        pubCrtRspInfo("cmsoperstat",SQLCODE );        ERRLOG        goto Exit ;    }	SQLOPENCUR(report_cur,"report_cur")    if(SQLCODE)    {        sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);        TRCLOG4        strcpy( g_acRspCode, "CMS111" );        pubCrtRspInfo("cmsoperstat",SQLCODE );        ERRLOG        goto Exit ;    }	while ( TRUE )	{		pubInitCmsoperstat();		memset(acCardKind, 0x00, sizeof(acCardKind));		memset(acCcy, 0x00, sizeof(acCcy));		memset(acTranDevType, 0x00, sizeof(acTranDevType));		memset(acDevId, 0x00, sizeof(acDevId));		memset(acCardKindComm, 0x00, sizeof(acCardKindComm));		memset(acCcyComm, 0x00, sizeof(acCcyComm));

⌨️ 快捷键说明

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