Page 1 of 1

Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Mon Mar 04, 2019 12:47 am
by shyam.pundkar
Hi,

We want to show our application specific message box whenever the report generation fails.
ATM it shows stimulsoft error message stiJsViewerForm.
report.web.error.message.png
report.web.error.message.png (3.04 KiB) Viewed 5963 times
Is there any way to know if the report generation failed, at the client side using StiJsViewer? any events?

Thanks
Shyam

Re: Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Mon Mar 04, 2019 9:23 pm
by Lech Kulikowski
Hello,

Which error do you have, in which moment it occurs?

Thank you.

Re: Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Tue Mar 05, 2019 9:23 am
by shyam.pundkar
Hi,

We give data to viewer and do postaction.
jsReportViewer.options.formValues = {
selectionData: jsonData
};
model.jsReportViewer.postAction();
so all control is handed over to viewer now. which does further call, rendering,error handling etc

We do business validation while generating the report on the server side. On validation fail we return our own customized error message, eg. 'xyz data is missing please contact admin'. The viewer handles our customized message through its own error handling mechanism on client and show it.

The requirement is that the reportviewer should not handle the error by itself instead it should let the host to handle that. so that we can execute our own business logic on error.
Please let me know if have more questions...

Re: Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Wed Mar 06, 2019 8:08 am
by Lech Kulikowski
Hello,

Please try to check the following code:

Code: Select all

var viewer = new Stimulsoft.Viewer.StiViewer(viewerOptions, "StiViewer", false);
viewer.renderHtml("content");

var errorForm = viewer.jsObject.controls.forms.errorMessageForm || viewer.jsObject.InitializeErrorMessageForm();
errorForm.show("Message text!");
Thank you.

Re: Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Wed Mar 06, 2019 11:49 pm
by shyam.pundkar
Hi,

we dont use renderhtml(). we use postaction().
once we call viewer.postaction() we dont get any call back notifying the report generation outcome.
Can you recommend a way for call back from viewer please? i guess that way we will know if anything goes wrong in the viewer.

Thanks
Shyam

Re: Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Thu Mar 07, 2019 12:57 pm
by Lech Kulikowski
Hello,

Please check the following code:

Code: Select all

var viewer = new Stimulsoft.Viewer.StiViewer(viewerOptions, "StiViewer", false);
            viewer.renderHtml("content");

            //ovveride callback method
            viewer.jsObject.showReportPage_ = viewer.jsObject.showReportPage;

            viewer.jsObject.showReportPage = function (data, jsObject) {
                //postAction callback here
                if (typeof data == "string" && data.indexOf("ServerError:") == 0) {
                    //for example
                    var errorForm = viewer.jsObject.controls.forms.errorMessageForm || viewer.jsObject.InitializeErrorMessageForm();
                    errorForm.show("Message text!");
                }
                viewer.jsObject.showReportPage_(data, jsObject);
            }
Thank you.

Re: Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Tue Mar 12, 2019 3:25 am
by shyam.pundkar
It worked! Thank you so much!

Re: Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Tue Mar 12, 2019 3:01 pm
by Lech Kulikowski
Hello

We are always glad to help you!

Thank you.

Re: Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Wed Dec 02, 2020 3:39 pm
by alexey.eureca
Lech Kulikowski wrote: Thu Mar 07, 2019 12:57 pm Hello,

Please check the following code:

Code: Select all

var viewer = new Stimulsoft.Viewer.StiViewer(viewerOptions, "StiViewer", false);
            viewer.renderHtml("content");

            //ovveride callback method
            viewer.jsObject.showReportPage_ = viewer.jsObject.showReportPage;

            viewer.jsObject.showReportPage = function (data, jsObject) {
                //postAction callback here
                if (typeof data == "string" && data.indexOf("ServerError:") == 0) {
                    //for example
                    var errorForm = viewer.jsObject.controls.forms.errorMessageForm || viewer.jsObject.InitializeErrorMessageForm();
                    errorForm.show("Message text!");
                }
                viewer.jsObject.showReportPage_(data, jsObject);
            }
Thank you.
Hello
How can i do the same do the same thing for ASP.NET MVC?

Thanks

Re: Want to show a custom error message box instead of default errorMessageForm (stiJsViewerForm)

Posted: Thu Dec 03, 2020 1:09 pm
by Lech Kulikowski
Hello,

You can use the following code:

Code: Select all

//where jsMvcViewer1 - "js" + Viewer ID

    jsMvcViewer1.onready = function () {
        //ovveride callback method
        jsMvcViewer1.showReportPage_ = jsMvcViewer1.showReportPage;

        jsMvcViewer1.showReportPage = function (data, jsObject) {
            //postAction callback here
            if (typeof data == "string" && data.indexOf("ServerError:") == 0) {
                //for example
                var errorForm = jsMvcViewer1.controls.forms.errorMessageForm || jsMvcViewer1.InitializeErrorMessageForm();
                errorForm.show("Message text!");
            }
            jsMvcViewer1.showReportPage_(data, jsObject);
        }
    }
Thank you.