Data Validation

From Documentation


Stop.png This article is out of date, please refer to http://books.zkoss.org/wiki/ZK_Spreadsheet_Essentials for more up to date information.


Available in ZK Spreadsheet EE only

Purpose

Data validation is an invaluable feature when a workbook is shared among other users in an organization to make sure that the data entered in the workbook is accurate and consistent.

Data Validation

ZKSsEss Spreadsheet DataValidation List.png

Validation message

Prompt

ZKSsEss Spreadsheet DataValidation Prompt.png

Error alert

ZKSsEss Spreadsheet DataValidation Alert Illegal.png

ZKSsEss Spreadsheet DataValidation Alert dialog.png

Clicking the cancel button will remove the editing value

ZKSsEss Spreadsheet DataValidation Prompt.png

Clicking the retry button allow users to continue editing the cell value without emptying the editing value

ZKSsEss Spreadsheet DataValidation Alert Illegal.png

ZUML

<div apply="org.zkoss.zssessentials.config.ValidationComposer" width="100%" vflex="1">
	<combobox id="deparmentCombobox">
	</combobox>
	<spreadsheet id="spreadsheet" src="/WEB-INF/excel/config/validation.xlsx"
		maxrows="100" maxcolumns="20" 
		width="100%" vflex="1">
	</spreadsheet>
</div>

Composer

The composer prepares required data from DataValidation (in this case, the four departments - Finance, IE, Sales, R&D) , in order for users to input a value from combobox.

	private DataValidation getDataValidation() {
		return sheet.getDataValidation(DATA_VALIDATION_ROW, DATA_VALIDATION_COL);
	}
	
	private void initCombobox() {
		DataValidation dataValidation = getDataValidation();
		DataValidationConstraint constraint = dataValidation.getValidationConstraint();
		
		switch (constraint.getValidationType()) {
		case ValidationType.LIST:
			ListModelList model = new ListModelList(constraint.getExplicitListValues());
			deparmentCombobox.setModel(model);
			break;
		}
		
		//Add illegal item
		((ListModelList) deparmentCombobox.getModel()).add("Illegal cell value");
	}
	
	public void onSelect$deparmentCombobox() {
		String cellValue = deparmentCombobox.getSelectedItem().getLabel();
		boolean validInput = spreadsheet.validate(sheet, DATA_VALIDATION_ROW, DATA_VALIDATION_COL, cellValue, null);
		if (validInput) {
			Ranges.range(sheet, DATA_VALIDATION_ROW, DATA_VALIDATION_COL).setEditText(cellValue);
		}
	}

Select value
ZKSsEss Spreadsheet DataValidation SelectValue.png

Validate and set cell value
ZKSsEss Spreadsheet DataValidation InputValue.png

Select illegal value
ZKSsEss Spreadsheet DataValidation SelectIllegalValue.png

Error alert
ZKSsEss Spreadsheet DataValidation InputIllegalValue.png

View complete source of ZUML validation.zul

View complete source of composer ValidationComposer.java

Version History

Last Update : 2022/01/19


Version Date Content
Since 2.2.0 January, 2012 Support Data Validation
     


All source code listed in this book is at Github.

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.