1. Cách không sử dụng Html Var
2. Cách sử dụng Html Var
*********************
Ví dụ sử dụng nguồn dữ liệu : click tham khảo
1. Cách không sử dụng Html Var
In đơn giản
Query:
_SysDB/Data_Test (tùy vào tên query)
Query_Para
* Nếu đã lọc dữ liệu HoDonChiTiet ở query
DataMain:0
DataDetail:1
* Nếu chưa lọc dữ liệu HoDonChiTiet ở query
DataMain:0
DataDetail:1
DataDetail_Where:KeyHoaDon='{recM:_SYS_KEY:recM}'
(thêm dòng cuối)
B2: Tại tab Config
Page_Width
210mm
Page_Height
297mm
Page_Contains_Height
287mm
B2: Tại tab Report
Rpt_Hearder :(có 10 trang thì phần này sẽ nạp ra trang đầu tiên)
----
BÁO CÁO
Số hợp đồng: {recM:SoHoaDon:recM} , Nhân viên quản lý: {recM:TenKhachHang:recM}
Rpt_Footer : (có 10 trang thì phần này sẽ nạp ra trang đầu tiên)
Cảm ơn quý khách !
Tại tab Page
Page_Hearder: (có 10 trang thì luôn được nạp ở đầu trang)
Số hợp đồng: {recM:SoHoaDon:recM} , Nhân viên quản lý: {recM:TenKhachHang:recM}
{{##table_heard:E}}
Page_Footer: (có 10 trang thì luôn được nạp ở cuối trang)
{{##table_footer:R}}
Tại tab Details
Rpt_Detail : (luôn được nạp ơ mỗi trang nếu có html)
{{##table_row:R}}
2. Cách sử dụng Html Var
* In có sử dụng cấu trúc html table trong report
Chú ý nguyên lý tạo report:
Căn cứu vào Detail_Height (ví dụ chiều cao cấu hình là 10mm)
Chiều dài 1 trang A4 là 297mm, nhưng lấy phần hiển thị Page_Contains_Height (nhỏ hơn 297, thường là 280mm) , ví dụ tổng row là 30
- Report sẽ tính tổng số trang là bao nhiêu:
TongHeightRpt = dtQuery_Details.Rows.Count * Detail_Height ;
TongTrang = tongHeightRpt / height_Page;
TongTrang = Math.Ceiling(tongTrang);
Tổng chiều dài report in ra: 10(Detail_Height)*30 = 300
*** 300 sẽ > 287 nên sẽ chia làm 2 trang
B1: Tại tab Query
Query:
_SysDB/Data_Test (tùy vào tên query)
Query_Para
* Nếu đã lọc dữ liệu HoDonChiTiet ở query
DataMain:0
DataDetail:1
* Nếu chưa lọc dữ liệu HoDonChiTiet ở query
DataMain:0
DataDetail:1
DataDetail_Where:KeyHoaDon='{recM:_SYS_KEY:recM}'
(thêm dòng cuối)
B2: Tại tab Config
Page_Width
210mm
Page_Height
297mm
Page_Contains_Height
287mm
Detail_Height
30mm
B3: Vào tab Html Var tạo
<##table_heard>
<table class="table_nvl" border="1" width="100%" cellspacing="1" align="center">
<tr style="height:{recRpt:Page_Hearder_Height:recRpt}">
<td class="col_STT" style='text-align:center;font-weight:bold;'>STT</td>
<td class="col_TEN" style='text-align:center;font-weight:bold;'>Tên</td>
<td class="col_SL" style='text-align:center;font-weight:bold;'>SL</td>
<td class="col_DG" style='text-align:center;font-weight:bold;'>ĐG</td>
<td class="col_TT" style='text-align:center;font-weight:bold;'>TT</td>
</tr>
</##table_heard>
<##table_row>
<tr style="height:{recRpt:Detail_Height:recRpt}">
<td class="col_STT">{recD:STT:recD}</td>
<td class="col_TEN">{recD:TenHang:recD}</td>
<td class="col_SL" style='text-align:right'>{recD:SL/-/{0:n0}:recD}</td>
<td class="col_DG" style='text-align:right'>{recD:DG/-/{0:n0}:recD}</td>
<td class="col_TT" style='text-align:right'>{recD:TT/-/{0:n0}:recD}</td>
</tr>
</##table_row>
<##table_footer>
</table>
</##table_footer>
Tham khảo định dạng số: https://iif.vn/iif-admin/su-dung-lenh-trong-mau-html#recData
B3: Tại tab Report
Rpt_Hearder :(có 10 trang thì phần này sẽ nạp ra trang đầu tiên)
----
BÁO CÁO
Số hợp đồng: {recM:SoHoaDon:recM} , Nhân viên quản lý: {recM:TenKhachHang:recM}
Rpt_Footer : (có 10 trang thì phần này sẽ nạp ra trang đầu tiên)
Cảm ơn quý khách !
Tại tab Page
Page_Hearder: (có 10 trang thì luôn được nạp ở đầu trang)
Số hợp đồng: {recM:SoHoaDon:recM} , Nhân viên quản lý: {recM:TenKhachHang:recM}
{{##table_heard:E}}
Page_Footer: (có 10 trang thì luôn được nạp ở cuối trang)
{{##table_footer:R}}
Tại tab Details
Rpt_Detail : (luôn được nạp ơ mỗi trang nếu có html)
{{##table_row:R}}
Chú ý: chế độ thay thế
Ví dụ: html đang có là : <b>XX<b/>
R: thay thế biến (dạng ghi đè) , sẽ xóa hết <b>XX<b/> và ghi đè mới
S: thay ở đầu, Nội dung biến <b>XX<b/>
E: thay ở cuối, <b>XX<b/> Nội dung biến
Tham khảo thêm
** >> Áp dụng thực thế việc lệnh thay thế
- Nếu 1 report, query đã xử lý where cho hóa đơn chỉ định, tức luôn có 1 hóa đơn khi in thì phần thông tin hóa đơn có thể để ở
* Report -> Report Hearder:
Số: {recM:SoHoaDon:recM} , tên: Số: {recM:TenKhachHang:recM}
* Page_Hearder
{{##table_heard:R}}
- Nếu mỗi hóa đơn ra 1 report
* Report -> Report Hearder: xóa nội dung * Page_Hearder
Số: {recM:SoHoaDon:recM} , tên: Số: {recM:TenKhachHang:recM}
{{##table_heard:E}}