Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Лицензия FastReport за багрепорты и багофиксы

Автор: SerVal777
Дата сообщения: 26.10.2005 11:44
Nicka_Grey
Хороший фикс.
Но можно решить это другим способом, более корректным:

Код:
//frxClass.pas
procedure TfrxReportPage.AlignChildren;
var
i: Integer;
c: TfrxComponent;
begin
Width := (FPaperWidth - FLeftMargin - FRightMargin) * fr01cm;
Height := (FPaperHeight - FTopMargin - FBottomMargin) * fr01cm;
inherited;
for i := 0 to Objects.Count - 1 do
begin
c := Objects[i];
if c is TfrxBand then
begin
if TfrxBand(c).Vertical then
c.Height := (FPaperHeight - FTopMargin - FBottomMargin) * fr01cm - c.Top
else
begin //beginfix
c.Width := Width - c.Left;
c.Height := Height - c.Top;
end; //endfix

if c.Width > Width then
c.Width := Width;
// c.Height := Height; //new_fix - можно убрать
c.AlignChildren;
end;
end;
UpdateDimensions;
end;

Автор: Alex_Yagolnik
Дата сообщения: 26.10.2005 17:50
Повторяю письмо на info@fast-report.com от 21.10.2005 т.к. "ни ответа, ни привета"

Цитата:

Здравствуйте.

Обращаюсь к Вам с просьбой. При работе с компонентом TfrxPreview (FR 3.18 trial) я столкнулся с рядом трудностей:

1) нет доступа к событиям TfrxPreview.UpdateZoom, TfrxPreviewWorkspace.MouseDown, TfrxPreviewWorkspace.MouseUp, TfrxPreviewWorkspace.MouseMove. Это затрудняет полноценную реализацию панели ToolBar, аналогичную TfrxPreviewForm.
Например, если мы инструментом Zoom меняем масштаб, то отразить это динамически невозможно, т.к. для TfrxPreviewForm вызов осуществляется из TfrxPreview.UpdateZoom:

if Owner is TfrxPreviewForm then
TfrxPreviewForm(Owner).UpdateZoom;

2) продуманная и оттестированная логика обработчиков событий TfrxPreviewForm недоступна для пользователя, если используется свой Preview.
3) в Demo нет примеров использования TfrxPreview.

Только используя отрывочные сведенья из форумов я смог немного разобраться в системе классов модуля frxPreview.pas

Если бы у меня были исходники только этого модуля, я бы попытался его доработать.
Например:
1) вынес бы панель TfrxPreviewForm.ToolBar в отдельный компонент (как это сделано в TDBNavigator).
2) добавил бы к Standart Actions все важные события, необходимые для работы с TfrxPreview
3) переписал бы ссылки из TfrxPreview и TfrxPreviewWorkspace с TfrxPreviewForm(Owner) на TfrxPreviewToolBar и TfrxPreviewActions
4) добавил бы ряд событий для TfrxPreview: OnAfterZoom, OnMouse..., OnMouseWeel...

Автор: DroN_S
Дата сообщения: 26.10.2005 18:01
Alex_Yagolnik

Цитата:
Если бы у меня были исходники только этого модуля, я бы попытался его доработать.

У тебя фаст есть?
Значит есть и исходники!!!!
папка source, в ней ищи модуль frxPreview.pas и работай...
Автор: Alex_Yagolnik
Дата сообщения: 26.10.2005 18:21

Цитата:
(FR 3.18 trial)


TRIAL!!!
Есть способы конвертации DCU в PAS Но в итоге приходится иметь дело с Ассемблером.

Был бы исходник, разве я бы его просил?
Автор: Garrett
Дата сообщения: 26.10.2005 18:55
Alex_Yagolnik
Пиши на support@fast-report.com или на их форуме. Разработчики всегда отвечают.

Добавлено:
DroN_S
Исходники появляются в фасте с про-версии.
Автор: aralekin
Дата сообщения: 31.10.2005 11:11
Прочитал всю версию для печати. Вроде про этот баг (или недочет) ничего не сказано, хотя поймал его в первый же день работы с фастом.

Создаем новый проект.
Кидаем на форму frxReport1
Открывам двойным кликом дизайнер.
При открытом дизайнере переключаемся на обратно на форму.
Удаляем компонент frxReport1.
Окно дизайнера не исчезает.
Подводим мышь к открытому окну на заднем плане дизайнера.
Вуаля - Access violation (bla-bla-bla) in module rtl70.bpl. (bla-bla-bla)

Фаст версии 3.18
Автор: Kotopes
Дата сообщения: 31.10.2005 12:31
интересно, это баг или фича. при печати на принтер HP LaserJet 4v по-умолчанию, русский шрифт не подгружается, в результате чего принтер печатает набор кракозябр...
на других принтерах серии LaserJet данного прикола, вроде, не замечено...
Автор: aralekin
Дата сообщения: 31.10.2005 12:40

Цитата:
Цитата:
можно ли считать багом явную недоработку     
можно, считаем +1

Тогда вот еще одна очень большая и явная недоработка:
====
Кеширование на диск при установленном UseFileCash = True работает только при добавлении страниц.
При модификации PreviewPages.ModifyPage, сброса на диск не происходит.
Как следствие, потребление памяти растет в бешенных количествах.
====
Отсюда получается, что элементарная сортировка сдыхает напрочь.
Автор: GloThin
Дата сообщения: 31.10.2005 12:55
Kotopes

Цитата:
при печати на принтер HP LaserJet 4v по-умолчанию, русский шрифт не подгружается, в результате чего принтер печатает набор кракозябр...

Это происходит, если для объеуктов отчета для шрифта выбран Charset - Default, а надо Russian Charset.

Цитата:
на других принтерах серии LaserJet данного прикола, вроде, не замечено...

Тоже самое наблюдалось на LaserJet 1200 и 1220(и соответственно 1300).
Автор: Kotopes
Дата сообщения: 31.10.2005 13:16
GloThin

Цитата:
Тоже самое наблюдалось на LaserJet 1200 и 1220(и соответственно 1300).

странно, у меня на этих моделях всё - ок...
Автор: DroN_S
Дата сообщения: 31.10.2005 13:53
Kotopes
Могу сказать точно, такое явление было замечано на LaserJet 1300, на LaserJet 1000 всё было нормально. Но это не из-за фаста, т.к. на другой машине с моделью принтера LaserJet 1300 всё было нормально.. Возможно это система мозга пудрит...
Автор: GloThin
Дата сообщения: 31.10.2005 15:28

Цитата:
Возможно это система мозга пудрит...

Такие случаи обычно происходят из-за использования загружаемых шрифтов в принтере.
Обычно со встроенными все нормально. Была пару раз ситуация: из Worda распечатывали текст, на принтере вылазили крякозябры. Пока в настройках принтера не убрали , использовать загружаемые шрифты.
Автор: My_Way
Дата сообщения: 31.10.2005 21:00
Nicka_Grey финиширует

появляется aralekin, получает 2 очка

Пишите в ПМ кто не получил еще заработанное

Остальным участникам, кторые не покидают нас не смотря ни на все заработанное, спасибо
Автор: aralekin
Дата сообщения: 01.11.2005 08:07
исчо один мелочный баг...
====
Создаем новый проект.
Кидаем на форму frxReport1
Открывам двойным кликом дизайнер
Кидаем компонент Subreport1
Двойным кликом октрываем Subreport1
попадаем на Page2
Видим в меню подсвеченую кнопку Page settings и по правому клику в попапе подсвеченный пункт Edit...
Пробуем нажать на эту кнопку - результат нулевой. Пробуем тоже самое из попапа - тот же эффект.
====
Не лучше ли убрать из доступных свойств этот пункт? или наоборот повесить обработчик?
Автор: QuickeneR
Дата сообщения: 01.11.2005 09:35
Баг (3.18)
Начиная с какого-то обновления в фасте перестали обрабатываться кодировки. Т.е. например делаешь отчет из досовской базы напрямую через TTable и TFrxDbDataset, ставишь по привычке у нужных Memo Font.Charset=OEM_CHARSET, а рисуются кракозяблы. Установка других кодировок, хоть ANSI, хоть китайских, на результат не влияет.

Прослеженная причина - юникод. В нем разные символы имеют разные же коды, и нет ситуации, когда один и тот же символ может представляться разными кодами. Иначе говоря, юникод и кодировки - вещи несовместимые.

Решение (хак)
frxGraphicUtils.pas

Код:
procedure TfrxDrawText.DrawTextLine
...
было
ExtTextOutW(C.Handle, X + Round(add1 * SinA), Y + Round(add1 * CosA),
FOptions, @FScaledRect, PWideChar(s) + j, i - j, @FTempArray[j + 1]);
стало
if C.Font.Charset=DEFAULT_CHARSET then
ExtTextOutW(C.Handle, X + Round(add1 * SinA), Y + Round(add1 * CosA),
FOptions, @FScaledRect, PWideChar(s) + j, i - j, @FTempArray[j + 1])
else
ExtTextOut(C.Handle, X + Round(add1 * SinA), Y + Round(add1 * CosA),
FOptions, @FScaledRect, PChar(String(s)) + j, i - j, nil);



function TfrxHTMLTagsList.FillCharSpacingArray
...
было (встречается два раза)
if Win32Platform <> VER_PLATFORM_WIN32_NT then
стало
if (Win32Platform <> VER_PLATFORM_WIN32_NT) or (Canvas.Font.Charset<>DEFAULT_CHARSET) then
Автор: DroN_S
Дата сообщения: 01.11.2005 10:43
QuickeneR

Цитата:
Баг (3.19.2)
Попорчена работа с базовыми типами в фастскрипте. Объявляем функцию

Код:Report.AddFunction('function MyFunc(key:string):boolean');


и пытаемся ее использовать

Код:procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
MasterData1.Visible:=MyFunc(<Dataset1."FIELD1">);
end;


Получаем ошибку: Несовместимые типы Boolean и class boolean

это не баг, это связано с тем что в 3.19.2 включён FastScript 1.9, у изменилась архтектура, из за этого некоторые пользовательские функции теперь не работают. Как использовать пользовательские функции в новом фасте, описаго в документации идущей в пакете с FastScript 1.9 или посмотри вот здесь
Автор: QuickeneR
Дата сообщения: 01.11.2005 10:50
DroN_S
Там что-то уж больно мудреное написано - там посмотри, тут измени. Предпочитаю рассматривать это как баг в фастрепорте, который не исправили в соответствии с изменениями в фастскрипте. После добавления одной указанной строчки пока все вроде работает.

Добавлено:
В ветке на оффоруме речь идет о 3.19.3 - возможно, там еще чего-нибудь изменили по сравнению с 3.19.2.
Автор: DroN_S
Дата сообщения: 01.11.2005 11:12
QuickeneR

Цитата:
В ветке на оффоруме речь идет о 3.19.3 - возможно, там еще чего-нибудь изменили по сравнению с 3.19.2.

Изменения можешь посмотреть в Changes на офсайте

Цитата:
Предпочитаю рассматривать это как баг в фастрепорте, который не исправили в соответствии с изменениями в фастскрипте

ещё раз повторюсь, ЭТО НЕ БАГ, просто теперь функции подключаются по другому и всё...
Автор: GloThin
Дата сообщения: 01.11.2005 11:18

Цитата:
это не баг, это связано с тем что в 3.19.2 включён FastScript 1.9

В 3.19.2 нет никакого Fascript 1.9, а указанная версия FastScripta вошла в билд 3.19.3 и соответственно более поздние.

Добавлено:

Цитата:
Изменения можешь посмотреть в Changes на офсайте

Там изменения касаемые FastScripta никак не отражены...
Автор: DroN_S
Дата сообщения: 01.11.2005 12:13
GloThin

Цитата:
В 3.19.2 нет никакого Fascript 1.9, а указанная версия FastScripta вошла в билд 3.19.3

в 3.19.3 появилась официальная версия скрипта, а в 3.19.2 была версия с кучей патчей и втом числе с изменённой архитектурой...
Автор: aralekin
Дата сообщения: 01.11.2005 13:56
О над ж... 2 очка есть.... но мне не столько лицензия нужна, а решение проблемы (даж багфиксом трудно назвать) описанной тут. Нехватка времени и загруженность мешает попробовать самому додуматься до нужного результата =/ . Кста, есть возможность заработать 3 очка дополнительных =) Посмотрите пожалуйста, уважаемые гуру, как же можно заставить кешировать на диск странички при изменении готового отчета.
Автор: QuickeneR
Дата сообщения: 01.11.2005 15:40
DroN_S

Цитата:
ещё раз повторюсь, ЭТО НЕ БАГ, просто теперь функции подключаются по другому и всё...

Причем тут функции? С ними проблем нет, проблема была в том, что не создавались встроенные типы.
Автор: DroN_S
Дата сообщения: 01.11.2005 17:11
QuickeneR

Цитата:
Причем тут функции? С ними проблем нет, проблема была в том, что не создавались встроенные типы.

типы ругаются на то что функция поключена не правильно
Автор: aralekin
Дата сообщения: 01.11.2005 17:39
Багфикс к багрепорту найденному и отписанному в этом посте
Отдельное и большое спасибо за помощь DroN_S`у
Чтобы не возникало подобной ошибки нужно добавить в обработчик OnCreate формы TfrxDesignerForm код:

Код:
frxDesignerForm.BorderIcons := frxDesignerForm.BorderIcons - [biMaximize];
Автор: DroN_S
Дата сообщения: 02.11.2005 10:52
QuickeneR

Цитата:
Причем тут функции? С ними проблем нет, проблема была в том, что не создавались встроенные типы.

на счёт типов, посмотри вот здесь
Автор: Alex_Yagolnik
Дата сообщения: 02.11.2005 15:00
Не знаю, это баг или моё неумение.
Версия 3.18 от 13.10.05
Есть задача: на нескольких страницах печатать в качестве заголовка поля из одной записи MasterDataSet. Т.е. две страницы с полями record1, затем record2 и так далее.
По совету опытных товарищей сделал так:

Цитата:

1. свойству страницы Page1.Dataset сопоставить основной датасет (MasterDataSet). После этого каждая запись из данного датасета будет выводиться на отдельной странице.
2 добавить PageHeader и расположить на нём Мемо с данными из MasterDataSet
3 добавить MasterData1 и привязать к нему DetailDataset1
4 добавить MasterData1Footer (Footer1), на него положить SubReport1
5 для Footer1 написать код

CODE
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
begin
Engine.NewPage;
end;

6 для SubReport1 повторить п. 1-2
7 добавить на SubReport1 MasterData2 и привязать к нему DetailDataset2


Всё замечательно. Но при переходе к MasterDataSet.record2 печатается "пустая страница" с одним только заголовком ( с полями из record2). Далее - всё нормально.

Пробовал без SubReport, заменяя его на DeatilData. Тоже печатает так, как надо, но с пустой страницей. Установил везде у бэндов StartNewPage=Off! Тот же результат

Кстати, не думаю, что это нетипичная задача, когда данные MasterDataSet нужны в заголовке. Хотелось бы, чтобы существовало простое типовое решение. Например бэнд HeaderData. С соответствующей логикой работы.



Автор: QuickeneR
Дата сообщения: 02.11.2005 17:06
DroN_S

Цитата:
на счёт типов, посмотри вот здесь

Спасибо, но
1) эту ссылку ты уже приводил
2) возможности скачать 3.19.5 у меня нет
3) проблему я решил вчера, о чем и сообщил
4) надеюсь, на этом дискуссию в стиле "это не баг, и проявляется он не так" будем считать закрытой
Автор: gpi
Дата сообщения: 02.11.2005 21:56
Вот в английской конфе вычитал баг-репорт

Цитата:
Font Color tool button Bug!
I'm testing Fast Report 3.18 Pro now. The bug that I've found is that if
the report control objects e.g. frxMemo, have the font color (Green) other
than Black. when click the font color tool button, which shows up a color
palette dropdown, and you immediatelly select the "X" close icon without
selecting any color, then the frxMemo's font color changes to Black. It
should keep its original color, which should be Green.


Добавлено:
Еще в английской конфе проскочило сообщение, что если у GroupHeader.Visible=False, то GroupFooter не печатается, даже если GroupFooter.Visible=True. В FR 3.15 всё работало, а вот в 3.18 и 3.19 уже нет. Это баг, или новое поведение GroupHeader?
Автор: GloThin
Дата сообщения: 09.11.2005 23:03

Цитата:
Вот в английской конфе вычитал баг-репорт

А что у самого иссякли пороховницы...
Осталось тока у буржуев баги искать?
Автор: My_Way
Дата сообщения: 10.11.2005 13:01
aralekin
добавим один багрепорт и один багофикс


QuickeneR
засчитаем два багофикса

Цитата:
возможности скачать 3.19.5 у меня нет

что бы была возможность скачать

Alex_Yagolnik
+1 багрепорт


Спец. предложение, кто для FastReport Studio переведет примеры с си и сишарпа на VB 6, тот получит сразу комплект FR Ent+FR Studio.

кто еще не получил заработанное, кидайте в ПМ емаил.

Страницы: 12345678910111213141516

Предыдущая тема: Числовой формат даты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.