А ты попробуй в проекте выстави проперть база данных по умолчанию.
Вот тока оно не показывается в Фасте.
Базу по умолчанию выставлял - не помогает. Всё равно не видит TfrIBXQuery эту базу в дизайнере FR.
Или я что-то не понимаю: если я в отчёте хочу сделать запросик через TfrIBXQuery, но использовать имеющееся соединение с базой, то как быть ?
В TfrxIBXComponents надо выставить DefaultDatabase. После этого все компоненты TfrxIBXTable/Query становятся подключенными к ней (на пустое св-во TfrxIBXTable/Query.Database не обращайте внимания!)
берем пример построения своего мастера.
Чтото у меня не получается скомпилять.
лезут Сплошные Ошибки.
Так же у вас везде описано
Bmp.LoadFromResourceName('frxMyWizard');
Ну не может у меня Дельфа 7 найти такое
а вот если мы сделаем так
Bmp.LoadFromResourceName(0, 'frxMyWizard');
Тогда заработает.
Вопрос Вы пробовали скомпилять то что написано в Документации??
Невнимательно читаешь:
frxWizards.Register(ClassRef: TfrxWizardClass; ButtonBmp: TBitmap; IsToolbarWizard: Boolean = False);
третий параметр как раз указывает, куда поместить мастер. Если на тулбар - тогда включи его в View|Toolbars|Extra tools.
В TfrxIBXComponents надо выставить DefaultDatabase. После этого все компоненты TfrxIBXTable/Query становятся подключенными к ней (на пустое св-во TfrxIBXTable/Query.Database не обращайте внимания!)
В тройке единицы измерения, как и раньше, пиксели. Но теперь они нецелые. Для перевода в сантимеры, дюймы есть константы
fr01cm = 3.77953; // 96 / 25.4
fr1cm = 37.7953;
fr01in = 9.6;
fr1in = 96;
Повторно
Имеем Delphi4, FastReport 3.02, OS Win2k SP4, IE 6 Не сохраняется в DFM значения Child бенда
поэтому инструкция
- File|New application
- бросаем на форму TfrxReport
- в дизайнере добавляем MasterData и Child
- устанавливаем MasterData.Child = Child1
- в проекте пишем обработчик на кнопку - ShowReport
- запускаем - ...
Не работает.
В отличие от Delphi7 где это работает.
P.S. неужели я один на Delphi4
1. Не корректно работает clipboard: два экзешника с запущенными дизайнерами отчетов, в одном на странице с диалогом выделяются все компоненты (компоненты таблиц, Edits & Label's), копируются в буфер. При вставке скопированных элементов теряются их имена, заменяются по умолчанию. Мягко говоря, неудобно.
2. КуНды подевалось свойство TfrxReport.Modified ? Каким образом теперь узнать что отчет корректировался?
Схема:
TfrxReport.DesignReport;
if TfrReport.Designer.Modified then ...
не работает, так после работы дизайнера TfrReport.Designer=nil
3. Завел свой "движок" для работы с компонентами доступа Apollo. Ввел свою функцию
constructor TFunctions.Create;
begin
with fsGlobalUnit do
begin
AddedBy := Self;
with AddClass(TfrxAPLTable, 'TfrxCustomDataset') do
begin
AddMethod('procedure SetOrder(index:integer)', CallMethod);
...
В итоге, когда интерпретатор "добирается до строчки .SetOrder(1) выходит ошибка "Invalid variant type conversion"
Взял и заменил в определении integer на string, изменил соответственно выховы функции
AddMethod('procedure SetOrder(index:string)', CallMethod);
Все сразу заработало!!!
Я конечно могу подправить исходники ядра, но когда каждые пять дней происходят какие то изменения (выходят новые версии), то желание отпадает
Сижу за компом и торчу от интерпретатора. Напоминает картину из сказки "сидит старуха у моря, а рядом разбитое корыто..."
Интерпретатор "мертвый", стал еще хуже чем был !!!
Проблемы с variant-ами. Ну сколько на эти грабли наступали группы разработчиков и RALIB, и DreamScripter и т.д.
Самый обычный код:
var s:string;
begin
s:=taMDoc.FieldByName('DOPCODE').AsString;
s:=Copy(s,1,6); // срабатывает ошибка типичная вариантовская "Invalid variant type conversion"
s:=UpperCase(s);
Это я расписал чтобы нагляднее было.
В итоге я пришел к выводу, что рановато было на этот продукт переходить!!!
Это как про 1С:
- Собираетесь ли вы переходить на "восьмерку"?
- Нет, пускай годика два поотлаживается, на других покрутится... 1С v7.7 вон сколько лет отлаживалась !!!
Интерпретатор работает просто идеально. Ошибка может выскакивать только здесь:
taMDoc.FieldByName('DOPCODE').AsString;
по причине, независящей от него. Есть пример на DBDEMOS, который выдает ошибку с вариантами? Буду рад взглянуть у себя.
Повторно
Имеем Delphi4, FastReport 3.02, OS Win2k SP4, IE 6 Не сохраняется в DFM значения Child бенда
поэтому инструкция
- File|New application
- бросаем на форму TfrxReport
- в дизайнере добавляем MasterData и Child
- устанавливаем MasterData.Child = Child1
- в проекте пишем обработчик на кнопку - ShowReport
- запускаем - ...
Не работает.
В отличие от Delphi7 где это работает.
P.S. неужели я один на Delphi4
Проверял на Delphi5 (это основной инструмент). Работает. Буду рядом с Delphi4 - проверю там.
1. Не корректно работает clipboard: два экзешника с запущенными дизайнерами отчетов, в одном на странице с диалогом выделяются все компоненты (компоненты таблиц, Edits & Label's), копируются в буфер. При вставке скопированных элементов теряются их имена, заменяются по умолчанию. Мягко говоря, неудобно.
2. КуНды подевалось свойство TfrxReport.Modified ? Каким образом теперь узнать что отчет корректировался?
Схема:
TfrxReport.DesignReport;
if TfrReport.Designer.Modified then ...
не работает, так после работы дизайнера TfrReport.Designer=nil
3. Завел свой "движок" для работы с компонентами доступа Apollo. Ввел свою функцию
constructor TFunctions.Create;
begin
with fsGlobalUnit do
begin
AddedBy := Self;
with AddClass(TfrxAPLTable, 'TfrxCustomDataset') do
begin
AddMethod('procedure SetOrder(index:integer)', CallMethod);
...
В итоге, когда интерпретатор "добирается до строчки .SetOrder(1) выходит ошибка "Invalid variant type conversion"
Взял и заменил в определении integer на string, изменил соответственно выховы функции
AddMethod('procedure SetOrder(index:string)', CallMethod);
Все сразу заработало!!!
Я конечно могу подправить исходники ядра, но когда каждые пять дней происходят какие то изменения (выходят новые версии), то желание отпадает
1. При использовании клипбоарда в любом случае меняются имена - так и задумано.
2. Сделаем.
3. Надо смотреть, возможно ошибка в реализации CallMethod.
К предущему 3- пункту.
Долго искал - оказалось 2 pack к 6 делфе д.стоять обязательно. То же касается и ошибок с variant. Если стоит обычная делфа, то даже в демке вылетает ошибка.
Извини Александр за наезд!!!
К предудущему пункту 1.
Нехорошо задумано. По логике - проверить наличие элемента с таким именем, и если есть, то сменить. В противном случае вставить с имеющимся именем.
2ю53 так и работает, если не ошибаюсь.
Редактируемая форма диалога в дизайнере всегда поверх всех окон, даже если находишься в другом приложении, при переключении обратно форма диалога активизируется, но сам Дизайнер где-то за окнами запущенных приложений
Александр!!! Сделай п-ста в Fastreportе при вставке нового Memo чтобы координаты (Top, Left, Width, Height) брались округленные, т.е. например вместо 62,94 ставилось изначально 63. А то получается визуально все элементы стоят вроде бы в один ряд, а по параметрам координат отличаются на сотые доли, и как итог при экспорте в Ёксел образуется куча лишних срочек и столбцов. М.б. лучше этот параметр округления вывести куданибудь в настройку всего Fastreport.
Добавляем обработку. Сохранения в Блоб Файл.
Все работает.
Но я хочу чтобы он стандартно обрабатывал, когда говоришь сохранить как.
если я в обработчике первой строкой проверяю
if SaveAs then exit;
и не выставляю И функция возвращает := False;
почему не идет стандартая процедура сохранить как?
по моему здесь
if frxDesignerComp.FOnSaveReport(Report, SaveAs) then
begin
UpdateRecentFiles(Report.FileName);
UpdateCaption;
Modified := False;
end;
Exit;
Я одно не пойму.
если я переключаюсь на диалог страницу
вызов параметра в запросе.
форма диалога StayOnTop
даже когда переключаешься в другое приложение эта форма так и висит.
в 2 такого не было.
Это вообще не удобно.
Или где то что то нужно выставить??
Александр!!! Сделай п-ста в Fastreportе при вставке нового Memo чтобы координаты (Top, Left, Width, Height) брались округленные, т.е. например вместо 62,94 ставилось изначально 63. А то получается визуально все элементы стоят вроде бы в один ряд, а по параметрам координат отличаются на сотые доли, и как итог при экспорте в Ёксел образуется куча лишних срочек и столбцов. М.б. лучше этот параметр округления вывести куданибудь в настройку всего Fastreport.
Это касается не столько экспорта, как самих отчетов. При несовпадении координат при разном масштабировании общие линии Memo объектов то утолщаются, то выглядят нормально, при печати аналогично. Чтобы этого не происходило приходится "ручками" выставлять координаты одинаковыми (в инспекторе). Например на мастербанд бросаешь "мемо" с обрамлением, а координаты "мемо" смещены на 0,02 (к примеру). Визуально на шаблоне это не ощущается, а при формировании отчета, линии, то тонкие, то толстые (двойные).
Т.е. желательно чтобы при перемещении объекта помимо перемещения на 0,5 (как сейчас уже есть), сделать настроечку округления, чтобы шло округление (у мемо был Top=62,23 + 0.5 ->62,50 - округлили).
Комментарии
Вот тока оно не показывается в Фасте.
в Фибе у меня автоматом ципляет
Или я что-то не понимаю: если я в отчёте хочу сделать запросик через TfrIBXQuery, но использовать имеющееся соединение с базой, то как быть ?
берем пример построения своего мастера.
Чтото у меня не получается скомпилять.
лезут Сплошные Ошибки.
Так же у вас везде описано
Bmp.LoadFromResourceName('frxMyWizard');
Ну не может у меня Дельфа 7 найти такое
а вот если мы сделаем так
Bmp.LoadFromResourceName(0, 'frxMyWizard');
Тогда заработает.
Вопрос Вы пробовали скомпилять то что написано в Документации??
Bmp.LoadFromResourceName(hInstance, 'frxMyWizard');
где еще ошибки?
и там в итемсах выбираем мастер.
Но если Мастер вообще не относится к новому отчету.
Раньше они появлялись в меню мастера.
Это было удобнее.
Сейчас переделываю импорт из Мсворда таблички.
И загрузка части таблицы разве это новый отчет??
frxWizards.Register(ClassRef: TfrxWizardClass; ButtonBmp: TBitmap; IsToolbarWizard: Boolean = False);
третий параметр как раз указывает, куда поместить мастер. Если на тулбар - тогда включи его в View|Toolbars|Extra tools.
function FrUnits(x: Double):Integer;
begin
Result := Round((x / 2.835) / 5 * 18 );
end;
т.е вычисляли х или у с этой фукцией попробовал ее в 3 результат совсем другой.
Есть ли какая готовая функция?? иликакие нибудь магические числа??
fr01cm = 3.77953; // 96 / 25.4
fr1cm = 37.7953;
fr01in = 9.6;
fr1in = 96;
смотрю в директории Zlib одни obj файлы так и должно быть??
Еще не собирал пакеты.
версия проф.
Приходится ручками потом удалять. Не храню я их там.
И пакеты пересобираю.
Имеем Delphi4, FastReport 3.02, OS Win2k SP4, IE 6
Не сохраняется в DFM значения Child бенда
поэтому инструкция
- File|New application
- бросаем на форму TfrxReport
- в дизайнере добавляем MasterData и Child
- устанавливаем MasterData.Child = Child1
- в проекте пишем обработчик на кнопку - ShowReport
- запускаем - ...
Не работает.
В отличие от Delphi7 где это работает.
P.S. неужели я один на Delphi4
2. КуНды подевалось свойство TfrxReport.Modified ? Каким образом теперь узнать что отчет корректировался?
Схема:
TfrxReport.DesignReport;
if TfrReport.Designer.Modified then ...
не работает, так после работы дизайнера TfrReport.Designer=nil
3. Завел свой "движок" для работы с компонентами доступа Apollo. Ввел свою функцию
constructor TFunctions.Create;
begin
with fsGlobalUnit do
begin
AddedBy := Self;
with AddClass(TfrxAPLTable, 'TfrxCustomDataset') do
begin
AddMethod('procedure SetOrder(index:integer)', CallMethod);
...
В итоге, когда интерпретатор "добирается до строчки .SetOrder(1) выходит ошибка "Invalid variant type conversion"
Взял и заменил в определении integer на string, изменил соответственно выховы функции
AddMethod('procedure SetOrder(index:string)', CallMethod);
Все сразу заработало!!!
Я конечно могу подправить исходники ядра, но когда каждые пять дней происходят какие то изменения (выходят новые версии), то желание отпадает
Интерпретатор "мертвый", стал еще хуже чем был !!!
Проблемы с variant-ами. Ну сколько на эти грабли наступали группы разработчиков и RALIB, и DreamScripter и т.д.
Самый обычный код:
var s:string;
begin
s:=taMDoc.FieldByName('DOPCODE').AsString;
s:=Copy(s,1,6); // срабатывает ошибка типичная вариантовская "Invalid variant type conversion"
s:=UpperCase(s);
Это я расписал чтобы нагляднее было.
В итоге я пришел к выводу, что рановато было на этот продукт переходить!!!
Это как про 1С:
- Собираетесь ли вы переходить на "восьмерку"?
- Нет, пускай годика два поотлаживается, на других покрутится... 1С v7.7 вон сколько лет отлаживалась !!!
taMDoc.FieldByName('DOPCODE').AsString;
по причине, независящей от него. Есть пример на DBDEMOS, который выдает ошибку с вариантами? Буду рад взглянуть у себя.
2. Сделаем.
3. Надо смотреть, возможно ошибка в реализации CallMethod.
Долго искал - оказалось 2 pack к 6 делфе д.стоять обязательно. То же касается и ошибок с variant. Если стоит обычная делфа, то даже в демке вылетает ошибка.
Извини Александр за наезд!!!
Нехорошо задумано. По логике - проверить наличие элемента с таким именем, и если есть, то сменить. В противном случае вставить с имеющимся именем.
2ю53 так и работает, если не ошибаюсь.
procedure TfrxDesignerForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
не обнуляется Key, если клавиша обработана
Редактируемая форма диалога в дизайнере всегда поверх всех окон, даже если находишься в другом приложении, при переключении обратно форма диалога активизируется, но сам Дизайнер где-то за окнами запущенных приложений
Добавляем обработку. Сохранения в Блоб Файл.
Все работает.
Но я хочу чтобы он стандартно обрабатывал, когда говоришь сохранить как.
если я в обработчике первой строкой проверяю
if SaveAs then exit;
и не выставляю И функция возвращает := False;
почему не идет стандартая процедура сохранить как?
по моему здесь
if frxDesignerComp.FOnSaveReport(Report, SaveAs) then
begin
UpdateRecentFiles(Report.FileName);
UpdateCaption;
Modified := False;
end;
Exit;
Exit; нужно ставить строкой выше
если я переключаюсь на диалог страницу
вызов параметра в запросе.
форма диалога StayOnTop
даже когда переключаешься в другое приложение эта форма так и висит.
в 2 такого не было.
Это вообще не удобно.
Или где то что то нужно выставить??
Т.е. желательно чтобы при перемещении объекта помимо перемещения на 0,5 (как сейчас уже есть), сделать настроечку округления, чтобы шло округление (у мемо был Top=62,23 + 0.5 ->62,50 - округлили).