科 目 清 單

範圍選擇 |
科目查詢 |
不印明細 |
原始程式
原始檔-起始
/*---------( FSACR001.C )----------*/
#include "W_FSAC.H"
#define SX 20 /*左內框 */
#define SY 10 /*上內框 */
#define SC 40 /*內框寬, 多少行 */
#define CNO 3 /*列印控制 3 行 */
#define RNO 40 /*列印控制 40 列 */
void ShowHead(); /*當第一次UPrint()時, 會call 此函式*/
void ShowData();
char *ChainYn();
/*================================================================*/
FSACF001_T ACF001;
char Buf[CNO][RNO][32],Yn;
int Cnow,Rnow;
char *Table="\
\
會計科目一覽表 \
====================================== \
列印範圍: ------- -------------------- \
到: ------- -------------------- \
\
明細科目: ------ \
\
資料輸出裝置:-------- \
";
/*===========================================================================*/
void main()
{ USetBXYN(Table,SX,SY,SC);
OPEN_ACF001; NamS=GET_NAME;
while(1)
{ Yn='Y';
#define USER_GD
Ugd_Open("F4:科目查詢 F7:開始列印 Ctr_F7:結束列印");
#include <RPT1.H>
if(Field==1){ UReadS( BXN(1),Skey,"NL",V_WUSR,V_READ);
if(Ufk_Read(ACF001K,&ACF001,Skey)==OFF) memset(&ACF001,NULL,sizeof(ACF001));
UShowSL(BXN(2),ACF001.ACN,V_WUSR);
}
if(Field==2){ UReadS( BXN(3),Ekey,"NL",V_WUSR,V_READ);
if(Ufk_Read(ACF001K,&ACF001,Ekey)==OFF) memset(&ACF001,NULL,sizeof(ACF001));
UShowSL(BXN(4),ACF001.ACN,V_WUSR);
}
if(Field==3){ UReadTog(BXN(5),&Yn,V_TOG,"YN","列印","不印");
UShowSL( BXN(5),ChainYn(),V_WUSR);
}
if(RetKey==F4)
{ ACF001Tx(); Utx_View(Tx," 科 目 查 詢 "); }
if(Psf=='S') Psf='V';
#include <RPT2.H> /*條件設定完畢*/
/*------------------------------------------------------------------*/
Ugd_Open("列印中 Ctr_F7:結束列印");
lseek(ACF001K->kfd,0L,SEEK_SET); /* KEY 歸 0,KEY為科目代號*/
while(RetKey!=ESC && RetKey)
{ if(Ufk_SeqRead(ACF001K,&ACF001,Skey,Ekey) != ON) continue; /*讀符合 Skey..Ekey 範圍的資料*/
if(Yn=='N' && ACF001.KEY[4]>SPACE) continue; /*明細科目*/
USprint(Buf[Cnow][Rnow],"%S----- %S-------------------",ACF001.KEY,ACF001.ACN);
if(++Rnow>=RNO)
{ Rnow=0;
if(++Cnow>=CNO) ShowData(); /*滿頁時, 整頁儲存*/
}
}
if(Buf[0][0][0]>SPACE) ShowData(); /*最後殘頁*/
LineReturn(OFF); /*開始顯示*/
}
}
/*===========================================================================*/
void ShowHead() /*當第一次UPrint()時, 會call 此函式*/
{
#ifdef HP-5L /*1998/8/27*/
LockItemHead(0,"~I",NamS,"~Z2W1X24G2L12");
#else
LockItemHead(0,"~IZ2L12G2",NamS,"~Z1"); /*左邊不lock, 公司 TITLE,~Z垂直放大*/
#endif
UPrint("#列印日期:%M------ 第 %I 頁 ",Day,P0); /*第一byte=# , 將合併RptHd 於中央*/
UPrint("┌───────────────┬───────────────┬───────────────┐");
UPrint("│科目號 科 目 名 稱 │科目號 科 目 名 稱 │科目號 科 目 名 稱 │");
UPrint("│------- --------------------- │------- --------------------- │------- --------------------- │");
}
/*===========================================================================*/
void ShowData()
{
for(I=0; I<RNO; I++)
{ if(Buf[0][I][0]<=SPACE) continue; /*空白項, 不存*/
UPrint("│%S--------------------------- │%S--------------------------- │%S--------------------------- │",Buf[0][I],Buf[1][I],Buf[2][I]);
}
UPrint("└───────────────┴───────────────┴───────────────┘");
Cnow=Rnow=0;
if(Psf=='P'){ fprintf(Stream,"%c",12); K0=0; } /* 跳頁*/
memset(Buf,NULL,sizeof(Buf));
}
/*================================================================*/
char *ChainYn()
{ switch(Yn)
{ case 'Y': return "列印";
case 'N': return "不印";
default : return " ";
}
}
原始檔-結束
Byron Wey Oct.21.1998