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/
Report iif