Всем привет!
Добавляю в старый отчёт диапозон дат:
ClassDeclaration:
Код:
class InventStdFormM17_RU extends RunBaseReport
{
ItemId itemId;
boolean isItemIdFixed;
InventLocationId inventLocationId;
TransDate dateBegin;
TransDate dateEnd;
int totalLoops;
InventTrans InventTrans;
DialogField dialogItemId;
DialogField dialogInventLocationId;
DialogField dialogDateBegin;
DialogField dialogDateEnd;
#define.currentVersion(2)
#localmacro.currentList
itemId,
inventLocationId,
dateBegin,
dateEnd
#endmacro
}
dialog:
Код:
public Object dialog(DialogRunbase _dialog = null,
boolean _forceOnClient = false)
{
DialogRunBase dialog = super(_dialog, _forceOnClient);
;
dialog.addGroup("@SYS28952");
dialogItemId = dialog.addFieldValue(typeid(ItemId), itemId);
if (isItemIdFixed)
{
dialogItemId.enabled(false);
}
dialogInventLocationId = dialog.addFieldValue(typeid(InventLocationId), inventLocationId);
dialogDateBegin = dialog.addFieldValue(typeid(TransDate), dateBegin, "С");
dialogDateEnd = dialog.addFieldValue(typeid(TransDate), dateEnd, "ПО");
return dialog;
}
нужно ли что-нибудь делать с новыми переменными в valdate?:
Код:
public boolean validate(Object _calledFrom = null)
{
return super(_calledFrom) &&
(itemId ? true : checkfailed("@DIS8931")) &&
InventTable::checkExist(itemId) &&
InventLocation::checkExist(inventLocationId);
}
При первом выпадении календари пусты (нету циферок вообще):, если второй раз кликнуть то появляется каледарик с текущим месяцем или с самого начала ввести ручками дату, и нажать на кнопку для вызова календаря тоже всё будет..
Ещё дополнительный вопрос по currentVersion: если раньше было всё тоже самое, но без диапозона дат, нужно ли менять 2 на 3 (раньше было 2)
А вообще хотелось бы по подробнее на эту тему и про pack/unpack тоже...
Что это вообще такое, зачем нужно.... может подкинете ссылочку..?