Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 创建自定义控件:扩展ProcessFlow时出错_Sapui5 - Fatal编程技术网

Sapui5 创建自定义控件:扩展ProcessFlow时出错

Sapui5 创建自定义控件:扩展ProcessFlow时出错,sapui5,Sapui5,我正在尝试从控件创建自定义控件。这是基本控件的外观: 现在,我希望ProcessFlow具有自定义节点,其中每个节点上都有按钮,如下所示: 因此,我面临的问题是,由于我们将有定制的ProcessFlowNodes(图中为方形注释),我们将需要一个定制的ProcessFlow控件,因为标准的ProcessFlow只允许在其节点下使用typesap.suite.commons.ProcessFlowNode控件 因此,困难在于使用接受自定义ProcessFlowNode控件的自定义聚合创建自定义

我正在尝试从控件创建自定义控件。这是基本控件的外观:

现在,我希望ProcessFlow具有自定义节点,其中每个节点上都有按钮,如下所示:

因此,我面临的问题是,由于我们将有定制的ProcessFlowNodes(图中为方形注释),我们将需要一个定制的ProcessFlow控件,因为标准的ProcessFlow只允许在其
节点下使用type
sap.suite.commons.ProcessFlowNode
控件

因此,困难在于使用接受自定义ProcessFlowNode控件的自定义聚合创建自定义ProcessFlow控件。我在这方面的问题是:

  • 我是扩展
    sap.ui.core.Control
    还是
    sap.suite.commons.ProcessFlow
    ?如果它是控件,它如何知道它是一个ProcessFlow?我在这里的假设(我相信我部分回答了我自己的问题)是ProcessFlow将被扩展。然后,下一个问题是当我尝试使用
    oRm.renderControl(oControl.getAggregation(“lanes”)
    呈现控件时出现控制台错误,例如“oControl必须是sap.ui.core.Control或空”如何解决这些错误?


下面是一个示例代码和屏幕截图,展示了基本的工作流程(namespace
xmlns=“sap.suite.ui.commons”
)的外观:



以下是我迄今为止的代码:

控制:

sap.ui.define([
“sap/suite/ui/commons/ProcessFlow”
],函数(ProcessFlow){
“严格使用”;
返回ProcessFlow.extend(“ns.testino.control.SuperProcessFlow”{
元数据:{
聚合:{
“车道”:{
类型:“sap.suite.ui.commons.ProcessFlowLaneHeader”,
多重:对,
名称:“巷”
},
“节点”:{
类型:“sap.suite.ui.commons.ProcessFlowNode”,
多重:对,
名称:“节点”
}
}
},
init:function(){
},
渲染器:函数(oRM、oControl){
oRM.renderControl(oControl.getAggregation(“车道”);
}
});
});
在应用程序中查看:


我通过删除
init
方法并使用空的
呈现程序
函数解决了错误

sap.ui.define([
“sap/suite/ui/commons/ProcessFlow”
],函数(ProcessFlow){
“严格使用”;
返回ProcessFlow.extend(“ns.testino.control.CustomProcessFlow”{
元数据:{
// ...
},
//没有init:function(){},
渲染器:{}//如果希望它像标准控件一样渲染,请保留为空
});
});