表单插件常用功能汇总原创
8人赞赏了该文章
605次浏览
编辑于2024年09月30日 16:56:21
摘要由AI智能服务提供
本文本主要分为两大部分。第一部分是关于编程的C#代码示例,具体展示了在自定义方法`BeforeF7Select`中如何根据字段键值`e.FieldKey`动态构建SQL查询条件,并应用于列表过滤器参数。此外,还列举了多个与界面控件(如字段、按钮)交互的操作,如获取焦点、锁定、隐藏、刷新等,以及对单据标题、内码、字段值的获取与设置方法。第二部分是数据库相关操作,如获取表的主键ID,以及针对单据体进行的如删除、新增、复制行、获取行内码、行数、当前索引行等操作的示例代码。整体概述了C#在软件开发中对UI交互及数据操作的一些典型处理方法。
有用
反馈
云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢
1.BeforeF7Select
/// <summary> /// 基础资料类字段数据过滤插件 /// </summary> /// <param name="e"></param> public override void BeforeF7Select(BeforeF7SelectEventArgs e) { base.BeforeF7Select(e); switch (e.FieldKey.ToUpperInvariant()) { case "F_PBQF_MATERIALID": str.Clear(); str.Append(string.Format(@" AND FMaterialId in (SELECT DISTINCT ORDE.FMaterialId FROM T_SAL_ORDER ORD INNER JOIN T_SAL_ORDERENTRY ORDE ON ORD.FID = ORDE.FID where ORD.FCustId={0})", 0)); e.ListFilterParameter.Filter = (e.ListFilterParameter.Filter == "" ? "1=1" : e.ListFilterParameter.Filter) + str.ToString(); break; } }
2.获取单据标题
string FormTitle = this.View.GetFormTitle();
3.获取单据内码
string FormTitle = this.View.Model.DataObject["Id"].ToString(); string FormTitle = this.View.Model.GetPKValue().ToString();
4.获取字段焦点
this.View.GetControl("FNote").SetFocus();
5.锁定字段
this.View.GetControl("FNote").Enabled = false;
6.隐藏字段
this.View.GetControl("FNote").Visible = false;
7.锁定保存按钮
this.View.GetMainBarItem("tbSplitSave").Enabled = false;
8.隐藏保存按钮
this.View.GetMainBarItem("tbSplitSave").Visible = false;
9.刷新
//前台刷新,不和服务器交互 this.View.UpdateView("FNote"); //整个页面刷新,要和服务器交互,把后台数据库数据刷新过来 this.View.Refresh();
10.调用保存操作
this.View.InvokeFormOperation("Save");
11.多选基础资料赋值
//定义数组,多个客户 object[] custs = new object[] { "300638", "322070", "454978" } //给数组赋值 this.View.Model.SetValue("F_YDIE_CustS", custs);
12.获取字段值
参数:String 字段唯一标识 返回值:object 对象 this.View.Model.GetValue("字段唯一标识");
13.给字段赋值
参数:String 字段唯一标识 返回值:void this.View.Model.SetValue("字段唯一标识");
14.获取基础资料字段的ID
参数:String 字段唯一标识 返回值:Int int id = Convert.ToInt32((this.View.Model.GetValue("") as DynamicObject)["Id"]);
15.获取基础资料字段的编码
参数:String 字段唯一标识 返回值:String (this.View.Model.GetValue("") as DynamicObject)["Number"].ToString();
16.获取基础资料字段的名称
参数:String 字段唯一标识 返回值:String (this.View.Model.GetValue("") as DynamicObject)["Name"].ToString();
17.获取单据状态
this.View.OpenParameter.Status == OperationStatus.ADDNEW //单据是新增 this.View.OpenParameter.Status == OperationStatus.EDIT //单据是修改 this.View.OpenParameter.Status == OperationStatus.VIEW //单据是查看
18.获取单据来源
this.View.OpenParameter.CreateFrom == CreateFrom.Push //由下推生成 this.View.OpenParameter.CreateFrom == CreateFrom.Copy //由拷贝生成 this.View.OpenParameter.CreateFrom == CreateFrom.Draw //由选单生成 this.View.OpenParameter.CreateFrom == CreateFrom.Defualt //由正常方式生成 this.View.OpenParameter.CreateFrom == CreateFrom.WorkFlow //由审批流生成
19.删除单据体信息
this.View.Model.DeleteEntryData("FSaleOrderEntry");
20.刷新单据体界面
this.View.UpdateView("FSaleOrderEntry");
21.逐行,删除单据体分录,0代表第1行
this.View.Model.DeleteEntryRow("FSaleOrderEntry", 0);
22.新增行
this.View.Model.CreateNewEntryRow("FSaleOrderEntry");
23.复制行
参数说明: 0代表第1行; 1代表复制到第2行; false代表不携带源单关系 this.View.Model.CopyEntryRow("FSaleOrderEntry", 0, 1, false);
24.获取单据体行内码
this.View.Model.GetEntryPKValue("FSaleOrderEntry", 0); this.View.Model.GetEntryPKValue("FSaleOrderEntry", 1); this.View.Model.GetEntryPKValue("FSaleOrderEntry", 2);
25.获取单据体,行数
this.View.Model.GetEntryRowCount("FSaleOrderEntry");
26.获取单据体当前索引行
int index = this.View.Model.GetEntryCurrentRowIndex("单据体唯一标识");
27.设置单据体行前景色
/// <summary> /// 设置单据体行前景色 /// </summary> /// <param name="entryKey">单据体唯一标识</param> /// <param name="feildKey">字段体唯一标识</param> /// <param name="color">颜色(#FFFF00)</param> /// <param name="rowIndex">第几行</param> private void SetForecolor(string entryKey,string feildKey,string color,int rowIndex) { EntryGrid grid = this.View.GetControl<EntryGrid>(entryKey); grid.SetRowBackcolor(color, 0);//设置行背景颜色 grid.Enabled = false;//将单据体设置为不可编辑状态 grid.SetForecolor(feildKey, "#000000", rowIndex); }
28.插件获取表的主键
long seqId = DBServiceHelper.GetSequenceInt64(Context, "FA_CHANGE", 1).FirstOrDefault() + 1;
赞 8
8人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!