應收票據(托收表)

範圍選擇 |
票據選取 |
連續列印 |
原始程式
原始檔-起始
/*---------( FSACRC71.C )--------*/
#include "W_FSAC.H"
#define SX 20 /*左內框 */
#define SY 10 /*上內框 */
#define SC 34 /*內框寬, 多少行 */
/*-----------------------------------------------------------------*/
#define PrHEAD UPrint("#托收日期:%M------ 帳戶:%S- 頁次:%I- ",Ym,&ACF011.RM[8],P0); \
UPrint("================================================================================"); \
UPrint("付款銀行 .發票人 支票號碼 到期日 金 額 備註 "); \
UPrint("------------------------ -------- -------- ------------ --------------------");
#define PrSTYLE "@S---------------------- %S------ %M------ %f,$-------- "
#define PrSPILT
#define PrNULL
#define PrSUMUP
#define PrSUM
#define PrNEXT
#define PrEND UPrint("================================================================================"); \
UPrint(" 合計: %f,$---------- 共 %I-- 張 ",Sum,Count);
#define PrDATA &ACF011.RM[12],ACF011.RM,ACF011.CYM,ACF011.AMT
/*-----------------------------------------------------------------*/
void ShowData();
void ShowLast();
void LevelBreak(char *str,int len,int sw);
char *ChainYn();
/*================================================================*/
FSACF001_T ACF001;
FSACF011_T ACF011;
DATE Ym;
double Sum,Amt;
int Count;
char Yn;
char **s;
char *Table="\
\
應收票據(托收明細) \
================================ \
傳票日期: -------- 到: -------- \
托收日期: -------- \
連續列印: ------ (依帳戶) \
\
資料輸出裝置:-------- \
";
/*===========================================================================*/
void main()
{ USetBXYN(Table,SX,SY,SC);
OPEN_ACF001; OPEN_ACF011; NamS=GET_NAME;
while(1)
{ Yn='Y';
#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) UReadM(BXN(3),&Ym ,0,V_WUSR,V_READ);
if(Field==4){ UReadTog(BXN(4),&Yn,V_TOG,"YN","連續","換頁");
UShowSL( BXN(4),ChainYn(),V_WUSR);
}
#include <RPT2.H> /*條件設定完畢*/
/*------------------------------------------------------------------*/
if((Sa=ChkYM(Sday,ON))==0) continue; Sm=Sday.Y*12+Sday.M;
Ugd_Open("檔 案 處 理 中 請 稍 候 .....");
Tx=Utx_Open(5,4,76,23,1000,17,OFF); /*票據*/
Utx_AddHead(Tx,"帳號 傳票日期 付款銀行 .發票人 票據號 到期日 金 額 傳票號 ");
Utx_AddHead(Tx,"---- -------- ----------------- ------- -------- ----------- -------");
strcpy(BufS, "%S- %M------ %S--------------- %S----- %M------ %f,-------- %S-----");
READ1(ACF011)
{ if(memcmp(p->AC,"1141",4)!=0) continue;
if(p->DC=='C') continue;
if(UMidDate(Sday,p->YM,Eday)==OFF) continue;
/* if(p->AC[4]<=SPACE) continue; */
Utx_Ins(Tx,BufS,&p->RM[8],p->YM,&p->RM[12],p->RM,p->CYM,p->AMT,p->KEY);
}
READ2
Ugd_Close();
/*------------------------------------------------------------------*/
Ugd_Open("列印中 Ctr_F7:結束列印");
s=Utx_MtPick(Tx,0," 托收明細 ");
for(I=0; s[I]; I++)
{ Utx_GetFmt(Tx,s[I],"6S",BufS);
if(Ufk_Read(ACF011K,&ACF011,BufS)==OFF) continue;
if(Yn=='Y') LevelBreak(&ACF011.RM[8],3,ON); /* 帳號碼,連續印*/
else LevelBreak(&ACF011.RM[8],3,OFF); /* 帳號碼,換頁印*/
ShowData();
if(Psf=='S' && K0>=20){ UWait(OFF,"Esc:重新選擇 任一鍵繼續"); UCls(); K0=0; }
if(Psf=='P' && K0>=K1){ fprintf(Stream,"%c",12); K0=0; }
}
ShowLast(); Utx_Close(Tx); LineReturn(ON);
}
}
/*===========================================================================*/
void ShowHead()
{
#ifdef HP-5L /*1998/8/27*/
LockItemHead(0,"~I",NamS,"~Z2G2L24X10");
#else
LockItemHead(0,"~IZ2G2L24",NamS,"~Z1");
#endif
PrHEAD /*列印標頭*/
}
/*===========================================================================*/
void ShowData()
{
UPrint(PrSTYLE,PrDATA); /*列印一列資料*/
Sum += ACF011.AMT;
Count++;
}
/*===========================================================================*/
void ShowLast()
{
PrEND
Sum=0f;
Count=0;
}
/*===========================================================================*/
void LevelBreak(char *str,int len,int sw)
{
if(LastKey[0]==NULL) strcpy(LastKey,str);
if(memcmp(LastKey,str,len)==0) return;
ShowLast(); strcpy(LastKey,str); Count=P0=0;
switch(Psf)
{ case 'P': if(sw){ fprintf(Stream,"\n\n"); K0+=2; ShowHead(); }
else { fprintf(Stream,"%c",12); K0=0; } break;
case 'S': if(K0<=23 && K0) UWait(OFF,"Esc:重新選擇 任一鍵繼續");
UCls(); K0=0; break;
case 'V': UPrint(""); UPrint(""); K0=0; Vw.lhed=OFF; break;
}
}
/*================================================================*/
char *ChainYn()
{ switch(Yn)
{ case 'Y': return "連續";
case 'N': return "換頁";
default : return " ";
}
}
原始檔-結束
Byron Wey Oct.21.1998