案例场景:
本文实现了一个动态表单添加按钮和文本字段后,实现点击按钮查询文本关键字的数据逻辑。
具体代码如下,实际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");
}
}