账表.二开案例.表头快捷搜索

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

账表.二开案例.表头快捷搜索

【场景】账表表头快捷搜索 【方案】 (0)准备二开账表和过滤界面逻辑 ![image.webp](/download/0100d07d0169183e4ec48facce907072a678.webp) (1)账表表头增加快捷过滤字段、查询按钮 ![image.webp](/download/01005e67c3c551af4f52aee04191692c5cf6.webp) ![image.webp](/download/0100d30f591580ec47d89957b6f7bcc4895e.webp) (2)表单插件逻辑,点击按钮时把界面的数据录入到过滤参数中,然后刷新账表;同时处理表头控件解锁和绑定的逻辑 ![image.webp](/download/01001a9a3e893c4d4721a0f480155d30b121.webp) ![image.webp](/download/01002be151bf0dd44b59befe508ecd232cc6.webp) ```chsarp using Kingdee.BOS.App.Data; using Kingdee.BOS.Contracts.Report; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; using Kingdee.BOS.Core.Report; using Kingdee.BOS.Core.Report.PlugIn; using Kingdee.BOS.Web.DynamicForm; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DynamicFormPlugIn.Report { [Kingdee.BOS.Util.HotUpdate] [System.ComponentModel.Description("账表服务插件")] public class ReportServicePlugIn_QuickSearch : SysReportBaseService { public override ReportHeader GetReportHeaders(IRptParams filter) { ReportHeader rptHeader = new ReportHeader(); rptHeader.AddChild("FIDENTITYID", new Kingdee.BOS.LocaleValue("序号")); rptHeader.AddChild("FBILLNO", new Kingdee.BOS.LocaleValue("单据编号")); rptHeader.AddChild("FMATERIALNUMBER", new Kingdee.BOS.LocaleValue("物料编码")); return rptHeader; } public override ReportTitles GetReportTitles(IRptParams filter) { var rptTitles = new ReportTitles(); if (filter == null || filter.FilterParameter == null || filter.FilterParameter.CustomFilter == null) return rptTitles; string materialPrefix = Kingdee.BOS.Util.ObjectUtils.Object2String(filter.FilterParameter.CustomFilter["FMaterialPrefix"]); rptTitles.Add(new ReportTitle("FMaterialPrefix", materialPrefix)); return rptTitles; } public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { StringBuilder stringBuilder = new StringBuilder(); KSQL_SEQ = string.Format(KSQL_SEQ, "FBILLNO"); stringBuilder.AppendFormat(@"select bill.FID, bill.FBillNo as FBILLNO, wl.fnumber as FMATERIALNUMBER, {0} into {1} from t_pur_poorder bill left join t_pur_poorderentry entry on bill.fid = entry.fid left join t_bd_material wl on entry.fmaterialid = wl.fmaterialid where fbillno <> ' ' and bill.FDOCUMENTSTATUS = 'C' ", KSQL_SEQ, tableName); string materialPrefix = Kingdee.BOS.Util.ObjectUtils.Object2String(filter.FilterParameter.CustomFilter["FMaterialPrefix"]); if (materialPrefix != null && materialPrefix.Length > 0) { stringBuilder.AppendFormat(" and wl.fnumber like '{0}%'", materialPrefix); } DBUtils.Execute(this.Context, stringBuilder.ToString()); } } [Kingdee.BOS.Util.HotUpdate] [System.ComponentModel.Description("账表表单插件")] public class ReportFormPlugIn_QuickSearch : AbstractSysReportPlugIn { public override void ButtonClick(ButtonClickEventArgs e) { if (string.Equals(e.Key, "fbtnSearch", StringComparison.OrdinalIgnoreCase)) { (Model as ISysReportModel).FilterParameter.CustomFilter["FMaterialPrefix"] = Model.GetValue("FMaterialPrefix"); View.Refresh(); } } public override void AfterBindData(EventArgs e) { //查询完成后,默认会将表头上的控件设为只读。因此需重写AfterBindData事件,再将控件设为可编辑,否则无法修改查询条件 ReportTitles titles = (Model as ISysReportModel).ReportTitles; if (titles != null) { foreach (ReportTitle title in titles) { Control ctrl = ((AbstractDynamicWebFormView)this.View).TryGetControl(title.TitleKey); if (ctrl == null) { continue; } string strValue = title.TitleValue; //只读的表头控件设为可编辑 ctrl.Enabled = true; //过滤框中的查询条件同步到表头上 this.Model.SetValue(title.TitleKey, strValue); base.AfterBindData(e); } } } } } ``` 【效果】 ![20240104 2000.webp](/download/01005cd9efc0d9914094a8fa997ef151b652.webp)

账表.二开案例.表头快捷搜索

【场景】账表表头快捷搜索【方案】(0)准备二开账表和过滤界面逻辑![image.webp](/download/0100d07d0169183e4ec48facce907072a678.webp)(1)...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息