二开学习1-1简单账表原创
81人赞赏了该文章
833次浏览
编辑于2024年06月05日 10:36:42
我这里缺少了报表界面抬头获取对应过滤框的值显示还没有弄,以及单据联查我会在后面继续完善
1.新增空白的简单账表以及对应的公共过滤框
根据自己的需求构建过滤框的字段以及排序等,这里注意过滤框字段的标识要保持和代码一致 并且将过滤框的唯一标识绑定在简单账表的过滤窗口对象
2.模拟自己需要展示的数据,构造处理数据源,都是系统的标准字段,若是不嫌弃可以直接套用
SELECT DD.单据内码, DD.订单编号, DD.供应商编码, DD.供应商, DD.采购日期, DD.采购部门, DD.采购员, DD.分录内码, DD.行号, DD.物料编码, DD.物料名称, DD.采购数量, DD.含税单价, DD.价税合计, RK.累计入库数量, RK.剩余入库数量, RK.入库退料数量 FROM ( SELECT TPR.FID 单据内码, TPR.FBILLNO 订单编号, TBS.FNUMBER 供应商编码, TBSL.FNAME 供应商, CONVERT(date, TPR.FDATE) 采购日期, TBDL.FNAME 采购部门, VBBL.FNAME 采购员, TPRE.FENTRYID 分录内码, TPRE.FSEQ 行号, TBM.FNUMBER 物料编码, TBML.FNAME 物料名称, TPRE.FQTY 采购数量, TPRF.FTAXPRICE 含税单价, TPRF.FALLAMOUNT 价税合计 FROM T_PUR_POORDER TPR LEFT JOIN T_PUR_POORDERENTRY TPRE ON TPR.FID = TPRE.FID LEFT JOIN T_PUR_POORDERENTRY_F TPRF ON TPRE.FENTRYID = TPRF.FENTRYID LEFT JOIN t_BD_Supplier TBS ON TPR.FSUPPLIERID = TBS.FSupplierId LEFT JOIN t_BD_Supplier_L TBSL ON TBS.FSupplierId = TBSL.FSupplierId AND TBSL.FLOCALEID = '2052' LEFT JOIN t_org_organizations_l TOOL ON TPR.FPURCHASEORGID = TOOL.FORGID AND TOOL.FLOCALEID = '2052' LEFT JOIN T_BD_DEPARTMENT_L TBDL ON TPR.FPURCHASEDEPTID = TBDL.FDEPTID AND TBDL.FLOCALEID = '2052' LEFT JOIN V_BD_BUYER VBB ON TPR.FPURCHASERID = VBB.FID LEFT JOIN V_BD_BUYER_L VBBL ON VBB.FID = VBBL.FID AND VBBL.FLocaleId = '2052' LEFT JOIN T_BD_MATERIAL TBM ON TPR.FMODIFIERID = TBM.FMATERIALID LEFT JOIN T_BD_MATERIAL_L TBML ON TBM.FMATERIALID = TBML.FMATERIALID AND TBML.FLOCALEID = '2052' )DD LEFT JOIN ( --采购入库单 SELECT RKD.订单分录内码, RKD.订单数量, RKD.累计入库数量, CASE WHEN RKD.累计入库数量 > RKD.订单数量 THEN '0' ELSE RKD.订单数量 - RKD.累计入库数量 END AS 剩余入库数量, RKTLD.入库退料数量 FROM ( SELECT TSIE.FENTRYID 入库分录内码, TSIE.FPOORDERENTRYID 订单分录内码, SUM(TSIE.FREALQTY) 累计入库数量, TPRE.FQTY 订单数量 FROM T_STK_INSTOCKENTRY TSIE LEFT JOIN T_PUR_POORDERENTRY TPRE ON TSIE.FPOORDERENTRYID = TPRE.FENTRYID GROUP BY TSIE.FENTRYID, TSIE.FPOORDERENTRYID, TPRE.FQTY )RKD LEFT JOIN ( SELECT SUM(TPME.FRMREALQTY) 入库退料数量, TPMLK.FSID 入库分录内码 FROM T_PUR_MRBENTRY TPME LEFT JOIN T_PUR_MRBENTRY_LK TPMLK ON TPME.FENTRYID = TPMLK.FENTRYID GROUP BY TPMLK.FSID )RKTLD ON RKD.入库分录内码 = RKTLD.入库分录内码 )RK ON DD.分录内码 = RK.订单分录内码
3.编写代码我这里基于林大改动了几点
(1)构造的过滤条件根据自己的字段标识重新绑定,保持和BOS中的过滤字段的标识一致
(2)代码动态创建的列标题,由于我自己重写了sql按照自己的需求展示的,这一部分我替换了自己的字段和标题等,关于报表展示的列可以由代码动态创建,也可以去简单账表拖拉字段
(3)添加了自己需要的汇总字段
(4)sql段都替换成了自己构造的sql
(5)剩下的基本上都是替换成自己的字段标识和稍微修改一点自己需要的
4.代码写完后编译注册到简单账表的服务插件
赞 81
81人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!