Giới thiệu

Mục tiêu bài viết.

  • Bài viết sẽ đem tới cho mọi người cách hiểu về Field trong wak cũng như cách sử dụng nó.

Field là gì?

  • Là các trường( đối tượng) trong 1 file dic.

Vị trí của Field trong file dic.

  • Node Field có vị trí ở giữa node Logic và CssClass

Dưới đây là 1 ví dụ về Field

Logic
    FirstFocus==CP_CODE
    # Vị trí của Field sau Logic
Field
    Text==CP_CODE
        ApplyCodeFormat
        Trim
        MaxLength==30
        LiveValidation
            Presence
    Text==CP_NAME
        Trim
        MaxLength==256
    Combo==STATUS_ID
        Item==Dictionary
            Value==STATUS_TABLE
    TextArea==DESCRIPTION
        Trim
        MaxLength==4000
    Submit==SAVE
    Submit==APPLY
    Button==CLOSE
# Vị trí của Field trước CssClass và Layout
CssClass

Các Field trong wak.

Một số thuộc tính dùng chung cho tất cả các Field

  1. Trim: Loại bỏ các khoảng trắng ở đầu và cuối của dữ liệu
  2. ReadOnly: chỉ cho phép đọc dữ liệu
  3. cssClass: Chỉ định class css để tùy chỉnh dữ liệu
  4. ApplyCurrencyFormat: Dữ liệu được định dạng dưới kiểu tiền tệ
  5. Extra : Tùy chỉnh Css
  6. Multiple : Cho phép chọn nhiều giá trị

BUTTON

Button    
    Trim
    ApplyCurrencyFormat
    ReadOnly
    cssClass
    Extra

là kiểu nút(button) trong wak.

COMBO

Combo        
    Multiple    
    Trim    
    ApplyCurrencyFormat    
    LiveValidation    
        Presence
    ReadOnly    
    cssClass    
    Extra    
    Value    
    Item    
        AddNullValue
        Value
  • Kiểu đưa ra danh sách để lựa chọn trong wak.
  • Để chọn dữ liệu ta có 2 cách:

Load dữ liệu từ Dictionnary bên file …VN.dic,Minh họa dưới đây

  • File xxx.dic
    Combo==STATUS_ID
        Item==Dictionary
            Value==STATUS_TABLE
  • File xxxVN.dic
STATUS_TABLE
    1==Hiệu lực
    0==Hết hiệu lực

Khi lưu trong cơ sở dữ liệu,thì lựa chọn sẽ được kết nối(mapple) với giá trị được viết bên file xxxVN.dic
Load dữ liệu từ 1 bảng nào đó
    Combo==PROMOTION_ID
        Item==SQL
            AddNullValue
            Value==SELECT PROMOTION_ID,PROMOTION_NAME FROM PROMOTION
            Presence

Khi đó giá trị sẽ được lấy từ bảng PROMOTION.

DATE

    Date                
        Trim            
        ApplyCurrencyFormat    
        DatePicker==true        
        LiveValidation            
            Presence        
            DateFormat        
                Pattern    
                FailureMessage    
            DateCompare        
                Format    
                Target    
                ExpectedResult    
                FailureMessage

Trong đó
  • DatePicker : Lựa chọn thêm cả giờ
  • DateCompare : So sánh với ngày tháng nào đó
  • Pattern : Bắt theo pattern
  • FailureMessage : Thông báo nếu nhập sai.
  • ExpectedResult : Nếu nhỏ hơn và lớn hơn bao nhiêu

DATERANGE

Khác với DATE chỉ chọn được 1 khoảng thời gian,hay jqcron(Xem chi tiết tại đây), kiểu DATERANGE là kiểu chọn thời gian nằm giữa 2 khoảng thời gian.Hình ảnh dưới đây minh họa cho điều đó:

date_range.png
    DateRange==MODIFIED
        Trim
        TimePicker==true

EXTERNALIST

  • Có tác dụng link sang 1 trang khác để lựa chọn.
    ExternalList==ACC_ID
        ListAllItem
        Multiple
        ModuleUrl==/com/ftl/isms/system/cp_account/list.jsp

-ListAllItem:Load sẵn các giá trị của link đó ra trước

HIDDEN

  • node ẩn,sử dụng khi muốn truyền giá trị này sang 1 link khác.

SUBMIT

    Submit==SAVE
    Submit==APPLY
    Button==CLOSE
  • Node để thực hiện các chức năng sẵn có của wak đã cung cấp như save,apply,close.

TEXT

  • Làm chức năng cho nhập chữ qua bàn phím.
    Text            
        Trim        
        ApplyCurrencyFormat        
        LiveValidation        
            Presence    
            Numericality    
                Is
                Minimum
                Maximum
                NotANumberMessage
                NotAnIntegerMessage
                WrongNumberMessage
                TooLowMessage
                TooHighMessage
                OnlyInteger
        ReadOnly        
        cssClass        
        Extra        
        MaxLength        
        Value        
        ApplyCodeFormat

Trong đó
  • Minimum:Số không được lớn hơn giá trị gán
  • Maximum:Số không được nhỏ hơn giá trị gán
  • NotANumberMessage:Thay đổi thông báo hiển thị khi không phải là 1 số
  • NotAnIntegerMessage:Thay đổi thông báo hiển thị khi không phải là 1 số nguyên
  • TooLowMessage:Thay đổi thông báo số lượng kí tự không được <= số nào đó
  • TooHighMessage:Thay đổi thông báo số lượng kí tự không được >= số nào đó
  • OnlyInteger:Chỉ nhập là số nguyên
  • MaxLength:Số lượng kí tự tối đa là bao nhiêu, tới đó gõ sẽ không ra kí tự nữa
  • ApplyCodeFormat:Tự động format code

Ví dụ so sánh giữa 2 giá trị từ và giá trị đến
Với yêu cầu nhập 'RECEIVED_RECORD_COUNT_TO' phải lớn hơn 'RECEIVED_RECORD_COUNT_FROM'

Text==RECEIVED_RECORD_COUNT_TO
    Trim
    MaxLength==15
    LiveValidation
        Numericality
        OnlyInteger
        Minimum==!"RECEIVED_RECORD_COUNT_FROM"+action.getId()

Đối với so sánh giá trị nhỏ hơn,ta chỉ cần thay giá trị Minimum bằng Maximum

TEXTAREA

Tương tự như TEXT nhưng cho nhập số lượng ký tự nhiều hơn

Comment

Thêm bình luận mới