TIPTOP ERP 如何编程单据别自动编码的应用

注:一下方法 TIPTOP GP 5.25版本上才是这个架构

01、所谓单据别自动编码:指的就是需要根据系统参数设定的自动编码方式来生成单据的流水规则

如采购单号、入库单号、工单号码..........

这里以一个实例代码来说明做【单据别自动编码】在一个程序中哪些地方要修改

ex:AAP应付系统 新 客制表 tc_oaa_file

tc_oaa01:单据别

tc_oaa02:单据日期

......

02、设定基础资料:单据别

TIPTOP ERP # Prog. Version..: '5.25.11-12.12.11(00010)'     #

     ①。先在单据别作业里面先随便新增一个单据别,然后数据后台修改单别的性质为一个现有系统不使用的单据性质

            ex:这里在应付单据别apy_file新增 单据性质为66的单据别PP66

     ②。修改数据库表doc_file单别的性质与上面第①步里面一样

     ③。aooi800(gee_file)维护新客制表的信息

03、客制编码应用

#_a()新增函数-------------------------------------------------------------------
FUNCTION xxx_a()......#INSERT之前CALL s_auto_assign_no()按编码规则生成单据编号CALL s_auto_assign_no("aap",g_tc_oaa.tc_oaa01,g_tc_oaa.tc_oaa02,"","tc_oaa_file","tc_oaa01","","","")RETURNING li_result,g_tc_oaa.tc_oaa01IF (NOT li_result) THENCONTINUE WHILEEND IFDISPLAY BY NAME g_tc_oaa.tc_oaa01INSERT INTO tc_oaa_file VALUES (g_tc_oaa.*)IF SQLCA.sqlcode THENCALL cl_err3("ins","tc_oaa_file",g_tc_oaa.tc_oaa01,"",SQLCA.sqlcode,"","",1)CONTINUE WHILEEND IF......
END FUNCTION#_i(p_cmd)输入单头信息(u/a)----------------------------------------------------
FUNCTION xxx_i(p_cmd)INPUT BY NAME g_tc_oaa.* .....BEFORE INPUT.......CALL cl_set_docno_format("tc_oaa01")  #格式化单据别栏位,中间有个 "-" 符号......    AFTER FIELD tc_oaa01        #主键keyIF NOT cl_null(g_tc_oaa.tc_oaa01)AND (g_tc_oaa.tc_oaa01 <> g_tc_oaa_t.tc_oaa01 OR cl_null(g_tc_oaa_t.tc_oaa01)) THEN   LET g_t1 = s_get_doc_no(g_tc_oaa.tc_oaa01)  #检查单据别是否存在                       CALL s_check_no("aap",g_tc_oaa.tc_oaa01,g_tc_oaa_t.tc_oaa01,"66","tc_oaa_file","tc_oaa01","")RETURNING li_result,g_tc_oaa.tc_oaa01DISPLAY BY NAME g_tc_oaa.tc_oaa01IF (NOT li_result) THENNEXT FIELD tc_oaa01END IFEND IF ......
END FUNCTION

注:因为GP5.10下的版本自动编码没有这种灵活的架构,一般根据公司编码规则硬编码

一下提供#GP5.10单据别自动编码应用的demo:

#单据别编码,类似系统标准的s_auto_assign_no()函数功能
FUNCTION xxxxa_auto_assign_no()DEFINE li_result     LIKE type_file.num5,l_tc_oaa001   LIKE tc_oaa_file.tc_oaa001DEFINE l_oayslip     LIKE oay_file.oayslip,       l_date        LIKE type_file.chr1000,      #日期l_cnt         LIKE type_file.num10,        #資料庫中該單別當前年月是否有產生單據l_max_cn      LIKE type_file.num10,        #資料庫中該單別當前年月最大的流水編號l_max_str     STRING,l_max_cn_chr  LIKE type_file.chr4,indx          LIKE type_file.num5,      l_wc          LIKE type_file.chr1000       #查單別QBELET l_oayslip = s_get_doc_no(g_tc_oaa.tc_oaa001)  #單據別LET l_date = g_todayLET l_date = l_date[1,2],l_date[4,5]     #依年月編碼LET l_wc=l_oayslip,'-',l_date,'%'LET li_result = 1SELECT COUNT(*) INTO l_cntFROM tc_oaa_fileWHERE tc_oaa001 LIKE l_wcIF SQLCA.sqlcode THENLET li_result = 0INITIALIZE l_tc_oaa001 TO NULLELSECASEWHEN SQLCA.sqlcode=0 AND l_cnt=0       #該單別當前年月未產生任何單據,則流水號碼別從0001開始LET l_tc_oaa001=l_oayslip,'-',l_date,'0001'   WHEN SQLCA.sqlcode=0 AND l_cnt>=1      #該單別當月已有單據存在,則流水號碼別自動+1SELECT MAX(substr(tc_oaa001,9,4)) INTO l_max_cn  #这里要注意下,假如单据是设定3码就是9,4码就是10,依此类推FROM tc_oaa_fileWHERE tc_oaa001 LIKE l_wc LET l_max_cn = l_max_cn+1LET l_max_str = l_max_cn USING "####"LET l_max_cn_chr = ''FOR indx = 1 TO l_max_str.getLength() STEP + 1IF cl_null(l_max_str.getCharAt(indx)) THENLET l_max_cn_chr = l_max_cn_chr CLIPPED,"0"ELSELET l_max_cn_chr = l_max_cn_chr CLIPPED,l_max_str.getCharAt(indx) CLIPPEDEND IFEND FORLET l_tc_oaa001 = l_oayslip CLIPPED,"-",l_date CLIPPED ,l_max_cn_chrOTHERWISELET li_result = 0INITIALIZE l_tc_oaa001 TO NULLEND CASEEND IFRETURN li_result,l_tc_oaa001
END FUNCTION

http://blog.csdn.net/yihuiworld

TIPTOP ERP 如何客制单据别自动编码的应用相关推荐

  1. 客制化PO单据模板(实例)

    [前言]今天研究了一整天的PO单据,终于让我开发出属于自己的单据样式,客户就可以用我开发的样式打印单据了.整个过程其实蛮简单的,是指因为自己刚开始摸索,又没有资料,根据前面的积累慢慢探究出来了.今天里 ...

  2. tiptop 编译运行_tiptop客制规范总结

    1 程序更改一定要先在toptest环境中更改,测试完毕后再搬到topprod环境. 2 标准区程序搬到客制区之前,务必检查p_zz中的链接档,在客制区是否已经存在,否则会导致程序的覆盖,资料的丢失. ...

  3. TIPTOP ERP系统用户可视化界面修改账号密码

    TIPTOP ERP系统用户可视化界面修改账号密码 客制一支作业p_pw,用于登录用户自行更改密码 --------------------华--------------------丽-------- ...

  4. 【Tiptop ERP】鼎新Tiptop ERP5.x 所有开发与管理维护 文章索引

    鼎新Tiptop ERP5.x所有客制开发与管理维护 文章索引 Tiptop ERP 5.x 基础应用 Tiptop ERP 5.x 客制开发 Tiptop ERP 5.x 管理与维护 ......

  5. 第三节:TIPTOP ERP系统成本问题集

    [第三节:TIPTOP ERP系统成本问题集] <1>      成本阶不在料件成本阶数设定作业(axcp012) 答:检查axcp012的成本阶数,检查axci020是否有这个成本阶数 ...

  6. linux erp 流程管理软件,TIPTOP ERP 之 AZZ整体系统管理

    AZZ模块:一般都是设置系统的一些特性 主要是与系统二次开发.权限管控等方面相关的信息 TIPTOP ERP 二次开发流程 这里不在重复描述,请直接点击查看这里TIPTOP ERP二次开发流程 p_q ...

  7. 客制化NVRAM的以太网地址

    在使用SN Write写Ethernet MAC过程中出现了以下的错误: ERROR!! Ethernet Mac:MetaResult = SPMETA_DLL::META_LID_INVALID. ...

  8. 客制化键盘键位修改_干电池 支持5设备无线连接 - 高斯ALT71机械键盘拆解评测...

    近一段时间,本人就感觉小型紧凑机械键盘键盘很火,这点我很意外,一直以来都是87键和104键的天下,怎么突然就很火热呢?我真的是LOW.小型紧凑型机械键盘种类很多,有60.61.64.66.67.68. ...

  9. 客制化键盘编程_指尖运动会,谁是打字冠军,双十一机械键盘推荐

    机械键盘就只能玩游戏吗?当然不是,其实机械键盘出现还远远早于薄膜键盘,早期类似IBM.AST.HP.康柏一类的品牌机都是标配机械键盘的.早期的机械键盘确实有点笨重,尤其是白轴的机械键盘,让你毕生难忘. ...

最新文章

  1. 一种注册表沙箱的思路、实现
  2. iOS内存管理策略和实践
  3. NYOJ 301 递推求值(矩阵快速幂)
  4. 牛客网 在线编程 局部最小值位置
  5. 使用jasmine.createSpyObj具有依赖关系的Angular服务进行单元测试
  6. Windows环境下多个tomcat启动,CATALINA_HOME配置(大坑)
  7. 曲线在三维空间的旋转计算以及Matlab实例实现
  8. 面试题27 二叉搜索树转换为双向链表
  9. 转:div中内容上下居中小结
  10. 【stm32学习】正点原子stm32f103学习——开发板入门
  11. 为什么let this=that
  12. SCIEI 英文PAPER投稿经验【转】
  13. 五一南京-无丝竹无案牍
  14. 清华大学计算机系刘斌,queueing刘斌,男,工学博士 ,清华大学计算机科学与技...
  15. 3060ti配什么cpu和主板
  16. Spring官方文档解读(五)之自定义 bean 的性质
  17. MongoDB-使用mongo/mongosh命令行连接数据库
  18. 将多个文件压缩成gzip,将gzip解压成多个文件
  19. 服装店经营管理有诀窍
  20. 欧式距离和曼哈顿距离

热门文章

  1. HTC Desire S刷kernel 2.3.5+sense3.0版的RUU后解锁和root
  2. 数字标牌创建内容的一些基本技巧
  3. LeetCode 岛屿数量
  4. MessageSolution企业邮件归档管理系统EEA信息泄露漏洞(cnvd-2021-10543)
  5. 微信公众号开发系列-网页授权获取用户基本信息
  6. 2010世界杯,我的Android之旅
  7. codevs——3111 CYD啃骨头(背包)
  8. 如何让淘宝店铺的商品能自动发货到旺旺
  9. C++的异常处理机制
  10. Android仿微信图片浏览