📄 cms664.sqc
字号:
/******************************************************************** ** 源码文件名称 : cms664.SQC ** 函数名称 : cms216064 ** 所属子系统 : CMS ** 当前文件版本 : 1.0.0.0 ** 作 者 : xuliang ** 版本创建日期 : 2005/01/04 ** 功能描述 : 打印销卡登记簿 ** 修改记录 : ** 修改人 修改日期 修改日期*********************************************************************/#include "sysdefine.h"#include <stdio.h>#include "pubcom.h"#include "funcapi.h"#include "code.h"#include "attrdef.h"#include "cmscode.h"#include "cmscardinfo.h"#include "errlog.h"EXEC SQL INCLUDE sqlca;#define OVERPAGE 45 /* 满页行数 */ #define OVERLINE 5 /* 换行行数 */ #define LIMIT 50struct prtdata{ char acCardNo[CARDNO_LEN +1]; /* 卡号 */ char acCardKind[BIT11_LEN + 1]; /* 卡片种类 */ char acCardFlg[BIT11_LEN + 1]; /* 卡标志 */ char acCardObject[BIT21_LEN + 1]; /* 发卡对象 */ char acCardAttr[BIT21_LEN + 1]; /* 卡片属性代码 */ char acMarkFlg[BIT31_LEN + 1]; /* 记名卡/非记名卡标志 */ char acClsBrc[BRC_LEN + 1]; /* 消卡机构码 */ char acClsTeller[TNAME_LEN + 1]; /* 消卡交易柜员 */ char acCloseDate[DATE_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", \ stPrtdata.acCardNo, stPrtdata.acCardKind, \ stPrtdata.acCardFlg, \ stPrtdata.acCardAttr, \ stPrtdata.acMarkFlg, \ stPrtdata.acClsBrc, stPrtdata.acClsTeller, \ stPrtdata.acCloseDate ); \ 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 cms216064(pstPubcom)struct pubcom *pstPubcom;{ EXEC SQL BEGIN DECLARE SECTION; char acBeginDate[DATE_LEN + 1 ]; /* 起始日期 */ char acEndDate[DATE_LEN + 1 ]; /* 终止日期 */ char acClsBrc[BRC_LEN + 1 ]; /* 销卡机构码 */ char acWhrStr[ 512 ]; EXEC SQL END DECLARE SECTION; char acBankname[ 41 ]; char acBuffer[512]; char acBuffer1[512]; char acBuffer2[512]; char acBuffer3[512]; char acCardFlg[BIT11_LEN + 1]; /* 卡标志 */ char acCardObject[BIT21_LEN + 1]; /* 发卡对象 */ char acCardAttr[BIT21_LEN + 1]; /* 卡片属性代码 */ char acMarkFlg[BIT31_LEN + 1]; /* 记名卡/非记名卡标志 */ 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 cmscardinfo stCmscardinfo; /* 卡片信息表 */ memset( acBuffer, 0x00, sizeof( acBuffer ) ); memset( acBuffer1, 0x00, sizeof( acBuffer1 ) ); memset( acSelStr, 0x00, sizeof( acSelStr ) ); memset( acWhrStr, 0x00, sizeof( acWhrStr ) ); memset( acClsBrc, 0x00, sizeof( acClsBrc ) ); memset( acFileName, 0x00, sizeof( acFileName ) ); memset( acTableName, 0x00, sizeof( acTableName ) ); memset( &stCmscardinfo, 0x00, sizeof( struct cmscardinfo ) ); memset( acBankname, 0x00, sizeof(acBankname)); if ( pubGetBaseInfo("BANKNAME", acBankname ) ) FUNCERR_PRO /* 取数据字典 */ getstring( "BeginDate1", acBeginDate ); getstring( "EndDate1", acEndDate ); strcpy( acClsBrc , 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/cms664.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 cmscardinfo "); strcat( acWhrStr, " where 1=1 and closedate<>''"); if ( strcmp ( acBeginDate, INITDATE ) ) { sprintf( acWhrStr+strlen(acWhrStr), " and closedate >= '%s'", acBeginDate ); } if ( strcmp ( acEndDate, INITDATE ) ) { sprintf( acWhrStr+strlen(acWhrStr), " and closedate <= '%s'", acEndDate); } if ( strlen ( acClsBrc ) > 0 ) { sprintf( acWhrStr+strlen(acWhrStr), " and clsbrc = '%s'" , acClsBrc); } sprintf( acWhrStr+strlen(acWhrStr), " ORDER BY closedate, cardno DESC" ); strcpy( g_acTrcMsg, acWhrStr ); TRCLOG4 strcpy( acTableName, "cms664" ); 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 cardinfo_cur CURSOR FOR pre_1; if(SQLCODE) { sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE); TRCLOG4 strcpy( g_acRspCode, "CMS110" ); pubCrtRspInfo("cmscardinfo",SQLCODE ); ERRLOG goto Exit ; } SQLOPENCUR(cardinfo_cur,"cardinfo_cur") if(SQLCODE) { sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE); TRCLOG4 strcpy( g_acRspCode, "CMS111" ); pubCrtRspInfo("cmscardinfo",SQLCODE ); ERRLOG goto Exit ; } for( ; ; ) { memset( acBuffer, 0x00, sizeof( acBuffer ) ); memset( acBuffer1, 0x00, sizeof( acBuffer1 ) ); memset( acBuffer2, 0x00, sizeof( acBuffer2 ) ); memset( acBuffer3, 0x00, sizeof( acBuffer3 ) ); memset( &stPrtdata, 0x00, sizeof( struct prtdata ) ); pubInitCmspcdreg(); EXEC SQL FETCH cardinfo_cur into R_CMSCARDINFO; 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( "cmscardinfo",SQLCODE ); ERRLOG SQLCLOSECUR(cardinfo_cur,"cardinfo_cur") goto Exit ; } sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE); TRCLOG4 /* 翻译卡标志 */ strcpy ( acCardFlg, cmscardinfo_cardflg ); TransMemo( "0002" , acCardFlg , acBuffer); /* 翻译发卡对象 */ strcpy ( acCardObject, cmscardinfo_cardobject ); TransMemo( "0003" , acCardObject , acBuffer1); /* 翻译卡片属性代码 */ strcpy ( acCardAttr, cmscardinfo_cardattr ); TransMemo( "0004" , acCardAttr , acBuffer2); /* 翻译记名卡/非记名卡标志 */ strcpy ( acMarkFlg, cmscardinfo_markflg ); TransMemo( "0005" , acMarkFlg , acBuffer3); sprintf( g_acTrcMsg,"SQLCODE[%s][%s][%s][%s]", acBuffer, acBuffer1,acBuffer2,acBuffer3 ); TRCLOG4 strpack ( cmscardinfo_teller ); strpack ( cmscardinfo_usedate ); strcpy ( stPrtdata.acCardNo, cmscardinfo_cardno ); strcpy ( stPrtdata.acCardKind, cmscardinfo_cardkind ); strcpy ( stPrtdata.acCardFlg, acBuffer ); strcpy ( stPrtdata.acCardObject, acBuffer1 ); strcpy ( stPrtdata.acCardAttr, acBuffer2 ); strcpy ( stPrtdata.acMarkFlg, acBuffer3 ); strcpy ( stPrtdata.acClsBrc, cmscardinfo_clsbrc ); strcpy ( stPrtdata.acClsTeller, cmscardinfo_clsteller ); strcpy ( stPrtdata.acCloseDate, cmscardinfo_closedate ); sprintf( g_acTrcMsg, "acCardNo[%s],acCardKind[%s],acCardFlg[%s],acCardObject[%s],acCardAttr[%s],acMarkFlg[%s],acClsBrc[%s],acClsTeller[%s],acCloseDate[%s]",stPrtdata.acCardNo, stPrtdata.acCardKind,stPrtdata.acCardFlg,stPrtdata.acCardObject,stPrtdata.acCardAttr,stPrtdata.acMarkFlg,stPrtdata.acClsBrc,stPrtdata.acClsTeller,stPrtdata.acCloseDate); 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.acCardKind, \ stPrtdata.acCardFlg, \ stPrtdata.acCardObject, stPrtdata.acCardAttr, \ stPrtdata.acMarkFlg, \ stPrtdata.acClsBrc, stPrtdata.acClsTeller, \ stPrtdata.acCloseDate ); \ TRCLOG4 } SQLCLOSECUR(cardinfo_cur,"cardinfo_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 + -