Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport 4 ,DialogPage, Chart, формулы и др. / 5 сообщений из 5, страница 1 из 1
17.05.2011, 13:50
    #37264634
VitalijX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport 4 ,DialogPage, Chart, формулы и др.
Раньше пользовался QuickReport, вот есть необходимость перейти на FastReport, здесь больше возможностей.
Разработка ведется в Delphi 2010, FastReport 4.10.5
База данных на Interbase 7.5.1, данные строятся по нескольким связанным таблицам Book1,Book2,Book3, (=Book) и еще некоторые данные берутся из Tabl1

Отчет состоит из заголовка (ReportTitle1) в котором добавлены 3 таблицы (составлены из MemoXX.. так как мне было сделать это удобнее)
1 Как сделать так чтобы данные для таблицы вычислены были перед отображением MaserDetail1? Они вычисляются как по формуле (с сумой и возведением в степень и вычислением корня) или значение из базы Tabl1 или Book

Далее идет заголовок данных (Header1) и сами данные MaserDetail1 разбитые на два колонки. Здесь пока все отображается нормально...

После создаю графики (в виде баров) на основе двух параметров: Chart1 (образец-размер1) и Chart2 (образец-размер2).
2 Количество образцов возможно будет очень много исчисляться сотнями, отсюда и вопрос как можно "разрезать" Chart и перенести на следующую страницу. В тестовых данных у меня их пока еще 63 образца и они на альбомном расположении отображаются нормально но потом караул... как можно решить это?

Далее идет таблица данных (MasterDetail2) в которые отображаются только если размер1 или размер2 не соответствуют по вычисленным по формулам параметрам и/или значениям из базы и/или таблицы (таблицы из банда ReportTitle1), второй и третий столбец ('причина' и 'действия') будут редактируемыми с помощью DialogPage1.
3 Как связать DialogPage1 (в нем MemoE1 ) c столбцом в MasterDetail2 чтобы после ввода текста эти данные записывались в базу данных. Очень нужно отобразить в DialogPage1 компонент клавиатуры из Delphi а лучше Frame с клавиатурой. Если это невозможно то попробую вызвать виртуальную клавиатуру Win7.
4 как спрятать/отобразить определенную строку в MasterDetail2 при несоответствии ~10 параметрам одновременно. С примером.
...
Рейтинг: 0 / 0
20.05.2011, 17:55
    #37272060
VitalijX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport 4 ,DialogPage, Chart, формулы и др.
VitalijX,

Ни у кого нет никаких идей? Или надо было перенести в раздел Delphi?

В п.1 может сделать предварительно до выведения отчета все высчитать в средствами Delphi и передать туда как переменные?
Тогда и в п.4 легче будет отображать и делать анализ, только какую функция использовать для этого? IIF ?
...
Рейтинг: 0 / 0
15.06.2011, 13:57
    #37309220
VitalijX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport 4 ,DialogPage, Chart, формулы и др.
Кто подскажет как поступить с пунктом 2. С остальным вопросами разобрался.
Нашел только в Chart1.Pages возможность ограничить по Х количество данных (MaxPointsPerPages) но они не переносятся на следующую страницу.
Все данные находятся в одном наборе данных DataSet, как при этом разделить график по страницам?
...
Рейтинг: 0 / 0
16.06.2011, 14:45
    #37311142
VitalijX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport 4 ,DialogPage, Chart, формулы и др.
Похоже я разговариваю сам с собой! :))

И помощи не дождусь.
Графики необходимо было добавить в середину отчета. Сделал так: начало загрузил из файла, середину создаю програмно (графики в цикле) , окончание загрузил из второго файла.
Но есть некоторые глюки.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
  frxReportM.Clear;
  frxReportM.PrepareReport(True);
  frxReportM.LoadFromFile(DM.ApplPatch+'BookMS01.fr3');

 DM.qibBookV.First;
   while   not  DM.qibBookV.Eof  do 
   begin 
     with  DM.qibBookO  do 
     begin 
      Close;
      SQL.Clear;
      SQL.Add('select * from BookO O');
      SQL.Add('where ');
       {SQL.Add('(IDVYBORKA = NVYBORKA ) ');
      SQL.Add('and ');
      } 
      SQL.Add('(O.IDVYBORKA = '''+DM.qibBookV.FieldByName('NVYBORKA').AsString+''') ');
      SQL.Add('order by O.IDVYBORKA, O.NOBRAZEC');
      Open;
      FetchAll;
     end ;
    
     //далее пропускаю сам код вывода графиков  
     //DataSet:=frxDBDatasetBV; 
      //создаю страницу 
      //график по первому критерию 

      //создаю страницу для следующего графика 
      //график по второму критерию 
     
     DM.qibBookV.Next;
    frxReportM.PrepareReport(False);
  
   end ;

  frxReportM.LoadFromFile(DM.ApplPatch+'BookMS02.fr3');
  frxReportM.PrepareReport(False);

  frxReportM.ShowPreparedReport;


Получается что данные для графика берутся только из последнего запроса
И все пары графиков получаются одинаковыми (по первому и второму параметру) .
И в последнем отчете (таблица) тоже данные из последнего запроса.
Что сделал не так?
...
Рейтинг: 0 / 0
17.06.2011, 10:08
    #37312278
FastReport 4 ,DialogPage, Chart, формулы и др.
VitalijXНи у кого нет никаких идей? Или надо было перенести в раздел Delphi? +1
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport 4 ,DialogPage, Chart, формулы и др. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]