我正在使用OData模型将UI控件绑定到GW服务.在服务元数据中,数据结构中有"FirstName"和"LastName".在UI上,比方说,我正在使用Label控件.
现在问题是如何直接使用OData模型将Label的Text属性绑定到"FullName"字符串(即"FirstName"+"LastName")?如果我使用JSON模型,我可以创建一个局部变量FullName = FirstName + LastName,并将Text属性绑定到FullName.但是我怎么能用OData模型呢?
我正在使用openui5.有一个UI控件的构造函数Button,无法看到Button的原型属性,但在浏览器控制台中执行时却出现同样的事情,显示出来!
sap.m.Button.prototype.Move = function(){
console.log('Move');
}
var oButton = new sap.m.Button({text:"Hello"});
oButton.Move(); // throws undefined function!
Run Code Online (Sandbox Code Playgroud)
在控制台中执行浏览器时相同的代码,它的工作原理!
jsbin - > http://jsbin.com/tepum/1/edit
SAPUI5中"依赖"聚合的实际使用情况是什么.
这是在1.9版本中添加的.它解决了什么问题?我在SCN网站上找不到太多关于此的文档.
我将OData模型绑定到列表的项目,并尝试在XML视图中使用以下语法动态应用过滤器:
<List
id="supplierList"
items="{
path : '/SupplierCollection',
filters : {
path : 'CompCode',
operator : 'EQ',
value1: {
path : 'general>/companyCode'
}
}
}"
Run Code Online (Sandbox Code Playgroud)
此处使用的"常规"模型已在Component.js中定义,并且还在视图的控制器中引用:
onInit : function() {
...
var generalModel = sap.ui.getCore().getModel("general");
this.getView().setModel(generalModel, "general");
...
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,模型似乎没有被解析,并且在运行时没有正确解释路径.但是,如果我对value1进行硬编码,那么过滤器就能正常工作.
关于这个问题的任何想法?
我是否使用错误的路径来设置过滤器的value1?或者这是一个错误?
我目前正在开发我的第一个SAPUI5移动应用程序.我找到了水平布局定位的选项,但我的标签显示为"太高".为了显示我正在使用谷歌浏览器.
我的页面主题是sap_bluecrystal,内容结构如下:
sap.ui.layout.form.SimpleForm (Max Container Cols: 2)
--> sap.m.Label (Text: Name, LabelFor: "Name")
--> sap.m.Input (Id: "Name")
Run Code Online (Sandbox Code Playgroud)
还有一些字段遵循相同的结构.结果是:

有人知道如何解决这个问题?
提前谢谢你,最诚挚的问候,乔纳森
我们需要向OpenUI5添加新图标.图标已被定义为基于矢量的字体.
我知道可以通过https://icomoon.io/等服务将图标添加到SAP标准字体.但是,我希望能够将它们保存在一个单独的文件中(这样我们就不需要在新的OpenUI5版本出现时重做任务).
是否可以定义用于图标的其他字体?
我正在使用简单的路由创建sapui5示例应用程序(sapui5/openui5版本为1.22).
我的主要问题,我试图理解,为什么url模式更改和目标视图控制器的onInit被触发,但没有任何反应(onAfterRendering未触发),我只能在页面重新加载后转到另一个页面.
路由设置:
初始化路由器的Compontent.js按以下方式构造:
sap.ui.define([
"sap/ui/core/UIComponent"
], function (UIComponent) {
return UIComponent.extend("sge.apps.app.Component", {
metadata:{
name : "Sample App",
version : "1.0",
includes : [],
dependencies : {
libs : ["sap.m", "sap.ui.layout"],
components : []
},
rootView: "sge.apps.app.view.App",
config: {
resourceBundle: "i18n/i18n.properties"
},
routing : {
config : {
routerClass : sap.ui.core.routing.Router,
viewType : "XML",
viewPath : "sge.apps.app.view",
targetControl: "app",
targetAggregation: "pages",
transition: "slide",
clearTarget : false,
bypassed: {
target: "notFound"
}
},
routes: [{
pattern: "",
name: "appHome",
view: "Home" …Run Code Online (Sandbox Code Playgroud) 我想这样在SAPUI5中转义此字符串。
var escapedLongText = escape(unescapedLongText);
Run Code Online (Sandbox Code Playgroud)
字符串(UTF-8引号,空格,Unicode引号)
”
转义字符串
%22%20%u201C
我想用此方法取消转义,但它返回空。有任何想法吗?
DATA: LV_STRING TYPE STRING.
LV_STRING = '%22%20%u201C'.
CALL METHOD CL_HTTP_UTILITY=>UNESCAPE_URL
EXPORTING
ESCAPED = LV_STRING
RECEIVING
UNESCAPED = LV_STRING.
Run Code Online (Sandbox Code Playgroud) 我想要的:快速将文件复制/移动到路径.也许从sapui5上的FileUploader从File/Blob对象获取FileEntry.
输入:FileUploader
输出:文件对象所以我通过执行以下操作选择它时得到文件:
sap.ui.getCore().byId('file-uploader-id').oFileUpload.files[0];
Run Code Online (Sandbox Code Playgroud)
所以我必须将它复制到另一个位置:" cordova.file .externalCacheDirectory".但FileUploader不为所选项提供完整路径值(出于安全原因).
我尝试了什么:
var sPath = URL.createObjectURL(oFile);
var pCopyFrom = new Promise((resolve, reject) => {
window.resolveLocalFileSystemURL(sPath, resolve, reject);
});
var pCopyTo = new Promise((resolve, reject) => {
var sExternalCachePath = cordova.file.externalCacheDirectory;
window.resolveLocalFileSystemURL(sMediaPath, resolve, reject);
});
Promise.all([pCopyFrom, pCopyTo]).then(aValues => {
aValues[0].moveTo(aValues[1], aValues[0].name, cbSuccess, cbError);
});
Run Code Online (Sandbox Code Playgroud)
结果:
解决方案似乎不起作用,因为生成的路径不可用(错误代码5),此路径无效,因此使用它.
可能的方法:
目前的解决方案是什么(但真的很慢):
使用FileWritter编写文件.如果我有路径并且我将上述代码用于视频(持续5秒),则花费不到1秒(感谢FileEntry)来复制/移动它(使用摄像头捕获或使用cordova插件进行视频捕获-媒体捕获 …
我有使用fiori元素的Fiori应用程序,我想调整UI5为$batch调用中的OData生成的odata查询。
我打开了用于列表报告的livemode以及用于选择/过滤器和list of values使用ValueList注释的smartfilter。但是问题是,当我在选择字段中键入过滤器值时(例如说要卖给),该$batch调用将触发以下OData查询。
../invoice_list.xsodata/vlsoldto?sap-client=100&$skip=0&$top=10&$filter=startswith(SOLDTO___T,%27TEST%27)
Run Code Online (Sandbox Code Playgroud)
我想调整odata调用以使用'substringof'而不是'startswith'..因此如下所示。
../invoice_list.xsodata/vlsoldto?sap-client=100&$skip=0&$top=10&$filter=substringof(%27TEST%27,CRM_SOLDTO___T)
Run Code Online (Sandbox Code Playgroud)
我不知道该进行定制的地方。我知道如何进行Fiori元素扩展,但是要查找一些信息(如果它是扩展名),然后是哪种类型的扩展名,哪种事件,或者其他任何方法(如果不是扩展名)。我几乎不知道从哪里开始。
任何帮助表示赞赏。