تقارير في Codeigniter

ما هي الطريقة الأكثر بساطة لإنشاء التقارير في إطار Codeigniter؟ هل هناك أي مكتبة متاحة للقيام بهذه المهمة؟ ما عدا رسم ما هي الموارد الأخرى للقيام بذلك.

14
أريد إنشاء تقرير من استعلام. يجب أن يكون أي تنسيق csv أو pdf أو غير ذلك
وأضاف المؤلف Muhammad Raheel, مصدر
في تجربتي لم أجد أي شيء. ربما أعرف نوع التقرير الذي تبحث عنه بالضبط؟
وأضاف المؤلف LoganPHP, مصدر

3 إجابة

وجدت حل لطيف نفسي. إذا كنت تريد إنشاء تقارير بتنسيق csv ، فمن السهل جدًا استخدام برنامج Codeigniter. وظيفة النموذج الخاص بك

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()
    */
}    

الآن في وحدة تحكم

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    */
}

مطلوب أي externals كل شيء متوفر في codeigntier. في صحتك! إذا كنت تريد أن تكتب ملف xml فمن السهل أيضا.
 ما عليك سوى استخدام xml_from_result() طريقة dbutil واستخدام write_file ('xml_file.xml، $ new_report) قم بزيارة هذه الروابط التي سيساعدونها.

Database Utility Class

و

File Helper

41
وأضاف
هذا يعمل لملف اكسل يا سيدي؟
وأضاف المؤلف wewe, مصدر
كيف لإفراغ اسم حقل قاعدة البيانات؟ فقط السجل القياسي؟ على CSV
وأضاف المؤلف wewe, مصدر
لدي شيء خاطئ مع رمز بلدي>
وأضاف المؤلف wewe, مصدر
wewe لم أختبر هذا ملف excel أبدًا ولكن يمكنك اختباره والإشارة إليه
وأضاف المؤلف Muhammad Raheel, مصدر
يمكنك إزالة الصف الأول وهو صف أسماء colunm الجدول $ new_report ثم حفظه إلى csv. يمكنك فعل ذلك مثل $ new_report = array_values ​​(array_shift ($ new_report)) ؛
وأضاف المؤلف Muhammad Raheel, مصدر

شرح كامل:

نموذج:

class Csv_m extends MY_Model {
function getCSV() {
    $sql = "SELECT * FROM tablename";
    return $this->db->query($sql);
}
}

مراقب:

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
وأضاف

لقد استخدمت هذا لتقريرياتي .csv. لديها القدرة على تغيير اسم حقول قاعدة البيانات في ملف CSV. هنا هو الرمز.

 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();
}

من الواضح أنك تحتاج إلى استبدال حقول جدول قاعدة البيانات وفقًا لجدولك.

0
وأضاف