gen_dz_rpt.ec
来自「在SCO UNIX制定界面程序 可根据文件配制菜单,而不必修改源程序,非常方便」· EC 代码 · 共 625 行 · 第 1/2 页
EC
625 行
/****************************************************
* 人民币卡网点日对帐报表gen_wddz()
* 人民币卡商户日对帐报表gen_shdz()
* 商户批次明细报表
* EDC 批次明细报表
* EDC 批次汇总报表
* 国际卡商户日对帐报表gen_frgn_shdz()
* 人民币卡商户批汇总报表gen_shbhz()
* 人民币卡商户入帐报表gen_bank_shdz()
*
* 最后修改: 周国祥 2001/08/24
****************************************************/
#include <stdio.h>
#include <curses.h>
#include "all.h"
#include "tool.h"
#include "credit_rpt.h"
$include "db_struct.h"
$include sqlca;
EXEC SQL WHENEVER SQLERROR CALL error_handler;
EXEC SQL WHENEVER SQLWARNING CALL warning_handler;
EXEC SQL WHENEVER NOT FOUND CALL notfound_handler;
int shdz_rpt_flag;
extern long print_enable;
extern char logic_date[] , s_logic_date[] , e_logic_date[];
int gen_wddz()
{
$S_sys_param sys;
char cmd[300];
WINDOW *my_win;
SETTLE_RESULT s_r;
FILE *fp;
char tmp_file[128];
int ret, his_flag=0;
char filename[128];
char settle_date[9];
char mer_id[20];
int mer_cnt;
char credit_mx[128] , debit_mx[128];
char credit_hz[128] , debit_hz[128];
sprintf(filename, "/tmp/.gen_wddz.%d", getpid());
scr_dump(filename);
$select * into $sys from sys_param ;
if ( SQLCODE ) {
daylog(ERROR, "Unable select sys_param %d!", SQLCODE);
return -1;
}
del_st_space("sys_param", &sys);
disp_below("人民币卡网点日对帐报表");
clear_wline(stdscr, LINES-1);
h_prompt(LINES-1, 1, " < ESC 退出 > ", 0, 0);
h_prompt(LINES-1, 1, "人民币卡网点日对帐报表", 0, 0);
my_win = newwin(19, 80, 3, 0);
mvwprintw(my_win, 0, 0, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
wrefresh(my_win);
set_prompt(PROMPT_OFF);
print_enable=0;
print_enable|=WD_MX|WD_HZ;
#ifndef wyz020429_mod
getdatef(e_logic_date,"");
#else
get_settle_date(settle_date);
strcpy(s_logic_date, settle_date);
#endif
mvwprintw(my_win, 2, 4, "请输入清算日期: [%s]", s_logic_date);
if (in_item(my_win, "", 2, 21, s_logic_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end_shdz;
strcpy ( e_logic_date , s_logic_date );
mvwprintw(my_win, 3, 4, "请确认清算日期: [%s]", e_logic_date);
if (in_item(my_win, "", 3, 21, e_logic_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end_shdz;
#ifdef Wubin20020827_del
if (strcmp(s_logic_date, e_logic_date) != 0) {
goto end_shdz;
}
#endif
if (strcmp(s_logic_date, settle_date) < 0)
his_flag = 1;
else
his_flag = 0;
memset(mer_id, 0, sizeof(mer_id));
mvwprintw(my_win, 4, 4, "请输入商户编号: [%15s]", " ");
if (in_item(my_win, "", 4, 21, mer_id, 15, NULL, NULL, 0, 0) !=
ENTER) goto end_shdz;
DelSpace(mer_id);
if ( mer_id[0] > '9' || mer_id[0] < '0' )
mer_cnt = 0;
else
mer_cnt = 1;
daylog(DEBUG, "正在生成人民币卡网点日对帐报表, 清算日期: %s-%s, 请稍候 ...", s_logic_date , e_logic_date );
mvwprintw(my_win, 6, 4, "正在生成人民币卡网点日对帐报表, 请稍候 ...");
wrefresh(my_win);
shdz_rpt_flag=DEBIT_RPT;
ret = shdz_rpt( mer_id , mer_cnt );
if (ret < 0) {
h_winprompt(my_win, 17, 4, "生成借记卡报表出错!", 1, 0);
goto end_shdz;
}
shdz_rpt_flag=CREDIT_RPT;
ret = shdz_rpt( mer_id , mer_cnt );
if (ret < 0) {
h_winprompt(my_win, 17, 4, "生成信用卡报表出错!", 1, 0);
goto end_shdz;
}
daylog(DEBUG, "人民币卡网点日对帐报表生成成功!");
sprintf(credit_mx, "%s/prt/%s/credit.wd_mx", getenv("WORKDIR"), G_bankid);
sprintf(credit_hz, "%s/prt/%s/credit.wd_hz", getenv("WORKDIR"), G_bankid);
sprintf(debit_mx, "%s/prt/%s/debit.wd_mx", getenv("WORKDIR"), G_bankid);
sprintf(debit_hz, "%s/prt/%s/debit.wd_hz", getenv("WORKDIR"), G_bankid);
print_file(my_win, 8, 17, 4,\
credit_hz , credit_mx , debit_hz , debit_mx );
end_shdz:
delwin(my_win);
scr_restore(filename);
unlink(filename);
return(0);
}
/*
* 生成商户对帐表
*/
int gen_shdz()
{
$S_sys_param sys;
char cmd[300];
WINDOW *my_win;
SETTLE_RESULT s_r;
FILE *fp;
char tmp_file[128];
char filename[128], path[80];
char file[6][80], mer_id[20];
int mer_cnt, ret, i;
static char pflag[3], first=1;
char *pfile[3] = {"mer_bc_mx", "edc_bc_mx", "edc_bhz"};
if ( first ) {
first = 0;
memset ( pflag , 1 , 3 );
}
sprintf(filename, "/tmp/.gen_shdz.%d", getpid());
scr_dump(filename);
$select * into $sys from sys_param ;
if ( SQLCODE ) {
errcall ( ERROR , "Unable select sys_param %d !" ,\
SQLCODE );
return -1;
}
del_st_space("sys_param", &sys);
disp_below("人民币卡商户日对帐报表");
clear_wline(stdscr, LINES-1);
h_prompt(LINES-1, 1, " < ESC 退出 > ", 0, 0);
h_prompt(LINES-1, 1, "人民币卡商户日对帐报表", 0, 0);
my_win = newwin(19, 80, 3, 0);
mvwprintw(my_win, 0, 0, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
wrefresh(my_win);
set_prompt(PROMPT_OFF);
#ifndef wyz_mod_020408
getdatef(s_logic_date, "");
#else
get_settle_date(s_logic_date);
#endif
mvwprintw(my_win, 2, 4, "请输入清算日期: [%s]", s_logic_date);
if (in_item(my_win, "", 2, 21, s_logic_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end_shdz;
strcpy ( e_logic_date , s_logic_date );
mvwprintw(my_win, 3, 4, "请确认清算日期: [%s]", e_logic_date);
if (in_item(my_win, "", 3, 21, e_logic_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end_shdz;
#ifdef Wubin20020827_del
if (strcmp(s_logic_date, e_logic_date) != 0) {
goto end_shdz;
}
#endif
strcpy ( mer_id , "" );
mvwprintw(my_win, 4, 4, "请输入商户编号: [%15s]", " ");
if (in_item(my_win, "", 4, 21, mer_id, 15, NULL, NULL, 0, 0) !=
ENTER) goto end_shdz;
if ( mer_id[0] > '9' || mer_id[0] < '0' )
mer_cnt = 0;
else
mer_cnt = 1;
print_enable=0;
print_enable|=MER_BC_MX|EDC_BC_MX|EDC_BHZ;
createsbox ( 10 , 30 , 8 , 1 , 1 , "请选择生成报表类型 " );
additem ( 0 , "商户批次明细报表" , pflag[0] );
additem ( 0 , "EDC 批次明细报表" , pflag[1] );
additem ( 0 , "EDC 批次汇总报表" , pflag[2] );
clear_wline(stdscr, LINES-1);
mvwprintw(stdscr, LINES-1, 23, "切换: Space 确认: Enter 取消: ESC");
refresh();
ret = dispsbox();
if ( ret != 0 ) {
freesbox();
goto end_shdz;
}
else {
print_enable = 0;
for ( i=0 ; i < 3 ; i++ ) {
getitemflag ( 0 , i , &(pflag[i]) );
if ( pflag[i] == 1 ) {
switch ( i ) {
case 0:
print_enable |= MER_BC_MX;
break;
case 1:
print_enable |= EDC_BC_MX;
break;
case 2:
print_enable |= EDC_BHZ;
break;
}
}
}
freesbox();
}
daylog(DEBUG, "正在生成人民币卡商户日对帐报表, 清算日期: %s-%s, 请稍候 ...", s_logic_date , e_logic_date );
mvwprintw(my_win, 6, 4, "正在生成人民币卡商户日对帐报表, 请稍候 ...");
wrefresh(my_win);
shdz_rpt_flag=DEBIT_RPT;
ret = shdz_rpt( mer_id , mer_cnt );
if (ret < 0) {
h_winprompt(my_win, 17, 4, "生成借记卡报表出错!", 1, 0);
goto end_shdz;
}
shdz_rpt_flag=CREDIT_RPT;
ret = shdz_rpt( mer_id , mer_cnt );
if (ret < 0) {
h_winprompt(my_win, 17, 4, "生成信用卡报表出错!", 1, 0);
goto end_shdz;
}
daylog(DEBUG, "人民币卡商户日对帐报表生成成功!");
strcpy(path, getenv("WORKDIR"));
memset(file, 0, sizeof(file));
for (i = 0; i < 3; i++) {
if (pflag[i] == 1) {
sprintf(file[2*i], "%s/prt/%s/credit.%s", path, G_bankid, pfile[i]);
sprintf(file[2*i+1], "%s/prt/%s/debit.%s", path, G_bankid, pfile[i]);
}
}
print_file(my_win, 8, 17, 6, file[0], file[2],
file[4], file[1], file[3], file[5]);
end_shdz:
delwin(my_win);
scr_restore(filename);
unlink(filename);
return(0);
}
/*
* 外卡商户对帐
*/
int gen_frgn_shdz()
{
$S_sys_param sys;
char cmd[300];
WINDOW *my_win;
SETTLE_RESULT s_r;
FILE *fp;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?