科 目 清 單

wpe1B.jpg (94056 bytes)

範圍選擇
wpe1C.jpg (5531 bytes)

科目查詢
wpe1D.jpg (8917 bytes)

不印明細
wpe20.jpg (8562 bytes)


原始程式

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


回首頁C之城