二开学习1-1简单账表原创
金蝶云社区-小赖同学呀
小赖同学呀
81人赞赏了该文章 833次浏览 未经作者许可,禁止转载编辑于2024年06月05日 10:36:42

原帖来自林大的插件实操文章:【新手入门】插件实操【分享汇总】 我这里缺少了报表界面抬头获取对应过滤框的值显示还没有弄,以及单据联查我会在后面继续完善image.png

1.新增空白的简单账表以及对应的公共过滤框 image.png

根据自己的需求构建过滤框的字段以及排序等,这里注意过滤框字段的标识要保持和代码一致 并且将过滤框的唯一标识绑定在简单账表的过滤窗口对象 image.png

2.模拟自己需要展示的数据,构造处理数据源,都是系统的标准字段,若是不嫌弃可以直接套用 image.png

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中的过滤字段的标识一致 image.png


(2)代码动态创建的列标题,由于我自己重写了sql按照自己的需求展示的,这一部分我替换了自己的字段和标题等,关于报表展示的列可以由代码动态创建,也可以去简单账表拖拉字段

image.png

(3)添加了自己需要的汇总字段

image.png

(4)sql段都替换成了自己构造的sql

image.png

(5)剩下的基本上都是替换成自己的字段标识和稍微修改一点自己需要的

4.代码写完后编译注册到简单账表的服务插件

image.png

5.保存后发布到前台看效果
image.png

image.png

image.png

图标赞 81
81人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!