Create Custom Dashboard with Filtered Reports (v2020)

Tips submitted by PHPMaker users
Post Reply
Niijimasama
User
Posts: 85

Create Custom Dashboard with Filtered Reports (v2020)

Post by Niijimasama »

I am sure we have all experienced this with the in built Dashboard feature.
Reports & Charts with a filter (Page_selecting) that are added to the dashboard.
My solution below, was created for the need to add CHARTS to a dashboard and filter data based on user level and location.

REQUIREMENTS
a. PHPmaker (preferably v2020)
b. External Text Editor like Notepad++.

1. Create report and chart as you normally would (or as per Help File). eg. invoices summary report
2. Create custom PHP file (include common files) e.g dash.php
3. Save & generate Project.
4. Open the report file (OR BOTH) in the editor of choice.
5. In the report file, we are looking for 3 parts:

a) Create page object e.g
// Create page object
$Daily_Sales_Expenses_summary = new Daily_Sales_Expenses_summary();

b) Run page object e.g
// Run the page
$Daily_Sales_Expenses_summary->run();

c) The code that generates the chart on the report page e.g (has the condition if (!$DashboardReport) and is towards the lower part of the file)
if (!$DashboardReport) {
// Set up page break
if (($Daily_Sales_Expenses_summary->isExport("print") || $Daily_Sales_Expenses_summary->isExport("pdf") || $Daily_Sales_Expenses_summary->isExport("email") || $Daily_Sales_Expenses_summary->isExport("excel") && Config("USE_PHPEXCEL") || $Daily_Sales_Expenses_summary->isExport("word") && Config("USE_PHPWORD")) && $Daily_Sales_Expenses_summary->ExportChartPageBreak) {
// Page_Breaking server event
$Daily_Sales_Expenses_summary->Page_Breaking($Daily_Sales_Expenses_summary->ExportChartPageBreak, $Daily_Sales_Expenses_summary->PageBreakContent);
$Daily_Sales_Expenses->Daily_Sales_Expenses->PageBreakType = "after"; // Page break type
$Daily_Sales_Expenses->Daily_Sales_Expenses->PageBreak = $Daily_Sales_Expenses_summary->ExportChartPageBreak;
$Daily_Sales_Expenses->Daily_Sales_Expenses->PageBreakContent = $Daily_Sales_Expenses_summary->PageBreakContent;
}
// Set up chart drilldown
$Daily_Sales_Expenses->Daily_Sales_Expenses->DrillDownInPanel = $Daily_Sales_Expenses_summary->DrillDownInPanel;
$Daily_Sales_Expenses->Daily_Sales_Expenses->setParameter("clickurl", "daily_sales_expensessmry.php"); // Add click URL
$Daily_Sales_Expenses->Daily_Sales_Expenses->render();
}

6. Copy these and add them to a layout of your choice in the Content section of your custom file ie CustomTemplates->TableSpecific->CustomFile->Content e.g in a card element as below:
<div class="card">
<div class="card-header">
<h5 class="mb-0">
Today's Sales & Expenses
<!--?php echo date('d-m-Y') ?-->
</h5>
</div>
<!--h5 class="display-4"> Today's Sales</h5-->
<div class="card-body" style="overflow: auto;">

<?php
// Create page object
$Daily_Sales_Expenses_summary = new Daily_Sales_Expenses_summary();
// Run the page
$Daily_Sales_Expenses_summary->run();
if (!$DashboardReport) {
// Set up page break
if (($Daily_Sales_Expenses_summary->isExport("print") || $Daily_Sales_Expenses_summary->isExport("pdf") || $Daily_Sales_Expenses_summary->isExport("email") || $Daily_Sales_Expenses_summary->isExport("excel") && Config("USE_PHPEXCEL") || $Daily_Sales_Expenses_summary->isExport("word") && Config("USE_PHPWORD")) && $Daily_Sales_Expenses_summary->ExportChartPageBreak) {
// Page_Breaking server event
$Daily_Sales_Expenses_summary->Page_Breaking($Daily_Sales_Expenses_summary->ExportChartPageBreak, $Daily_Sales_Expenses_summary->PageBreakContent);
$Daily_Sales_Expenses->Daily_Sales_Expenses->PageBreakType = "after"; // Page break type
$Daily_Sales_Expenses->Daily_Sales_Expenses->PageBreak = $Daily_Sales_Expenses_summary->ExportChartPageBreak;
$Daily_Sales_Expenses->Daily_Sales_Expenses->PageBreakContent = $Daily_Sales_Expenses_summary->PageBreakContent;
}
// Set up chart drilldown
$Daily_Sales_Expenses->Daily_Sales_Expenses->DrillDownInPanel = $Daily_Sales_Expenses_summary->DrillDownInPanel;
$Daily_Sales_Expenses->Daily_Sales_Expenses->setParameter("clickurl", "daily_sales_expensessmry.php"); // Add click URL
$Daily_Sales_Expenses->Daily_Sales_Expenses->render();
}

?>
</div>
</div>

7. Generate your project and check your file. You may style the content as you desire/required. This works for all chart types.

Let me now how it goes.

kingpin67
User
Posts: 1

Post by kingpin67 »

hi, it worked pretty fine. does it work in 2021 as well?

Niijimasama
User
Posts: 85

Post by Niijimasama »

kingpin67 wrote:
> hi, it worked pretty fine. does it work in 2021 as well?

Hi. Currently migrating my project. Will get back to you in 24 hours

Post Reply