📄 menufunc.c
字号:
strcpy(m.indate, ReadField(p, 19)); strcpy(m.use, ReadField(p, 20)); strcpy(m.transtype, ReadField(p, 21)); strcpy(m.billno, ReadField(p, 22)); strcpy(m.transcode, ReadField(p, 23)); if(IsBlank(m.outbkno)) { PrintMsg(win, "付款行行号不能为空", 'E'); return(1); } if(IsBlank(m.outacctno)) { PrintMsg(win, "付款人账号不能为空。", 'E'); return(1); } if(IsBlank(m.outname)) { PrintMsg(win, "付款人名称不能为空。", 'E'); return(1); } if(IsBlank(m.inbkno)) { PrintMsg(win, "收款行行号不能为空", 'E'); return(1); } if(IsBlank(m.inacctno)) { PrintMsg(win, "收款人账号不能为空。", 'E'); return(1); } if(IsBlank(m.inname)) { PrintMsg(win, "收款人名称不能为空。", 'E'); return(1); } if((atoi(m.intype) == 2) && IsBlank(m.inpasstype)) { PrintMsg(win, "收款人类型为个人时,收款人证件类型不能为空。", 'E'); return(1); } if((atoi(m.intype) == 2) && IsBlank(m.inpassno)) { PrintMsg(win, "收款人类型为个人时,收款人证件号码不能为空。", 'E'); return(1); } if((m.inbktype[0] != '0') || (m.outbktype[0] != '0')) { if(IsBlank(m.billno)) { PrintMsg(win, "跨行交易时凭证代码不能为空", 'E'); return(1); } } if(((m.inbktype[0] == '0' ) && (m.outbktype[0] != '0')) || ((m.inbktype[0] !='0') && (m.outbktype[0] == '0'))) { PrintMsg(win, "收、付款行行号类型不一致。", 'E'); return(1); } return(0); }/* 涉及个人结算账户转账业务*/int AddPATO(){ int ret = 0; FORM_NODE *p; WINDOW *win; char tmp[80]; if(ChkPrivil('1')) return(1); if((p = LoadForm("../etc/addpato.frm")) == NULL) return(0); win = FormWin(p); while(DriverForm(p) == OK ){ if(CheckForm(p)) continue; if(ChkPATO(p)) continue; memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "2006%-8s%-4s%-06d%-32s%-12s%s%-60s%-40s%-20s%-2s%-2s%-20s%-12s%s%-60s%-40s%-20s%-2s%-2s%-20s%-18s%-8s%-8s%-20s%-2s%-32s%-10s%-20s%-4s%s", SYSDATE, OPRCODE, SEQNO++, " ", ReadField(p, 1), ReadField(p, 2), ReadField(p, 3), ReadField(p, 4), ReadField(p, 5), ReadField(p, 6), ReadField(p, 7), ReadField(p, 8), ReadField(p, 9), ReadField(p, 10), ReadField(p, 11), ReadField(p, 12), ReadField(p, 13), ReadField(p, 14), ReadField(p, 15), ReadField(p, 16), ReadField(p, 17), ReadField(p, 18), ReadField(p, 19), ReadField(p, 20), ReadField(p, 21), ReadField(p, 22), ReadField(p, 23), " ", ORGCODE, "6"); if(ret = SendHost()) PrintErr(win, ret); else { memset(tmp, 0, 80); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) PrintErr(win, ret); else { PrintMsg(win, "交易成功", 'R'); FreeForm(p); p = LoadForm("../etc/addpato.frm"); win = FormWin(p); } } } FreeForm(p); return(ret);}int Normal(){ char startdate[9],enddate[9]; char tmp[5]; int ret = 0; FORM_NODE *p; WINDOW *win; if(ChkPrivil('2')) return(1); if((p = LoadForm("../etc/normal.frm")) == NULL) return(0); win = FormWin(p); memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "9005%-8s", SYSDATE); if(ret = SendHost()) { PrintErr(win, ret); FreeForm(p); return(ret); } memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) { PrintErr(win, ret); FreeForm(p); return(ret); } memset(startdate, 0, 9); memcpy(startdate, &PACK[8], 8); WriteField(p, 1, startdate); while(DriverForm(p) == OK ) { if(atoi(ReadField(p, 2)) < atoi(ReadField(p, 1))) { PrintMsg(win, "结束日期不能小于开始日期", 'E'); continue; } memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "3001%-8s%-8s", ReadField(p, 1), ReadField(p, 2)); if(ret = SendHost()) { PrintErr(win, ret); FreeForm(p); return(ret); } memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) { PrintErr(win, ret); FreeForm(p); return(ret); } PrintMsg(win, "上报数据产生成功", 'R'); break; } FreeForm(p); return(ret);} int ReadData(){ char prodate[9]; char tmp[5]; int ret = 0; char fname[50]; char msg[80]; FORM_NODE *p; WINDOW *win; FILE *fp, *fp1; char buf[512]; int flag = 0, i; if(ChkPrivil('3')) return(1); if((p = LoadForm("../etc/readdata.frm")) == NULL) return(0); win = FormWin(p); if(DriverForm(p) == OK ) { memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "1012%08s", ReadField(p, 1)); if(ret = SendHost()) { PrintErr(win, ret); FreeForm(p); return(-1); } memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) { PrintErr(win, ret); FreeForm(p); return(-1); } memset(fname, 0, 50); sprintf(fname, "../data/EA%s", ReadField(p, 1)); if((fp = fopen(fname, "r")) == NULL) { memset(msg, 0, 50); sprintf(msg, "打开文件[%s]错误", fname); ErrLog("%s\n", msg); PrintMsg(win, msg, 'E'); FreeForm(p); return(1); } memset(fname, 0, 50); sprintf(fname, "../data/EJ%s", ReadField(p, 1)); if((fp1 = fopen(fname, "r"))== NULL) { memset(msg, 0, 50); sprintf(msg, "打开文件[%s]错误", fname); ErrLog("%s\n", msg); PrintMsg(win, msg, 'E'); FreeForm(p); fclose(fp); return(1); } i = 1; PrintMsg(win, "正在处理中...", 'N'); memset(buf, 0, sizeof(buf)); while((fscanf(fp, "%[^\n]\n", buf) != EOF)) { memset(msg, 0 ,sizeof(msg)); sprintf(msg, "处理帐户数据[%04d]", i++); PrintMsg(win, msg, 'N'); memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "1006%-s", buf); if(ret = SendHost()) { ErrLog("开户数据处理失败,代码[%d]\n", ret); ErrLog("内容[%s]\n", buf); flag = 1; PrintErr(win, ret); FreeForm(p); fclose(fp); fclose(fp1); return(ret); } memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) { flag = 1; ErrLog("开户数据处理失败,代码[%d]\n", ret); ErrLog("内容[%s]\n", buf); PrintErr(win, ret); } } fclose(fp); i = 1; memset(buf, 0, sizeof(buf)); while((fscanf(fp1, "%[^\n]\n", buf) != EOF)) { memset(msg, 0 ,sizeof(msg)); sprintf(msg, "处理流水数据[%04d]", i++); PrintMsg(win, msg, 'N'); memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "1007%s", buf); if(ret = SendHost()) { ErrLog("流水数据处理失败,代码[%d]\n", ret); ErrLog("内容[%s]\n", buf); flag = 1; PrintErr(win, ret); FreeForm(p); fclose(fp); fclose(fp1); return(ret); } memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) { flag = 1; ErrLog("流水数据处理失败,代码[%d]\n", ret); ErrLog("内容[%s]\n", buf); PrintErr(win, ret); } } fclose(fp1); if(flag == 0) PrintMsg(win, "读入数据成功", 'R'); else PrintMsg(win, "部分数据处理失败,请查找原因。", 'E'); } memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "1013%08s", ReadField(p, 1)); if(ret = SendHost()) { PrintErr(win, ret); FreeForm(p); return(-1); } memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) { PrintErr(win, ret); FreeForm(p); return(-1); } FreeForm(p); return(flag);}int DelData(){ char oprcode[5], oprname[13]; char tmp[5]; int ret = 0; FORM_NODE *p; WINDOW *win; if(ChkPrivil('1')) return(1); if((p = LoadForm("../etc/deldata.frm")) == NULL) return(0); win = FormWin(p); while(DriverForm(p) == OK ){ if(CheckForm(p)) continue; memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "5001%-8s%-4s%s%06s", SYSDATE, OPRCODE, ReadField(p, 1), ReadField(p, 2)); if(ret = SendHost()) PrintErr(win, ret); else { memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) PrintErr(win, ret); else { PrintMsg(win, "删除业务数据成功", 'R'); FreeForm(p); p = LoadForm("../etc/deldata.frm"); win = FormWin(p); } } } memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "9001%08s", ReadField(p, 1)); if(ret = SendHost()) { PrintErr(win, ret); FreeForm(p); return(-1); } memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) { PrintErr(win, ret); FreeForm(p); return(-1); } FreeForm(p); return(ret);}int QryHVPT(){ ST_HVPT m; int ret, i; char name[80], title[1024], rname[40], tmp[5]; char cmd[160], lname[40]; if(ChkPrivil('1')) return(1); memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "4001%-8s%-4s", SYSDATE, OPRCODE); if(ret = SendHost()) { PrintErr(stdscr, ret); deleteln(); refresh(); return(-1); } memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) { PrintErr(stdscr, ret); deleteln(); refresh(); return(-1); } memset(rname, 0, 40); memset(lname, 0, 40); sprintf(rname, "/usr/large/data/R%-4s", OPRCODE); sprintf(lname, "/usr/large/tmp/R%-4s", OPRCODE); memset(cmd,0,160); sprintf(cmd,"FTPclient -h %s -p %d -a -r -f %s -F %s", IP, FTPPORT, rname, lname); CliLog("%s|%d|命令[%s]\n",__FILE__,__LINE__,cmd); i=0; while(i++ < 3 && system(cmd) ); if(i>=3) { CliLog("%s|%d|下载文件[%s]失败\n",__FILE__,__LINE__,rname); PrintMsg(stdscr, "下载文件失败", 'E'); deleteln(); refresh(); return(-1); } memset(name, 0, sizeof(name)); sprintf(name, "%s", "[查询人民币大额转账业务]"); memset(title, 0, sizeof(title)); sprintf(title, "%-6s %-12s %s %-60s %-40s %-20s %-12s %s %-60s %-40s %-20s %15s %-8s %-8s %-20s %-8s %-32s %-12s ", "流水号", "付款行行号", "付款行行号类型", "付款人名称", "付款人账号", "付款人机构代码", "收款行行号", "收款行行号类型", "收款人名称", "收款人账号", "收款人机构代码", "金额", "付款日期", "收款日期", "用途", "结算方式", "凭证代码", "交易类型代码"); ViewBox(2, 2, 22, 76, name, title, lname); return(0);}int QryHVCS(){ ST_HVCS m; int ret, i; char name[80], title[1024], lname[40], rname[40], tmp[5], cmd[160]; if(ChkPrivil('1')) return(1); memset(PACK, 0, sizeof(PACK)); sprintf(PACK, "4002%-8s%-4s", SYSDATE, OPRCODE); if(ret = SendHost()) { PrintErr(stdscr, ret); deleteln(); refresh(); return(-1); } memset(tmp, 0, 5); memcpy(tmp, &PACK[4], 4); if( ret = atoi(tmp)) { PrintErr(stdscr, ret); deleteln(); refresh(); return(-1); } memset(rname, 0, 40); memset(lname, 0, 40); sprintf(rname, "/usr/large/data/R%-4s", OPRCODE); sprintf(lname, "/usr/large/tmp/R%-4s", OPRCODE); memset(cmd,0,160); sprintf(cmd,"FTPclient -h %s -p %d -a -r -f %s -F %s", IP, FTPPORT, rname, lname); CliLog("%s|%d|命令[%s]\n",__FILE__,__LINE__,cmd); i=0; while(i++ < 3 && system(cmd) ); if(i>=3) { CliLog("%s|%d|下载文件[%s]失败\n",__FILE__,__LINE__,rname);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -