表单插件常用方法原创
金蝶云社区-比邻星
比邻星
3人赞赏了该文章 54次浏览 未经作者许可,禁止转载编辑于2024年09月28日 11:39:23
summary-icon摘要由AI智能服务提供

本文本主要描述了在一个软件开发环境中,特别是在使用某种特定框架或库时,对界面元素(如表单、字段、按钮等)进行操作的方法。包括了过滤基础资料类字段数据、获取和设置表单标题、内码、字段焦点、锁定或隐藏字段及按钮、刷新视图、调用保存操作、多选基础资料赋值、获取和设置字段值、以及获取基础资料字段的ID、编码、名称等操作。此外,还涉及了处理单据体信息(如删除、刷新、新增、复制行、获取行内码和行数、设置前景色等)的方法。文本中还包括了插件获取表的主键的方法,展示了与数据库交互的一种方式。整体而言,文本详细描述了与表单操作、数据处理和界面元素控制相关的多种方法和技巧。


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;


赞 3