Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Открыть новую тему     Написать ответ в эту тему

gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
romano501
Приложите рабочий и нерабочий шаблоны

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 23:22 25-07-2017
dzh2000



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Создал новый отчет с объектом RichText, растянутым по высоте страницы.
Зашел в редактор RichText и пронумеровал строки. Сохранил отчет.
 
Набросал простую программу, открывающую окно предварительного просмотра отчета.
Затем запустил программу на компьютерах с Windows 7 и 10.
 
И обнаружил, что на страницу поместилось разное число строк (номеров), во втором случае на 5 (!) меньше.
И это несмотря на один и тот же отчет и WYSIWYG. В разных ОС по разному! Как такое может быть???
 
Пробовал копировать в папку с программой библиотеки msftedit.dll, riched20.dll, riched32.dll, без толку.
 
В сети не нашел ответ на свой вопрос. Что делать?

Всего записей: 1576 | Зарегистр. 18-01-2002 | Отправлено: 06:03 20-09-2017 | Исправлено: dzh2000, 06:16 20-09-2017
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имхо, т.к. драйвер рисует отчёт для конкретного принтера или экрана, то различия могут быть из-за:
- разных драйверов принтеров и настроек принтера, например: dpi, размера страницы и полей
- разных драйверов экрана и параметров настроек,  например, dpi. Помню, в старые времена, при предварительном просмотре показывалось одно, а на принтер выходило несколько другое из- за различных dpi монитора и принтера.
- на разных компьютерах шрифт, заданный в отчёте заменяется разными шрифтами, даже если названия этих шрифтов совпадают.

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 10:32 20-09-2017
SnowSonic



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Что ещё интересно, на одной и той же машине (Windows Server 2003) под разными учетками (в терминальном режиме) шрифты подставляются разные. Даже я и человек заходим (удаленным терминалом) одной и той же учеткой на один и тот же сервер и шрифты подставляются разные.
Магия.

Всего записей: 127 | Зарегистр. 17-06-2001 | Отправлено: 10:39 20-09-2017
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может быть, терминальный сервер берёт шрифты с вашего локального компьютера? В таком случае, я о нём был лучшего мнения.

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 10:58 20-09-2017
SnowSonic



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
У обоих Windows 8, а шрифт Tahoma отображается по разному. Может быть от принтера по умолчанию зависит. Хотя менял по всякому и не помогает.

Всего записей: 127 | Зарегистр. 17-06-2001 | Отправлено: 11:46 20-09-2017
dzh2000



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dronton2

Цитата:
Имхо, т.к. драйвер рисует отчёт для конкретного принтера или экрана, то различия могут быть из-за:
- разных драйверов принтеров и настроек принтера, например: dpi, размера страницы и полей
- разных драйверов экрана и параметров настроек,  например, dpi. Помню, в старые времена, при предварительном просмотре показывалось одно, а на принтер выходило несколько другое из- за различных dpi монитора и принтера.
- на разных компьютерах шрифт, заданный в отчёте заменяется разными шрифтами, даже если названия этих шрифтов совпадают.

Какая разница, какой установлен принтер? Я делаю предварительный просмотр.
Документ один и тот же (то есть размеры листа и поля), версия RichEdit тоже одна и та же, даже шрифты одни и те же (я переносил вручную ttf-файлы), но FastReport в Windows 10 растягивает бланк по вертикали (меняет межстрочный интервал). На 29.7 см это составляет 1.5 см. В результате, основной текст, который я вывожу поверх бланка, накладывается на текст бланка.

Всего записей: 1576 | Зарегистр. 18-01-2002 | Отправлено: 13:18 20-09-2017 | Исправлено: dzh2000, 13:20 20-09-2017
SnowSonic



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Если FR использует встроенные в систему RichEdit для отрисовки, то думаю что может и отличаться от системы к системе.

Всего записей: 127 | Зарегистр. 17-06-2001 | Отправлено: 13:24 20-09-2017
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dzh2000
Присылайте шаблон отчёта (fr3) и сформированные на разных системах отчёты (fp3) на support@fast-report.com

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 13:53 20-09-2017
dzh2000



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SnowSonic

Цитата:
Если FR использует встроенные в систему RichEdit для отрисовки, то думаю что может и отличаться от системы к системе.

В frxRichEdit.pas загружается библиотека в зависимости от ОС

Код:
const
  RichEdit10ModuleName = 'RICHED32.DLL';
  RichEdit20ModuleName = 'RICHED20.DLL';
  RichEdit41ModuleName = 'Msftedit.DLL';

Можно свои библиотеки разместить в папке с исполняемым файлом.
gpi

Цитата:
сформированные на разных системах отчёты (fp3)

Они идентичны. Сейчас проверил.

Всего записей: 1576 | Зарегистр. 18-01-2002 | Отправлено: 14:43 20-09-2017
The_Immortal



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, пытаюсь запихнуть в отчет картинку из TImage. В инете нашел везде пестрящий пример:
Цитата:
Q:2.34. Как распечатать картинку, находящуюся в файле?
A: а) используйте обработчик события TfrReport.OnBeforePrint:
Код:
if View.Name = 'Picture1' then
TfrPictureView(View).Picture.LoadFromFile(...) or
.Assign or
.everything_what_you_want
 
Подскажите, пожалуйста, что тут такое View? Догадайся сам? Ну я вроде догадался - TfrxPictureView. Если это так, то для чего делать вот это преобразование: TfrPictureView(View).Picture ?
 
Короче я попробовал вот так:
Код:
procedure TForm7.frxReport1BeforePrint(Sender: TfrxReportComponent);
var
View: TfrxPictureView;
begin
  if View.Name = 'Picture1' then
    View.Picture.Assign(Form1.Img.Picture);
end;
Не робит... В чем может быть проблема?
 
И второй вопрос. Что надо сделать, чтобы после импорта в docx объект frxRichView не вставлялся как обычная картинка? FR 5.4.6.
Можно, конечно, frxMemoView попробовать, но я не врублюсь как там HTML-теги подставлять...
 
Спасибо!

Всего записей: 1542 | Зарегистр. 10-01-2009 | Отправлено: 09:28 26-10-2017 | Исправлено: The_Immortal, 10:07 26-10-2017
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
The_Immortal

Цитата:
TfrReport.OnBeforePrint
Этот обработчик вызывается перед печатью на принтере.
Для предварительного просмотра нужно использовать OnPreview или что-то подобное. Или обработчики внутри отчёта (на бэнды, объекты и т.п.)
 

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 11:45 26-10-2017
The_Immortal



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dronton2,
Цитата:
Этот обработчик вызывается перед печатью на принтере.
Для предварительного просмотра нужно использовать OnPreview
Не вижу азницы. OnBeforePrint также выводит все данные.
А если по теме?

Всего записей: 1542 | Зарегистр. 10-01-2009 | Отправлено: 12:05 26-10-2017 | Исправлено: The_Immortal, 12:25 26-10-2017
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
The_Immortal
 

Код:
procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
  if Sender.Name = 'Picture1' then
    TfrxPictureView(Sender).Picture.LoadFromFile(...)
end;


Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 17:33 26-10-2017
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет уважаемые. Есть такая идея редактирования изнутри дизайнера структуру отчёта который сохраняется в виде XML файла. Подскажите, как можно вывести содержимое дизайнера, а потом опять впихнуть это в дизайнер? Спасибо.

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 01:36 24-12-2017
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Есть такая идея редактирования изнутри дизайнера структуру отчёта который сохраняется в виде XML файла. Подскажите, как можно вывести содержимое дизайнера, а потом опять впихнуть это в дизайнер?

Ничего не понял. Объясните подробнее

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 12:50 24-12-2017
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Загружен сам дизайнер, в котором виден белый лист с какими-то элементами. При сохранении всё это вводится в файл в виде XML. Нужно ввести на экран этот XML код. Отредактировать его, а потом загрузить опять в дизайнер. Допустим убрать строку:
Было:

Код:
<?xml version="1.0" encoding="utf-8"?>
<TfrxReport Version="5.6.8" ...>
  <Datasets>
    <item DataSetName="77.tmd"/>
  </Datasets>
  <TfrxDataPage Name="Data" Height="1000" Left="0" Top="0" Width="1000"/>
 

Стало:

Код:
<?xml version="1.0" encoding="utf-8"?>
<TfrxReport Version="5.6.8" ...>
  <TfrxDataPage Name="Data" Height="1000" Left="0" Top="0" Width="1000"/>
 

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 20:22 24-12-2017
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Aleksandr N
В чем смысл сей операции?

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 08:32 25-12-2017
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksandr N
В TfrxDesigner.OnSaveReport сохраняйте шаблон, создавайте форму с TMemo, загружайте шаблон в TMemo и редактируйте.
Датасеты можно удалить, если вызвать окно Report->Data, убрать все галочки и нажать OK

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 10:07 25-12-2017
Aleksandr N

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exteris
Смысл какраз в том чтобы убрать у любого элемента DataSetName. Всё дело в том что к одному отчёту могут подключаться разные базы данных. И вот нигде в свойствах элементов не увидел какая по имени база данных подключена.
gpi
И методом Report->Data убрать тоже не получится если эта база данных не подключена. Вот и получается что нужно именно вот таким извращённым методом делать.
Получается чтобы добраться до TfrxDesigner.OnSaveReport нужно сначала сохранить файл и тогда можно вытащить текст XML файла. А если без сохранения никак не получится больше?
Допустим так получится вытащить содержимое. А как-же отредактированный текст загрузить обратно?

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 11:31 25-12-2017
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru