/*

Reportico - PHP Reporting Tool

Copyright (C) 2010-2014 Peter Deed

This program is free software; you can redistribute it and/or

modify it under the terms of the GNU General Public License

as published by the Free Software Foundation; either version 2

of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software

Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

* File: run.php

*

* Reportico runner script

*

* @link http://www.reportico.org/

* @copyright 2010-2014 Peter Deed

* @author Peter Deed

* @package Reportico

* @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL

* @version $Id: run.php,v 1.25 2014/05/17 15:12:31 peter Exp $

*/

// set error reporting level

error_reporting(E_ALL);

// Set the timezone according to system defaults

date_default_timezone_set(@date_default_timezone_get());

// Reserver 100Mb for running

ini_set("memory_limit","100M");

// Allow a good time for long reports to run. Set to 0 to allow unlimited time

ini_set("max_execution_time","90");

// Include Reportico - for embedding reportico in a script running from outside the Reportico directory,

// just include the full path to the file reportico.php

//require_once('/reportico.php');

require_once('reportico.php');

// Only turn on output buffering if necessary, normally leave this uncommented

//ob_start();

$q = new reportico();

// In design mode, allow sql debugging

//$q->allow_debug = true;

// Specify any URL parameters that should be added into any links generated in Reportico.

// Useful when embedding in another application or frameworks where requests need to be channelled

// back though themselves

//$q->forward_url_get_parameters = "";

// Reportico Ajax mode. If set to true will run all reportico requests from buttons and links

// through AJAX, meaning reportico will refresh in its own window and not refresh the whole page

//$q->reportico_ajax_mode = true;

/*

** Initial execution states .. allows you to start user and limit user to specfic

** report menus, reports or report output

** The default behaviour is to show the Administration page on initial startup

*/

// Start user in specific project

//$q->initial_project = "";

// If starting user in specific project then project passweord is required if one exists

// and you dont want user to have to type it in

//$q->initial_project_password = "";

// Specify a report to start user in specify the xml report file in the specified project folder

//$q->initial_report = "reportfile.xml";

// Specify whether user is started in administration page, project menu, report criteria entry,

// report output or report design mode, use respectively ( "ADMIN", "MENU", "PREPARE", "EXECUTE", "MAINTAIN")

// default is "ADMIN"

//$q->initial_execute_mode = "";

// When only executing a report, indicates what format it should be showed in .. HTML(the default), PDF or CSV

//$q->initial_output_format = "HTML";

// When initial mode is report criteria entry or execution, these set the flags for whether report detail, group hears, columns headers

// etc are to be show. For example you might only want to run a report and show the graphs, by default all show except criteria

//$q->initial_show_detail = "show";

//$q->initial_show_graph = "show";

//$q->initial_show_group_headers = "show";

//$q->initial_show_group_trailers = "show";

//$q->initial_show_column_headers = "show";

//$q->initial_show_criteria = "show";

// Set default output style - TABLE = one row per record, FORM = one page per record

//$q->initial_output_style = "TABLE";

// Set source SQL to generate report from, without requirement for report , requires an initial_project to be defined for connection details

//$q->initial_sql = "SELECT column1 AS columntitle1, column2 AS columntitle2 FROM table";

// Set Report Title when running reort from an SQL statement above

// $q->set_attribute("ReportTitle", "Report Title");

// Specify access mode to limit what user can do, one of :-

// FULL - the default, allows user to log in under admin/design mode and design reports

// ALLPROJECTS - allows entry to admin page to select project but no ability to logon in admin/designer mode

// ONEPROJECT - allows entry to a single project and no access to the admin page

// ONEREPORT - limits user to single report, crtieria entry and report execution ( requires initial project/report )

// REPORTOUTPUT - executes a report and allows to "Return" button to crtieria entry ( requires initial project/report )

//$q->access_mode = "";

// Generate report definition from SQL and set some column / report attributes

// Also the full report definition can be built up programmatically

// which requires further doicumentation

//$q->importSQL("SELECT column1 AS columntitle1, column2 AS columntitle2 FROM table");

//$q->get_column("column1")->set_attribute("column_display","hide");

//$q->get_column("column1")->set_attribute("column_title","Custom Title");

//$q->set_attribute("ReportTitle","New Report Title");

// Default initial execute mode to single report output if REPORTOUTPUT mode specified

if ( $q->access_mode == "REPORTOUTPUT" )

$q->initial_execute_mode = "EXECUTE";

// Provide an existing connection to Reportico, at the moment to use this there still needs to be project

// in existence, but the connection specified here will override the

// this allows you build create temporary tables and perform other actions prior to reporting

// $q->external_connection = false;

// try

// {

// $q->external_connection = new PDO("mysql:host=localhost; dbname=dbname", "username", "password" );

// }

// catch ( PDOException $ex )

// {

// $q->external_connection = false;

// // Handle Error

// }

// Specify alternate path to projects folder, templates_c folder

//$q->projects_folder = "projects";

//$q->admin_projects_folder = "projects";

//$q->compiled_templates_folder = "templates_c";

// For setting report criteria parameters.. use the criteria name as the key and the criteria value

// $q->initial_execution_parameters = array();

// $q->initial_execution_parameters["lookupcriteria"] = "value1,value2";

// $q->initial_execution_parameters["datecriteria"] = "2014-07-01";

// $q->initial_execution_parameters["datecriteria2"] = "TODAY";

// $q->initial_execution_parameters["daterangecriteria1"] = "2014-01-01-2014-02-01";

// $q->initial_execution_parameters["daterangecriteria2"] = "FIRSTOFMONTH-LASTOFMONTH";

// The session namespace to use. Only relevant when showing more than one report in a single page. Specify a name

// to store all session variables for this instance and then when running another report instance later in the script

// use another name

//$q->session_namespace = "namespace";

// Current user - when embedding reportico, you may wish to run queries by user. In this case

// set the current user here. Then you can use the construct {FRAMEWORK_USER} within your queries

//$q->external_user = "";

// Indicates whether report output should include a refresh button

//$q->show_refresh_button = false;

// Set to true if you are embedding in another report

//$q->embedded_report = false;

// Set to true if you want to clear the report session whenever you call this script

// $q->clear_reportico_session = true;

// Specify an alternative AJAX runner from the stanfdard run.php

//$q=>reportico_ajax_script_url = $_SERVER["SCRIPT_NAME"];

// If you want to connect to a reporting database whose connection information is available in the calling

// script, then you should configure your project connection type to "framework" using the configure project link

//and then you can pass your connection info here

//define('SW_FRAMEWORK_DB_DRIVER','pdo_mysql');

//define('SW_FRAMEWORK_DB_USER', '');

//define('SW_FRAMEWORK_DB_PASSWORD','PASSWORD');

//define('SW_FRAMEWORK_DB_HOST', '127.0.0.1'); // Use ip:port to specifiy a non standard port

//define('SW_FRAMEWORK_DB_DATABASE', '');

// For passing external user parameters, can be referenced in SQL with {USER_PARAM,parameter_name}

// and can be referenced in custom SQL with $this->user_parameters

//$q->user_parameters["your_parameter_name"] = "your parameter value";

// Jquery already included?

//$q->jquery_preloaded = false;

// Bootstrap Features

// Set bootstrap_styles to false for reportico classic styles, or "3" for bootstrap 3 look and feel and 2 for bootstrap 2

// If you are embedding reportico and you have already loaded bootstrap then set bootstrap_preloaded equals true so reportico

// doestnt load it again.

//$q->bootstrap_styles = "3";

//$q->bootstrap_preloaded = false;

// In bootstrap enable pages, the bootstrap modal is by default used for the quick edit buttons

// but they can be ignored and reportico's own modal invoked by setting this to true

//$q->force_reportico_mini_maintains = false;

// Engine to use for charts ..

// HTML reports can use javascript charting, PDF reports must use PCHART

//$q->charting_engine = "PCHART";

//$q->charting_engine_html = "NVD3";

// Whether to turn on dynamic grids to provide searchable/sortable reports

// $q->dynamic_grids = true;

// $q->dynamic_grids_sortable = true;

// $q->dynamic_grids_searchable = true;

// $q->dynamic_grids_paging = false;

// $q->dynamic_grids_page_size = 10;

// Show or hide various report elements

//$q->output_template_parameters["show_hide_navigation_menu"] = "show";

//$q->output_template_parameters["show_hide_dropdown_menu"] = "show";

//$q->output_template_parameters["show_hide_report_output_title"] = "show";

//$q->output_template_parameters["show_hide_prepare_section_boxes"] = "show";

//$q->output_template_parameters["show_hide_prepare_pdf_button"] = "show";

//$q->output_template_parameters["show_hide_prepare_html_button"] = "show";

//$q->output_template_parameters["show_hide_prepare_print_html_button"] = "show";

//$q->output_template_parameters["show_hide_prepare_csv_button"] = "show";

//$q->output_template_parameters["show_hide_prepare_page_style"] = "show";

// Static Menu definition

// ======================

// identifies the items that will show in the middle of the project menu page.

// If not set will use the project level menu definitions in project/projectname/menu.php

// To have no static menu ( for example if you just want to use a drop down then set to empty array )

// To define a static menu, follow the example here.

// report can be a valid report file ( without the xml suffix ).

// If title is left as AUTO then the title will be taken form the report definition

// Use title of BLANKLINE to separate items and LINE to draw a horizontal line separator

//$q->static_menu = array (

//array ( "report" => "an_xml_reportfile1", "title" => "" ),

//array ( "report" => "another_reportfile", "title" => "" ),

//array ( "report" => "", "title" => "BLANKLINE" ),

//array ( "report" => "anotherfreportfile", "title" => "Custom Title" ),

//array ( "report" => "", "title" => "BLANKLINE" ),

//array ( "report" => "andanother", "title" => "Another Custom Title" ),

//);

// To auto generate a static menu from all the xml report files in the project use

//$q->static_menu = array ( array ( "report" => ".*\.xml", "title" => "" ) );

// To hide the static report menu

//$q->static_menu = array ();

// Dropdown Menu definition

// ========================

// Menu items for the drop down menu

// Enter definition for the the dropdown menu options across the top of the page

// Each array element represents a dropdown menu across the page and sub array items for each drop down

// You must specifiy a project folder for each project entry and the reportfile definitions must point to a valid xml report file

// within the specified project

//$q->dropdown_menu = array(

// array (

// "project" => "projectname",

// "title" => "dropdown menu 1 title",

// "items" => array (

// array ( "reportfile" => "report" ),

// array ( "reportfile" => "anotherreport" ),

// )

// ),

// array (

// "project" => "projectname",

// "title" => "dropdown menu 2 title",

// "items" => array (

// array ( "reportfile" => "report" ),

// array ( "reportfile" => "anotherreport" ),

// )

// ),

// );

// Run the report

$q->execute();

//ob_end_flush();

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐