您的位置:首页 > 资讯

金碟ERP二次开发:简单帐表添加字段

日期:2024-09-10 15:10    点击:36

1. 编写插件


登陆 BOS 找到帐表对应的服务器插件的类型,编写插件继承于该类型,并重写其BuilderReportSqlAndTempTableGetReportHeaders

示例代码如下:

 /// <summary>
    /// 物料收发明细报表
    /// </summary>
    [Description("物料收发明细表扩展"), HotUpdate]
    public class MaterialReceiveSendDetailsReport : StockDetailRpt
    {
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            // 调用标准版本的查询数据
            string middleTableName = "_" + tableName.Substring(1);
            base.BuilderReportSqlAndTempTable(filter, middleTableName);
            // 将需要扩展的字段查出,并写入账表关联的数据表
            string strSql = $@"select A.*,
                        1 as FPurchaseAmount,
                        1 as FPurchasePrice,
                        1 as FTaxRate,
                        1 as FFactoryNo
                        into {tableName} from {middleTableName} as A";
            DBServiceHelper.Execute(this.Context, strSql);
            // 删除临时表
            string dropSql = "DROP TABLE " + middleTableName;
            DBServiceHelper.Execute(this.Context, dropSql);
        }

        public override ReportHeader GetReportHeaders(IRptParams filter)
        {
            ReportHeader header = base.GetReportHeaders(filter);
            header.AddChild("FPurchaseAmount", new LocaleValue("采购金额"));
            header.AddChild("FPurchasePrice", new LocaleValue("采购单价"));
            header.AddChild("FTaxRate", new LocaleValue("采购税率"));
            header.AddChild("FFactoryNo", new LocaleValue("工厂货号"));
            return header;
        }
    }
}


需注意:

- 临时表的表名长度不能大于 30,默认表以 TMP 开头,长度为 30
- 在删除临时表前,可调试断点,查看临时表的数据

2. 扩展帐表


查找要添加字段的帐表,点击批量编辑属性,将插件注册到服务器插件,并反注册默认的插件,并保存。

3. 扩展过滤框


注册帐表的二开插件后,查询结果中仍然无法看到二开添加的字段,我们需要在扩展过滤框,在显示隐藏列中加入扩展的字段。点开字段集合,添加自定义字段,字段的标识与列名相匹配。

如果是查表里自带的字段,选择基本资料属性即可,该字段会默认加入到`SELECT`中。

如果字段为二开自行实现的取数查询,字段应根据实际情况选择:文本,金额,折扣率等。

4. 发布更新


将编译后的插件复制到应用户程序 bin 目录下,并重启 IIS.


售前客服
咨询电话
点击查看联系方式