科 目 往 來 表
範圍選擇 |
科目查詢 |
左右捲頁 |
原始程式
原始檔-起始 /*---------( FSACRB11.C )-----科目往來表----*/ #include "W_FSAC.H" #define SX 20 /*左內框 */ #define SY 10 /*上內框 */ #define SC 42 /*內框寬, 多少行 */ char *ChainKI(); void ShowData(); /*================================================================*/ struct { char KEY[7]; } WORK; FSACF001_T ACF001; FSACF011_T ACF011; int Sw; char *Table="\ \ 科 目 往 來 表 \ ======================================== \ 列印期間:-------- 到 -------- \ \ 科目:------- \ \ 資料輸出裝置:-------- \ "; /*===========================================================================*/ main() { USetBXYN(Table,SX,SY,SC); OPEN_ACF001; OPEN_ACF011; NamS=GET_NAME; ACF001Tx(); while(1) { #define USER_GD Ugd_Open("F4:科目查詢 F7:開始列印 Ctr_F7:結束列印"); #include <RPT1.H> switch(Field) { case 1: UReadM(BXN(1),&Sday,0,V_WUSR,V_READ); break; case 2: UReadM(BXN(2),&Eday,0,V_WUSR,V_READ); break; case 3: UReadS(BXN(3),Skey ,"NL",V_WUSR,V_READ); if(RetKey==F4) Utx_Pick(Tx,Skey,0,0,0," 科 目 查 詢 ",V_WUSR); Utx_Chain(Tx,Skey,BX[3],BY[3],8+20,V_WUSR); break; } #include <RPT2.H> /*條件設定完畢*/ /*------------------------------------------------------------------*/ Ugd_Open("檔 案 處 理 中 請 稍 候 ....."); /* Sort FSACF011 */ Sp=Usp_Open(); OPEN_WORK; READ1(ACF011) { if(UMidDate(Sday,p->YM,Eday)==OFF) continue; if(p->KEY[6]==1) continue; /*隔除補收支傳票*/ if(strcmp(p->AC,Skey)==0) /*搜尋科目相同者*/ { memcpy(BufS,p->KEY,6); BufS[6]=NULL; /*拷貝傳票號,無分錄*/ Ufk_Read(WORKK,&WORK,BufS); strcpy(WORK.KEY,BufS); /*有則覆蓋,無則拷貝*/ Ufk_Write(WORKK,&WORK); } USprint(BufS,"%S----%M------",p->KEY,p->YM); 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)); memcpy(BufS,ACF011.KEY,6); BufS[6]=NULL; /*拷貝傳票號,無分錄*/ if(Ufk_Read(WORKK,&WORK,ACF011.KEY)==OFF) continue; if(LastKey[0]==NULL) strcpy(LastKey,ACF011.KEY); if(memcmp(LastKey,ACF011.KEY,6)) { strcpy(LastKey,ACF011.KEY); UPrint("─────────────────────────────────────────────────────────"); Sw=OFF; } ShowData(); if(Psf=='S' && K0>=21){ UWait(OFF,"Esc:重新選擇 任一鍵繼續"); UCls(); K0=0; } if(Psf=='P' && K0>=K1){ fprintf(Stream,"%c",12); K0=0; } if(K0==0) Sw=OFF; } Usp_Close(Sp); Ufk_Close(WORKK); LineReturn(ON); } } /*===========================================================================*/ void ShowHead() { #ifdef HP-5L /*1998/8/27*/ LockItemHead(3,"~I",NamS,"~Z2W1G2X16"); #else LockItemHead(3,"~IZ2L3G2",NamS,"~Z1"); #endif Utx_GetS(Tx,TmpS,Skey,0); UPrint("#自%M------∼%M------ %S-------------------------- 列印日期:%M------ 第 %I- 頁 ",Sday,Eday,TmpS,Day,P0); UPrint("=================================================================================================================="); UPrint("類 傳票日期 科 目 名 稱 摘 要 借方金額 貸方金額 兌現日期 傳票號"); UPrint("-- -------- ------------------------ --------------------------------- ----------- ----------- -------- ------"); } /*===========================================================================*/ void ShowData() { char KI[4]; Ufk_Read(ACF001K,&ACF001,ACF011.AC); strcpy(KI,ChainKI()); if(Sw){ ACF011.KEY[0]=KI[0]=NULL; ACF011.YM.D=0; } if(ACF011.DC=='D') UPrint("%S %M------ %S------------------ %S------------------------------- %F,-------- %M------ %S----",KI,ACF011.YM,ACF001.ACN,ACF011.RM,ACF011.AMT,ACF011.CYM,ACF011.KEY); else UPrint("%S %M------ %S------------------ %S------------------------------- %F,-------- %M------ %S----",KI,ACF011.YM,ACF001.ACN,ACF011.RM,ACF011.AMT,ACF011.CYM,ACF011.KEY); Sw=ON; } /*================================================================*/ char *ChainKI() { switch(ACF011.KI) { case '1': return "收"; case '2': return "支"; case '3': return "轉"; default : return " "; } } 原始檔-結束
Byron Wey Oct.21.1998