Need a special offer?Find out if your project fits.
+

Why doesn't the report show in new window with all data correctly passed on to it?

Answered
Franz J Fortuny asked on April 5, 2019

The following code shows text that works PERFECTLY OK:
flx[glreps] = new Flexmonster({
container: "pivr" + glreps,
toolbar: true,
width: "100%",
height: hpiv,
report: repfl,
licenseKey: lKey
});
 
repfl is formed this way:
repfl = JSON.parse(p.slice);
repfl.dataSource= { data:p.rows };
 
All of those are regular variables within a function. About 20 or 30 reports work perfectly all right. They do not have a slice the first time they are called, but then a slice is created and stored along with the report. Then it is retrieved to format the report data next time it is called.
 
The issue here is that this simple text for an external window, simply does not populate the grid with the report data:
 
<!DOCTYPE html>
<html>
<head>
<scriptsrc="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<scriptsrc="../flexmonster/flexmonster.js"></script>
</head>
<body>
<div id="fxm"></div>
<script>
 
var pivot= newFlexmonster({
componentFolder:"../flexmonster/",
container:"fxm",
report:window.opener._repfl,
toolbar:true,
width:"100%",
height:window.opener._hpiv,
licenseKey:"slkjsdlfkja ñalkjdf ñalkdfj añlkdfj ñalkdj f"
});
</script>
</body>
</html>
 
The window that opens DOES create the report grid, but EMPTY.
 
The opener window contains this code with the JSON DATA to be passed:
_hpiv=window.innerHeight*0.90;
//var repfl;
_PP=p;
if (!(O("tipo2"+lactiv).checked)) {
if (idrep>0) {
_repfl=JSON.parse(p.slice);
_repfl.dataSource= { data:p.rows };
}
 
The data taken from the opener is perfectly passed on to the new window. This can be checked in several ways:
variable _hpiv. If the value of this variable is not included, the size of the grid is wrong.
 
licence. It the proper license is not included, it shows a message warning about the lack of license and stops execution.
 
container. If I change the container, it goes to the right place.
 
No error is shown. The data is passed on to the new window as can be seen in the debug process.
 
But it will NOT populate the grid.
 
I have invested quite sometime in this ... Is this a bug?
I need to add a file (screenshot) further showing what I am saying here, but EDIT does not allow to upload a file.
This picture shows it:
https://res.cloudinary.com/ynurt0924/image/upload/v1554512975/flexmons_pic1_f2uxff.jpg
 

7 answers

Public
Franz J Fortuny April 6, 2019

After hours of looking for possible reasons why the new window would not show the report, this did the trick:

if (idrep > 0) {
 _repfl=JSON.parse(p.slice); 
 _repfl.dataSource= {
 data:p.rows,
 dataSourceType:"json"
};
}

 
The bold line did the trick. The mystery is, then, why does it generate the report properly in the opener window, but not in the new window?

Public
Vera Didenko Vera Didenko Flexmonster April 8, 2019

Hello, Franz,
 
Thank you for writing to us and providing us with sample code snippets and a screenshot.
 
We are glad that you found a way to solve the problem.

However, we failed to reproduce the issue you have encountered since we can't get the full picture from the code snippets alone.

From the code samples and description, it seems the cause of the problem lies in how the data is transferred to the pivot in the second window.
 

Please let us know if you have further questions.

Best Regards,
Vera

Public
Franz J Fortuny April 8, 2019

I thought I had solver the problem, but it persists in Chrome ONLY with big data.
More than 1.5 MB or around that, Chrome will fail to open the new window.
However, FIREFOX always opens the new window.
I would no know where to configure Windows Chrome to solve this problem.
If you have any idea, let me know.

Public
Tanya Gryshko Tanya Gryshko Flexmonster April 9, 2019

Hello, Franz,

Thanks for your update.

If you could share a sample project demonstrating the issue, it would greatly help us in our investigation.

Regards,
Tanya

Public
Franz J Fortuny April 9, 2019

I will prepare access to my webapp for you, with all the steps to get to the point where the problem appears. I will get back to you.

Public
Franz J Fortuny April 9, 2019

This is very important!

  1. Windows Edge did open the new window, but the report was never shown
  2. Chrome opens the window and shows the report only when total data does not exceed about 2 megabytes
  3. Firefox opens the window and shows the report
  4. All 3 browsers show the report when it is shown within the same window that received the raw JSON data, which is the same window where the parsing of the data took place

Conclusion: it has nothing to do with the Flexmonster code and all to do with:

  1. The browser
  2. Whether the window where the report will be shown is or is not the same window that received and parsed the JSON initial raw data

One more little problem to deal with if one wants to open the report in a different window from the initial SPA window.

Public
Dmytro Zvazhii Dmytro Zvazhii Flexmonster April 10, 2019

Hello Franz,
Thank you for providing additional details.
We need to run our own investigation to provide some recommendations. That is why we are highly interested in your sample where the issue is reproducible.
Waiting for the update from you.
Regards,
Dmytro

Please login or Register to Submit Answer