ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ»

ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ» (http://forum.tk-chel.ru/index.php)
-   Система «АвтоГРАФ»: Программное обеспечение (http://forum.tk-chel.ru/forumdisplay.php?f=4)
-   -   Создание отчета с уровнем топлива интервалом в 5 минут (http://forum.tk-chel.ru/showthread.php?t=1491)

latypovar 01.02.2012 19:07

Напишите,что получилось, а что нет, я тоже спрошу своих программеров1с, наверняка они помогут..

anriradex 02.02.2012 08:48

Таймаут на 10 дней он чухнул в отпуск (сначала нечего не делал а потом внезапно в отпуск)

SK 02.02.2012 09:05

Цитата:

Сообщение от anriradex (Сообщение 23790)
Таймаут на 10 дней он чухнул в отпуск (сначала нечего не делал а потом внезапно в отпуск)

Потому и не делал, что лень перед самым отпуском - т.к. один черт до отпуска не доделать... знакомая картина...

anriradex 16.02.2012 09:01

Цитата:

Сообщение от SK (Сообщение 23503)
Такая штука делается за 180 секунд из отчета "График уровня топлива".

Редактор:
Нажмите для просмотра содержимого...


Результат:
Нажмите для просмотра содержимого...

Как сделать тоже самое только с интервалом в 5 минут (а то оно делает с интервалом 1 мин. а по некоторых ТС вообще по 5 сек.) Ето подходит просто файл с даными имеет очень много строк ето мне не подходит

storm 16.02.2012 09:20

http://forum.tk-chel.ru/showthread.php?t=558

anriradex 16.02.2012 13:51

Цитата:

Сообщение от storm (Сообщение 24663)

НЕ могу зайти

SK 16.02.2012 14:14

Цитирую:
Цитата:

Сообщение от AutoKirov (Сообщение 7161)
Привет всем!
Клиент попросил состряпать ему отчёт по температуре, но не график, а табличкою, мол, три колонки, датавремя, датчик1, датчик2 (датчики не ванвайр, а те, которые в периодическом счётчике). С шаблоном проблем не было, но вот, возник вполне логичный вопрос: А нельзя ли оставить только каждую, к примеру, двадцатую запись, а остальные выкинуть безвозвратно, а то за месяц если печатать, то несколько сильно много бумаги уходит и нести этот отчёт потом тяжело :)

Так вот, я не могу придумать, как ненужные записи выкинуть. Есть идея отсортировать, чтоб ненужные в конце были, а потом откусить... Отсортировать - отсортирую, а как откусить????

Ну, или ещё какие-то идеи?

Спасибо.

Цитата:

Сообщение от storm (Сообщение 7169)
нужно во вкладку код вставить функцию

Код:

procedure SetVisible(LineNum: integer);
var
  height : double;                           
begin
  if (LineNum % 20 = 1) then
  begin
      height := 20;                   
  end
  else
  begin
      height := 0; 
  end; 
  MasterData1.height :=height;     
  Memo1.height :=height;   
  Memo2.height :=height;   
end;

вместо
MasterData1.height :=height;
вам нужно подставить имя вашей мастердаты
вместо
Memo1.height :=height;
Memo2.height :=height;
перечислить все названия ячеек, которые находятся в мастердате(абсолютно все, даже невидимые, если есть)

а потом вызвать из любой ячейки мастердаты эту функцию
[SetVisible(<Line>)]

вроде все правильно накидал, проверяйте, теперь должна выводиться каждая 20 запись, остальные прячутся

Цитата:

Сообщение от AutoKirov (Сообщение 7187)
Ну, вроде всё правильно, спасибо:
procedure SetVisible(LineNum: integer);
var height: double;
begin
height:= 0;
if LineNum mod 20 = 0 then
height:= 20;
MasterData1.height:= height;
Memo1.height :=height;
Memo2.height :=height;
Memo3.height :=height;
end;

Цитата:

Сообщение от storm (Сообщение 7228)
Цитата:

Сообщение от AutoKirov (Сообщение 7187)
if LineNum mod 20 = 0 then

тут бы я все таки оставил сравнение с единичкой, так как нумерация строк начинается с 1, у вас вывод начнется только с 20 строки, то есть первые 19 полностью обрежутся, но в принципе, наверное, не критично


anriradex 16.02.2012 14:49

Так не подходит. Тут получается что когда есть уровень каждые 5 сек. а есть каждые 5 мин если отфильтровать каждый 20-ая запись в первом случае останется каждую минуту в другом каждый час.

SK 16.02.2012 14:55

Цитата:

Сообщение от anriradex (Сообщение 24682)
Так не подходит. Тут получается что когда есть уровень каждые 5 сек. а есть каждые 5 мин если отфильтровать каждый 20-ая запись в первом случае останется каждую минуту в другом каждый час.

А если будет каждые 12 минут ???
Тогда пишите скрипт, который будет хранить предыдущее выведенное время в переменной и при переборе пропускать записи, отстоящие от него на "интервал нечувствительности". Далее выводится первая запись за пределами интервала нечувствительности (5 минут в Вашем случае). Потом время из выведенной записи записывается в переменную и так далее...
Работать будет медленнее, естественно, т.к. будут множественные операции сравнения времени в записях. Но ничего особо сложного.

Либо писать свой запрос к файлу с данными об уровне топлива.

storm 17.02.2012 05:01

Цитата:

Сообщение от anriradex (Сообщение 24682)
Так не подходит. Тут получается что когда есть уровень каждые 5 сек. а есть каждые 5 мин если отфильтровать каждый 20-ая запись в первом случае останется каждую минуту в другом каждый час.

это пример, как выводить только нужные записи, в вашем случае нужно просто поменять передаваемую переменную на дату-время, сохранять значение в какую-то переменную и в условии вывода поменять проверку на результат разницы сохраненного значения и передаваемого


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

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