提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:龚雪|2020-11-09 10:08:36.543|阅读 214 次
概述:DevExpress WinForms拥有180+组件和UI库,本文将为大家介绍如何使用Pivot Grid用作主筛选器项,有兴趣的朋友可以下载最新版控件体验产品功能哦~
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
下载DevExpress v20.2完整版 DevExpress v20.2汉化资源获取
DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!体验?点击下载>>
本文演示如何使用Pivot dashboard项目像单选主过滤器项目一样运行,此方法使用以下功能:按仪表板参数进行过滤、对基础控件的访问,条件格式设置以及用于访问基础数据的API方法。
1. 在要用于过滤的Pivot item中创建一组与尺寸对应的仪表盘参数,本文使用四个参数:ProductParam、CategoryParam、CountryParam和CityParam,它们对应于按Periods Pivot item的Product Amount行和列部分中使用的Product、Category、Country和City。
2. 处理 事件,来从clicked元素获取尺寸的值,并将其传递给仪表盘参数。
C#
void OnDashboardItemClick(object sender, DashboardItemMouseActionEventArgs e) { if(e.DashboardItemName == "pivotDashboardItem1" && !skipFiltering) { dashboardDesigner1.BeginUpdateParameters(); //clear all parameters ClearPivotFilter(); //set selected columns and rows to parameters SetParameterValue(e.GetAxisPoint("Column")); SetParameterValue(e.GetAxisPoint("Row")); dashboardDesigner1.EndUpdateParameters(); } }
skipFiltering变量指示是否按下Expand / Collapse 按钮,在这种情况下,该变量用于跳过设置过滤器。
3. 上面的代码段未设置或清除单击元素无法访问的尺寸值,您需要设置仅与所选相交点对应的参数值,并在设置新的值之前清除仪表盘参数中的先前值。
创建以下用于清除参数值的方法:
C#
void ClearPivotFilter() { PivotDashboardItem pivotItem = dashboardDesigner1.Dashboard.Items["pivotDashboardItem1"] as PivotDashboardItem; ClearParameters(pivotItem.Columns); ClearParameters(pivotItem.Rows); } void ClearParameters(DimensionCollection dimensions) { foreach(var dimension in dimensions) dashboardDesigner1.Parameters[GetParameterDataMember(dimension.DataMember)].SelectedValue = null; }
4. 当最终用户单击行或列中的 Expand / Collapse按钮时,Dashboard Designer将引发事件,处理事件来在这种情况下跳过设置过滤器。
C#
bool skipFiltering = false; private void dashboardDesigner1_DashboardItemControlCreated(object sender, DevExpress.DashboardWin.DashboardItemControlEventArgs e) { if(e.DashboardItemName == "pivotDashboardItem1") { e.PivotGridControl.MouseDown += PivotGridControl_MouseDown; } } private void PivotGridControl_MouseDown(object sender, MouseEventArgs e) { PivotGridControl pivot = sender as PivotGridControl; PivotGridHitInfo hi = pivot.CalcHitInfo(e.Location); skipFiltering = (hi.ValueInfo != null && hi.ValueInfo.ValueHitTest == PivotGridValueHitTest.ExpandButton); }
5. 要通过与Pivot Item相关的仪表盘参数筛选其仪表盘项时,请向这些项添加所有必须的尺寸。如果不想向最终用户显示尺寸,请将尺寸放置到"Hidden Dimensions" 部分。
然后将以下过滤器表达式添加到仪表盘项目:
Code
([Dimension1] = ?Dimension1Param Or ?Dimension1Param Is Null) And
([Dimension2] = ?Dimension2Param Or ?Dimension2Param Is Null) And
...
([DimensionN] = ?DimensionNParam Or ?DimensionNParam Is Null)
本示例使用以下表达式:
Code
([Product] = ?ProductParam Or ?ProductParam Is Null)
And ([Category] = ?CategoryParam Or ?CategoryParam Is Null)
And ([Country] = ?CountryParam Or ?CountryParam Is Null)
And ([City] = ?CityParam Or ?CityParam Is Null)
上面的步骤足以实现最少的过滤功能,进一步的步骤将改善UI操作。
1. Optional. To 突出显示在Pivot Grid中选择的单元格,请使用以下表达式添加格式规则:
(?CityParam Is Not Null Or ?CountryParam Is Not Null Or ?ProductParam Is Not Null Or ?CategoryParam Is Not Null) And ([Product] = ?ProductParam Or ?ProductParam Is Null) And ([Category] = ?CategoryParam Or ?CategoryParam Is Null) And ([Country] = ?CountryParam Or ?CountryParam Is Null) And ([City] = ?CityParam Or ?CityParam Is Null)
2. Optional. 处理DashboardDesigner.CustomizeDashboardItemCaption事件,将Clear Master Filter按钮添加到该项目的标题:
C#
void OnCustomizeDashboardItemCaption(object sender, CustomizeDashboardItemCaptionEventArgs e) { if(e.DashboardItemName == "pivotDashboardItem1") { DashboardToolbarItem showDataItem = new DashboardToolbarItem("Clear Master Filter", new Action((args) => { dashboardDesigner1.BeginUpdateParameters(); ClearPivotFilter(); dashboardDesigner1.EndUpdateParameters(); })); showDataItem.Enabled = IsAnyFilterSet(); showDataItem.SvgImage = svgImageCollection1[0]; e.Items.Insert(0, showDataItem); } }
DevExpress技术交流群2:775869749 欢迎一起进群讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
文章转载自:慧都网本文将为大家深入介绍QtitanDataGrid组件,看看它是如何为Qt开发提供强大的数据表格解决方案的,欢迎下载最新版组件体验!
在现代工业自动化领域,OPC协议在设备、系统和软件之间的数据交换中发挥着重要作用。随着技术的进步,传统的OPC DA协议逐渐暴露出一些不足,比如跨平台支持差、安全性不足等问题,OPC UA作为其升级版应运而生,具有更强的灵活性、安全性和跨平台能力。那么,如何将原本使用OPC DA的系统或设备迁移到OPC UA协议呢?
在工业自动化领域,OPC协议被广泛应用,它帮助不同品牌、不同类型的设备和系统之间实现数据交换。OPC协议有多个版本,其中最常见的有OPC DA和OPC UA。虽然它们都属于OPC协议家族,但这两者有许多重要的区别。那么,OPC DA和OPC UA究竟有什么不同?
优秀的界面控件开发包,帮助企业构建卓越应用!
DevExpress WinForms Subscription为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢