金蝶云星空之表单插件的开发

54次阅读

共计 14982 个字符,预计需要花费 38 分钟才能阅读完成。

前言:

学习金蝶软件过程中学习到的东西,做总结,方便日后查阅!

新建开发解决方案、调试与值监视

\1. 新建解决方案。

名称空间:命名要求表达准确,无歧义

\2. 断点调试。

\3. 值监控。

FCustomerID

this.View.Model.GetValue(“FCustomerID”)

表单插件的赋值与取值 GetValue 和 SetValue

引用 using Kingdee.BOS.Core.Bill.PlugIn;

this.View.Model.SetValue this.View.Model.GetValue

– 插件说明 [Description(“ 表单插件 ”)]

– 热启动 [Kingdee.BOS.Util.HotUpdate]

单据体取值和赋值 GetValue 和 SetValue

表单插件

引用 using Kingdee.BOS.Core.Bill.PlugIn;

this.View.Model.SetValue this.View.Model.GetValue

– 插件说明 [Description(“ 表单插件 ”)]

– 热启动 [Kingdee.BOS.Util.HotUpdate]

– 调用值更新事件 this.View.InvokeFieldUpdateService

表单插件的常用方法

常用的表单插件属性

this.View.GetFormTitle()—— 获取单据标题

this.View.Model.DataObject[“Id”]— 获取表单 Fid

this.View.Model.GetPKValue— 获取表单 Fid

this.View.GetControl(“F_PAEZ_Remarks “).SetFocus()——- 设置焦点

this.View.GetControl(“F_PAEZ_Remarks”).Enabled = false; —- 锁定字段

this.View.GetFieldEditor(“F_PAEZ_Remarks “, 0).Enabled = false;—- 单据体行锁定字段

this.View.GetControl(“F_PAEZ_Remarks”).Visible = false; —- 隐藏字段

this.View.GetMainBarItem(“tbSave”).Enabled = false;—- 锁定按钮

this.View.GetMainBarItem(“tbSave”).Visible = false;—- 隐藏按钮

this.View.UpdateView(“F_SB_SumOutAmount”) 前台刷新,不和服务器交互。

this.View.Refresh—- 整个页面刷新,要和服务器交互,把后台数据库数据刷新过来

this.View.InvokeFormOperation(“Save”)— 调用表单事件


常用的单据体属性插件

this.View.Model.DeleteEntryData(“FEntity”);– 删除单据体信息

this.View.Model.DeleteEntryRow(“FEntity”,0);– 删除单据体信息

this.View.Model.CreateNewEntryRow(“FEntity”);- 创建新行

this.View.Model.CopyEntryRow(“FEntity”,0,1,false);– 复制一行。

this.View.Model.GetEntryPKValue(“FEntity”, 0);– 获取单据体 FENTRYID 内码

this.View.Model.GetEntryRowCount(“FEntity”)— 获取单据体行数。

表单插件的常用提示框

常用的提示信息框

\1.

this.View.ShowMessage(“ 你好 ”);

\2.

this.View.ShowErrMessage(“ 错误信息提示 ”);

\3.

引用 using Kingdee.BOS.Core.DynamicForm;

this.View.ShowMessage(“ 信息提示?”,

MessageBoxOptions.YesNo, new Action<MessageBoxResult>((result) =>

{

if (result == MessageBoxResult.Yes)

{

}

else if (result == MessageBoxResult.No)

{

return;

}

}));

提示信息:

终止、重试、忽略

是、否、取消

\4. 警告

this.View.ShowWarnningMessage(“ 不能对其进行操作,请确认。”, action:(result) =>
{
this.View.Close();
});

表单插件之常用事件

BarItemClick 点击事件

public override void BarItemClick(Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)

  1. e.BarItemKey 方法
  2. e.Cancel 方法

BeforeSave 点击事件

public override void BeforeSave (Core.DynamicForm.PlugIn.Args.BeforeSaveEventArgs e)

\1.   e.Cancel 方法

AfterSave 点击事件

public override void AfterSave(Kingdee.BOS.Core.Bill.PlugIn.Args.AfterSaveEventArgs e)

e.OperationResult.IsSuccess 方法

引用 using Kingdee.BOS.App.Data;

执行 sql 语句 /*dialect*/

DataChanged 点击事件

public override void DataChanged(DataChangedEventArgs e)

e.Field.Key— 变化的值

e.NewValue— 变化后的值

e.OldValue— 变化前的值

e.Row—- 单据体变化的行。

AfterBindData 事件

public override void AfterBindData(EventArgs e)

这个是一个数据绑定后事件。这个事件是单据新增,编辑,查询加载后最后一个事件。

this.View.OpenParameter.Status.Equals(OperationStatus.ADDNEW)

这个方法是判断单据状态。有四种:ADDNEW、EDIT、VIEW、DISASSEMBLY

新增、编辑、查看、卸载

CustomEvents 事件之简单的条码扫描实例:

— 用到的事件

public override void CustomEvents(CustomEventsArgs e)

条码示例:

[1.01.001@20190102@190102@TS00001](mailto:1.01.001@20190102@190102@TS00001)

1.01.002@20190202@190202@TS00002

1.01.231-0298-000@20181202@191202@TS00003

CH4441@20181202@191202@TS00004

用到以下方法:

e.Key.Equals(“F_SB_TM”)—- 判断变更的是那个元素控件

e.EventName == “EnterKeyPressed”—- 捕获回车事件

this.View.GetControl(“F_SB_TM”).SetFocus();—- 设置焦点

—– 字符串拆分数组

string[] strArray = this.View.Model.GetValue(“FScomOne”).ToString().Trim().Split(‘@’);

– 获取单据体行数

this.Model.GetEntryRowCount(“FEntity”);

—– 创建新行

this.View.Model.CreateNewEntryRow(“FEntity”);

—– 弹出错误提示,清空数据,指向焦点。

this.View.ShowMessage(“ 条码位数出错,请检查。。。”, MessageBoxOptions.OK,

new Action<MessageBoxResult>((result) =>

{

this.Model.SetValue(“F_SB_TM”, “”);

this.View.GetControl(“F_SB_TM”).SetFocus();

}));

表单插件之读写数据库

引用 dll

Kingdee.BOS.dll

Kingdee.BOS.Core.dll

Kingdee.BOS.App.dll

Kingdee.BOS.Orm.DataEntity.dll

使用 using

using System;

using System.Collections.Generic;

using Kingdee.BOS.Core.Bill.PlugIn;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.App.Data;

using System.Data;

using Kingdee.BOS.Orm.DataEntity;

** 一.执行 sql 语句返回 Int,表示影响了多少行 **

DBUtils.Execute(this.Context, “/*dialect*/update T_SAL_OUTSTOCKENTRY set FNOTE=’ 测试 '”);

** 二.执行 sql 语句返回 DataSet**

DataTable dt = DBUtils.ExecuteDataSet(this.Context, “/*dialect*/select FMATERIALID,FNumber from T_BD_MATERIAL where FUSEORGID=100006”).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);

​ }

​ this.View.UpdateView(“FEntity”);

** 三.执行 sql 语句返回 IEnumerable**

​ IEnumerable<IDataRecord> itemDataTable = DBUtils.ExecuteEnumerable(this.Context, “/*dialect*/select FMATERIALID,FNumber from T_BD_MATERIAL where FUSEORGID=100006”);

​ int i = 0;

​ 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);

​ i++;

​ }

​ this.View.UpdateView(“FEntity”);

** 四.执行 sql 语句返回 DynamicObjectCollection**

​ DynamicObjectCollection Dyobj = DBUtils.ExecuteDynamicObject(this.Context, “/*dialect*/select FMATERIALID,FNumber from T_BD_MATERIAL where FUSEORGID=100006”);

int j = 0;

​ 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);

​ j++;

​ }

​ this.View.UpdateView(“FEntity”);

表单插件之 Context 属性

上下文,记录一些公用的信息,比如当前登陆用户、组织、连接的数据库、区域等等信息,只要是基于 Cloud 的开发,基本很少有不用的时候。

CurrentOrganizationInfo

当前组织信息

CurrentOrganizationInfo.ID

当前登录组织 id

CurrentOrganizationInfo.Name

当前登录组织的名称

CurrentUserTimeZone

当前用户时区

DatabaseType

数据库类型

IsMultiOrg

是否是多组织数据中心

UserId

当前用户 Id

UserName

当前用户名称

DBId

数据库 ID

UserEmail

登录用户邮箱

UserPhone

登录用户移动电话

调用系统单据列表界面并返回数据

引用:

Kingdee.BOS.dll

Kingdee.BOS.Core.dll

Kingdee.BOS.DataEntity

使用

using System;

using Kingdee.BOS;

using Kingdee.BOS.Core.Bill.PlugIn;

using System.ComponentModel;

using Kingdee.BOS.Core.List;

using Kingdee.BOS.Core.Enums;

using Kingdee.BOS.Core.DynamicForm;

新建一个 listShowParameter 实例

ListShowParameter listShowParameter = new ListShowParameter();

\1. FormId 你要调用那个单据的列表。

listShowParameter.FormId = “SAL_SaleOrder”;

\2. IsLookUp 弹出的列表界面是否有“返回数据”按钮

listShowParameter.IsLookUp = true;

\3. 列表显示类型

显示基本信息

listShowParameter.ListType = Convert.ToInt32(BOSEnums.Enu_ListType.BaseList);

全部显示

listShowParameter.ListType = Convert.ToInt32(BOSEnums.Enu_ListType.List);

\4. 是否显示复选框。默认是 true,如果 false 就是不显示

listShowParameter.MultiSelect = false;

\5. 接受返回值

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_PAEZ_Text”,datarow.DynamicObject[“FID”].ToString()) ;

​ }

​ }

​ });

表单插件之打开外部页面

JSONObject webobj = new JSONObject();

webobj[“source”] = @”http://www.baidu.com”;

webobj[“height”] = 600;

webobj[“width”] = 910;

webobj[“isweb”] = false; // 是否新弹出一个浏览器窗(or 选项卡)打开网页地址金蝶软件学习总结


前言:

学习金蝶软件过程中学习到的东西,做总结,方便日后查阅!

编码规则设置:

  1. 常量 + 流水号。
  2. 常量 + 日期 + 流水号:每天流水号重新开始。
  3. 常量 + 组织 + 流水号:

什么是数字化转型?

可以用发展的视角去看待“数字化”,理理相关数字化的概念(信息数字化、流程数字化、业务数字化),就差不多可以清楚数字化、数字化转型是怎么回事儿了。

首先,信息数字化:诸如数字相机,数字电视,微软的办公软件(Word、Excel、PowerPoint)这些将人类通过感官获取的信息转化成计算机可以认知的形式;

其次,流程数字化:比如,生产制造使用的 ERP 系统,营销使用的 CRM 系统,供应链管理(SCM)系统,办公流程(OA)系统,能够利用计算机处理已经被数字化的信息,将工作流程数字化,能够提高工作协同和资源利用的效率,一般都是企业在用;

第三,业务数字化:就是商业模式的技术化,涉及到不仅是企业本身,而是一个生态,用企业内部与外部生态的数据支撑,打破企业甚至是行业壁垒,业务 + 技术缺一不可。

以上,知悉~数字化转型就不难理解了,涉及到其中任意一种,都可称之为转型,只不过层次不同而已。

寄存单:

业务场景:采购寄存业务,某公司采购因为仓库有限,商品比较紧张,需要提前备货,所以每次采购的商品,需要先寄存到供应商那里。等仓库有地方后在进行实际入库。

寄存单的使用流程图如下


金蝶表单插件开发总结

新建开发解决方案、调试与值监视

\1. 新建解决方案。

名称空间:命名要求表达准确,无歧义

\2. 断点调试。

\3. 值监控。

FCustomerID

this.View.Model.GetValue(“FCustomerID”)

表单插件的赋值与取值 GetValue 和 SetValue

引用 using Kingdee.BOS.Core.Bill.PlugIn;

this.View.Model.SetValue this.View.Model.GetValue

– 插件说明 [Description(“ 表单插件 ”)]

– 热启动 [Kingdee.BOS.Util.HotUpdate]

单据体取值和赋值 GetValue 和 SetValue

表单插件

引用 using Kingdee.BOS.Core.Bill.PlugIn;

this.View.Model.SetValue this.View.Model.GetValue

– 插件说明 [Description(“ 表单插件 ”)]

– 热启动 [Kingdee.BOS.Util.HotUpdate]

– 调用值更新事件 this.View.InvokeFieldUpdateService

表单插件的常用方法

常用的表单插件属性

this.View.GetFormTitle()—— 获取单据标题

this.View.Model.DataObject[“Id”]— 获取表单 Fid

this.View.Model.GetPKValue— 获取表单 Fid

this.View.GetControl(“F_PAEZ_Remarks “).SetFocus()——- 设置焦点

this.View.GetControl(“F_PAEZ_Remarks”).Enabled = false; —- 锁定字段

this.View.GetFieldEditor(“F_PAEZ_Remarks “, 0).Enabled = false;—- 单据体行锁定字段

this.View.GetControl(“F_PAEZ_Remarks”).Visible = false; —- 隐藏字段

this.View.GetMainBarItem(“tbSave”).Enabled = false;—- 锁定按钮

this.View.GetMainBarItem(“tbSave”).Visible = false;—- 隐藏按钮

this.View.UpdateView(“F_SB_SumOutAmount”) 前台刷新,不和服务器交互。

this.View.Refresh—- 整个页面刷新,要和服务器交互,把后台数据库数据刷新过来

this.View.InvokeFormOperation(“Save”)— 调用表单事件


常用的单据体属性插件

this.View.Model.DeleteEntryData(“FEntity”);– 删除单据体信息

this.View.Model.DeleteEntryRow(“FEntity”,0);– 删除单据体信息

this.View.Model.CreateNewEntryRow(“FEntity”);- 创建新行

this.View.Model.CopyEntryRow(“FEntity”,0,1,false);– 复制一行。

this.View.Model.GetEntryPKValue(“FEntity”, 0);– 获取单据体 FENTRYID 内码

this.View.Model.GetEntryRowCount(“FEntity”)— 获取单据体行数。

表单插件的常用提示框

常用的提示信息框

\1.

this.View.ShowMessage(“ 你好 ”);

\2.

this.View.ShowErrMessage(“ 错误信息提示 ”);

\3.

引用 using Kingdee.BOS.Core.DynamicForm;

this.View.ShowMessage(“ 信息提示?”,

MessageBoxOptions.YesNo, new Action<MessageBoxResult>((result) =>

{

if (result == MessageBoxResult.Yes)

{

}

else if (result == MessageBoxResult.No)

{

return;

}

}));

提示信息:

终止、重试、忽略

是、否、取消

\4. 警告

this.View.ShowWarnningMessage(“ 不能对其进行操作,请确认。”, action:(result) =>
{
this.View.Close();
});

表单插件之常用事件

BarItemClick 点击事件

public override void BarItemClick(Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)

  1. e.BarItemKey 方法
  2. e.Cancel 方法

BeforeSave 点击事件

public override void BeforeSave (Core.DynamicForm.PlugIn.Args.BeforeSaveEventArgs e)

\1.   e.Cancel 方法

AfterSave 点击事件

public override void AfterSave(Kingdee.BOS.Core.Bill.PlugIn.Args.AfterSaveEventArgs e)

e.OperationResult.IsSuccess 方法

引用 using Kingdee.BOS.App.Data;

执行 sql 语句 /*dialect*/

DataChanged 点击事件

public override void DataChanged(DataChangedEventArgs e)

e.Field.Key— 变化的值

e.NewValue— 变化后的值

e.OldValue— 变化前的值

e.Row—- 单据体变化的行。

AfterBindData 事件

public override void AfterBindData(EventArgs e)

这个是一个数据绑定后事件。这个事件是单据新增,编辑,查询加载后最后一个事件。

this.View.OpenParameter.Status.Equals(OperationStatus.ADDNEW)

这个方法是判断单据状态。有四种:ADDNEW、EDIT、VIEW、DISASSEMBLY

新增、编辑、查看、卸载

CustomEvents 事件之简单的条码扫描实例:

— 用到的事件

public override void CustomEvents(CustomEventsArgs e)

条码示例:

[1.01.001@20190102@190102@TS00001](mailto:1.01.001@20190102@190102@TS00001)

1.01.002@20190202@190202@TS00002

1.01.231-0298-000@20181202@191202@TS00003

CH4441@20181202@191202@TS00004

用到以下方法:

e.Key.Equals(“F_SB_TM”)—- 判断变更的是那个元素控件

e.EventName == “EnterKeyPressed”—- 捕获回车事件

this.View.GetControl(“F_SB_TM”).SetFocus();—- 设置焦点

—– 字符串拆分数组

string[] strArray = this.View.Model.GetValue(“FScomOne”).ToString().Trim().Split(‘@’);

– 获取单据体行数

this.Model.GetEntryRowCount(“FEntity”);

—– 创建新行

this.View.Model.CreateNewEntryRow(“FEntity”);

—– 弹出错误提示,清空数据,指向焦点。

this.View.ShowMessage(“ 条码位数出错,请检查。。。”, MessageBoxOptions.OK,

new Action<MessageBoxResult>((result) =>

{

this.Model.SetValue(“F_SB_TM”, “”);

this.View.GetControl(“F_SB_TM”).SetFocus();

}));

表单插件之读写数据库

引用 dll

Kingdee.BOS.dll

Kingdee.BOS.Core.dll

Kingdee.BOS.App.dll

Kingdee.BOS.Orm.DataEntity.dll

使用 using

using System;

using System.Collections.Generic;

using Kingdee.BOS.Core.Bill.PlugIn;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.App.Data;

using System.Data;

using Kingdee.BOS.Orm.DataEntity;

** 一.执行 sql 语句返回 Int,表示影响了多少行 **

DBUtils.Execute(this.Context, “/*dialect*/update T_SAL_OUTSTOCKENTRY set FNOTE=’ 测试 '”);

** 二.执行 sql 语句返回 DataSet**

DataTable dt = DBUtils.ExecuteDataSet(this.Context, “/*dialect*/select FMATERIALID,FNumber from T_BD_MATERIAL where FUSEORGID=100006”).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);

​ }

​ this.View.UpdateView(“FEntity”);

** 三.执行 sql 语句返回 IEnumerable**

​ IEnumerable<IDataRecord> itemDataTable = DBUtils.ExecuteEnumerable(this.Context, “/*dialect*/select FMATERIALID,FNumber from T_BD_MATERIAL where FUSEORGID=100006”);

​ int i = 0;

​ 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);

​ i++;

​ }

​ this.View.UpdateView(“FEntity”);

** 四.执行 sql 语句返回 DynamicObjectCollection**

​ DynamicObjectCollection Dyobj = DBUtils.ExecuteDynamicObject(this.Context, “/*dialect*/select FMATERIALID,FNumber from T_BD_MATERIAL where FUSEORGID=100006”);

int j = 0;

​ 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);

​ j++;

​ }

​ this.View.UpdateView(“FEntity”);

表单插件之 Context 属性

上下文,记录一些公用的信息,比如当前登陆用户、组织、连接的数据库、区域等等信息,只要是基于 Cloud 的开发,基本很少有不用的时候。

CurrentOrganizationInfo

当前组织信息

CurrentOrganizationInfo.ID

当前登录组织 id

CurrentOrganizationInfo.Name

当前登录组织的名称

CurrentUserTimeZone

当前用户时区

DatabaseType

数据库类型

IsMultiOrg

是否是多组织数据中心

UserId

当前用户 Id

UserName

当前用户名称

DBId

数据库 ID

UserEmail

登录用户邮箱

UserPhone

登录用户移动电话

调用系统单据列表界面并返回数据

引用:

Kingdee.BOS.dll

Kingdee.BOS.Core.dll

Kingdee.BOS.DataEntity

使用

using System;

using Kingdee.BOS;

using Kingdee.BOS.Core.Bill.PlugIn;

using System.ComponentModel;

using Kingdee.BOS.Core.List;

using Kingdee.BOS.Core.Enums;

using Kingdee.BOS.Core.DynamicForm;

新建一个 listShowParameter 实例

ListShowParameter listShowParameter = new ListShowParameter();

\1. FormId 你要调用那个单据的列表。

listShowParameter.FormId = “SAL_SaleOrder”;

\2. IsLookUp 弹出的列表界面是否有“返回数据”按钮

listShowParameter.IsLookUp = true;

\3. 列表显示类型

显示基本信息

listShowParameter.ListType = Convert.ToInt32(BOSEnums.Enu_ListType.BaseList);

全部显示

listShowParameter.ListType = Convert.ToInt32(BOSEnums.Enu_ListType.List);

\4. 是否显示复选框。默认是 true,如果 false 就是不显示

listShowParameter.MultiSelect = false;

\5. 接受返回值

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_PAEZ_Text”,datarow.DynamicObject[“FID”].ToString()) ;

​ }

​ }

​ });

表单插件之打开外部页面

JSONObject webobj = new JSONObject();

webobj[“source”] = @”http://www.baidu.com”;

webobj[“height”] = 600;

webobj[“width”] = 910;

webobj[“isweb”] = false; // 是否新弹出一个浏览器窗(or 选项卡)打开网页地址

webobj[“title”] = “ 百度 ”;

this.View.AddAction(“ShowKDWebbrowseForm”, webobj);

this.View.SendDynamicFormAction(this.View);

后记:

文章持续更新 ,如果喜欢,请拿起你们可爱的小手,给我点个赞吧!

点赞是一种积极的生活态度,赞一个吧!

webobj[“title”] = “ 百度 ”;

this.View.AddAction(“ShowKDWebbrowseForm”, webobj);

this.View.SendDynamicFormAction(this.View);

后记:

文章持续更新 ,如果喜欢,请拿起你们可爱的小手,给我点个赞吧!

点赞是一种积极的生活态度,赞一个吧!

正文完
 0