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

📄 cmsb19.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cmsB19.SQC **   函数名称 	   : cms21B019 **   所属子系统   : CMS  **   当前文件版本 : 1.0.0.0 **   作        者 : ZhouR  **   版本创建日期 : 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	"glssubtranslog.h"#include	"cmscardinfo.h"#include 	"errlog.h"EXEC SQL INCLUDE sqlca;#define 	OVERPAGE	45       /* 满页行数 */ #define 	OVERLINE	5        /* 换行行数 */ #define		LIMIT		50struct	prtdata{	char	acBrc[BRC_LEN + 1];					/* 交易机构码 */	char	acCardNo[CARDNO_LEN +1];			/* 卡号     */	char	acTranDate[DATE_LEN + 1];		 	/* 交易日期 */	char	acTime[BIT9_LEN + 1];		 	/* 交易时间 */	char	acSerseqNo[SERSEQNO_LEN + 1];		/* 交易流水号 */	char	acTranCode[TRANCODE_LEN + 1];		/* 交易码 */	char	acCashTranFlag[BIT10_LEN + 1];		/* 现转标志 */	char    acDTranAmt[TXAMT_LEN + 1];   		/* 借方发生额 */	char	acCTranAmt[TXAMT_LEN + 1];			/* 贷方发生额 */	char 	acIssueBrc[BRC_LEN + 1];			/* 发卡机构 */	char 	acTeller[BIT7_LEN + 1];				/* 交易操作员 */	char 	acCancelTransFlag[BIT9_LEN + 1];	/* 冲销交易标志 */	char 	acCancelFlag[BIT9_LEN + 1];			/* 被冲销标志 */};#define 	PRTLINE												\	if( prtline( fp, acFmtFile,acPrtData ) ) 					\	FUNCERR_PRO													\	iLineCount++;#define		PRTHEAD 											\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp,"title:%s", acBankname);						\	iLineCount++;												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "title0:%s|%d",								\			 pstPubcom->acBrc, iPage	 );					    \	iLineCount++;												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "head:"	);									\	iLineCount++;												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "body:"	);									\	iLineCount++;#define		PRTBODY												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "body0:%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s",	\			stPrtdata.acCardNo,		stPrtdata.acTranDate,		\			stPrtdata.acTime,		stPrtdata.acSerseqNo,		\			stPrtdata.acTranCode,  	stPrtdata.acCashTranFlag,	\			stPrtdata.acDTranAmt,	stPrtdata.acCTranAmt, 		\			stPrtdata.acIssueBrc, 	stPrtdata.acTeller, 		\			stPrtdata.acCancelTransFlag, 	stPrtdata.acCancelFlag);	\	iLineCount++;												\	iLine	++ ;	#define		PRTFOOT												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "tail1:" );									\	iLineCount++;												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "bottm:%s", 									\			 pstPubcom->acTeller );								\	iLineCount++;												\	memset( acPrtData, 0x00, sizeof( acPrtData ) );				\	prtline( fp, "next:%s",pstPubcom->acTranDate );				\	iLineCount++;												\	iPage	++ ;	iLine	=	0 ;	int cms21B019(pstPubcom)struct          pubcom          *pstPubcom;{	EXEC SQL BEGIN DECLARE SECTION;	char    acBeginDate[DATE_LEN + 1 ];         /* 起始日期 */ 	char    acEndDate[DATE_LEN + 1 ];           /* 终止日期 */ 	char    acCardNo[CARDNO_LEN + 1 ];          /* 卡号     */	char    acBrc[BRC_LEN + 1 ];          		/*交易机构码*/	char	acWhrStr[ 512 ];	EXEC SQL END   DECLARE SECTION;	char    acCashTranFlag[FLAG1_LEN + 1 ];    	/* 先转标志 */	char    acCdFlag[FLAG1_LEN + 1 ];      		/* 借贷标志 */	char 	acCancelTransFlag[BIT2_LEN + 1];	/* 冲销交易标志 */	char 	acCancelFlag[BIT2_LEN + 1];			/* 被冲销标志 */	char	acBankname[ 41 ];	char    acBuffer[9];	char    acBuffer1[9];	char    acBuffer2[9];	FILE	*fp,*fmtfp;							/* 文件指针	*/ 	char	acSelStr[ 301 ];	char	acWhrStr1[ 512 ];	char	acWhrStr2[ 512 ];	char	acWhrStr3[ 512 ];	char	acWhrStr4[ 512 ];	char	acWhrStr5[ 512 ];	char	acWhrStr6[ 512 ];	char	acStr1[ 141 ];	int		iLineCount	=	0 ;	int		i, iPage, iLine ;	char	acFileName[ 101 ];	char	acFmtFile[ 101 ];	char	acPrtData[ 4096 ];	struct	prtdata	stPrtdata;	struct  glssubtranslog      stGlsSubTransLog;     	/* 子交易流水表 */	memset( acBeginDate,   	0x00, sizeof( acBeginDate ));	memset( acEndDate,     	0x00, sizeof( acEndDate )  );  	memset( acCashTranFlag,	0x00, sizeof( acCashTranFlag ));	memset( acCdFlag,    	0x00, sizeof( acCdFlag )   );	memset( acCardNo,    	0x00, sizeof( acCardNo )   );	memset( acBuffer, 	   	0x00, sizeof( acBuffer )   );	memset( acBuffer1, 	   	0x00, sizeof( acBuffer1 )   );	memset( acBuffer2, 	   	0x00, sizeof( acBuffer2 )   );	memset( acBrc,          0x00, sizeof( acBrc ) );	memset( acCancelTransFlag,     0x00, sizeof( acCancelTransFlag ) );	memset( acCancelFlag,          0x00, sizeof( acCancelFlag ) );	memset( acSelStr, 	   	0x00, sizeof( acSelStr )   );	memset( acWhrStr, 	   	0x00, sizeof( acWhrStr )   );	memset( acWhrStr1, 	   	0x00, sizeof( acWhrStr1 )  );	memset( acWhrStr2, 	   	0x00, sizeof( acWhrStr2 )  );	memset( acWhrStr3, 	   	0x00, sizeof( acWhrStr3 )  );	memset( acWhrStr4, 	   	0x00, sizeof( acWhrStr4 )  );	memset( acWhrStr5, 	   	0x00, sizeof( acWhrStr5 )  );	memset( acWhrStr6, 	   	0x00, sizeof( acWhrStr6 )  );	memset( acStr1, 	   	0x00, sizeof( acStr1 )     );	memset( &stGlsSubTransLog, 0x00, sizeof( struct glssubtranslog ));	memset( acBankname,    	0x00, sizeof( acBankname ) );	if ( pubGetBaseInfo("BANKNAME", acBankname ) )		FUNCERR_PRO	/* 取数据字典 */  	getstring( "BeginDate1", 	acBeginDate );	getstring( "EndDate1", 		acEndDate	);     	sprintf( g_acTrcMsg,"BeginDate1[%s]EndDate1[%s]", acBeginDate,acEndDate );  	TRCLOG4    /*检查交易机构是否为中心机构,如果是,则申请机构可以为空,否则当申请机构为空时,将交易机构付给申请机构 */	if (!strcmp( pstPubcom->acBrcType, BRCTYPE_SITE)) /* 营业网点 */	{		if (strlen(acBrc) == 0)		{			strcpy( acBrc, pstPubcom->acBrc );			}		if (strcmp( pstPubcom->acBrc, acBrc))		{        	strcpy( g_acRspCode, "CMS214" );			pubCrtRspInfo( );			ERRLOG			goto Exit;		}	}	fp = (FILE *)BeginFile( pstPubcom, NULL );	if ( fp == NULL )	{		ERRLOG		return FAILED ;	}	sprintf( acFmtFile, "%s/fmt/cmsB19.fmt", getenv("HOME") );	sprintf( g_acFmtFile, acFmtFile );          	if( ( fmtfp=fopen(acFmtFile,"r") ) == NULL )	{                                           		strcpy( g_acTrcMsg, acFmtFile );        		TRCLOG2                                 		strcpy( g_acRspCode, "CMS1B0" );		sprintf( g_acRspMsg, "打开格式文件[%s]错", acFmtFile );		ERRLOG		goto Exit;	}	iLine	=	0 ;			iPage	=	1 ;	strcpy( acBrc, pstPubcom->acBrc );	sprintf( acWhrStr1, " select * from glssubtranslog");	sprintf( acWhrStr2, " where 1=1 and cardno !=''");	if ( strcmp ( acBeginDate, INITDATE ) )	{		sprintf( acWhrStr3, " and trandate >= '%s'",  acBeginDate );	}	if ( strcmp ( acEndDate, INITDATE ) )	{		sprintf( acWhrStr4," and trandate <= '%s' ", acEndDate );	}	if ( strlen ( acBrc ) > 0 )	{		sprintf( acWhrStr5, " and brc = '%s'", acBrc );	}	sprintf( acWhrStr6, " ORDER BY trandate,  serseqno " );	sprintf( acWhrStr, "%s%s%s%s%s%s",			acWhrStr1,acWhrStr2,acWhrStr3,acWhrStr4,acWhrStr5,acWhrStr6 ); 	strcpy( g_acTrcMsg, acWhrStr );	TRCLOG4                        	EXEC SQL PREPARE pre_1 FROM :acWhrStr;	if ( SQLCODE )                      	{                                   		strcpy( g_acRspCode, "CMS1A7" );		pubCrtRspInfo( SQLCODE );       		ERRLOG                          		goto Exit;	}                                   	EXEC SQL    DECLARE gls_l_cur CURSOR FOR pre_1;	if(SQLCODE)	{		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		strcpy( g_acRspCode, "CMS110" );		pubCrtRspInfo("glssubtranslog",SQLCODE );		ERRLOG		goto Exit ;	}	SQLOPENCUR(gls_l_cur,"gls_l_cur")	if(SQLCODE)	{		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		strcpy( g_acRspCode, "CMS111" );		pubCrtRspInfo("glssubtranslog",SQLCODE );		ERRLOG		goto Exit ;	}	for( ; ; )	{		memset( &stPrtdata,	0x00,	sizeof( struct prtdata ) );		pubInitCmspcdreg();		EXEC SQL FETCH gls_l_cur into R_GLSSUBTRANSLOG;		if( SQLCODE == SQLNOTFOUND )	break ;		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		if(SQLCODE)		{			sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  			TRCLOG4			strcpy( g_acRspCode, "CMS112" );			pubCrtRspInfo("glssubtranslog",SQLCODE );			ERRLOG			goto Exit ;		}		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		/* 转换现转标志 */		strcpy ( acCashTranFlag, glssubtranslog_cashtranflag );		switch ( acCashTranFlag[ BIT1_LEN ] )		{			case '1':                     				strcpy( acBuffer , "现金/现钞" );				break;                         			case '2':                 				strcpy( acBuffer , "转帐/现汇" );				break;                         			default:				acBuffer[ BIT1_LEN ] = acCashTranFlag[ BIT1_LEN ];				break;                                       		}		sprintf( g_acTrcMsg,"CashTranFlag[%s]", acBuffer);  		TRCLOG4		strcpy ( acCdFlag, glssubtranslog_cdflag );		switch ( acCdFlag[ BIT1_LEN ] )		{			case 'D':                     				sprintf( stPrtdata.acDTranAmt, "%.2lf", glssubtranslog_tranamt);				break;                         			case 'C':                 				sprintf( stPrtdata.acCTranAmt, "%.2lf", glssubtranslog_tranamt);				break;                         		}		sprintf( g_acTrcMsg,"DTranAmt[%s]CTranAmt[%s]", stPrtdata.acDTranAmt,stPrtdata.acCTranAmt);  		TRCLOG4		/* 冲销交易标志 */	    strcpy ( acCancelTransFlag, glssubtranslog_canceltransflag );        TransMemo( "0029" , acCancelTransFlag , acBuffer1);		/* 被冲销标志 */	    strcpy ( acCancelFlag, glssubtranslog_cancelflag );        TransMemo( "0030" , acCancelFlag , acBuffer2);		sprintf( g_acTrcMsg,"CancelTransFlag[%s]CancelFlag[%s]", acBuffer1,acBuffer2 );  		TRCLOG4		EXEC SQL SELECT issuebrc INTO :cmscardinfo_issuebrc				FROM cmscardinfo				WHERE  cardno = :glssubtranslog_cardno;		sprintf( g_acTrcMsg, "CustNo[%s]", cmscardinfo_issuebrc );		TRCLOG3			strcpy ( stPrtdata.acBrc, 			glssubtranslog_brc  );			strcpy ( stPrtdata.acCardNo, 		glssubtranslog_cardno );			strcpy ( stPrtdata.acTranDate, 		glssubtranslog_trandate  );			strncpy( stPrtdata.acTime,  		glssubtranslog_time+11, 8  );			sprintf( stPrtdata.acSerseqNo,	"%08ld", glssubtranslog_serseqno  );			strcpy ( stPrtdata.acTranCode, 		glssubtranslog_trancode  );			strcpy ( stPrtdata.acCashTranFlag, 	acBuffer );			strcpy ( stPrtdata.acIssueBrc,  	cmscardinfo_issuebrc  );			strcpy ( stPrtdata.acTeller,  		glssubtranslog_teller  );			strcpy ( stPrtdata.acCancelTransFlag,  	acBuffer1  );			strcpy ( stPrtdata.acCancelFlag,  		acBuffer2  );			/*			sprintf(  g_acTrcMsg, "acBrc[%s],acCardNo[%s],acTranDate[%s],acTime[%s],"					"acSerseqNo[%s],acTranCode[%s],CashTran[%s],acIssueBrc[%s],acTeller[%s]", 					stPrtdata.acBrc,stPrtdata.acCardNo,stPrtdata.acTranDate,stPrtdata.acTime,					stPrtdata.acSerseqNo,stPrtdata.acTranCode, stPrtdata.acCashTranFlag,  					stPrtdata.acIssueBrc,stPrtdata.acTeller );			TRCLOG4			*/					if( iLine	==	0 ) { PRTHEAD }					PRTBODY					if( iLine % OVERPAGE == 0 )				{ PRTFOOT }	}		if( iLine < OVERPAGE && iLine != 0 )	{ PRTFOOT }	if( iLineCount == 0 )	{		strcpy( g_acRspCode, "CMS113" );		sprintf( g_acRspMsg, "无满足条件的纪录!" );		ERRLOG		goto	Exit ;	}	Exit:	fclose( fmtfp );	fclose( fp );	SQLCLOSECUR(gls_l_cur,"gls_l_cur")	if( !strcmp( g_acRspCode, RSP_OK ) )	{		SetInqFormid(pstPubcom, "") ;		return SUCCESS; 	}	else 		return FAILED ;}

⌨️ 快捷键说明

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