2016-02-06 6 views
0

Мне нужно выполнить запрос формы по коду. Таблица источников данных: 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 и переменная дата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

Итак, у меня есть некоторые проблемы s! Я думаю, что не могу сделать правильный запрос по дате. Поля ValidFrom - ValidTo являются UTCdatetime тип.

1) Мне нужно конвертировать мой _dateByDialog в UTC? Как сделать ? Правильно ли мой запрос датируется?

Учитывая, что преобразование не является невозможным, моя БОЛЬШАЯ проблема заключается в том, что путем фильтрации по дате, если у меня есть только одна запись с повторением того же диапазона и дат, я могу как-то ее увидеть, НО если есть больше записей с этими же характеристиками (Если у меня 2 записи), я ничего не вижу! Моя сетка формы недействительна!

Я прочитал, что вы должны установить Сессия дата времени (I'm talking about this), чтобы иметь контроль над датами.

Я все еще считаю, что я не строю свой Вопрос очень хорошо.

У вас есть идея, что я могу сделать?

ответ

0

Возможно, вы используете таблицу, в которой используется date effective. Вы предполагаете, что вам нужно сделать выбор самостоятельно, это неправда.

Вместо этого метод вызова validTimeStateAsOfDate на источнике данных. См. this answer.

+0

Кроме того, не построить запрос с нуля. Измените построение запроса методом 'init'. –

+2

Узнайте из своего прошлого опыта! http://stackoverflow.com/q/34020829/4509 –