On-line: Dr. Oldwarez, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 129
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 10.03.08 23:53. Заголовок: ANN: Вышел релиз FastReport for [x]Harbour


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

Рад сообщить, что вышел релиз FastReport for [x]Harbour. Как всегда, информацию можно посмотреть:

http://www.paritetsoft.ru/frh.htm

Возможным русскоязычных покупателей лучше контактировать со мной напрямую по email. Цена для оплаты в рублях банковским переводом по выставленному счету- 9999 рублей.

--
Спирин Сергей.
Компания "Паритет Софт".
FRH sales: http://www.paritetsoft.ru/frh.htm
FRAX sales: http://www.hotsoft.ru/ALASKA/frax_eng.htm



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 258 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All [только новые]


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




Пост N: 515
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.03.08 15:50. Заголовок: Собрался делать нову..


Собрался делать новую форму и не знаю как поступить.

Есть выборка по базе.
Мне нужно на лист А4 печатать 1 запись из выборки.
Причем если поле (допустим KVIEW) == 1, то это 1-шаблон, если == 2, то 2-шаблон ...
и так до 4-шаблонов.

Как такую штуку сделать ?

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


Пост N: 130
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 12.03.08 19:22. Заголовок: Andrey пишет: Собра..


Andrey пишет:

 цитата:
Собрался делать новую форму и не знаю как поступить.

Есть выборка по базе.
Мне нужно на лист А4 печатать 1 запись из выборки.
Причем если поле (допустим KVIEW) == 1, то это 1-шаблон, если == 2, то 2-шаблон ...
и так до 4-шаблонов.

Как такую штуку сделать ?




Если шаблоны сильно разные, то мне кажется оптимальней будет так:

FrPrn:SetWorkArea("MY_AREA", Select(), , {FR_RB_CURRENT, FR_RE_CURRENT , 0})
FrPrn:Clear()

DO WHILE .NOT. Eof()

IF KVIEW == 1
FrPrn:LoadFromFile(1.fr3)
ENDIF

IF KVIEW == 2
FrPrn:LoadFromFile(2.fr3)
ENDIF
.....................

FrPrn:PrepareReport(FR_NOTCLEARLASTREPORT)

SKIP
ENDDO

FrPrn:ShowPreparedReport()



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




Пост N: 518
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.03.08 15:45. Заголовок: Как реализовать след..


Как реализовать следующию печать в терминалке хХарбора:

Есть файл логотипа фирмы (logo.bmp)
Нужно его считать и вставить в начало отчета (сразу нельзя, т.к. форма будет в разных фирмах).


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


Пост N: 136
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.03.08 23:43. Заголовок: Andrey пишет: Есть ..


Andrey пишет:

 цитата:
Есть файл логотипа фирмы (logo.bmp)
Нужно его считать и вставить в начало отчета (сразу нельзя, т.к. форма будет в разных фирмах).



Это очень просто, например, задайте обработчик OnBeforePrint oбъекту Picture:

procedure Picture1OnBeforePrint(Sender: TfrxComponent);
begin
Picture1.Picture.LoadFromFile(GetHbVar('MyLogo'));
end;

Чтобы сделать обработчик, выберите объект, в инспекторе объектов выберите вкладку "События" и напротив нужного события в пустой ячейке двойной щелчок мышы.





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




Пост N: 533
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.04.08 20:16. Заголовок: Видел FastReport по ..


Видел FastReport по Дельфи. Там в верхней строке было размещены кнопки Экспорта в Word и Excel.
И кнопка "выхода" была значком с "Дверью". Т.е. я так понимаю что этот параметр настраивается.
Я хочу также сделать в хХарборе !
Как это реализуется ?

Вдобавок ко всему все эти формы можно затолкать в ЕХЕ-ник.
В некоторых случаях это очень удобно.

Как можно сделать такое-же в хХарборе ?


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


Пост N: 148
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 05.04.08 09:55. Заголовок: Здравствуйте, Андрей..


Здравствуйте, Андрей.

Насчет дополнительных кнопок. Реализуется это только в Дельфи. В Харбуре вы можете только манипулировать количеством видимых кнопок.

Насчет отчетов в EXE, это можно. Добавьте ваши отчеты к EXE как ресурс RCDATA. Для загрузки отчета :LoadFromResource()

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




Пост N: 534
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.04.08 14:47. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
В Харбуре вы можете только манипулировать количеством видимых кнопок.



А как ? Можно небольшой пример ?

Sergey Spirin пишет:

 цитата:
Добавьте ваши отчеты к EXE как ресурс RCDATA. Для загрузки отчета :LoadFromResource()



Для примера: есть 2 отчета otchet1. и otchet2.
Как будет выглядеть my.rc ?
Как будет выглядеть вызов этих отчетов в моей программе ?


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


Пост N: 149
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 05.04.08 19:19. Заголовок: По кнопкам, смотрите..


По кнопкам, смотрите доку:

FrPrn:PreviewOptions:SetButtons(FR_PB_PRINT + FR_PB_LOAD...)

Ресурсы, rc:

OTCHET1 RCDATA "otchet1.fr3"

Вызов:

FrPrn:LoadFromResource("OTCHET1")


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




Пост N: 535
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.04.08 19:28. Заголовок: Спасибо большое ! :s..


Спасибо большое !

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




Пост N: 541
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.04.08 01:50. Заголовок: Не показывает иконку..


Не показывает иконку в FastReporte, а заголовок окна показывает !
Хотя в начале стоит показ иконки, может что неправильно ?

//----------- Now load and init FastReport --------------------------------------
FrPrn := frReportManager():new()

//---------- Set the same icon for FastReport windows----------
FrPrn:SetIcon( 1 )

//---------- Set the same title for FastReport taskBar-window
FrPrn:SetTitle( _cTitle )


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


Пост N: 152
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 16.04.08 17:39. Заголовок: Andrey пишет: //---..


Andrey пишет:

 цитата:
//---------- Set the same icon for FastReport windows----------
FrPrn:SetIcon( 1 )



А есть ли у Вас в exe ресурс иконки, определенный числовым идентификатором 1?

Иконка читается из ресурсов. И если такого ресурса нет, то и нет

Кстати, удобнее даже определить в rc символьно, и тогда FrPrn:SetIcon( "MYICON" )

Минимальный код, который спрашивали в письме:

FrPrn := frReportManager():new()
FrPrn:SetWorkArea() -- если нужно, может не использоваться
FrPrn:LoadFromFile() -- FromBlob(), FromResource(), Clear() - на выбор
FrPrn:DesignReport()









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




Пост N: 542
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.04.08 20:49. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
А есть ли у Вас в exe ресурс иконки, определенный числовым идентификатором 1?


Конечно же нет ! Я так с Аляски взял и тупо переписал. Спасибо за подсказку.

Sergey Spirin пишет:

 цитата:
FrPrn := frReportManager():new()
FrPrn:SetWorkArea() -- если нужно, может не использоваться
FrPrn:LoadFromFile() -- FromBlob(), FromResource(), Clear() - на выбор
FrPrn:DesignReport()


А где взять описание этих функций, чтоб я каждый раз не приставал к вам ?
Кинте пожалуйста ссылку.

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




Пост N: 543
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.04.08 20:54. Заголовок: И еще по ходу один в..


И еще по ходу один вопрос !
Если я использую только русский язык, то можно ли мне файл ресурсов-языка затолкать в мой RC файл ?
Как будет выглядеть эта строка в RC файле, и как вызывать язык ввода FastReporta у меня в программе ?
Спасибо заранее.

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


Пост N: 153
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.04.08 09:13. Заголовок: Andrey пишет: А где..


Andrey пишет:

 цитата:
А где взять описание этих функций, чтоб я каждый раз не приставал к вам ?
Кинте пожалуйста ссылку.



Текущая дока -

http://www.paritetsoft.ru/downloads/UserManual_for_Xbase.zip

Но она на английском.

На русском есть старая для Аляски, но для основных методов она подойдет полностью:

http://www.hotsoft.ru/ALASKA/FastReport.pdf

Andrey пишет:

 цитата:
И еще по ходу один вопрос !
Если я использую только русский язык, то можно ли мне файл ресурсов-языка затолкать в мой RC файл ?
Как будет выглядеть эта строка в RC файле, и как вызывать язык ввода FastReporta у меня в программе ?



Для этого ничего делать не надо, Ваша персональная копия уже русская. Если у Вас только русские приложения, никаких файлов загружать не надо.



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




Пост N: 545
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.04.08 19:24. Заголовок: Есть ли FastReport д..


Есть ли FastReport для Linux ?



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


Пост N: 154
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 23.04.08 23:17. Заголовок: Andrey пишет: Есть ..


Andrey пишет:

 цитата:
Есть ли FastReport для Linux ?



FastReport (не FRH) есть. Но похоже доживает свои последние дни, также как и Kylix (Delphi для Linux) на котором написан. Разработка клиентских приложений под Linux экономически нецелесоообразна (не я сказал).

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




Пост N: 546
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.04.08 10:23. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
(не FRH)


А много ли надо времени, чтобы его переделать под Linux ?
Это так - чисто теоретически !!!

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


Пост N: 155
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 25.04.08 16:22. Заголовок: Andrey пишет: А мно..


Andrey пишет:

 цитата:
А много ли надо времени, чтобы его переделать под Linux ?
Это так - чисто теоретически !!!



Не знаю. Я не в курсе организации динамических библиотек в Linux.

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


Пост N: 167
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.04.08 08:13. Заголовок: Ну, вообще говоря, п..


Ну, вообще говоря, проблема здесь не в "организации динамических библиотек в Linux" ( это вообще не проблема ), а в подборе подходящего модуля ( библиотеки ) для печати и в переписывании всего вывода на печать под этот модуль, а лучше - создании промежуточного слоя, который мог работать и с этим модулем, и под Windows и обеспечил бы независимость от платформы основного кода. Это, действительно, может оказаться непростой задачей.

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


Пост N: 156
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.04.08 12:28. Заголовок: alkresin пишет: Ну,..


alkresin пишет:

 цитата:
Ну, вообще говоря, проблема здесь не в "организации динамических библиотек в Linux" ( это вообще не проблема ), а в подборе подходящего модуля ( библиотеки ) для печати и в переписывании всего вывода на печать под этот модуль, а лучше - создании промежуточного слоя, который мог работать и с этим модулем, и под Windows и обеспечил бы независимость от платформы основного кода. Это, действительно, может оказаться непростой задачей.



Да вроде речь идет в контексте того, что уже "подобрали".

Речь о FastReport CLX. И это продукт обеспечивающий весь жизненный цикл отчетов в Linux, от разработки до печати и экспорта. Поэтому никакой речи о "выборах и переписываниях" не ведется, достаточно давно все уже выбрано и переписано на высоком профессиональном уровне, в первую очередь Borland-ом (Kylix), во вторую FastReport Inc (CLX-версия).

Поэтому, речь здесь только о возможности использования всего этого из Harbour-приложения под Linux. В Windows это реализовалось в виде компиляции FastReport как динамической библиотеки (как первый шаг к цели). И я не говорил проблема это или не проблема в Linux, я сказал, что я не в курсе, насколько это может быть проблематично.

Но как я уже говорил, Borland остановил Kylix, заявив об отсутствии коммерческих переспектив, FastReport CLX "заморожен". Поэтому текущий разговор достаточно абстрактен.







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




Пост N: 547
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.04.08 21:11. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Поэтому текущий разговор достаточно абстрактен.


А что есть для FastReport на текущий момент. Можно ли получить (сделать) печать под FastReport на текущий момент времени ???
Печать форм для Windows из FastReport просто "обалденная" т.е. очень развита и не нужно более ничего изобретать - бери и пользуйся.......
Возможна ли такая печать для Linux из FastReport ? Я понял что нет, тат как не реализован вызов FastReport из под xHarbour ?
Вопрос пока чисто теоретически, сколько по времени нужно затратить для переноса FastReport для xHarbour ?

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


Пост N: 157
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.04.08 21:52. Заголовок: Andrey пишет: Вопро..


Andrey пишет:

 цитата:
Вопрос пока чисто теоретически, сколько по времени нужно затратить для переноса FastReport для xHarbour ?



Ну, если уж Вам так интересно, то, на вскидку 3-4 месяца... То есть, где-нибудь, учитывая все расходы, тысяч 20 упавших долларов.

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




Пост N: 548
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.04.08 11:36. Заголовок: Столкнулся с некотор..


Столкнулся с некоторыми неудобствами.
У меня используется OEM кодировка, а при печати используется WIN-кодировка.

не хочу везже в своих формах писать такую конструкцию
[CallHbFunc('HB_OEMTOANSI',[GetHbVar('myFirma')])]

хочется иметь простые конструкции типа:
[My_Firma], [My_Adres], [My_Telefon], [My_Viborka] и т.д.

Вопрос: как в программе заранее определить эти переменные,
а потом чтоб эти переменные были видны в ДИЗАЙНЕРЕ ?
По доке смотрел, сделал наподобее, а не работает.
Где я ошибся ?

PUBLIC myFirma, MyAdres, MyTelefon, MyViborka

MyFirma := HB_OEMTOANSI('ООО "Рога и Копыта"')
MyAdres := HB_OEMTOANSI('г.Москва, Набережная 13')
MyTelefon := HB_OEMTOANSI('тел.: (495) 123-45-67')
MyViborka := HB_OEMTOANSI('Дата договора: = 12.01.08 .....')
.............
.............

FrPrn:AddVariable( "My Lovely Vars", "My_Firma" , MyFirma )
FrPrn:AddVariable( "My Lovely Vars", "My_Adres" , MyAdres )
FrPrn:AddVariable( "My Lovely Vars", "My_Telefon", MyTelefon )

FrPrn:DesignReport()

При просмотре выдает ошибку:
Memo3: Ошибка в выражении: "myFirma": Неопределенный индентификатор "myFirma"


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


Пост N: 158
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 28.04.08 15:51. Заголовок: Andrey пишет: PUBLI..


Andrey пишет:

 цитата:
PUBLIC myFirma, MyAdres, MyTelefon, MyViborka

MyFirma := HB_OEMTOANSI('ООО "Рога и Копыта"')
MyAdres := HB_OEMTOANSI('г.Москва, Набережная 13')
MyTelefon := HB_OEMTOANSI('тел.: (495) 123-45-67')
MyViborka := HB_OEMTOANSI('Дата договора: = 12.01.08 .....')
.............
.............

FrPrn:AddVariable( "My Lovely Vars", "My_Firma" , MyFirma )
FrPrn:AddVariable( "My Lovely Vars", "My_Adres" , MyAdres )
FrPrn:AddVariable( "My Lovely Vars", "My_Telefon", MyTelefon )

FrPrn:DesignReport()

При просмотре выдает ошибку:
Memo3: Ошибка в выражении: "myFirma": Неопределенный индентификатор "myFirma"



Наверняка результат самой популярной "непонятки" в Фасте .

Если значение перменной (отчетной, не скриптовой) строковое, то оно считается интепретируемым выражением и вычисляется. Просто строка должна быть в одинарныйх кавычках. Поэтому, либо :

FrPrn:AddVariable( "My Lovely Vars", "My_Firma" , "'" + MyFirma + "'" )

Либо:

FrPrn:AddVariable( "My Lovely Vars", "My_Firma" , "CallHbFunc('HB_OEMTOANSI', [GetHbVar('myFirma')])" )











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




Пост N: 553
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.04.08 22:57. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
FrPrn:AddVariable( "My Lovely Vars", "My_Firma" , "'" + MyFirma + "'" )
Либо:
FrPrn:AddVariable( "My Lovely Vars", "My_Firma" , "CallHbFunc('HB_OEMTOANSI', [GetHbVar('myFirma')])" )



НЕ РАБОТАЕТ !!!
И в списке переменных (в Дизайнере) не появляется группа "My Lovely Vars" !!!
Что делать ???



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




Пост N: 554
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.04.08 09:31. Заголовок: НЕ РАБОТАЕТ !!! И в ..


НЕ РАБОТАЕТ !!!
И в списке переменных (в Дизайнере) не появляется группа "My Lovely Vars" !!!
Что делать ???


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


Пост N: 159
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 29.04.08 10:12. Заголовок: Andrey пишет: НЕ РА..


Andrey пишет:

 цитата:
НЕ РАБОТАЕТ !!!
И в списке переменных (в Дизайнере) не появляется группа "My Lovely Vars" !!!
Что делать ???




Если Вы пишите :

FrPrn:AddVariable( "My Lovely Vars", "My_Firma" , "'" + MyFirma + "'" )
FrPrn:LoadFromFile(...)

То и не появятся Вернее сотрутся загруженным отчетом у которого свои переменные.

Поэтому:

FrPrn:LoadFromFile(...)
FrPrn:AddVariable( "My Lovely Vars", "My_Firma" , "'" + MyFirma + "'" )





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




Пост N: 555
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.04.08 12:03. Заголовок: Блин, а я смотрел на..


Блин, а я смотрел на загрузку ваших функций и ставил раньше них. И эту функцию было видно в Дизайнере.

FrPrn:AddFunction( "function XBaseStr(nValue: Double, nLength: Variant = EmptyVar, nDecimals: Variant = EmptyVar): Variant", "My Lovely Functions!", "It's a XBase Str() function!" )

Спасибо, заработало.

Только еще один вопрос:
У меня в базе поле времени числовое (N 4,0) - т.е. типа: 1208, 1310 и т.д.

Если в дизайнере указываешь формат вывода Дата/время hh:mm, то показывает 00:00
Как правильно сделать ?


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


Пост N: 160
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 29.04.08 13:57. Заголовок: Andrey пишет: Блин,..


Andrey пишет:

 цитата:
Блин, а я смотрел на загрузку ваших функций и ставил раньше них. И эту функцию было видно в Дизайнере.

FrPrn:AddFunction( "function XBaseStr(nValue: Double, nLength: Variant = EmptyVar, nDecimals: Variant = EmptyVar): Variant", "My Lovely Functions!", "It's a XBase Str() function!" )

Спасибо, заработало.

Только еще один вопрос:
У меня в базе поле времени числовое (N 4,0) - т.е. типа: 1208, 1310 и т.д.

Если в дизайнере указываешь формат вывода Дата/время hh:mm, то показывает 00:00
Как правильно сделать ?



Функции к отчетам не привязаны, поэтому их можно добавлять, где хочется.

Правильно показывает 00:00 У "нас-дельфистов" тип TDateTime - это float. В целой части хранится дата, в дробной - время. Целое число всегда имеет время 00:00.

Поставьте формат - числовой, строка формата - ##:##



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




Пост N: 559
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.04.08 11:05. Заголовок: Спасибо заработало !..


Спасибо заработало !!!


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


Пост N: 161
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 06.05.08 10:23. Заголовок: Здравствуйте, Я рас..


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

Я рассылал приглашение в английскую конфу всем русскоязычным пользователям, однако никто "не присоединился" к этой конфе.

Тем не менее, в этой конфе начинает накапливаться полезная информация, поэтому все-таки рекомендую это сделать всем интересующимся FastReport. Напомню адрес:

[url=http://groups.google.com/group/fastreport_for_x_harbour/topics ]http://groups.google.com/group/fastreport_for_x_harbour/topics [/url]





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




Пост N: 563
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.05.08 00:55. Заголовок: Хочу сделать вызов п..


Хочу сделать вызов печати универсальной для своих задач.
Т.е. Вызываю функцию печати и туда передаю имя_формы.
А как сделать передачу назначения доп.переменных, функций и SetFieldAliases ?

Вот мой пример:

//////////////////////////////////////////////////////////////////////
#include "FastRepH.ch"

FUNCTION MyFR4()
LOCAL cFileForm, cPath, nShowDesignReport
PUBLIC myFirma, MyAdres, MyTelefon, MyViborka, MyNumba, myPathRes

M->myPathRes := CurDrive() + ":\" + CurDir() + '\'
M->MyFirma := HB_OEMTOANSI('ООО "Рога и Копыта"')
M->MyAdres := HB_OEMTOANSI('г.Москва, Набережная 13')
M->MyTelefon := HB_OEMTOANSI('тел.: (495) 123-45-67')
M->MyViborka := HB_OEMTOANSI('Дата договора: = 12.01.08 .....')
M->MyNumba := 123

cFileForm := "bookabon.fr3"
cPath := CurDrive() + ":\" + CurDir() + '\'

USE bookabon ALIAS BookAbon NEW

nShowDesignReport := 1 // 1-ShowReport, 2-DesignReport

MyFastReport4( cPath + cFileForm , nShowDesignReport, ;
(передать переменные), (передать функции), (передать SetFieldAliases) )

CLOSE BookAbon

RETURN NIL
////////////////////////////////////////////////////////////////
FUNCTION MyFastReport4(cFileForm, nShowDesignReport)
LOCAL cTitle := HB_OEMTOANSI( "Печать формы - " )
PRIVATE FrPrn

//----------- Now load and init FastReport --------------------------------------
FrPrn := frReportManager():new()

//---------- Set the same icon for FastReport windows----------
FrPrn:SetIcon( "FASTREP_ICO" )

//---------- Set the same title for FastReport taskBar-window
FrPrn:SetTitle( cTitle + cFileForm )

//----------- Set to disable main window when FastReport executes----------------------
// FrPrn:SetVisualActions(FR_ACT_DISABLE);

//----------- Определяет набор кнопок, которые будут доступны в Окне-Просмотра --------
FrPrn:PreviewOptions:SetButtons(FR_PB_PRINT + FR_PB_LOAD + FR_PB_SAVE + ;
FR_PB_EXPORT + FR_PB_ZOOM + FR_PB_FIND + FR_PB_OUTLINE + FR_PB_PAGESETUP + ;
FR_PB_TOOLS + FR_PB_EDIT + FR_PB_NAVIGATOR )
//----------- Load Lang resource for FastReport ----------------------
//FrPrn:LoadLangRes( M->myPathRes + "Russian.xml" )

//----------- Alias base and SELECT work area for FastReport ----------------------
FrPrn:SetWorkArea( ALIAS(), SELECT(), .T. ) // .T. для OEM-кодировки БД
//FrPrn:SetFieldAliases( "BookAbon", "CUSTNO=Cust No;Company;ADDR1=Address;Phone;Fax;Contact" )

//----------- Load file form FastReport ----------------------
FrPrn:LoadFromFile( cFileForm )

//-------- add XBase++ vars to FastReport ---------------------
FrPrn:AddVariable( "My Lovely Vars", "MyPathRes", "'"+myPathRes+"'" )
FrPrn:AddVariable( "My Lovely Vars", "MyFirma" , "'"+MyFirma+"'" )
FrPrn:AddVariable( "My Lovely Vars", "MyAdres" , "'"+MyAdres+"'" )
FrPrn:AddVariable( "My Lovely Vars", "MyTelefon", "'"+MyTelefon+"'" )
FrPrn:AddVariable( "My Lovely Vars", "MyNumba" , MyNumba )
//FrPrn:SetEventHandler( "Report", "OnUserFunction", { | FName, FParams | CallUserFunction( FName, FParams ) } )
FrPrn:AddFunction( "function XBaseStr(nValue: Double, nLength: Variant = EmptyVar, nDecimals: Variant = EmptyVar): Variant", ;
"My Lovely Functions!", "It's a XBase Str() function!" )

IF nShowDesignReport == 1
FrPrn:ShowReport()
ELSE
FrPrn:DesignReport()
ENDIF

FrPrn:ClearDataSets()

//-------- Unload FastReport -------------------------------------------------------------
FrPrn:DestroyFR()

RETURN NIL
////////////////////////////////////////////////////////////////



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


Пост N: 162
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 07.05.08 14:37. Заголовок: Andrey пишет: Хочу ..


Andrey пишет:

 цитата:
Хочу сделать вызов печати универсальной для своих задач.
Т.е. Вызываю функцию печати и туда передаю имя_формы.
А как сделать передачу назначения доп.переменных, функций и SetFieldAliases ?



Собственно, в демо DoFrAction() - это и есть такая универсальная функция. Можно делать как там.

Но если Вы хотите почти полной универсальности и минимум Harbour-кода, то посоветую следующее:

Не пользуйтесь SetWorkArea(), а пользуйтесь объектами HarbourWorkArea. Возможностей даже больше, при этом нет вызовов SetWorkArea(), SetFieldAliases() которые должны быть до LoadFromXXX.

Задавайте переменные в дизайнере, давая им значения типа - GetHbVar('SomeVar')

Функции, естественно, добавляйте при инициализации Фаста.

Таким образом, Вам останется только вызывать Load.., Show.., Design..


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




Пост N: 565
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.05.08 20:23. Заголовок: Можно ли прикрутить ..


Можно ли прикрутить кнопку для вызова "Дизайнера" на панели "Просмотра" печати ?
А то не хочется делать доп. вызов "Дизайнера" из своей программы.

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


Пост N: 163
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 13.05.08 09:35. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли прикрутить кнопку для вызова "Дизайнера" на панели "Просмотра" печати ?
А то не хочется делать доп. вызов "Дизайнера" из своей программы.



Там уже есть вызов дизайнера, но в специальном режиме правки уже сформированного отчета, а свою кнопку добавить сейчас нельзя.



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




Пост N: 576
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.05.08 20:54. Заголовок: В Дизайнере есть мен..


В Дизайнере есть меню "Отчет", в нем меню "Настройки" и там во вкладке "Описание" есть элемент "Имя" - оно отображается в заголовке окна при "Просмотре" отчета. (классно !)
А элемент "Картинка", когда туда вставляешь, нигде не отображается.
Для чего она нужна ?
Как заставить показываться при "Просмотре" ?

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


Пост N: 166
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 22.05.08 16:14. Заголовок: Andrey пишет: Для ч..


Andrey пишет:

 цитата:
Для чего она нужна ?



Сие тайна, покрытая мраком

Andrey пишет:

 цитата:
Как заставить показываться при "Просмотре" ?



А где показывать ее? В самом отчете показать конечно можно, типа:

procedure Picture1OnBeforePrint(Sender: TfrxComponent);
begin
Picture1.Picture.Assign(Report.ReportOptions.Picture);
end;

Но не очень понятно, зачем.

А.. в FastReport Server может использоваться при "изготовлении" HTML-странички со списком отчетов, получиться красиво, каждый отчет представлен картинкой.





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




Пост N: 579
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.05.08 23:03. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
А где показывать ее?



Нужно показывать где иконка окна "просмотра", т.е. заместо нее.

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




Пост N: 580
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.05.08 23:04. Заголовок: Решил сделать печать..


Решил сделать печать еще универсальней....
Обойтись вызовом спец.функцией типа MyPrintFR4("zaivka.ini") !
А в этом ини-файле делаю все остальное.

Пример файла: zaivka.ini

[Настройка]
Имя_формы = "СПИСОК ЗАЯВОК НА РЕМОНТ"
Файл_формы = "zaivka.fr3"
Дизайнер = .F.

[Заполнить_переменные]
* имя_переменной , значение_переменной , комментарий
Поле1 = { "MySample" ,'M->cFiltPrn' , "выборка" }
Поле2 = { "MyDatePRN" ,'DTOC(DATE())' , "дата печати" }
Поле3 = { "MyFirma" ,'M->SDog_Firma' , "фирма" }
Поле4 = { "MyOtdel" ,'M->SDog_Otv+"/"+M->SDog_Tel+"/"' , "Нач.отдела" }

[Заполнить_таблицу]
* имя_поля , значение_поля (функции+поля_БД) , комментарий
Поле1 = { "NN" ,'TRANSFORM(FIELD->NNZa,"@R 999999/99")+CHR(10)+DTOC(FIELD->DATEZa)+", "+CHR(10)+TRANSFORM(FIELD->TIMEZA,"@R 99:99")+CHR(10)+ALLTRIM(FIELD->mNigtZa)+CHR(10)+ALLTRIM(SUBSTR(FIELD->mKodZa,1,10))' , "номер заявки" }
Поле2 = { "POLE1" ,'MAR_ADRES(6)+","+CHR(10)+ALLTRIM(FIELD->FIO)+", "+New_TelFIO()+", "+Za_Teleph(0,0,1,1)+CHR(10)+"ОТВ.: "+ALLTRIM(FIELD->cDogov)+CHR(10)+ALLTRIM(FiliDSP->FiliDSP)' , "заказчик,адрес,тел." }
Поле3 = { "POLE2" ,'MAR_NEIS3()+CHR(10)+ALLTRIM(FIELD->mRem)' , "неисправность" }
Поле4 = { "POLE3" ,'ALLTRIM(srokza->srokza)+", "+CHR(10)+ALLTRIM(FIELD->SrokZa)+"/, "+CHR(10)+DTOC(FIELD->DatePere)+CHR(10)+ALLTRIM(MASTER->MASTER)' , "сроки,мастер" }
Поле5 = { "POLE4" ,'ALLTRIM(Domof9->Domof)+", "+ALLTRIM(Truba9->Truba)+", "+ALLTRIM(Zamok9->Zamok)+", "+ALLTRIM(Dovod9->Dovod)+", "+ALLTRIM(Dver9->Dver)+", "+ALLTRIM(Process9->Process)' , "уст.оборудование" }
Поле6 = { "OPLAT" ,'IIF(FIELD->SumPlata>0,STR(FIELD->SumPlata,8,2)+" руб.","-")' , "оплата" }

[]

А на самой форме FastReport проставляю переменные и поля БД.
Как заполнить переменные и передать в FastReport - понятно.
А как быть с полями БД ?
Они же составные ?


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


Пост N: 167
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 24.05.08 14:04. Заголовок: Andrey пишет: Решил..


Andrey пишет:

 цитата:
Решил сделать печать еще универсальней....
Обойтись вызовом спец.функцией типа MyPrintFR4("zaivka.ini") !
А в этом ини-файле делаю все остальное.



Похоже Вы явно ищите себе лишнюю (и бесполезную) работу Никакого смысла в этих ini-файлах нет. Все это можно и нужно делать в самих отчетах.

Переменные добавляйте в дизайнере, например: "фирма" значение GetHbVar('SDog_Firma') и т.д.

Общие переменные добавляйте во все отчеты в той же MyPrintFR4().

Используйте TfrxAlaskaWorkArea объекты и в отчете поля и "составляйте".

Чтобы часто не писать 'CallHbFunc()' добавьте в FR часто используемые функции типа ALLTRIM, TRANSFORM и т. д.

Кстати можно обсудить набор наиболее используемых функций и я добавлю их в FRH, чтобы не добавлять кодом.



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




Пост N: 583
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.05.08 15:42. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Никакого смысла в этих ini-файлах нет.


Не согласен с вами. Как видно из примера там целая куча полей и своих функций....
И когда нужно быстро подправить, текстовый ини-файл просто удобней, 5 сек. и отчет печатает по другому.

Sergey Spirin пишет:

 цитата:
Кстати можно обсудить набор наиболее используемых функций и я добавлю их в FRH, чтобы не добавлять кодом.


Нужны все текстовые функции преобразования:
ALLTRIM(), CHR(), LTRIM(), RTRIM(), PADC(), REPLACE(), TRANSFORM(), MEMOLINE(), MEMOTRAN() .....
Лучше я пришлю NG по группам функций...

Sergey Spirin пишет:

 цитата:
Используйте TfrxAlaskaWorkArea объекты и в отчете поля и "составляйте".


Не совсем понял ? Как это делать ?



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


Пост N: 168
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.05.08 10:02. Заголовок: Andrey пишет: И ког..


Andrey пишет:

 цитата:
И когда нужно быстро подправить, текстовый ини-файл просто удобней, 5 сек. и отчет печатает по другому.



Напомню, что формат fr3 - это xml, то есть тоже текстовый. Вы же хотите все задублировать, чтобы побольше попутаться

Andrey пишет:

 цитата:
Нужны все текстовые функции преобразования:



Все необходимые функции Вы можете добавлять самостоятельно. По умолчанию же, думаю, можно добавить не более десятка наиболее часто используемых. С этим десятком нужно определиться.

Andrey пишет:

 цитата:
Используйте TfrxAlaskaWorkArea объекты и в отчете поля и "составляйте".

Не совсем понял ? Как это делать ?



На страниеце Data бросаете объект TfrxAlaskaWorkArea и в нем все прописываете, от MasterDetail до FieldAliases. Поля же составляете в мемах отчета.




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




Пост N: 588
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.05.08 03:55. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
По умолчанию же, думаю, можно добавить не более десятка наиболее часто используемых. С этим десятком нужно определиться.



Определяемся:
ALLTRIM()
PADC()
PADL()
PADR()
TRANSFORM()
MEMOTRAN()
MEMOLINE()
DTOC()
STR()
VAL()
IIF()
CHR(10) - возврат каретки, т.е. след. строка


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




Пост N: 589
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.05.08 04:36. Заголовок: А можно каким нибудь..


А можно каким нибудь образом добавить составной БЛОК функций и его передать в Фаст ?

блок типа:
bBlok := 'MAR_ADRES(6)+","+CHR(10)+ALLTRIM(FIELD->FIO)+", "+New_TelFIO()+", "+Za_Teleph(0,0,1,1)+CHR(10)+"ОТВ.: "+ALLTRIM(FIELD->cDogov)+CHR(10)+ALLTRIM(FiliDSP->FiliDSP)'

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


Пост N: 169
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 28.05.08 17:30. Заголовок: Andrey пишет: bBlok..


Andrey пишет:

 цитата:
bBlok := 'MAR_ADRES(6)+","+CHR(10)+ALLTRIM(FIELD->FIO)+", "+New_TelFIO()+", "+Za_Teleph(0,0,1,1)+CHR(10)+"ОТВ.: "+ALLTRIM(FIELD->cDogov)+CHR(10)+ALLTRIM(FiliDSP->FiliDSP)'



То что я вижу это строка, можно ли добавить строку в отчет? Можно, например в переменную отчета. Мне непонятно, зачем она в таком виде там нужна.

Кстати, в FRH есть EvalMacro(). Поэтому, в мемо отчета пишите, например:

[EvalMacro('MAR_ADRES(6) + ALLTRIM(FIELD->FIO) + New_TelFIO()')]







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


Пост N: 170
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 28.05.08 20:02. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Кстати, в FRH есть EvalMacro(). Поэтому, в мемо отчета пишите, например:

[EvalMacro('MAR_ADRES(6) + ALLTRIM(FIELD->FIO) + New_TelFIO()')]



`

[EvalMacro(GetHbVar('bBlok'))]

Но, скажите, хачем хранить содержимое bBlok не в отчете, а где-то еще?


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




Пост N: 590
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.05.08 20:35. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Но, скажите, хачем хранить содержимое bBlok не в отчете, а где-то еще?


Дело в том что у меня есть уже куча отчетов под Word и Excel'ем, а там уже есть готовые ини-файлы.
Я просто физически не смогу их переделать. Из-за этого хочу таким образом поступить.

А новые отчеты конечно буду делать как положенно.

Sergey Spirin пишет:

 цитата:
Кстати, в FRH есть EvalMacro(). Поэтому, в мемо отчета пишите, например:

[EvalMacro('MAR_ADRES(6) + ALLTRIM(FIELD->FIO) + New_TelFIO()')]



А можно передать в отчет переменную bBlok, а вызвать потом [EvalMacro(bBlok)] ?


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


Пост N: 171
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 28.05.08 23:18. Заголовок: Andrey пишет: Дело ..


Andrey пишет:

 цитата:
Дело в том что у меня есть уже куча отчетов под Word и Excel'ем, а там уже есть готовые ини-файлы



Ну, с этого и начинали бы, что это до_фастовское наследие

Andrey пишет:

 цитата:
А можно передать в отчет переменную bBlok, а вызвать потом [EvalMacro(bBlok)] ?



Это же просто строка, конечно, можно и как отчетную перемнную (AddVariable) или прочитать из Harbour-переменной GetHbVar().





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


Пост N: 93
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 03.06.08 21:49. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Возможным русскоязычных покупателей лучше контактировать со мной напрямую по email. Цена для оплаты в рублях банковским переводом по выставленному счету- 9999 рублей.


Сергей! Есть желание купить FRH. Действительна ли цена в 9999р.? Какое мыло у Вас, spirin...paritet...?

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


Пост N: 172
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 03.06.08 23:48. Заголовок: PSP пишет: Сергей! ..


PSP пишет:

 цитата:
Сергей! Есть желание купить FRH. Действительна ли цена в 9999р.?



Да, действительна.

PSP пишет:

 цитата:
Какое мыло у Вас, spirin...paritet...?



Да. Точнее всегда можно глянуть:

http://www.paritetsoft.ru/frh.htm

Так что пишите.


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


Пост N: 94
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 06.06.08 15:27. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Так что пишите.


Check e-mail, please...

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


Пост N: 173
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 06.06.08 19:51. Заголовок: PSP пишет: Check e-..


PSP пишет:

 цитата:
Check e-mail, please...



Checked and answered

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


Пост N: 174
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 09.06.08 15:30. Заголовок: Здравствуйте, Как..


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

Как показыват практика, первое, что хочет напечатать FRH-user (особенно буржуйский) это Invoice. И в последнее время, много просьб сделать примеры разнообразных инвойсов. Нет ли у кого-нибудь данных (желательно на английском), которые можно использовать для такого мини-демо? Или, может быть, есть наработки красивых счетов и т.п.?

Спирин Сергей.

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




Пост N: 796
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 09.06.08 16:22. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Нет ли у кого-нибудь данных (желательно на английском), которые можно использовать для такого мини-демо?


Посмотрите в качестве образца пример Bill of landing из поставки PAGESCRIPT 32 demo по адресу:

http://www.abeelabs.com/downloads/ps32demo/ps32demo.zip

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




Пост N: 931
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.06.08 12:50. Заголовок: Сергей, можно ли как..


Сергей, можно ли как-то достучаться из Харбор-программы к свойству TfmReport.Modified ? И поддерживается ли оно в frh вообще ?
Или как можно определить другим способом, изменился ли отчет после работы
oFrh:DesignReport() ?



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


Пост N: 175
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 13.06.08 10:57. Заголовок: Pasha пишет: Сергей..


Pasha пишет:

 цитата:
Сергей, можно ли как-то достучаться из Харбор-программы к свойству TfmReport.Modified ? И поддерживается ли оно в frh вообще ?
Или как можно определить другим способом, изменился ли отчет после работы
oFrh:DesignReport() ?



Report.Modified - это publiс свойство, а не published, поэтому через GetProperty его не прочитать. Вообще, по коду это свойство используется дизайнером для определения, нужно ли вызывать диалог сохранения или нет. А вот это событие перехватить можно. Смотрите событие OnSaveReport. То есть, если отчет был изменен, или пользователь нажал сохранить как, то это это событие произойдет. Нюанс в том, что в обработчике Вы должны сохранить отчет уже самостоятельно, вызвав один из методов SaveToXXX. На FRH-странице есть пример работы с блобами где все это используется.






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




Пост N: 934
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 13.06.08 12:13. Заголовок: Спасибо, буду перехв..


Спасибо, буду перехватывать OnSaveReport
Я решил хранить отчеты в Blob-полях, вот мне и надо, чтобы отработать SaveToBlob

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



Пост N: 19
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 23.06.08 18:20. Заголовок: Сергей, помогите раз..


Сергей, помогите разобраться с Demo примером. Интересует отчёт "More complex" in FR only (функция DoMoreComplex). Интересует каким образом задается сбор содержания по полю Customers."Company"? Понятно, что это связано с вкладкой "Contents", но в своём отчёте такую вкладку создать не смог.


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


Пост N: 177
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 23.06.08 19:38. Заголовок: TimTim пишет: Серге..


TimTim пишет:

 цитата:
Сергей, помогите разобраться с Demo примером. Интересует отчёт "More complex" in FR only (функция DoMoreComplex). Интересует каким образом задается сбор содержания по полю Customers."Company"? Понятно, что это связано с вкладкой "Contents", но в своём отчёте такую вкладку создать не смог.



Вкладка называется страницей (Page). Чтобы добавить, просто в меню "Файл"-"Новая страница". Отчет может содержать сколько угодно много таких логических страниц.

Далее, обратите внимание, что отчет двухпроходный. Сначала производится "расстановка" Anchor-ов в:

procedure Band4OnBeforePrint(Sender: TfrxComponent);
begin
Engine.AddAnchor(<Customers."Company">);
end;

Anchor-ы именованные, то есть каждый получает имя по названию компании.

И потом с помощью:

[Engine.GetAnchorPage(<Customers."Company">)]

"вытаскиваются" номера страниц на которых эти Anchor-ы расположились.


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



Пост N: 20
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 24.06.08 08:56. Заголовок: Вроде сделал как в п..


Вроде сделал как в примере, но видно что-то не так.
Ошибка
"Нет дата-бэнда для группы GroupHeader1"

И вопрос. Наверное не играет роли где стоит вкладка "Content" - (я тоже так её обозвал) до или после Page1 - страниц отчёта? У меня после.
Пояснение. В отличие от примера у меня названия, которые должны собираться в содержании, находятся в другой БД, которая связана с основной по RELATION. В отчёте без содержания все OK.

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


Пост N: 178
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 24.06.08 09:45. Заголовок: TimTim пишет: Вроде..


TimTim пишет:

 цитата:
Вроде сделал как в примере, но видно что-то не так.
Ошибка
"Нет дата-бэнда для группы GroupHeader1"



Ну, нет так добавьте В примере - это MasterData с нулевой высотой. Конечно, группа может образовывается только на данных. Группа здесь вообще используется только на случай, если названия могут дублироваться, то есть удаляет дубликаты.

TimTim пишет:

 цитата:
И вопрос. Наверное не играет роли где стоит вкладка "Content" - (я тоже так её обозвал) до или после Page1 - страниц отчёта? У меня после.



Если стоит после, то печататься будет после. Вам так надо? Если нет, то перетащите мышкой в начало. Если да, то в этом случае отчет может быть и однопроходным.


TimTim пишет:

 цитата:
Пояснение. В отличие от примера у меня названия, которые должны собираться в содержании, находятся в другой БД, которая связана с основной по RELATION. В отчёте без содержания все OK.



Да нет проблем. Если в отчете все нормально, то значит про SetResyncPair() не забыли?


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



Пост N: 21
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 24.06.08 16:09. Заголовок: Спасибо! Теперь и со..


Спасибо! Теперь и содержание собирает, но указывает неверные номера страниц.
Sergey Spirin пишет:

 цитата:
В примере - это MasterData с нулевой высотой


А что такое нулевая высота?
Кстати, в демо отчете небольшая неувязочка. Для компании "Diver's Grotto" неверно указана страница и вообще про неё нет данных, хотя в БД она вроде есть.

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


Пост N: 179
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 24.06.08 17:17. Заголовок: TimTim пишет: Спаси..


TimTim пишет:

 цитата:
Спасибо! Теперь и содержание собирает, но указывает неверные номера страниц.



Значит кто-то неверно их проставляет Информации давайте больше.

TimTim пишет:

 цитата:
А что такое нулевая высота?



Height = 0, в примере MasterData1.

TimTim пишет:

 цитата:
Кстати, в демо отчете небольшая неувязочка. Для компании "Diver's Grotto" неверно указана страница и вообще про неё нет данных, хотя в БД она вроде есть.



Да, действительно. Просто у компании "Diver's Grotto" нет ни одного заказа. Можете добавить:

procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
begin
GroupHeader1.Visible := Engine.GetAnchorPage(<Customers."Company">) > 1;
end;

И будет все хорошо. "Diver's Grotto" не будет в оглавлении. Она появится когда у нее появятся заказы.


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



Пост N: 22
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 24.06.08 22:22. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Информации давайте больше.


Примерно так. В основной БД есть поле KOD, по которому она отсортированаи по этому же полю по RELATION соединена с БД с полями KOD и NAIMEN-наименования. Вот эти наименования я и пытаюсь собрать в оглавление. Номера страниц в оглавлении такие: на первой стр-це все номера 1, а на второй 2, хотя отчёт собирается правильно. Наименование, затем список, наименование, список и т.д. Все на разных страницах.
Sergey Spirin пишет:

 цитата:
Можете добавить:


Добавил. Никакой реакции

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


Пост N: 180
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 24.06.08 23:47. Заголовок: TimTim пишет: Serge..


TimTim пишет:

 цитата:
Sergey Spirin пишет:

цитата:
Информации давайте больше.



Примерно так. В основной БД есть поле KOD, по которому она отсортированаи по этому же полю по RELATION соединена с БД с полями KOD и NAIMEN-наименования. Вот эти наименования я и пытаюсь собрать в оглавление. Номера страниц в оглавлении такие: на первой стр-це все номера 1, а на второй 2, хотя отчёт собирается правильно. Наименование, затем список, наименование, список и т.д. Все на разных страницах.
Sergey Spirin пишет:

цитата:
Можете добавить:



Добавил. Никакой реакции




Похоже, что вы неясно себе представляете, что такое "обработчик события". Для того чтобы создать обработчик, делайте например так:

Выделите мышкой, например ваш MasterData в основном отчете. Перейдите в инспектор объектов. Выберите вкладку Events (события). Напротив OnBeforePrint щелкните двойным щелчком в пустом Edit-е. Будет создан шаблон, типа:

procedure Band4OnBeforePrint(Sender: TfrxComponent);
begin

end;

В него уже и вписываете:

Engine.AddAnchor(<Customers."Company">); // таблица/поле из демо

Имеющий обработчик объект помечается красным треугольничком.

Если процедуру уже скопировали целиком, то нужно там же в инспекторе ее выбрать как обработчик события.

Аналогично с GroupHeader.

Понятно?


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



Пост N: 23
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 25.06.08 11:39. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Похоже, что вы неясно себе представляете, что такое "обработчик события".

Не буду лукавить, это действительно так. Поэтому заранее спасибо за терпение.
В отчёте всё подправил. Всё OK! Ура! И в демо примере тоже.
Спасибо!

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



Пост N: 24
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 01.07.08 23:57. Заголовок: Можно ли поправить


Придетальном рассмотрении отчёта все таки есть небольшие "но"
Во-первых, почему-то страница последней группы в содержании отображается как 0. В чём тут может быть дело?
Во-вторых, у меня для каждой группы есть название и шапка (заголовки колонок) для таблицы. Когда начинается группа, то печатается название и шапка и затем строки группы. Если группа длинная, то может перейти на следующую страницу. Но, к сожалению, мне не удалось сделать так, чтобы шапка печаталась на продолжении группы на новой странице. Например, когда использую свойство KeepTogether для бэнда GroupeHeader, то всё равно для больших групп шапка так и не печатается. Что тут можно сделать?

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


Пост N: 181
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 03.07.08 00:06. Заголовок: Во-первых, почему-то..



 цитата:
Во-первых, почему-то страница последней группы в содержании отображается как 0. В чём тут может быть дело?



Не знаю, пришлите мне отчет, лучше с данными и кодом инициализации отчета.


 цитата:
Во-вторых, у меня для каждой группы есть название и шапка (заголовки колонок) для таблицы. Когда начинается группа, то печатается название и шапка и затем строки группы. Если группа длинная, то может перейти на следующую страницу. Но, к сожалению, мне не удалось сделать так, чтобы шапка печаталась на продолжении группы на новой странице. Например, когда использую свойство KeepTogether для бэнда GroupeHeader, то всё равно для больших групп шапка так и не печатается. Что тут можно сделать?



Ну, если есть нетривиальное желание скрестить GroupHeader с PageHeader, то это надо обработать скриптом-напильником

Присылайте отчет, я посмотрю.

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



Пост N: 25
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 03.07.08 22:18. Заголовок: Выслал на ваш email!..


Выслал на ваш email!

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




Пост N: 607
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.07.08 01:24. Заголовок: Подскажите пожалуйст..


Подскажите пожалуйста, а могу ли я через FastReport печатать свои текстовые файлы OEM или WIN кодировки ?
Как можно сделать универсальный шаблон на все файлы ?

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


Пост N: 182
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 04.07.08 14:23. Заголовок: Andrey пишет: Подск..


Andrey пишет:

 цитата:
Подскажите пожалуйста, а могу ли я через FastReport печатать свои текстовые файлы OEM или WIN кодировки ?



Почему нет?

Andrey пишет:

 цитата:
Как можно сделать универсальный шаблон на все файлы ?




Кладете ReportTittle, на него мемо во всю ширину, оба чтоб были растягиваемыми. Вот, собственно, и все. Грузите теперь файлы в мемо.



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


Пост N: 183
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 04.07.08 14:25. Заголовок: TimTim пишет: Высла..


TimTim пишет:

 цитата:
Выслал на ваш email!



Взаимно

Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 1
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.07.08 23:09. Заголовок: Сергей обнаружил в F..


Сергей обнаружил в FastReport for [x]Harbour ошибку Accsess violation.
Порядок действий таков:
загружаю таблицу(не важно через Harbour или Dataset)
кидаю MacterData Band и на него пару полей
предворительный просмотр и export Text(matrix printer)
указываю 1 страничку,OEm и печать после экспорта,ввожу имя файла,выбираю тип принтера Epson и жму Ok
Превый раз все проходит хорошо.Но если это все проделать еще раз из окна просмотра появится ошибка.
И вдогонку еще один вопрос:
Dataset свойство есть у отчета,страницы и у бандов
если везде установить выдает ошибку типо нельзя так
Так зачем столько дублирующих свойств и где правильно его установить



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


Пост N: 191
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.07.08 10:08. Заголовок: viktorlvv пишет: Се..


viktorlvv пишет:

 цитата:
Сергей обнаружил в FastReport for [x]Harbour ошибку Accsess violation.
Порядок действий таков:
загружаю таблицу(не важно через Harbour или Dataset)
кидаю MacterData Band и на него пару полей
предворительный просмотр и export Text(matrix printer)
указываю 1 страничку,OEm и печать после экспорта,ввожу имя файла,выбираю тип принтера Epson и жму Ok
Превый раз все проходит хорошо.Но если это все проделать еще раз из окна просмотра появится ошибка.



Ok. Попытаюсь повторить, если ошибка, то исправим


viktorlvv пишет:

 цитата:
Dataset свойство есть у отчета,страницы и у бандов
если везде установить выдает ошибку типо нельзя так
Так зачем столько дублирующих свойств и где правильно его установить



В 99,9% случаев устанавливайте для бэндов. Для страницы и отчета - это для каких-то спецефичных отчетов, на вскидку уже не вспомню для каких.


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



Пост N: 2
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.07.08 11:24. Заголовок: еще хотел бы уточнит..


еще хотел бы уточнить насчет установки свойств экспорта
i=FrPrn:SetProperty("DotMatrixExport", "EscModel", 2)
i=FrPrn:SetProperty("DotMatrixExport", "OEMConvert", .t.)
вызываю до ShowReport
по возвращаемому значению видно что сработали но когда делаю экспорт остаются старые значения


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


Пост N: 193
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.07.08 16:58. Заголовок: viktorlvv пишет: Се..


viktorlvv пишет:

 цитата:
Сергей обнаружил в FastReport for [x]Harbour ошибку Accsess violation.
Порядок действий таков:
загружаю таблицу(не важно через Harbour или Dataset)...........



Да. Повторяется. Ok, напишу в саппорт.

viktorlvv пишет:

 цитата:
еще хотел бы уточнить насчет установки свойств экспорта
i=FrPrn:SetProperty("DotMatrixExport", "EscModel", 2)
i=FrPrn:SetProperty("DotMatrixExport", "OEMConvert", .t.)
вызываю до ShowReport
по возвращаемому значению видно что сработали но когда делаю экспорт остаются старые значения



Этот экспорт делает TXTExport, поэтому:

FrPrn:SetProperty("TXTExport", "OEMCodepage", .t.)

Вообще, свойства у него такие:

published
property ScaleWidth: Extended read expScaleX write expScaleX;
property ScaleHeight: Extended read expScaleY write expScaleY;
property Borders: Boolean read expBorders write expBorders;
property Pseudogrpahic: Boolean read expBordersGraph write expBordersGraph;
property PageBreaks: Boolean read expPageBreaks write expPageBreaks;
property OEMCodepage: Boolean read expOEM write expOEM;
property EmptyLines: Boolean read expEmptyLines write expEmptyLines;
property LeadSpaces: Boolean read expLeadSpaces write expLeadSpaces;
property PrintAfter: Boolean read expPrintAfter write expPrintAfter;
property PrinterDialog: Boolean read expPrinterDialog write expPrinterDialog;
property UseSavedProps: Boolean read expUseSavedProps write expUseSavedProps;
property InitString: String read PrinterInitString write PrinterInitString;
property CustomFrameSet: String read expCustomFrameSet write expCustomFrameSet;
end;


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



Пост N: 3
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.07.08 15:33. Заголовок: спасибо за помощь - ..


спасибо за помощь - это все работает
Остается вопрос как настроить второй диалог выбора матричного принтера и его настройка
FrPrn:SetProperty("TXTExport", "EscModel", 2)
это свойство не работает
Что означает переключатели внизу под выбранным принтером.Как будет печатать если я установлю птичку Bold(или сниму)
Как поисходит маштабирование по оси Y(по оси х понятно - за счет обрезания стоки,добавление пробелов)
при увеличении ( 120 ) выдает ошибку Accsess violation при уменьшении - пустую страницу




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


Пост N: 195
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 18.07.08 19:27. Заголовок: viktorlvv пишет: сп..


viktorlvv пишет:

 цитата:
спасибо за помощь - это все работает
Остается вопрос как настроить второй диалог выбора матричного принтера и его настройка
FrPrn:SetProperty("TXTExport", "EscModel", 2)
это свойство не работает



Во всех исходниках Fast-а, свойство "EscModel" имеет только DotMatrixExport.

viktorlvv пишет:

 цитата:
Что означает переключатели внизу под выбранным принтером.Как будет печатать если я установлю птичку Bold(или сниму)
Как поисходит маштабирование по оси Y(по оси х понятно - за счет обрезания стоки,добавление пробелов)
при увеличении ( 120 ) выдает ошибку Accsess violation при уменьшении - пустую страницу



С матричной проблематикой я Вам ничем не помогу. Однако, мне кажется, что вы пошли неверным путем. Если Вам нужны матричные отчеты, то и создавайте матричные отчеты. Это Меню Файл-> Новый->Пустой матричный отчет. В этом отчете все для для матрицы у вас будет.

С просто же экспортом вы "далеко не уедете". Экспорт вам ничего не гарантирует, это просто экспорт с понятными потерями и накладками при преобразованиях графики в текст.

При Accsess violation можете сразу писать в саппорт FastReport. Такие ошибки правяться быстро.






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



Пост N: 4
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.07.08 22:25. Заголовок: саппорт FastReport э..


саппорт FastReport это куда ?
В англоязызную поддержху? Попробуй им изложить суть проблемы на моем ломаном англиском
А Вы разве не в ходите в группу поддержки?
Сам продукт не плох.javascript:pst3(' ','','','','')
Есть маленькие недоработки.
В данном случае просто иногда надо вывести нормальный отчет бысто на матричный принтер
понятно что с потерями но ВЫВЕСТИ!И причем хочется управлять этим процессом программо
А я так не не понял как.TXTExport работает наполовину DotMatrixExport вобже не работает
Сергей посодействуйте и зделайте так чтоб продукт работак так как заложили проэктировщики





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



Пост N: 5
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.07.08 22:45. Заголовок: и еще не понятен для..


и еще не понятен для чего нужен диалог согранения файла если мне надо вывести отчет на печать?

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


Пост N: 196
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 19.07.08 00:08. Заголовок: viktorlvv пишет: са..


viktorlvv пишет:

 цитата:
саппорт FastReport это куда ?
В англоязызную поддержху? Попробуй им изложить суть проблемы на моем ломаном англиском
А Вы разве не в ходите в группу поддержки?



Ах, да, саппорт работает только для купивших. Насчет же ломанного английского откуда такие представления? Ответ тоже не на чистейшем получите У всей поддержки родной язык - русский.

Fast Reports Inc, абсолютно российская компания из Ростова-на-Дону, все в ней работающие - русские Даже в эбауте стоит в первую очередь копирайт Саши Цыганенко, исторического автора FR, одного из лучших Дельфистов страны. Иностранцы (Горд, Херберт и Коул (те кого я знаю)) работают только на поддержке в англоязычных конфах.

Я - OEM-партнер FastReport, моя зона ответственности Alaska и Harbour, что там в матрице, конечно, я и не знаю.

viktorlvv пишет:

 цитата:
Сам продукт не плох.javascript:pst3(' ','','','','')
Есть маленькие недоработки.
В данном случае просто иногда надо вывести нормальный отчет бысто на матричный принтер
понятно что с потерями но ВЫВЕСТИ!И причем хочется управлять этим процессом программо
А я так не не понял как.TXTExport работает наполовину DotMatrixExport вобже не работает
Сергей посодействуйте и зделайте так чтоб продукт работак так как заложили проэктировщики



За продукт - спасибо

DotMatrixExport - это печать именно матричного отчета. Почему печать такого отчета назвали экспортом не знаю, но догадываюсь :)

Ok, на досуге продебажу этот экспорт и посмотрю, что там к чему.

viktorlvv пишет:

 цитата:
и еще не понятен для чего нужен диалог согранения файла если мне надо вывести отчет на печать?



Потому что это экспорт в файл в первую очередь, потом уже кому-то пришло в голову печатать это на матрицу.


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



Пост N: 6
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.07.08 10:02. Заголовок: Я и не сомневался чт..


Я и не сомневался что у вас профи работают :)
Вот и хочу чтоб исправили эту маленькую недоработку с экспортом
Причем думаю что для Делфи и С этих проблем нет
есть только для Харбор потому что недавно сделали

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


Пост N: 197
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 19.07.08 11:03. Заголовок: viktorlvv пишет: Во..


viktorlvv пишет:

 цитата:
Вот и хочу чтоб исправили эту маленькую недоработку с экспортом
Причем думаю что для Делфи и С этих проблем нет
есть только для Харбор потому что недавно сделали



Нет, это невозможно, код FastReport VCL у меня компилируется без единого исправления. Мой код - это код взаимодействия с Харбором. Так что баг существует везде, просто этот экспорт редко реально используется.

Ok. Про Accsess violation я в саппорт кинул. Как выставить тип принтера программно для этого диалога посмотрю.



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



Пост N: 7
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.07.08 18:15. Заголовок: Спасибо Сергей.Отпиш..


Спасибо Сергей.Отпишись пожалуста когда профиксят

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


Пост N: 200
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 06.08.08 12:19. Заголовок: C 6-го по 25-е авгус..


C 6-го по 25-е августа буду в отпуске. В это время продажи и обновления персональных копий FRH производиться не будут.

Но, надеюсь, что просматривать конфы буду регулярно.

--
Спирин Сергей.

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




Пост N: 644
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.08.08 23:36. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

цитата:
Кстати можно обсудить набор наиболее используемых функций и я добавлю их в FRH, чтобы не добавлять кодом.

Sergey Spirin пишет:

цитата:
По умолчанию же, думаю, можно добавить не более десятка наиболее часто используемых. С этим десятком нужно определиться.


Определяемся:
ALLTRIM()
PADC()
PADL()
PADR()
TRANSFORM()
MEMOTRAN()
MEMOLINE()
DTOC()
STR()
VAL()
IIF()
CHR()


Когда будет это сделано ???
Начал переделывать отчеты и затык.... слишком уж часто пользуюсь стандартными функциями !!!
Я думаю, что и другие тоже пользуются этим....

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




Пост N: 650
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.08.08 23:12. Заголовок: И еще один вопрос: К..


И еще один вопрос:
Как сделать отчет только из одной текущей записи в БД ?
Где и как указать что печатать только одну запись ?
Приятного отдыха ....

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


Пост N: 202
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 13.09.08 10:50. Заголовок: Здравствуйте, Андрей..


Здравствуйте, Андрей,

Andrey пишет:

 цитата:
Определяемся:
ALLTRIM()
PADC()
PADL()
PADR()
TRANSFORM()
MEMOTRAN()
MEMOLINE()
DTOC()
STR()
VAL()
IIF()
CHR()



Дело в том, что добавить все эти функции большого труда не составляет, поэтому многие пользователи уже это себе добавили. Получается ситуация, что если я это добавлю прямо в поставку, я просто много задублирую. Поэтому я не стал этого делать. В принципе, можно будет сделать просто дополнительный пример.....

Andrey пишет:

 цитата:
И еще один вопрос:
Как сделать отчет только из одной текущей записи в БД ?
Где и как указать что печатать только одну запись ?



Смотрите четвертый параметр в SetWorkArea, либо RangeXXX-свойства в frxHarbourWorkArea.





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




Пост N: 662
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.09.08 11:04. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
поэтому многие пользователи уже это себе добавили.


И кто-же добавил ?
Очень в этом сомневаюсь. Лучше иметь в единной (от вас) поставке ...
Кто против добавления ??? Давайте сообщайте здесь.....

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


Пост N: 203
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 15.09.08 23:12. Заголовок: Andrey пишет: И кто..


Andrey пишет:

 цитата:
И кто-же добавил ?
Очень в этом сомневаюсь. Лучше иметь в единной (от вас) поставке ...
Кто против добавления ??? Давайте сообщайте здесь.....



Андрей, русскоязычных пользователей всего 6 (4 изначальных + 2-ое купивших). Ясно же, что я говорю про испанцев с португальцами (основная масса). Многие добавляют, почему нет? Да чего там сложного? Вы же уже сами свои функции добавляли же. Дел то. Если что-то не получается - спрашивайте.




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




Пост N: 663
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.09.08 16:33. Заголовок: Подскажите пожалуйст..


Подскажите пожалуйста, как сделать свою функцию по добавлению след.
переменных и функций:

Не буду же я всегда писать один и тот же код во многих местах....

//-------- add XBase++ vars to FastReport ---------------------
FrPrn:AddVariable( "My Lovely Vars", "MyPathRes", "'"+myPathRes+"'" )
FrPrn:AddVariable( "My Lovely Vars", "MyFirma" , "'"+MyFirma+"'" )
FrPrn:AddVariable( "My Lovely Vars", "MyAdres" , "'"+MyAdres+"'" )
FrPrn:AddVariable( "My Lovely Vars", "MyTelefon", "'"+MyTelefon+"'" )
FrPrn:AddVariable( "My Lovely Vars", "MyNumba" , MyNumba )
FrPrn:AddVariable( "My Lovely Vars", "MyLogoFirma", "'"+MyLogoFirma+"'" )
..... и еще куча переменных
FrPrn:SetEventHandler( "Report", "OnUserFunction", { | FName, FParams | CallUserFunction( FName, FParams ) } )
FrPrn:AddFunction( "function XBaseStr(nValue: Double, nLength: Variant = EmptyVar, nDecimals: Variant = EmptyVar): Variant", ;
"My Lovely Functions!", "It's a XBase Str() function!" )
FrPrn:AddFunction( "function Say_Sel_Dim(nKod: Variant; cAlias: String ; cPole: String; lAnsi: Boolean ): String", ;
"My Lovely Functions!", "Samle: Say_Sel_Dim(<BASE.chr(34)+POLE+chr(34)>,'City','City',.T.)" )


Будет ли работать этот код ?

Function MyFastReport()
Private FrPrn

//----------- Now load and init FastReport --------------------------------------
FrPrn:= frReportManager():new()
FrPrn:SetIcon( "FASTREP_ICO" )
FrPrn:SetTitle( cTitle + cFileForm )
.......

FrPrn := MyAddVar_AddFun()
...... далее текст программы


RETURN NIL
///////////////////////////////
FUNCTION MyAddVar_AddFun()
LOCAL aPrn := {}
aPrn:AddVariable( "My Lovely Vars", "MyPathRes", "'"+myPathRes+"'" )
aPrn:AddVariable( "My Lovely Vars", "MyFirma" , "'"+MyFirma+"'" )
aPrn:AddVariable( "My Lovely Vars", "MyAdres" , "'"+MyAdres+"'" )
.......... ..... и еще куча переменных
aPrn:SetEventHandler( "Report", "OnUserFunction", { | FName, FParams | CallUserFunction( FName, FParams ) } )
aPrn:AddFunction( "function XBaseStr(nValue: Double, nLength: Variant = EmptyVar, nDecimals: Variant = EmptyVar): Variant", ;
"My Lovely Functions!", "It's a XBase Str() function!" )
RETURN aPrn


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


Пост N: 204
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 16.09.08 19:26. Заголовок: Andrey пишет: Будет..


Andrey пишет:

 цитата:
Будет ли работать этот код ?

Function MyFastReport()
Private FrPrn

//----------- Now load and init FastReport --------------------------------------
FrPrn:= frReportManager():new()
FrPrn:SetIcon( "FASTREP_ICO" )
FrPrn:SetTitle( cTitle + cFileForm )
.......

FrPrn := MyAddVar_AddFun()
...... далее текст программы


RETURN NIL
///////////////////////////////
FUNCTION MyAddVar_AddFun()
LOCAL aPrn := {}
aPrn:AddVariable( "My Lovely Vars", "MyPathRes", "'"+myPathRes+"'" )
aPrn:AddVariable( "My Lovely Vars", "MyFirma" , "'"+MyFirma+"'" )
aPrn:AddVariable( "My Lovely Vars", "MyAdres" , "'"+MyAdres+"'" )
.......... ..... и еще куча переменных
aPrn:SetEventHandler( "Report", "OnUserFunction", { | FName, FParams | CallUserFunction( FName, FParams ) } )
aPrn:AddFunction( "function XBaseStr(nValue: Double, nLength: Variant = EmptyVar, nDecimals: Variant = EmptyVar): Variant", ;
"My Lovely Functions!", "It's a XBase Str() function!" )
RETURN aPrn



Круто Сами то не попробовали?

Конечно, такое работать не будет, делайте так:

...
FrPrn:= frReportManager():new()
InitFR(FrPrn)
...

FUNCTION InitFr(oFrMng)

oFrMng:SetIcon( "FASTREP_ICO" )
oFrMng:AddVariable( "My Lovely Vars", "MyPathRes", "'"+myPathRes+"'" )
.........................

RETURN nil



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




Пост N: 665
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.09.08 20:08. Заголовок: Спасибо !!! :sm12: ..


Спасибо !!!

Но здесь есть одно но ! Объявление переменных должны идти после загрузки формы !
Это вы писали.....

InitFr(@FrPrn) // @ - ссылка на объект для изменения его внутри вызываемой функции
//----------- Load file form FastReport ----------------------
FrPrn:LoadFromFile( cFileForm )

InitFrVars(@FrPrn) ???
----------------------
Сделал ! Работает ....

Только одну вещь подметил, что Public переменные "затолкнутые" в форму FastReport сохраняются там навсегда. И в принципе их потом можно не "заталкивать" !!!



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




Пост N: 666
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.09.08 20:13. Заголовок: Можно ли выборку по ..


Можно ли выборку по базе "возложить" на FastReport ?


Типа мне нужно по открытой базе (30 000 записей) по уже готовой выборке (по индексному файлу)
распечатать в FastReport'e эту выборку, но с еще доп.условием типа: FIELD->SummDolg < -10 !

Какой код получиться ???

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


Пост N: 205
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 16.09.08 23:04. Заголовок: Andrey пишет: Спаси..


Andrey пишет:

 цитата:
Спасибо !!!

Но здесь есть одно но ! Объявление переменных должны идти после загрузки формы !
Это вы писали.....

InitFr(@FrPrn) // @ - ссылка на объект для изменения его внутри вызываемой функции
//----------- Load file form FastReport ----------------------
FrPrn:LoadFromFile( cFileForm )

InitFrVars(@FrPrn) ???
----------------------
Сделал ! Работает ....



Можно и со второй InitFrVars(), а можно FUNCTION InitFr(oFrMng, сFileName) и т.д. Это уж как вам удобно.

Кстати @ - не нужен. Объект - это уже указатель, писать указатель на указатель (ссылку на ссылку) это на микроны затормозить. Хотя, может в Харбуре и есть специфика, я сужу по Pascal/С.

Andrey пишет:

 цитата:
Только одну вещь подметил, что Public переменные "затолкнутые" в форму FastReport сохраняются там навсегда. И в принципе их потом можно не "заталкивать" !!!



Нет, плохо подметили. В отчете сохраняются переменные и их значения на момент дизайна. Без AddVariable() будете видеть все время их.

Andrey пишет:

 цитата:
Можно ли выборку по базе "возложить" на FastReport ?


Типа мне нужно по открытой базе (30 000 записей) по уже готовой выборке (по индексному файлу)
распечатать в FastReport'e эту выборку, но с еще доп.условием типа: FIELD->SummDolg < -10 !

Какой код получиться ???



Можно:

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
MasterData1.Visible := <Customers."CUSTNO"> = 1354;
end;




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




Пост N: 668
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.08 00:10. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
MasterData1.Visible := <Customers."CUSTNO"> = 1354;



А с моим условием можете написать ?
Я не силен в паскале....

1) Вопрос: Мне нужно из Харбора в паскаль перевести такое выражение:
( ( FIELD->KTarif == 1 .OR. FIELD->KTarif == 4) .AND. FIELD->DOLG_2008 < -150 ) .OR. ( FIELD->KTarif == 2 .AND. FIELD->DOLG_2008 < -30 )

2) Вопрос:
Я бы это условие затолкал бы в Public переменную и передавал бы в "Фаст".
А как тогда будет выглядеть это УСЛОВИЕ в Фасте ?

Третий день бодаюсь с Фастом, не могу заставить печатать....
Уже сделал отдельный пример, вышлю вам на ящик наверно...




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


Пост N: 206
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.09.08 00:35. Заголовок: Andrey пишет: А с м..


Andrey пишет:

 цитата:
А с моим условием можете написать ?
Я не силен в паскале....



procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
MasterData1.Visible := <MyTable."SummDolg"> < -10;
end;

Andrey пишет:

 цитата:
1) Вопрос: Мне нужно из Харбора в паскаль перевести такое выражение:
( ( FIELD->KTarif == 1 .OR. FIELD->KTarif == 4) .AND. FIELD->DOLG_2008 < -150 ) .OR. ( FIELD->KTarif == 2 .AND. FIELD->DOLG_2008 < -30 )



((( <MyTable."KTarif"> = 1) or (<MyTable."KTarif"> = 4)) and (<MyTable."DOLG_2008"> < -150)) or ((<MyTable."KTarif"> = 2) and (<MyTable."DOLG_2008"> < -30))

and, or, xor, not являются также побитовыми операторами, поэтому например:

(1 or 2 = 3) - это нормальное выражение,

поэтому, при "перемешке" с =, <,> и т.д.нужны скобки

Andrey пишет:

 цитата:
2) Вопрос:
Я бы это условие затолкал бы в Public переменную и передавал бы в "Фаст".
А как тогда будет выглядеть это УСЛОВИЕ в Фасте ?



MasterData1.Visible := EvalMacro(GetHbVar('MyVar'));



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




Пост N: 669
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.08 00:35. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
MasterData1.Visible := <Customers."CUSTNO"> = 1354;
end;



Нифига не работает !!!

В печати "чистые" страницы если не попадает под условие <ABONENT."DOLG_2008"> < -100


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




Пост N: 670
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.08 00:40. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
цитата:
Я бы это условие затолкал бы в Public переменную и передавал бы в "Фаст".
А как тогда будет выглядеть это УСЛОВИЕ в Фасте ?

MasterData1.Visible := EvalMacro(GetHbVar('MyVar'));




А переменную MyVar мне как "готовить" по Паскалю или Харбору ?


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


Пост N: 207
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.09.08 00:55. Заголовок: Andrey пишет: Нифиг..


Andrey пишет:

 цитата:
Нифига не работает !!!
В печати "чистые" страницы если не попадает под условие <ABONENT."DOLG_2008"> < -100



Ищите ошибку.

Andrey пишет:

 цитата:
А переменную MyVar мне как "готовить" по Паскалю или Харбору ?



GetHbVar - берет содержимое Харбор переменный
EvalMacro - выполняет Харбор-макрос

И как думаете?

Ладно, присылайте, утром посмотрю.


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




Пост N: 671
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.08 13:44. Заголовок: Залез на сайт FastRe..


Залез на сайт FastReport и обалдел....
Сколько типов графиков в компоненте Chart там есть....


А у нас только один "Standart" ...
А когда у нас ОНИ БУДУТ ???

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


Пост N: 208
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.09.08 17:54. Заголовок: Andrey пишет: Залез..


Andrey пишет:

 цитата:
Залез на сайт FastReport и обалдел....
Сколько типов графиков в компоненте Chart там есть....


А у нас только один "Standart" ...
А когда у нас ОНИ БУДУТ ???



Хоть завтра, удовольствие стоит 700$.

Я не шучу Все Чарты реализуются библиотекой TeeChart. TeeChart Standard - это часть Delphi. TeeChart Professional - за дополнительные деньги.

Я с ними (TeeChart - испанская компания), кстати, уже вел переговоры, объясняя надобность. Скидку на клиента они давали, но все равно получалось, что FRH/FRAX с TeeChart Professional должен был бы стоить более, чем в 2 раза дороже.




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




Пост N: 675
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.08 19:02. Заголовок: Это к Fast'y еще..


Это к Fast'y еще 700 баксов ???

Блин.... Жмоты они .... баксов 200 бы может и отдал, а 700 - ну уж нет....
Никому из моих заказчиков графики ЗА ТАКИЕ ДЕНЬГИ !!! - они (заказчики) просто удавятся.




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


Пост N: 209
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.09.08 19:45. Заголовок: Andrey пишет: Это к..


Andrey пишет:

 цитата:
Это к Fast'y еще 700 баксов ???



Почему к Фасту, это к Delphi, если хочется хорошие чарты, в том числе и в Фасте. Кстати, сейчас глянул, немного подешевело 579$:

http://www.teechart.com/ordering/order_tchpro8vcl_n.shtml

Andrey пишет:

 цитата:
Блин.... Жмоты они .... баксов 200 бы может и отдал, а 700 - ну уж нет....
Никому из моих заказчиков графики ЗА ТАКИЕ ДЕНЬГИ !!! - они (заказчики) просто удавятся.



Кто жмоты? Испанцы или заказчики? Вообще-то, испанцы продают за ту цену за которую у них покупают, не более. А заказчикам, если это не нужно за эти деньги, то и не нужно...

Кстати, для вас это была бы цена за всех заказчиков, так как это developer-лицензия. За профессиональную Chart-библиотеку это не сказать, что сильно дорого. Просто "нужно" и "хочется" - вещи разные.




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




Пост N: 676
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.09.08 20:23. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Кстати, для вас это была бы цена за всех заказчиков, так как это developer-лицензия.


Да я понимаю, что для меня это было бы дешевле.... Только на графиках я бы сделал от силы 2-им заказчикам ... Другим это не в надобность...

А сколько будет стоить "Графика" и "Фаст" для чужого заказчика ?
Может я кого-нибудь подряду под это дело .....

Sergey Spirin пишет:

 цитата:
Просто "нужно" и "хочется" - вещи разные.


Согласен на все 100 !

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


Пост N: 480
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.09.08 11:59. Заголовок: Поделюсь своим опытом


Andrey пишет:

 цитата:
Подскажите пожалуйста, как сделать свою функцию по добавлению след.
переменных и функций:

Не буду же я всегда писать один и тот же код во многих местах....



Поделюсь своим опытом в виде примера


 цитата:
#include "hbclass.ch"
#include "common.ch"

#xtranslate STROUT <arg> => QOut( Hb_AnsiToOem( <arg> ) )

PROCEDURE main
LOCAL cMethodName, cbErr
LOCAL oMyReport := MyReport():New()

STROUT "oMyReport есть экземпляр класса " + oMyReport:ClassName()
STROUT oMyReport:ClassName() + " унаследован от frReportManager - " + ;
iif( __objDerivedFrom( oMyReport, "frReportManager" ), "да !", "нет")

// Если объект oMyReport не имеет метод MyInit - добавим его
IF AScan( __objGetMethodList( oMyReport ), "MYINIT" ) == 0
__objAddMethod( oMyReport, "MYINIT", @MyInitFunc() )
ENDIF

// При желании можно огласить весь список методов :)
FOR EACH cMethodName IN __objGetMethodList( oMyReport )
// ? cMethodName
NEXT

oMyReport:MyInit()

// Удалим метод MyInit
STROUT " Удалим метод MyInit и попробуем вызвать его еще раз"
IF AScan( __objGetMethodList( oMyReport ), "MYINIT" ) != 0
__objDelMethod( oMyReport, "MyInit" )
ENDIF

cbErr := ErrorBlock({|oErr|break(oErr)})
BEGIN SEQUENCE
//попытаемся выполнить
oMyReport:MyInit()
RECOVER
STROUT "ERROR: метод MyInit не определен"
END
errorBlock( cbErr )

RETURN

STATIC FUNCTION MyInitFunc()
LOCAL self := QSelf()
STROUT " выполняется FUNCTION MyInitFunc() AS METHOD MyInit"

::Do()
::SetEventHandler( "Report", "OnUserFunction", { | FName, FParams | CallUserFunction( FName, FParams ) } )
::AddFunction( "function XBaseStr(nValue: Double, nLength: Variant = EmptyVar, nDecimals: Variant = EmptyVar): Variant", ;
"My Lovely Functions!", "It's a XBase Str() function!" )

RETURN Self

FUNCTION CallUserFunction( FName, FParams )
// stub
HB_SYMBOL_UNUSED( FName )
HB_SYMBOL_UNUSED( FParams )
RETURN NIL

/*
CLASS MyReport
*/
CLASS MyReport FROM frReportManager
METHOD Init( cOptionalPath ) CONSTRUCTOR
METHOD Do()
DESTRUCTOR Destroy()
ENDCLASS

METHOD Init( cOptionalPath ) CLASS MyReport
MEMVAR myPathRes, MyAdress, MyFirma
PUBLIC myPathRes := "C:\", MyAdress := "my word", MyFirma := "my firma"

super:Init( cOptionalPath )
STROUT "> выполняется METHOD Init CLASS MyReport"

::LoadFromFile( "1.fr" )
::AddVariable( "My Lovely Vars", "MyAdress" , "'"+M->MyAdress+"'" )
::AddVariable( "My Lovely Vars", "MyPathRes", "'"+M->myPathRes+"'" )
::AddVariable( "My Lovely Vars", "MyFirma" , "'"+M->MyFirma+"'" )

RETURN Self

METHOD Do() CLASS MyReport
STROUT " выполняется METHOD Do CLASS MyReport"
RETURN Self

PROCEDURE Destroy CLASS MyReport
STROUT "> выполняется PROCEDURE Destroy CLASS MyReport"
RETURN




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


Пост N: 481
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.09.08 12:18. Заголовок: Небольшое разьяснени..


Небольшое разьяснение

Вы здесь не видете вызов UnloadFr(), потому что в исходниках frReportManager я определил этот метод как деструктор

DESTRUCTOR UnloadFr()
..
PROCEDURE UnloadFr CLASS frReportManager
..
RETURN

и еще обьявил Init как
METHOD Init( cOptionalPath ) CONSTRUCTOR

Никаких других изменений не делаю.


Все остальное добавляю или созданием нового класса с родителем frReportManager
или динамически создавая нужные свойства (методы) экземпляру класса (обьекту).

В данном примере использованы сразу два этих метода.


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


Пост N: 482
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.09.08 12:25. Заголовок: Еще


FastRepH.prg линкую к FastRepH.lib с помощью батника (см.ниже) и просто подключаю FastRepH.lib к проекту


 цитата:
@echo off
setlocal

set HB_COMPILER=harbour
rem set HB_INSTALL=e:\hb\harbour-bcc551
set HB_INSTALL=e:\hb\harbour-bcc582
set HB_BIN_INSTALL=%HB_INSTALL%\bin
set HB_INC_INSTALL=%HB_INSTALL%\include
set HB_LIB_INSTALL=%HB_INSTALL%\lib

rem set PATH=F:\borland\bcc55\bin
set PATH="C:\Program Files\BORLAND\BDS\4.0\bin"

set HARBOURFLAGS=-n1 -q0 -w -es2 -gc0 -i%HB_INC_INSTALL%
set C_USR=-c -d -O2 -OS -tW -tWM -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL%

if exist FastRepH.lib del FastRepH.lib
if exist %HB_LIB_INSTALL%\FastRepH.lib del %HB_LIB_INSTALL%\FastRepH.lib

%HB_BIN_INSTALL%\%HB_COMPILER% FastRepH.prg %HARBOURFLAGS%
bcc32 %C_USR% FastRepH.c && tlib FastRepH.lib +FastRepH.obj

if exist FastRepH.c del FastRepH.c
if exist FastRepH.obj del FastRepH.obj

if exist FastRepH.lib copy FastRepH.lib %HB_LIB_INSTALL%\FastRepH.lib

endlocal



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


Пост N: 483
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.09.08 12:27. Заголовок: Скрипт для любителей..


Скрипт для любителей WATCOMC


 цитата:
@echo off
setlocal

set HB_COMPILER=harbour
set HB_INSTALL=e:\hb\harbour-watcom17a
set HB_BIN_INSTALL=%HB_INSTALL%\bin
set HB_INC_INSTALL=%HB_INSTALL%\include
set HB_LIB_INSTALL=%HB_INSTALL%\lib

set WATCOM=f:\watcom
set EDPATH=%WATCOM%\EDDAT
set INCLUDE=%WATCOM%\H;%WATCOM%\H\NT;%HB_INC_INSTALL%
set PATH=%WATCOM%\BINNT;%WATCOM%\BINW

set HARBOURFLAGS=-n1 -q0 -w -es2 -gc0 -i%HB_INC_INSTALL%
set C_USR= -j -w=3 -d2 -5s -5r -fp5 -oxehtz -zq -zt0 -zw -mf -bw
rem -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL%

if exist FastRepH.lib del FastRepH.lib
if exist %HB_LIB_INSTALL%\FastRepH.lib del %HB_LIB_INSTALL%\FastRepH.lib

%HB_BIN_INSTALL%\%HB_COMPILER% FastRepH.prg %HARBOURFLAGS%
wpp386 %C_USR% FastRepH.c -fo=FastRepH.obj && wlib -b FastRepH.lib +FastRepH.obj

if exist FastRepH.c del FastRepH.c
if exist FastRepH.obj del FastRepH.obj

if exist FastRepH.lib copy FastRepH.lib %HB_LIB_INSTALL%\FastRepH.lib

endlocal



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


Пост N: 484
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.09.08 12:34. Заголовок: Andrey пишет: А ско..


Andrey пишет:

 цитата:
А сколько будет стоить "Графика" и "Фаст" для чужого заказчика ?
Может я кого-нибудь подряду под это дело .....



Если вам действительно нужна графика за приемлемую цену, то рекомендую обратить внимание на
rmchart

Цена - потраченое время на изучение и адаптацию - вполне демократическая

P.S. В MiniGUI пример тоже имеется.

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



Пост N: 53
Зарегистрирован: 27.04.06
ссылка на сообщение  Отправлено: 18.09.08 13:26. Заголовок: Скрипт для любителей WATCOMC


Петр, а можно собрать Harbour с watcom17a ?

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


Пост N: 485
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.09.08 13:59. Заголовок: Можно. Я к примеру с..


Можно. Я к примеру собираю вот так


 цитата:

@echo off
setlocal

set HB_ARCHITECTURE=w32
set HB_COMPILER=owatcom

set WATCOM=f:\watcom
set EDPATH=%WATCOM%\EDDAT
set INCLUDE=%WATCOM%\H;%WATCOM%\H\NT
set PATH=%WATCOM%\BINNT;%WATCOM%\BINW

set HB_PKG_NAME=harbour-watcom17a
rem set C_USR=-DHB_GUI -DHB_NO_TRACE -DHB_FM_STATISTICS_OFF -DHB_FM_WIN32_ALLOC -DHB_HASH_MSG_ITEMS
set C_USR=
set PRG_USR=-l
set HB_BUILD_ST=
rem set HB_BUILD_DLL=yes
set HB_BUILD_VERBOSE=yes
set HB_CROSS_BIN_DIR=
set HB_BIN_COMPILE=
set HB_PPGEN_PATH=
set HB=
set HBPP=

call ext.bat

if exist %HB_PKG_NAME% rd /q /s %HB_PKG_NAME%
md %HB_PKG_NAME%

set HB_INSTALL_PREFIX=E:\hb\%HB_PKG_NAME%
set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin\
set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib\
set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include\

md %HB_BIN_INSTALL%
md %HB_LIB_INSTALL%
md %HB_INC_INSTALL%

// перейти в папку с исходниками
cd e:\harbour

make clean > nul
make install %1 %2 %3 -r SHELL=%COMSPEC% 2> make_gnu_owatcom_err.log > make_gnu_owatcom_std.log

endlocal



ext.bat


 цитата:
set HB_INC_ALLEGRO=
set HB_INC_APOLLO=
set HB_INC_CURL=E:\curl\include
set HB_INC_FIREBIRD=
set HB_INC_FREEIMAGE=E:\freeImage\Dist
set HB_INC_GD=
set HB_INC_LIBHARU=E:\haru\include
set HB_INC_MYSQL=
set HB_INC_PGSQL=
set HB_INC_ADS=



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


Пост N: 486
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.09.08 14:04. Заголовок: Маленькое ухищрение


Для сборки нужна утилита make GNU.
Я использую mingw32-make.exe из состава MigW 3.4.5

Просто переименовал ее в make.exe и поместил в %WATCOM%\BINNT

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



Пост N: 54
Зарегистрирован: 27.04.06
ссылка на сообщение  Отправлено: 18.09.08 16:05. Заголовок: Спасибо, Петр ! Буд..


Спасибо, Петр !

Буду пробовать сочетание:
(open source)Harbour - (open source)Watcom

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




Пост N: 693
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.09.08 22:33. Заголовок: Что-то не работает ф..


Как заменить формат вывода для FastReport ???

Поле базы текстовое, в хХарборе пользуюсь TRANSFORM(FIELD->TELFIO,'@R (999) 999-99-99')
Я уже сделал для ФАСТе функцию TRANSFORM, просто как обойтись без нее....

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


Пост N: 212
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 01.10.08 10:09. Заголовок: Andrey пишет: прост..


Andrey пишет:

 цитата:
просто как обойтись без нее....



[FormatMaskText( '(000) 000-00-00;0', <Table."Field">)]

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




Пост N: 695
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.10.08 17:28. Заголовок: Был на выставке Soft..


Был на выставке Softtools, подходил на стенд FastReport, спрашивал насчет графиков (Типы графиков в компоненте Chart).

Сказали следующее: скачать новую DLL если есть лицензия и ПРОСТО ПОЛЬЗОВАТЬСЯ, так как они уже включены в поставку.....

А у нас тогда почему нет ???

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


Пост N: 218
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 07.10.08 19:48. Заголовок: Andrey пишет: Был н..


Andrey пишет:

 цитата:
Был на выставке Softtools, подходил на стенд FastReport, спрашивал насчет графиков (Типы графиков в компоненте Chart).

Сказали следующее: скачать новую DLL если есть лицензия и ПРОСТО ПОЛЬЗОВАТЬСЯ, так как они уже включены в поставку.....

А у нас тогда почему нет ???




Так у вас есть лицензия на TeeChart Pro? И какую такую новую dll надо скачать? И что включено в какую поставку?



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




Пост N: 696
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.10.08 01:24. Заголовок: У них там на стенде ..


У них там на стенде была версия 4.5.43 (Дали диск с демо версией FastReport Studio)
Так там куча типов графиков: Standart, Extended, Stats, Financial, Other
Может я и сразу не сделаю все графики, но хочется иметь их тоже на будущее


Ну я взял эту Fastreport3.dll от Studio и подключил к себе в проект.... Не ЗАРАБОТАЛО !!!
Конечно догадывался, что не пойдет так просто... , так на всякий случай...

Резуме, так как получить эти графики к себе в FastReport ?

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


Пост N: 219
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 08.10.08 10:39. Заголовок: Andrey пишет: У них..


Andrey пишет:

 цитата:
У них там на стенде была версия 4.5.43 (Дали диск с демо версией FastReport Studio)
Так там куча типов графиков: Standart, Extended, Stats, Financial, Other
Может я и сразу не сделаю все графики, но хочется иметь их тоже на будущее



Да уж, "смешались в кучу кони, люди"...

Andrey пишет:

 цитата:
Резуме, так как получить эти графики к себе в FastReport ?



Еще раз - на сегодняшний день, единственный способ это иметь developer-лицензию TeeChart Pro.

FRH и FR Studio - это разные продукты, хотя и имееют общую базу FR VCL. Почему стало возможно компилировать студию с TeeChart Pro объясняется только способом лицензирования. Разработчик под студию не имеет права включать дизайнер в состав приложения, удовольствие это стоит 2170 руб. за одно рабочее место со специльной процедурой активации. В эту сумму входит и лицензионное отчисление за TeeChart за юзерское одно рабочее место. Надеюсь, что разница очевидна.



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




Пост N: 697
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.08 21:03. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Надеюсь, что разница очевидна.


Понял !
С ценой согласен, с условиями тоже !!!
"включать дизайнер в состав приложения" НЕ БУДУ !!!

Как получить сие нововведение ?


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


Пост N: 220
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 09.10.08 22:16. Заголовок: Andrey пишет: Как п..


Andrey пишет:

 цитата:
Как получить сие нововведение ?



Какое? Студию? Взять и купить.

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




Пост N: 698
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.10.08 13:46. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Какое? Студию? Взять и купить.


Так она под хХарбором не будет работать !!!
Я же спрашиваю, сделаете ли вы адаптацию или "продвинутую версию" типа студии для хХарбора ???

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


Пост N: 221
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 16.10.08 22:33. Заголовок: Andrey пишет: Я же ..


Andrey пишет:

 цитата:
Я же спрашиваю, сделаете ли вы адаптацию или "продвинутую версию" типа студии для хХарбора ???




Еще раз для непонятливых.... В настоящее время никаких изменений не планируется. Единственная возможность иметь Tee Chart Pro в составе FRH - это иметь лицензию в составе FRH, точка.

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



Пост N: 28
Зарегистрирован: 10.07.07
ссылка на сообщение  Отправлено: 20.10.08 16:12. Заголовок: Отчет работал нормал..


Отчет работал нормально. После ввода в БД нескольких новых записей стала появляться такая ошибка

«Были обнаружены следующие ошибки:
Could not convert variant of type (Null) info type(OleStr)
Неизвестная переменная или поле БД: 1220»

Воостанавливаю файл БД из архива - все нормально. Понятно, что ошибка во вновь введенных строках, но как ее искать?

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


Пост N: 222
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 21.10.08 09:48. Заголовок: TimTim пишет: Отчет..


TimTim пишет:

 цитата:
Отчет работал нормально. После ввода в БД нескольких новых записей стала появляться такая ошибка

«Были обнаружены следующие ошибки:
Could not convert variant of type (Null) info type(OleStr)
Неизвестная переменная или поле БД: 1220»

Воостанавливаю файл БД из архива - все нормально. Понятно, что ошибка во вновь введенных строках, но как ее искать?



Похоже, в новых записях появилось что-то вроде: [1220]

Если в этой мемке никаких выражений присутствовать не может, то просто поставьте AllowExpressions=False.

Если же выражения нужны, но могут присутствовать и символы "[","]", то измените разделители выражений - ExpressionDelimeters.




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


Пост N: 223
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.10.08 19:51. Заголовок: Начиная с 4.7 реализован немодальный режим предпросмотра


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

Начиная с 4.7 реализован "часто спрашиваемый" немодальный режим предпросмотра. Для этого добавлены следующие методы:

:AddReport() - Добавляет новый отчет и делает его активным, возвращает номер этого отчета .
:SelectReport(nReport) - Делает отчет с номером nReport активным.
:RemoveReport(nReport) - Удаляет существующий отчет.
:ClearReports() - Удаляет все отчеты, кроме отчета 0 .
:PreviewOptions:SetModal(lModal) - Определяет будет ли предпросмотр отчета модальным или нет.
:PreviewOptions:SetRemoveReportOnClose(lRemove) - Определяет, удалять ли отчет после закрытия предпросмотра или нет

Отчет с номером 0 существует всегда. Пример использования:

FrPrn:AddReport()
FrPrn:LoadFromFile("1.fr3")
FrPrn:PreviewOptions:SetMaximized(.f.)
FrPrn:PreviewOptions:SetBounds(120, 120, 800, 600)
FrPrn:PreviewOptions:SetModal(.f.)
FrPrn:ShowReport()

---
Спирин Сергей.



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




Пост N: 717
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.08 14:17. Заголовок: Как при экспорте док..


Как при экспорте документа исправить имя файла по умолчанию (оно берется из имени формы) ?
Например:
форма называется zaivka1a.fr3
при экспорте в WORD по умолчанию предлагается zaivka1a.doc (и там можно писать свое имя файла)

Я хочу чтоб по умолчанию писалось по русски: "Заявка-форма1-12.10.2008.doc"



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


Пост N: 224
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 04.11.08 15:46. Заголовок: Andrey пишет: Как п..


Andrey пишет:

 цитата:
Как при экспорте документа исправить имя файла по умолчанию (оно берется из имени формы) ?



FrPrn:SetProperty("RTFExport", "FileName", "ggg.rtf")

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




Пост N: 718
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.08 20:24. Заголовок: Спасибо ! :sm12: ..


Спасибо !

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




Пост N: 719
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.08 23:45. Заголовок: И еще один вопрос: П..


И еще один вопрос:
При построении отчетов с вычислениями, в окне "ПредПросмотра"
появляется белый лист, и только спустя 1 мин. результат.
(Если база большая и нагрузка на сервер тоже большая, то может и 2-3 мин. считать)
Можно ли повесить сообщение большими буквами на белом листе типа:
"Подождите немного, идет счет ...." ?

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


Пост N: 225
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 05.11.08 19:55. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли повесить сообщение большими буквами на белом листе типа:
"Подождите немного, идет счет ...." ?



Нет. Можно так:

ShowMyStatusMessage()
FrPrn:PrepareReport()
CloseMyStatusMessage()
FrPrn:ShowPreparedReport()





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




Пост N: 722
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.11.08 21:53. Заголовок: Извиняюсь, это опять..


Извиняюсь, это опять я ....
Опять столкнулся с проблемой:
Как делать многостраничные отчеты ?

Раньше за печать у меня отвечал EXCEL, т.е. он сам нумеровал многостраничную таблицу, я с этим не заморачивался.
Отчет типа такого:


Я в "Фасте" сделал один отчет состоящий из 4 страниц, туда раскидал месяца.
Но при выводе не совпадает нумерация... Т.е. на 1 странице в конце отчета помещается (допустим) 20 строк, а на 4 странице остаток только 10 строк....
Как правильно строить такие отчеты ? Где копать ?

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


Пост N: 226
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 07.11.08 00:07. Заголовок: Andrey пишет: Раньш..


Andrey пишет:

 цитата:
Раньше за печать у меня отвечал EXCEL, т.е. он сам нумеровал многостраничную таблицу, я с этим не заморачивался.
Отчет типа такого:


Я в "Фасте" сделал один отчет состоящий из 4 страниц, туда раскидал месяца.
Но при выводе не совпадает нумерация... Т.е. на 1 странице в конце отчета помещается (допустим) 20 строк, а на 4 странице остаток только 10 строк....



Ничего не понял. Можно ли объяснить языком человеческим, что нужно нумеровать?


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




Пост N: 724
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.11.08 01:01. Заголовок: Можно... Сделан отч..


Можно...

Сделан отчет состоящий из 4 страниц.
После печати отчета нужно склеивать листы друг с другом 1+2+3+4. На каждой странице ставлю порядковый номер строки.
Так вот: при печати этот порядковый номер на страницах не совпадает...

Выложил готовую последнюю страницу отчета которая идет 1-ой на склейку:
http://s48.radikal.ru/i120/0811/9a/4fa9cf312191.jpg

Выложил готовую последнюю страницу отчета которая идет 2-ой на склейку:
http://s51.radikal.ru/i132/0811/b4/27a059963c54.jpg

Выложил готовую последнюю страницу отчета которая идет 3-ей на склейку:
http://i065.radikal.ru/0811/ef/79deecb4f307.jpg

Выложил готовую последнюю страницу отчета которая идет 4-ой на склейку:
http://s47.radikal.ru/i118/0811/ef/9e59374af0e0.jpg

Вот я и спрашиваю как строить такие отчеты ?

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


Пост N: 227
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 07.11.08 01:14. Заголовок: Andrey пишет: Сдела..


Andrey пишет:

 цитата:
Сделан отчет состоящий из 4 страниц.
После печати отчета нужно склеивать листы друг с другом 1+2+3+4. На



Что выводится в колонке нумерации и как, вообще, строится отчет?

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




Пост N: 749
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.11.08 16:58. Заголовок: Предыдущий вопрос по..


Предыдущий вопрос пока отложен на время ....

Сейчас интересен другой. Можно ли просматривать чужие DOC и XLS через FastReport.
Сделал пример, а там показывается только 1-я страница документа....
Есть ли решение

Ссылка на пример: http://files.mail.ru/DBNUPV

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


Пост N: 229
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 26.11.08 20:29. Заголовок: Andrey пишет: Сдела..


Andrey пишет:

 цитата:
Сделал пример, а там показывается только 1-я страница документа....



Честно говоря, не знаю. Никогда не работал с фастовским Ole-объектом. Можете уточнить в FR-поддержке (панель управления - создать новый тикет).

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




Пост N: 763
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.12.08 15:23. Заголовок: Доброго времени сут..



Доброго времени суток всем....
Столкнулся со следующей проблемой:
1) имеется база с полями SUM01, SUM02, SUM03 .... SUM12
2) имеется менюшка с выбором числа (месяца) 1,2,3....12
3) имеется отчет в котором нужно печатать выбранное поле,
а в отчете поля печатаются так [BASE."SUM01"]

Вопрос: как мне написать правильно выражение в отчете ?

Пробовал через Public переменные типа M->cPolePrn
а в отчете [DOGOVOR.[GetHbVar('cPolePrn')]] - не прокатывает.
или [([GetHbVar('cPolePrn')],MasterData1)] - тоже не прокатывает.

Как в Дельфи можно использовать макроподстановку ?

И еще самое нужное: как по такому полю получить ИТОГ ?

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


Пост N: 230
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 10.12.08 10:21. Заголовок: Andrey пишет: Добро..


Andrey пишет:

 цитата:
Доброго времени суток всем....
Столкнулся со следующей проблемой:
1) имеется база с полями SUM01, SUM02, SUM03 .... SUM12
2) имеется менюшка с выбором числа (месяца) 1,2,3....12
3) имеется отчет в котором нужно печатать выбранное поле,
а в отчете поля печатаются так [BASE."SUM01"]

Вопрос: как мне написать правильно выражение в отчете ?

Пробовал через Public переменные типа M->cPolePrn
а в отчете [DOGOVOR.[GetHbVar('cPolePrn')]] - не прокатывает.
или [([GetHbVar('cPolePrn')],MasterData1)] - тоже не прокатывает.




procedure ReportHOnStartReport(Sender: TfrxComponent);
begin
Memo8.DataField := GetHbVar('cPolePrn');
end;

[SUM(Memo8.Value, Band4)]


Andrey пишет:

 цитата:
Как в Дельфи можно использовать макроподстановку ?



??? В самом Delphi? Естественно, никак. Это все-таки 100% компилятор, а не скриптовый язык.

Если же говорить о FastReport и его Object Pascal Script, то

Любое выражение Object Pascal Script:

Calc()

Харбурный макрос:

EvalMacro()




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




Пост N: 764
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.12.08 11:24. Заголовок: Не понятно ! Наверно..


Не понятно !
Наверно нужно уточнить задачу.
Привожу картинку отчета.



Сделал как вы рекомендовали:
procedure ReportHOnStartReport(Sender: TfrxComponent);
begin
Memo37.DataField := GetHbVar('cPolePrn');
Memo38.DataField := GetHbVar('cPolePrix');
end;


1 - (А) Memo37 ---> Что там вводить нужно [DOGOVOR."????"] ?
2 - (А) Memo38 ---> Аналогично ?
3 - (А) Memo39 ---> равно Поле (1) минус Поле (2)
4 - Итог [SUM(Memo37.Value,ReportSummary1)] - возвращает 0, на Band4 -ругается !
5 - Тоже нужен итог Memo38
6 - просто разница между 4 и 5 !

Заранее спасибо.


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


Пост N: 231
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 13.12.08 16:39. Заголовок: Andrey пишет: 1 - (..


Andrey пишет:

 цитата:
1 - (А) Memo37 ---> Что там вводить нужно [DOGOVOR."????"] ?
2 - (А) Memo38 ---> Аналогично ?



Нужно ввести волшебное слово, например "пожалуйста" Шучу, чтобы там не было написано, при DatsSet = DOGOVOR, любое изменение DataField правильно изменит содержимое. Потренеруйтесь в дизайнере. Меняйте свойство DataField и смотрите как меняется текст в мемо.

Andrey пишет:

 цитата:
3 - (А) Memo39 ---> равно Поле (1) минус Поле (2)



Не поверите, но это будет :

[Memo37.Value - Memo38.Value]

Andrey пишет:

 цитата:
4 - Итог [SUM(Memo37.Value,ReportSummary1)] - возвращает 0, на Band4 -ругается !



Придется произвести легкое интеллектуальное усилие. Так, "на Band4 -ругается", почему бы это? A! Наверное потому, что никакого Band4 в моем отчете нет! Он просто есть в каком-то другом отчете, из которого копировался пример.

Так, а "[SUM(Memo37.Value,ReportSummary1)]" - возвращает 0"... Выделим в дизайнере фунуцию SUM и прочитаем внизу:

"Возвращает сумму выражения Expr для бэнда Band".

Так, Expr у нас правильный, именно Memo37.Value нам и нужно суммировать, а вот когда нужно производить очередное прибавление значения? Похоже за это отвечает второй параметр - Band. То есть, при каждой печати этого бэнда будет к сумме добавляться текущее значение. А! А у нас же Memo37 лежит на MasterData1 и именно для него нам нужно считать сумму, значит:

[SUM(Memo37.Value, MasterData1)]

--

Надеюсь, с 5 и 6 вы справитесь самостоятельно, направление: "мышление по аналогии"






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




Пост N: 765
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.12.08 23:27. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
при DatsSet = DOGOVOR, любое изменение DataField правильно изменит содержимое.



Блин, я замучился искать эту штуку. Бился, бился, думал все... работать не будет ! А оказывается я на глобальный
DatsSet - Report поставил....
А потом все заработало !!!
Спасибо большое.....

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




Пост N: 769
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.01.09 14:43. Заголовок: Всех с наступившим Н..


Всех с наступившим Новым Годом !!!

Подскажите, как можно организовать отчет следующего типа:

[ABONENT."ADRES'']
УВАЖАЕМЫЙ АБОНЕНТ !
[MyFirmaBook] сообщает, что Ваша задолженность по оплате за техническое обслуживание дома составляет:
[ABONENT."DOLG_PRN"] руб. на [ABONENT."DATENACH"] г.
В случае неуплаты ДО [GetHbVar('cOplataDo')] г. вы будете ..... И т.д. ...........


Текст хотелось бы иметь как "Объект Rich Text". Это получилось.
Но при "просмотре отчета" нужна КНОПКА для редактирования текста пользователем или запрос на редактирование текста...
Это я не знаю как сделать.....



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


Пост N: 232
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 06.01.09 13:43. Заголовок: Andrey пишет: Текст..


Andrey пишет:

 цитата:
Текст хотелось бы иметь как "Объект Rich Text". Это получилось.
Но при "просмотре отчета" нужна КНОПКА для редактирования текста пользователем или запрос на редактирование текста...
Это я не знаю как сделать.....



В предпросмотре уже есть такая кнопка, называется - "Редактировать страницу". Загружается дизайнер в режиме редактирования уже сформированного отчета. В чем проблема?

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




Пост N: 786
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.02.09 03:14. Заголовок: Всем привет ! Столк..


Всем привет !

Столкнулся с такой неприятной вещью !
При ЭКСПОРТЕ (предварительный просмотр) в другой формат (допустим WORD), при последующем выборе "Открыть после экспорта" выскакивает окно "Сохранить как". И вот путь этот для сохранения выскакивает ПЕРИОДИЧЕСКИ в папку, где лежат все формы !!!
Блин, как убрать этот путь, чтоб юзера не писали мне в ПАПКУ с формами ?

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


Пост N: 233
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 05.02.09 20:40. Заголовок: Andrey пишет: Блин,..


Andrey пишет:

 цитата:
Блин, как убрать этот путь, чтоб юзера не писали мне в ПАПКУ с формами ?



Заглянуть в мануал и увидеть, что у всех экспортов есть проперть DefaultPath.

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




Пост N: 787
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.02.09 21:54. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Заглянуть в мануал и увидеть, что у всех экспортов есть проперть DefaultPath.


Спасибо, забыл что есть документация....

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




Пост N: 807
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.09 19:41. Заголовок: Возвращаюсь опять к ..


Возвращаюсь опять к этому вопросу !


 цитата:
Andrey пишет:
цитата:
Подскажите пожалуйста, а могу ли я через FastReport печатать свои текстовые файлы OEM или WIN кодировки ?


Sergey Spirin пишет:

 цитата:

Кладете ReportTittle, на него мемо во всю ширину, оба чтоб были растягиваемыми. Вот, собственно, и все. Грузите теперь файлы в мемо.



Создал ReportTittle1, на него положил картинку, название фирмы, название отчета. Далее положил MEMO1 c выводом [GetHbVar('cFileMemo')]
Создал PageFooter1, для печати нумерации страниц.

Результат: ПОКАЗЫВАЕТ ТОЛЬКО ОДНУ СТРАНИЦУ !
Подскажите пожалуйста, где нужно сделать (свойства объектов) чтоб "оба были растягиваемыми" ?

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


Пост N: 234
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 16.03.09 23:06. Заголовок: Andrey пишет: Подск..


Andrey пишет:

 цитата:
Подскажите пожалуйста, где нужно сделать (свойства объектов) чтоб "оба были растягиваемыми" ?



Заветное слово в свойствах - Stretch. По правой кнопке мышы - "Растягиваемый".

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




Пост N: 815
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.03.09 00:12. Заголовок: Сделал.... Программ..


Сделал....
Программа уходит в АУТ ... где-то 1000 страниц и более ... даже не смог дождаться, на файле размером в 30 Кб.
Т.е. я считываю файл в переменную и вывожу на форме [GetHbVar('cFileMemo')]
На объекте PageHeader1 делаю свойства Stretch: True .....



И еще такой БАГ, если в тексте встречаются [ ], то выдает ОШИБКУ и отчет не показывается...



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


Пост N: 236
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.03.09 09:26. Заголовок: Andrey пишет: Прогр..


Andrey пишет:

 цитата:
Программа уходит в АУТ ... где-то 1000 страниц и более ... даже не смог дождаться, на файле размером в 30 Кб.



О, господи. Ну хоть чуть-чуть подумать то, а? Я что-то говорил про PageHeader? Было бы забавно, если б смог дождаться PageHeader печатается на каждой странице. Грузим в него сожержимое, которое больше страницы. Инициализруется новая страница с PageHeader, в который грузим сожержимое, которое больше страницы и т. д. Есть шансы дождаться?

Andrey пишет:

 цитата:
И еще такой БАГ, если в тексте встречаются [ ], то выдает ОШИБКУ и отчет не показывается...



Баги, Андрей, они явно в другом месте А в Фасте есть разделители выражений, по умолчанию [,]. Их можно переопределить, свойство - ExpressionDelimeters. В случае с файлом обработку выражений можно вообще отключить, что уберет ненужный парсинг, свойство AllowExpressions. А текст грузить:

procedure Memo2OnBeforePrint(Sender: TfrxComponent);
begin
Memo2.Text := GetHbVar('cFileMemo');
end;


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




Пост N: 816
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.03.09 20:55. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Баги, Андрей, они явно в другом месте


Ну конечно, баги всегда у пользователя, включая пользователей моих программ.....
Что увидел, то и написал



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




Пост N: 817
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.03.09 00:45. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
А текст грузить:

procedure Memo2OnBeforePrint(Sender: TfrxComponent);
begin
Memo2.Text := GetHbVar('cFileMemo');
end;



Почему то не сработал ! Естественно ставил Memo1 - как объект у меня назван.
После длительных изысканий ..... нашел более простое решение !


А БАГ с [,] почему-то перестал существовать. Непонятно !


Большое СПАСИБО за помощь !
Пока кого-нибудь не спросишь, ответа - не найдешь, самое главное процесс ....


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




Пост N: 818
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.03.09 13:48. Заголовок: Для загрузки картинк..


Для загрузки картинки использую след. код:
procedure Picture1OnBeforePrint(Sender: TfrxComponent);
begin
Picture1.Picture.LoadFromFile(GetHbVar('MyLogoFirma'));
end;

А как сделать загрузку Текстового файла ?

Сделал примерно так:
procedure Memo1OnBeforePrint(Sender: TfrxComponent);
begin
Memo1.Text.LoadFromFile(GetHbVar('MyFileTxt'));
end;

Ругается на синтаксис !
Где можно синтаксис посмотреть ?

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


Пост N: 238
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 22.03.09 18:22. Заголовок: Memo1.Memo.LoadFromF..


Memo1.Memo.LoadFromFile(....

Набрав имя объекта и напечатав точку, например Memo1., нажмите Ctrl+Пробел, вам будет предложен полный список всех вариантов, что может быть напечатано далее Да и, собственно, вкладка Classes, она не для красоты только существует, а еще для того, чтобы посмотреть списки свойств и методов.

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




Пост N: 819
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.03.09 14:38. Заголовок: Sergey Spirin пишет:..


Andrey пишет:
Блин, как убрать этот путь (по умолчанию), чтоб юзера не писали мне в ПАПКУ с формами ?

Sergey Spirin пишет:
Заглянуть в мануал и увидеть, что у всех экспортов есть проперть DefaultPath.


Что-то не совсем понятно ! На каждый экспорт нужно писать свой обработчик ?
Например:

FrPrn := frReportManager():new()
//---------- Init FastReport --------------
InitFr4(FrPrn,cFileForm)
//----------- Load file form FastReport -----------
FrPrn:LoadFromFile( cFileForm )
//---------- Init FastReport Vars and Function ----
InitFr4VarsFunc(FrPrn,cFileForm)

FrPrn:PrintOptions:SetShowDialog( .f. )
FrPrn:SetProperty( "PDFExport", "DefaultPath", cMyPathTemp )
FrPrn:SetProperty( "DOCExport", "DefaultPath", cMyPathTemp )
FrPrn:SetProperty( "RTFExport", "DefaultPath", cMyPathTemp )
..........
FrPrn:SetProperty( "PDFExport", "FileName", cMyNameFile )
FrPrn:SetProperty( "DOCExport", "FileName", cMyNameFile )
FrPrn:SetProperty( "RTFExport", "FileName", cMyNameFile )
...........

// А потом можно вызывать дизайнер или предпросмотр ?
IF nShowDesignReport == 1
FrPrn:ShowReport()
ELSE
FrPrn:DesignReport()
ENDIF

//-------- Unload FastReport ----
FrPrn:DestroyFR()


А можно без перечисления всех этих ОБЪЕКТОВ ? Нет ли какой-нибудь Глобального метода ?


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


Пост N: 240
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 02.04.09 19:45. Заголовок: Andrey пишет: А мож..


Andrey пишет:

 цитата:
А можно без перечисления всех этих ОБЪЕКТОВ ? Нет ли какой-нибудь Глобального метода ?




Нет. Кладите такую инициализацию в Init-ы.

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




Пост N: 826
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.04.09 20:30. Заголовок: Понятно ! С этим раз..


Понятно ! С этим разобрались ...
А как сделать чтоб при экспорте не появлялось окошко с запросом сохранения и сделать запуск программы "Открыть после экспорта" ?
Т.е. если используем WORD то сразу запускался WORD после экспорта ....


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


Пост N: 241
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 03.04.09 07:52. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как сделать чтоб при экспорте не появлялось окошко с запросом сохранения и сделать запуск программы "Открыть после экспорта" ?



Открыть любую дему, выбрать "Export Report", тыркать мышью и думать.

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




Пост N: 827
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.04.09 10:07. Заголовок: НЕТ, нужно чтоб это ..


НЕТ, нужно чтоб это окно не появлялось, которое на картинке.
Самостоятельный Экспорт мне не нужен. Устраиваевает тот который есть в Предпромотре.
В предпросмотре я уже задаю папку для экспорта, имя файла, нужно только чтоб "поднялось" приложение в которое экспортрую.

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


Пост N: 242
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 03.04.09 14:19. Заголовок: Думать все-таки прид..


Думать все-таки придется. Поэтому:

Sergey Spirin пишет:

 цитата:
Открыть любую дему, выбрать "Export Report", тыркать мышью и думать.



Хорошо, даю "наводку" - Думать нужно не о смысле жизни, вообще, а о всяких галочках на диалоге и об "их дальнейшей судьбе".

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




Пост N: 828
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.04.09 17:58. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Хорошо, даю "наводку"



"Наводка" - помогла !

Добавляю:
FrPrn:SetProperty( "PDFExport" , "ShowDialog", .F. )
FrPrn:SetProperty( "PDFExport" , "OpenAfterExport", .T. )
FrPrn:ShowReport()

Работает !

FrPrn:SetProperty( "HTMLExport", "ShowDialog", .F. )
FrPrn:SetProperty( "HTMLExport", "OpenAfterExport", .T. )
FrPrn:ShowReport()

Не работает - ругается на путь ! Хотя если сделать через меню, то все запускается !

FrPrn:SetProperty( "RTFExport" , "ShowDialog", .F. )
FrPrn:SetProperty( "RTFExport" , "OpenAfterExport", .T. )
FrPrn:ShowReport()

Работает !

FrPrn:SetProperty( "XLSExport" , "ShowDialog", .F. )
FrPrn:SetProperty( "XLSExport" , "OpenAfterExport", .T. )
FrPrn:ShowReport()

Не работает !!! Файл создает, а Ексель не запускается.

FrPrn:SetProperty( "XMLExport" , "ShowDialog", .F. )
FrPrn:SetProperty( "XMLExport" , "OpenAfterExport", .T. )
FrPrn:ShowReport()

Не работает !!! Файл создает, а Ексель не запускается.

Видать для Екселя нужны другие методы ?

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




Пост N: 829
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.04.09 18:21. Заголовок: С Екселем разобрался..


С Екселем разобрался !
Нужен другой метод - FrPrn:SetProperty( "XMLExport" , "OpenExcelAfterExport", .T. ) !

И заработал - FrPrn:SetProperty( "HTMLExport", "OpenAfterExport", .T. )

Спасибо !


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




Пост N: 831
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.04.09 22:05. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Открыть любую дему, выбрать "Export Report", тыркать мышью и думать.



А как передавать в Fast массив ?

Что-то не нашел примеров в Демо !
FrPrn:AddVariable( "My Lovely Vars", "My and only my var", 10 )
FrPrn:AddVariable( "My Lovely Vars", "test", 100.25 )
FrPrn:AddVariable( "My Lovely Vars", "test1", "'Test'" )
FrPrn:AddVariable( "My Lovely Vars", "test2", CToD( "01/01/2007" ) )

Да и при использовании в Fast'e получается ошибка !!! Двойные скобки-то нельзя !
[GetHbVar('aPubYear[1]')] ?



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


Пост N: 243
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 04.04.09 13:25. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как передавать в Fast массив ?



var
Ar: Variant;

procedure ReportHOnStartReport(Sender: TfrxComponent);
begin
Ar := GetHbVar('ar1');

ShowMessage(Ar[1]);
end;

Andrey пишет:

 цитата:
Да и при использовании в Fast'e получается ошибка !!! Двойные скобки-то нельзя !
[GetHbVar('aPubYear[1]')] ?



А подумать? Или хотя бы ошибку прочитать? В общем, домашнее задание - объяснить почему нельзя:

[GetHbVar('aPubYear[1]')]

И почему теперь можно:

[Ar[1] + Ar[2]]



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




Пост N: 840
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.04.09 22:56. Заголовок: Привет ! Столкнулся ..


Привет !
Столкнулся с проблемой:
Загружаю в PUBLIC переменную файл размером 4 Мб. Загрузилась нормально.

А на форме пытаюсь получить GetHbVar('cFileMemo') ! Виснит глухо ! Приходится снимать FastReport !

Так какого размера можно передавать в FastReport, чтоб ни вис он ?

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


Пост N: 251
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 28.04.09 09:57. Заголовок: Ограничение на строк..


Ограничение на строку - 2GB. Поэтому, скорее всего, снова "забубенен" бесконечный отчет, типа 4MB в PageHeader... Нюансы, в принципе, могут быть, конечно. Давайте пример.

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


Пост N: 252
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 29.04.09 17:44. Заголовок: На сайте http://www...


На сайте http://www.reportingfor.info/ появился новый раздел "Унифицированные формы FastReport", посвященный стандартным шаблонам унифицированных форм.
Посмотреть и скачать шаблоны можно здесь http://www.reportingfor.info/ru/download.php

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




Пост N: 841
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.04.09 22:56. Заголовок: Сделал пример ! Ссыл..


Сделал пример !
Ссылка здесь: http://files.mail.ru/7ZKCRC
Выяснил опытным путем что размер файла лучше иметь меньше 200 кбайт, при других значениях просто ТОРМОЗА, а больше 1 Мбайта - просто виснет !
Я думаю лучше наверно сделать показ файла через загрузку его FastReport"ом, но я так и не смог его загрузить напрямую !
Буду признателен за помошь.

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




Пост N: 846
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.05.09 21:21. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Давайте пример.


Пример дал ....

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




Пост N: 854
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.06.09 15:33. Заголовок: Перевел свою програм..


Перевел свою программу под xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6406)
Весь проект собрался, кроме:
Building object module for 'obj2\FastRepH.c'
using C compiler 'BCC32' as defined in 'Z:\xHARBOUR\BIN\harbour.cfg'...
Exec: BCC32 -c -D__EXPORT__ -IZ:\xHARBOUR\include -d -LZ:\xHARBOUR\lib -oobj2\FastRepH.obj obj2\FastRepH.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
obj2\FastRepH.c:
Error E2141 PRG\\FastRepH.prg 177: Declaration syntax error
*** 1 errors in Compile ***
Done.


Что делать ?

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




Пост N: 857
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.06.09 15:10. Заголовок: Нашел решение !!! Сп..


Нашел решение !!!
Спасибо, люди добрые помогли.
Всего-то нужно было перейти на новую версию 4.7.130

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


Пост N: 153
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 05.07.09 15:28. Заголовок: Сергею Спирину: Посл..


Сергею Спирину:
После обновления Harbour при компиляции программы имеем множественные
Warning W8075 (компилятор BCC 5.5.1) на файле FastRepH.prg

Changelog Харбора:

 цитата:
2009-06-20 22:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
* harbour/source/vm/extend.c
* renamed existing hb_par*() and hb_stor*() functions which supports
variable number of parameters (...) into hb_parv*() and hb_storv*()
* added new hb_par*() and hb_stor*() functions which use strict number
of parameters. New hb_par*() functions do not make hidden conversion
between types, f.e. hb_parl() returns 1 only for logical parameters
which contain .T.


Можно попросить Вас поправить? Спасибо.


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


Пост N: 253
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 06.07.09 19:41. Заголовок: Я вернусь в "мир..


Я вернусь в "мир Xbase" через пару дней, потерпите пожалуйста.

И сами варнинги покажите. Ошибок нет? Только варнинги?


Кстати, а нет ли "у нас" приличных Дельфистов? Я к тому, что подобные "пропадания" могут у меня, к сожалению, повторяться. Если кто-нибудь, обладающий приличной дельфийской квалификацией заинтересуется, то могу предложить сотрудничество. Имею в виду ведение саппотрта за, естественно, как использование FRH, так и, возможно, проценты с продаж.

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


Пост N: 158
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 08.07.09 10:46. Заголовок: Ошибок нет. Варнинги..


Ошибок нет.
Варнинги на картинке.


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


Пост N: 254
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 08.07.09 16:57. Заголовок: PSP пишет: Варнинги..


PSP пишет:

 цитата:
Варнинги на картинке.



Гм... Даже не знаю, что сказать на такой варнинг Ну я не знаю как сделать приведение типов указателей "НЕ ПОДОЗРИТЕЛЬНЫМ"

А зачем вам вообще С-варнинги? Может просто убрать -w из строки для bcc? Ну или просто эту сверхподозрительность зарубить добавив -w-8075?

Кстати, а это скриншот чего?

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


Пост N: 159
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 08.07.09 17:12. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Гм... Даже не знаю, что сказать на такой варнинг Ну я не знаю как сделать приведение типов указателей "НЕ ПОДОЗРИТЕЛЬНЫМ"


Все было нормально, пока в Харбор не изменили вот это (имхо)
* renamed existing hb_par*() and hb_stor*() functions which supports
variable number of parameters (...) into hb_parv*() and hb_storv*()
* added new hb_par*() and hb_stor*() functions which use strict number
of parameters. New hb_par*() functions do not make hidden conversion
between types
, f.e. hb_parl() returns 1 only for logical parameters
which contain .T.
Может просто заменить все hb_par*() и hb_stor*() на hb_parv*() и hb_storv*(). Я не знаток Си, сорри...

Sergey Spirin пишет:

 цитата:
А зачем вам вообще С-варнинги? Может просто убрать -w из строки для bcc? Ну или просто эту сверхподозрительность зарубить добавив -w-8075?


Если это ни на что не влияет, - можно и убрать. Эту фичу (-w-8075) я знаю.

Sergey Spirin пишет:

 цитата:
Кстати, а это скриншот чего?


Output console xMate. Выход компилятора (в данном случае BCC)


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


Пост N: 255
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 08.07.09 19:19. Заголовок: PSP пишет: Все было..


PSP пишет:

 цитата:
Все было нормально, пока в Харбор не изменили вот это (имхо)
* renamed existing hb_par*() and hb_stor*() functions which supports
variable number of parameters (...) into hb_parv*() and hb_storv*()
* added new hb_par*() and hb_stor*() functions which use strict number
of parameters. New hb_par*() functions do not make hidden conversion
between types, f.e. hb_parl() returns 1 only for logical parameters
which contain .T.
Может просто заменить все hb_par*() и hb_stor*() на hb_parv*() и hb_storv*(). Я не знаток Си, сорри...



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

Для теста можно переименовать и посмотреть. Но у себя я это делать не буду, это только гимор - ветвить под Harbor/xHarbour.




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


Пост N: 160
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 08.07.09 20:51. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Для теста можно переименовать и посмотреть.


Ok. Попробую.

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




Пост N: 881
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.07.09 21:00. Заголовок: Возвращаюсь опять к ..


Возвращаюсь опять к нерешенной проблеме !
Сделал пример !
Ссылка здесь: http://files.mail.ru/5PBFFP
Выяснил опытным путем что размер файла лучше иметь меньше 200 кбайт,
при других значениях просто ТОРМОЗА, а больше 1 Мбайта - просто виснет !
Я думаю лучше наверно сделать показ файла через загрузку его FastReport"ом, но я так и не смог его загрузить напрямую !
Буду признателен за помошь.


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


Пост N: 256
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 10.07.09 09:22. Заголовок: Andrey пишет: Возвр..


Andrey пишет:

 цитата:
Возвращаюсь опять к нерешенной проблеме !
Сделал пример !



На выходных посмотрю

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




Пост N: 885
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.09 00:39. Заголовок: Уже вторые выходные ..


Уже вторые выходные проходят.....

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




Пост N: 894
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.08.09 10:16. Заголовок: Уже месяц прошел :s..


Уже месяц прошел .....

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


Пост N: 258
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 10.08.09 15:14. Заголовок: Andrey пишет: Уже м..


Andrey пишет:

 цитата:
Уже месяц прошел



Увы, Андрей, некогда. Ждите.

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




Пост N: 896
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.08.09 12:53. Заголовок: Понял, жду !!! :sm1..


Понял, жду !!!

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


Пост N: 262
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 23.09.09 01:37. Заголовок: ANN: FastReport for [x]Harbour (FRH) 4.8 released!


Вышел FastReport for [x]Harbour (FRH) 4.8.

Основная новость - это полностью переписанный PDF-экспорт. Решена проблема рендеринга вертикального и под углом текста, добавлена полная поддержка Unicode, увеличена скорость работы, уменьшены требования к памяти.

Также может быть интересна поддержка двоичных данных в UserDataSet и специальная встроенная функция для загрузки картинок просто из Харбор-переменной.

Также изменился дизайн страниц про FRH (заходите ), добавлены новые примеры.

--
Спирин Сергей.
Компания "Паритет Софт".
FRH : http://www.paritetsoft.ru/frh.htm
FRAX: http://www.paritetsoft.ru/frax.htm


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




Пост N: 909
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.09.09 21:18. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
специальная встроенная функция для загрузки картинок просто из Харбор-переменной.



Что то не нашел примера по этой функции....

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


Пост N: 263
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 24.09.09 22:08. Заголовок: Andrey пишет: Что т..


Andrey пишет:

 цитата:
Что то не нашел примера по этой функции....



Даже интересно, а где искали?


В харборе:

MyVar := memoread("C:\MyPicture.jpg")

В отчете:

procedure ReportHOnStartReport(Sender: TfrxComponent);
begin
LoadImageFromHbVar(Picture1, 'MyVar');
end;



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




Пост N: 910
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.09.09 17:16. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
В отчете:

procedure ReportHOnStartReport(Sender: TfrxComponent);
begin
LoadImageFromHbVar(Picture1, 'MyVar');
end;



Так я этим уже давно пользуюсь вовсю.....

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


Пост N: 264
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 25.09.09 20:09. Заголовок: Серьезно? :sm15: ..


Серьезно?

Функция LoadImageFromHbVar() существует в FRH 3 дня



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




Пост N: 912
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.09.09 22:47. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Серьезно?



Код примерно одинаков, давали вы его сами:

В харборе:

MyLogoFirma := "путь до картинки"

В отчете:

procedure Picture1OnBeforePrint(Sender: TfrxComponent);
begin
Picture1.Picture.LoadFromFile(GetHbVar('MyLogoFirma'));
end;




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




Пост N: 913
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.09.09 22:58. Заголовок: И опять будет "б..


И опять будет "беда" по передачи переменной.... Если картинка будет большая 1 или 2 Мб ...... Опять наверно будут тормоза...

Так я и не дождался пока решение моей проблемы...
Пришлось проверку вставлять, если текстовый файл меньше 500 Кб то показываю в Фасте,
если больше, приходиться ВОРД грузить с файлом или БЛОКНОТ с файлом....

А хотелось бы от ВОРДА избавиться вообще....

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


Пост N: 265
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 27.09.09 12:44. Заголовок: Andrey пишет: И опя..


Andrey пишет:

 цитата:
И опять будет "беда" по передачи переменной...



Андрей, давайте без фантазий, тем более абсолютно беспочвенных.

LoadImageFromHbVar() позволяет грузить картинки уже загруженные приложением в память, а не использовать внешний файл. Этого очень хотели fivewin-щики, которые любят хранить картинки в ресурсах. Суть операции в просто копировании одного куска памяти в другой. Нечему здесь тормозить.

----
Что касается проблемы с большим текстом. Здесь ситуация другая. Дней 5 назад я вспомнил об этой вашей проблеме, и честно говоря, был сильно удивлен, что она действительно существует

Я отписал об этой проблеме Дэну (Зубов - сейчас ведущий по ядру 4-ки). Он поставил это в TODO. Дело в том, что в 4-ке WordWrap и разбивка по страницам для мемо происходит при каждой операции. И получается, что чем больше страниц занимает одно мемо, тем большое количество одних и тех же операций выполняется. В предыдущих версиях такого не было...

Но, в любом случае, раз есть такой нюанс, то не нужно грузить файл в одно мемо. А нужно использовать для печати больших текстов UserDataSet. Просто, одна строка текста - это будет одна "запись" UserDataSet-а.

Если текст уже выровнен по ширине, то вообще проблем нет, если нет, то придется сначала выровнить.




















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




Пост N: 915
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.09.09 13:00. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Но, в любом случае, раз есть такой нюанс, то не нужно грузить файл в одно мемо. А нужно использовать для печати больших текстов UserDataSet. Просто, одна строка текста - это будет одна "запись" UserDataSet-а.



А можно пример который я вам высылал - переделать под этот UserDataSet ?
Буду очень признателен

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


Пост N: 266
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 28.09.09 15:40. Заголовок: Andrey пишет: А мож..


Andrey пишет:

 цитата:
А можно пример который я вам высылал - переделать под этот UserDataSet ?



Ладно. Пожалуй, сделаю что-нибудь типа SetTxtDataSet(), то есть весь функционал на своей стороне. Деньков 5 подождите.

Просто глянул реализацию и подход MemoLine(), там также будет тормозить, так как будет проход по всему файлу при каждом обращении за следующей строкой...

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




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


Пост N: 267
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 30.09.09 00:51. Заголовок: Андрей. Я пересобр..


Андрей.

Я пересобрал вашу копию с новым функционалом. В общую сборку пока не выкладываю. Скачайте. Жду тестирования.

Добавлен SetTxtDataSet() метод.

Использование:

FrPrn:SetTxtDataSet("MyText", "C:\MyText.txt")
FrPrn:Show/DesignReport()

В отчете появляется датасет, который выдает по одной строке текста. У датасета одно поле с именем LineOfText.

В отчете добавьте MasterData и мемо на это поле. Оба - растягиваемые (Stretch).

Собственно все. Протестируйте.

Поддерживаются как обычные текстовые файлы, так unicode-тексты.

Жду респонса, чтобы выложить в общую сборку.


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




Пост N: 916
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.09.09 22:50. Заголовок: Спасибо, буду тестир..


Спасибо, буду тестировать !

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




Пост N: 918
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.10.09 16:52. Заголовок: Сделал тестовый прим..


Сделал тестовый пример !

Ошибки и что нужно доделать:

1) Сбивается источник данных. Сделал форму все работает, потом выходим из программы, заново заходим, смотрим "Просмотр отчета" и ошибка "Набор данных "MyText" не найден !.
Заходим в Дизайнер, меню "Отчет", меню "Данные" и опять ставим "галочку" на "MyText" ...
Т.е. при новом входе в программу "галочка" скидывается....
Может что-то я не так делаю... Исходник и пример высылаю....

2) Если кодировка файла в ДОС (OEM) то показывает в отчете кракозябы.
Есть ли переключатель для кодировок OEM, ANSI и др. ?

Пример и исходник высылаю. Напоминаю сборка примера: HBMAKE frx-view2file.bc
http://files.mail.ru/TK72SO

Вообще классно получилось... Файл грузится моментально !!!



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


Пост N: 268
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 05.10.09 09:21. Заголовок: Andrey пишет: 1) Сб..


Andrey пишет:

 цитата:
1) Сбивается источник данных.



Ну, Андрей, это же же уже стало "общим местом" Надо наизусть заучить

Все источники данных должны быть определены ДО загрузки отчета, а все переменные ПОСЛЕ.

Поэтому, сначала:

IF LEN(cFileText) > 0
//----------- Load text file for FastReport ------------------
FrPrn:SetTxtDataSet("MyText", cFileText)
ENDIF

А потом:

FrPrn:LoadFromFile( cFileForm )

Поймите, отчет "грузясь", "разыскивает" все источники, которые в нем определены.

Andrey пишет:

 цитата:
2) Если кодировка файла в ДОС (OEM) то показывает в отчете кракозябы.
Есть ли переключатель для кодировок OEM, ANSI и др. ?



Есть конечно, называется Font.Charset

Для OEM поставьте OEM_CHARSET.


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




Пост N: 920
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.10.09 12:19. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Поймите, отчет "грузясь", "разыскивает" все источники, которые в нем определены.


Спасибо, понял.

Sergey Spirin пишет:

 цитата:
Есть конечно, называется Font.Charset



Не нашел такого... Подскажите пожалуйста, где ?

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


Пост N: 269
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 05.10.09 13:06. Заголовок: Andrey пишет: Не на..


Andrey пишет:

 цитата:
Не нашел такого... Подскажите пожалуйста, где ?





Мемо выделяем мышкой, в инспекторе объектов находим слово Font, щелкаем и находим слово Charset. В списке выбираем.

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




Пост N: 921
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.10.09 13:49. Заголовок: Нет там такого..... ..


Нет там такого.....

Или я не то ставлю ....


Вызываем Font:


Не нахожу слово Charset

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


Пост N: 270
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 05.10.09 14:19. Заголовок: Этот, этот Font. П..


Этот, этот Font.

Плюсик у слова Font, он для того там, чтоб подсказывать что на него можно нажать и что-то откроется



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




Пост N: 922
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.10.09 14:33. Заголовок: Спасибо ..... Без ва..


Спасибо ..... Без вас ни фига не разберешься....
Я по документации тоже искал, там нет...

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


Пост N: 272
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 05.10.09 14:46. Заголовок: Ну, выкладывать в об..


Ну, выкладывать в общую сборку то можно? Протестировали?

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




Пост N: 923
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.10.09 15:03. Заголовок: Протестировал, все р..


Протестировал, все работает !
Наверно можно выкладывать, а в качестве примера работы, можете выложить мой пример !
Если что надо, то подправлю....


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




Пост N: 933
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.10.09 22:55. Заголовок: Бродил тут по интерн..


Бродил тут по интернету и нашел для себя:

http://www.itshop.ru/Fast-Reports/Fast/Reports/FastReport/2.5/CLX/l3t1i1284

FastReport 2.5 CLX
Одинаковые отчеты в MS Windows и в Linux!
Вы можете разрабатывать кросс-платформенные отчеты для кросс-платформенных 32-битных приложений, которые будут полнофункциональными как в Windows так и в Linux. FastReport CLX разработан для использования в Delphi 6,7, C++Builder 6 и во всех версиях Kylix (1-3). Помимо MS Windows 95/98/ME/NT/2000/XP, мы тестировали FastReport CLX в следующих версиях Linux: Redhat 7.0-8.0, ASP Linux 7.0-7.3, SuSE 7.0-8.0.

Так что, можно будет получить FastReport под Linux для Harboura ?



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


Пост N: 273
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 08.10.09 23:56. Заголовок: Andrey пишет: Так ч..


Andrey пишет:

 цитата:
Так что, можно будет получить FastReport под Linux для Harboura ?



Обязательно! Андрей, как только рак на горе свистнет, сразу подходите на раздачу!

Еще раз для ожидающих рейса FastReport-Linux, и тем более с заездом в Harbour, сообщаю. Рейс вылетел лет 7 назад... Пропал без вести и снят с продаж года 2 назад. Не читайте на ночь советских (давно устаревших) газет

Может .Net версия устроит, там новый интерфейс, который только будет в FR5 в 2010 году? Ежели Harbour.Net появиться, обещаю, FR.Net портирую для него



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




Пост N: 934
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.09 15:32. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
сразу подходите на раздачу!


Спасибо на добром слове...

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




Пост N: 958
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.11.09 15:19. Заголовок: Привет ! :sm12: Ст..


Привет !
Столкнулся с большой проблемой: Последняя библиотека FastReport "вылетает" при печати на принтер и "грохает" всю задачу !!!
Демо-версия программы печатает без проблем....

Имеется комп с ХР SP-3. Последняя версия библиотеки вылетает при печати или при выборе принтера !


Успел поймать ошибку:



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


Пост N: 291
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 11.11.09 19:21. Заголовок: Andrey пишет: Столк..


Andrey пишет:

 цитата:
Столкнулся с большой проблемой



Сегодня вечером пересоберу с 4.8.28. Может поправили уже.

А вообще, Фаст делает так, стабильными считаются версии с единицей справа - 4.x.1

То что между ними считается не стабильными, рабочими версиями. Когда рабочая снова становится стабильной, средняя цифра увеличивается, а последняя снова 1. Поэтому не стоит гнаться и менять у клиентов Фаст, особенно если ничего в списке изменений для себя важного не видите.




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




Пост N: 959
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.11.09 22:19. Заголовок: Так поменял из-за но..


Так поменял из-за новой формы, которую вы реализовали......

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


Пост N: 205
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.11.09 15:55. Заголовок: Сергею Спирину. Варн..


Сергею Спирину.
Варнинги:
Скрытый текст

FastRepH.prg от 19.11.2009.
Варнинги появились после освежения Harbour (nightly-sources).
Причем опция -w-8075 имеется.
Как к этому относиться?


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




Пост N: 993
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.12.09 12:17. Заголовок: Вопрос: взял форму и..


Взял форму из другого проекта, а там куча Public переменных в форме объявленных в другой программе, типа:
oFrPrn:AddVariable( "My Lovely Vars", "MyNumba" , MyNumba )
Вопрс: Как удалить эти старые переменные на вкладке Variables ?


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




Пост N: 1005
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.12.09 11:46. Заголовок: Бродил по инету, наш..


Бродил по инету, нашел сайт статей по Фасту на Дельфи, может кому и пригодиться:
http://www.reportingfor.info/ru/news.php?cat.4

Для переделки : Унифицированные формы (шаблоны) стандарта FastReport 4.7
http://www.reportingfor.info/ru/download.php

Форумы:
http://www.fastreport.ru/ru/forum/lofiversion/index.php/
http://www.fast-report.com/ru/faq/faq.php?ID=393#3798

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


Пост N: 229
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 27.12.09 15:22. Заголовок: Andrey пишет: Для п..


Andrey пишет:

 цитата:
Для переделки : Унифицированные формы (шаблоны) стандарта FastReport 4.7


Спасибо, очень кстати.

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




Пост N: 1085
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.02.10 13:43. Заголовок: Чем можно просмотрет..


Чем можно просмотреть файл *.fd3 ?
По виду html...
Его можно создать меню "Отчет", далее меню "Переменные", далее "Сохранить".... Создается файл с расширением fd3.

И еще вопрос, можно ли как нибудь получить "список полей" используемых в форме ?

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




Пост N: 1096
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.02.10 09:24. Заголовок: Блин, АУ..... уже н..


Блин, АУ.....
уже новость пропустили 28.12.2009 | Выпущен FastReport VCL 4.9 ....

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


Пост N: 301
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 11.02.10 19:21. Заголовок: Увы, Андрей, извинит..


Увы, Андрей, извините, я что-то разболелся в последнее время.

Но насчет 4.9, я давно уже перекомпилил с 4.9. Следите за версиями по этой ссылке:

http://www.paritetsoft.ru/frh_ver.html

Насчет переменных не очень понял, вопрос как программно их удалять?


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




Пост N: 1113
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.02.10 19:56. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Насчет переменных не очень понял, вопрос как программно их удалять?


Нет, уже не надо, разобрался...

Я сам грипповал, знаю что такое. Сочувствую. Давайте выздоравливайте....

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




Пост N: 1118
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.02.10 09:16. Заголовок: Не знаю как сделать ..


Не знаю как сделать форму !

Имеем форму лист А4. Лист поделен на 2 части. Чтобы наглядней представить: пример печати абонентских книжек.
На 1-ой части обложка книжки, на 2-ой части сама квитанция.
Квитанций может быть 1,2,3 ... до 12 штук (то есть записей в БД)
Имею БД каждый раз, произвольного значения.

Подскажите как реализовать печатную форму.


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


Пост N: 302
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 14.02.10 23:41. Заголовок: Andrey пишет: Не зн..


Andrey пишет:

 цитата:
Не знаю как сделать форму !



А в чем проблема то? Обложка одна, а квитанций много? Ну так сделайте ReportTittle на пол-листа, это будет обложка, и MasterData на пол-листа, это квитанции. Или что?

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




Пост N: 1120
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.02.10 10:44. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Ну так сделайте ReportTittle на пол-листа, это будет обложка, и MasterData на пол-листа, это квитанции.



На ReportTittle должен присутсвовать, ФИО абонента, АДРЕС абонента, Л/Счет абонента и там еще по мелочи....
А на MasterData тоже самое + сумма оплаты и реквизиты оплаты.
Вопрос еще в том как базу строить ?
1)
Записывать записи для MasterData (допустим поле KType := 2) ?
И добавлять туда записи для ReportTittle (допустим поле KType := 1) ?
2)
Или нужно делать 2 базы: одну для Обложки, а вторую для Квитанций ?

Пример: нужно распечатать 2 квитанции, за январь и февраль. Имеем: Обложка+январь - это 1-ый лист, февраль+Обложка второго абонента - это 2-ой лист и т.д.
Кол-во печати по месяцам задает сам пользователь. от 1 месяца до 12-го....
Вот в этом то и затруднение...


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


Пост N: 318
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 15.02.10 10:53. Заголовок: Andrey пишет: 1) З..


Andrey пишет:

 цитата:

1)
Записывать записи для MasterData (допустим поле KType := 2) ?
И добавлять туда записи для ReportTittle (допустим поле KType := 1) ?
2)
Или нужно делать 2 базы: одну для Обложки, а вторую для Квитанций ?


Я б две сделал.

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


Пост N: 303
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 15.02.10 16:04. Заголовок: Andrey пишет: Вопро..


Andrey пишет:

 цитата:
Вопрос еще в том как базу строить ?
1)
Записывать записи для MasterData (допустим поле KType := 2) ?
И добавлять туда записи для ReportTittle (допустим поле KType := 1) ?
2)
Или нужно делать 2 базы: одну для Обложки, а вторую для Квитанций ?



Что-то, прям, про какую-то азбуку речь В смысле реляционность

Конечно, 2 таблицы.

Если обложек много в отчете, то какой нафик ReportTittle. Очевидно, что:

обложка - MasterData
квитанция - DetailData

Не забудьте установить отношение MasterDetail.... Что-то мне подсказывает, что здесь может быть непонимание... Постарайтесь разобраться с Detail, SubDetail, 4,5,6 - уровни.... Для чего это нужно?



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




Пост N: 1124
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.10 14:57. Заголовок: Пока отложил MasterD..


Пока отложил MasterDetail.....

Потребовалось срочно другое...
Если в FastReport в DialogPage пользователь меняет данные, как их получить эти измененные данные обратно в Харбор ?

Например мемо переменную cPubMemo ?
Я во вкладке "Код" пишу:
procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
MemoRem.Text := GetHbVar('cPubMemo');
end;


А как возвращать ?

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


Пост N: 304
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.02.10 17:12. Заголовок: Andrey пишет: Я во ..


Andrey пишет:

 цитата:
Я во вкладке "Код" пишу:
procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
MemoRem.Text := GetHbVar('cPubMemo');
end;

А как возвращать ?




SetHbVar(...)

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




Пост N: 1126
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.10 17:41. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
SetHbVar(...)



А имя процедуры какая ?

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


Пост N: 305
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.02.10 18:14. Заголовок: Andrey пишет: А имя..


Andrey пишет:

 цитата:
А имя процедуры какая ?



Событие что ли какое? Это уж выбирайте в какой момент вам что нужно сохранять/возвращать...

Если вы про диалоговою форму, то скорее всего это буде OnCloseQuery.

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




Пост N: 1129
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.10 18:18. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Если вы про диалоговою форму, то скорее всего это буде OnCloseQuery.



Да, да, диалоговая форма, чтоб когда пользователь изменил что-то, то эти переменные ушли в хХарбор...
Т.е. там кнопка будет "Ок" и после нажатия на этой кнопке, сохранить переменные...
А подробней можно ?

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


Пост N: 306
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.02.10 18:23. Заголовок: Andrey пишет: А под..


Andrey пишет:

 цитата:
А подробней можно ?



Как положить кнопку на форму?

А у кнопки есть конечно событие OnClick. Как двойным щелчком сделать болванку знаете?

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




Пост N: 1130
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.10 21:15. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Как положить кнопку на форму?


Да про это не нужно...
Болванку сделали, а дальше ?
Мне нужно имя процедуры, в которой можно вернуть все переменные....
procedure DialogPage ????



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




Пост N: 1131
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.10 23:12. Заголовок: А где новую версию с..


А где новую версию скачивать ?

Давно это не делал, захожу по ссылке:
http://www.fast-report.com/cgi-bin/user/user.pl

А там новой версии нет....


Где скачивать теперь ?

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


Пост N: 307
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.02.10 23:22. Заголовок: Andrey пишет: Да пр..


Andrey пишет:

 цитата:
Да про это не нужно...
Болванку сделали, а дальше ?
Мне нужно имя процедуры, в которой можно вернуть все переменные....
procedure DialogPage ????



...Под болванкой я имел в виду не кнопку на форме, конечно Ладно, давайте по порядку.

Собственно, то что вам надо называется СОБЫТИЕ (event). Вообще говоря, событие это не процедура в общем смысле, а метод объекта (если еще точнее, то поле процедурного типа). События, как и свойства (property) имеют "взаимодействие" с дизайн-тайм. Поэтому не нужно гадать какие события есть у какого объекта. Достаточно выделить этот объект и посмотреть вкладку Events в инспекторе объектов. Там перечислены все события этого объекта. Для того, чтобы создать ОБРАБОТЧИК события, надо встать в инспекторе объектов на пустую ячейку справа от названия события и сделать дабл-клик. Создастся "болванка" (прототип) обработчика, между begin-end можно писать код.

Потренируйтесь на кнопке. Выделите ее и создайте обработчик события OnClick. Или для диалога OnCloseQuery.









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


Пост N: 308
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 17.02.10 23:24. Заголовок: Andrey пишет: А где..


Andrey пишет:

 цитата:
А где новую версию скачивать ?

Давно это не делал



Склероз, дело такое, будьте осторожней Естественно, скачивать по ссылке, полученной от меня при регистрации.

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




Пост N: 1132
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.10 23:36. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Склероз, дело такое, будьте осторожней



Это точно...
Ссылку вообще спрятал так что найти невозможно... Нашел... на шифрованном диске... Голова уже точно не работает


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




Пост N: 1133
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.10 23:38. Заголовок: Как вам программа пр..


Как вам программа просмотра файлов *.fr3 на MiniGui ?
Я вам на почту высылал...

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


Пост N: 309
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 18.02.10 08:40. Заголовок: Andrey пишет: Как в..


Andrey пишет:

 цитата:
Как вам программа просмотра файлов *.fr3 на MiniGui ?



Тихий ужас. А если учесть, что я никогда не оставляю стандартного разрешения в Виндах и меняю размеры шрифтов, то смотрится просто как некий бред... Это если отвлечься от "богатого" функционала.... Основа этого функционала, насколько я понимаю, в кнопке "Об авторах" И даже на таком "широком" поле умудриться сделать баги




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




Пост N: 1134
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.02.10 09:06. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Тихий ужас


Подскажите как сделать лучше...Andrey пишет:

 цитата:
я никогда не оставляю стандартного разрешения в Виндах и меняю размеры шрифтов


А какой размер шрифта и разрешения ?

Это на Дельфи легко менять, а здесь и не знаешь как подступиться....
Это проба моя перехода с терминала на GUI....

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


Пост N: 310
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 18.02.10 11:19. Заголовок: Andrey пишет: Подск..


Andrey пишет:

 цитата:
Подскажите как сделать лучше..



Я не очень понимаю смысл этого. Программа открывает fr3-файл в дизайнере. И что?

Andrey пишет:

 цитата:
А какой размер шрифта и разрешения ?



Да в зависимости от места, обычно ставлю крупный шрифт в системе - 120 dpi, либо офрмление достраиваю, обычно увеличиваю шрифт стандартных элементов. Не люблю когда мелко.... Вм дилетанских программах при этом все "разъезжается"...

Andrey пишет:

 цитата:
Это на Дельфи легко менять, а здесь и не знаешь как подступиться....
Это проба моя перехода с терминала на GUI....



Ну, у вас же есть некая претензия на универсальность - "FR Viewer" ... Типа должно ставиться везде и работать...

Да, в Дельфи есть все необходимое для балансировки интерфейса на любых вариантах (Scaling, Aligning, Anchors и.т.д.)... Боюсь, что в МiniGUI ничего этого нет. Отсюда вывод - МiniGUI (да, собственно, не только) не для универсальных приложений....Andrey пишет:


 цитата:
Это проба моя перехода с терминала на GUI....



Ну чтож, пробуйте, учитесь Ну и, FR все-таки поизучайте, если уж его при этом используете.



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




Пост N: 1143
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.03.10 00:08. Заголовок: Проблема с версией 4..


Проблема с версией 4.9 ! Да и с другими тоже.... Не идет печать - ВЫЛЕТАЕТ !!!




Поставил на комп новую версию библиотеки. Система Win XP SP3. Вирусов нет, ставил и проверял AVZ + Касперский.
С печатью просто беда. Как выбираешь принтер Xerox, так вылет. В файл и Microsoft XPS Document Writer нормально печатает.
Переставлял драйвер Xerox (удалил, перегрузил), та же самая картина - ВЫЛЕТ !!!

Что ДЕЛАТЬ ?


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


Пост N: 311
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 04.03.10 18:18. Заголовок: Andrey пишет: Как ..


Andrey пишет:

 цитата:
Как выбираешь принтер Xerox, так вылет.



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

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




Пост N: 1145
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.10 23:50. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
В таких случаях обычно помогает установка самой последней версии драйвера, скаченного с сайта производителя.


Не помогает.... И вычищал систему от драйверов принтера, и ставил свежий драйвер принтера...
Только с бубном не танцевал вокруг этого компа....

Предыдущая версия по моему 4.5 работала без проблем....

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


Пост N: 312
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 06.03.10 21:31. Заголовок: Andrey пишет: Не по..


Andrey пишет:

 цитата:
Не помогает.... И вычищал систему от драйверов принтера, и ставил свежий драйвер принтера...




Ну что еще посоветовать? "Поиграйтесь" с возможными вариантами настроек в драйвере... Как последнее, можете попробовать написать в Xerox и в Fast.

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




Пост N: 1150
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.03.10 00:40. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
Не забудьте установить отношение MasterDetail.... Что-то мне подсказывает, что здесь может быть непонимание...



Это просто засада !
Читаем Хелп, вроде просто...


Ни фига не понятно !
Сделал отдельный пример - скачивать здесь: http://files.mail.ru/3D9GL9

В отчете, на банде MasterData поставлена птичка StartNewPage [v] True, чтобы Титульный лист всегда печатался с новой страницы.
Не могу сделать саму мастер-детальную связь !

Суть в том что у меня есть два набора данных (dbf) : KvitkiMaster и Kvitki.
Как по документации я понял что нужно:
перед вызовом отчета, внутри моей задачи нужно сделать так, чтобы при перемещении с записи на запись в таблице KvitkiMaster, на данные в таблице Kvitki налагалось ограничение или фильтр с условием KvitkiMaster.NNN = Kvitki.NNN
т.е. стоишь в KvitkiMaster на записи с номером NNN 1321, а в наборе данных Kvitki отображаются только 4 строчки с номером NNN=1321.

В файле Frx-Dbase.prg сделал:
USE KvitkiMaster ALIAS EXP_TITLE NEW // Открыть базу Master
aAlias := {} ; aSelect := {}
AADD( aAlias , ALIAS() ) ; AADD( aSelect , SELECT() ) // Добавить в массив для иниц. в FastReport

USE Kvitki ALIAS EXP_KVITK NEW // Открыть базу Detall
AADD( aAlias , ALIAS() ) ; AADD( aSelect , SELECT() ) // Добавить в массив для иниц. в FastReport

SELECT EXP_TITLE
SET RELATION TO NNN INTO EXP_KVITK

Где здесь засада ?


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




Пост N: 1151
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.03.10 14:06. Заголовок: Нашел решение ! Спас..


Нашел решение !
Спасибо TimTim за подсказку !
Нужно сделать индекс по БД:
SELECT EXP_KVITK
INDEX ON Field->NNN TO Kvitki

И сделать Мастер-Деталь связь в FastReport после настройки рабочих областей (M->FrPrn:SetWorkArea(.....) )
M->FrPrn:SetMasterDetail( "EXP_TITLE", "EXP_KVITK", { || EXP_TITLE->NNN } )
M->FrPrn:SetResyncPair( "EXP_TITLE", "EXP_KVITK" )

Рабочий пример здесь: http://files.mail.ru/KXTFO4
Пользуйтесь и не попадайте на мои ошибки....

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


Пост N: 313
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 08.03.10 20:30. Заголовок: Andrey пишет: Нашел..


Andrey пишет:

 цитата:
Нашел решение !
Спасибо TimTim за подсказку !
Нужно сделать индекс по БД:



Ну, слава богу. Вообще говоря, если вы используете инструмент, то вы ОБЯЗАНЫ знать ВСЕ методы (процедуры и функции), которые этот инструмент предлагает. Тем более, FastRepH.prg входит в поставку, то есть, весь список у вас перед глазами...

Кстати, вызов SetResyncPair() здесь абсолютно не нужен. SetResyncPair() используется тогда, когда FRH НЕ ЗНАЕТ о существование какого-то отношения установленного в Харбур-коде. MasterDetail же устанавливается здесь в самом FRH.



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




Пост N: 1152
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.03.10 20:36. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
вы используете инструмент, то вы ОБЯЗАНЫ знать ВСЕ методы (процедуры и функции), которые этот инструмент предлагает


Если есть ПОЛНАЯ документация с примерами.... А Фаст не блещит примерами....
Толковые примеры видел только тут http://www.reportingfor.info/ru/news.php?extend.71

И методика работы FastReport все таки отличается от xBase !

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


Пост N: 314
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 08.03.10 22:14. Заголовок: Andrey пишет: Если ..


Andrey пишет:

 цитата:
Если есть ПОЛНАЯ документация с примерами....



Так, стоп, дорогой. Во-первых,

1. FRH полностью ДОКУМЕНТИРОВАН!

Во-вторых:

2. Даже в этом топике я предлагал скачать русскую версию (старую для Xbase) и изучить. Конечно, там все о MasterDetail есть.

---------
P.S. I hope you understand something...





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




Пост N: 1153
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.03.10 01:39. Заголовок: Sergey Spirin пишет:..


Sergey Spirin пишет:

 цитата:
там все о MasterDetail есть.


Ну блин, как всегда, самое интересное пропустил...
Пошел учить матчасть....

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


Пост N: 333
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 18.03.10 12:14. Заголовок: Сергею Спирину: Здра..


Сергею Спирину:
Здравствуйте!
По-моему, в FRH есть баг.
Проблема с элементом TfrxHarbourWorkArea файла отчета (.fr3). В нем есть атрибут WorkArea.
Так вот, FRH пытается брать данные из базы с номером WorkArea, не взирая на атрибут Alias.
Т.е., если, к примеру, добавить в проект один (или несколько) файлов .dbf, то номера открытых РО смещаются,
что приводит к неправильной выборке или к run-time error. Такой же "эффект" происходит, если данные для
отчета берутся из временного файла .dbf. Номер РО, в которой он будет открыт, предсказать невозможно.
Это довольно срочно... Спасибо.

ЗЫ: SetWorkArea() проблему не решает.

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


Пост N: 318
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 18.03.10 14:57. Заголовок: Привет, PSP пишет: ..


Привет,

PSP пишет:

 цитата:
По-моему, в FRH есть баг.



Ну, баг-не-баг, но нюанс есть. Действительно, если установлены оба свойства - WorkArea и Alias, то приоритет отдается WorkArea. Поэтому, если вы хотите работать только по алиасу, то всегда обнуляйте WorkArea, ставьте 0.

Нюанс же в том, что при установке одного из этих свойств в инспекторе объектов, устанавлюваются оба по текщему положению. При отдавании приоритета алиасу надо не забыть обнулить WorkArea.


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




Пост N: 3725
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.11.13 15:08. Заголовок: Запарило ручками дел..


Запарило ручками делать отчеты , хочется пощупать FastReport.
К нему есть дока на русском языке или что то типа быстрого старта ?

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



Пост N: 83
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 19.11.13 16:25. Заголовок: Конечно. Есть на сайте.


click here

или старая документация от Fastrep3(4)
click here

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




Пост N: 3101
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.11.13 19:31. Заголовок: Давай мыло, вышлю пр..


Давай мыло, вышлю примеры и доку.


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




Пост N: 3727
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.11.13 20:04. Заголовок: Andrey пишет: Давай..


Andrey пишет:

 цитата:
Давай мыло


Скинул в лс

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



Пост N: 21
Зарегистрирован: 22.03.06
ссылка на сообщение  Отправлено: 20.01.14 10:58. Заголовок: Dima пишет: Запарил..


Dima пишет:

 цитата:
Запарило ручками делать отчеты , хочется пощупать FastReport.



Реинкарнация FastReport здесь FastReport for Xailer and (x)Harbour
Цена 300 евро.
Есть совместимость с версией от Сергея Спирина.
Демо версия имеет те же ограничения (5 листов и ватермарк)

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

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