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

📄 cms667.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms667.SQC **   函数名称 	   : cms216062 **   所属子系统   : CMS  **   当前文件版本 : 1.0.0.0 **   作        者 : xuliang  **   版本创建日期 : 2004/12/30 **   功能描述     : 账户移入/移出打印 **   修改记录     : **   修改人       修改日期     修改日期*********************************************************************/#include    "sysdefine.h"#include    <stdio.h>#include	"pubcom.h"#include	"funcapi.h"#include    "code.h"#include    "attrdef.h"#include    "cmscode.h"#include 	<fcntl.h>#include 	"ciscustomerinfo.h"#include    "cmscardinfo.h"#include	"cmsactiom.h"#include 	"errlog.h"#include    "cmsacctm.h"#include 	"pubinq.h"EXEC SQL INCLUDE sqlca;#define 	OVERPAGE	45       /* 满页行数 */ #define 	OVERLINE	5        /* 换行行数 */ #define		LIMIT		50struct	prtdata{	char	acCardNo[CARDNO_LEN +1];			/* 卡号   	        */	char	acAcctNo[BIT23_LEN + 1];	        /* 帐号 	        */ 	char	acSubAcct[BIT23_LEN + 1];	        /* 款项代码         */ 	char    acAcctSeqno[ACCTSEQNO_LEN + 1];     /* 卡内帐户序号     */	char    acBussKind[BIT40_LEN + 1];          /* 业务种类         */	char    acCustName[CUSTNAME_LEN + 1];       /* 姓名/单位名称    */	char    acTranDate[DATE_LEN + 1];           /* 交易日期         */	char    acTeller[TNAME_LEN + 1];            /* 交易柜员         */	char    acBrc[BRC_LEN + 1];                 /* 交易机构码       */	char    acOpflg[BIT5_LEN + 1];              /* 操作方式         */	char    dBal[18];                           /* 帐户余额 */};#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|%s|%d",								\			 pstPubcom->acBrc,stPrtdata.acCustName, 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",			\            stPrtdata.acCardNo,     stPrtdata.acAcctNo, 	   	\            stPrtdata.acSubAcct,	stPrtdata.acAcctSeqno,      \            stPrtdata.acBussKind,   stPrtdata.acTranDate,       \            stPrtdata.acTeller, 	stPrtdata.acBrc, 			\            stPrtdata.acOpflg,		stPrtdata.dBal );    		\	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 cms216062(pstPubcom)struct          pubcom          *pstPubcom;{	EXEC SQL BEGIN DECLARE SECTION;    char    acCardNo[CARDNO_LEN +1];        /* 卡号   */    char    acAcctNo[ACCT_LEN + 1];         /* 帐号   */	char    pcPasswd[BIT17_LEN + 1];         /* 卡密码 */	char	acWhrStr[ 512 ];	EXEC SQL END   DECLARE SECTION;	char	acBankname[ 41 ];    char    acBuffer[512];    char    acBuffer1[512];	char    acBussKind[BUSSKIND_LEN + 1];       /* 业务种类         */	char    acOpflg[BIT2_LEN + 1];              /* 操作方式         */    char    acSubAcct[ACCT_LEN + 1];            /* 款项代码         */	FILE	*fp,*fmtfp;							/* 文件指针	       */ 	int     iRtn;	char	acSelStr[ 301 ];	double  dBal=0.00;                          /* 余额         */	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  ciscustomerinfo  stCisCustomerInfo; /* 客户公用基本信息文件 */	struct  cmscardinfo      stCmsCardInfo;     /* 卡片信息表   */    struct  cmsacctm         stCmsAcctM;        /* 卡账户对照表 */	BASESUBACCTINFO          stDpsAccInfo;      /* 静态表       */	memset( acBuffer, 	   0x00, sizeof( acBuffer )   );	memset( acBuffer1, 	   0x00, sizeof( acBuffer1 )  );	memset( acSelStr, 	   0x00, sizeof( acSelStr )   );	memset( acWhrStr, 	   0x00, sizeof( acWhrStr )   );	memset( pcPasswd,      0x00, sizeof( pcPasswd ) );	memset( acCardNo,      0x00, sizeof( acCardNo ) );	memset( acAcctNo,      0x00, sizeof( acAcctNo ) );        memset( acFileName,    0x00, sizeof( acFileName ) );    memset( acTableName,   0x00, sizeof( acTableName ) );	memset( &stCisCustomerInfo, 0x00,   sizeof( struct ciscustomerinfo ) );	memset( &stDpsAccInfo,      0x00,   sizeof( BASESUBACCTINFO ) );	memset( acBankname,    0x00, sizeof(acBankname));	if ( pubGetBaseInfo("BANKNAME", acBankname ) )		FUNCERR_PRO	/* 取数据字典 */      getstring( "CardNo",    acCardNo ); 	getstring( "AcctNo", 	acAcctNo	);     	getstring( "Passwd1",   pcPasswd );		sprintf( g_acTrcMsg,"CardNo[%s]AcctNo[%s]",						 acCardNo,acAcctNo );  	TRCLOG4	fp = (FILE *)BeginFile( pstPubcom, NULL );	if ( fp == NULL )	{		ERRLOG		return FAILED ;	}	sprintf( acFmtFile, "%s/fmt/cms662.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;	}	strcpy( stCmsCardInfo.cardno, acCardNo );	sprintf( g_acTrcMsg,"CardNo[%s]", stCmsCardInfo.cardno );	TRCLOG4	/* 检查卡密码 */	if ( strlen(pcPasswd) && strlen( acCardNo ) )	{		iRtn = cmsApiChkCardPwd( &stCmsCardInfo, pcPasswd, pstPubcom->acChannelId );		if ( iRtn )		{			ERRLOG			goto Exit;		}		strcpy( g_acTrcMsg, "cmsApiChkCardPwd finish " );		TRCLOG1	}	strcpy( g_acTrcMsg, "cmsApiChkCardPwd finish " );	TRCLOG2	iLine	=	0 ;			iPage	=	1 ;	sprintf( acWhrStr, " select * from cmsactiom ");	strcat( acWhrStr, "  where 1=1");       if ( strlen ( acCardNo ) > 0 )    {        sprintf( acWhrStr+strlen(acWhrStr), " and cardno = '%s'", acCardNo );    } 	if ( strlen ( acAcctNo ) > 0 )	{		sprintf( acWhrStr+strlen(acWhrStr), " and acctno = '%s'", acAcctNo );	}	sprintf( acWhrStr+strlen(acWhrStr), " ORDER BY trandate, cardno DESC" );	strcpy( g_acTrcMsg, acWhrStr );	TRCLOG4                            strcpy( acTableName, "cms662" );    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 actiom_cur CURSOR FOR pre_1;	if(SQLCODE)	{		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		strcpy( g_acRspCode, "CMS110" );		pubCrtRspInfo("cmsactiom",SQLCODE );		ERRLOG		goto Exit ;	}	SQLOPENCUR(actiom_cur,"actiom_cur")	if(SQLCODE)	{		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		strcpy( g_acRspCode, "CMS111" );		pubCrtRspInfo("cmsactiom",SQLCODE );		ERRLOG		goto Exit ;	}	for( ; ; )	{        memset( acBuffer,      0x00, sizeof( acBuffer )   );	    memset( acBuffer1,     0x00, sizeof( acBuffer1 )  );		memset( &stPrtdata,	0x00,	sizeof( struct prtdata ) );		memset( &stDpsAccInfo,     0x00,   sizeof( BASESUBACCTINFO ) );		pubInitCmspcdreg();		EXEC SQL FETCH actiom_cur into R_CMSACTIOM;		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( "cmsactiom",SQLCODE );			ERRLOG	SQLCLOSECUR(actiom_cur,"actiom_cur")			goto Exit ;		}		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		/* 翻译业务种类 */		strcpy ( acBussKind, cmsactiom_busskind );		TransMemo( "0027" , acBussKind , acBuffer);		/* 翻译操作方式 */		strcpy ( acOpflg, cmsactiom_opflg );		TransMemo( "0028" , acOpflg , acBuffer1);		sprintf( g_acTrcMsg,"SQLCODE[%s][%s]", acBuffer, acBuffer1 );  		TRCLOG4		if ( strlen (pcPasswd) )		{			sprintf( g_acTrcMsg,"[%s][%s][%s]", cmsactiom_cardno, cmsactiom_subacct,cmsactiom_ccy );  			TRCLOG4            strcpy( stCmsAcctM.cardno, cmsactiom_cardno );            strcpy( stCmsAcctM.acctseqno, cmsactiom_acctseqno );            iRtn = cmsApiGetCmsAcctM( &stCmsAcctM );            if ( iRtn )            {                strcpy( g_acRspCode, RSP_OK );            }            else            {                if ( stCmsAcctM.status[ BIT1_LEN ] == NORMAL_STS )                {            		/* 按客户账号和款项代码获取账户信息 DPS API */					memset( &stDpsAccInfo, 0x00, sizeof( BASESUBACCTINFO ) );					iRtn = InqBaseSubAcct(  pstPubcom,											stCmsAcctM.acctno,											cmsactiom_subacct,											cmsactiom_ccy,											"1100000000000000", "0","0",											&stDpsAccInfo);					if (iRtn)					{						strcpy( g_acRspCode, RSP_OK );					}				}			}		}		strpack ( cmsactiom_brc );		strpack ( cmsactiom_opflg );		strpack ( cmsactiom_subacct );		strcpy ( stPrtdata.acCardNo, 	cmsactiom_cardno   );		strncpy( stPrtdata.acAcctNo, 	cmsactiom_acctno,  22   );		strncpy( stPrtdata.acSubAcct, 	cmsactiom_subacct, 22   );		strcpy ( stPrtdata.acAcctSeqno, cmsactiom_acctseqno );		strcpy ( stPrtdata.acBussKind,  acBuffer );		strcpy ( stPrtdata.acCustName,  cmsactiom_custname );		strcpy ( stPrtdata.acTranDate,  cmsactiom_trandate );		strcpy ( stPrtdata.acBrc,  		cmsactiom_brc );		strcpy ( stPrtdata.acTeller,  	cmsactiom_teller );		strcpy ( stPrtdata.acOpflg,  	acBuffer1 );		sprintf( stPrtdata.dBal,    "%.2lf",stDpsAccInfo.dBal  );		sprintf(  g_acTrcMsg, "acCardNo[%s],acSubAcct[%s],acAcctSeqno[%s],acBussKind[%s],acCustName[%s],acTranDate[%s],acBrc[%s],acTeller[%s],acOpflg[%s],[%s]",stPrtdata.acCardNo, stPrtdata.acSubAcct,stPrtdata.acAcctSeqno,stPrtdata.acBussKind,stPrtdata.acCustName,stPrtdata.acTranDate,stPrtdata.acBrc,stPrtdata.acTeller,stPrtdata.acOpflg,stPrtdata.dBal);		TRCLOG4				if( iLine	==	0 ) { PRTHEAD }				PRTBODY				if( iLine % OVERPAGE == 0 )				{ PRTFOOT }		sprintf( g_acTrcMsg, "%s|%s|%s|%s|%s|%s|%s|%s|%s",		\				stPrtdata.acCardNo,		stPrtdata.acSubAcct,	\			stPrtdata.acAcctSeqno,                                    \			stPrtdata.acBussKind,	stPrtdata.acCustName,		\			stPrtdata.acTranDate,							\			stPrtdata.acTeller,	stPrtdata.acBrc,	\			stPrtdata.acOpflg ); 	\		TRCLOG4	}	SQLCLOSECUR(actiom_cur,"actiom_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 + -