
【场景】账表表头快捷搜索
【方案】
(0)准备二开账表和过滤界面逻辑

(1)账表表头增加快捷过滤字段、查询按钮


(2)表单插件逻辑,点击按钮时把界面的数据录入到过滤参数中,然后刷新账表;同时处理表头控件解锁和绑定的逻辑


```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.Object2S