IDEMPIERE-1228 use saved query with active column, make result empty record. Revert an optimization make at 5495274 for IDEMPIERE-1105 that break advance search for YesNo field.

This commit is contained in:
Heng Sin Low 2013-08-14 15:50:56 +08:00
parent ea449dbd6b
commit b697fcbff1
1 changed files with 39 additions and 40 deletions

View File

@ -613,53 +613,52 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
{ {
GridField mField = m_findFields[i]; GridField mField = m_findFields[i];
if (mField.isSelectionColumn()) { if (mField.getVO().displayType == DisplayType.YesNo) {
if (mField.getVO().displayType == DisplayType.YesNo) { // Make Yes-No searchable as list
// Make Yes-No searchable as list GridFieldVO vo = mField.getVO();
GridFieldVO vo = mField.getVO(); GridFieldVO ynvo = vo.clone(vo.ctx, vo.WindowNo, vo.TabNo, vo.AD_Window_ID, vo.AD_Tab_ID, vo.tabReadOnly);
GridFieldVO ynvo = vo.clone(vo.ctx, vo.WindowNo, vo.TabNo, vo.AD_Window_ID, vo.AD_Tab_ID, vo.tabReadOnly); 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;
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, ynvo.ValidationCode);
GridField ynfield = new GridField(ynvo); GridField ynfield = new GridField(ynvo);
// replace the original field by the YN List field // replace the original field by the YN List field
m_findFields[i] = ynfield; m_findFields[i] = ynfield;
mField = ynfield; mField = ynfield;
} else if ( mField.getVO().displayType == DisplayType.Button ) { } else if ( mField.getVO().displayType == DisplayType.Button ) {
// Make Buttons searchable // Make Buttons searchable
GridFieldVO vo = mField.getVO(); GridFieldVO vo = mField.getVO();
if ( vo.AD_Reference_Value_ID > 0 ) if ( vo.AD_Reference_Value_ID > 0 )
{ {
GridFieldVO postedvo = vo.clone(vo.ctx, vo.WindowNo, vo.TabNo, vo.AD_Window_ID, vo.AD_Tab_ID, vo.tabReadOnly); GridFieldVO postedvo = vo.clone(vo.ctx, 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;
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, postedvo.ValidationCode);
GridField postedfield = new GridField(postedvo); GridField postedfield = new GridField(postedvo);
// replace the original field by the Posted List field // replace the original field by the Posted List field
m_findFields[i] = postedfield; m_findFields[i] = postedfield;
mField = postedfield; mField = postedfield;
} }
} else { } else {
// clone the field and clean gridtab - IDEMPIERE-1105 // clone the field and clean gridtab - IDEMPIERE-1105
GridField findField = (GridField) mField.clone(m_findCtx); GridField findField = (GridField) mField.clone(m_findCtx);
findField.setGridTab(null); findField.setGridTab(null);
m_findFields[i] = findField; m_findFields[i] = findField;
mField = findField; mField = findField;
} }
if (mField.isSelectionColumn()) {
gridFieldList.add(mField); gridFieldList.add(mField);
} // isSelectionColumn } // isSelectionColumn
} // for all target tab fields } // for all target tab fields