账表.二开案例.表头快捷搜索
【场景】账表表头快捷搜索
【方案】
(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)...
点击下载文档
上一篇:核算维度显示设置配置下一篇:业务审批流页面值获取,打开审批流列表插件
本文2024-09-16 18:13:04发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-20711.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章