日 記 帳

wpe20.jpg (70307 bytes)

範圍選擇
wpe1B.jpg (5441 bytes)

現金收支類
wpe1D.jpg (11127 bytes)

轉帳類
wpe1C.jpg (11858 bytes)


原始程式

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


回首頁C之城