最新消息:本站持续更新中,请注意添加收藏夹。搜索关键词时,多换一个同义词。比如要搜索界面,可以尝试页面,画面,PER档等词汇。善于搜索,将大大提高你的查找效率。

TIPTOP 会计期间、日期区间函数

开发相关 bron1984 10083浏览

会计期间、日期区间

1、取一个日期的 年、月、日、星期

#TODAY、YEAR(日期)、MONTH(日期)、DAY(日期)、WEEKDAY(日期)   
LET l_today = TODAY                 #当前日期   
LET l_year  = YEAR(2014/02/13)      #取日期的年:2014   
LET l_month  = MONTH(2014/02/13)    #取日期的月:2   
LET l_day  = DAY(2014/02/13)        #取日期的日:13   
           = s_day(2014/02/13)  
LET l_weekday = WEEKDAY(2014/02/13) #取日期是星期几:4  

2、取一个日期所在月份的 第一天、最后一天、月一共多少天

#s_months(日期)、s_first(日期)、s_getfirstday(日期)、s_last(日期)、s_getlastday(日期)   
#下面是只计算日期,不是会计期间的月初、月末天、一个会计期间多少天   
#如果是12期制,则一般都是一样;具体还要考虑aoos010、aoos021、aoos031的期间设置   
LET l_monDays = s_months(2014/02/13)        #返回日期所在月份的月天数:28   
LET l_monFirstDay  = s_first(2014/02/13)    #返回日期所在月份的第一天:1   
                   = s_getfirstday(2014/02/13)  
LET l_monLastDay  = s_last(2014/02/13)      #返回日期所在月份的最后一天:28   
                  = s_getlastday(2014/02/13)    

3、会计期间相关

#1.取得日期所在会计年月: s_yp(日期) RETURNING 日期所在会计年,日期所在会计月    
s_yp(p_date) RETURNING l_year,l_month  
#代码:s_yp.4gl      
# Input Parameter: p_date  日期      
# Return Code....: l_year  会计年度   
#                  l_month 期別    
Demo:CALL s_yp(p_date) RETURNING l_year,l_month  
  
  
#2.取得日期所在会计年or期别or季度or周   
s_get_aznn(p_plant,p_bookno,p_date,p_flag) RETURN p_mm  
#代码:s_get_aznn.4gl      
# Descriptions...: 传入营运中心,账别,日期,抓取aznn_file的年度,季别,期别和周别       
# Input Parameter:                 
#      p_plant            营运中心         
#      p_bookno           账别           
#      p_date             日期      
#      p_flag             标识符   1,回传年度     2,回传季别       3,回传期别            4,回传周别      
# Return code:    p_mm   回传值      年度            /季别             /期别                  /周别   
Demo:CALL s_get_aznn(p_plant,p_bookno,p_date,p_flag) RETURN p_mm  
  
  
#3.根据当前取年度期别 取 上一期年度期别: s_lsperiod(本期年度,本期期别) RETURNING 上期年度,上期期别   
s_lsperiod(p_sma51,p_sma52) RETURNING l_sma51, l_sma52     
#代码:s_lsperiod.4gl      
# Input Parameter: p_sma51   本期年度                    
#                  p_sma52   本期期別                    
# Return code....: l_sma51,l_sma52    
Demo:CALL s_lsperiod('2014','1') RETURNING 2013,12   #注意,需是否是12期   
  
  
#4.根据会计年,月,取该会计年月期起始、截止日期   
s_azm(p_year,p_mon) RETURNING l_flag,l_bdate,l_edate  
或  
s_azn01(p_year,p_month) RETURNING l_bdate,l_edate     
#代码:s_azm.4gl   或 s_azn01.4gl   
# Input PARAMETER: p_year  會計年度      
#                  p_mon    日期      
# RETURN Code....: l_flag   成功否      
#                     1     YES      
#                     0     NO      
#                  l_bdate  起始日期      
#                  l_edate  截止日期   
Demo:CALL s_azm(p_year,p_mon) RETURNING l_flag,l_bdate,l_edate  
Demo:CALL s_azn01(p_year,p_month) RETURNING l_bdate,l_edate    
  
    
#5.多帐别,根据该帐别,会计年,月,取该会计年月期起始、截止日期   
s_azmm01(p_year,p_month,p_ooz02p,p_ooz02b_c)  RETURNING l_bdate,l_edate  
或  
s_azmm(p_year,p_mon,p_ooz02p,p_ooz02b_c) RETURNING l_flag,l_bdate,l_edate  
#代码:s_azmm01.4gl   或 s_azmm.4gl     
# Input PARAMETER: p_year      會計年度      
#                  p_month     期別      
#                  p_ooz02p    總帳管理系統所在營運中心編號        
#                  p_ooz02b_c  總帳管理系統使用帳套編號       
# RETURN Code....: l_flag      成功否  1 YES;0 NO   
#                  l_bdate     起始日期     
#                  l_edate     截止日期   
Demo:CALL s_azmm(p_year,p_mon,p_ooz02p,p_ooz02b_c) RETURNING l_flag,l_bdate,l_edate    
Demo:CALL s_azmm01(p_year,p_month,p_ooz02p,p_ooz02b_c)  RETURNING l_bdate,l_edate

4、工作日、交期计算

#1.检查当前日是否工作日:s_daywk(日期) RETURNING 返回是否工作日   
s_daywk(p_date) RETURNING l_flag    
#代码:s_daywk.4gl      
# Input Parameter: p_date   date      
# Return code....: 1  YES 工作日     
#                  0  NO  非工作日    
#                  2  無資料 工作日未设置,检查asmp400、asmi400   
Demo:IF NOT s_daywk(p_date) ...   
  
  
#2.检查当前日是否工作日:s_daywk(日期) RETURNING 返回是否工作日,最近的工作日   
s_wkday(p_date) RETURNING l_flag,l_date   
#代码:s_wkday.4gl      
# Input Parameter: p_date   date      
# Return code....: 1  YES 工作日  /  0  NO  非工作日    
#                  2  l_date  最近的working date   
Demo:CALL s_wkday(p_date) RETURNING l_flag,l_date  
  
  
#3.计算2个日期区间有多少个工作日:s_wksize(起始日,结束日) RETURNING 计算正确flag,多少个工作日   
s_wksize(p_fdate,p_edate) RETURNING l_flag,l_n   
#代码:s_wksize.4gl     
# Input Parameter: p_fdate  起始日期      
#                  p_edate  截止日期      
# Return Code....: l_flag   0:正確 1:錯誤      
#                  l_n      工作日天數   
Demo:CALL s_wksize(p_fdate,p_edate) RETURNING l_flag,l_n    
  
    
#4.交期计算:推算日期, 但跳過非工作日: s_aday(日期,向前or向后,多少天) RETURNING 推算出日期   
s_aday(p_date,p_op,p_offset) RETURNING l_date  
#代码:s_aday.4gl   
# Input Parameter: p_date  日期      
#                  p_op    1:往后推算      
#                         -1:往前推算      
#                  p_offset       天數,無條件進位      
# Return Code....: p_wdate        working date    
Demo:CALL s_aday(p_date,p_op,p_offset) RETURNING l_date 

库存有效期设置、检查库存有效期、库存有效期剩余天数

#1.检查料+仓+库+批的库存是否超出有效期   
s_actimg(p_item,p_ware,p_loc,p_lot)  
或  
s_actimg1(p_item,p_ware,p_loc,p_lot,p_dbs)  
#代码:s_actimg.4gl  或 s_actimg1.4gl   
# Input Parameter: p_item  料件編號      
#                  p_ware  倉庫號碼      
#                  p_loc   儲位號碼      
#                  p_lot   批次      
#                  p_dbs   資料庫代號      
# Return Code....: 0   該批號已過期      
#                  1   該批號未過期     
Demo:IF NOT s_actimg1(p_item,p_ware,p_loc,p_lot,p_dbs) ...  

 

转载请注明:赫非域 » TIPTOP 会计期间、日期区间函数