16.01.2012, 16:01
|
| »»» |
#61
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от csistra
|
и снова ЗДРАСТЕ!
Наконец-то дошли руки написать здесь что нить новенькое такое-эдакое.
Пока вся страна успешно употребляла горячительное и пыталась совершить мягкую посадку в салат оливье, я тоже этим занимался, но теперь пришла пора немного потрудится на благо вселенной и все такое.
Собсно суть вопросов....
в очередной раз открыл инструкцию под названием "Руководство по работе с программой AGReports". увидел там ФИГУ и обрадовался.
Захотелось мне в отчет добавить два столбца: "Расход 1 дв." и "Расход 1 ост.". Что это такое думаю всем понятно. Т.к. в мануале нет я решил что это будет выглядеть так:
[Dataset1."Trip_Motor1FuelMoveHours"] и [Dataset1."Trip_Motor1FuelParkHours"]
но это я так думал. Оказалось ФИГУШКИ! Подскажите КАК это написать то????
А! и еще!
есть у меня в отчете:
[IIF(<Dataset1."DISTANCE"> > 0, 100*<Dataset1."M1_FUEL"> / <Dataset1."DISTANCE">, 'N/A')]
хочу чтобы у меня выделялась ячейчка в красный цвет если значение больше 50.
для этого перехожу в "Выделение" гляжу туда.... и все! завис... а КАК написать то условие ????
поможыте!!!! люди добрые и не очень!
|
csistra, не паникуйте. Всё хорошо.
Читайте сответствующий файл: Описание полей DBF для списков.doc
Он должен быть соответствующей свежести.
На всякий случай перезакачайте: http://www.tk-chel.ru/download/AutoGRAPH_OLE.zip
Но вообще - вроде как обновляется через инсталлятор...
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
16.01.2012, 16:15
|
| »»» |
#62
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
16.01.2012, 17:18
|
| »»» |
#63
|
Начинающий
Регистрация: 15.12.2011
Сообщений: 44
|
SK спасибо, но вероятно я неправильно объяснил задачу.
Мне надо не работу двигателя, а весь промежуток времени прошедший от пуска двигателя до последней его остановки
|
|
|
|
16.01.2012, 18:27
|
| »»» |
#64
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Это несколько сложнее. Но...
Во вкладку "Код" между глобальным объявлением переменных и глобальной процедурой вставить функцию определения длины временного интервала по его началу и концу TimeMinus(Начало, Конец):
Нажмите для просмотра содержимого...
Код:
|
function TimeMinus(TimeBegin: String; TimeEnd: String): String;
var
TEnd: TDateTime = 0;
TBegin: TDateTime = 0;
TRes: TDateTime = 0;
TResStr: String;
begin
TBegin := StrToDateTime(TimeBegin);
TEnd := StrToDateTime(TimeEnd);
TRes := TEnd - TBegin;
if TRes >= 1 then
begin
TResStr := DateTimeToStr(TRes);
TResStr := IntToStr(Trunc(TRes)) + ' сут. ' + Copy(TResStr, Length(TResStr) - 7, 8);
end
else
begin
TResStr := DateTimeToStr(TRes);
TResStr := Copy(TResStr, Length(TResStr) - 7, 8);
end;
result := TResStr;
end; |
Должно получиться что-то типа:
Затем в нужной ячейке вызвать эту функцию, передав в качестве параметров начало и конец временного отрезка, длину которого надо вычислить.
В Вашем случае:
Код:
|
[TimeMinus(<Dataset1."I1_S_TIME">,<Dataset1."I1_E_TIME">)] |
всё...
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
16.01.2012, 18:32
|
| »»» |
#65
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Отпишитесь, получилось или нет.
Функцию можно применять и для расчета длин любых других временных отрезков... Вроде... )))
Еще можно в начале функции встроить защиту от перепутывания начала и конца временного отрезка.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
17.01.2012, 09:27
|
| »»» |
#66
|
Начинающий
Регистрация: 15.12.2011
Сообщений: 44
|
SK, что-то не так.
Можно еще что нибудь придумать?
|
|
|
|
17.01.2012, 09:29
|
| »»» |
#67
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от Александр 52 регион
|
SK, что-то не так.
Можно еще что нибудь придумать?
|
А какие переменные подставили ?
Скопируйте мне функцию из ячейки отчета.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
17.01.2012, 09:39
|
| »»» |
#68
|
Начинающий
Регистрация: 15.12.2011
Сообщений: 44
|
Простите, я не понимаю, надо еще переменные вносить? Куда?
Я ввел в ячейку предложенную функцию: [TimeMinus(<Dataset1."I1_S_TIME">,<Dataset1."I1_E_T IME">)]
|
|
|
|
17.01.2012, 09:51
|
| »»» |
#69
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Александр 52 регион, зайдите, пожалуйста, в редактор отчета, сохраните его в отдельный файл "Сохранить как" и вышлите на support@tk-chel.ru для Самцова Константина.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
17.01.2012, 10:48
|
| »»» |
#70
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Александр 52 регион, понятно что происходит.
У вас одна из переменных I1_S_TIME или I1_E_TIME отсутствует - содержит пустое значение. Или обе сразу. Соответственно, возникает ошибка конвертации типа.
Можно модифицировать немного код функции, чтоб в случае ошибки, он выдавал в отчет N/A.
Проверьте, пожалуйста. И отпишитесь здесь.
Код:
|
function TimeMinus(TimeBegin: String; TimeEnd: String): String;
var
TEnd: TDateTime = 0;
TBegin: TDateTime = 0;
TRes: TDateTime = 0;
TResStr: String;
begin
try
TBegin := StrToDateTime(TimeBegin);
TEnd := StrToDateTime(TimeEnd);
TRes := TEnd - TBegin;
if TRes >= 1 then
begin
TResStr := DateTimeToStr(TRes);
TResStr := IntToStr(Trunc(TRes)) + ' сут. ' + Copy(TResStr, Length(TResStr) - 7, 8);
end
else
begin
TResStr := DateTimeToStr(TRes);
TResStr := Copy(TResStr, Length(TResStr) - 7, 8);
end;
result := TResStr;
except
result := 'N/A';
end;
end; |
Для индикации и проверки, сделайте еще одну ячейку с содержимым, выводящем эти переменные переменные (если хотите):
[Dataset1."I1_S_TIME"]
[Dataset1."I1_E_TIME"]
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
Последний раз редактировалось SK; 17.01.2012 в 10:51.
|
|
|
|
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 08:58. Часовой пояс GMT.
|
|