Jaki jest najbardziej uproszczony sposób generowania raportów w ramach Codeigniter? Czy istnieje jakaś biblioteka dostępna do wykonania tego zadania? Oprócz wykreślania, jakie są inne zasoby, aby to zrobić.Raporty w Codeigniter
14
A
Odpowiedz
41
Sam znalazłem dobre rozwiązanie. Jeśli chcesz generować raporty w formacie csv, to bardzo łatwo z codeigniter. Twoja funkcja modelu
function index(){
return $query = $this->db->get('my_table');
/*
Here you should note i am returning
the query object instead of
$query->result() or $query->result_array()
*/
}
Teraz w kontrolerze
function get_report(){
$this->load->model('my_model');
$this->load->dbutil();
$this->load->helper('file');
/* get the object */
$report = $this->my_model->index();
/* pass it to db utility function */
$new_report = $this->dbutil->csv_from_result($report);
/* Now use it to write file. write_file helper function will do it */
write_file('csv_file.csv',$new_report);
/* Done */
}
Nie są wymagane żadne pozory wszystko jest dostępne w codeigntier. Twoje zdrowie! Jeśli chcesz napisać plik xml, to też jest łatwe.
Po prostu użyj metody xml_from_result()
dbutil i użyj write_file('xml_file.xml,$new_report)
Odwiedź te linki, które pomogą.
I
0
Pełne wyjaśnienie:
Model:
class Csv_m extends MY_Model {
function getCSV() {
$sql = "SELECT * FROM tablename";
return $this->db->query($sql);
}
}
Kontroler:
class Generate extends CI_Controller {
var $file_path;
public function __construct() {
parent::__construct();
$this->file_path = realpath(APPPATH . '../assets/csv');
}
function index() {
$this->load->model('csv_m');
$this->load->dbutil();
$this->load->helper('file');
//get the object
$report = $this->csv_m->getCSV();
$delimiter = ",";
$newline = "\r\n";
$new_report = $this->dbutil->csv_from_result($report, $delimiter, $newline);
// write file
write_file($this->file_path . '/csv_file.csv', $new_report);
//force download from server
$this->load->helper('download');
$data = file_get_contents($this->file_path . '/csv_file.csv');
$name = 'name-'.date('d-m-Y').'.csv';
force_download($name, $data);
}
}
0
Użyłem tego do moich raportów .csv. ma możliwość zmiany nazwy pól bazy danych w pliku csv. tutaj jest kod.
public function export_csv() {
$file_name = 'File_name_'.date("Y-m-d h-i-s").'.csv';
$query = $this->db->query('SELECT
id as "Id", // id is table id and Id is the csv header field.
franchiseopt as "Nearest Location",
hear_about_us as "How did you hear about us?",
specify as "Specify",
email as "Email",
noguests as "Number of Guests",
eventdate as "Date of Event",
name as "Your Name",
phone as "Phone Number",
locationevent as "Location of Event",
message as "More Details"
FROM TABLE_NAME ORDER BY id DESC');
$this->load->dbutil();
$data = $this->dbutil->csv_from_result($query);
$this->load->helper('download');
force_download($file_name, $data);
exit();
}
Oczywiście Należy wymienić pola tabeli bazy danych zgodnie z tabelą.
Z mojego doświadczenia wynika, że nic nie znalazłem. Czy mogę się dowiedzieć, jaki typ raportu dokładnie widzisz? – LoganPHP
Chcę wygenerować raport z zapytania. Powinien być jakiś format csv, pdf lub inaczej –