Ответ
 
Опции темы
Старый 16.01.2012, 16:01    | »»» |  #61
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,974
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Сообщение от 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

Но вообще - вроде как обновляется через инсталлятор...

ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
SK на форуме   Ответить с цитированием
Старый 16.01.2012, 16:15    | »»» |  #62
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,974
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Сообщение от Александр 52 регион Посмотреть сообщение
А мне нужно сделать "работу водителя" у нас она считается от начала пуска стартера, до последнего выключения двигателя - это по Вашему разница между I1_S_TIME и I1_E_TIME, т.е. в колонке надо вписать цифру равную I1_E_TIME минус I1_S_TIME

Можете написать такую формулу?
I1_CONT


ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
SK на форуме   Ответить с цитированием
Сказал «Я - ЗА»:
Старый 16.01.2012, 17:18    | »»» |  #63
Александр 52 регион
Начинающий
 
Аватар для Александр 52 регион
 
Регистрация: 15.12.2011
Сообщений: 44
Александр 52 регион is on a distinguished road
По умолчанию

SK спасибо, но вероятно я неправильно объяснил задачу.
Мне надо не работу двигателя, а весь промежуток времени прошедший от пуска двигателя до последней его остановки

Александр 52 регион вне форума   Ответить с цитированием
Старый 16.01.2012, 18:27    | »»» |  #64
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,974
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Это несколько сложнее. Но...

Во вкладку "Код" между глобальным объявлением переменных и глобальной процедурой вставить функцию определения длины временного интервала по его началу и концу 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">)]
всё...

ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
SK на форуме   Ответить с цитированием
Старый 16.01.2012, 18:32    | »»» |  #65
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,974
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Отпишитесь, получилось или нет.

Функцию можно применять и для расчета длин любых других временных отрезков... Вроде... )))

Еще можно в начале функции встроить защиту от перепутывания начала и конца временного отрезка.

ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
SK на форуме   Ответить с цитированием
Старый 17.01.2012, 09:27    | »»» |  #66
Александр 52 регион
Начинающий
 
Аватар для Александр 52 регион
 
Регистрация: 15.12.2011
Сообщений: 44
Александр 52 регион is on a distinguished road
По умолчанию

SK, что-то не так.
Можно еще что нибудь придумать?

Александр 52 регион вне форума   Ответить с цитированием
Старый 17.01.2012, 09:29    | »»» |  #67
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,974
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Сообщение от Александр 52 регион Посмотреть сообщение
SK, что-то не так.
Можно еще что нибудь придумать?

А какие переменные подставили ?

Скопируйте мне функцию из ячейки отчета.

ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
SK на форуме   Ответить с цитированием
Старый 17.01.2012, 09:39    | »»» |  #68
Александр 52 регион
Начинающий
 
Аватар для Александр 52 регион
 
Регистрация: 15.12.2011
Сообщений: 44
Александр 52 регион is on a distinguished road
По умолчанию

Простите, я не понимаю, надо еще переменные вносить? Куда?

Я ввел в ячейку предложенную функцию: [TimeMinus(<Dataset1."I1_S_TIME">,<Dataset1."I1_E_T IME">)]
Александр 52 регион вне форума   Ответить с цитированием
Старый 17.01.2012, 09:51    | »»» |  #69
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,974
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Александр 52 регион, зайдите, пожалуйста, в редактор отчета, сохраните его в отдельный файл "Сохранить как" и вышлите на support@tk-chel.ru для Самцова Константина.

ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
SK на форуме   Ответить с цитированием
Старый 17.01.2012, 10:48    | »»» |  #70
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,974
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Александр 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.
SK на форуме   Ответить с цитированием
Сказал «Я - ЗА»:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:18. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot