應收票據(托收表)

wpe22.jpg (78136 bytes)

範圍選擇
wpe1D.jpg (5462 bytes)

票據選取
wpe20.jpg (13936 bytes)

連續列印
wpe23.jpg (11171 bytes)


原始程式

原始檔-起始
/*---------( 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


回首頁C之城