Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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
Javascript Sapui5 ODATA忙指示灯对话框don';不显示_Javascript_Jquery_Odata_Sapui5 - Fatal编程技术网

Javascript Sapui5 ODATA忙指示灯对话框don';不显示

Javascript Sapui5 ODATA忙指示灯对话框don';不显示,javascript,jquery,odata,sapui5,Javascript,Jquery,Odata,Sapui5,我的代码有一个问题,当我点击“保存”时,我需要显示一个繁忙的对话框,但它没有显示我不知道为什么,我搜索了5天,没有任何帮助,我尝试了异步发布,延迟调用和其他事情,使这项工作 当我点击按钮“Guardar”时,在图像上,之后我需要在与服务器的通信开始时显示一个繁忙的对话框,我拥有的代码是下一个: onSaveRaw: function(oEvent) { var that = this; var ILgort = this.byId("sAlmacen_id")

我的代码有一个问题,当我点击“保存”时,我需要显示一个繁忙的对话框,但它没有显示我不知道为什么,我搜索了5天,没有任何帮助,我尝试了异步发布,延迟调用和其他事情,使这项工作

当我点击按钮“Guardar”时,在图像上,之后我需要在与服务器的通信开始时显示一个繁忙的对话框,我拥有的代码是下一个:

onSaveRaw: function(oEvent) {

        var that = this;
        var ILgort = this.byId("sAlmacen_id").getValue();
        var IWerks = this.byId("sCentro_id").getValue();
        var IFechaoper = this.byId("sDate_id").getValue();
        var RecTemm = this.byId("sTemm_id").getValue();
        var RecTemt = this.byId("sTemt_id").getValue();
        var RecDeno = this.byId("sDeno_id").getValue();
        var RecPorc = this.byId("sPorc_id").getValue();
        var RecPres = this.byId("sPres_id").getValue();
        var RecHume = this.getView().byId("_select0").getSelectedKey();
        var RecAgua = this.getView().byId("_select1").getSelectedKey();

        if (this.validarCampoRequerido(ILgort)) {
            return;
        }
        if (this.validarCampoRequerido(IWerks)) {
            return;
        }
        if (this.validarCampoRequerido(IFechaoper)) {
            return;
        }
        if (this.validarCampoRequerido(RecTemm)) {
            return;
        }
        if (this.validarCampoRequerido(RecTemt)) {
            return;
        }
        if (this.validarCampoRequerido(RecDeno)) {
            return;
        }
        if (this.validarCampoRequerido(RecPorc)) {
            return;
        }
        if (this.validarCampoRequerido(RecPres)) {
            return;
        }
        //Creación del catalogo de datos del formulario.
        var dialog = new sap.m.Dialog({
            title: "Confirmación",
            type: "Message",
            state: "Warning",
            content: new sap.m.Text({
                text: "Se generará el documento de inventario. ¿Desea continuar?"
            }),
            beginButton: new sap.m.Button({
                text: "Guardar",
                press: function() {
                    var oData = {
                        "ILgort": ILgort,
                        "IWerks": IWerks,
                        "IFechainv": IFechaoper,
                        "ICharact010": RecTemm,
                        "ICharact020": RecTemt,
                        "ICharact030": RecDeno,
                        "ICharact040": RecPorc,
                        "ICharact050": RecPres,
                        "ICharact080": RecHume,
                        "ICharact090": RecAgua
                    };
                    //console.log(oData);var _this = this;

                    //Se crea instancia del servicio
                    var oModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/sap/XXXXXXXXX/");
                    var oGlobalBusyDialog = new sap.m.BusyDialog();
                    oGlobalBusyDialog.open();
                    oModel.create("/LECTURATANQUESet", oData, null, function(oResponse) {
                        sap.m.MessageBox.alert(oResponse.Message, {
                            title: "Exito",
                            textDirection: sap.ui.core.TextDirection.Inherit,
                            onClose: function() {
                                that.onRefresh();
                                that._navBack();
                            }
                        });
                    }, function(oError) {
                        var oNum = oError.response.statusCode;
                        if (oNum == "500") {
                            sap.m.MessageBox.alert("Error, Sesión Finalizada por tiempo de Conexión.", {
                                title: "Error",
                                textDirection: sap.ui.core.TextDirection.Inherit,
                                onClose: function() {}

                            });

                        } else if (oNum == "504") {
                            sap.m.MessageBox.alert("Error de gateway, vuelva a intentar por favor.", {
                                title: "Error",
                                textDirection: sap.ui.core.TextDirection.Inherit,
                                onClose: function() {}

                            });

                        } else {

                            var oMsg = $(oError.response.body).find("message").first().text();
                            sap.m.MessageBox.alert(oMsg, {
                                title: "Error",
                                textDirection: sap.ui.core.TextDirection.Inherit,
                                onClose: function() {}

                            });

                        }

                    });
                    oGlobalBusyDialog.close();
                    dialog.close();
                }
            }),
            endButton: new sap.m.Button({
                text: "Cancelar",
                press: function() {
                    dialog.close();
                }
            }),
            afterClose: function() {

            }
        });
        dialog.open();

    }

如果有人能给我任何提示,我将非常感激。

你需要调用
oGlobalBusyDialog.close()
create
函数的成功和错误回调中。因此,当
create
功能完成时(成功或错误),您将关闭忙碌对话框

此外,还必须删除
oGlobalBusyDialog.close()的最后第二行中,按
事件处理程序

编辑(重新阅读文档后更新如何使用
创建

像这样使用
create

oModel.create("/LECTURATANQUESet",
    oData, {
        success: successCallback,
        error: errorCallbak
    }
)

您使用了错误的总线指示器。试试这个:

sap.ui.define([
    "sap/ui/core/BusyIndicator"
],
function (BusyIndicator) {
    BusyIndicator.show();
    //...
    BusyIndicator.hide();
});

我要试试!:)另外,根据,创建函数将成功回调作为第5个参数,错误作为第6个参数。你能不能改变一下,也试一下?试着改变一下方法?怎么做?谢谢你的例子,我现在就试试这个,如果有效,我会回复你:)好吧,不起作用,是一样的,它会保持冻结,稍后不会显示消息对话框,显示成功或错误…:/试试这个“this.getView().setBusy(true).setBusyIndicatorDelay(0)”。希望它对您有效如果您这样做,指示器将显示并立即隐藏。对
hide()
的调用必须在异步回调中进行。@Marc绝对,这对我来说很明显,这就是为什么我只是简化了使用示例。。。然后我还要补充一点,当发生任何异步错误时,BusyIndicator应该隐藏,否则它会锁定整个页面他的
hide
不在回调中。@Sarco哦,您使用的是哪个版本的sapui5?1.28.44,那个版本。