0

在 SAPUI5 simple.GanttChartContainer 中,我为所有不同的对象类型、项目..任务...里程碑...图标设置了一个自定义行设置对象。我使用了与此示例相同的技术:

https://sapui5.hana.ondemand.com/#/entity/sap.gantt.simple.GanttChartWithTable/sample/sap.gantt.sample.GanttChart2Shapes

在此之前,我使用了 shape1 聚合,它确实会自动显示选择边框。

有人知道如何将图表 shapeSelectionSettings 应用于我的自定义聚合中的形状吗?或者任何其他解释为什么这些选择边界没有出现?

我花了一些时间简化和回溯——这是我的观点。目前,即使 Resize 和 Connect 都已启用并连接到事件处理程序,并且我的 BaseRectangle 是可调整大小和可连接的,但未绘制选择,未绘制连接框,并且当悬停在调整大小手柄上时,EW 光标也不会出现。控制器只是设置轴和加载数据。我不知道为什么它停止工作 - 我什至尝试过早期版本的 SAPUI5。

任何帮助表示赞赏。

<View
    xmlns="sap.ui.core.mvc"
  xmlns:m="sap.m"
  xmlns:f="sap.ui.layout.form"
    xmlns:core="sap.ui.core"
    xmlns:gnt2="sap.gantt.simple"
  xmlns:projectpro="ProjectPro.controller"
  xmlns:gnt-cal="sap.gantt.def.cal"
  xmlns:axistime="sap.gantt.axistime"
    controllerName="ProjectPro.controller.MasterPlanning"
  id="MasterPlanningMain">

    <m:Page xmlns="sap.ui.table" title="{branding>/ProductName} Master Planning" showNavButton="false" contentOnlyBusy="true">
      <gnt2:GanttChartContainer id="container" enableTimeScrollSync="true">

        <!--Activities/Milestones/Relationships-->
        <gnt2:GanttChartWithTable id="ActivityView"
            shapeSelectionMode = "Single"
            shapeSelectionSettings="{color: 'red', strokeDasharray:'1,0'}"
            class="sapUiSizeCondensed"
            shapeResize="activities_shapeResize"
            shapeConnect="activities_shapeConnect"
            >
          <gnt2:table>
            <TreeTable
              selectionMode="None"
              visibleRowCountMode="Auto"
              rows="{
                          path: 'plandata>/data',
                parameters: { arrayNames: [ 'children' ] }
              }">
              <rowSettingsTemplate>
              <gnt2:GanttRowSettings rowId="{id}" relationships="{ path:'plandata>/links', templateShareable: 'true' }">
                  <gnt2:BaseRectangle 
                    shapeId="{plandata>id}"
                    time="{plandata>start_date}"
                    endTime="{plandata>end_date}"
                    resizable="true"
                    selectable="true"
                    draggable= "true"
                    connectable="true"
                    title="{plandata>text}" showTitle="true"
                    tooltip=""
                    fill="#4cc"
                    />
                <gnt2:relationships>
                  <gnt2:Relationship shapeId="{plandata>id}"
                  predecessor="{plandata>source}" successor="{plandata>target}" type="{plandata>gantttype}" tooltip="{= ${plandata>display_link} }"
                  selectable="true" />
                </gnt2:relationships>
              </gnt2:GanttRowSettings>
              </rowSettingsTemplate>

              <!--Tree Table Columns-->
              <Column sortProperty="text" filterProperty="text" width="30em">
                <m:Text text="Activity" wrapping="false"/>
                <template>
                  <m:Input value="{= ${plandata>text} }" change="nodeRenamed" class="activity_text" />
                </template>
              </Column>
            </TreeTable>
          </gnt2:table>
        </gnt2:GanttChartWithTable>
      </gnt2:GanttChartContainer>
    </m:Page>
</View>
4

1 回答 1

1

我解决了这个问题,发现rowId绑定GanttRowSettings是问题所在。这已绑定到{id}并且我的数据模型位于{plandata>},所以它应该是{plandata>id}- 更改此值解决了问题。

即使不绑定 thisrowId完全破坏了内置行为(选定形状突出显示),SAP UI5 也不会向控制台输出任何错误或警告,表明选择呈现有任何问题,因此当它出错时真的没有什么可做的。

于 2019-10-14T08:40:26.510 回答