总账账龄分析表二开——增加客户按“关联公司”过滤及显示“关联公司”列
背景需求
关联公司作为客户,在出账龄时,有时候希望排除在账龄核销范围之外,即不参与账龄核销。同时,当关联公司参与核销时,能在查询结果中标示出来,以便财务人员区分。
主要思路
1,在客户表中增加一列“是否关联公司”,用于标示客户的身份。
2,过滤条件界面,增加一个选项:客户维度关联公司不参与核销(默认不勾选,表示参与);在显示隐藏列增加一列:“是否关联公司”,用于当参与核销时,在最终查询结果表中显示。
3,查询时,当核算维度为客户时,如果“客户维度关联公司不参与核销”不勾选,则按原有逻辑处理,但在结果中需要显示“是否关联公司”一列。否则,在主取数SQL条件上增加“不等于关联公司”这一过滤条件,以便排除关联公司。这样便达到了关联公司不参与核销的效果。
详细步骤
1,客户表中增加一列“是否关联公司”,略
2,显示隐藏表中增加列:如下图所示:
3,快捷条件中,增加选项:客户维度关联公司不参与核销(默认不勾选,表示参与)。当选择的核算维度中有客户时,该选项才可用,否则不可用且不勾选。当勾选时,显示隐藏列中的“是否有关联公司”取消勾选,反之,勾选。
4,插件开发,这是二开的核心,
1)插件类继承官方原插件类,如: public class AgingScheduleForABC : AgingScheduleReportService,作为服务端插件,挂在“总账账龄分析表”的服务器插件上,需要同时取消官方原插件,否则会重复。
2)在插件中取“客户维度关联公司不参与核销”选项的值,以便后面使用。
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { //快捷过滤条件 DynamicObject dyFilterobj = filter.FilterParameter.CustomFilter; if (dyFilterobj != null) { if (dyFilterobj.Contains("PriorityStartDate")) { //是否关联公司不参与核销 filterIsAffiliate = Convert.ToBoolean(dyFilterobj["IsAffiliate"]); } } //继续执行父类的方法 base.BuilderReportSqlAndTempTable(filter, tableName); }
3)当勾选“客户维度关联公司不参与核销”时,在取数SQL中添加过滤条件
public override string BuilderBaseDataSql() { //父类生成的SQL。 var strSql = base.BuilderBaseDataSql(); if(包含客户 && !filterIsAffiliate) { return 取strSql的条件,并拼接“ AND 是否关系公司=‘N’”//难点,需要仔细研究父类生成的SQL,并恰当的增加新条件。 } }
4)如果勾选了显示隐藏列中的“是否有关联公司”,则在结果中显示“是否有关联公司”列
public override ReportHeader GetReportHeaders(IRptParams filter) { var header = base.GetReportHeaders(filter); //添加表头列 List<ColumnField> fields = filter.FilterParameter.ColumnInfo; for (int i = 0, j = 0; i < fields.Count; i++) { ColumnField field = fields[i]; switch (field.Key.ToUpperInvariant()) { case "是否关系公司ID": //添加是否关系公司列 header.AddChild(field.Key,"是否关系公司", SqlStorageType.Sqlnvarchar, field.Visible).ColIndex = j++; break; } } return header; }
老师,总账账龄分析表,后续有没有考虑添加坏账准备计算的逻辑?相当一部分客户是根据总账账龄计提坏账而不是往来模块
大牛,收藏下,能发下示例代码吗?
总账账龄分析表二开——增加客户按“关联公司”过滤及显示“关联公司”列
本文2024-09-16 17:38:15发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-16983.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf