表单插件常用功能汇总原创
金蝶云社区-比邻星
比邻星
8人赞赏了该文章 605次浏览 未经作者许可,禁止转载编辑于2024年09月30日 16:56:21
summary-icon摘要由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人打赏
还没有人打赏,快来当第一个打赏的人吧!