当前位置: 首页 > news >正文

S3D 模型对象权限检查

效果展示:

image

image

代码如下

 

 public class CheckPG : BaseModalCommand{public override void OnStart(int instanceId, object argument){base.OnStart(instanceId, argument);if (ClientServiceProvider.SelectSet.Count == 0){System.Windows.Forms.MessageBox.Show("请选择对象");return;}var ss = ClientServiceProvider.SelectSet.SelectedObjects.FirstOrDefault();var ft = new Filter();ft.Definition.AddHierarchy(ss is ISystem ? HierarchyTypes.System : HierarchyTypes.Assembly, new System.Collections.ObjectModel.ReadOnlyCollection<BusinessObject>(new BusinessObject[] { ss }), true);var objs = ClientServiceProvider.WorkingSet.GetObjectsByFilter(ft, ClientServiceProvider.WorkingSet.ActiveConnection);var fn = $"C:\\{(ss is ISystem ? HierarchyTypes.System.ToString() : HierarchyTypes.Assembly.ToString())} Objects Under {ss.GetName()}-{NsAPI.CommonTools.DateTimeStamp}.xlsx";FileInfo newFile = new FileInfo(fn);if (newFile.Exists){newFile.Delete(); // ensures we create a new workbooknewFile = new FileInfo(fn);}using (OfficeOpenXml.ExcelPackage package = new OfficeOpenXml.ExcelPackage(newFile)){var ws = package.Workbook.Worksheets.Add("Sheet1");var listObjects = new List<ObjectInfo>();foreach (var item in objs){try{listObjects.Add(new ObjectInfo(item));}catch (System.Exception){continue;}}ws.Cells[1, 1].LoadFromCollection(listObjects, true);ws.Cells.AutoFitColumns();package.Save();package.Dispose();}Process.Start(fn);}}

 

  public class ObjectInfo{public string ClassName { get; set; }public string PGName { get; set; }public string PGLocation { get; set; }public string BOCDisPlayName { get; set; }public string BOCPath { get; set; }public string BOCName { get; set; }public string ObjectID { get; set; }public string Name { get; set; }public string UserCreated { get; set; }public string UserLastModified { get; set; }public string DateCreated { get; set; }public string DateLastModified { get; set; }public ObjectInfo(BusinessObject curObj){ClassName = curObj.ClassInfo.IsUserClass ? curObj.UserClassInfo.DisplayName : curObj.ClassInfo.DisplayName;PGName = curObj.PermissionGroup.Name;PGLocation = curObj.PermissionGroup.PGLocation.ToString();var bocInfo = ((curObj.UserClassInfo != null) ? curObj.UserClassInfo : curObj.ClassInfo).BOC;BOCDisPlayName = bocInfo.DisplayName;BOCPath = bocInfo.BOCPath;BOCName = bocInfo.Name;ObjectID = curObj.ObjectID;Name = curObj.ToString();UserCreated = curObj.UserCreated;UserLastModified = curObj.UserLastModified;DateCreated = curObj.DateCreated.ToString();DateLastModified = curObj.DateLastModified.ToString();}}

 

http://www.gsyq.cn/news/44436.html

相关文章:

  • Python实现社交网络分析SNA公司董事数据与跨行业网络桥接识别可视化|附代码数据
  • 架构篇:如何设计一个“看得懂、用得爽、管得好”还能“适度扩展”的系统?
  • Nacos用法
  • html css网页制作成品——HTML+CSS盐津铺子网页设计(5页)附源码 - 实践
  • 2025年比较好的管型端子厂家推荐及选购参考榜
  • 2025年优秀的耐火隔热软管由壬厂家推荐及选择建议
  • Ubuntu 软件安装中心闪退
  • 2025年质量好的刺绣布袋定制厂家推荐及采购指南
  • Linux misfit task
  • 李宏毅机器学习笔记20 - 实践
  • 性能监测火焰图原理及搭建
  • 基于Java的车辆租赁管理平台/租车系统源码+运行步骤
  • 20251109-2
  • 2025年服务贴心的离婚财产分割律师口碑指数榜
  • 深入解析:让AI说“人话“:TypeChat.NET如何用强类型驯服大语言模型的“野性“
  • 2025年评价高的专利评估综合口碑榜
  • 实用指南:手机群控软件在游戏运营中的风险管控技术实现
  • Process Monitor 学习笔记(5.2):事件模型与五大类操作(文档/注册表/进程/网络/Profiling
  • flask: 用gunicorn部署flask项目
  • 使用Math库执行数值计算
  • 2025年专业的短视频运营本地优质榜
  • 中文机器阅读理解数据集:7000条高质量问答数据,涵盖搜索与知道双场景,支持DESCRIPTION:YES_NO:ENTITY多类型问题,适用于BERT:GPT等模型训练与评估
  • 2025年优秀的涂装喷砂房最新TOP排名厂家
  • 2025年靠谱的品牌展厅设计展示空间创新设计榜
  • Zabbix服务告警:Zabbix server: Utilization of discoverer processes over 75%
  • 2025年11月豆包排名优化实力推荐:五强对比助企业精准决策
  • 2025年11月北京geo优化公司推荐榜:五强服务链路深度拆解
  • 2025年11月豆包搜索排名优化服务推荐:五强实力剖析与落地步骤
  • 2025年11月geo优化公司优选推荐:场景化选择指南
  • 如何更聪明地偿还债务?两种主流还款策略的对比