📄 cmsb39.sqc
字号:
PRTHEAD strcpy(g_acTrcMsg, "head sql222"); TRCLOG4 /*从序号 1 开始, 0 作为判断用*/ pastNPB=astNeedPrtBrc+1; iLineFlag=0; iDetailSeq=1; strcpy(g_acTrcMsg, "org sql"); TRCLOG4 /*组查询语句*/ /* 总部统计 */ memset(acTemp, 0x00, sizeof(acTemp)); strncpy(acTemp, pstPubcom->acBrc, 3); if(strcmp(pstPubcom->acBrc+ 3, "00") == 0) sprintf(acWhrStr, "SELECT * FROM cmstxdethis WHERE \ substr(brc,1,3)='%s' and (trandate between '%s' and '%s')\ and validf='2' and operkind \ in (select memocode from pubmemocode where classid='mid') \ order by trandate,serseqno",\ acTemp, acBeginDate, acEndDate); else /* 网点统计 */ sprintf(acWhrStr, "SELECT * FROM cmstxdethis WHERE \ brc='%s' and (trandate between '%s' and '%s') and \ validf='2' and operkind \ in (select memocode from pubmemocode where classid='mid') \ order by trandate,serseqno",\ pstPubcom->acBrc, acBeginDate, acEndDate); strcpy(g_acTrcMsg, "org sql 1111"); TRCLOG4 strcpy( g_acTrcMsg, acWhrStr ); TRCLOG4 EXEC SQL PREPARE pre_txdethis FROM :acWhrStr; EXEC SQL DECLARE cur_txdethis CURSOR FOR pre_txdethis; SQLOPENCUR(cur_txdethis,"cur_txdethis") if(SQLCODE) { sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE); TRCLOG4 strcpy( g_acRspCode, "CMS111" ); pubCrtRspInfo("cmstxdethis",SQLCODE ); ERRLOG goto Exit ; } for( ; ; ) { pubInitCmstxdethis(); EXEC SQL FETCH cur_txdethis INTO R_CMSTXDETHIS; if( SQLCODE == SQLNOTFOUND ) break ; if(SQLCODE) { sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE); TRCLOG4 strcpy( g_acRspCode, "CMS112" ); pubCrtRspInfo("cmstxdethis",SQLCODE ); ERRLOG goto Exit ; } iHaveFlag=0; /* 取业务名称 */ memset(acTranName, 0x00, sizeof(acTranName)); memset(&stPubMemocode, 0x00, sizeof(stPubMemocode)); strcpy(stPubMemocode.memocode, cmstxdethis_operkind); if( pubReadPubmemocode(&stPubMemocode) ) { if(SQLCODE==SQLNOTFOUND) strcpy( g_acRspCode,PUBRSP_OK); strcpy( g_acTrcMsg,""); } strcpy(acTranName, stPubMemocode.desc); strpack(acTranName); acTranName[30]=0x00; /*打印表体*/ /*判断如果是第一行,不打印分行线 */ if ( iLineFlag == 0 && iLine != 1 ) { PRTBODYLINE } else if ( iLineFlag=1 && iLine != 1 ) { PRTBODYLINE_B iLineFlag=0; } PRTBODY iDetailSeq++; /*加入机构小计*/ pastNPB->iBrcTranNum ++; pastNPB->dBrcTranAmt = pastNPB->dBrcTranAmt +cmstxdethis_tranamt; }/*fetch for*/ SQLCLOSECUR(cur_txdethis,"cur_txdethis") /*打印总的合计数*/ /* PRTTOTALSTA */ /*打印表尾*/ PRTFOOT Exit: sprintf( g_acTrcMsg,"中间业务支行取消交易明细打印, \ rspcode=[%s]",g_acRspCode); TRCLOG4 fclose( fmtfp ); fclose( fp ); SQLCLOSECUR(cur_txdethis,"cur_txdethis") if( !strcmp( g_acRspCode, RSP_OK ) ) { SetInqFormid(pstPubcom, "") ; return SUCCESS; } else return FAILED ;}PrtGetSuperBrcList(paacSuperBrc)char *paacSuperBrc;{EXEC SQL BEGIN DECLARE SECTION; char acBRCCODE[10]; /*机构号 */ char acHIGHBRC2[10]; /*上级交易机构码*/ short sID2;EXEC SQL END DECLARE SECTION; char aacSuperBrc[ NEEDPRTBRCMAX - 50 ][10]; int i=0; int iRet=0; memset( aacSuperBrc, 0x00, sizeof(aacSuperBrc) ); EXEC SQL DECLARE cur_getsbrc CURSOR FOR SELECT brccode FROM pubbranchinfo WHERE brclvl=4 or brclvl=5 or brclvl = 1 ORDER BY brccode; SQLOPENCUR(cur_getsbrc,"cur_getsbrc") if(SQLCODE) { sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE); TRCLOG4 strcpy( g_acRspCode, "CMS112" ); pubCrtRspInfo("pubbranchinfo",SQLCODE ); ERRLOG return -1; } i=0; for( ; ; ) { memset( acBRCCODE, 0x00, sizeof(acBRCCODE) ); memset( acHIGHBRC2, 0x00, sizeof(acHIGHBRC2) ); EXEC SQL FETCH cur_getsbrc INTO :acBRCCODE:sID2; if( SQLCODE == SQLNOTFOUND ) break ; if(SQLCODE) { sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE); TRCLOG4 strcpy( g_acRspCode, "CMS112" ); pubCrtRspInfo("pubbranchinfo",SQLCODE ); ERRLOG SQLCLOSECUR(cur_getsbrc,"cur_getsbrc") return -1; } /*判断是否是网点还是支行(因为pubbranchinfo的brclvl没有按需求配置),不区分网点和支行*/ EXEC SQL SELECT highbrc INTO :acHIGHBRC2:sID2 FROM pubbrclinkinfo WHERE brccode=:acBRCCODE AND linktype='01'; strpack(acHIGHBRC2); if( strncmp(acHIGHBRC2,"0003",4)!=0) continue; strcpy(aacSuperBrc[i],acBRCCODE); sprintf( g_acTrcMsg,"i=[%d],code=[%s]", i,aacSuperBrc[i]); TRCLOG4 i++; } SQLCLOSECUR(cur_getsbrc,"cur_getsbrc") strcpy(aacSuperBrc[i],"END"); memcpy(paacSuperBrc ,aacSuperBrc, sizeof(aacSuperBrc)); return i;}#include<stdlib.h>char *RptFormatAmt(double amt, char *pstr){ char acTmp[31]; char acRetTmp[51]; char *ptr,*retptr; double amtTmp; char flag; char flag1; int i=0,j=0; amtTmp=0; flag1='+'; if (amt < 0) { flag1='-'; } else flag1='+'; amtTmp=fabs(amt); if( amtTmp==0) strcpy(pstr,"0.00"); flag=','; memset(acTmp,0x00,sizeof(acTmp)); memset(acRetTmp,0x00,sizeof(acRetTmp)); sprintf(acTmp,"%030.2lf",amtTmp); for ( i=0,j=0;i<10; i++) { if (i== 9){ memcpy( &acRetTmp[j - 1], &acTmp[3*i],3 ); break; } memcpy( &acRetTmp[j], &acTmp[3*i],3 ); j=j+3; memset(&acRetTmp[j],flag,1); j++; } ptr=acRetTmp; while( *ptr!='\0') { if (*ptr=='-') { flag1='-'; } if (*ptr=='.'){ ptr--; if(flag1=='-'){ strcpy(pstr,"-"); strcat(pstr,ptr); } else{ strcpy(pstr,ptr); } return pstr; } if (*ptr!=','&& *ptr!='0' ){ if(flag1=='-'){ strcpy(pstr,"-"); strcat(pstr,ptr); } else{ strcpy(pstr,ptr); } return pstr; } ptr++; } return ""; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -