* Lưu giá trị từ Form (các ô nhập liệu) đến biến Session dạng DataTable (trên bộ nhớ RAM)
1. Lệnh.
Cấu hình trong phần lệnh
<Save_Form_To_SessionDataTable>
<pathStruct>/App_Data/xml_data/vidu.xml</pathStruct>
<name></name>
<find_row>Where_SQL</find_row>
<find_row_state></find_row_state>
<find_row_message_not_exits></find_row_message_not_exits>
<key_name></key_name>
<set_row>
Tên_Cột_1:Giá trị_1
</>
Tên_Cột_2:Giá trị_2
</set_row>
<update_all>
Tên_Cột_1:Giá trị_1
</>
Tên_Cột_2:Giá trị_2
</update_all>
<update_all_where>Cấu_điều_kiện_where</update_all_where>
<lookup_row>
<file_lk></file_lk>
<where_lk></where_lk>
<distict_lk></distict_lk>
<compute_l></compute_l>
</lookup_row>
</Save_Form_To_SessionDataTable>
-----------------------------
* name: tên session
* pathStruct: đường dẫn tham chiếu để lấy cấu trúc
* find_row: điều kiện để tìm cập nhật
* find_row_state:
update: tìm thấy mới cập nhật
del: tìm thấy xóa
để trống: nếu không tìm thấy sẽ thêm mới
* key_name: tên cột, khi thêm thì key phải có giá trị
* set_row: nếu tìm thấy cập nhật , không tìm thấy thì thêm mới
* update_all: cập nhật tất cả các dòng trong DataTable
- Sử dụng biểu thức tính toán
Ví dụ: Total:=[Amount]*[UnitPrice] (thêm dấu = và các cột bỏ trong dấu [ ] )
- Thêm dấu {} để lấy từ name của form.
Ví dụ: OdR_Address:{OdR_Address}
* update_all_where: chỉ cập nhập theo điều kiện chỉ định, áp dụng where SQL
Ví dụ: ID=2 , trong DataTable có 10 bảng ghi, thì chỉ cập nhật bảng ghi có ID=2
* lookup_row
Tham chiếu đến dòng 1 file chỉ định rồi gán giá trị đến session hiện tại
<lookup_row>
<file_lk>/App_data/xml_data/iif_MaGiamGia.xml</file_lk>
<where_lk>Ma='{CouponCode}' AND #<iif-D>Date:Now<fm>{0:MM/dd/yyyy}</fm></iif-D>#>=TuNgay AND #<iif-D>Date:Now<fm>{0:MM/dd/yyyy}</fm></iif-D>#<=DenNgay</where_lk>
<distict_lk></distict_lk>
<compute_l></compute_l>
</lookup_row>
<set_row>
Name:{lk:Ma:lk}
</>
Image:{lk:HinhAnh:lk}
</>
UnitPrice:-{lk:GiaTriGiam:lk}
</>
Total:-{lk:GiaTriGiam:lk}
</set_row>
dùng {lk:Tên_Cột:lk} để lấy giá trị ra
* Cách sử dụng biểu thức:
Ví dụ 1 bảng có cấu trúc cột STT, TEN, DIEM
Form HTML có các ô TEN,DIEM
khi muốn lấy giá trị trong bảng dữ liệu dùng [ TEN_COT ], lấy giá trị từ Form { TEN_O }
2. Ví dụ Lưu thông tin 1 dòng học sinh đến biến session
Dùng lệnh <find_row>.....</find_row>
Có cấu trúc tại app_data/xml_data/hoso.xml
* Lưu 1 dòng
-B1: File xml
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="TABLEVIEW">
<xs:complexType>
<xs:sequence>
<xs:element name="_SYS_KEY" type="xs:string" minOccurs="0" />
<xs:element name="Ma" type="xs:string" minOccurs="0" />
<xs:element name="Ten" type="xs:string" minOccurs="0" />
<xs:element name="Toan" type="xs:double" minOccurs="0" />
<xs:element name="Ly" type="xs:double" minOccurs="0" />
<xs:element name="Hoa" type="xs:double" minOccurs="0" />
<xs:element name="Tong" type="xs:double" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
</NewDataSet>
-B2: Form nhập liệu:
<form action="/test/test2" method=post>
Ma:
<input type="text" name="Ma"value="01"><br>
Ten:
<input type="text" name="Ten" value="A"><br>
Toan:
<input type="text" name="Toan" value="6"><br>
Ly:
<input type="text" name="Ly" value="8"><br>
Hoa:
<input type="text" name="Hoa" value="9"><br>
<input type="submit" value="Submit">
</form>
-B3: Trang xử lý:
Cấu hình lệnh
<Save_Form_To_SessionDataTable>
<pathStruct>/App_Data/xml_data/hoso.xml</pathStruct>
<name>hoso</name>
<find_row>Ma='{Ma}'</find_row>
<find_row_state>if_not_exits_new</find_row_state>
<find_row_mesage_not_exits>Không tìm thấy bảng ghi</find_row_mesage_not_exits>
<set_row>
Ma:{Ma}
</>
Ten:{Ten}
</>
Toan:{Toan}
</>
Ly:{Ly}
</>
Hoa:{Hoa}
</>
Tong:=[Toan]+[Ly]+[Hoa]
</set_row>
</Save_Form_To_SessionDataTable>
- HTML
<iif-F>
<Source><type:session/>hoso</>/App_Data/xml_data/hoso.xml</Source>
<ItemF>
<br>-MA: <%i=Ma=i%> -TEN: <%i=Ten=i%> - TOAN: <%i=Toan=i%> - Ly: <%i=Ly=i%> - Hoa: <%i=Hoa=i%> - TONG DIEM:<%i=Tong=i%> ----------<br>
</ItemF>
</iif-F>
Ghi chú: muốn xóa bảng ghi thay đổi lại find_row_state:if_not_exits_new đổi là if_exits_delete
3. Lưu thông tin nhiều dòng học sinh đến biến session
B1: HTML submit
<a href="test1">TEST 1</a> -- <a href="test2">TEST 2</a> -- <a href="test3">TEST 3</a> -- <a href="test4">TEST 4</a>
<form action="/test/test5" method=post>
THEM MOI:
<hr>
<input type="hidden" name="_SYS_KEY" value="">
<input type="hidden" name="___SYS_ROW_STATE" value="">
Ma: <input type="text" name="Ma"value="" ><br>
Ten: <input type="text" name="Ten" value=""><br>
Toan: <input type="text" name="Toan" value=""><br>
Ly: <input type="text" name="Ly" value=""><br>
Hoa: <input type="text" name="Hoa" value=""><br>
<hr>
<iif-F>
<Source><type:session/>hoso</>/App_Data/xml_data/hoso.xml</Source>
<ItemF>
<hr>
<input type="hidden" name="_SYS_KEY" value="<%i=_SYS_KEY=i%>">
<input type="hidden" name="___SYS_ROW_STATE" value="">
Ma: <input type="text" name="Ma"value="<%i=Ma=i%>" ><br>
Ten: <input type="text" name="Ten" value="<%i=Ten=i%>"><br>
Toan: <input type="text" name="Toan" value="<%i=Toan=i%>"><br>
Ly: <input type="text" name="Ly" value="<%i=Ly=i%>"><br>
Hoa: <input type="text" name="Hoa" value="<%i=Hoa=i%>"><br>
<hr>
</ItemF>
</iif-F>
<input type="submit" value="Submit">
</form>
B2: cấu hình lệnh trang lưu
<Save_Form_To_SessionDataTable>
<pathStruct>/App_Data/xml_data/hoso.xml</pathStruct>
<name>hoso</name>
<key_name>Ma</key_name>
<set_row>
Ma:{Ma}
</>
Ten:{Ten}
</>
Toan:{Toan}
</>
Ly:{Ly}
</>
Hoa:{Hoa}
</>
Tong:=[Toan]+[Ly]+[Hoa]
</set_row>
</Save_Form_To_SessionDataTable>
2. Chuẩn bị 1 Form HTML
gồm 1 form action="trang_xu_ly_luu"
<form action="/trang_xu_ly_luu" method=post>
<input name='Ten_Cot' /> ....
</form>
* Các tên input có giá trị giống DataTable cấu trúc XML, file xml được lưu tại App_Data/xml_data
* Các lệnh trong FORM
Dùng <input name="___X" type="hidden" value="GIA_TRI" /> với X là tên cột theo cấu trúc XML
(các lệnh này có thể cấu hình ở phần lệnh mục 2, ưu tiên mục 2, nếu ko có mới lấy lệnh từ FORM, để bảo mật khi lênh từ HTML người dùng có thể can thiệp)
___FIND_ROW :tìm bảng ghi để cập nhật, where sql
___SET_ROW: nếu Find_Row tìm thấy giá trị thì gán giá trị cột, nếu không tìm thấy thì thêm mới dòng.
___UPDATE_ALL: cập nhất tất cả các dòng, dùng để tính toán lại
___REDIRECT_PAGE: chuyển đến trang khi submit
* Cách cấu hình POST Jquery
phien ban cu:
ses_save_from_datatable:1
ses_save_from_datatable_name:Cart_iif
ses_save_from_datatable_xml_temp:/App_data/cart.xml
ses_save_update_all:Total:=[Amount]*[UnitPrice]/-/OdR_FullName:{OdR_FullName}/-/OdR_Address:{OdR_Address}/-/OdR_Phone:{OdR_Phone}/-/OdR_Note:{OdR_Note}/-/OdR_Email:{OdR_Email}
ses_save_update_all_where:ID_Product<>'GiamGia'
Lưu ô trên Form đến Session kiểu DataTable