日 記 帳

範圍選擇 |
現金收支類 |
轉帳類 |
原始程式
原始檔-起始
/*---------( 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