科 目 往 來 表

範圍選擇 |
科目查詢 |
左右捲頁 |
原始程式
原始檔-起始
/*---------( 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