📄 pt_sy_summ.ec
字号:
/* 打印系统凭证整理单 */#include </u/ebcsav/include/sav.h>$include sqlca;$include sqlda;void addspace();void addspacef();char readch();void prtf_dnum();void mess();short num_time();short menu();short menusel();#include </u/ebcsav/include/begin>short ti,i,num_c2,num_c3,num,cred_num,open_num,canc_num;double d_amount,c_amount;char c;char s[7],st[11];$ char s_num[2],s_type[2],s_type1[2],s_type2[2],s_type0[2],cu_type[2], ope_num[2],statu[2];$ double amoun,interes;FILE *pf;static char *title2[10]={"0. 返 回 ","1.定期利息 ","2.活期利息 ","3. 双整 ", "4. 活期 ","5. 零整 ","6.存本取息 ","7.定活两便 ","8. 大额 ","9. 通知 "};static char *remind2[10]={" 返回主选择单 "," 打印定期利息凭证整理单 ", " 打印活期利息凭证整理单 "," 打印整存整取凭证整理单 ", " 打印活期凭证整理单 "," 打印零存整取凭证整理单 ", " 打印存本取息凭证整理单 "," 打印定活两便凭证整理单 ", " 打印大额储蓄凭证整理单 "," 打印通知存款凭证整理单 "};static short menu_row2[10]={5,5,5,6,6,6,6,6,6,6}, menu_col2[10]={8,19,30,8,16,24,32,43,54,62};static char *title3[3]={"0.返回 ","1.人民币 ","2.外币 "};static char *remind3[3]={" 返回主选择单 "," 打印人民币储蓄凭证整理单 ", " 打印外币储蓄凭证整理单 "};static short menu_row3[3]={8,8,8},menu_col3[3]={8,15,24};move(0,23);$ database saving;printw("打 印 系 统 凭 证 整 理 单");pf=fopen("/u/ebcsav/data/sav_sect.dat","r");fseek(pf,((op.num&0x7f)-1)*34+24,0);fread(st,10,1,pf);fclose(pf);st[10]='\0';for(i=0;i<7;i++) if(op.name[i]!='\0')s[i]=op.name[i]^0xff; else s[i]='\0';ope_num[0]=op_num;ope_num[1]='\0';s_num[0]=op.num&0x7f;s_num[1]='\0';s_type[1]='\0';s_type1[1]='\0';s_type2[1]='\0';cu_type[1]='\0';num_c2=num_c3=0;while(1) { move(2,0); clrtobot(); block(1,0,22,80); num=((op.type&1)==1)?9:4; block(4,6,4,(num==9)?66:38); num_c2=menu(title2,remind2,menu_row2,menu_col2,num,num_c2); num_c2=menusel(title2,remind2,menu_row2,menu_col2,num,num_c2,0); if(num_c2==0) break; if(num_c2>4||(op.type&3)==1) num_c3=1; else if((op.type&3)==2) num_c3=2; else { block(7,6,3,28); num_c3=menu(title3,remind3,menu_row3,menu_col3,2,num_c3); num_c3=menusel(title3,remind3,menu_row3,menu_col3,2,num_c3,0); } if(num_c3==0) continue; if(num_c3==2) { move(11,3); printw("选择: U-美元 J-日元 H-港元 M-德国马克 P-英镑 F-法国法郎 C-加拿大元"); while(1) { move(11,76); c=toupper(readch()); if(c=='U'||c=='J'||c=='H'||c=='M'||c=='P'||c=='F'||c=='C') { cu_type[0]=c; break; } } } else cu_type[0]='R'; i=(num_c3-1)*10; if(num_c2==1) { s_type[0]=i+1; s_type1[0]=i+3; s_type2[0]=i+6; } else if(num_c2==2) { s_type[0]=s_type2[0]=i+2; s_type1[0]=i+7; } else { s_type[0]=s_type1[0]=s_type2[0]=i+num_c2-2; } $ declare blot1 scroll cursor for select sav_type,status,amount,interest into $s_type0,$statu,$amoun,$interes from r_blot where sec_num=$s_num and (sav_type=$s_type or sav_type=$s_type1 or sav_type=$s_type2); $ declare blot2 scroll cursor for select sav_type,status,amount,interest into $s_type0,$statu,$amoun,$interes from f_blot where sec_num=$s_num and (sav_type=$s_type or sav_type=$s_type1 or sav_type=$s_type2) and cur_type=$cu_type; if(sqlca.sqlcode!=0) { move(20,20); addstr("申请"); mess((short)16); printw("(%d), ",sqlca.sqlcode); mess((short)3); getch(); return; } if(num_c3==1) { $ open blot1; } else { $ open blot2; } if(sqlca.sqlcode!=0) { move(20,20); addstr("打开"); mess((short)16); printw("(%d), ",sqlca.sqlcode); mess(3); getch(); break; } cred_num=open_num=canc_num=0; d_amount=c_amount=0.0; while(1) { if(num_c3==1) { $ fetch blot1; } else { $ fetch blot2; } if(sqlca.sqlcode!=0) break; if(num_c2<3) { switch(statu[0]) { case 'E': case 'P': cred_num++; d_amount+=interes; break; case 'D': if(s_type0[0]!=7) break; cred_num++; d_amount+=interes; break; case 'M': d_amount+=amoun; break; } } else { switch(statu[0]) { case 'C': case 'T': cred_num++; c_amount+=amoun; break; case 'D': cred_num++; d_amount+=amoun; break; case 'E': case 'P': cred_num++; canc_num++; d_amount+=amoun; break; case 'O': case 'R': cred_num++; open_num++; c_amount+=amoun; } } } if(num_c3==1) { $ close blot1; } else { $ close blot2; } ti=num_time(); move(20,20); mess((short)42); mess((short)4); getch(); printf("%c[5i%c%c9%c%c%c]%cq\n\n",27,27,'%',1,20,27,28); addspacef(38); printf("系 统 凭 证 整 理 单\n"); addspacef(34); printf("==================================\n"); addspacef(14); printf("%-10s",st); addspacef(40); printf("%4d年%2d月%2d日 %2d时%2d分\n",year,month,day,ti/100,ti%100); printf(" ─────────────────────────────────────────\n\n"); addspacef(14); printf("类型: %-10s",&title2[num_c2][2]); addspacef(16); printf("币种: "); switch(cu_type[0]) { case 'C': printf("加拿大元"); break; case 'F': printf("法国法郎"); break; case 'H': printf("港元 "); break; case 'J': printf("日元 "); break; case 'M': printf("德国马克"); break; case 'P': printf("英镑 "); break; case 'R': printf("人民币 "); break; case 'U': printf("美元 "); } printf("\n\n"); addspacef(14); if(num_c2<3) { printf("凭证张数 借方发生额 贷方发生额\n\n"); addspacef(16); printf("%4d",cred_num); addspacef(28); } else { printf("凭证张数 销户数 开户数 借方发生额 贷方发生额\n\n"); addspacef(16); printf("%4d",cred_num); addspacef(7); printf("%4d",canc_num); addspacef(6); printf("%4d",open_num); addspacef(7); } prtf_dnum(d_amount,16); addspacef(6); prtf_dnum(c_amount,16); printf("\n\n"); addspacef(50); printf("借贷差: "); prtf_dnum(c_amount-d_amount,16); printf("\n\n"); printf(" ─────────────────────────────────────────\n"); printf(" 事后监督: 复核人: 操作员:%s\n",s); printf("%c%c[4i",12,27); }$ close database;endwin();#include </u/ebcsav/include/end>#include </u/ebcsav/include/mess>#include </u/ebcsav/include/addspace>#include </u/ebcsav/include/addspacef>#include </u/ebcsav/include/readch>#include </u/ebcsav/include/prtf_dnum>#include </u/ebcsav/include/menu>#include </u/ebcsav/include/menusel>#include </u/ebcsav/include/num_time>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -