2

我对 SAP 环境很陌生,在社区论坛或使用示例/模板/API 文档或 SAP 书籍时找不到以下问题的合适解决方案,因此我问了这个问题。

我的问题:我创建了一个带注释的 CDS 视图(用于表格和图表),并使用我的服务将其链接到自己的 SAPUI5 应用程序。虽然 SmartTable 创建没有任何问题,但 SmartChart 给了我以下错误: TypeError: can't convert undefined to object RoleFitter.js

我查看了错误,似乎注释文件中的某些内容不正确。但是,我找不到错误,因为它是从 CDS-View Annotations 自动生成的,所以我有点困惑(SmartTable 正在工作,我可以毫无问题地添加/更改 UserText Annotations)。

此外,当我使用创建的 CDSView 和标准 SAP 模板(例如在概览页面模板中的卡片中)时,它工作得很好。对于任何解决方案或提示,我都非常感谢,因为这让我很困扰,我不明白为什么 SmartTable 可以工作,但图表却不能。 提前致谢!

CDS查看:

@AbapCatalog.sqlViewName: 'ZYSS20MSGITEST3'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Test view 3'

@UI: {headerInfo: {
    typeName:'Test3',
    title:{
    type: #STANDARD,
    label: 'Suche'
    }
}
}
@UI.chart: [{
    qualifier: 'OccupiedSeats',
    chartType: #COLUMN,
    dimensions:  [ 'FlightCode' ],
    measures:  [ 'MaximumCapacity', 'EconomyOccupiedSeats', 'BusinessOccupiedSeats', 'FirstOccupiedSeats' ]
}]
define view ZY_SS20_MSGI_TEST3
  as select from sflight
{
      @UI.lineItem: [ { position: 10 } ]
  key concat(carrid, connid) as FlightCode,
      @UI.lineItem: [ { position: 30 } ]
      seatsmax               as MaximumCapacity,
      @UI.lineItem: [ { position: 40 } ]
      seatsocc               as EconomyOccupiedSeats,
      @UI.lineItem: [ { position: 50 } ]
      seatsocc_b             as BusinessOccupiedSeats,
      @UI.lineItem: [ { position: 60 } ]
      seatsocc_f             as FirstOccupiedSeats
}

Dashboard.controller.js:

sap.ui.define([
    "sap/ui/core/mvc/Controller"
], function(Controller) {
    "use strict";

    return Controller.extend("ZY_SS20_MSGI_TESTN.controller.Dashboard", {
        
        onInit: function() {
            this._oModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/sap/ZY_SS20_MSGPROGRESSSRV_SRV/", true);
            this.getView().setModel(this._oModel);
        }

    });
仪表板.view.xml:

<mvc:View controllerName="ZY_SS20_MSGI_TESTN.controller.Dashboard" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc" xmlns:smartChart="sap.ui.comp.smartchart"
    xmlns:data="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1" xmlns:smartFilterBar="sap.ui.comp.smartfilterbar" xmlns:smartTable="sap.ui.comp.smarttable"
    displayBlock="true" xmlns="sap.m">
    <App>
        <pages>
            <Page title="{i18n>title}">
                <content>
                    <VBox fitContainer="true">
                    <smartFilterBar:SmartFilterBar
                        id="smartFilterBar" entitySet="ZY_SS20_MSGI_TEST3" />
                    <smartTable:SmartTable id="mySmartTable"
                    entitySet="ZY_SS20_MSGI_TEST3" smartFilterId="smartFilterBar"
                    tableType="Table" useExportToExcel="true"
                    useVariantManagement="false" useTablePersonalisation="false"
                    header="Throughput" showRowCount="true" enableAutoBinding="true"
                    initiallyVisibleFields="FlightCode,MaximumCapacity,EconomyOccupiedSeats,BusinessOccupiedSeats,FirstOccupiedSeats">
                    </smartTable:SmartTable>
                    <smartChart:SmartChart entitySet="ZY_SS20_MSGI_TEST3" 
                    enableAutoBinding="true" id="mySmartChart" useVariantManagement="false" 
                    useChartPersonalisation="false" header="Test"></smartChart:SmartChart>
                    </VBox>
                </content>
            </Page>
        </pages>
    </App>
</mvc:View>
4

1 回答 1

0

问题似乎是您为图表注释提供了限定符,但没有为 SmartChart 控件指定相同的限定符。尝试将此属性添加到您的 SmartChart 标记中:

data:chartQualifier="OccupiedSeats"
于 2020-09-26T06:49:38.600 回答