Мне нужно выполнить запрос формы по коду. Таблица источника данных - это CustomVendTable (это настраиваемая таблица). Я открываю форму и в моем init
методе получаю вызывающую таблицу:
public void init ()
{
VendTable = myVendTableCaller;
myVendTableCaller = element.args().record();
// There is a dialog and get a date by a _Dialog_ and save in a date variable
super();
}
В моем источнике данных есть запрос. Таблица в моем источнике данных связана с VendTable. Я фильтрую по коду мой DataSource по myVendTableCaller.RecId и переменную date dateByDialog, вставленную в открывающееся диалоговое окно
Мой запрос таков:
public void executeQuery()
{
query q = new Query();
QueryBuildRange qbr;
QueryBuildDataSource qbds ;
QueryRun queryRun;
qbds = q.addDataSource(tableNum(CustomVendTable) );
qbds.addRange(fieldNum(CustomVendTable, ValidFrom)).value(SysQuery::value( strFmt ("<=%1 ", _dateByDialog)) ) ;
qbds.addRange(fieldNum(CustomVendTable, ValidTo)).value(SysQuery::value( strFmt (">=%1 ", _dateByDialog))) ;
qbds.addRange(fieldNum(CustomVendTable, Vendor )).value(SysQuery::value(myVendTableCaller.recId));
queryRun = new QueryRun (q);
CustomVendTable_ds.query(queryRun.query());
super();
}
* Для информации существует Связь таблиц CustomVendTable.Vendor == VendTable.RecId
Итак, у меня проблемы! Я думаю, что не смогу сделать правильный запрос по дате. Поля ValidFrom - ValidTo относятся к типу UTCdatetime.
1) Мне нужно преобразовать свой _dateByDialog в UTC? Как сделать ? Это правильная дата моего запроса?
Учитывая, что преобразование не невозможно, моя БОЛЬШАЯ проблема заключается в том, что при фильтрации по дате, если у меня есть только одна запись с тем же диапазоном и датами, я могу как-то ее увидеть, НО если есть больше записей с такими же характеристиками (если у меня есть 2 записи) Ничего не вижу! Моя сетка форм недействительна!
Я прочитал, что вам следует установить дату и время сеанса (Я говорю об этом), чтобы контролировать даты.
Я по-прежнему считаю, что не очень хорошо строю свой запрос.
У тебя есть идеи, как мне это сделать?