On-line: Andrey, PSP, гостей 2. Всего: 4 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 5008
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.07.16 15:24. Заголовок: MiniGui and FastReport ?


Всем привет !
Столкнулся с баальшоой непоняткой в связке МиниГуи и Фастрепор.
Некоторые формы вообще НЕЛЬЗЯ отредактировать, дизайнер вешает программу.
Хотя при выводе в предпросмотр эта форма выводиться.
Вот такие сообщения:


Далее куча окон:


Потом дизайнер:


И всё - вешалка, нужно снимать прогу через Диспетчер задач.

Хотя эта же форма нормально редактируется в терминалке Харбора (т.е. в старой задаче)...

Форумы читал, таких ошибок полно, но решения не нашёл..
Таймер в МиниГуи как то влияет на Фастрепорт или нет ?
Куда копать, что сделать ?


P.S. После открытия других форм в дизайнере (несколько раз), эта форма (которая не открывалась) открывается в Дизайнере, но отредактировать любую графу нельзя !
Выдаёт такую ошибку:
System Error. Code: 87.
Параметр задан неверно.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 16 [только новые]


постоянный участник




Пост N: 5015
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.07.16 14:52. Заголовок: По переписывался по ..


По переписывался по поводу этой ошибки со службой техподдержки FastReport.
Помогли.

Как расшифровать ошибку библиотеки на дельфи - FrSystH.dll ?
Access violation at adress 100977B7 in module
'FastReport4xHrb.dll' Read of adress 00000180.
http://citforum.ru/programming/delphi/delphi_bugs.shtml

Эта форма у меня использует многомерный массив [12,9]
Вывод этого массива, у меня на форме - [CallHbFunc('A20TextDim',[2,<DOLG_ABON."KTARIF">])]
Что то Дизайнеру не нравиться этот массив.

Причём заполнение этого массива осуществляю на МиниГуи - объекты GETBOX 12 штук и TAB 9-вкладок.
Если эту форму заполнения массива не показывать на экране, то Дизайнер открывается нормально.
// считать/записать переменные из формы для FastReport'a
/* aPrnDim := PrnDim_A20(cFileCfg)
IF LEN(aPrnDim) > 0
M->aPubTextDim := aPrnDim[1] // настройки массива страницы
M->cPubTitleUp := aPrnDim[2] // настройки титула страницы
M->aPubDateDo := aPrnDim[3] // настройки даты для страницы
ELSE
RETURN NIL
ENDIF */

Что-то с массивами наверное или форма МиниГуи ломает форму FastReport ...
Ставил рабочую форму FastReport в эту функцию, тоже не открывается в Дизайнере.
Хотя там нет вызовов типа [CallHbFunc('A20TextDim',[2,<DOLG_ABON."KTARIF">])]
Видать всё таки намудрил в форме заполнения PrnDim_A20()

Хотя форма FastReport нормально печатается !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1247
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 25.07.16 20:08. Заголовок: А обязательно массив..


А обязательно массив использовать? Может dbf временный создать?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5016
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.07.16 00:09. Заголовок: PSP пишет: Может db..


PSP пишет:

 цитата:
Может dbf временный создать?



Конечно не обязательно. Просто так решил вначале, вроде удобно.
Оказалось не очень. Конечно можно переделать и не париться.
Но форма уже работает, правку не делаю, пускай так работает.
Просто на будущее всем заметка - с многомерными массивами беда в FastReport и не нужно использовать их.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5366
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.05.17 17:11. Заголовок: Столкнулся с проблем..


Столкнулся с проблемкой....
В терминальной версии программы для формы печати использовал один и тот же алиас PLATA, т.е.
открывал базу допустим plat2016 под алиасом PLATA и одна форма использовалась для всех годов.

Сейчас в новой программе открываю сразу все базы:
plat2015, plat2016, plat2017 под алиасами: PLAT2015, PLAT2016, PLAT2017
И одну форму НЕЛЬЗЯ использовать, потому что в форме Fastreport предусмотренно использование
обращение к полям базы типа [PLATA."RC"], [PLATA."DOCUM"] и т.д.
Т.е. придётся делать формы для каждого года отдельно, что очень не правильно.

Можно ли как то передать алиас базы PLAT2015 в форму как алиас PLATA ?
Кто нибудь сталкивался с такой проблемой ?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6406
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.05.17 17:28. Заголовок: Andrey Форма Fastre..


Andrey
Форма Fastreport это ведь функция ?
Если так то можно в нее передавать нужный алиас и далее в ней вместо PLATA использовать переменную.
Это просто моя догадка...


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5369
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.05.17 17:52. Заголовок: Dima пишет: Форма F..


Dima пишет:

 цитата:
Форма Fastreport это ведь функция ?


Нет, это FrSystH.dll в которой много чего сделано по умолчанию.
Алиас базы передаётся так:
     oFrPrn:SetWorkArea( ALIAS(), SELECT(), .T. ) // .T. для OEM-кодировки БД  


Вместо PLATA использовать переменную - не нашёл как !
В форме Фастрепорт (это обычный xml-файл) есть свой DataSetName="PLATA" - как его изменить не знаю.

Там дизайнер свой собственный !




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5371
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.05.17 18:18. Заголовок: Andrey пишет: В фор..


Andrey пишет:

 цитата:
В форме Фастрепорт (это обычный xml-файл) есть свой DataSetName="PLATA" - как его изменить не знаю.


Поиск и замена в форме (файле xml-файл) напрямую через файловые функции - не даёт результата !
Пишет потом при запуске формы - ошибку:


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1307
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 05.05.17 18:50. Заголовок: Я бы сделал через вр..


Я бы сделал через временный dbf c алиасом PLAT и структурой, идентичной основным базам (PLAT*). Просто заполнял бы его перед печатью нужными данными, а потом удалял.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5372
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.05.17 19:32. Заголовок: PSP пишет: Я бы сде..


PSP пишет:

 цитата:
Я бы сделал через временный dbf c алиасом PLAT и структурой, идентичной основным базам (PLAT*). Просто заполнял бы его перед печатью нужными данными, а потом удалял.


Это хороший вариант на небольшие выборки, наверное подойдёт, если не смогу по другому сделать ! Спасибо !

Но вот нашёл ещё один вариант, через сам Фастрепорт:
procedure Picture1OnBeforePrint(Sender: TfrxComponent); 
begin
MasterData1.DataSet := 'PLAT' + IntToStr(GetHbVar('nPubYearImport'))
end;

Но что-то ругается...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5373
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.05.17 20:54. Заголовок: Оказывается можно эт..


Оказывается можно это сделать в Фастрепорте !
В самом отчете при открытии сделать переназначение на существующий алиас PLATA.
procedure ReportHOnStartReport(Sender: TfrxComponent); 
begin
// ShowMessage(GetHbVar('cPubAliasYearPlata'));
PLATA.Alias := GetHbVar('cPubAliasYearPlata');
end;


И ещё создать открытие базы PLATA через вкладку Данные:


Вообще Fastreport прекрасный рисовальщик отчётов.

Вопрос закрыт... Спасибо всем за участие !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5584
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 31.10.17 14:21. Заголовок: Всем привет ! Кто зн..


Всем привет !
Кто знает как открыть окно Fastreport без "заморозки" основной программы ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6885
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.02.21 13:56. Заголовок: Что-то не могу получ..


Что-то не могу получить читаемый украинский текст в FastReporte.
Одни кракозябы...

Давно работал с FastReporte и подзабыл как задать кодировку базы для UA1125
Нашёл у себя в исходниках только такое:
      FrPrn:SetWorkArea( ALIAS(), SELECT(), .T. )   // .T. для OEM-кодировки БД 
FrPrn:SetWorkArea( ALIAS(), SELECT(), ) // для RU1251-кодировки БД


Подскажите пожалуйста как поменять кодировку базы для вывода UA1125 ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3561
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.02.21 15:02. Заголовок: Andrey пишет Может ..


Andrey пишет [quote]`
Может пробнуть с charset для ua как я использовал для LV
 
DEFINE FONT Arial FONTNAME App.FontName SIZE App.FontSize CHARSET 186 // BALTIC_CHARSET
DEFINE FONT ArialBold FONTNAME App.FontName SIZE App.FontSize BOLD CHARSET 186 // BALTIC_CHARSET
DEFINE FONT ArialRu FONTNAME App.FontName SIZE App.FontSize CHARSET 204 // RUSSIUN_CHARSET
DEFINE FONT ArialRuBold FONTNAME App.FontName SIZE App.FontSize BOLD CHARSET 204 // RUSSIUN_CHARSET

SET FONT TO ArialRu, 11


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7280
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.02.21 15:04. Заголовок: Andrey пишет: FrPrn..


Andrey пишет:

 цитата:
FrPrn:SetWorkArea( ALIAS(), SELECT(), .T. )


через эти фичи похоже ни как
 
////////////////////////////////////////////////////////////////////////////
// SetWorkArea() - Add WorkArea or modify params of WorkArea.
// sFrAlias - any string that will represent WorkArea in FR
// nWorkArea - number of WorkArea
// lOem - data in oem codepage (default - .f.)
// aRangeParams - Range Params. Array with 3 elements:
// 1 element - FR_RB_FIRST(0) or FR_RB_CURRENT(1)
// 2 element - FR_RE_LAST(0) or FR_RE_CURRENT(1) or FR_RE_COUNT(2)
// 3 element - A number of records in the WorkArea,
// if the second element = FR_RE_COUNT.
// Default - {FR_RB_FIRST, FR_RE_LAST, 0}
////////////////////////////////////////////////////////////////////////////


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6886
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.02.21 20:24. Заголовок: Выкрутился по просто..


Выкрутился по простому.
Создал PUBLIC переменные, а на форму Фастрепорта вывожу так [GetHbVar('cPubL1')]
Через массив муторно выводить на форме, уже есть неприятный опыт.
Украинский язык в Фастрепорта появился.
Ну и до кучи подгружаю ресурсы укр.языка в ресурсы Фастрепорта, вообще все стало на украинском.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6887
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.02.21 12:52. Заголовок: Можно по другому дел..


Можно по другому делать, указать фонт вывода поля, т.е. его кодировку,
но в моём ФастРепорте нет украинского UKRAIN_CHARSET
Вот так можно менять кодировку полей базы:


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 439
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет