【问题标题】:DashboardViewer PivotDashboardItem PivotGridControl Drag ExceptionDashboardViewer PivotDashboardItem PivotGridControl 拖动异常
【发布时间】:2017-08-05 08:05:55
【问题描述】:

我想简单解释一下我的情况, 我使用 DashboardViwer 项目并将 xml 加载到它 onload 已由 DashboardDesigner 创建和保存。

然后,我填充 DashboardObjectDataSource 并将其添加到仪表板数据源以将其设置为项目。

最后,我在仪表板查看器中为 PivotGridControl 打开了一些属性和 activere 自定义表单。

根据仪表板设计师创建的设计,我可以正确看到报告结果。

但是,当我想更改现场订单或地点时,我会遇到此异常;

Object Referance

   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


    【解决方案1】:

    Sergi(DevExpress 支持);

    在当前版本中,Dashboard Pivot Grid Item 不支持 自定义表单功能。因此,如果您显示它 手动使用内部枢轴网格控件的 API,自定义 表单可能无法正常工作,或者会抛出异常,如您的 案例。

    目前,可以在 Pivot 中重新排序维度和度量 使用仪表板设计器的网格项目。如果这种方法不符合 您的要求,请您更详细地描述您的场景 细节?我们期待您的来信。


    John(DevExpress 支持);

    DashboardViewer 控件仅用于显示仪表板。那是 为什么有 没有简单的方法来使用 PivotGrid 控件的自定义 DashboardViewer 中的功能。在 所需的方式,您将需要使用 DashboardDesigner 控件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 2019-01-18
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多