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

📄 hmd_rpt.ec

📁 在SCO UNIX制定界面程序 可根据文件配制菜单,而不必修改源程序,非常方便
💻 EC
字号:
/****************************************************
 *	止付名单统计表 hmd_rpt()
 *
 * 最后修改:	周国祥 2001/08/23
 ****************************************************/
#include <stdio.h>
#include <math.h>
#include "all.h"

$include "db_struct.h"
$include sqlca;

EXEC SQL WHENEVER SQLERROR CALL error_handler;
EXEC SQL WHENEVER SQLWARNING CALL warning_handler;
EXEC SQL WHENEVER NOT FOUND CALL notfound_handler;

char *get_reason(char *state)
{
	switch (atoi(state)) {
	    case 200:
		return("不承兑");
	    case 201:
		return("过期卡");
	    case 202:
		return("欺诈嫌疑");
	    case 203:
		return("与受卡方联系");
	    case 204:
		return("受限制的卡");
	    case 205:
		return("扣卡抓人");
	    case 206:
		return("PIN 输入次数超限");
	    case 207:
		return("特殊条件");
	    case 208:
		return("遗失的卡");
	    case 209:
		return("被窃的卡");
	    case 210:
		return("伪卡嫌疑");
	    default: 
		return("");
	}
}

int hmd_rpt(filename, input_date)
char *filename;
$parameter char *input_date;
{
	FILE *fp;
	$S_wb_list hmd;
	long num;
#ifndef zgx010524_added
	$char	indate[9];

	date2str(input_date, indate, "");
#endif

	if (!(fp = fopen(filename, "w"))) {
		daylog(ERROR, "Open %s for write error!", filename);
		return(-1);	/* File operate error */
	}
	if (FileHead_DR(fp, input_date)) {
		fclose(fp);
		return(-2);	/* Database operate error */
	}

	num = 0;

	$declare hmd_cur cursor for
	select * from wb_list
	where input_date = :indate	/* input_date */
	order by card_no;
	$open hmd_cur;
	if (SQLCODE) {
		daylog(ERROR, "Open hmd_cur error![%d]", SQLCODE);
		fclose(fp);
		return(-2);	/* Database operate error */
	}
	while (1) {
		$fetch hmd_cur into :hmd;
		if (SQLCODE == 100) break;
		if (SQLCODE) {
			daylog(ERROR, "Fetch hmd_cur error![%d]", SQLCODE);
			$close hmd_cur;
			fclose(fp);
			return(-2);	/* Database operate error */
		}
		del_st_space("wb_list", &hmd);
		FileDetail_DR(fp, &hmd);
		num++;
	}
	$close hmd_cur;

	FileTail_DR(fp, num);
	fclose(fp);
	return(0);
}

int FileHead_DR(FILE *fp, char *input_date)
{
	$S_sys_param sys;
	char date[11], time[9];
	$char	bankname[31];
	char	input_date1[11];	/* YYYY/MM/DD */

	$select * into :sys from sys_param;
	if (SQLCODE) {
		daylog(ERROR, "Select sys_param error!");
		return(-1);
	}
	get_bank_name(sys.bank_id,sys.host_id, bankname);
	getdatef(date, "/");
	gettimef(time, ":");
	fprintf(fp, "%15s中国银行BTS系统\n", " ");
	fprintf(fp, "%15s止付名单统计表\n", " ");
	str2date(input_date1, input_date, "/");
	fprintf(fp, "BTS-600%19s登记日期: %s\n", " ", input_date1);
	fprintf(fp, "%-5.5s%-3.3s%-22.22s%s %s\n", sys.bank_id,sys.host_id, bankname, date, time);
	fprintf(fp, "----------------------------------------------\n");
	fprintf(fp, "%-19s %-9s %-16s\n", "卡  号", "有效期", "止付类型");
	fprintf(fp, "----------------------------------------------\n");
	return(0);
}

int FileDetail_DR(FILE *fp, S_wb_list *phmd)
{
	fprintf(fp, "%-19s %-9s %-16s\n",
		phmd->card_no, phmd->exp_date, get_reason(phmd->wb_type));
	return(0);
}

int FileTail_DR(FILE *fp, long num)
{
	fprintf(fp, "----------------------------------------------\n");
	if (num) fprintf(fp, "%s    %ld  张\n", "合  计", num);
	return(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -