gen_dz_rpt.ec
来自「在SCO UNIX制定界面程序 可根据文件配制菜单,而不必修改源程序,非常方便」· EC 代码 · 共 625 行 · 第 1/2 页
EC
625 行
char tmp_file[128];
char filename[128], path[80];
char file[3][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_frgn_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_frgn_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_frgn_shdz;
#ifdef Wubin20020827_del
if (strcmp(s_logic_date, e_logic_date) != 0) {
goto end_frgn_shdz;
}
#endif
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_frgn_shdz;
DelSpace(mer_id);
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_frgn_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=FOREIGN_RPT;
ret = shdz_rpt( mer_id , mer_cnt );
if (ret < 0) {
h_winprompt(my_win, 17, 4, "生成国际卡报表出错!", 1, 0);
goto end_frgn_shdz;
}
daylog(DEBUG, "国际卡商户日对帐报表生成成功!");
strcpy(path, getenv("WORKDIR"));
memset(file, 0, sizeof(file));
for (i = 0; i < 3; i++) {
if (pflag[i] == 1) {
sprintf(file[i], "%s/prt/%s/frgn.%s", path, G_bankid, pfile[i]);
}
}
print_file(my_win, 8, 17, 3, file[0], file[1], file[2]);
end_frgn_shdz:
delwin(my_win);
scr_restore(filename);
unlink(filename);
return(0);
}
int gen_shbhz ()
{
$S_sys_param sys;
char debit_bhz[128], credit_bhz[128];
char filename[128];
WINDOW *my_win;
SETTLE_RESULT s_r;
FILE *fp;
char tmp_file[128];
int ret;
sprintf(filename, "/tmp/.gen_shbdz.%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);
print_enable=0;
print_enable|=MER_BHZ;
#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_shbhz;
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_shbhz;
#ifdef Wubin20020827_del
if (strcmp(s_logic_date, e_logic_date) != 0) {
goto end_shbhz;
}
#endif
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( NULL , 0 );
if (ret < 0) {
h_winprompt(my_win, 17, 4, "生成借记卡报表出错!", 1, 0);
goto end_shbhz;
}
shdz_rpt_flag=CREDIT_RPT;
ret = shdz_rpt( NULL , 0 );
if (ret < 0) {
h_winprompt(my_win, 17, 4, "生成信用卡报表出错!", 1, 0);
goto end_shbhz;
}
daylog(DEBUG, "人民币卡商户批汇总报表生成成功!");
sprintf(debit_bhz, "%s/prt/%s/debit.mer_bhz", getenv("WORKDIR"), G_bankid);
sprintf(credit_bhz, "%s/prt/%s/credit.mer_bhz", getenv("WORKDIR"), G_bankid);
print_file(my_win, 8, 17, 2, credit_bhz, debit_bhz);
end_shbhz:
delwin(my_win);
scr_restore(filename);
unlink(filename);
return(0);
}
int gen_bank_shdz()
{
$S_sys_param sys;
char tmp_file[128];
char cre_hz[80], cre_mx[80], cre_bd[80], cre_yd[80];
char deb_hz[80], deb_mx[80], deb_bd[80], deb_yd[80];
char filename[128], path[64];
char settle_date[9];
WINDOW *my_win;
int ret;
sprintf(filename, "/tmp/.gen_bank_shdz.%d", getpid());
scr_dump(filename);
$select * into $sys from sys_param ;
if (SQLCODE) {
errcall(ERROR, "Unable select sys_param![%d]", SQLCODE);
return(-1);
}
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(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_bank_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_bank_shdz;
#ifdef Wubin20020827_del
if (strcmp(s_logic_date, e_logic_date) != 0) {
goto end_bank_shdz;
}
#endif
daylog(DEBUG, "正在生成人民币卡商户入帐报表, 清算日期: %s-%s, 请稍候 ...", s_logic_date, e_logic_date);
mvwprintw(my_win, 5, 4, "正在生成人民币卡商户入帐报表, 请稍候 ...");
wrefresh(my_win);
ret = bank_shdz(sys, s_logic_date, e_logic_date);
if (ret < 0) {
h_winprompt(my_win, 17, 4, "生成报表出错!", 1, 0);
goto end_bank_shdz;
}
daylog(DEBUG, "人民币卡商户入帐报表生成成功!");
strcpy(path, getenv("WORKDIR"));
sprintf(cre_hz, "%s/prt/%s/credit.mer_dz_hz", path, G_bankid);
sprintf(deb_hz, "%s/prt/%s/debit.mer_dz_hz", path, G_bankid);
sprintf(cre_mx, "%s/prt/%s/credit.mer_dz_mx", path, G_bankid);
sprintf(deb_mx, "%s/prt/%s/debit.mer_dz_mx", path, G_bankid);
sprintf(cre_bd, "%s/prt/%s/credit.mer_bd_mx", path, G_bankid);
sprintf(deb_bd, "%s/prt/%s/debit.mer_bd_mx", path, G_bankid);
sprintf(cre_yd, "%s/prt/%s/credit.mer_yd_mx", path, G_bankid);
sprintf(deb_yd, "%s/prt/%s/debit.mer_yd_mx", path, G_bankid);
print_file(my_win, 7, 17, 8, cre_hz, cre_mx, cre_bd, cre_yd,
deb_hz, deb_mx, deb_bd, deb_yd);
end_bank_shdz:
delwin(my_win);
scr_restore(filename);
unlink(filename);
return(0);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?