public override void EntityRowDoubleClick(EntityRowClickEventArgs e)
{
base.EntityRowDoubleClick(e);
if (e.Key.ToUpper() == "F_DOCBASE_GLXXENTRY")//设备档案.关联信息
{
//EntryEntity entry = this.View.BillBusinessInfo.GetEntryEntity("F_DocBase_GLXXEntry");
//int i = this.View.Model.GetEntryCurrentRowIndex(entry.Key);
//DynamicObjectCollection sad = this.View.Model.GetEntityDataObject(entry);
string formID = this.Model.GetValue("F_FormID", e.Row) != null ? this.Model.GetValue("F_FormID", e.Row).ToString() : string.Empty;//单据标识 FormID
string formBillFId = this.Model.GetValue("F_BillID", e.Row) != null ? this.Model.GetValue("F_BillID", e.Row).ToString() : string.Empty;//单据内码 FID
bool isAuth = IsAuthority(this.Context, formID);
// 判断验权结果,只有验权通过,才继续
if (!isAuth)
{
// 验权失败,提示验权结果
this.View.ShowMessage("没有查看权限,请联系管理员。");
}
else
{
// 验权通过(双击行跳转页面)
string FID = formBillFId; //单据内码 FID
BillShowParameter showParam = new BillShowParameter();
showParam.FormId = formID;//"CRM_Contract";
showParam.Status = OperationStatus.VIEW;
showParam.PKey = FID;//listSelectedRow.PrimaryKeyValue
this.View.ShowForm(showParam);
}
}
}
#region 调用系统权限配置
public bool IsAuthority(Context ctx, string formId)
{
bool result = false;//返回结果,true=有权限
try
{
// 创建验权参数对象
BusinessObject businessObject = new BusinessObject();
// 单据FormId:必须的参数
businessObject.Id = formId;//this.View.BillBusinessInfo.GetForm().Id;
// 单据内码:只有在权限项绑定了数据规则时,才需要传入具体的单据内码
businessObject.pkId = "";
// 是否支持权限控制: 0 = 不控制权限;1 = 控制权限;默认为1
businessObject.PermissionControl = 1;
// 子系统: 非必须项,可以忽略
//businessObject.SubSystemId = this.View.OpenParameter.SubSystemId;
// 验证用户在指定组织下的功能权限:key = 主业务组织字段key; value = 组织内码
// 本单据无主业务组织字段时,忽略此参数
//businessObject.OrgFieldAndName.Add("FOrgId", this.Context.CurrentOrganizationInfo.ID.ToString());
// 传入本单的单据编号,以便验权输出的提示信息,更加人性化。可以忽略此参数
// businessObject.BillNoFieldAndValue.Add("FBillNo", this.Model.GetValue("FBillNo").ToString());
// 开始验权,并接收验权结果
// 参数 strPerItemId :
// 系统预置的单据,基本采用预置权限项,采用PermissionConst中定义的常量值即可;
// 但是部分权限项,是自定义的,没有定义常量,需到权限对象表中搜索本单的权限项及其内码;
// 附:本单权限对象内码为:this.View.BillBusinessInfo.GetForm().PermissionObjectId
var authResult = PermissionServiceHelper.FuncPermissionAuth(ctx, businessObject, PermissionConst.Import);
// 判断验权结果,只有验权通过,才继续
result = authResult.Passed;
return result;
}
catch (Exception ex)
{
return false;
}
}
#endregion
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *