Các Field trong wak
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
- Trim: Loại bỏ các khoảng trắng ở đầu và cuối của dữ liệu
- ReadOnly: chỉ cho phép đọc dữ liệu
- cssClass: Chỉ định class css để tùy chỉnh dữ liệu
- ApplyCurrencyFormat: Dữ liệu được định dạng dưới kiểu tiền tệ
- Extra : Tùy chỉnh Css
- 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 đó:
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
E nghĩ nên có các định nghĩa và giải thích về các thuộc tính trong wak.
Ví dụ như Multiple , UnescapeJava ….
@Quang: mình đã chỉnh sửa lại bài viết
Bổ sung validate so sánh giá trị số từ,giá trị số đế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
Bổ sung cú pháp của DateCompare.
Date==END_DATE
Trim
TimePicker==true
LiveValidation
DateFormat==dd/MM/yyyy HH:mm:ss
Presence
DateCompare==START_DATE
Format==dd/MM/yyyy
ExpectedResult==10