gen_rpt.ec
来自「在SCO UNIX制定界面程序 可根据文件配制菜单,而不必修改源程序,非常方便」· EC 代码 · 共 1,244 行 · 第 1/3 页
EC
1,244 行
/****************************************************
* 中心对帐错帐报表 gen_cr() -- cen_rpt()
* EDC 对帐错帐报表 gen_er() -- edc_rpt()
* 全辖交易平衡报表 gen_br() -- bal_rpt()
* 回扣利益明细报表 gen_mr() -- mx_rpt()
* 回扣利益分配报表 gen_hr() -- hz_rpt()
* 全辖交易对帐报表 gen_jydz() -- jydz_rpt(),jyds_rpt()
* 全辖清算对帐报表 gen_qsdz() -- qsdz_rpt(),qsds_rpt()
* 信用卡银行报表 gen_c_qsdz() -- c_qsdz_rpt()
* ******商户网点对帐报表 gen_shdz() -- shdz_rpt()
* ******人民币卡日对帐单 gen_c_shdz() -- c_shdz_rpt()
* ******国际卡日对帐单 gen_w_shdz() -- wk_rpt()
* 全辖交易明细清单 gen_debit_jymx()
*
* 最后修改: 周国祥 2001/08/24
****************************************************/
/*================== WuBin 2001-8-28 23:49 ======Start==============
银联长城卡清算报表 gen_yl_gw() -- yl_gw_rpt()
银联长城卡月清算报表 gen_yl_gw_month() -- yl_gw_month_rpt()
中行商户交易本外卡月报表 gen_merch_foreign_month() -- merch_foreign_month_rpt()
中行外卡EDC交易月报表 gen_edc_foreign_month() -- edc_foreign_month_rpt()
===========================2001-8-28 23:49=======End==============*/
#include <stdio.h>
#include <curses.h>
#include "all.h"
#include "tool.h"
$include "db_struct.h"
$include sqlca;
$include sqlhdr;
EXEC SQL WHENEVER SQLERROR CALL error_handler;
EXEC SQL WHENEVER SQLWARNING CALL warning_handler;
EXEC SQL WHENEVER NOT FOUND CALL notfound_handler;
/********************************************************************
功能:产生中心对帐错帐报表
********************************************************************/
int gen_cr()
{
WINDOW *my_win;
char rpt[128], filename[128];
char logic_date[9];
char e_logic_date[9];
char settle_date[9];
int ret;
$S_sys_param sys;
$select * into :sys from sys_param;
if (SQLCODE) {
daylog(ERROR, "Select sys_param error![%d]", SQLCODE);
return(-1);
}
del_st_space("sys_param", &sys);
if (!strcmp(sys.bank_id, sys.adm_bank_id))
return(0);
sprintf(rpt, "%s/prt/%s/debit.cen_err", getenv("WORKDIR"), G_bankid);
sprintf(filename, "/tmp/.gen_cr.%d", getpid());
scr_dump(filename);
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 wyz020429_mod
getdatef(logic_date,"");
#else
get_settle_date(settle_date);
strcpy(logic_date, settle_date);
#endif
mvwprintw(my_win, 2, 4, "请输入对帐日期: [%s]", logic_date);
if (in_item(my_win, "", 2, 21, logic_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end_cr;
strcpy(e_logic_date, 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_cr;
#ifdef Wubin20020827_del
if (strcmp(logic_date, e_logic_date) != 0)
goto end_cr;
#endif
daylog(DEBUG, "正在生成中心对帐错帐报表, 对帐日期: %s, 请稍候 ...",
logic_date);
mvwprintw(my_win, 4, 4, "正在生成中心对帐错帐报表, 请稍候 ...");
wrefresh(my_win);
/* cen_rpt() in cen_rpt.ec */
ret = cen_rpt(rpt, sys, logic_date);
switch (ret) {
case -1:
h_winprompt(my_win, 17, 4, "生成中心对帐错帐报表出错!", 1, 0);
goto end_cr;
case -2:
h_winprompt(my_win, 17, 4, "数据库操作错误!", 1, 0);
goto end_cr;
}
daylog(DEBUG, "中心对帐错帐报表生成成功!");
print_file(my_win, 6, 17, 1, rpt);
end_cr:
delwin(my_win);
scr_restore(filename);
unlink(filename);
return(0);
}
/********************************************************************
功能:EDC 对帐错帐报表
********************************************************************/
int gen_er()
{
WINDOW *my_win;
char rpt[128], filename[128], logic_date[11];
char e_logic_date[11];
char settle_date[11];
$S_sys_param sys;
int ret;
$select * into :sys from sys_param;
if (SQLCODE) {
daylog(ERROR, "Unable select sys_param table!");
return(-1);
}
del_st_space("sys_param", &sys);
sprintf(rpt, "%s/prt/%s/debit.edc_err", getenv("WORKDIR"), G_bankid);
sprintf(filename, "/tmp/.gen_er.%d", getpid());
scr_dump(filename);
disp_below("EDC 对帐错帐报表");
clear_wline(stdscr, LINES-1);
h_prompt(LINES-1, 1, " < ESC 退出 > ", 0, 0);
h_prompt(LINES-1, 1, "EDC 对帐错帐报表", 0, 0);
my_win = newwin(19, 80, 3, 0);
mvwprintw(my_win, 0, 0, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
wrefresh(my_win);
set_prompt(PROMPT_OFF);
#ifndef wyz020429_mod
getdatef(logic_date,"");
#else
get_settle_date(settle_date);
strcpy(logic_date, settle_date);
#endif
mvwprintw(my_win, 2, 4, "请输入对帐日期: [%s]", logic_date);
if (in_item(my_win, "", 2, 21, logic_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end_er;
strcpy(e_logic_date, 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_er;
#ifdef Wubin20020827_del
if (strcmp(logic_date, e_logic_date) != 0)
goto end_er;
#endif
daylog(DEBUG, "正在生成 EDC 对帐错帐报表, 对帐日期: %s, 请稍候 ...",
logic_date);
mvwprintw(my_win, 4, 4, "正在生成 EDC 对帐错帐报表, 请稍候 ...");
daylog(DEBUG, "正在生成EDC 对帐错帐报表...");
wrefresh(my_win);
/* edc_rpt() in edc_rpt.ec */
ret = edc_rpt(rpt, sys, logic_date);
switch (ret) {
case -1:
h_winprompt(my_win, 17, 4, "生成EDC 对帐错帐报表出错!", 1, 0);
goto end_er;
case -2:
h_winprompt(my_win, 17, 4, "数据库操作错误!", 1, 0);
goto end_er;
}
daylog(DEBUG, "EDC 对帐错帐报表生成成功!");
print_file(my_win, 6, 17, 1, rpt);
end_er:
delwin(my_win);
scr_restore(filename);
unlink(filename);
return(0);
}
/********************************************************************
功能: 全辖交易平衡报表
********************************************************************/
int gen_br()
{
WINDOW *my_win;
char rpt[128], filename[128], logic_date[11];
char e_logic_date[11];
char settle_date[11];
$S_sys_param sys;
int ret;
$select * into :sys from sys_param;
if (SQLCODE) {
daylog(ERROR, "Unable select sys_param table!");
return(-1);
}
del_st_space("sys_param", &sys);
sprintf(filename, "select count(*) from bank_info where bank_id != adm_bank_id and adm_bank_id = \'%s\'", sys.bank_id);
ret = query_count(filename);
if (!ret) return(0);
sprintf(rpt, "%s/prt/%s/balance.rpt", getenv("WORKDIR"), G_bankid);
sprintf(filename, "/tmp/.gen_br.%d", getpid());
scr_dump(filename);
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 wyz020429_mod
getdatef(logic_date,"");
#else
get_settle_date(settle_date);
strcpy(logic_date, settle_date);
#endif
mvwprintw(my_win, 2, 4, "请输入清算日期: [%s]", logic_date);
if (in_item(my_win, "", 2, 21, logic_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end_br;
strcpy(e_logic_date, 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_br;
#ifdef Wubin20020827_del
if (strcmp(logic_date, e_logic_date) != 0)
goto end_br;
#endif
daylog(DEBUG, "正在生成全辖交易平衡报表, 清算日期: %s, 请稍候 ...",
logic_date);
mvwprintw(my_win, 4, 4, "正在生成全辖交易平衡报表, 请稍候 ...");
wrefresh(my_win);
/* bal_rpt() in bal_rpt.ec */
ret = bal_rpt(rpt, logic_date);
switch (ret) {
case -1:
h_winprompt(my_win, 17, 4, "生成报表出错!", 1, 0);
goto end_br;
case -2:
h_winprompt(my_win, 17, 4, "数据库操作错误!", 1, 0);
goto end_br;
}
daylog(DEBUG, "全辖交易平衡报表生成成功!");
print_file(my_win, 6, 17, 1, rpt);
end_br:
delwin(my_win);
scr_restore(filename);
unlink(filename);
return(0);
}
/********************************************************************
功能:回扣利益明细报表
********************************************************************/
int gen_mr()
{
WINDOW *my_win;
char rpt[128], filename[128], logic_date[11];
char e_logic_date[11];
char settle_date[11];
$S_sys_param sys;
int ret;
$select * into :sys from sys_param;
if (SQLCODE) {
daylog(ERROR, "Unable select sys_param table!");
return(-1);
}
del_st_space("sys_param", &sys);
sprintf(filename, "select count(*) from bank_info where bank_id != adm_bank_id and adm_bank_id = \'%s\'", sys.bank_id);
ret = query_count(filename);
if (!ret) return(0);
sprintf(rpt, "%s/prt/rebate_mx.rpt", getenv("WORKDIR"));
sprintf(filename, "/tmp/.gen_mr.%d", getpid());
scr_dump(filename);
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 wyz020429_mod
getdatef(logic_date,"");
#else
get_settle_date(settle_date);
strcpy(logic_date, settle_date);
#endif
mvwprintw(my_win, 2, 4, "请输入清算日期: [%s]", logic_date);
if (in_item(my_win, "", 2, 21, logic_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end_mr;
strcpy(e_logic_date, 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_mr;
#ifdef Wubin20020827_del
if (strcmp(logic_date, e_logic_date) != 0)
goto end_mr;
#endif
daylog(DEBUG, "正在生成回扣利益明细报表, 清算日期: %s, 请稍候 ...",
logic_date);
mvwprintw(my_win, 4, 4, "正在生成回扣利益明细报表, 请稍候 ...");
wrefresh(my_win);
/* mx_rpt() in mx_rpt.ec */
ret = mx_rpt(rpt, logic_date, sys.bank_id, sys.host_id);
switch (ret) {
case -1:
h_winprompt(my_win, 17, 4, "生成报表出错!", 1, 0);
goto end_mr;
case -2:
h_winprompt(my_win, 17, 4, "数据库操作错误!", 1, 0);
goto end_mr;
}
daylog(DEBUG, "回扣利益明细报表生成成功!");
print_file(my_win, 6, 17, 1, rpt);
end_mr:
delwin(my_win);
scr_restore(filename);
unlink(filename);
return(0);
}
/********************************************************************
功能: 回扣利益分配报表
********************************************************************/
int gen_hr()
{
WINDOW *my_win;
char rpt[128], filename[128], logic_date[11];
char e_logic_date[11];
char settle_date[11];
$S_sys_param sys;
int ret;
$select * into :sys from sys_param;
if (SQLCODE) {
daylog(ERROR, "Unable select sys_param table!");
return(-1);
}
del_st_space("sys_param", &sys);
sprintf(filename, "select count(*) from bank_info where bank_id != adm_bank_id and adm_bank_id = \'%s\'", sys.bank_id);
ret = query_count(filename);
if (!ret) return(0);
sprintf(rpt, "%s/prt/%s/rebate_hz.rpt", getenv("WORKDIR"), G_bankid);
sprintf(filename, "/tmp/.gen_hr.%d", getpid());
scr_dump(filename);
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 wyz020429_mod
getdatef(logic_date,"");
#else
get_settle_date(settle_date);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?