2020-08-16 10:30发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在尝试使用标准sap库" sap.ndc.BarcodeScanner"来实现条形码扫描器。
但是我无法获取相机并对其进行扫描。 而是仅显示输入字段。
有人可以帮我吗?
嗨,
您能够解决此问题吗? 我有同样的问题。
谢谢,马科斯。
嗨,爱德华,
请提供无效的代码。
sap.ndc.BarcodeScanner在名称空间sap.ndc下声明。 此处的" ndc"代表本地设备功能。 这些API将使用cordova插件来调用本机设备功能,例如Camera。 sap.ndc.BarcodeScanner将检查cordova插件的可用性。 如果通过浏览器打开了该应用程序,则BarcodeScanner会简单地打开一个对话框,并要求最终用户手动输入条形码。 如果通过Cordova应用程序或SAP Fiori Client(在Cordova之上构建)打开该应用程序,则它将调用设备摄像头。
Hi Kedar,
感谢您的回复!
我的代码:
onscan.txt
view.xml中的扫描按钮和controller.js中的onScan功能
<按钮类型="接受" text =" {i18n> scan}" press =" onScan" icon =" sap-icon://条形码" id =" scanBtn" enabled =" true"/> onScan:function(){ 标志=假; var that = this; var oData = this.getView()。getModel('data'); var oI18n = this.getView()。getModel(" i18n")。getResourceBundle(); //if(sap.ui.Device.os.android){ jQuery.sap.require(" sap.ndc.BarcodeScanner"); sap.ndc.BarcodeScanner.scan( 函数(sResult){ 如果(sResult.cancelled == false){ var result = sResult.text.split(','); 如果(result.length!= 6){ that.onScanError(); that.fShowMessageBox('error',oI18n.getText(" codeError")+ sResult.text); 返回; } oData.setProperty("/img/materialNumber",result [0]); oData.setProperty("/img/quantity",result [2]); oData.setProperty("/img/batch",result [5]); //设置过滤器数组 var aFilter = []; //设置物料编号过滤器 aFilter [0] = new sap.ui.model.Filter({ 路径:" materialNumber", 运算子:sap.ui.model.FilterOperator.EQ, 值1:oData.getProperty("/img/materialNumber"), 值2:"" }); //设置登录语言 aFilter [1] = new sap.ui.model.Filter({ 路径:"语言", 运算子:sap.ui.model.FilterOperator.EQ, 值1:oData.getProperty("/img/language"), 值2:"" }); //设置工厂 aFilter [2] = new sap.ui.model.Filter({ 路径:"植物", 运算子:sap.ui.model.FilterOperator.EQ, 值1:defaultData.plant, 值2:"" }); //获取材料描述和单位 oModel.read("/img/EntitySets/",{ 过滤器:aFilter, 成功:功能(oERP,oResponse){ //检查结果:成功 如果(oERP.results [0] .msgty =='S'){ //设置模型 oData.setProperty("/img/materialDesc",oERP.results [0] .materialDesc); oData.setProperty("/img/unit",oERP.results [0] .unit); 标志= true; that.getView()。byId('quantityid')。focus(); 如果(oERP.results [0] .batchFlag =='X'){ that.getView()。byId('batchid')。setEnabled(true); }否则,如果(oERP.results [0] .batchFlag ==''){ that.getView()。byId('batchid')。setEnabled(false); that.getView()。byId('batchid')。setValue(""); that.getView()。byId('batchlabelid')。setRequired(false); } //检查结果:错误 }其他{ //错误信息输出 that.onScanError(); that.fShowMessageBox('error',oERP.results [0] .msg); } }, 错误:function(oError){ //错误信息输出 that.onScanError(); that.fShowMessageBox('error',oError.message); } }); }其他{ that.onScanError(); that.fShowMessageBox('error',oI18n.getText(" scanCancel"));; } }, 函数(错误){ that.onScanError(); that.fShowMessageBox('错误',错误); 返回; }, 函数(mParams){ alert("输入的值:" + mParams.newValue); } ); }其他{ that.onScanError(); that.fShowMessageBox('error',oI18n.getText(" scanError")); } }
最多设置5个标签!
嗨,
您能够解决此问题吗? 我有同样的问题。
谢谢,马科斯。
嗨,爱德华,
请提供无效的代码。
嗨,
sap.ndc.BarcodeScanner在名称空间sap.ndc下声明。 此处的" ndc"代表本地设备功能。 这些API将使用cordova插件来调用本机设备功能,例如Camera。 sap.ndc.BarcodeScanner将检查cordova插件的可用性。 如果通过浏览器打开了该应用程序,则BarcodeScanner会简单地打开一个对话框,并要求最终用户手动输入条形码。 如果通过Cordova应用程序或SAP Fiori Client(在Cordova之上构建)打开该应用程序,则它将调用设备摄像头。
Hi Kedar,
感谢您的回复!
我的代码:
onscan.txt
view.xml中的扫描按钮和controller.js中的onScan功能
一周热门 更多>