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

Stimulsoft Reports.WEB discussion
Post Reply
shyam.pundkar
Posts: 56
Joined: Fri Feb 21, 2014 9:26 am

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

Post 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 3721 times
Is there any way to know if the report generation failed, at the client side using StiJsViewer? any events?

Thanks
Shyam
Lech Kulikowski
Posts: 6263
Joined: Tue Mar 20, 2018 5:34 am

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

Post by Lech Kulikowski »

Hello,

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

Thank you.
shyam.pundkar
Posts: 56
Joined: Fri Feb 21, 2014 9:26 am

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

Post 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...
Lech Kulikowski
Posts: 6263
Joined: Tue Mar 20, 2018 5:34 am

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

Post 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.
shyam.pundkar
Posts: 56
Joined: Fri Feb 21, 2014 9:26 am

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

Post 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
Lech Kulikowski
Posts: 6263
Joined: Tue Mar 20, 2018 5:34 am

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

Post 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.
shyam.pundkar
Posts: 56
Joined: Fri Feb 21, 2014 9:26 am

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

Post by shyam.pundkar »

It worked! Thank you so much!
Lech Kulikowski
Posts: 6263
Joined: Tue Mar 20, 2018 5:34 am

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

Post by Lech Kulikowski »

Hello

We are always glad to help you!

Thank you.
alexey.eureca
Posts: 1
Joined: Wed Dec 02, 2020 3:31 pm

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

Post 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
Lech Kulikowski
Posts: 6263
Joined: Tue Mar 20, 2018 5:34 am

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

Post 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.
Post Reply