二开案例.表单插件.直接SQL账表双击数据行打开新窗体

【应用场景】直接SQL账表双击数据行打开新窗体。
【案例演示】采购订单明细报表,实现双击数据行打开新窗体的功能。

【实现步骤】
<1>基于案例【二开案例.直接SQL账表.从零开始设计直接SQL账表】https://vip.kingdee.com/article/94805228373112064
准备好直接SQL账表。
<2>编写表单插件,实现直接SQL账表双击数据行打开新窗体的功能。
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Permission;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Kingdee.BOS.Web.Report.SQLReport;
using System;
using System.ComponentModel;
using System.Data;
using System.Reflection;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】直接SQL账表双击数据行打开新窗体
/// </summary>
[Description("【表单插件】直接SQL账表双击数据行打开新窗体"), HotUpdate]
public class OpenListByRowDoubleClickFormPlugIn : AbstractDynamicFormPlugIn
{
public override void EntityRowDoubleClick(EntityRowClickEventArgs e)
{
base.EntityRowDoubleClick(e);
var view = this.View as SQLReportView;
if (view == null)
{
return;
}
if (e.ColKey.Equals("单据编号", StringComparison.OrdinalIgnoreCase))
{
// 只有在双击单据编号列时,才打开该编号对应的采购订单
// 版本PT-146850 [7.5.1.202008]前用此方法
var currentRowValue = GetCurrentRowValue(view, "单据编号");
// 版本PT-146850 [7.5.1.202008]后用此方法
//var currentRowValue = view.GetCurrentRowValue("单据编号");
if (currentRowValue == null)
{
return;
}
var billNo = currentRowValue.ToString();
// 使用单据视图打开
ShowBillForm(billNo);
// 使用列表视图打开
//ShowListForm(billNo);
}
}
/// <summary>
/// 使用单据视图打开
/// </summary>
/// <param name="billNo">单据编号</param>
private void ShowBillForm(string billNo)
{
var sql = string.Format("SELECT FID FROM T_PUR_POORDER WHERE FBILLNO='{0}'", billNo);
var pkId = DBServiceHelper.ExecuteScalar<long>(this.Context, sql, 0);
if (pkId <= 0)
{
return;
}
var param = new BillShowParameter();
param.FormId = "PUR_PurchaseOrder"; // 业务对象标识
param.PKey = pkId.ToString(); // 单据内码
param.Status = OperationStatus.VIEW; // 查看模式打开
//param.Status = OperationStatus.EDIT; // 编辑模式打开
this.View.ShowForm(param);
}
/// <summary>
/// 使用列表视图打开
/// </summary>
/// <param name="billNo">单据编号</param>
private void ShowListForm(string billNo)
{
var param = new ListShowParameter();
param.FormId = "PUR_PurchaseOrder"; // 业务对象标识
param.PermissionItemId = PermissionConst.View; // 验证当前用户查看权限
param.OpenStyle.ShowType = Show
二开案例.表单插件.直接SQL账表双击数据行打开新窗体
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



