📄 wlfx.ec
字号:
/****************************************************
* 网络状态分析 wlfx()
*
* 最后修改: 周国祥 2001/08/26
* 最后修改: Wubin 2001/10/15 增加按不同的银行统计网络事件
****************************************************/
#include <curses.h>
#include <tool.h>
#include "mytools.h"
$include "db_struct.h";
$include sqlca;
/* not modify */
double calc_double(char *);
/* defined in cglfx.ec */
extern struct {
char bankid[12];
char hostid[3];
int count;
double amount;
} bankids[400];
int wlfx ()
{
WINDOW *my_win;
$char sqlstr[1024], sqlstr2[1024];
$int i,ret;
$int count, bank_num;
$short indi1,indi;
$char bankid[12], bankname[31], netdate[11], nettime[9], netstat[5],hostid[3];
char table[30], date1[15], date2[15],str[100],last_bankid[18],last_hostid[3];
char scr_dump_file[80];
bank_num = ret = i = count = 0;
sprintf( scr_dump_file, "/tmp/.screen_dump.%d", getpid() );
scr_dump ( scr_dump_file );
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,"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
set_prompt(PROMPT_OFF);
wrefresh(my_win);
getdatef(date1, "");
strcpy(date2, date1);
mvwprintw(my_win, 2, 14, "日 期: [ ] 到 [ ]");
if (in_item(my_win, "", 2, 25, date1, 8, NULL, NULL, 0, 0) != ENTER) {
delwin ( my_win );
scr_restore ( scr_dump_file );
unlink ( scr_dump_file );
return ( -1 );
}
if (in_item(my_win, "", 2, 39, date2, 8, NULL, NULL, 0, 0) != ENTER) {
delwin ( my_win );
scr_restore ( scr_dump_file );
unlink ( scr_dump_file );
return ( -1 );
}
bankid[0] = 0;
mvwprintw(my_win, 3, 14, "联行行号: [%-11.11s][%-2.2s] [%-30.30s]", bankid, hostid, "");
if (in_item(my_win, "", 3, 25, bankid, 11, NULL, NULL, 0, 0) != ENTER) {
delwin ( my_win );
scr_restore ( scr_dump_file );
unlink ( scr_dump_file );
return ( -1 );
}
strcpy(hostid,"00");
if (in_item(my_win, "", 3, 38, hostid, 2, NULL, NULL, 0, 0) != ENTER) {
delwin ( my_win );
scr_restore ( scr_dump_file );
unlink ( scr_dump_file );
return ( -1 );
}
DelSpace(bankid);
DelSpace(hostid);
i = get_bank_name(bankid, hostid, bankname);
if (bankid[0] && i) {
h_winprompt(my_win, 17, 4, "无此联行行号!", 1, 0);
delwin ( my_win );
scr_restore ( scr_dump_file );
unlink ( scr_dump_file );
return ( -1 );
}
mvwprintw(my_win, 3, 43, "%-30.30s", bankname);
wrefresh(my_win);
mvwprintw(my_win, 5, 14, "处理中, 请稍候 ...");
wrefresh(my_win);
/***************
* 统计网络事件的银行数 2001/10/15 Wubin add
***************/
/* if (bankid[0] == 0)
strcpy(bankid, "%"); */
memset(&bankids, 0, sizeof(bankids));
if (bankid[0] == 0 ) {
sprintf(sqlstr,
"select distinct bank_id, count(*) \
from net_err_msg \
where date >= \'%s\' and date <= \'%s\' \
group by bank_id", \
date1, date2);
$prepare net_err from $sqlstr;
$declare net_err_cur cursor for net_err;
$open net_err_cur;
if ( SQLCODE ) {
errcall ( ERROR, "open net_err_cur err[%d]",SQLCODE );
return ( -1 );
}
while ( bank_num < 400 ) {
$fetch net_err_cur into $bankid, $count:indi;
if ( SQLCODE == SQLNOTFOUND )
break;
if ( SQLCODE ) {
$close net_err_cur;
errcall ( ERROR, "fetch net_err_cur err[%d]",SQLCODE );
return ( -1 );
}
if ( indi != -1 && count ) {
DelSpace(bankid);
strcpy ( bankids[bank_num].bankid, bankid );
strcpy ( bankids[bank_num].hostid, "00" );
bankids[bank_num].count = count;
bank_num ++;
}
}
$close net_err_cur;
} else {
strcpy(bankids[0].bankid, bankid);
}
/**************/
bank_num = 0;
while (bankids[bank_num].bankid[0] != 0) {
strcpy(bankid, bankids[bank_num].bankid);
sprintf(sqlstr,
"select bank_id,host_id,date,time,net_stat \
from net_err_msg \
where bank_id like \'%s\' \
and date >= \'%s\' and date <= \'%s\' \
order by bank_id, date, time",
bankid, date1, date2 );
$prepare s_comm from $sqlstr;
$declare wlfx_cur cursor for s_comm;
$open wlfx_cur;
if ( SQLCODE ) {
errcall ( ERROR, "open wlfx_cur err[%d]",SQLCODE );
h_winprompt(my_win, 17, 4, "数据库操作错误!", 1,0);
delwin ( my_win );
scr_restore ( scr_dump_file );
unlink ( scr_dump_file );
return ( -1 );
}
sprintf(str,"%-8.8s %-30.30s %-10.10s %-8.8s %-8.8s",
"联行行号", " 联行名称", "发生日期", "发生时间", "网络事件");
CreateList(15, 76, 7, 2, str);
last_bankid[0] = 0;
last_hostid[0] = 0;
ret = 0;
for ( i=0;;i++) {
$fetch wlfx_cur into $bankid, $hostid, $netdate, $nettime, $netstat;
if ( SQLCODE == SQLNOTFOUND )
break;
if ( SQLCODE ) {
$close wlfx_cur;
errcall ( ERROR, "fetch wlfx_cur err[%d]",SQLCODE );
h_winprompt(my_win, 17, 4, "数据库操作错误!", 1,0);
FreeList();
delwin ( my_win );
scr_restore ( scr_dump_file );
unlink ( scr_dump_file );
return ( -1 );
}
get_bank_name( bankid, hostid, bankname );
if ( strcmp ( bankid, last_bankid ) && strcmp ( hostid, last_hostid ) )
sprintf(str," %-6.6s%2.2s %-30.30s %-8.8s %-6.6s %-8.8s",
bankid, hostid, bankname, netdate, nettime, netstat );
else
sprintf(str," %-6.6s%2.2s %-30.30s %-8.8s %-6.6s %-8.8s",
"","","", netdate, nettime, netstat );
strcpy ( last_bankid, bankid );
strcpy ( last_hostid, hostid );
AddListItem( str, 0 );
ret = 1;
}
$close wlfx_cur;
if (!ret) AddListItem("无网络事件", 1);
h_wpromptr(stdscr, LINES-1, "上移: Home PgUp ↑ 下移: End PgDn ↓ 返回或显示下一个行: ESC", 0, 0);
DispList(0);
FreeList();
bank_num++;
}
delwin ( my_win );
clear_wline ( stdscr, LINES-1 );
scr_restore ( scr_dump_file );
unlink ( scr_dump_file );
return ( 0 );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -