日 記 帳
範圍選擇 |
現金收支類 |
轉帳類 |
原始程式
原始檔-起始 /*---------( FSACR060.C )---------*/ #include "W_FSAC.H" #define SX 20 /*左內框 */ #define SY 10 /*上內框 */ #define SC 34 /*內框寬, 多少行 */ void EndPage(); void ShowHead(); void ShowData(); char *ChainKi(); /*================================================================*/ FSACF001_T ACF001; FSACF011_T ACF011; double Dsum,Csum; char Ki; int Sw; char *Table="\ \ 日 計 帳 \ ================================ \ 期間: -------- 到: -------- \ 列印類別: ------------ \ \ 資料輸出裝置:-------- \ "; /*===========================================================================*/ void main() { USetBXYN(Table,SX,SY,SC); OPEN_ACF001; OPEN_ACF011; NamS=GET_NAME; while(1) { Ki='3'; #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) { UReadTog(BXN(3),&Ki,V_TOG,"123","現金收支類","轉帳類","全部"); UShowSL(BXN(3),ChainKi(),V_WUSR); } #include <RPT2.H> /*條件設定完畢*/ /*------------------------------------------------------------------*/ Ugd_Open("檔 案 處 理 中 請 稍 候 ....."); /* Sort FSACF011 */ Sp=Usp_Open(); READ1(ACF011) { if(Ki=='1' && p->KI=='3') continue; if(Ki=='2' && p->KI!='3') continue; if(UMidDate(Sday,p->YM,Eday)==OFF) continue; USprint(BufS,"%M----%S-----",p->YM,p->KEY); Usp_InsIp(Sp,BufS,L); } READ2 Ugd_Close(); /*------------------------------------------------------------------*/ Ugd_Open("列印中 Ctr_F7:結束列印"); Sw=OFF; while(RetKey!=ESC) { if(Usp_GetIp(Sp,&L)==OFF) break; lseek(ACF011K->ffd,L*sizeof(ACF011),SEEK_SET); read(ACF011K->ffd,&ACF011,sizeof(ACF011)); ACF011.KEY[6]=NULL; if(LastKey[0]==NULL) strcpy(LastKey,ACF011.KEY); if(memcmp(LastKey,ACF011.KEY,7)) { strcpy(LastKey,ACF011.KEY); UPrint("──────────────────────────────────────────────────────"); Sw=OFF; } ShowData(); if(Psf=='S' && K0>=20){ EndPage(); UWait(OFF,"Esc:重新選擇 任一鍵繼續"); UCls(); K0=0; } if(Psf=='P' && K0>=K1){ EndPage(); fprintf(Stream,"%c",12); K0=0; } if(K0==0) Sw=OFF; } EndPage(); Usp_Close(Sp); LineReturn(ON); } } /*===========================================================================*/ void ShowHead() { #ifdef HP-5L /*1998/8/27*/ LockItemHead(2,"~I",NamS,"~Z2W1X20"); #else LockItemHead(2,"~IZ2L12G2",NamS,"~Z1"); #endif UPrint("#自%M------ 至%M------ 列印日期:%M------ 第 %I- 頁 ",Sday,Eday,Day,P0); UPrint("============================================================================================================="); UPrint("傳票日期 科 目 名 稱 摘 要 借方金額 貸方金額 兌現日期 傳票號"); UPrint("-------- ------------------------ --------------------------------- ------------ ------------ -------- ------"); } /*===========================================================================*/ void ShowData() { Ufk_Read(ACF001K,&ACF001,ACF011.AC); if(Sw){ ACF011.YM.D=0; ACF011.KEY[0]=NULL; } if(ACF011.DC=='D') { UPrint("%M------ %S------------------ %S------------------------------- %F,--------- %M------ %S----",ACF011.YM,ACF001.ACN,ACF011.RM,ACF011.AMT,ACF011.CYM,ACF011.KEY); Dsum+=ACF011.AMT; } else{ UPrint("%M------ %S------------------ %S------------------------------- %F,--------- %M------ %S----",ACF011.YM,ACF001.ACN,ACF011.RM,ACF011.AMT,ACF011.CYM,ACF011.KEY); Csum+=ACF011.AMT; } Sw=ON; } /*===========================================================================*/ void EndPage() { UPrint("============================================================================================================="); UPrint(" 頁 次 小 計 : %F,--------- %F,--------- ",Dsum,Csum); Dsum=Csum=0; } /*================================================================*/ char *ChainKi() { switch(Ki) { case '1': return "現金收支類"; case '2': return "轉帳類"; case '3': return "全部"; default : return " "; } } 原始檔-結束
Byron Wey Oct.21.1998