ParamQuery grid support forum

General Category => Help for ParamQuery Pro => Topic started by: hellokert on April 21, 2017, 12:14:27 pm

Title: EXPORT function absolutely not working
Post by: hellokert on April 21, 2017, 12:14:27 pm
Surely i can not do everything, but i do not work with excel export. By clicking "excel export" button, nothing happens.

When it already works, I will use it on the server side, but I do not know how to refer to php as well.
The attached code was copied entirely from the paramquery example programs.

What is missing?

Code: [Select]
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/pq-pro/pqgrid.min.css" />
<link rel="stylesheet" href="/pq-pro/pqgrid.ui.min.css" />
<link rel="stylesheet" href="/pq-pro/themes/antracit/pqgrid.css" />
<link rel="stylesheet" href="/pq-pro/myTheme.css" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css" />

<script src="/pq-pro/pqgrid.min.js"></script>
<script src="/pq-pro/touch-punch/touch-punch.min.js"></script>
<script src="/pq-pro/localize/pq-localize-hu.js"></script>
<script src="/pq-pro/jsZip-2.5.0/jszip.min.js"></script>

<script>

    $(function () {
        var data = [
            { rank: 1, company: 'Exxon Mobil', revenues: 339938.0, profits: 36130.0 },
            { rank: 2, company: 'Wal-Mart Stores', revenues: 315654.0, profits: 11231.0 },
            { rank: 3, company: 'Royal Dutch Shell', revenues: 306731.0, profits: 25311.0 },
            { rank: 4, company: 'BP', revenues: 267600.0, profits: 22341.0 },
            { rank: 5, company: 'General Motors', revenues: 192604.0, profits: -10567.0 },
            { rank: 6, company: 'Chevron', revenues: 189481.0, profits: 14099.0 },
            { rank: 7, company: 'DaimlerChrysler', revenues: 186106.3, profits: 3536.3 },
            { rank: 8, company: 'Toyota Motor', revenues: 185805.0, profits: 12119.6 },
            { rank: 9, company: 'Ford Motor', revenues: 177210.0, profits: 2024.0 },
            { rank: 10, company: 'ConocoPhillips', revenues: 166683.0, profits: 13529.0 },
            { rank: 11, company: 'General Electric', revenues: 157153.0, profits: 16353.0 },
            { rank: 12, company: 'Total', revenues: 152360.7, profits: 15250.0 },
            { rank: 13, company: 'ING Group', revenues: 138235.3, profits: 8958.9 },
            { rank: 14, company: 'Citigroup', revenues: 131045.0, profits: 24589.0 },
            { rank: 15, company: 'AXA', revenues: 129839.2, profits: 5186.5 },
            { rank: 16, company: 'Allianz', revenues: 121406.0, profits: 5442.4 },
            { rank: 17, company: 'Volkswagen', revenues: 118376.6, profits: 1391.7 },
            { rank: 18, company: 'Fortis', revenues: 112351.4, profits: 4896.3 },
            { rank: 19, company: 'Crédit Agricole', revenues: 110764.6, profits: 7434.3 },
            { rank: 20, company: 'American Intl. Group', revenues: 108905.0, profits: 10477.0 }
        ];

        var obj = {
            showTitle: false,
            height: 'flex',
            scrollModel: { autoFit: true },
            pageModel: { type: 'local' },
            toolbar: {
                cls: 'pq-toolbar-export',
                items: [{
                    type: 'button',
                    label: "Export to Excel",
                    icon: 'ui-icon-document',
                    listeners: [{
                        "click": function (evt) {
                             $("#grid_export").pqGrid("exportExcel", { url: "/o/", sheetName: "pqGrid sheet" });
                        }
                    }]
                }]
            }
        };
        obj.colModel = [
            { title: "Rank", width: 100, dataType: "integer", dataIndx: "rank" },
            { title: "Company", width: 200, dataType: "string", dataIndx: "company" },
            { title: "Revenues ($ millions)", width: 150, dataType: "float", align: "right", dataIndx: "revenues" },
            { title: "Profits ($ millions)", width: 150, dataType: "float", align: "right", dataIndx: "profits",
                render: function (ui) {
                    return $.paramquery.formatCurrency(ui.cellData);
                }
            }
        ];
        obj.dataModel = {
            data: data,
            location: "local",
            sorting: "local",
            sortIndx: "profits",
            sortDir: "down"
        };
        var $grid = $("#grid_export").pqGrid(obj);
    });

</script>


</head>
<body style="font-size: 10px">

<div id="grid_export" style="margin:auto;"></div>
</body>
</html>

Thanks for your help.
Title: Re: EXPORT function absolutely not working
Post by: paramvir on April 21, 2017, 05:32:24 pm
What is url: "/o/" pointing to in your exportExcel method? This is not the code from examples.

Please

1. read the API documentation https://paramquery.com/pro/api#method-exportData

2. Check both remote and local export examples.

https://paramquery.com/pro/demos/export

https://paramquery.com/pro/demos/export_local

3. Make yourself familiar with Chrome devTools or firebug. This would help you to look out for errors (e.g., incorrect urls ).

4. Get familiar with GET and POST requests or use local export.
Title: Re: EXPORT function absolutely not working
Post by: hellokert on April 21, 2017, 07:39:08 pm
Thank you, but unfortunately this did not help.

"/o/" is an path in localhost.

Please, write me how and what to give here:
Code: [Select]
$("#grid_export").pqGrid("exportExcel", { url: "/pro/demos/excel", sheetName: "pqGrid sheet" });

Where can I refer to this php code?
Code: [Select]
if (isset($_POST["excel"]) && isset($_POST["extension"]))       
{
    $extension = $_POST["extension"];   
    if ($extension == "csv" || $extension == "xml")
    {               
        session_start();
        $_SESSION['excel'] = $_POST['excel'];
        $filename = "pqGrid." . $extension;             
        echo $filename;       
    }
}
else if(isset($_GET["filename"]))
{
    $filename = $_GET["filename"];
    if ($filename == "pqGrid.csv" || $filename == "pqGrid.xml")
    {
        session_start();       
        if (isset($_SESSION['excel'])) {   
            $excel = $_SESSION['excel'];       
            $_SESSION['excel']=null;       
            header('Content-Disposition: attachment; filename="'.$filename.'"');
            header('Content-Type: text/plain');
            header('Content-Length: ' . strlen($excel));
            header('Connection: close');           
            echo $excel;
            exit;
        }   
    }
}

Thank you.
Title: Re: EXPORT function absolutely not working
Post by: hellokert on April 21, 2017, 09:43:51 pm
OK, the local version with filesaver succeeded.

GET and POST requests: Where can I refer to this php code url?
Title: Re: EXPORT function absolutely not working
Post by: paramvir on April 24, 2017, 10:02:23 am
Add php code into a php file e.g., somefile.php and host it in webserver.

Use the absolute or relative url ( Uniform Resource Locator ) of the php file in the url parameter of exportData method.

url: 'http://.....somepath/somefile.php'

I noticed that you have been using the code from the free version. Please consult the Pro documentation and demos and use the correct code.

https://paramquery.com/pro/api#method-exportData
https://paramquery.com/pro/demos/export
Title: Re: EXPORT function absolutely not working
Post by: hellokert on April 24, 2017, 11:26:55 am
Yes, thank you.

In the meantime I have solved it, but the url has not been clear so far in your samples.

But it is clear: url: 'http://.....somepath/somefile.php'