1. Cách tạo
2. Cách thực thi
3. Query
4. Dùng lệnh
5. Sử dụng các lệnh từ iif để làm giao diện
6. Các tham số url
7. Cấu hình config
- AddUrlPara
9. Một số nghiệp vụ hay code
10. Một số lỗi hay gặp
--------
1. Cách tạo
Truy cập đường dẫn: /Adminxml/xml_form_ds.aspx?file=SysFormHTML.xml
Name: Tên
Title: hiển thị trên cùng
Query: nguồn truy cập dữ liệu
HTML_Start
HTML_Body
HTML_End
HTML_Header
Config
2. Cách thực thi
* Chế độ 1:
/adminxml/xml_form_ds.aspx?name=Tên
/adminxml/xml_form_ds.aspx?name=Tên&config_sys=nomaster (ko xuất hiện giao diện menu)
* Chế độ 2:
** /adminxml/xml_form_ds_mini.aspx?name=Tên
* Chế độ mini chạy sẽ không nạp các thư viện js, css từ trang master
3. Query: Lấy nguồn dữ liệu từ Query đã tạo
Có thể để trống, nếu dùng dữ liệu nên sử dụng để tăng tốc độ xử lý.
* Nếu query để trong file riêng cấu hình BanHang_iif/BangGia
File query BanHang_iif.xml có tên BangGia
Tham khảo cách tạo Query
Có 2 cách lấy dữ liệu trong html của form
* Cách 1: truy cập trực tiếp từ html
<iif-F>
<Source><type:query/>BanHang_iif/DonHang_Load</>0</Source>
<ItemF>
<%i=Ten=i%>
</ItemF>
</iif-F>
* Nếu lấy 1 table thì ổn, nhưng nếu lấy nhiều table thì chậm vì lấy 1 table phải kết nối sql 1 lần
* Cách 2: cấu hình tên query tại ô query, Ví dụ query trả về 2 table 0 và 1
<iif-F>
<Source><type:query/>#</>0</Source>
<ItemF>
<%i=Ten=i%>
</ItemF>
</iif-F>
<iif-F>
<Source><type:query/>#</>1</Source>
<ItemF>
<%i=Ten=i%>
</ItemF>
</iif-F>
Cách 3:
<script>
$.get("Query_Do.aspx?name=NhaHang/SoDoTiec&out=json&nam=2023&thang=2", function(data, status){
for (x in data.Q1) {
alert( data.Q1[x]._SYS_KEY );
}
});
</script>
* Cách này có nhược điểm là query lấy xong mới trả về có độ trể, nên chưa tương tác được với biến của trang
Cách 4: sinh đối tượng json từ Query đã tạo
<script>
const obj1 = JSON.parse('<iif-F><Source><type:query/>NhaHang/SoDoTiec</>0</Source><OutData>json</OutData></iif-F>');
alert(obj1.length);
</script>
* Cách lặp đối tượng json
* Cách này hay dùng
4. Dùng lệnh trong
HTML_Start, HTML_Body, HTML_End, HTML_Header
Lệnh nạp file html
<iif-H>tenfile.htm</iif-H>
* Tham chiếu thư mục App_Data/html_form/tenfile.htm
* Nếu để trong thư mục cấp con
ví dụ: App_Data/html_form/banhang_iif/trangchu.html thì dùng
<iif-H>/banhang_iif/trangchu.htm</iif-H>
Gợi ý:
Nếu Form có tên TaoPhieu được tạo vào 1 file xml có tên ví dụ là BanHang.xml
Khi truy cập form có url là: xml_form_ds.aspx?name=BanHang/TaoPhieu
Thì tại lệnh #_url_name_# sẽ trả về BanHang/TaoPhieu
Ta muốn thống nhất tất cả các Form trong file BanHang.xml truy cập đến
* path thực tại: /App_Data/html_form/BanHang
Thì ta dùng lệnh <iif-H>/#_url_name_#.htm</iif-H>
--> Tất cả các file để vào 1 thư mục dễ quản lý, nếu có đổi tên thư mục giúp linh hoạt hơn.
Chỉ dùng trong HTML_Body và HTML_Hearder
* Tham khảo cách lấy dữ liệu ra form qua html
* Để thêm css hay js vào Form
Tại HTML_Header
Thêm
<style>
<iif-H>/banhang_iif/trangchu.css</iif-H>
</style>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
*** Các file để tại /App_Data/html_form/banhang_iif
banhang_iif là thư mục tạo thêm để dễ quản lý theo từng phần mềm, có thể để bên ngoài /App_Data/html_form
Gợi ý:
Cách nạp css <iif-H>/banhang_iif/trangchu.css</iif-H> sẽ làm chậm, vì lệnh css được nạp thẳng vào html
Để nhanh nạp kiểu:
<link href="/vendor/datatables/extend/style_01.css" rel="stylesheet">
** Thứ tự thực thi lênh <iif-F>
<iif-F0></iif-F0>
<iif-F></iif-F>
<iif-F1></iif-F1>
5. Sử dụng các lệnh từ iif để làm giao diện
Tham khảo các lệnh iif
6. Các tham số url
config_sys=nomaster để không xuất hiện menu
Không xuất hiện nút button sys Cấu hình bt_sys_config:
Thêm trên url: &config_class_hide=bt_sys_config
7. Cấu hình config
* AddUrlPara
* nếu url FORM chưa có tham số chỉ định thì tạo ra, nếu đã có thì lấy url đang dùng
Ví dụ: khi truy cập form
- xml_form_ds.aspx?name=NhaHang/SoDoBanTiec
* Nếu chưa có tham số url tháng và năm thì tạo ra lấy ngày hiện hành
- xml_form_ds.aspx?name=NhaHang/SoDoBanTiec&thang=02&nam=2023
Ví dụ 1: tạo tham số thang=&nam= (hiện hành)
thang</><iif-D>Date:Now<fm>{0:MM}</fm></iif-D>
nam</><iif-D>Date:Now<fm>{0:yyyy}</fm></iif-D>
Ví dụ 2: tạo tham số ngày bắt đầu và kết thúc của tháng hiện hành
tungay</><iif-D>Date:Now_AddDay;-1<fm>{0:1/MM/yyyy}</fm></iif-D>
denngay</><iif-D>Date:Now_AddDay;-1<fm>{0:#DaysInMonth/MM/yyyy}</fm></iif-D>
Ví dụ 3: tạo tham số ngày bắt đầu và kết thúc của năm hiện hành
<iif-D>Date:Now_AddDay;-1<fm>{0:1/1/yyyy}</fm></iif-D>
<iif-D>Date:Now_AddDay;-1<fm>{0:31/12/yyyy}</fm></iif-D>
9. Một số nghiệp vụ hay sử dụng khi code
- Lấy dữ liệu query đưa vào Form HTML
10. Một số lỗi hay gặp
* File html đã có nhưng không nạp ra
Nguyên nhân do: thiếu lệnh <iif-H>/#_url_name_#.htm</iif-H> trong HTML_Body