Các bước:
1. File xml cần lưu: file lưu tại /App_Data/xml_data/..
2. Tạo trang xử lý lưu.
3. Mã Html Form nhập liệu.
4. Các biến Session trả về khi lưu xong
Cách làm:
1. File xml cần lưu: file lưu tại /App_Data/xml_data/vidu.xml
* Cách tạo cấu trúc file xml ?
2. Tạo trang xử lý lưu file xml: vào hệ thống tạo ra 1 trang xử lý lưu
Ví dụ trang: luu-file-xml
Cầu hình lênh cho trang luu-file-xml là
<Save_FileXml>
<path>/App_Data/xml_data/vidu.xml</path>
<pathStruct></pathStruct>
<outReturn></outReturn>
<outSet></outSet>
<goUrl>
ok:url
err:url
</goUrl>
<sessionName></sessionName>
</Save_FileXml>
Giải thích:
path: đường dẫn file xml
pathStruct: nếu không tìm thấy file thì cầu trúc lấy từ file này
outReturn:
* Nếu để trống thì không trả về kết quả.
* text: trả về -1 là gặp lỗi , >=0 là thành công (số lượng bảng ghi thêm thành công)
* text_key: rỗng là không thành công, có giá trị là _SYS_KEY đã xử lý được.
* xml: kết quả trả về 1 mảng bảng ghi đã xử lý thành công kiểu xml
* json: kết quả trả về 1 mảng bảng ghi đã xử lý thành công kiểu json
Khi lưu xong để biết được lưu thành công hay gặp lỗi nào, ta dựa vào kết quả trả về là 1 DataTable
Gồm cột:
_SYS_KEY | State | Desc |
Mã bảng ghi tạo 1 | 0 là thêm mới, 1 là cập nhật | Mô tả lỗi |
Mã bảng ghi tạo2 | 0 là thêm mới, 1 là cập nhật | Mô tả lỗi |
Có thể có nhiều dòng vì xử lý 1 lúc 1 hay nhiều bảng ghi.
outSet:
* Nếu để trống không trả kết quả
* Session: kết quả trả qua biến session
Session:Tên_Biến
* Page: kết quả in ra page
sessionName: để trống tên session trả về theo chuẩn nếu nhập giá trị thì lấy theo tên nhập
THEM
THEM_RowCount
THEM_Message
* Tham khảo ý nghĩa biến session
Ví dụ:
<SessionName>NhanVien</SessionName>
Thì kết quả trả về là:
_SYS_NhanVien_Save_FileXML
_SYS_NhanVien_Save_FileXML_RowCount
_SYS_NhanVien_Save_FileXML_Message
3. Mã Html Form nhập liệu
* Khi submit có thể để trống tức là submit đến trang đang xử lý hay nhập 1 đường dẫn chỉ định
<form method=post action="/luu-file-xml">
<input name="_SYS_KEY" type="hidden" />
<input name="___SYS_ROW_STATE" type="hidden" />
<input name="__SYS_CONFIG" type="hidden" />
<table>
<tr>
<td>Name</td>
<td><input name="Tên_ô_1" type="text" /></td>
</tr>
<tr>
<td>Mess</td>
<td><input name="Tên_ô_2" type="text" /></td>
</tr>
</table>
<input id="btLuu" type="submit" value="Lưu" />
<input type="reset" value="Xóa trống" />
</form>
Giải thích:
+ Cột _SYS_KEY
* Nếu tìm thấy thì cập nhật
* Nếu không tìm thầy thì thêm mới
+ Cột __SYS_CONFIG
encodeURI: mã hóa text để tránh có các ký tự đặc biệt
+ Cột ___SYS_ROW_STATE
Nếu không có giá trị thì tìm thấy sửa, không tìm thấy thêm mới
* Nếu là update: thì chỉ cập nhật cho dù tìm không thấy.
* Nếu là del thì tìm thấy sẽ xóa
+ Xem kết quả lỗi : kết quả trả về biến, nhưng có thể truy xuất lỗi qua biến session _sys_iif_save_xml_err để lấy ra mã lỗi khi cần
Cách lấy:
<iif-D>Session:_sys_iif_save_xml_err#del<fm>Lỗi: {0}</fm></iif-D></div>
* Các ứng dụng thường gặp
1. Tạo tên file căn cứ theo ngày tháng
Kết hợp hàm:
Ví dụ: tạo file căn cứ theo tháng
<path>/App_Data/xml_data/dulieu_<iif-D>Date:Now<fm>MM</fm></iif-D>.xml</path>
<pathStruct>/App_Data/xml_data/dulieu_goc.xml</pathStruct>
Dữ liệu cứ 1 tháng sẽ tách ra 1 file riêng <iif-D>Date:Now<fm>MM</fm></iif-D> sẽ trả về tháng là 06
4. Các biến Session trả về khi lưu xong
_SYS_Save_FileXML: ok / err
_SYS_Save_FileXML_RowCount: tổng số bảng ghi được thêm
_SYS_Save_FileXML_Message: mô tả chi tiết lỗi
Lấy biến ra màn hình: <iif-D>Session:_SYS_Save_FileXML</iif-D>
Lưu file XML