Ответ
 
Опции темы
Старый 16.01.2014, 05:43    | »»» |  #1
scart
Начинающий
 
Аватар для scart
 
Красноярск, Белый медведь 97
Регистрация: 16.01.2014
Сообщений: 5
scart is on a distinguished road
По умолчанию Доработка отчета рейсы

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

[DS_trip.S_REAL_TIME] [DS_CANDistance.TotalDistance]
[DS_trip.E_REAL_TIME]


[DS_CANDistance.TotalDistance] выводит спидометр на начало рейса.
scart вне форума   Ответить с цитированием
Старый 16.01.2014, 06:02    | »»» |  #2
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

scart,

добавляете во вкладку код функцию по получению последнего записи из датасета по КАН-шине

public double GetLastDist()
{
double LastDist = 0;
DataSourceBase ds = Report.GetDataSource("DS_CANDistance");
ds.Init();
// перебираем все записи в источнике
while (ds.HasMoreRows)
{
// получаем значение поля для текущей записи источника
LastDist = ((Double)Report.GetColumnValue("DS_CANDistance.Tot alDistance"));
// переходим на следующую запись
ds.Next();
}
return LastDist;
}

а потом в том месте, где вам нужно вывести пробег на конец рейса делаете вызов этой функции
[GetLastDist()]

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Старый 16.01.2014, 09:18    | »»» |  #3
scart
Начинающий
 
Аватар для scart
 
Красноярск, Белый медведь 97
Регистрация: 16.01.2014
Сообщений: 5
scart is on a distinguished road
По умолчанию

Спасибо большое!

Немного подкорректировал и все пошло.

Код:
    public Int64 GetLastDist()
    {
      Int64 LastDist = 0;
      DataSourceBase ds = Report.GetDataSource("DS_CANDistance");
      ds.Init();
      // перебираем все записи в источнике
      while (ds.HasMoreRows)
      {
        // получаем значение поля для текущей записи источника
        LastDist = ((Int64)Report.GetColumnValue("DS_CANDistance.TotalDistance"));
        // переходим на следующую запись
        ds.Next();
      }
      return LastDist;
    }
Добавлено через 53 минуты
Еще вопрос, когда этот отчет делаю с "разбивкой по рейсам", каждый рейс получается на новой странице, как сделать чтобы рейсы у каждого авто шли друг за другом на одном листе, а лист менялся если не влазит или машина другая началась.
scart вне форума   Ответить с цитированием
Старый 16.01.2014, 09:23    | »»» |  #4
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

Сообщение от scart Посмотреть сообщение
Еще вопрос, когда этот отчет делаю с "разбивкой по рейсам", каждый рейс получается на новой странице, как сделать чтобы рейсы у каждого авто шли друг за другом на одном листе, а лист менялся если не влазит или машина другая началась.
в окне свойств найдите объект Page1, у него есть сво-во PrintOnPreviousPage, установите его в true, тогда пустых мест не будет

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Старый 17.01.2014, 03:48    | »»» |  #5
scart
Начинающий
 
Аватар для scart
 
Красноярск, Белый медведь 97
Регистрация: 16.01.2014
Сообщений: 5
scart is on a distinguished road
По умолчанию

Все равно не понятно почему для каждого рейса строиться таблица с шапкой и дном. Номер рейса всегда 1. Отчет не доделанный?
Я так понимаю должно быть ТС и его рейсы таблице.
scart вне форума   Ответить с цитированием
Старый 17.01.2014, 06:47    | »»» |  #6
storm
Опытный пользователь
 
Аватар для storm
 
Регистрация: 22.12.2010
Сообщений: 2,121
storm is on a distinguished road
Отправить сообщение для storm с помощью Skype™
По умолчанию

Сообщение от scart Посмотреть сообщение
Все равно не понятно почему для каждого рейса строиться таблица с шапкой и дном. Номер рейса всегда 1. Отчет не доделанный?
Я так понимаю должно быть ТС и его рейсы таблице.
при выключенной галочке "Суммарный по всем ТС" каждый рейс каждого ТС запрашивается и выводится отдельно, если ее включить все рейсы по всем ТС будут в одном датасете и чтобы их разделить по ТС нужно использовать бэнды групп
также есть датасет, в котором сразу выгружаются все рейсы по одному ТС за раз, называется DS_trips (в отличии от DS_trip)
но учтите то, что информация по CAN-шине, которую вам надо вывести, будет вытащить уже сложнее

г. Челябинск
Ахмедьянов Алексей Адлерович
storm вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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