Lưu ô trên Form đến Session kiểu DataTable

Lưu ô trên Form đến Session kiểu DataTable

* 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'

Bài viết liên quan:

Lưu ô trên Form đến Session kiểu DataTable