【发布时间】:2017-08-05 08:05:55
【问题描述】:
我想简单解释一下我的情况, 我使用 DashboardViwer 项目并将 xml 加载到它 onload 已由 DashboardDesigner 创建和保存。
然后,我填充 DashboardObjectDataSource 并将其添加到仪表板数据源以将其设置为项目。
最后,我在仪表板查看器中为 PivotGridControl 打开了一些属性和 activere 自定义表单。
根据仪表板设计师创建的设计,我可以正确看到报告结果。
但是,当我想更改现场订单或地点时,我会遇到此异常;
position: DevExpress.XtraPivotGrid.Data.PivotFieldCellValueItem.GetTextCore()
position: DevExpress.XtraPivotGrid.Data.PivotFieldValueItem.GetCustomText(Boolean calculateIsCustomDisplayText)
position: DevExpress.XtraPivotGrid.Data.PivotFieldValueItem.CalculateText()
position: DevExpress.XtraPivotGrid.Data.PivotFieldValueItem.get_Text()
position: DevExpress.XtraPivotGrid.Data.PivotFieldValueItem.get_DisplayText()
position: DevExpress.XtraPivotGrid.ViewInfo.PivotFieldsAreaCellViewInfo.get_DisplayText()
position: DevExpress.XtraPivotGrid.ViewInfo.PivotFieldsAreaCellViewInfoBase.CreateHeaderInfoArgs(GraphicsCache graphicsCache)
position: DevExpress.XtraPivotGrid.ViewInfo.PivotFieldsAreaCellViewInfoBase.InternalPaint(ViewInfoPaintArgs e)
position: DevExpress.XtraPivotGrid.ViewInfo.BaseViewInfo.Paint(ViewInfoPaintArgs e)
position: DevExpress.XtraPivotGrid.ViewInfo.BaseViewInfoCollection.Paint(ViewInfoPaintArgs e)
position: DevExpress.XtraPivotGrid.ViewInfo.BaseViewInfo.PaintChildren(ViewInfoPaintArgs e)
position: DevExpress.XtraPivotGrid.ViewInfo.BaseViewInfo.Paint(ViewInfoPaintArgs e)
position: DevExpress.XtraPivotGrid.ViewInfo.BaseViewInfoCollection.Paint(ViewInfoPaintArgs e)
position: DevExpress.XtraPivotGrid.ViewInfo.BaseViewInfo.PaintChildren(ViewInfoPaintArgs e)
position: DevExpress.XtraPivotGrid.ViewInfo.BaseViewInfo.Paint(ViewInfoPaintArgs e)
position: DevExpress.XtraPivotGrid.ViewInfo.BaseViewInfoControl.OnPaint(PaintEventArgs e)
position: DevExpress.XtraPivotGrid.PivotGridControl.OnPaint(PaintEventArgs e)
position: System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
position: System.Windows.Forms.Control.WmPaint(Message& m)
position: System.Windows.Forms.Control.WndProc(Message& m)
position: DevExpress.XtraPivotGrid.PivotGridControl.WndProc(Message& m)
position: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
position: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
position: System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
仪表板查看器项数据源
[C#]
lSales = oSales.GetReport(filter); // fill list and set default values if it is null
dashboardViewerCreation.Dashboard.DataSources.Clear();
oDashboardObjectDataSource = new DashboardObjectDataSource(dashTitle, lSales);
dashboardViewerCreation.Dashboard.DataSources.Add(oDashboardObjectDataSource);
//Control each item and set data source
foreach (DashboardItem dashboardItem in dashboardViewerCreation.Dashboard.Items)
{
if (dashboardItem.GetType() == typeof(PivotDashboardItem))
{
((PivotDashboardItem)dashboardItem).DataSource = oDashboardObjectDataSource;
}
}
dashboardViewerCreation.ReloadData(true);
dashboardViewerCreation.Refresh();
仪表板 Viever 项目事件
[C#]
private void dashboardViewerCreation_DashboardItemControlCreated(object sender, DevExpress.DashboardWin.DashboardItemControlEventArgs e)
{
if (e.PivotGridControl != null)
{
e.PivotGridControl.OptionsCustomization.AllowPrefilter = false;
e.PivotGridControl.OptionsCustomization.AllowDrag = true;
e.PivotGridControl.OptionsCustomization.AllowEdit = false;
e.PivotGridControl.OptionsCustomization.AllowExpand = true;
e.PivotGridControl.OptionsCustomization.AllowExpandOnDoubleClick = true;
e.PivotGridControl.OptionsCustomization.AllowFilter = false;
e.PivotGridControl.OptionsCustomization.AllowCustomizationForm = true;
e.PivotGridControl.OptionsCustomization.AllowDragInCustomizationForm = true;
e.PivotGridControl.OptionsBehavior.CopyToClipboardWithFieldValues = true;
e.PivotGridControl.OptionsBehavior.ApplyBestFitOnFieldDragging = true;
e.PivotGridControl.OptionsBehavior.HorizontalScrolling = PivotGridScrolling.Control;
e.PivotGridControl.OptionsMenu.EnableFieldValueMenu = false;
e.PivotGridControl.OptionsMenu.EnableFormatRulesMenu = false;
e.PivotGridControl.OptionsView.ShowDataHeaders = true;
e.PivotGridControl.OptionsView.ShowRowHeaders = true;
e.PivotGridControl.OptionsView.ShowColumnHeaders = true;
e.PivotGridControl.OptionsView.ShowFilterHeaders = true;
e.PivotGridControl.OptionsView.ShowFilterSeparatorBar = true;
e.PivotGridControl.OptionsView.ShowRowGrandTotals = true;
e.PivotGridControl.OptionsView.ShowColumnTotals = true;
e.PivotGridControl.OptionsCustomization.CustomizationFormLayout = CustomizationFormLayout.StackedDefault;
e.PivotGridControl.OptionsCustomization.CustomizationFormStyle = CustomizationFormStyle.Excel2007;
e.PivotGridControl.ShowingCustomizationForm += PivotGridControlOnShowingCustomizationForm;
}
}
private void PivotGridControlOnShowingCustomizationForm(object sender, CustomizationFormShowingEventArgs customizationFormShowingEventArgs)
{
customizationFormShowingEventArgs.ParentControl = splitContainerControl1.Panel1;
customizationFormShowingEventArgs.CustomizationForm.Dock = DockStyle.Fill;
}
【问题讨论】:
标签: c# winforms devexpress dashboard devexpress-windows-ui