常用表单插件
获取单据标题 this.View.GetFormTitle()
获取表单Fid内码,this.View.Model.DataObject["id"] 或者 this.View.Model.GetPKValue
设置焦点,this.View.GetControl().SetFocus()
例如设置了必录项,没填,自动跳转到必录项上面,判断哪些值没有录入
锁定、隐藏字段,this.View.GetControl()
字段锁定,变成灰色 this.View.GetControl("字段标识").Enabled = false;
单据体行锁定字段 this.View.GetFieldEditor("单据体行字段标识",0).Enabled = false;
隐藏备注字段 this.View.GetControl("字段标识").Visible = false;
锁定、隐藏按钮,this.View.GetMainBarItem()
锁定保存按钮 this.View.GetMainBarItem("tbSplitSave").Enabled = false;
隐藏保存按钮 this.View.GetMainBarItem("tbSplitSave").Visible = false;
前台刷新,不和服务器交互 this.View.UpdateView("字段标识");
整个页面刷新,要和服务器交互,把后台数据库数据刷新过来 this.View.Refresh();
调用表单事件,this.View.InvokeFormOperation()
调用保存 this.View.InvokeFormOperation("Save");
public class ClassName:AbstractBillPlugIn
public override void BarItemClick(BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)
//条件判断,当点击YDIE_ tbGetSetValue这个按钮时候触发
if(e.BarItemKey =="YDIE_tbGetSetValue")
//获取单据标题 this.View.GetFormTitle()
//string FormTitle = this.View.GetFormTitle();
//this.View.Model.SetValue("FNote", FormTitle);
//string FormTitle = this.View.Model.DataObject["Id"].ToString();
//this.View.Model.SetValue("FNote", FormTitle);
//string FormTitle = this.View.Model.GetPKValue().ToString();
//this.View.Model.SetValue("FNote", FormTitle);
//this.View.GetControl("FNote").SetFocus();
//this.View.GetControl("FNote").Enabled = false;
//this.View.GetFieldEditor("FEntryNote",0).Enabled = false;
//this.View.GetControl("FNote").Visible = false;
//this.View.GetMainBarItem("tbSplitSave").Enabled = false;
//this.View.GetMainBarItem("tbSplitSave").Visible = false;
this.View.InvokeFormOperation("Save");
删除单据体 this.View.Model.DeleteEntryData("单据体标识");
删除某行单据体,0代表第1行 this.View.Model.DeleteEntryRow("单据体标识", 0);
单据体新增行 this.View.Model.CreateNewEntryRow("单据体标识");
复制行 this.View.Model.CopyEntryRow("单据体标识", 0, 1, false); (参数说明: 0代表第1行; 1代表复制到第2行; false代表不携带源单关系)
获取单据体行id this.View.Model.GetEntryPKValue("FSaleOrderEntry", 0);
获取单据体行数 this.View.Model.GetEntryRowCount("FSaleOrderEntry");
public class ClassName:AbstractBillPlugIn
public override void EntryBarItemClick(BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)
//if条件判断,当点击YDIE_tbTest这个按钮时候触发
if(e.BarItemKey.Equals("YDIE_tbTest"))
//this.View.Model.DeleteEntryData("FSaleOrderEntry");
//this.View.Model.DeleteEntryRow("FSaleOrderEntry", 0);
//this.View.Model.CreateNewEntryRow("FSaleOrderEntry");
//参数说明: 0代表第1行; 1代表复制到第2行; false代表不携带源单关系
//this.View.Model.CopyEntryRow("FSaleOrderEntry", 0, 1, false);
//this.View.Model.GetEntryPKValue("FSaleOrderEntry", 0);
//this.View.Model.GetEntryPKValue("FSaleOrderEntry", 1);
//this.View.Model.GetEntryPKValue("FSaleOrderEntry", 2);
//赋值this.View.Model.SetValue();获取行的内码,赋值给新增的字段F_YDIE_EntryID
//this.View.Model.SetValue("F_YDIE_EntryID", this.View.Model.GetEntryPKValue("FSaleOrderEntry", 0),0);
//this.View.Model.SetValue("F_YDIE_EntryID", this.View.Model.GetEntryPKValue("FSaleOrderEntry", 1),1);
//this.View.Model.SetValue("F_YDIE_EntryID", this.View.Model.GetEntryPKValue("FSaleOrderEntry", 2),2);
//this.View.Model.GetEntryRowCount("FSaleOrderEntry");
this.View.Model.SetValue("FNote", this.View.Model.GetEntryRowCount("FSaleOrderEntry"));
this.View.UpdateView("FSaleOrderEntry");
选择基础资料值前触发 BeforeF7Select事件(一般用来为基础资料添加过滤)
数据绑定后插件:单据新增、编辑、查询后的最后一个事件:AfterBindData
判断:this.View.OpenParameter.Status.Equals(OperationStatus.ADDNEW)
Context属性,上下文,记录一些公用的信息,比如当前登陆用户、组织、连接的数据库、区域等等信息
执行sql返回影响行数:ExecuteSql(DBUtils.Execute(this.Context, "/*dialect*/update T_SAL_OUTSTOCKENTRY set FNOTE ='测试'");)
执行sql语句返回DataSet DataSet(一般用于报表查询)
DataTable dt = DBUtils.ExecuteDataSet(this.Context,
"/*dialect*/select FMATERIALID,FNumber from T_BD_MATERIAL").Tables[0];
for(int i =0; i<dt.Rows.Count;i++)
this.View.Model.CreateNewEntryRow("FEntity");
this.View.Model.SetValue("FMaterialId", dt.Rows[i]["FMATERIALID"].ToString(), i);
this.View.InvokeFieldUpdateService("FMaterialID", i);
this.View.Model.SetValue("FEntrynote", dt.Rows[i]["FNumber"].ToString(), i);
DataTable,Tables[0] 操作数据库,读取第一张表,赋值给dt
执行sql语句返回 IEnumerable<IDataRecord> ExecuteEnumerable
IEnumerable<IDataRecord> itemDataTable = DBUtils.ExecuteEnumerable(this.Context,
"/*dialect*/select FMATERIALID,FNumber from T_BD_MATERIAL");
foreach(IDataRecord drItem in itemDataTable)
this.View.Model.CreateNewEntryRow("FEntity");
this.View.Model.SetValue("FMaterialID", drItem["FMATERIALID"].ToString(), i);
this.View.InvokeFieldUpdateService("FMaterialID", i);
this.View.Model.SetValue("FEntrynote", drItem["FNumber"].ToString(), i);
执行sql语句,返回DynamicObjectCollection ExecuteDynamicObject()
DynamicObjectCollection Dyobj = DBUtils.ExecuteDynamicObject(this.Context,
"/*dialect*/select FMATERIALID,FNumber from T_BD_MATERIAL");
foreach(DynamicObject obj in Dyobj)
this.View.Model.CreateNewEntryRow("FEntity");
this.View.Model.SetValue("FMaterialID", obj["FMATERIALID"].ToString(), j);
this.View.InvokeFieldUpdateService("FMaterialID", j);
this.View.Model.SetValue("FEntrynote", obj["FNumber"].ToString(), j);
//定义一个字段,新建一个listShowParameter实例
ListShowParameter listShowParameter = new ListShowParameter();
//FormId你要调用那个单据的列表,通过打开未扩展的销售订单,找到唯一标识
listShowParameter.FormId = "SAL_SaleOrder";
listShowParameter.IsLookUp = true;
listShowParameter.ListType = Convert.ToInt32(BOSEnums.Enu_ListType.BaseList);
listShowParameter.ListType = Convert.ToInt32(BOSEnums.Enu_ListType.List);
//是否显示复选框。默认是true,如果false就是不显示
listShowParameter.MultiSelect = false;
//this.View.ShowForm(listShowParameter);
this.View.ShowForm(listShowParameter,delegate(FormResult result)
object returnData = result.ReturnData;
if(returnData is ListSelectedRowCollection)
ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
if(listSelectedRowCollection !=null)
DynamicObjectDataRow datarow = (DynamicObjectDataRow)listSelectedRowCollection[0].DataRow;
this.View.Model.SetValue("F_YDIE_Text6", datarow.DynamicObject["FID"].ToString());
this.View.Model.SetValue("F_YDIE_Text61", datarow.DynamicObject["FBillNo"].ToString());
this.View.Model.SetValue("F_YDIE_Text62", datarow.DynamicObject["FDate"].ToString());
JSONObject webobj = new JSONObject();
webobj["source"] = @"http://www.baidu.com";
this.View.AddAction("ShowKDWebbrowseForm", webobj);