Report iif

Mục lục
1. Cách tạo report
2.
Giải thích tham số
3.
Cấu trúc 1 report
4.
Sử dụng Var STR
6
Tham chiếu file html
7.
Cấu hình lại url report
8. 
Một số lỗi khi in

1. Cách tạo report:
Truy cập:
/adminxml/xml_getdata.aspx?file=SysReport

2. Giải thích tham số
  * Tab Main
  Name
: Tên Report (không dấu, dính liền nhau)
  Icon: Hình hiển thị
  Title: tiêu đề hiện thị ngoài báo cáo
  * Tab Report
   Rpt_Hearder: nội dung hiển thị phần đầu báo cáo
   Rpt_Footer: nội dung hiển thị phần cuối báo cáo
  * Tab Page
  Page_Top : nội dung đầu trang
* Dùng trong TH có Report Hearder, vì Page_Hearder  nằm trên report hearder
* Thường dùng để hiển thị số trang, ngày ...
  Page_Hearder : nội dung đầu trang
  Page_Footer: nội dung cuối trang
  * Tab Details
  Rpt_Detail: mã html hiển thị chính
  Rpt_Detail_0: mã html nếu có lọc theo cấp cha, datable có index là 0
  Rpt_Detail_1: mã html nếu có lọc theo cấp cha, datable có index là 1
  * Tab Query
Query: nguồn dữ liệu để lấy hiển thị ra report
Query_Para: chỉ định nguồn dữ liệu
   Click để tham khảo

  
Query_Get: chưa biết ....
   * Tab Config
Page_Css: chưa biết
Page_Width: độ rộng trang
   Ví dụ nhập:  210mm hay 21cm
   Để trống mặc định 210mm
Page_Height: chiều cao trang
  Ví dụ nhập: 279mm
  Để trống mặc định là 279mm
Detail_Height: chiều cao của nội dung hiển thị, tương ứng 1 row là 1 nội dung
Hearder_Height: 24mm
Footer_Height: 24mm
Padding: 5mm
Report_Hearder_Css: chưa biết
Report_Footer_Css: chưa biết
 


3. Cấu trúc 1 report:

|-------------------------------------------------|
Rpt_Hearder (chỉ nạp 1 lần duy nhất )
|  Lặp theo row DataMain
|    Rpt_Detail                                     |  Lặp theo row DataDetails

|    -- Rpt_Detail_0                              |  Lặp theo row DataDetails_P0   
|       -- Rpt_Detail_1                           |  Lặp theo row DataDetails_P1
|   Page_Footer                                  |

Rpt_Footer (chỉ nạp1 lần duy nhất)
|-------------------------------------------------|


Cấu trúc 1 trang view HTML:
<div class='borderThis'>
    <div class='printThis'>   
        <div class='page_item'>
            <div class='page_top'></div>
           <div class="rpt_txt_h">{recRpt:Rpt_Hearder:recRpt}</div>
                <div class="page_txt">
                   <div class="page_txt_header">{{##header}}</div>
                   <div class="page_txt_details" > {{##details}}</div>
                   <div class="rpt_txt_f"><div class="rpt_txt_f_SUB">{recRpt:Rpt_Footer:recRpt}</div></div>    
                </div>
                <div class="page_txt_footer">{{##footer}}</div>
            <div class='page_bottom'></div>
        </div>   
    </div>
</div>
---------------------------------


Lệnh dùng trong mẫu

 


 
* Chú ý: Nếu muốn không sử dụng soạn thảo HTML trên web có thể tham chiếu file htlm trong thư mục
App_Data/report/html bằng cú pháp trong soạn thảo html: <iif-H>phandau.htm</iif-H>

5. Sử dụng Var STR
Tạo biến tại TAB Html Var
<##Tên>
Giá trị HTML
</##Tên>

Tại các HTML như Page, Detail, Report gõ các lệnh

{{##Tên}}  : thay thế ngay tại lệnh
{{##Tên:S}}  : thêm tại đầu
{{##Tên:E}}: thêm tại cuối
{{##Tên:R}}: thay thế luôn bằng giá trị, nếu có xóa và lấy giá trị biến

Vì sao phải thêm S,E,R
Nguyên nhân vì: trong một số TH cần thay thế tất cả giá trị hay chỉ thêm cuối.

Ví dụ: để tạo ra 1 report có cấu trúc <table>
ta cần dùng {{##Tên:R}}, vi giữa các thẻ tr không thể thêm div hay p

==> Xem cách làm report có details

6 Tham chiếu file html
  *  App_Data/report/html   (những file nếu viết thẻm bỏ vào đây)
  *  themes/report/sys   (những file cố định nạp cho hệ thống)
            menu.css , rpt.css
   <iif-H>filenap.htm</iif-H>
 * filenap.htm nằm trong thư mục mặc định nạp là /App_Data/report/html


7. Cấu hình report bằng cách thêm url trên report
  * Cần thay đổi cấu hình của Report hãy thêm tham số trên url set__Tên
   Với Tên là cột trong cấu trúc sysReport.xml
   

Ví dụ: cùng 1 file report những truy cập tên query khác nhau

<a class="mau_xanh bt_xemphieu_list" p_l="report.aspx?name=BanHangOnline/mayinnhiet&id={rec:ID_BanHang:rec}&set__Query=BanHangOnline/DonHangChiTiet_Ngay&file={url:file:url}"  p_w="500px" p_h="600px" p_t="Phiếu" data-toggle="modal" data-target="#Obj_popup_pIIF"  href="#">[Xem phiếu]</a>

set__Query :
           set__ là cố định
           
Query là tên cột trong sysReport.xml  
 
Ví dụ trên là tùy vào file mà truy cập nguồn query khác nhau

** Lệnh query
<Query>
<ID>DH</ID>
<Type>Xml</Type>
<Src><iif-D>Url:file</iif-D></Src>
<Where><iif-D>Url:ID<notempty:ID_BanHang={0}/></iif-D></Where>
</Query>
<Query>
<ID>DH_CT</ID>
<Type>Xml</Type>
<Src><iif-D>Url:file<repD>//-/_CT/</repD></iif-D></Src>
<Where><iif-D>Url:ID<notempty:ID_BanHang={0}/></iif-D></Where>
</Query>



 

 


8. Một số lỗi khi in
* Khi xem 2 trang nhưng khi nhấn in sẽ ra 3 trang
Bên firefox xem đủ nhưng qua chrome lại dư 1 trang trống
Cách xử lý:cho độ cao (height) nhỏ thêm 1~10 Page_Contains_Height (config của report)

 
** Tham khảo: https://www.sitepoint.com/css-printer-friendly-pages/

Mục liên quan: