Вопрос по ActiveReports

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Вопрос по ActiveReports

Сообщение alibek » 15.07.2007 (Вс) 11:30

Столкнулся с какой-то непонятной проблемой.

Есть у меня репорт, который наряду с данными рисует еще и формулу (самодельной процедурой). Схема отчета в общих чертах такая:
Код: Выделить всё
...
Private Sub ActiveReport_FetchData(EOF As Boolean)
  ...
  Me.Fields("Formula").Value = GetFormula(...)
End Sub

Private Sub Detail_Format()
  ...
  F = Me.Fields("Formula").Value
  With Me.Canvas
    .PenWidth = 2
    ...
    .DrawText ...
    ...
  End With
End Sub
...

Каждая запись начинается с нового листа (свойство Detail.NewPage=ddNPBefore).
Когда печатается несколько листов, наблюдается такая картина.
Поля (Field) печатаются правильно, на каждой странице свои значения (правильные). А вот формула выводится странно -- на первом листе выводится формула для первой и второй записи (накладываясь друг на друга), на втором листе выводится формула третьей записи, на третьем листе формула четвертой записи и т.п., на последнем листе формула не выводится.
Видимо неправильно я формулу рисую. А как надо?
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.07.2007 (Вс) 12:36

Экперименты показали, что если задать NewPage=ddNPAfter, то формула печатается правильно.
Видимо сначала выполняется Format, а только после этого добавляется новый лист и канва.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.07.2007 (Вс) 17:53

Все-таки вопрос остался.
Как пересчитать относительные координаты в абсолютные?
Есть отчет, в нем одна групповая секция, далее детальная секция, в которой есть вложенный отчет. У вложенного отчета тоже есть групповая секция, в которой имеется объект.
Нужно нарисовать на канве так, чтобы рисунок был точно под этим объектом. То есть нужно определить абсолютные координаты объекта на листе.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.07.2007 (Пн) 12:02

Еще один вопрос. Что-то никак не соображу, как использовать составные отчеты.
Нужно вывести несколько листов и в конце распечатать опись. Через вложенные отчеты не хотелось бы, разметка страницы в описи отличаются (хотя ориентация листа одинакова).
Можно ли к текущему отчету "добавить" еще один? Пробовал добавить (кодом) новый лист и в его канву вывести другой отчет, но что-то не получилось.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 16.07.2007 (Пн) 13:27

alibek писал(а):Еще один вопрос. Что-то никак не соображу, как использовать составные отчеты.


Это самое простое. Примерно как в приложенном примере...

По остальным вопросам не скажу - там пробовать надо...
Вложения
Combine.rar
(11.27 Кб) Скачиваний: 48
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.07.2007 (Пн) 13:35

А... Да, так не сообразил, хотя Run нашел.
Я пытался без промежуточных действий, канву одного отчета вывести в канву другого, не получалось.
Чтобы внедрять PDF - не догадался :)
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 16.07.2007 (Пн) 14:22

alibek писал(а):А... Да, так не сообразил, хотя Run нашел.
Я пытался без промежуточных действий, канву одного отчета вывести в канву другого, не получалось.
Чтобы внедрять PDF - не догадался :)


Э!!! В примере смысл - вставка листов различных отчетов в один - ты ведь об этом спрашивал, как лист добавить... А PDF - просто побочный продукт примера.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.07.2007 (Пн) 14:29

А, дошло :)
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 16.07.2007 (Пн) 14:34

Кстати, в AR есть еще такое понятие как содержание - показывается слева в виде дерева и позволяет быстренько перейти на нужную страницу в режиме просмотра. Делается легко и на больших отчетах довольно приятная вещь...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.07.2007 (Ср) 8:37

DD на днях разродился свеженьким апдейтом AR2...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 52

    TopList