IDEMPIERE-3981: FindWindow - Overwrite isSelection at field level, Va… (#249)

* IDEMPIERE-3981: FindWindow - Overwrite isSelection at field level, Validation Rule overwrite for Find window, Extended search and advanced hiding options.

* IDEMPIERE-3981: Correcting migration script as per Carlos' code review finding

* IDEMPIERE-3981: Fixing as per code review comment
Co-authored-by: muriloht muriloht@devcoffee.com.br

Co-authored-by: Carlos Ruiz <carg67@gmail.com>
This commit is contained in:
Deepak Pansheriya 2020-10-21 17:02:25 +05:30 committed by GitHub
parent 00153d7c8d
commit 08f6fb17d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 2520 additions and 51 deletions

View File

@ -1,10 +1,11 @@
CREATE OR REPLACE VIEW ad_field_v AS CREATE OR REPLACE VIEW ad_field_v AS
SELECT t.ad_window_id, f.ad_tab_id, f.ad_field_id, tbl.ad_table_id, f.ad_column_id, f.name, f.description, f.help, f.isdisplayed, f.displaylogic, f.displaylength, f.seqno, f.sortno, f.issameline, f.isheading, f.isfieldonly, f.isreadonly, f.isencrypted AS isencryptedfield, f.obscuretype, c.columnname, c.columnsql, c.fieldlength, COALESCE(f.VFormat, c.VFormat) AS VFormat, COALESCE(f.defaultvalue, c.defaultvalue) AS defaultvalue, c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, COALESCE(f.isalwaysupdateable, c.isalwaysupdateable) AS isalwaysupdateable, COALESCE(f.readonlylogic, c.readonlylogic) AS readonlylogic, COALESCE(f.mandatorylogic, c.mandatorylogic) AS mandatorylogic, COALESCE(f.isupdateable, c.isupdateable) AS isupdateable, c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fg.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, COALESCE(f.isallowcopy, c.isallowcopy) AS isallowcopy, f.isdisplayedgrid, f.seqnogrid, c.seqnoselection, f.xposition, f.columnspan, f.numlines, COALESCE(f.istoolbarbutton, c.istoolbarbutton) AS istoolbarbutton, c.formatpattern, f.isadvancedfield, f.isdefaultfocus, c.ad_chart_id, f.ad_labelstyle_id, f.ad_fieldstyle_id, c.pa_dashboardcontent_id, COALESCE(f.placeholder, c.placeholder) AS placeholder, c.ishtml, f.isquickform SELECT t.ad_window_id, f.ad_tab_id, f.ad_field_id, tbl.ad_table_id, f.ad_column_id, f.name, f.description, f.help, f.isdisplayed, f.displaylogic, f.displaylength, f.seqno, f.sortno, f.issameline, f.isheading, f.isfieldonly, f.isreadonly, f.isencrypted AS isencryptedfield, f.obscuretype, c.columnname, c.columnsql, c.fieldlength, COALESCE(f.VFormat, c.VFormat) AS VFormat, COALESCE(f.defaultvalue, c.defaultvalue) AS defaultvalue, c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, COALESCE(f.isalwaysupdateable, c.isalwaysupdateable) AS isalwaysupdateable, COALESCE(f.readonlylogic, c.readonlylogic) AS readonlylogic, COALESCE(f.mandatorylogic, c.mandatorylogic) AS mandatorylogic, COALESCE(f.isupdateable, c.isupdateable) AS isupdateable, c.isencrypted AS isencryptedcolumn, COALESCE(f.isselectioncolumn, c.isselectioncolumn) AS isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fg.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, COALESCE(f.isallowcopy, c.isallowcopy) AS isallowcopy, f.isdisplayedgrid, f.seqnogrid, c.seqnoselection, f.xposition, f.columnspan, f.numlines, COALESCE(f.istoolbarbutton, c.istoolbarbutton) AS istoolbarbutton, c.formatpattern, f.isadvancedfield, f.isdefaultfocus, c.ad_chart_id, f.ad_labelstyle_id, f.ad_fieldstyle_id, c.pa_dashboardcontent_id, COALESCE(f.placeholder, c.placeholder) AS placeholder, c.ishtml, f.isquickform, COALESCE(f.ad_val_rule_Lookup_id, c.ad_val_rule_Lookup_id) AS ad_val_rule_Lookup_id, vrf.code AS validationcodeLookup
FROM ad_field f FROM ad_field f
JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id
LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id
LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id
JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id
LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id)
LEFT JOIN ad_val_rule vrf ON vrf.ad_val_rule_id = COALESCE(f.ad_val_rule_Lookup_id, c.ad_val_rule_Lookup_id)
WHERE f.isactive = 'Y' AND c.isactive = 'Y' WHERE f.isactive = 'Y' AND c.isactive = 'Y'
; ;

View File

@ -1,5 +1,5 @@
CREATE OR REPLACE VIEW ad_field_vt AS CREATE OR REPLACE VIEW ad_field_vt AS
SELECT trl.ad_language, t.ad_window_id, f.ad_tab_id, f.ad_field_id, tbl.ad_table_id, f.ad_column_id, trl.name, trl.description, trl.help, f.isdisplayed, f.displaylogic, f.displaylength, f.seqno, f.sortno, f.issameline, f.isheading, f.isfieldonly, f.isreadonly, f.isencrypted AS isencryptedfield, f.obscuretype, c.columnname, c.columnsql, c.fieldlength, COALESCE(f.VFormat, c.VFormat) AS VFormat, COALESCE(f.defaultvalue, c.defaultvalue) AS defaultvalue, c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, COALESCE(f.isalwaysupdateable, c.isalwaysupdateable) AS isalwaysupdateable, COALESCE(f.readonlylogic, c.readonlylogic) AS readonlylogic, COALESCE(f.mandatorylogic, c.mandatorylogic) AS mandatorylogic, COALESCE(f.isupdateable, c.isupdateable) AS isupdateable, c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fgt.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, COALESCE(f.isallowcopy, c.isallowcopy) AS isallowcopy, f.isdisplayedgrid, f.seqnogrid, c.seqnoselection, f.xposition, f.columnspan, f.numlines, COALESCE(f.istoolbarbutton, c.istoolbarbutton) AS istoolbarbutton, c.formatpattern, f.isadvancedfield, f.isdefaultfocus, c.ad_chart_id, f.ad_labelstyle_id, f.ad_fieldstyle_id, c.pa_dashboardcontent_id, COALESCE(trl.placeholder, ct.placeholder) AS placeholder, c.ishtml, f.isquickform SELECT trl.ad_language, t.ad_window_id, f.ad_tab_id, f.ad_field_id, tbl.ad_table_id, f.ad_column_id, trl.name, trl.description, trl.help, f.isdisplayed, f.displaylogic, f.displaylength, f.seqno, f.sortno, f.issameline, f.isheading, f.isfieldonly, f.isreadonly, f.isencrypted AS isencryptedfield, f.obscuretype, c.columnname, c.columnsql, c.fieldlength, COALESCE(f.VFormat, c.VFormat) AS VFormat, COALESCE(f.defaultvalue, c.defaultvalue) AS defaultvalue, c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, COALESCE(f.isalwaysupdateable, c.isalwaysupdateable) AS isalwaysupdateable, COALESCE(f.readonlylogic, c.readonlylogic) AS readonlylogic, COALESCE(f.mandatorylogic, c.mandatorylogic) AS mandatorylogic, COALESCE(f.isupdateable, c.isupdateable) AS isupdateable, c.isencrypted AS isencryptedcolumn, COALESCE(f.isselectioncolumn, c.isselectioncolumn) AS isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fgt.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, COALESCE(f.isallowcopy, c.isallowcopy) AS isallowcopy, f.isdisplayedgrid, f.seqnogrid, c.seqnoselection, f.xposition, f.columnspan, f.numlines, COALESCE(f.istoolbarbutton, c.istoolbarbutton) AS istoolbarbutton, c.formatpattern, f.isadvancedfield, f.isdefaultfocus, c.ad_chart_id, f.ad_labelstyle_id, f.ad_fieldstyle_id, c.pa_dashboardcontent_id, COALESCE(trl.placeholder, ct.placeholder) AS placeholder, c.ishtml, f.isquickform, COALESCE(f.ad_val_rule_Lookup_id, c.ad_val_rule_Lookup_id) AS ad_val_rule_Lookup_id, vrf.code AS validationcodeLookup
FROM ad_field f FROM ad_field f
JOIN ad_field_trl trl ON f.ad_field_id = trl.ad_field_id JOIN ad_field_trl trl ON f.ad_field_id = trl.ad_field_id
JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id
@ -9,6 +9,7 @@ CREATE OR REPLACE VIEW ad_field_vt AS
LEFT JOIN ad_column_trl ct ON f.ad_column_id = ct.ad_column_id AND trl.ad_language = ct.ad_language LEFT JOIN ad_column_trl ct ON f.ad_column_id = ct.ad_column_id AND trl.ad_language = ct.ad_language
JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id
LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id)
LEFT JOIN ad_val_rule vrf ON vrf.ad_val_rule_id = COALESCE(f.ad_val_rule_Lookup_id, c.ad_val_rule_Lookup_id)
WHERE f.isactive = 'Y' AND c.isactive = 'Y' WHERE f.isactive = 'Y' AND c.isactive = 'Y'
; ;

View File

@ -7,7 +7,7 @@ CREATE OR REPLACE VIEW AD_TAB_V
READONLYLOGIC, DISPLAYLOGIC, AD_COLUMN_ID, AD_PROCESS_ID, ISSORTTAB, READONLYLOGIC, DISPLAYLOGIC, AD_COLUMN_ID, AD_PROCESS_ID, ISSORTTAB,
ISINSERTRECORD, ISADVANCEDTAB, AD_COLUMNSORTORDER_ID, AD_COLUMNSORTYESNO_ID, ISINSERTRECORD, ISADVANCEDTAB, AD_COLUMNSORTORDER_ID, AD_COLUMNSORTYESNO_ID,
INCLUDED_TAB_ID, PARENT_COLUMN_ID, AD_Tab_UU, AD_Table_UU, TREEDISPLAYEDON, INCLUDED_TAB_ID, PARENT_COLUMN_ID, AD_Tab_UU, AD_Table_UU, TREEDISPLAYEDON,
MAXQUERYRECORDS) MAXQUERYRECORDS, IsAllowAdvancedLookup, IsLookupOnlySelection)
AS AS
SELECT t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, t.Name, t.Description, SELECT t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, t.Name, t.Description,
t.Help, t.SeqNo, t.IsSingleRow, t.HasTree, t.IsInfoTab, tbl.ReplicationType, t.Help, t.SeqNo, t.IsSingleRow, t.HasTree, t.IsInfoTab, tbl.ReplicationType,
@ -17,11 +17,10 @@ SELECT t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, t.Name, t.Description,
t.WhereClause, t.OrderByClause, t.CommitWarning, t.ReadOnlyLogic, t.DisplayLogic, t.WhereClause, t.OrderByClause, t.CommitWarning, t.ReadOnlyLogic, t.DisplayLogic,
t.AD_Column_ID, t.AD_Process_ID, t.IsSortTab, t.IsInsertRecord, t.IsAdvancedTab, t.AD_Column_ID, t.AD_Process_ID, t.IsSortTab, t.IsInsertRecord, t.IsAdvancedTab,
t.AD_ColumnSortOrder_ID, t.AD_ColumnSortYesNo_ID, t.Included_Tab_ID, t.Parent_Column_ID, t.AD_ColumnSortOrder_ID, t.AD_ColumnSortYesNo_ID, t.Included_Tab_ID, t.Parent_Column_ID,
t.AD_Tab_UU, tbl.AD_Table_UU, t.TreeDisplayedOn, t.MaxQueryRecords t.AD_Tab_UU, tbl.AD_Table_UU, t.TreeDisplayedOn, t.MaxQueryRecords,
t.IsAllowAdvancedLookup, t.IsLookupOnlySelection
FROM AD_Tab t FROM AD_Tab t
INNER JOIN AD_Table tbl ON (t.AD_Table_ID = tbl.AD_Table_ID) INNER JOIN AD_Table tbl ON (t.AD_Table_ID = tbl.AD_Table_ID)
WHERE t.IsActive='Y' WHERE t.IsActive='Y'
AND tbl.IsActive='Y'; AND tbl.IsActive='Y'
;

View File

@ -7,7 +7,7 @@ CREATE OR REPLACE VIEW AD_TAB_VT
COMMITWARNING, READONLYLOGIC, DISPLAYLOGIC, AD_COLUMN_ID, AD_PROCESS_ID, COMMITWARNING, READONLYLOGIC, DISPLAYLOGIC, AD_COLUMN_ID, AD_PROCESS_ID,
ISSORTTAB, ISINSERTRECORD, ISADVANCEDTAB, AD_COLUMNSORTORDER_ID, AD_COLUMNSORTYESNO_ID, ISSORTTAB, ISINSERTRECORD, ISADVANCEDTAB, AD_COLUMNSORTORDER_ID, AD_COLUMNSORTYESNO_ID,
INCLUDED_TAB_ID, PARENT_COLUMN_ID, AD_Tab_UU, AD_Table_UU, TREEDISPLAYEDON, INCLUDED_TAB_ID, PARENT_COLUMN_ID, AD_Tab_UU, AD_Table_UU, TREEDISPLAYEDON,
MAXQUERYRECORDS) MAXQUERYRECORDS, IsAllowAdvancedLookup, IsLookupOnlySelection)
AS AS
SELECT trl.AD_Language, t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, trl.Name, trl.Description, SELECT trl.AD_Language, t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, trl.Name, trl.Description,
trl.Help, t.SeqNo, t.IsSingleRow, t.HasTree, t.IsInfoTab, tbl.ReplicationType, trl.Help, t.SeqNo, t.IsSingleRow, t.HasTree, t.IsInfoTab, tbl.ReplicationType,
@ -17,12 +17,11 @@ SELECT trl.AD_Language, t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, trl.Name, tr
t.WhereClause, t.OrderByClause, trl.CommitWarning, t.ReadOnlyLogic, t.DisplayLogic, t.WhereClause, t.OrderByClause, trl.CommitWarning, t.ReadOnlyLogic, t.DisplayLogic,
t.AD_Column_ID, t.AD_Process_ID, t.IsSortTab, t.IsInsertRecord, t.IsAdvancedTab, t.AD_Column_ID, t.AD_Process_ID, t.IsSortTab, t.IsInsertRecord, t.IsAdvancedTab,
t.AD_ColumnSortOrder_ID, t.AD_ColumnSortYesNo_ID, t.Included_Tab_ID, t.Parent_Column_ID, t.AD_ColumnSortOrder_ID, t.AD_ColumnSortYesNo_ID, t.Included_Tab_ID, t.Parent_Column_ID,
t.AD_Tab_UU, tbl.AD_Table_UU, t.TreeDisplayedOn, t.MaxQueryRecords t.AD_Tab_UU, tbl.AD_Table_UU, t.TreeDisplayedOn, t.MaxQueryRecords,
t.IsAllowAdvancedLookup, t.IsLookupOnlySelection
FROM AD_Tab t FROM AD_Tab t
INNER JOIN AD_Table tbl ON (t.AD_Table_ID = tbl.AD_Table_ID) INNER JOIN AD_Table tbl ON (t.AD_Table_ID = tbl.AD_Table_ID)
INNER JOIN AD_Tab_Trl trl ON (t.AD_Tab_ID = trl.AD_Tab_ID) INNER JOIN AD_Tab_Trl trl ON (t.AD_Tab_ID = trl.AD_Tab_ID)
WHERE t.IsActive='Y' WHERE t.IsActive='Y'
AND tbl.IsActive='Y'; AND tbl.IsActive='Y'
;

View File

@ -4,16 +4,16 @@ f.isheading, f.isfieldonly, f.isreadonly, f.isencrypted AS isencryptedfield, f.o
c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id,
c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, COALESCE(f.isalwaysupdateable, c.isalwaysupdateable) AS isalwaysupdateable, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, COALESCE(f.isalwaysupdateable, c.isalwaysupdateable) AS isalwaysupdateable,
COALESCE(f.readonlylogic, c.readonlylogic) AS readonlylogic, COALESCE(f.mandatorylogic, c.mandatorylogic) AS mandatorylogic, COALESCE(f.isupdateable, c.isupdateable) AS isupdateable, COALESCE(f.readonlylogic, c.readonlylogic) AS readonlylogic, COALESCE(f.mandatorylogic, c.mandatorylogic) AS mandatorylogic, COALESCE(f.isupdateable, c.isupdateable) AS isupdateable,
c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fg.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, c.isencrypted AS isencryptedcolumn, COALESCE(f.isselectioncolumn, c.isselectioncolumn) AS isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fg.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype,
fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, COALESCE(f.isallowcopy, c.isallowcopy) AS isallowcopy, f.isdisplayedgrid, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, COALESCE(f.isallowcopy, c.isallowcopy) AS isallowcopy, f.isdisplayedgrid,
f.seqnogrid, c.seqnoselection, f.xposition, f.columnspan, f.numlines, COALESCE(f.istoolbarbutton, c.istoolbarbutton) AS istoolbarbutton, c.formatpattern, f.isadvancedfield, f.isdefaultfocus, f.seqnogrid, c.seqnoselection, f.xposition, f.columnspan, f.numlines, COALESCE(f.istoolbarbutton, c.istoolbarbutton) AS istoolbarbutton, c.formatpattern, f.isadvancedfield, f.isdefaultfocus,
c.ad_chart_id, f.ad_labelstyle_id, f.ad_fieldstyle_id, c.pa_dashboardcontent_id, COALESCE(f.placeholder, c.placeholder) AS placeholder, c.ishtml, f.isquickform c.ad_chart_id, f.ad_labelstyle_id, f.ad_fieldstyle_id, c.pa_dashboardcontent_id, COALESCE(f.placeholder, c.placeholder) AS placeholder, c.ishtml, f.isquickform, COALESCE(f.ad_val_rule_Lookup_id, c.ad_val_rule_Lookup_id) AS ad_val_rule_Lookup_id, vrf.code AS validationcodeLookup
FROM ad_field f FROM ad_field f
JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id
LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id
LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id
JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id
LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id)
LEFT JOIN ad_val_rule vrf ON vrf.ad_val_rule_id = COALESCE(f.ad_val_rule_Lookup_id, c.ad_val_rule_Lookup_id)
WHERE f.isactive = 'Y' AND c.isactive = 'Y' WHERE f.isactive = 'Y' AND c.isactive = 'Y'
; ;

View File

@ -4,9 +4,9 @@ CREATE OR REPLACE VIEW ad_field_vt AS
c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id,
c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, COALESCE(f.isalwaysupdateable, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, COALESCE(f.isalwaysupdateable,
c.isalwaysupdateable) AS isalwaysupdateable, COALESCE(f.readonlylogic, c.readonlylogic) AS readonlylogic, COALESCE(f.mandatorylogic, c.mandatorylogic) AS mandatorylogic, COALESCE(f.isupdateable, c.isupdateable) AS isupdateable, c.isalwaysupdateable) AS isalwaysupdateable, COALESCE(f.readonlylogic, c.readonlylogic) AS readonlylogic, COALESCE(f.mandatorylogic, c.mandatorylogic) AS mandatorylogic, COALESCE(f.isupdateable, c.isupdateable) AS isupdateable,
c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fgt.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, c.isencrypted AS isencryptedcolumn, COALESCE(f.isselectioncolumn, c.isselectioncolumn) AS isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fgt.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype,
fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, COALESCE(f.isallowcopy, c.isallowcopy) AS isallowcopy, f.isdisplayedgrid, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, COALESCE(f.isallowcopy, c.isallowcopy) AS isallowcopy, f.isdisplayedgrid,
f.seqnogrid, c.seqnoselection, f.xposition, f.columnspan, f.numlines, COALESCE(f.istoolbarbutton, c.istoolbarbutton) AS istoolbarbutton, c.formatpattern, f.isadvancedfield, f.isdefaultfocus, c.ad_chart_id, f.ad_labelstyle_id, f.ad_fieldstyle_id, c.pa_dashboardcontent_id, COALESCE(trl.placeholder, ct.placeholder) AS placeholder, c.ishtml, f.isquickform f.seqnogrid, c.seqnoselection, f.xposition, f.columnspan, f.numlines, COALESCE(f.istoolbarbutton, c.istoolbarbutton) AS istoolbarbutton, c.formatpattern, f.isadvancedfield, f.isdefaultfocus, c.ad_chart_id, f.ad_labelstyle_id, f.ad_fieldstyle_id, c.pa_dashboardcontent_id, COALESCE(trl.placeholder, ct.placeholder) AS placeholder, c.ishtml, f.isquickform, COALESCE(f.ad_val_rule_Lookup_id, c.ad_val_rule_Lookup_id) AS ad_val_rule_Lookup_id, vrf.code AS validationcodeLookup
FROM ad_field f FROM ad_field f
JOIN ad_field_trl trl ON f.ad_field_id = trl.ad_field_id JOIN ad_field_trl trl ON f.ad_field_id = trl.ad_field_id
JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id
@ -16,6 +16,7 @@ CREATE OR REPLACE VIEW ad_field_vt AS
LEFT JOIN ad_column_trl ct ON f.ad_column_id = ct.ad_column_id AND trl.ad_language::text = ct.ad_language::text LEFT JOIN ad_column_trl ct ON f.ad_column_id = ct.ad_column_id AND trl.ad_language::text = ct.ad_language::text
JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id
LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id)
LEFT JOIN ad_val_rule vrf ON vrf.ad_val_rule_id = COALESCE(f.ad_val_rule_Lookup_id, c.ad_val_rule_Lookup_id)
WHERE f.isactive = 'Y' AND c.isactive = 'Y' WHERE f.isactive = 'Y' AND c.isactive = 'Y'
; ;

View File

@ -7,7 +7,7 @@ CREATE OR REPLACE VIEW AD_TAB_V
READONLYLOGIC, DISPLAYLOGIC, AD_COLUMN_ID, AD_PROCESS_ID, ISSORTTAB, READONLYLOGIC, DISPLAYLOGIC, AD_COLUMN_ID, AD_PROCESS_ID, ISSORTTAB,
ISINSERTRECORD, ISADVANCEDTAB, AD_COLUMNSORTORDER_ID, AD_COLUMNSORTYESNO_ID, ISINSERTRECORD, ISADVANCEDTAB, AD_COLUMNSORTORDER_ID, AD_COLUMNSORTYESNO_ID,
INCLUDED_TAB_ID, PARENT_COLUMN_ID, AD_Tab_UU, AD_Table_UU, TREEDISPLAYEDON, INCLUDED_TAB_ID, PARENT_COLUMN_ID, AD_Tab_UU, AD_Table_UU, TREEDISPLAYEDON,
MAXQUERYRECORDS) MAXQUERYRECORDS, IsAllowAdvancedLookup, IsLookupOnlySelection)
AS AS
SELECT t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, t.Name, t.Description, SELECT t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, t.Name, t.Description,
t.Help, t.SeqNo, t.IsSingleRow, t.HasTree, t.IsInfoTab, tbl.ReplicationType, t.Help, t.SeqNo, t.IsSingleRow, t.HasTree, t.IsInfoTab, tbl.ReplicationType,
@ -17,11 +17,10 @@ SELECT t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, t.Name, t.Description,
t.WhereClause, t.OrderByClause, t.CommitWarning, t.ReadOnlyLogic, t.DisplayLogic, t.WhereClause, t.OrderByClause, t.CommitWarning, t.ReadOnlyLogic, t.DisplayLogic,
t.AD_Column_ID, t.AD_Process_ID, t.IsSortTab, t.IsInsertRecord, t.IsAdvancedTab, t.AD_Column_ID, t.AD_Process_ID, t.IsSortTab, t.IsInsertRecord, t.IsAdvancedTab,
t.AD_ColumnSortOrder_ID, t.AD_ColumnSortYesNo_ID, t.Included_Tab_ID, t.Parent_Column_ID, t.AD_ColumnSortOrder_ID, t.AD_ColumnSortYesNo_ID, t.Included_Tab_ID, t.Parent_Column_ID,
t.AD_Tab_UU, tbl.AD_Table_UU, t.TreeDisplayedOn, t.MaxQueryRecords t.AD_Tab_UU, tbl.AD_Table_UU, t.TreeDisplayedOn, t.MaxQueryRecords,
t.IsAllowAdvancedLookup, t.IsLookupOnlySelection
FROM AD_Tab t FROM AD_Tab t
INNER JOIN AD_Table tbl ON (t.AD_Table_ID = tbl.AD_Table_ID) INNER JOIN AD_Table tbl ON (t.AD_Table_ID = tbl.AD_Table_ID)
WHERE t.IsActive='Y' WHERE t.IsActive='Y'
AND tbl.IsActive='Y'; AND tbl.IsActive='Y'
;

View File

@ -7,7 +7,7 @@ CREATE OR REPLACE VIEW AD_TAB_VT
COMMITWARNING, READONLYLOGIC, DISPLAYLOGIC, AD_COLUMN_ID, AD_PROCESS_ID, COMMITWARNING, READONLYLOGIC, DISPLAYLOGIC, AD_COLUMN_ID, AD_PROCESS_ID,
ISSORTTAB, ISINSERTRECORD, ISADVANCEDTAB, AD_COLUMNSORTORDER_ID, AD_COLUMNSORTYESNO_ID, ISSORTTAB, ISINSERTRECORD, ISADVANCEDTAB, AD_COLUMNSORTORDER_ID, AD_COLUMNSORTYESNO_ID,
INCLUDED_TAB_ID, PARENT_COLUMN_ID, AD_Tab_UU, AD_Table_UU, TREEDISPLAYEDON, INCLUDED_TAB_ID, PARENT_COLUMN_ID, AD_Tab_UU, AD_Table_UU, TREEDISPLAYEDON,
MAXQUERYRECORDS) MAXQUERYRECORDS, IsAllowAdvancedLookup, IsLookupOnlySelection)
AS AS
SELECT trl.AD_Language, t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, trl.Name, trl.Description, SELECT trl.AD_Language, t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, trl.Name, trl.Description,
trl.Help, t.SeqNo, t.IsSingleRow, t.HasTree, t.IsInfoTab, tbl.ReplicationType, trl.Help, t.SeqNo, t.IsSingleRow, t.HasTree, t.IsInfoTab, tbl.ReplicationType,
@ -17,12 +17,11 @@ SELECT trl.AD_Language, t.AD_Tab_ID, t.AD_Window_ID, t.AD_Table_ID, trl.Name, tr
t.WhereClause, t.OrderByClause, trl.CommitWarning, t.ReadOnlyLogic, t.DisplayLogic, t.WhereClause, t.OrderByClause, trl.CommitWarning, t.ReadOnlyLogic, t.DisplayLogic,
t.AD_Column_ID, t.AD_Process_ID, t.IsSortTab, t.IsInsertRecord, t.IsAdvancedTab, t.AD_Column_ID, t.AD_Process_ID, t.IsSortTab, t.IsInsertRecord, t.IsAdvancedTab,
t.AD_ColumnSortOrder_ID, t.AD_ColumnSortYesNo_ID, t.Included_Tab_ID, t.Parent_Column_ID, t.AD_ColumnSortOrder_ID, t.AD_ColumnSortYesNo_ID, t.Included_Tab_ID, t.Parent_Column_ID,
t.AD_Tab_UU, tbl.AD_Table_UU, t.TreeDisplayedOn, t.MaxQueryRecords t.AD_Tab_UU, tbl.AD_Table_UU, t.TreeDisplayedOn, t.MaxQueryRecords,
t.IsAllowAdvancedLookup, t.IsLookupOnlySelection
FROM AD_Tab t FROM AD_Tab t
INNER JOIN AD_Table tbl ON (t.AD_Table_ID = tbl.AD_Table_ID) INNER JOIN AD_Table tbl ON (t.AD_Table_ID = tbl.AD_Table_ID)
INNER JOIN AD_Tab_Trl trl ON (t.AD_Tab_ID = trl.AD_Tab_ID) INNER JOIN AD_Tab_Trl trl ON (t.AD_Tab_ID = trl.AD_Tab_ID)
WHERE t.IsActive='Y' WHERE t.IsActive='Y'
AND tbl.IsActive='Y'; AND tbl.IsActive='Y'
;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -83,7 +83,7 @@ public class GridField
/** /**
* *
*/ */
private static final long serialVersionUID = -632698704437797186L; private static final long serialVersionUID = -632698704437797176L;
/** /**
* Field Constructor. * Field Constructor.
@ -2579,6 +2579,7 @@ public class GridField
field.m_vo = field.m_vo.clone(ctx, field.m_vo.WindowNo, field.m_vo.TabNo, field.m_vo = field.m_vo.clone(ctx, field.m_vo.WindowNo, field.m_vo.TabNo,
field.m_vo.AD_Window_ID, field.m_vo.AD_Tab_ID, field.m_vo.tabReadOnly); field.m_vo.AD_Window_ID, field.m_vo.AD_Tab_ID, field.m_vo.tabReadOnly);
field.m_vo.lookupInfo = null; field.m_vo.lookupInfo = null;
field.m_lookup = null;
field.m_propertyChangeListeners = new PropertyChangeSupport(this); field.m_propertyChangeListeners = new PropertyChangeSupport(this);
return field; return field;
} catch (CloneNotSupportedException e) { } catch (CloneNotSupportedException e) {

View File

@ -47,7 +47,7 @@ public class GridFieldVO implements Serializable, Cloneable
/** /**
* *
*/ */
private static final long serialVersionUID = -7810037179946135749L; private static final long serialVersionUID = -6183338435199702786L;
/** /**
* Return the SQL statement used for the MFieldVO.create * Return the SQL statement used for the MFieldVO.create
@ -172,7 +172,8 @@ public class GridFieldVO implements Serializable, Cloneable
vo.SeqNo = userDef.getSeqNo(); vo.SeqNo = userDef.getSeqNo();
if (userDef.getAD_Val_Rule_ID() > 0) if (userDef.getAD_Val_Rule_ID() > 0)
vo.ValidationCode = MValRule.get(vo.ctx, userDef.getAD_Val_Rule_ID()).getCode(); vo.ValidationCode = MValRule.get(vo.ctx, userDef.getAD_Val_Rule_ID()).getCode();
if (userDef.getAD_Val_Rule_Lookup_ID() > 0)
vo.ValidationCodeLookup = MValRule.get(ctx, userDef.getAD_Val_Rule_Lookup_ID()).getCode();
if (userDef.getAD_LabelStyle_ID() > 0) if (userDef.getAD_LabelStyle_ID() > 0)
vo.AD_LabelStyle_ID = userDef.getAD_LabelStyle_ID(); vo.AD_LabelStyle_ID = userDef.getAD_LabelStyle_ID();
@ -314,6 +315,8 @@ public class GridFieldVO implements Serializable, Cloneable
vo.AD_Reference_Value_ID = rs.getInt(i); vo.AD_Reference_Value_ID = rs.getInt(i);
else if (columnName.equalsIgnoreCase("ValidationCode")) else if (columnName.equalsIgnoreCase("ValidationCode"))
vo.ValidationCode = rs.getString(i); vo.ValidationCode = rs.getString(i);
else if (columnName.equalsIgnoreCase("ValidationCodeLookup"))
vo.ValidationCodeLookup = rs.getString(i);
else if (columnName.equalsIgnoreCase("IsQuickForm")) else if (columnName.equalsIgnoreCase("IsQuickForm"))
vo.IsQuickForm = "Y".equals(rs.getString (i)); vo.IsQuickForm = "Y".equals(rs.getString (i));
else if (columnName.equalsIgnoreCase("ColumnSQL")) { else if (columnName.equalsIgnoreCase("ColumnSQL")) {
@ -409,6 +412,7 @@ public class GridFieldVO implements Serializable, Cloneable
// //
vo.AD_Reference_Value_ID = rs.getInt("AD_Reference_Value_ID"); vo.AD_Reference_Value_ID = rs.getInt("AD_Reference_Value_ID");
vo.ValidationCode = rs.getString("ValidationCode"); vo.ValidationCode = rs.getString("ValidationCode");
vo.ValidationCodeLookup = rs.getString("ValidationCodeLookup");
vo.ReadOnlyLogic = rs.getString("ReadOnlyLogic"); vo.ReadOnlyLogic = rs.getString("ReadOnlyLogic");
vo.DisplayLogic= rs.getString("DisplayLogic"); vo.DisplayLogic= rs.getString("DisplayLogic");
vo.IsEncryptedField=rs.getString("IsEncrypted").equals("Y"); vo.IsEncryptedField=rs.getString("IsEncrypted").equals("Y");
@ -513,6 +517,7 @@ public class GridFieldVO implements Serializable, Cloneable
voT.AD_Reference_Value_ID = voF.AD_Reference_Value_ID; voT.AD_Reference_Value_ID = voF.AD_Reference_Value_ID;
// IDEMPIERE-229 Bug with Process parameter range // IDEMPIERE-229 Bug with Process parameter range
voT.ValidationCode = voF.ValidationCode; voT.ValidationCode = voF.ValidationCode;
voT.ValidationCodeLookup = voF.ValidationCodeLookup;
voT.IsEncryptedField = voF.IsEncryptedField; voT.IsEncryptedField = voF.IsEncryptedField;
voT.ReadOnlyLogic = voF.ReadOnlyLogic; voT.ReadOnlyLogic = voF.ReadOnlyLogic;
voT.DisplayLogic = voF.DisplayLogic; voT.DisplayLogic = voF.DisplayLogic;
@ -729,6 +734,8 @@ public class GridFieldVO implements Serializable, Cloneable
/** Lookup Validation code */ /** Lookup Validation code */
public String ValidationCode = ""; public String ValidationCode = "";
/** Lookup Validation code for Find Window */
public String ValidationCodeLookup = "";
/** Reference Value */ /** Reference Value */
public int AD_Reference_Value_ID = 0; public int AD_Reference_Value_ID = 0;
@ -884,6 +891,7 @@ public class GridFieldVO implements Serializable, Cloneable
GridFieldVO clone = (GridFieldVO) super.clone(); GridFieldVO clone = (GridFieldVO) super.clone();
clone.ctx = Env.getCtx(); clone.ctx = Env.getCtx();
if ( lookupInfo != null) { if ( lookupInfo != null) {
clone.ValidationCodeLookup = ValidationCodeLookup;
clone.lookupInfo = lookupInfo.clone(); clone.lookupInfo = lookupInfo.clone();
clone.lookupInfo.ctx = clone.ctx; clone.lookupInfo.ctx = clone.ctx;
} }

View File

@ -112,7 +112,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
/** /**
* *
*/ */
private static final long serialVersionUID = -8153324039370820860L; private static final long serialVersionUID = 8443012394354164942L;
public static final String DEFAULT_STATUS_MESSAGE = "NavigateOrUpdate"; public static final String DEFAULT_STATUS_MESSAGE = "NavigateOrUpdate";
@ -229,6 +229,8 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
public static final String CTX_FindSQL = "_TabInfo_FindSQL"; public static final String CTX_FindSQL = "_TabInfo_FindSQL";
public static final String CTX_SQL = "_TabInfo_SQL"; public static final String CTX_SQL = "_TabInfo_SQL";
public static final String CTX_IsSortTab = "_TabInfo_IsSortTab"; public static final String CTX_IsSortTab = "_TabInfo_IsSortTab";
public static final String CTX_IsLookupOnlySelection = "_TabInfo_IsLookupOnlySelection";
public static final String CTX_IsAllowAdvancedLookup = "_TabInfo_IsAllowAdvancedLookup";
//private HashMap<Integer,Integer> m_PostIts = null; //private HashMap<Integer,Integer> m_PostIts = null;
@ -1513,6 +1515,24 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
return m_vo.IsHighVolume; return m_vo.IsHighVolume;
} // isHighVolume } // isHighVolume
/**
* Is Lookup Only By Selection Fields?
*
* @return true if only selection
*/
public boolean IsLookupOnlySelection() {
return m_vo.IsLookupOnlySelection;
} // IsLookupOnlySelection
/**
* Is Allow Advanced Lookup panel?
*
* @return true if allow the use
*/
public boolean IsAllowAdvancedLookup() {
return m_vo.IsAllowAdvancedLookup;
} // IsAllowAdvancedLookup
/** /**
* Is Read Only? * Is Read Only?
* @return true if read only * @return true if read only

View File

@ -39,10 +39,11 @@ import org.compiere.util.Evaluatee;
*/ */
public class GridTabVO implements Evaluatee, Serializable public class GridTabVO implements Evaluatee, Serializable
{ {
/** /**
* *
*/ */
private static final long serialVersionUID = 9091214632840854495L; private static final long serialVersionUID = 2088372161131336289L;
/************************************************************************** /**************************************************************************
* Create MTab VO * Create MTab VO
@ -225,6 +226,18 @@ public class GridTabVO implements Evaluatee, Serializable
if (rs.getString("IsHighVolume").equals("Y")) if (rs.getString("IsHighVolume").equals("Y"))
vo.IsHighVolume = true; vo.IsHighVolume = true;
// Lookup Only Selection Fields
if (rs.getString("IsLookupOnlySelection").equals("Y"))
vo.IsLookupOnlySelection = true;
if (userDef != null && userDef.getIsLookupOnlySelection() != null)
vo.IsLookupOnlySelection = "Y".equals(userDef.getIsLookupOnlySelection());
Env.setContext(vo.ctx, vo.WindowNo, vo.TabNo, GridTab.CTX_IsLookupOnlySelection, vo.IsLookupOnlySelection);
// Allow Advanced Lookup
if (rs.getString("IsAllowAdvancedLookup").equals("Y"))
vo.IsAllowAdvancedLookup = true;
if (userDef != null && userDef.getIsAllowAdvancedLookup() != null)
vo.IsAllowAdvancedLookup = "Y".equals(userDef.getIsAllowAdvancedLookup());
Env.setContext(vo.ctx, vo.WindowNo, vo.TabNo, GridTab.CTX_IsAllowAdvancedLookup, vo.IsAllowAdvancedLookup);
vo.CommitWarning = rs.getString("CommitWarning"); vo.CommitWarning = rs.getString("CommitWarning");
if (vo.CommitWarning == null) if (vo.CommitWarning == null)
vo.CommitWarning = ""; vo.CommitWarning = "";
@ -494,6 +507,10 @@ public class GridTabVO implements Evaluatee, Serializable
public boolean IsDeleteable = false; public boolean IsDeleteable = false;
/** Table High Volume */ /** Table High Volume */
public boolean IsHighVolume = false; public boolean IsHighVolume = false;
/** Allow use of advanced Lookup panel **/
public boolean IsAllowAdvancedLookup = false;
/** Only allow Lookup using selection defined fields **/
public boolean IsLookupOnlySelection = false;
/** Process */ /** Process */
public int AD_Process_ID = 0; public int AD_Process_ID = 0;
/** Process UUID */ /** Process UUID */
@ -601,6 +618,8 @@ public class GridTabVO implements Evaluatee, Serializable
clone.IsSecurityEnabled = IsSecurityEnabled; clone.IsSecurityEnabled = IsSecurityEnabled;
clone.IsDeleteable = IsDeleteable; clone.IsDeleteable = IsDeleteable;
clone.IsHighVolume = IsHighVolume; clone.IsHighVolume = IsHighVolume;
clone.IsLookupOnlySelection = IsLookupOnlySelection;
clone.IsAllowAdvancedLookup = IsAllowAdvancedLookup;
clone.AD_Process_ID = AD_Process_ID; clone.AD_Process_ID = AD_Process_ID;
clone.CommitWarning = CommitWarning; clone.CommitWarning = CommitWarning;
clone.WhereClause = WhereClause; clone.WhereClause = WhereClause;
@ -613,6 +632,8 @@ public class GridTabVO implements Evaluatee, Serializable
clone.ReplicationType = ReplicationType; clone.ReplicationType = ReplicationType;
Env.setContext(Ctx, windowNo, clone.TabNo, GridTab.CTX_AccessLevel, clone.AccessLevel); Env.setContext(Ctx, windowNo, clone.TabNo, GridTab.CTX_AccessLevel, clone.AccessLevel);
Env.setContext(Ctx, windowNo, clone.TabNo, GridTab.CTX_AD_Table_ID, String.valueOf(clone.AD_Table_ID)); Env.setContext(Ctx, windowNo, clone.TabNo, GridTab.CTX_AD_Table_ID, String.valueOf(clone.AD_Table_ID));
Env.setContext(Ctx, windowNo, clone.TabNo, GridTab.CTX_IsLookupOnlySelection, clone.IsLookupOnlySelection);
Env.setContext(Ctx, windowNo, clone.TabNo, GridTab.CTX_IsAllowAdvancedLookup, clone.IsAllowAdvancedLookup);
// //
clone.IsSortTab = IsSortTab; clone.IsSortTab = IsSortTab;

View File

@ -185,6 +185,21 @@ public interface I_AD_Column
public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException; public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException;
/** Column name AD_Val_Rule_Lookup_ID */
public static final String COLUMNNAME_AD_Val_Rule_Lookup_ID = "AD_Val_Rule_Lookup_ID";
/** Set Dynamic Validation (Lookup).
* Override Dynamic Validation Rule for Lookup Window
*/
public void setAD_Val_Rule_Lookup_ID (int AD_Val_Rule_Lookup_ID);
/** Get Dynamic Validation (Lookup).
* Override Dynamic Validation Rule for Lookup Window
*/
public int getAD_Val_Rule_Lookup_ID();
public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule_Lookup() throws RuntimeException;
/** Column name Callout */ /** Column name Callout */
public static final String COLUMNNAME_Callout = "Callout"; public static final String COLUMNNAME_Callout = "Callout";

View File

@ -204,6 +204,21 @@ public interface I_AD_Field
public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException; public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException;
/** Column name AD_Val_Rule_Lookup_ID */
public static final String COLUMNNAME_AD_Val_Rule_Lookup_ID = "AD_Val_Rule_Lookup_ID";
/** Set Dynamic Validation (Lookup).
* Override Dynamic Validation Rule for Lookup Window
*/
public void setAD_Val_Rule_Lookup_ID (int AD_Val_Rule_Lookup_ID);
/** Get Dynamic Validation (Lookup).
* Override Dynamic Validation Rule for Lookup Window
*/
public int getAD_Val_Rule_Lookup_ID();
public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule_Lookup() throws RuntimeException;
/** Column name ColumnSpan */ /** Column name ColumnSpan */
public static final String COLUMNNAME_ColumnSpan = "ColumnSpan"; public static final String COLUMNNAME_ColumnSpan = "ColumnSpan";
@ -522,6 +537,19 @@ public interface I_AD_Field
*/ */
public boolean isSameLine(); public boolean isSameLine();
/** Column name IsSelectionColumn */
public static final String COLUMNNAME_IsSelectionColumn = "IsSelectionColumn";
/** Set Selection Column.
* Is this column used for Lookup rows in windows
*/
public void setIsSelectionColumn (String IsSelectionColumn);
/** Get Selection Column.
* Is this column used for Lookup rows in windows
*/
public String getIsSelectionColumn();
/** Column name IsToolbarButton */ /** Column name IsToolbarButton */
public static final String COLUMNNAME_IsToolbarButton = "IsToolbarButton"; public static final String COLUMNNAME_IsToolbarButton = "IsToolbarButton";

View File

@ -350,6 +350,15 @@ public interface I_AD_Tab
*/ */
public boolean isAdvancedTab(); public boolean isAdvancedTab();
/** Column name IsAllowAdvancedLookup */
public static final String COLUMNNAME_IsAllowAdvancedLookup = "IsAllowAdvancedLookup";
/** Set Allow Advanced Lookup */
public void setIsAllowAdvancedLookup (boolean IsAllowAdvancedLookup);
/** Get Allow Advanced Lookup */
public boolean isAllowAdvancedLookup();
/** Column name IsInfoTab */ /** Column name IsInfoTab */
public static final String COLUMNNAME_IsInfoTab = "IsInfoTab"; public static final String COLUMNNAME_IsInfoTab = "IsInfoTab";
@ -376,6 +385,19 @@ public interface I_AD_Tab
*/ */
public boolean isInsertRecord(); public boolean isInsertRecord();
/** Column name IsLookupOnlySelection */
public static final String COLUMNNAME_IsLookupOnlySelection = "IsLookupOnlySelection";
/** Set Lookup Only Selection Columns.
* When defined to true Lookup panel will display only selection columns. Default to false.
*/
public void setIsLookupOnlySelection (boolean IsLookupOnlySelection);
/** Get Lookup Only Selection Columns.
* When defined to true Lookup panel will display only selection columns. Default to false.
*/
public boolean isLookupOnlySelection();
/** Column name IsReadOnly */ /** Column name IsReadOnly */
public static final String COLUMNNAME_IsReadOnly = "IsReadOnly"; public static final String COLUMNNAME_IsReadOnly = "IsReadOnly";

View File

@ -181,6 +181,21 @@ public interface I_AD_UserDef_Field
public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException; public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException;
/** Column name AD_Val_Rule_Lookup_ID */
public static final String COLUMNNAME_AD_Val_Rule_Lookup_ID = "AD_Val_Rule_Lookup_ID";
/** Set Dynamic Validation (Lookup).
* Override Dynamic Validation Rule for Lookup Window
*/
public void setAD_Val_Rule_Lookup_ID (int AD_Val_Rule_Lookup_ID);
/** Get Dynamic Validation (Lookup).
* Override Dynamic Validation Rule for Lookup Window
*/
public int getAD_Val_Rule_Lookup_ID();
public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule_Lookup() throws RuntimeException;
/** Column name ColumnSpan */ /** Column name ColumnSpan */
public static final String COLUMNNAME_ColumnSpan = "ColumnSpan"; public static final String COLUMNNAME_ColumnSpan = "ColumnSpan";

View File

@ -189,6 +189,28 @@ public interface I_AD_UserDef_Tab
*/ */
public boolean isActive(); public boolean isActive();
/** Column name IsAllowAdvancedLookup */
public static final String COLUMNNAME_IsAllowAdvancedLookup = "IsAllowAdvancedLookup";
/** Set Allow Advanced Lookup */
public void setIsAllowAdvancedLookup (String IsAllowAdvancedLookup);
/** Get Allow Advanced Lookup */
public String getIsAllowAdvancedLookup();
/** Column name IsLookupOnlySelection */
public static final String COLUMNNAME_IsLookupOnlySelection = "IsLookupOnlySelection";
/** Set Lookup Only Selection Columns.
* When defined to true Lookup panel will display only selection columns. Default to false.
*/
public void setIsLookupOnlySelection (String IsLookupOnlySelection);
/** Get Lookup Only Selection Columns.
* When defined to true Lookup panel will display only selection columns. Default to false.
*/
public String getIsLookupOnlySelection();
/** Column name IsMultiRowOnly */ /** Column name IsMultiRowOnly */
public static final String COLUMNNAME_IsMultiRowOnly = "IsMultiRowOnly"; public static final String COLUMNNAME_IsMultiRowOnly = "IsMultiRowOnly";

View File

@ -32,7 +32,7 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent
/** /**
* *
*/ */
private static final long serialVersionUID = 20200413L; private static final long serialVersionUID = 20200911L;
/** Standard Constructor */ /** Standard Constructor */
public X_AD_Column (Properties ctx, int AD_Column_ID, String trxName) public X_AD_Column (Properties ctx, int AD_Column_ID, String trxName)
@ -330,6 +330,34 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent
return ii.intValue(); return ii.intValue();
} }
public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule_Lookup() throws RuntimeException
{
return (org.compiere.model.I_AD_Val_Rule)MTable.get(getCtx(), org.compiere.model.I_AD_Val_Rule.Table_Name)
.getPO(getAD_Val_Rule_Lookup_ID(), get_TrxName()); }
/** Set Dynamic Validation (Lookup).
@param AD_Val_Rule_Lookup_ID
Override Dynamic Validation Rule for Lookup Window
*/
public void setAD_Val_Rule_Lookup_ID (int AD_Val_Rule_Lookup_ID)
{
if (AD_Val_Rule_Lookup_ID < 1)
set_Value (COLUMNNAME_AD_Val_Rule_Lookup_ID, null);
else
set_Value (COLUMNNAME_AD_Val_Rule_Lookup_ID, Integer.valueOf(AD_Val_Rule_Lookup_ID));
}
/** Get Dynamic Validation (Lookup).
@return Override Dynamic Validation Rule for Lookup Window
*/
public int getAD_Val_Rule_Lookup_ID ()
{
Integer ii = (Integer)get_Value(COLUMNNAME_AD_Val_Rule_Lookup_ID);
if (ii == null)
return 0;
return ii.intValue();
}
/** Set Callout. /** Set Callout.
@param Callout @param Callout
Fully qualified class names and method - separated by semicolons Fully qualified class names and method - separated by semicolons

View File

@ -32,7 +32,7 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent
/** /**
* *
*/ */
private static final long serialVersionUID = 20200413L; private static final long serialVersionUID = 20200911L;
/** Standard Constructor */ /** Standard Constructor */
public X_AD_Field (Properties ctx, int AD_Field_ID, String trxName) public X_AD_Field (Properties ctx, int AD_Field_ID, String trxName)
@ -353,6 +353,34 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent
return ii.intValue(); return ii.intValue();
} }
public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule_Lookup() throws RuntimeException
{
return (org.compiere.model.I_AD_Val_Rule)MTable.get(getCtx(), org.compiere.model.I_AD_Val_Rule.Table_Name)
.getPO(getAD_Val_Rule_Lookup_ID(), get_TrxName()); }
/** Set Dynamic Validation (Lookup).
@param AD_Val_Rule_Lookup_ID
Override Dynamic Validation Rule for Lookup Window
*/
public void setAD_Val_Rule_Lookup_ID (int AD_Val_Rule_Lookup_ID)
{
if (AD_Val_Rule_Lookup_ID < 1)
set_Value (COLUMNNAME_AD_Val_Rule_Lookup_ID, null);
else
set_Value (COLUMNNAME_AD_Val_Rule_Lookup_ID, Integer.valueOf(AD_Val_Rule_Lookup_ID));
}
/** Get Dynamic Validation (Lookup).
@return Override Dynamic Validation Rule for Lookup Window
*/
public int getAD_Val_Rule_Lookup_ID ()
{
Integer ii = (Integer)get_Value(COLUMNNAME_AD_Val_Rule_Lookup_ID);
if (ii == null)
return 0;
return ii.intValue();
}
/** Set Column Span. /** Set Column Span.
@param ColumnSpan @param ColumnSpan
Number of column for a box of field Number of column for a box of field
@ -857,6 +885,30 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent
return false; return false;
} }
/** IsSelectionColumn AD_Reference_ID=319 */
public static final int ISSELECTIONCOLUMN_AD_Reference_ID=319;
/** Yes = Y */
public static final String ISSELECTIONCOLUMN_Yes = "Y";
/** No = N */
public static final String ISSELECTIONCOLUMN_No = "N";
/** Set Selection Column.
@param IsSelectionColumn
Is this column used for Lookup rows in windows
*/
public void setIsSelectionColumn (String IsSelectionColumn)
{
set_Value (COLUMNNAME_IsSelectionColumn, IsSelectionColumn);
}
/** Get Selection Column.
@return Is this column used for Lookup rows in windows
*/
public String getIsSelectionColumn ()
{
return (String)get_Value(COLUMNNAME_IsSelectionColumn);
}
/** IsToolbarButton AD_Reference_ID=200099 */ /** IsToolbarButton AD_Reference_ID=200099 */
public static final int ISTOOLBARBUTTON_AD_Reference_ID=200099; public static final int ISTOOLBARBUTTON_AD_Reference_ID=200099;
/** Toolbar = Y */ /** Toolbar = Y */

View File

@ -30,7 +30,7 @@ public class X_AD_Tab extends PO implements I_AD_Tab, I_Persistent
/** /**
* *
*/ */
private static final long serialVersionUID = 20200413L; private static final long serialVersionUID = 20200911L;
/** Standard Constructor */ /** Standard Constructor */
public X_AD_Tab (Properties ctx, int AD_Tab_ID, String trxName) public X_AD_Tab (Properties ctx, int AD_Tab_ID, String trxName)
@ -530,6 +530,27 @@ public class X_AD_Tab extends PO implements I_AD_Tab, I_Persistent
return false; return false;
} }
/** Set Allow Advanced Lookup.
@param IsAllowAdvancedLookup Allow Advanced Lookup */
public void setIsAllowAdvancedLookup (boolean IsAllowAdvancedLookup)
{
set_Value (COLUMNNAME_IsAllowAdvancedLookup, Boolean.valueOf(IsAllowAdvancedLookup));
}
/** Get Allow Advanced Lookup.
@return Allow Advanced Lookup */
public boolean isAllowAdvancedLookup ()
{
Object oo = get_Value(COLUMNNAME_IsAllowAdvancedLookup);
if (oo != null)
{
if (oo instanceof Boolean)
return ((Boolean)oo).booleanValue();
return "Y".equals(oo);
}
return false;
}
/** Set Accounting Tab. /** Set Accounting Tab.
@param IsInfoTab @param IsInfoTab
This Tab contains accounting information This Tab contains accounting information
@ -578,6 +599,30 @@ public class X_AD_Tab extends PO implements I_AD_Tab, I_Persistent
return false; return false;
} }
/** Set Lookup Only Selection Columns.
@param IsLookupOnlySelection
When defined to true Lookup panel will display only selection columns. Default to false.
*/
public void setIsLookupOnlySelection (boolean IsLookupOnlySelection)
{
set_Value (COLUMNNAME_IsLookupOnlySelection, Boolean.valueOf(IsLookupOnlySelection));
}
/** Get Lookup Only Selection Columns.
@return When defined to true Lookup panel will display only selection columns. Default to false.
*/
public boolean isLookupOnlySelection ()
{
Object oo = get_Value(COLUMNNAME_IsLookupOnlySelection);
if (oo != null)
{
if (oo instanceof Boolean)
return ((Boolean)oo).booleanValue();
return "Y".equals(oo);
}
return false;
}
/** Set Read Only. /** Set Read Only.
@param IsReadOnly @param IsReadOnly
Field is read only Field is read only

View File

@ -30,7 +30,7 @@ public class X_AD_UserDef_Field extends PO implements I_AD_UserDef_Field, I_Pers
/** /**
* *
*/ */
private static final long serialVersionUID = 20200527L; private static final long serialVersionUID = 20200911L;
/** Standard Constructor */ /** Standard Constructor */
public X_AD_UserDef_Field (Properties ctx, int AD_UserDef_Field_ID, String trxName) public X_AD_UserDef_Field (Properties ctx, int AD_UserDef_Field_ID, String trxName)
@ -309,6 +309,34 @@ public class X_AD_UserDef_Field extends PO implements I_AD_UserDef_Field, I_Pers
return ii.intValue(); return ii.intValue();
} }
public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule_Lookup() throws RuntimeException
{
return (org.compiere.model.I_AD_Val_Rule)MTable.get(getCtx(), org.compiere.model.I_AD_Val_Rule.Table_Name)
.getPO(getAD_Val_Rule_Lookup_ID(), get_TrxName()); }
/** Set Dynamic Validation (Lookup).
@param AD_Val_Rule_Lookup_ID
Override Dynamic Validation Rule for Lookup Window
*/
public void setAD_Val_Rule_Lookup_ID (int AD_Val_Rule_Lookup_ID)
{
if (AD_Val_Rule_Lookup_ID < 1)
set_Value (COLUMNNAME_AD_Val_Rule_Lookup_ID, null);
else
set_Value (COLUMNNAME_AD_Val_Rule_Lookup_ID, Integer.valueOf(AD_Val_Rule_Lookup_ID));
}
/** Get Dynamic Validation (Lookup).
@return Override Dynamic Validation Rule for Lookup Window
*/
public int getAD_Val_Rule_Lookup_ID ()
{
Integer ii = (Integer)get_Value(COLUMNNAME_AD_Val_Rule_Lookup_ID);
if (ii == null)
return 0;
return ii.intValue();
}
/** Set Column Span. /** Set Column Span.
@param ColumnSpan @param ColumnSpan
Number of column for a box of field Number of column for a box of field

View File

@ -247,6 +247,51 @@ public class X_AD_UserDef_Tab extends PO implements I_AD_UserDef_Tab, I_Persiste
return (String)get_Value(COLUMNNAME_Help); return (String)get_Value(COLUMNNAME_Help);
} }
/** IsAllowAdvancedLookup AD_Reference_ID=319 */
public static final int ISALLOWADVANCEDLOOKUP_AD_Reference_ID=319;
/** Yes = Y */
public static final String ISALLOWADVANCEDLOOKUP_Yes = "Y";
/** No = N */
public static final String ISALLOWADVANCEDLOOKUP_No = "N";
/** Set Allow Advanced Lookup.
@param IsAllowAdvancedLookup Allow Advanced Lookup */
public void setIsAllowAdvancedLookup (String IsAllowAdvancedLookup)
{
set_Value (COLUMNNAME_IsAllowAdvancedLookup, IsAllowAdvancedLookup);
}
/** Get Allow Advanced Lookup.
@return Allow Advanced Lookup */
public String getIsAllowAdvancedLookup ()
{
return (String)get_Value(COLUMNNAME_IsAllowAdvancedLookup);
}
/** IsLookupOnlySelection AD_Reference_ID=319 */
public static final int ISLOOKUPONLYSELECTION_AD_Reference_ID=319;
/** Yes = Y */
public static final String ISLOOKUPONLYSELECTION_Yes = "Y";
/** No = N */
public static final String ISLOOKUPONLYSELECTION_No = "N";
/** Set Lookup Only Selection Columns.
@param IsLookupOnlySelection
When defined to true Lookup panel will display only selection columns. Default to false.
*/
public void setIsLookupOnlySelection (String IsLookupOnlySelection)
{
set_Value (COLUMNNAME_IsLookupOnlySelection, IsLookupOnlySelection);
}
/** Get Lookup Only Selection Columns.
@return When defined to true Lookup panel will display only selection columns. Default to false.
*/
public String getIsLookupOnlySelection ()
{
return (String)get_Value(COLUMNNAME_IsLookupOnlySelection);
}
/** Set Multi Row Only. /** Set Multi Row Only.
@param IsMultiRowOnly @param IsMultiRowOnly
This applies to Multi-Row view only This applies to Multi-Row view only

View File

@ -727,7 +727,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
m_findCancelled = false; m_findCancelled = false;
m_findCreateNew = false; m_findCreateNew = false;
GridField[] findFields = mTab.getFields(); GridField[] findFields = mTab.getFields();
FindWindow findWindow = new FindWindow(curWindowNo, FindWindow findWindow = new FindWindow(curWindowNo, mTab.getTabNo(),
mTab.getName(), mTab.getAD_Table_ID(), mTab.getTableName(), mTab.getName(), mTab.getAD_Table_ID(), mTab.getTableName(),
where.toString(), findFields, 10, mTab.getAD_Tab_ID()); // no query below 10 where.toString(), findFields, 10, mTab.getAD_Tab_ID()); // no query below 10
tabFindWindowHashMap.put(mTab, findWindow); tabFindWindowHashMap.put(mTab, findWindow);
@ -3626,7 +3626,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
findWindow = tabFindWindowHashMap.get(adTabbox.getSelectedGridTab()); findWindow = tabFindWindowHashMap.get(adTabbox.getSelectedGridTab());
toolbar.setSelectedUserQuery(findWindow.getAD_UserQuery_ID()); toolbar.setSelectedUserQuery(findWindow.getAD_UserQuery_ID());
} else { } else {
findWindow = new FindWindow (adTabbox.getSelectedGridTab().getWindowNo(), adTabbox.getSelectedGridTab().getName(), findWindow = new FindWindow (adTabbox.getSelectedGridTab().getWindowNo(), adTabbox.getSelectedGridTab().getTabNo(), adTabbox.getSelectedGridTab().getName(),
adTabbox.getSelectedGridTab().getAD_Table_ID(), adTabbox.getSelectedGridTab().getTableName(), adTabbox.getSelectedGridTab().getAD_Table_ID(), adTabbox.getSelectedGridTab().getTableName(),
adTabbox.getSelectedGridTab().getWhereExtended(), findFields, 1, adTabbox.getSelectedGridTab().getAD_Tab_ID()); adTabbox.getSelectedGridTab().getWhereExtended(), findFields, 1, adTabbox.getSelectedGridTab().getAD_Tab_ID());

View File

@ -209,7 +209,8 @@ public class ProcessParameterPanel extends Panel implements
+ "p.FieldLength, p.IsMandatory, p.IsRange, p.ColumnName, " + "p.FieldLength, p.IsMandatory, p.IsRange, p.ColumnName, "
+ "p.DefaultValue, p.DefaultValue2, p.VFormat, p.ValueMin, p.ValueMax, " + "p.DefaultValue, p.DefaultValue2, p.VFormat, p.ValueMin, p.ValueMax, "
+ "p.SeqNo, p.AD_Reference_Value_ID, vr.Code AS ValidationCode, " + "p.SeqNo, p.AD_Reference_Value_ID, vr.Code AS ValidationCode, "
+ "p.ReadOnlyLogic, p.DisplayLogic, p.IsEncrypted, NULL AS FormatPattern, p.MandatoryLogic, p.Placeholder, p.Placeholder2, p.isAutoComplete " + "p.ReadOnlyLogic, p.DisplayLogic, p.IsEncrypted, NULL AS FormatPattern, p.MandatoryLogic, p.Placeholder, p.Placeholder2, p.isAutoComplete, "
+ "'' AS ValidationCodeLookup "
+ "FROM AD_Process_Para p" + "FROM AD_Process_Para p"
+ " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) " + " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) "
+ "WHERE p.AD_Process_ID=?" // 1 + "WHERE p.AD_Process_ID=?" // 1
@ -220,7 +221,8 @@ public class ProcessParameterPanel extends Panel implements
+ "p.FieldLength, p.IsMandatory, p.IsRange, p.ColumnName, " + "p.FieldLength, p.IsMandatory, p.IsRange, p.ColumnName, "
+ "p.DefaultValue, p.DefaultValue2, p.VFormat, p.ValueMin, p.ValueMax, " + "p.DefaultValue, p.DefaultValue2, p.VFormat, p.ValueMin, p.ValueMax, "
+ "p.SeqNo, p.AD_Reference_Value_ID, vr.Code AS ValidationCode, " + "p.SeqNo, p.AD_Reference_Value_ID, vr.Code AS ValidationCode, "
+ "p.ReadOnlyLogic, p.DisplayLogic, p.IsEncrypted, NULL AS FormatPattern,p.MandatoryLogic, t.Placeholder, t.Placeholder2, p.isAutoComplete " + "p.ReadOnlyLogic, p.DisplayLogic, p.IsEncrypted, NULL AS FormatPattern,p.MandatoryLogic, t.Placeholder, t.Placeholder2, p.isAutoComplete, "
+ "'' AS ValidationCodeLookup "
+ "FROM AD_Process_Para p" + "FROM AD_Process_Para p"
+ " INNER JOIN AD_Process_Para_Trl t ON (p.AD_Process_Para_ID=t.AD_Process_Para_ID)" + " INNER JOIN AD_Process_Para_Trl t ON (p.AD_Process_Para_ID=t.AD_Process_Para_ID)"
+ " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) " + " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) "

View File

@ -166,6 +166,8 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
private Grid contentSimple; private Grid contentSimple;
/** Target Window No */ /** Target Window No */
private int m_targetWindowNo; private int m_targetWindowNo;
/** Target Tab No */
private int m_targetTabNo;
/** Table ID */ /** Table ID */
private int m_AD_Table_ID; private int m_AD_Table_ID;
/** Table Name */ /** Table Name */
@ -263,11 +265,12 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
* @param minRecords minRecords * @param minRecords minRecords
* @param adTabId * @param adTabId
**/ **/
public FindWindow (int targetWindowNo, String title, public FindWindow (int targetWindowNo, int targetTabNo, String title,
int AD_Table_ID, String tableName, String whereExtended, int AD_Table_ID, String tableName, String whereExtended,
GridField[] findFields, int minRecords, int adTabId) GridField[] findFields, int minRecords, int adTabId)
{ {
m_targetWindowNo = targetWindowNo; m_targetWindowNo = targetWindowNo;
m_targetTabNo = targetTabNo;
m_title = title; m_title = title;
m_AD_Table_ID = AD_Table_ID; m_AD_Table_ID = AD_Table_ID;
m_tableName = tableName; m_tableName = tableName;
@ -677,6 +680,14 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
winMain.addTab(tabPanel, Msg.getMsg(Env.getCtx(), "Advanced").replaceAll("&", ""), false, false); winMain.addTab(tabPanel, Msg.getMsg(Env.getCtx(), "Advanced").replaceAll("&", ""), false, false);
initSimple(); initSimple();
initAdvanced(); initAdvanced();
if (!(MRole.get(Env.getCtx(), Env.getAD_Role_ID(Env.getCtx())).isAccessAdvanced()
|| "Y".equals(Env.getContext(Env.getCtx(), m_targetWindowNo, m_targetTabNo, GridTab.CTX_IsAllowAdvancedLookup))))
{
winMain.getComponent().getTabpanel(1).getLinkedTab().setDisabled(true);
winMain.getComponent().getTabpanel(1).getLinkedTab().setVisible(false);
}
/** START DEVCOFFEE **/ /** START DEVCOFFEE **/
statusBar.setClass("statusbar"); statusBar.setClass("statusbar");
layout.appendChild(statusBar); layout.appendChild(statusBar);
@ -711,6 +722,7 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
ArrayList<GridField> gridFieldList = new ArrayList<GridField>(); ArrayList<GridField> gridFieldList = new ArrayList<GridField>();
ArrayList<GridField> moreFieldList = new ArrayList<GridField>(); ArrayList<GridField> moreFieldList = new ArrayList<GridField>();
boolean IsLookupOnlySelection = "Y".equals(Env.getContext(Env.getCtx(), m_targetWindowNo, m_targetTabNo, GridTab.CTX_IsLookupOnlySelection));
// Get Info from target Tab // Get Info from target Tab
for (int i = 0; i < m_findFields.length; i++) for (int i = 0; i < m_findFields.length; i++)
{ {
@ -724,10 +736,13 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
ynvo.IsDisplayed = true; ynvo.IsDisplayed = true;
ynvo.displayType = DisplayType.List; ynvo.displayType = DisplayType.List;
ynvo.AD_Reference_Value_ID = REFERENCE_YESNO; ynvo.AD_Reference_Value_ID = REFERENCE_YESNO;
String validationCode = ynvo.ValidationCode;
if (ynvo.ValidationCodeLookup != null && !ynvo.ValidationCodeLookup.isEmpty())
validationCode = ynvo.ValidationCodeLookup;
ynvo.lookupInfo = MLookupFactory.getLookupInfo (ynvo.ctx, ynvo.WindowNo, ynvo.AD_Column_ID, ynvo.displayType, ynvo.lookupInfo = MLookupFactory.getLookupInfo (ynvo.ctx, ynvo.WindowNo, ynvo.AD_Column_ID, ynvo.displayType,
Env.getLanguage(ynvo.ctx), ynvo.ColumnName, ynvo.AD_Reference_Value_ID, Env.getLanguage(ynvo.ctx), ynvo.ColumnName, ynvo.AD_Reference_Value_ID,
ynvo.IsParent, ynvo.ValidationCode); ynvo.IsParent, validationCode);
ynvo.lookupInfo.tabNo = TABNO; ynvo.lookupInfo.tabNo = TABNO;
GridField ynfield = new GridField(ynvo); GridField ynfield = new GridField(ynvo);
@ -743,10 +758,13 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
GridFieldVO postedvo = vo.clone(m_simpleCtx, vo.WindowNo, vo.TabNo, vo.AD_Window_ID, vo.AD_Tab_ID, vo.tabReadOnly); GridFieldVO postedvo = vo.clone(m_simpleCtx, vo.WindowNo, vo.TabNo, vo.AD_Window_ID, vo.AD_Tab_ID, vo.tabReadOnly);
postedvo.IsDisplayed = true; postedvo.IsDisplayed = true;
postedvo.displayType = DisplayType.List; postedvo.displayType = DisplayType.List;
String validationCode = postedvo.ValidationCode;
if (postedvo.ValidationCodeLookup != null && !postedvo.ValidationCodeLookup.isEmpty())
validationCode = postedvo.ValidationCodeLookup;
postedvo.lookupInfo = MLookupFactory.getLookupInfo (postedvo.ctx, postedvo.WindowNo, postedvo.AD_Column_ID, postedvo.displayType, postedvo.lookupInfo = MLookupFactory.getLookupInfo (postedvo.ctx, postedvo.WindowNo, postedvo.AD_Column_ID, postedvo.displayType,
Env.getLanguage(postedvo.ctx), postedvo.ColumnName, postedvo.AD_Reference_Value_ID, Env.getLanguage(postedvo.ctx), postedvo.ColumnName, postedvo.AD_Reference_Value_ID,
postedvo.IsParent, postedvo.ValidationCode); postedvo.IsParent, validationCode);
postedvo.lookupInfo.tabNo = TABNO; postedvo.lookupInfo.tabNo = TABNO;
GridField postedfield = new GridField(postedvo); GridField postedfield = new GridField(postedvo);
@ -764,18 +782,24 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
MLookup mLookup = (MLookup) lookup; MLookup mLookup = (MLookup) lookup;
mLookup.getLookupInfo().ctx = m_simpleCtx; mLookup.getLookupInfo().ctx = m_simpleCtx;
mLookup.getLookupInfo().tabNo = TABNO; mLookup.getLookupInfo().tabNo = TABNO;
if (findField.getVO().ValidationCodeLookup != null && !findField.getVO().ValidationCodeLookup.isEmpty())
{
mLookup.getLookupInfo().ValidationCode = findField.getVO().ValidationCodeLookup;
mLookup.getLookupInfo().IsValidated = false;
}
} }
} }
findField.setGridTab(null); findField.setGridTab(null);
m_findFields[i] = findField; m_findFields[i] = findField;
findField.setPlaceholder(null);
mField = findField; mField = findField;
} }
if (mField.isSelectionColumn()) { if (mField.isSelectionColumn()) {
gridFieldList.add(mField); // isSelectionColumn gridFieldList.add(mField); // isSelectionColumn
} else { } else {
if ((isDisplayed || mField.isVirtualSearchColumn()) && mField.getDisplayType() != DisplayType.Button && !mField.getColumnName().equals("AD_Client_ID")) if (!IsLookupOnlySelection && (isDisplayed || mField.isVirtualSearchColumn()) && mField.getDisplayType() != DisplayType.Button && !mField.getColumnName().equals("AD_Client_ID"))
moreFieldList.add(mField); moreFieldList.add(mField);
} }
} // for all target tab fields } // for all target tab fields
@ -1087,6 +1111,10 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
if (field == null || field.isVirtualUIColumn()) if (field == null || field.isVirtualUIColumn())
continue; continue;
boolean IsLookupOnlySelection = !MRole.get(Env.getCtx(), Env.getAD_Role_ID(Env.getCtx())).isAccessAdvanced()
&& "Y".equals(Env.getContext(Env.getCtx(), m_targetWindowNo, m_targetTabNo, GridTab.CTX_IsLookupOnlySelection));
if (IsLookupOnlySelection && !field.isSelectionColumn())
continue;
String columnName = field.getColumnName(); String columnName = field.getColumnName();
String header = field.getHeader(); String header = field.getHeader();
if (header == null || header.length() == 0) if (header == null || header.length() == 0)
@ -2181,6 +2209,12 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
{ {
MLookup mLookup = (MLookup) lookup; MLookup mLookup = (MLookup) lookup;
mLookup.getLookupInfo().tabNo = TABNO; mLookup.getLookupInfo().tabNo = TABNO;
if (findField.getVO().ValidationCodeLookup != null && !findField.getVO().ValidationCodeLookup.isEmpty())
{
mLookup.getLookupInfo().ValidationCode = findField.getVO().ValidationCodeLookup;
mLookup.getLookupInfo().IsValidated = false;
}
} }
editor = WebEditorFactory.getEditor(findField, true); editor = WebEditorFactory.getEditor(findField, true);
findField.addPropertyChangeListener(editor); findField.addPropertyChangeListener(editor);

View File

@ -1420,7 +1420,7 @@ public class ZkReportViewer extends Window implements EventListener<Event>, ITab
bFind.setVisible(false); bFind.setVisible(false);
else else
{ {
final FindWindow find = new FindWindow(m_WindowNo, title, AD_Table_ID, tableName,m_reportEngine.getWhereExtended(), findFields, 1, AD_Tab_ID); final FindWindow find = new FindWindow(m_WindowNo, 0, title, AD_Table_ID, tableName,m_reportEngine.getWhereExtended(), findFields, 1, AD_Tab_ID);
if (!find.initialize()) if (!find.initialize())
return; return;