📄 high_stat.ec
字号:
/*************************************************
* 功能: 分时间段统计交易量
* 高峰分析
*
* 最后修改: 周国祥 2001/08/17
* 最后修改: Wubin 2001/09/04
*************************************************/
#include <curses.h>
#include "mytools.h"
#include "tool.h"
#include "analysis.h"
EXEC SQL 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 high_stat()
{
WINDOW *my_win;
$char start_date[11], end_date[11], time[9];
char filename[128], buf[80];
int LT = 23, i;
long data[24], sum;
char dd_data[24],dd_sum[20];
$long tmp_long;
strcpy(audit_title,"高峰分析");
sprintf(filename, "/tmp/.high_stat.%d", getpid());
scr_dump(filename);
disp_below("高峰分析");
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);
getdatef(start_date, "");
strcpy(end_date, start_date);
mvwprintw(my_win, 2, LT, "日期: [ ] 到 [ ]");
if (in_item(my_win, "", 2, LT + 7, start_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end;
if (in_item(my_win, "", 2, LT + 21, end_date, 8, NULL, NULL, 0, 0) !=
ENTER) goto end;
mvwprintw(my_win, 4, LT, "处理中, 请稍候 ...");
wrefresh(my_win);
sum = 0;
memset(data, 0, 24 * sizeof(long));
for (i = 0; i < 24; i++) {
sprintf(time, "%02d%%", i);
exec sql select count(*) into :tmp_long
from cur_tran_ls
where local_sys_date >= :start_date
and local_sys_date <= :end_date
and local_sys_time like :time;
data[i] += tmp_long;
sum += tmp_long;
exec sql select count(*) into :tmp_long
from his_tran_ls
where local_sys_date >= :start_date
and local_sys_date <= :end_date
and local_sys_time like :time;
data[i] += tmp_long;
sum += tmp_long;
}
CreateList(16, 40, 6, 20, "交易时间段 笔数 百分比");
for (i = 6; i < 24; i++) {
mystruct.type=DDINT;
mystruct.ddnum.intnum=data[i];
strcpy(dd_data,add_demical(mystruct));
if (data[i] == 0) {
sprintf(buf, "%02d:00-%02d:00 %6s ", i, i+1,
dd_data);
AddListItem(buf, 0);
} else {
sprintf(buf, "%02d:00-%02d:00 %6s %6.2f%%", i, i+1,
dd_data, (double)data[i]/sum*100);
AddListItem(buf, 1);
}
}
for (i = 0; i < 6; i++) {
mystruct.type=DDINT;
mystruct.ddnum.intnum=data[i];
strcpy(dd_data,add_demical(mystruct));
if (data[i] == 0) {
sprintf(buf, "%02d:00-%02d:00 %6s ", i, i+1,
dd_data);
AddListItem(buf, 0);
} else {
sprintf(buf, "%02d:00-%02d:00 %6s %6.2f%%", i, i+1,
dd_data, (double)data[i]/sum*100);
AddListItem(buf, 1);
}
}
AddListItem("", 0);
mystruct.type=DDINT;
mystruct.ddnum.intnum=sum;
strcpy(dd_sum,add_demical(mystruct));
sprintf(buf, "总计 %6s ", dd_sum);
AddListItem(buf, 0);
clear_wline(stdscr, LINES-1);
h_wpromptr(stdscr, LINES-1, "上移: Home PgUp ↑ 下移: End PgDn ↓打印:CTRL_P 返回: ESC", 0, 0);
DispList(0);
FreeList();
end:
delwin(my_win);
clear_wline ( stdscr, LINES-1 );
scr_restore(filename);
unlink(filename);
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -