Scneario: we want to hide the query values that was selected by the user in query range select button.
I created the parmmethod as below in the class Dialog,RunBaseDialogModify
public boolean hideQueryValuesInDialog(boolean _showValues = showValues)
{
;
showValues = _showValues;
return showValues;
}
Added the highlighted code as below in the following method of class RunBaseDialogModify
client public static RunBaseDialogModify newRunbaseOnClient(
RunBase runBase,
DialogRunbase dialog)
{
// <GEERU>
RunBaseDialogModify runBaseDialogModify = RunBaseDialogModify::construct(runBase.runBaseDialogModifyType_RU());
// </GEERU>
;
runBaseDialogModify.parmRunbase(runBase);
runBaseDialogModify.parmDialog(dialog);
//Addded by krishna
runBaseDialogModify.rsaShowQueryValuesInDialog(dialog.rsaShowQueryValuesInDialog());
//Addded by krishna
return runBaseDialogModify;
}
Server public static RunBaseDialogModify newRunbaseOnServer(
RunBase runBase,
DialogRunbase dialog)
{
// <GEERU>
RunBaseDialogModify runBaseDialogModify = RunBaseDialogModify::construct(runBase.runBaseDialogModifyType_RU());
// </GEERU>
;
runBaseDialogModify.parmRunbase(runBase);
runBaseDialogModify.parmDialog(dialog);
//Addded by krishna
runBaseDialogModify.rsaShowQueryValuesInDialog(dialog.rsaShowQueryValuesInDialog());
//Addded by krishna
return runBaseDialogModify;
}
// <GEERU>
protected boolean addField(SysDictField _dictField, Set _fieldNameSet, LabelType _labelType, Range _range)
// </GEERU>
{
boolean ret = false;
Map map;
DialogField dialogField;
TableId tableId;
if (_dictField)
{
tableId = _dictField.tableid();
if (_fieldNameSet.in(_dictField.name()))
{
if (this.existField(_dictField))
{
this.addRange(this.getFieldName(_dictField), _range);
}
}
else
{
ret = true;
if (!dialogQueryFieldsMap.exists(tableId))
{
dialogQueryFieldsMap.insert(tableId, new Map(Types::String, Types::String));
}
map = dialogQueryFieldsMap.lookup(tableId);
dialogField = dialog.addField(extendedTypeStr(RunBaseRange), _labelType);
dialogField.value(_range);
dialogField.allowEdit(false);
//Addded by krishna
// dialogField.visible(true);
if(!showValues)
{
dialogField.visible(false);
}
else
{
dialogField.visible(true);
}
//Addded by krishna
map.insert(_dictField.name(), dialogField.fieldname());
_fieldNameSet.add(_dictField.name());
}
}
return ret;
}
In your runbasebatch class override the method as below
public DialogRunbase dialogInit(DialogRunbase dialog, boolean forceOnClient= false)
{
DialogRunbase ret;
//Addded by krishna
if (! dialog)
{
if (xGlobal::clientKind() != ClientType::Server || forceOnClient)
dialog = DialogRunbase::newOnClient(this.caption(),this);
else
dialog = DialogRunbase::newOnServer(this.caption(),this);
}
dialog.rsaShowQueryValuesInDialog(false);
//Addded by krishna
ret = super(dialog, forceOnClient);
return ret;
}
The above changes will hide your query range selected values in the dialog with showing select button.