Форум » [x]Harbour » ANN: Вышел релиз FastReport for [x]Harbour » Ответить

ANN: Вышел релиз FastReport for [x]Harbour

Sergey Spirin: Здравствуйте. Рад сообщить, что вышел релиз 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

Ответов - 258, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All

Andrey: Не понятно ! Наверно нужно уточнить задачу. Привожу картинку отчета. Сделал как вы рекомендовали: 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 ! Заранее спасибо.

Sergey Spirin: 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 вы справитесь самостоятельно, направление: "мышление по аналогии"

Andrey: Sergey Spirin пишет: при DatsSet = DOGOVOR, любое изменение DataField правильно изменит содержимое. Блин, я замучился искать эту штуку. Бился, бился, думал все... работать не будет ! А оказывается я на глобальный DatsSet - Report поставил.... А потом все заработало !!! Спасибо большое.....


Andrey: Всех с наступившим Новым Годом !!! Подскажите, как можно организовать отчет следующего типа: [ABONENT."ADRES''] УВАЖАЕМЫЙ АБОНЕНТ ! [MyFirmaBook] сообщает, что Ваша задолженность по оплате за техническое обслуживание дома составляет: [ABONENT."DOLG_PRN"] руб. на [ABONENT."DATENACH"] г. В случае неуплаты ДО [GetHbVar('cOplataDo')] г. вы будете ..... И т.д. ........... Текст хотелось бы иметь как "Объект Rich Text". Это получилось. Но при "просмотре отчета" нужна КНОПКА для редактирования текста пользователем или запрос на редактирование текста... Это я не знаю как сделать.....

Sergey Spirin: Andrey пишет: Текст хотелось бы иметь как "Объект Rich Text". Это получилось. Но при "просмотре отчета" нужна КНОПКА для редактирования текста пользователем или запрос на редактирование текста... Это я не знаю как сделать..... В предпросмотре уже есть такая кнопка, называется - "Редактировать страницу". Загружается дизайнер в режиме редактирования уже сформированного отчета. В чем проблема?

Andrey: Всем привет ! Столкнулся с такой неприятной вещью ! При ЭКСПОРТЕ (предварительный просмотр) в другой формат (допустим WORD), при последующем выборе "Открыть после экспорта" выскакивает окно "Сохранить как". И вот путь этот для сохранения выскакивает ПЕРИОДИЧЕСКИ в папку, где лежат все формы !!! Блин, как убрать этот путь, чтоб юзера не писали мне в ПАПКУ с формами ?

Sergey Spirin: Andrey пишет: Блин, как убрать этот путь, чтоб юзера не писали мне в ПАПКУ с формами ? Заглянуть в мануал и увидеть, что у всех экспортов есть проперть DefaultPath.

Andrey: Sergey Spirin пишет: Заглянуть в мануал и увидеть, что у всех экспортов есть проперть DefaultPath. Спасибо, забыл что есть документация....

Andrey: Возвращаюсь опять к этому вопросу ! Andrey пишет: цитата: Подскажите пожалуйста, а могу ли я через FastReport печатать свои текстовые файлы OEM или WIN кодировки ? Sergey Spirin пишет: Кладете ReportTittle, на него мемо во всю ширину, оба чтоб были растягиваемыми. Вот, собственно, и все. Грузите теперь файлы в мемо. Создал ReportTittle1, на него положил картинку, название фирмы, название отчета. Далее положил MEMO1 c выводом [GetHbVar('cFileMemo')] Создал PageFooter1, для печати нумерации страниц. Результат: ПОКАЗЫВАЕТ ТОЛЬКО ОДНУ СТРАНИЦУ ! Подскажите пожалуйста, где нужно сделать (свойства объектов) чтоб "оба были растягиваемыми" ?

Sergey Spirin: Andrey пишет: Подскажите пожалуйста, где нужно сделать (свойства объектов) чтоб "оба были растягиваемыми" ? Заветное слово в свойствах - Stretch. По правой кнопке мышы - "Растягиваемый".

Andrey: Сделал.... Программа уходит в АУТ ... где-то 1000 страниц и более ... даже не смог дождаться, на файле размером в 30 Кб. Т.е. я считываю файл в переменную и вывожу на форме [GetHbVar('cFileMemo')] На объекте PageHeader1 делаю свойства Stretch: True ..... И еще такой БАГ, если в тексте встречаются [ ], то выдает ОШИБКУ и отчет не показывается...

Sergey Spirin: Andrey пишет: Программа уходит в АУТ ... где-то 1000 страниц и более ... даже не смог дождаться, на файле размером в 30 Кб. О, господи. Ну хоть чуть-чуть подумать то, а? Я что-то говорил про PageHeader? Было бы забавно, если б смог дождаться PageHeader печатается на каждой странице. Грузим в него сожержимое, которое больше страницы. Инициализруется новая страница с PageHeader, в который грузим сожержимое, которое больше страницы и т. д. Есть шансы дождаться? Andrey пишет: И еще такой БАГ, если в тексте встречаются [ ], то выдает ОШИБКУ и отчет не показывается... Баги, Андрей, они явно в другом месте А в Фасте есть разделители выражений, по умолчанию [,]. Их можно переопределить, свойство - ExpressionDelimeters. В случае с файлом обработку выражений можно вообще отключить, что уберет ненужный парсинг, свойство AllowExpressions. А текст грузить: procedure Memo2OnBeforePrint(Sender: TfrxComponent); begin Memo2.Text := GetHbVar('cFileMemo'); end;

Andrey: Sergey Spirin пишет: Баги, Андрей, они явно в другом месте Ну конечно, баги всегда у пользователя, включая пользователей моих программ..... Что увидел, то и написал

Andrey: Sergey Spirin пишет: А текст грузить: procedure Memo2OnBeforePrint(Sender: TfrxComponent); begin Memo2.Text := GetHbVar('cFileMemo'); end; Почему то не сработал ! Естественно ставил Memo1 - как объект у меня назван. После длительных изысканий ..... нашел более простое решение ! А БАГ с [,] почему-то перестал существовать. Непонятно ! Большое СПАСИБО за помощь ! Пока кого-нибудь не спросишь, ответа - не найдешь, самое главное процесс ....

Andrey: Для загрузки картинки использую след. код: procedure Picture1OnBeforePrint(Sender: TfrxComponent); begin Picture1.Picture.LoadFromFile(GetHbVar('MyLogoFirma')); end; А как сделать загрузку Текстового файла ? Сделал примерно так: procedure Memo1OnBeforePrint(Sender: TfrxComponent); begin Memo1.Text.LoadFromFile(GetHbVar('MyFileTxt')); end; Ругается на синтаксис ! Где можно синтаксис посмотреть ?

Sergey Spirin: Memo1.Memo.LoadFromFile(.... Набрав имя объекта и напечатав точку, например Memo1., нажмите Ctrl+Пробел, вам будет предложен полный список всех вариантов, что может быть напечатано далее Да и, собственно, вкладка Classes, она не для красоты только существует, а еще для того, чтобы посмотреть списки свойств и методов.

Andrey: 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() А можно без перечисления всех этих ОБЪЕКТОВ ? Нет ли какой-нибудь Глобального метода ?

Sergey Spirin: Andrey пишет: А можно без перечисления всех этих ОБЪЕКТОВ ? Нет ли какой-нибудь Глобального метода ? Нет. Кладите такую инициализацию в Init-ы.

Andrey: Понятно ! С этим разобрались ... А как сделать чтоб при экспорте не появлялось окошко с запросом сохранения и сделать запуск программы "Открыть после экспорта" ? Т.е. если используем WORD то сразу запускался WORD после экспорта ....

Sergey Spirin: Andrey пишет: А как сделать чтоб при экспорте не появлялось окошко с запросом сохранения и сделать запуск программы "Открыть после экспорта" ? Открыть любую дему, выбрать "Export Report", тыркать мышью и думать.



полная версия страницы