|
20.04.2010, 11:47 | #1 |
Участник
|
Проблема вывода CreatedTime в отчет
Коллеги,
В отчет надо вывести поле SalesTable.CreatedTime, однако если указываешь например .... timeofday Time .... curTime = salesTable.CreatedTime то возвращает 0 Подскажите, что ж неправильно то? Заранее спасибо DAX 4.0, kernel 4.0.2503.454 |
|
20.04.2010, 11:59 | #2 |
Участник
|
У вас свойство "CreatedTime" включено на таблице SalesTable в AOT?
Если включено, то может быть тогда запись была создана до того, как это свойство включили. Поле SalesTable.CreatedTime начинает заполняться только после включения свойства. |
|
20.04.2010, 12:02 | #3 |
Участник
|
Да, включено. И на свежих записях тоже самое
|
|
20.04.2010, 12:04 | #4 |
Участник
|
у вас переменная объявлена с именем Time
а присваиваете вы его другой переменной: curTime = salesTable.CreatedTime |
|
20.04.2010, 12:06 | #5 |
Участник
|
Sorry, переменная, естественно, называется curTime и объявляется
timeofday curTime |
|
20.04.2010, 12:11 | #6 |
Участник
|
посмотрите в обозреватале таблицы SalesTable для данного конкретного заказа, у которого в отчет 0 выводится - поле CreatedTime заполнено?
Если заполнено, то в месте, где выводится это поле в отчет, выведите еще в инфолог: info(int2str(curTime)) - должно быть целое число >0. Если все правильно, то что-то не так в самом отчете. |
|
20.04.2010, 12:12 | #7 |
Участник
|
И еще покажите, как у вас переменная SalesTable инициализируется - какой запрос или метод find?
|
|
20.04.2010, 12:15 | #8 |
Участник
|
Значение для строки заказа есть. Инфолог выводит 0.
Вот кусок кода отчета: if (!firstRow) { //Выводим строку для предыдущей группы s += curRow + colsDelim + strfmt("%1", decround(curWeight, 2)) + colsDelim + strfmt("%1", decround(curConfirmedWeight, 2)) + colsDelim + strfmt("%1", decround(curWeightBrutto, 2)) + colsDelim + strfmt("%1", decround(curVolume, 2)) + colsDelim + strfmt("%1", decround(curPalletQty, 2)) + colsDelim + strfmt("%1", decround(curAmount, 2)) + colsDelim + strfmt("%1", time2str(curTime, 99, 1)); allWeight += curWeight; allConfirmedWeight += curConfirmedWeight; allWeightBrutto += curWeightBrutto; allVolume += curVolume; allPalletQty += curPalletQty; allAmount += curAmount; s += rowsDelim; } firstRow = false; curRow = int2str(i) + colsDelim + excelExp.formatValue(salesTable.SalesId) + colsDelim + excelExp.formatValue(salesTable.PurchOrderFormNum) + colsDelim + excelExp.formatValue(salesTable.CustAccount) + colsDelim + excelExp.formatValue(CustTable.NameAlias) + colsDelim + excelExp.formatValue(salesTable.DeliveryAddress) + printInventLocation(); // valio shol 09/05/14 curWeight = salesLine.QtyOrdered * inventTable.NetWeight; curConfirmedWeight = confirmInventQty * inventTable.NetWeight; curWeightBrutto = confirmInventQty * (inventTable.NetWeight + inventTable.TaraWeight); curVolume = confirmInventQty * ((inventTable.Height/1000) * (inventTable.Width/1000) * (inventTable.Depth/1000)); curPalletQty = inventTable.standardPalletQuantity ? (decround(confirmInventQty/inventTable.standardPalletQuantity,2)) : 0; curAmount = custConfirmjour.ConfirmAmount; curTime = salesTable.CreatedTime; info(int2str(curTime)); } |
|
20.04.2010, 12:20 | #9 |
Участник
|
Покажите select, который выбирает данные из SalesTable.
Может, у вас там перечислены отдельные поля, и среди них нет CreatedTime. |
|
20.04.2010, 12:20 | #10 |
Участник
|
void makeReport()
{ Query query = new Query(); QueryBuildDataSource qbdsSalesTable, qbdsSalesLine; QueryRun qrRun; int i; SalesTable salesTable; CustTable custTable; SalesLine salesLine; InventTable inventTable; |
|
20.04.2010, 15:34 | #11 |
Участник
|
Посмотрите что у вас в SalesTable перед присвоением!
После строчки X++: curTime = salesTable.CreatedTime; X++: info(strfmt('SalesId = %1\nCreatedTime = %2\ncurTime = %3',salesTable.SalesId,time2str(salesTable.createdTime,1,1),int2str(curTime))); А вообще breakpoint; и вперёд... )
__________________
Что сломалось не знаем, но уже немного подчинили... Последний раз редактировалось hated8; 20.04.2010 в 16:01. |
|
Теги |
query, select, field |
|
|