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

📄 cms661.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms661.SQC **   函数名称 	   : cms216061 **   所属子系统   : CMS  **   当前文件版本 : 1.0.0.0 **   作        者 : xuliang  **   版本创建日期 : 2004/12/27 **   功能描述     : 卡片交易限额调整登记簿打印 **   修改记录     : **   修改人       修改日期     修改日期*********************************************************************/#include    "sysdefine.h"#include    <stdio.h>#include	"pubcom.h"#include	"funcapi.h"#include    "code.h"#include    "attrdef.h"#include    "cmscode.h"#include	"cmstlimtm.h"#include 	"errlog.h"EXEC SQL INCLUDE sqlca;#define 	OVERPAGE	45       /* 满页行数 */ #define 	OVERLINE	5        /* 换行行数 */ #define		LIMIT		50struct	prtdata{	char	acCardNo[CARDNO_LEN + 1];   		/* 卡号   	        */	char    acTranDate[DATE_LEN + 1];           /* 交易日期         */	char	acTranDevType[BIT17_LEN + 1];		/* 业务发生地类型   */	char    acCcy[BIT4_LEN + 1];		        /* 币种             */	char    acPeriod[BIT10_LEN + 1];            /* 周期长度         */	char    acCashLimitAmt[BIT11_LEN + 1];      /* 本周期取现限额   */	char    acDepoLimitAmt[BIT11_LEN + 1];      /* 本周期存款限额   */	char    acConLimitAmt[BIT11_LEN + 1];       /* 本周期消费限额   */	char    acTranOutLimitAmt[BIT11_LEN + 1];   /* 本周期转出限额   */	char    acCashLimitTime[BIT3_LEN + 1];     /* 本周期取现次数   */	char    acDepoLimitTime[BIT3_LEN + 1];     /* 本周期存款次数   */	char    acConLimitTime[BIT3_LEN + 1];      /* 本周期消费次数   */	char    acTranOutLimitTime[BIT3_LEN + 1];  /* 本周期转出次数   */	char    aclmtbrc[BRC_LEN + 1];              /* 调整机构码       */	char    aclmtteller[TNAME_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|%s|%s", 			\            stPrtdata.acCardNo,    \			stPrtdata.acTranDevType,                        \            stPrtdata.acCcy,                                    \            stPrtdata.acPeriod,  stPrtdata.acCashLimitAmt,      \            stPrtdata.acDepoLimitAmt,                            \            stPrtdata.acConLimitAmt, stPrtdata.acTranOutLimitAmt, \            stPrtdata.acCashLimitTime, stPrtdata.acDepoLimitTime, \            stPrtdata.acConLimitTime, stPrtdata.acTranOutLimitTime, \            stPrtdata.aclmtbrc, stPrtdata.aclmtteller );    \	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 cms216061(pstPubcom)struct          pubcom          *pstPubcom;{	EXEC SQL BEGIN DECLARE SECTION;	char    acBeginDate[DATE_LEN + 1 ];      	/* 起始日期        */ 	char    acEndDate[DATE_LEN + 1 ];      		/* 终止日期        */ 	char    acIssueBrc[BRC_LEN + 1 ];      		/* 交易机构        */ 	char	acWhrStr[ 512 ];	EXEC SQL END   DECLARE SECTION;	char    acTranDevType[CHANNELID_LEN + 1];   /* 业务发生地类型  */	char    acCcy[CCY_LEN + 1];                 /* 币种            */	char	acBankname[ 41 ];    char    acBuffer[100];    char    acBuffer1[100];	FILE	*fp,*fmtfp;							/* 文件指针	       */ 	char	acSelStr[ 301 ];	int		iLineCount	=	0 ;	int		i, iPage, iLine ;    char    acTableName[PRDCODE_LEN + 1];        /* 表名称 */    char    acFileName[FILENAME_LEN + 1];        /* 文件名称 */	char	acFmtFile[ 101 ];	char	acPrtData[ 4096 ];	struct	prtdata	stPrtdata;	struct cmstlimtm      stCmstlimtm;       /* 卡片交易限额调整登记簿 */	memset( acBuffer, 	   0x00, sizeof( acBuffer )   );	memset( acBuffer1, 	   0x00, sizeof( acBuffer1 )  );	memset( acBeginDate,   0x00, sizeof( acBeginDate ));	memset( acEndDate,     0x00, sizeof( acEndDate )  );  	memset( acIssueBrc,    0x00, sizeof( acIssueBrc )  );  	memset( acSelStr, 	   0x00, sizeof( acSelStr )   );	memset( acWhrStr, 	   0x00, sizeof( acWhrStr )   );        memset( acFileName,    0x00, sizeof( acFileName ) );    memset( acTableName,   0x00, sizeof( acTableName ) );	memset( &stCmstlimtm,  0x00, sizeof( struct cmstlimtm ) );	memset( acBankname,    0x00, sizeof(acBankname));	if ( pubGetBaseInfo("BANKNAME", acBankname ) )		FUNCERR_PRO	/* 取数据字典 */  	getstring( "BeginDate1", 	acBeginDate );	getstring( "EndDate1", 		acEndDate	);     	strcpy(  acIssueBrc , pstPubcom->acBrc	);     		sprintf( g_acTrcMsg,"BeginDate[%s]EndDate[%s]",						 acBeginDate,acEndDate );  	TRCLOG4	fp = (FILE *)BeginFile( pstPubcom, NULL );	if ( fp == NULL )	{		ERRLOG		return FAILED ;	}	sprintf( acFmtFile, "%s/fmt/cms661.fmt", getenv("HOME") );	sprintf( g_acFmtFile, acFmtFile );            	if( ( fmtfp=fopen( acFmtFile,"r" ) ) == NULL )	{                                             		strcpy( g_acTrcMsg, acFmtFile );          		TRCLOG4                                   		strcpy( g_acRspCode, "CMS1B0" );		sprintf( g_acRspMsg, "打开格式文件[%s]错", acFmtFile );		ERRLOG		goto Exit;	}	iLine	=	0 ;			iPage	=	1 ;	sprintf( acWhrStr, " select * from cmstlimtm ");	strcat( acWhrStr, "  where 1=1");	if ( strcmp ( acBeginDate, INITDATE ) )	{		sprintf( acWhrStr+strlen(acWhrStr), " and trandate >= '%s'",  acBeginDate );	}	if ( strcmp ( acEndDate, INITDATE ) )	{		sprintf( acWhrStr+strlen(acWhrStr), " and trandate <= '%s'",  acEndDate );	}    if ( strlen ( acIssueBrc ) > 0 )	{		sprintf( acWhrStr+strlen(acWhrStr), " and issuebrc = '%s'" ,  acIssueBrc );	}	sprintf( acWhrStr+strlen(acWhrStr), " ORDER BY trandate, cardno DESC" );	strcpy( g_acTrcMsg, acWhrStr );	TRCLOG4                            strcpy( acTableName, "cms661" );    sprintf( acFileName, "%s%s%s", acTableName, pstPubcom->acBrc,pstPubcom->acTeller);	EXEC SQL    PREPARE pre_1 FROM :acWhrStr;	if ( SQLCODE )                      	{                                   		strcpy( g_acRspCode, "CMS1A7" );		pubCrtRspInfo( SQLCODE );       		ERRLOG                          		goto Exit;	}                                   	EXEC SQL    DECLARE tlimtm_cur CURSOR FOR pre_1;	if(SQLCODE)	{		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		strcpy( g_acRspCode, "CMS110" );		pubCrtRspInfo("cmstlimtm",SQLCODE );		ERRLOG		goto Exit ;	}	SQLOPENCUR(tlimtm_cur,"tlimtm_cur")	if(SQLCODE)	{		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		strcpy( g_acRspCode, "CMS111" );		pubCrtRspInfo("cmstlimtm",SQLCODE );		ERRLOG		goto Exit ;	}	for( ; ; )	{		memset( acBuffer, 	   0x00, sizeof( acBuffer )   );		memset( acBuffer1, 	   0x00, sizeof( acBuffer1 )  );		memset( &stPrtdata,	0x00,	sizeof( struct prtdata ) );		pubInitCmspcdreg();		EXEC SQL FETCH tlimtm_cur into R_CMSTLIMTM;		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( "cmstlimtm",SQLCODE );			ERRLOG	SQLCLOSECUR(tlimtm_cur,"tlimtm_cur")			goto Exit ;		}		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		/* 转换业务发生地类型 */		strcpy ( acTranDevType, cmstlimtm_trandevtype );		TransMemo( "0012" , acTranDevType , acBuffer);		/* 转换币种 */		strcpy ( acCcy, cmstlimtm_ccy );		TransMemo( "0025" , acCcy , acBuffer1);        sprintf( g_acTrcMsg,"SQLCODE[%s][%s]", acBuffer, acBuffer1 );		TRCLOG4		strpack ( cmstlimtm_lmtbrc );		strpack ( cmstlimtm_lmtteller );		strcpy ( stPrtdata.acCardNo, 	cmstlimtm_cardno   );		strcpy ( stPrtdata.acTranDate,  cmstlimtm_trandate );		strcpy ( stPrtdata.acTranDevType, 	acBuffer   );		strcpy ( stPrtdata.acCcy, 	cmstlimtm_ccy   );		sprintf( stPrtdata.acPeriod , "%d", cmstlimtm_period );		sprintf( stPrtdata.acCashLimitAmt , "%.2lf",  cmstlimtm_cashlimitamt) ;		sprintf( stPrtdata.acDepoLimitAmt , "%.2lf",  cmstlimtm_depolimitamt) ;		sprintf( stPrtdata.acConLimitAmt ,  "%.2lf", cmstlimtm_conlimitamt) ;		sprintf( stPrtdata.acTranOutLimitAmt , "%.2lf",  cmstlimtm_tranoutlimitamt) ;		sprintf( stPrtdata.acCashLimitTime , "%d", cmstlimtm_cashlimittime) ;		sprintf( stPrtdata.acDepoLimitTime , "%d", cmstlimtm_depolimittime) ;		sprintf( stPrtdata.acConLimitTime , "%d",  cmstlimtm_conlimittime) ;		sprintf( stPrtdata.acTranOutLimitTime ,"%d", cmstlimtm_tranoutlimittime) ;		strcpy ( stPrtdata.aclmtbrc,  cmstlimtm_lmtbrc );		strcpy ( stPrtdata.aclmtteller,  cmstlimtm_lmtteller );		sprintf(  g_acTrcMsg, "acCardNo[%s],acTranDate[%s],acTranDevType[%s],acCcy[%s],acPeriod[%s],acCashLimitAmt[%s]",stPrtdata.acCardNo,stPrtdata.acTranDate, stPrtdata.acTranDevType,stPrtdata.acCcy,stPrtdata.acPeriod,stPrtdata.acCashLimitAmt);		TRCLOG4	    sprintf(  g_acTrcMsg, "acDepoLimitAmt[%s],acConLimitAmt[%s],acTranOutLimitAmt[%s],acCashLimitTime[%s]",stPrtdata.acDepoLimitAmt,stPrtdata.acConLimitAmt,stPrtdata.acTranOutLimitAmt,stPrtdata.acCashLimitTime);		TRCLOG4	    sprintf(  g_acTrcMsg,"acDepoLimitTime[%s],acConLimitTime[%s],acTranOutLimitTime[%s]", stPrtdata.acDepoLimitTime,stPrtdata.acConLimitTime, stPrtdata.acTranOutLimitTime);		TRCLOG4	    sprintf(  g_acTrcMsg, "aclmtbrc[%s],aclmtteller[%s]", stPrtdata.aclmtbrc,stPrtdata.aclmtteller);		TRCLOG4				if( iLine	==	0 ) { PRTHEAD }				PRTBODY				if( iLine % OVERPAGE == 0 )				{ PRTFOOT }		sprintf( g_acTrcMsg, "%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s",		\				stPrtdata.acCardNo,	      stPrtdata.acTranDate,   \			    stPrtdata.acTranDevType,	                       \			stPrtdata.acCcy,                                    \			stPrtdata.acPeriod,	stPrtdata.acCashLimitAmt,		\			stPrtdata.acDepoLimitAmt,							\			stPrtdata.acConLimitAmt,	stPrtdata.acTranOutLimitAmt,	\			stPrtdata.acCashLimitTime, stPrtdata.acDepoLimitTime,	\			stPrtdata.acConLimitTime, stPrtdata.acTranOutLimitTime, \			stPrtdata.aclmtbrc, stPrtdata.aclmtteller ); 	\		TRCLOG4	}	SQLCLOSECUR(tlimtm_cur,"tlimtm_cur")	if( iLine < OVERPAGE && iLine != 0 )	{ PRTFOOT }	if( iLineCount == 0 )	{		strcpy( g_acRspCode, "CMS113" );		sprintf( g_acRspMsg, "无满足条件的纪录!" );		ERRLOG		goto	Exit ;	}	Exit:	fclose( fmtfp );	fclose( fp );	if( !strcmp( g_acRspCode, RSP_OK ) )	{		SetInqFormid(pstPubcom, "") ;  		return SUCCESS;	}	else 		return FAILED ;}

⌨️ 快捷键说明

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