⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 high_stat.ec

📁 在SCO UNIX制定界面程序 可根据文件配制菜单,而不必修改源程序,非常方便
💻 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 + -