动态表单实现查询绑定数据原创
金蝶云社区-Howhy
Howhy
3人赞赏了该文章 677次浏览 未经作者许可,禁止转载编辑于2022年08月30日 10:44:23

案例场景:

   本文实现了一个动态表单添加按钮和文本字段后,实现点击按钮查询文本关键字的数据逻辑。

具体代码如下,实际BOS IDE设计包含一个按钮、一个文本和一个单据体,没有列出具体的设计截图


 public class SearchDataByDynamicForm : AbstractDynamicFormPlugIn
    {

        public override void ButtonClick(ButtonClickEventArgs e)
        {
            //点击查询按钮
            if (e.Key == "btnSearch")
            {
                Search();
            }
        }

        public override void AfterBindData(EventArgs e)
        {
            Bind();
        }


        private void Search()
        {
            Bind();
        }

        private void Bind()
        {
            //获取查询值,文本框的key=FSearchVal
            string materialNum = this.Model.GetValue("FSearchVal").ToString();

            //通过SQL查询对应的数据,也可以通过接口load数据
            string strSql = string.Format(@"
                        SELECT
                         T1.FNUMBER,T1.FMATERIALID
                         FROM  T_BD_MATERIAL T1
                         WHERE T1.FNUMBER  LIKE '%{0}%'", materialNum);
            var entryData = DBServiceHelper.ExecuteDataSet(this.View.Context, strSql);
            if (entryData == null || entryData.Tables[0].Rows.Count == 0) return;

            //绑定单据体数据
            for (int i = 0; i < entryData.Tables[0].Rows.Count; i++)
            {
                this.Model.CreateNewEntryRow("FENTITY");
                var dr = entryData.Tables[0].Rows[i];

                var number = dr["FNUMBER"] ?? string.Empty;
                this.Model.SetValue("FNUMBER", number, i);

                var id = dr["FMATERIALID"] ?? 0;
                this.Model.SetValue("FMATERIALID", id, i);

            }

            this.View.UpdateView("FENTITY");
        }
    }


赞 3