應收票據(托收表)
範圍選擇 |
票據選取 |
連續列印 |
原始程式
原始檔-起始 /*---------( FSACRC71.C )--------*/ #include "W_FSAC.H" #define SX 20 /*左內框 */ #define SY 10 /*上內框 */ #define SC 34 /*內框寬, 多少行 */ /*-----------------------------------------------------------------*/ #define PrHEAD UPrint("#托收日期:%M------ 帳戶:%S- 頁次:%I- ",Ym,&ACF011.RM[8],P0); \ UPrint("================================================================================"); \ UPrint("付款銀行 .發票人 支票號碼 到期日 金 額 備註 "); \ UPrint("------------------------ -------- -------- ------------ --------------------"); #define PrSTYLE "@S---------------------- %S------ %M------ %f,$-------- " #define PrSPILT #define PrNULL #define PrSUMUP #define PrSUM #define PrNEXT #define PrEND UPrint("================================================================================"); \ UPrint(" 合計: %f,$---------- 共 %I-- 張 ",Sum,Count); #define PrDATA &ACF011.RM[12],ACF011.RM,ACF011.CYM,ACF011.AMT /*-----------------------------------------------------------------*/ void ShowData(); void ShowLast(); void LevelBreak(char *str,int len,int sw); char *ChainYn(); /*================================================================*/ FSACF001_T ACF001; FSACF011_T ACF011; DATE Ym; double Sum,Amt; int Count; char Yn; char **s; char *Table="\ \ 應收票據(托收明細) \ ================================ \ 傳票日期: -------- 到: -------- \ 托收日期: -------- \ 連續列印: ------ (依帳戶) \ \ 資料輸出裝置:-------- \ "; /*===========================================================================*/ void main() { USetBXYN(Table,SX,SY,SC); OPEN_ACF001; OPEN_ACF011; NamS=GET_NAME; while(1) { Yn='Y'; #include <RPT1.H> if(Field==1) UReadM(BXN(1),&Sday,0,V_WUSR,V_READ); if(Field==2) UReadM(BXN(2),&Eday,0,V_WUSR,V_READ); if(Field==3) UReadM(BXN(3),&Ym ,0,V_WUSR,V_READ); if(Field==4){ UReadTog(BXN(4),&Yn,V_TOG,"YN","連續","換頁"); UShowSL( BXN(4),ChainYn(),V_WUSR); } #include <RPT2.H> /*條件設定完畢*/ /*------------------------------------------------------------------*/ if((Sa=ChkYM(Sday,ON))==0) continue; Sm=Sday.Y*12+Sday.M; Ugd_Open("檔 案 處 理 中 請 稍 候 ....."); Tx=Utx_Open(5,4,76,23,1000,17,OFF); /*票據*/ Utx_AddHead(Tx,"帳號 傳票日期 付款銀行 .發票人 票據號 到期日 金 額 傳票號 "); Utx_AddHead(Tx,"---- -------- ----------------- ------- -------- ----------- -------"); strcpy(BufS, "%S- %M------ %S--------------- %S----- %M------ %f,-------- %S-----"); READ1(ACF011) { if(memcmp(p->AC,"1141",4)!=0) continue; if(p->DC=='C') continue; if(UMidDate(Sday,p->YM,Eday)==OFF) continue; /* if(p->AC[4]<=SPACE) continue; */ Utx_Ins(Tx,BufS,&p->RM[8],p->YM,&p->RM[12],p->RM,p->CYM,p->AMT,p->KEY); } READ2 Ugd_Close(); /*------------------------------------------------------------------*/ Ugd_Open("列印中 Ctr_F7:結束列印"); s=Utx_MtPick(Tx,0," 托收明細 "); for(I=0; s[I]; I++) { Utx_GetFmt(Tx,s[I],"6S",BufS); if(Ufk_Read(ACF011K,&ACF011,BufS)==OFF) continue; if(Yn=='Y') LevelBreak(&ACF011.RM[8],3,ON); /* 帳號碼,連續印*/ else LevelBreak(&ACF011.RM[8],3,OFF); /* 帳號碼,換頁印*/ ShowData(); if(Psf=='S' && K0>=20){ UWait(OFF,"Esc:重新選擇 任一鍵繼續"); UCls(); K0=0; } if(Psf=='P' && K0>=K1){ fprintf(Stream,"%c",12); K0=0; } } ShowLast(); Utx_Close(Tx); LineReturn(ON); } } /*===========================================================================*/ void ShowHead() { #ifdef HP-5L /*1998/8/27*/ LockItemHead(0,"~I",NamS,"~Z2G2L24X10"); #else LockItemHead(0,"~IZ2G2L24",NamS,"~Z1"); #endif PrHEAD /*列印標頭*/ } /*===========================================================================*/ void ShowData() { UPrint(PrSTYLE,PrDATA); /*列印一列資料*/ Sum += ACF011.AMT; Count++; } /*===========================================================================*/ void ShowLast() { PrEND Sum=0f; Count=0; } /*===========================================================================*/ void LevelBreak(char *str,int len,int sw) { if(LastKey[0]==NULL) strcpy(LastKey,str); if(memcmp(LastKey,str,len)==0) return; ShowLast(); strcpy(LastKey,str); Count=P0=0; switch(Psf) { case 'P': if(sw){ fprintf(Stream,"\n\n"); K0+=2; ShowHead(); } else { fprintf(Stream,"%c",12); K0=0; } break; case 'S': if(K0<=23 && K0) UWait(OFF,"Esc:重新選擇 任一鍵繼續"); UCls(); K0=0; break; case 'V': UPrint(""); UPrint(""); K0=0; Vw.lhed=OFF; break; } } /*================================================================*/ char *ChainYn() { switch(Yn) { case 'Y': return "連續"; case 'N': return "換頁"; default : return " "; } } 原始檔-結束
Byron Wey Oct.21.1998