科 目 往 來 表

wpe51.jpg (82729 bytes)

範圍選擇
wpe52.jpg (5609 bytes)

科目查詢
wpe53.jpg (9021 bytes)

左右捲頁
wpe54.jpg (10238 bytes)


原始程式

原始檔-起始
/*---------( FSACRB11.C )-----科目往來表----*/
#include    "W_FSAC.H"
#define SX  20            /*左內框                             */
#define SY  10            /*上內框                             */
#define SC  42            /*內框寬, 多少行                     */

char *ChainKI();
void ShowData();
/*================================================================*/
struct
{   char     KEY[7];
} WORK;
FSACF001_T   ACF001;
FSACF011_T   ACF011;
int          Sw;
char        *Table="\
                                          \
               科 目 往 來 表             \
 ======================================== \
  列印期間:-------- 到 --------          \
                                          \
      科目:-------                       \
                                          \
 資料輸出裝置:--------                   \
                                          ";
/*===========================================================================*/
main()
{  USetBXYN(Table,SX,SY,SC);
   OPEN_ACF001;   OPEN_ACF011;   NamS=GET_NAME;  ACF001Tx();
   while(1)
   {
#define USER_GD
      Ugd_Open("F4:科目查詢       F7:開始列印        Ctr_F7:結束列印");
      #include <RPT1.H>
      switch(Field)
      {  case 1:  UReadM(BXN(1),&Sday,0,V_WUSR,V_READ);         break;
         case 2:  UReadM(BXN(2),&Eday,0,V_WUSR,V_READ);         break;
         case 3:  UReadS(BXN(3),Skey ,"NL",V_WUSR,V_READ);
                  if(RetKey==F4) Utx_Pick(Tx,Skey,0,0,0," 科 目 查 詢 ",V_WUSR);
                  Utx_Chain(Tx,Skey,BX[3],BY[3],8+20,V_WUSR);   break;
      }
      #include <RPT2.H>  /*條件設定完畢*/
     /*------------------------------------------------------------------*/
      Ugd_Open("檔 案 處 理 中 請 稍 候 ....."); /* Sort  FSACF011 */
      Sp=Usp_Open();  OPEN_WORK;
      READ1(ACF011)
      {   if(UMidDate(Sday,p->YM,Eday)==OFF) continue;
          if(p->KEY[6]==1) continue;                 /*隔除補收支傳票*/
          if(strcmp(p->AC,Skey)==0)                  /*搜尋科目相同者*/
          {  memcpy(BufS,p->KEY,6); BufS[6]=NULL;    /*拷貝傳票號,無分錄*/
             Ufk_Read(WORKK,&WORK,BufS);
             strcpy(WORK.KEY,BufS);                  /*有則覆蓋,無則拷貝*/
             Ufk_Write(WORKK,&WORK);
          }
          USprint(BufS,"%S----%M------",p->KEY,p->YM);
          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));
          memcpy(BufS,ACF011.KEY,6); BufS[6]=NULL;    /*拷貝傳票號,無分錄*/
          if(Ufk_Read(WORKK,&WORK,ACF011.KEY)==OFF) continue;
          if(LastKey[0]==NULL) strcpy(LastKey,ACF011.KEY);
          if(memcmp(LastKey,ACF011.KEY,6))
          {   strcpy(LastKey,ACF011.KEY);
              UPrint("─────────────────────────────────────────────────────────");
              Sw=OFF;
          }
          ShowData();
          if(Psf=='S' && K0>=21){ UWait(OFF,"Esc:重新選擇      任一鍵繼續"); UCls(); K0=0; }
          if(Psf=='P' && K0>=K1){ fprintf(Stream,"%c",12); K0=0; }
          if(K0==0) Sw=OFF;
      }
      Usp_Close(Sp);  Ufk_Close(WORKK);  LineReturn(ON);
   }
}
/*===========================================================================*/
void ShowHead()
{
#ifdef   HP-5L          /*1998/8/27*/
   LockItemHead(3,"~I",NamS,"~Z2W1G2X16");
#else
   LockItemHead(3,"~IZ2L3G2",NamS,"~Z1");
#endif
    Utx_GetS(Tx,TmpS,Skey,0);
    UPrint("#自%M------∼%M------  %S--------------------------                                  列印日期:%M------  第 %I- 頁 ",Sday,Eday,TmpS,Day,P0);
    UPrint("==================================================================================================================");
    UPrint("類  傳票日期      科 目 名 稱               摘 要                           借方金額    貸方金額  兌現日期  傳票號");
    UPrint("--  --------  ------------------------ --------------------------------- ----------- -----------  --------  ------");
}
/*===========================================================================*/
void ShowData()
{   char KI[4];

    Ufk_Read(ACF001K,&ACF001,ACF011.AC);
    strcpy(KI,ChainKI());
    if(Sw){ ACF011.KEY[0]=KI[0]=NULL;  ACF011.YM.D=0; }
    if(ACF011.DC=='D')
         UPrint("%S  %M------  %S------------------     %S------------------------------- %F,--------              %M------  %S----",KI,ACF011.YM,ACF001.ACN,ACF011.RM,ACF011.AMT,ACF011.CYM,ACF011.KEY);
    else UPrint("%S  %M------      %S------------------ %S-------------------------------             %F,--------  %M------  %S----",KI,ACF011.YM,ACF001.ACN,ACF011.RM,ACF011.AMT,ACF011.CYM,ACF011.KEY);
    Sw=ON;
}
/*================================================================*/
char *ChainKI()
{  switch(ACF011.KI)
   {  case  '1':  return "收";
      case  '2':  return "支";
      case  '3':  return "轉";
      default  :  return "  ";
   }
}
原始檔-結束

Byron Wey  Oct.21.1998


回首頁C之城