Форум » [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

Sergey Spirin: viktorlvv пишет: саппорт FastReport это куда ? В англоязызную поддержху? Попробуй им изложить суть проблемы на моем ломаном англиском А Вы разве не в ходите в группу поддержки? Ах, да, саппорт работает только для купивших. Насчет же ломанного английского откуда такие представления? Ответ тоже не на чистейшем получите У всей поддержки родной язык - русский. Fast Reports Inc, абсолютно российская компания из Ростова-на-Дону, все в ней работающие - русские Даже в эбауте стоит в первую очередь копирайт Саши Цыганенко, исторического автора FR, одного из лучших Дельфистов страны. Иностранцы (Горд, Херберт и Коул (те кого я знаю)) работают только на поддержке в англоязычных конфах. Я - OEM-партнер FastReport, моя зона ответственности Alaska и Harbour, что там в матрице, конечно, я и не знаю. viktorlvv пишет: Сам продукт не плох.javascript:pst3(' ','','','','') Есть маленькие недоработки. В данном случае просто иногда надо вывести нормальный отчет бысто на матричный принтер понятно что с потерями но ВЫВЕСТИ!И причем хочется управлять этим процессом программо А я так не не понял как.TXTExport работает наполовину DotMatrixExport вобже не работает Сергей посодействуйте и зделайте так чтоб продукт работак так как заложили проэктировщики За продукт - спасибо DotMatrixExport - это печать именно матричного отчета. Почему печать такого отчета назвали экспортом не знаю, но догадываюсь :) Ok, на досуге продебажу этот экспорт и посмотрю, что там к чему. viktorlvv пишет: и еще не понятен для чего нужен диалог согранения файла если мне надо вывести отчет на печать? Потому что это экспорт в файл в первую очередь, потом уже кому-то пришло в голову печатать это на матрицу.

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

Sergey Spirin: viktorlvv пишет: Вот и хочу чтоб исправили эту маленькую недоработку с экспортом Причем думаю что для Делфи и С этих проблем нет есть только для Харбор потому что недавно сделали Нет, это невозможно, код FastReport VCL у меня компилируется без единого исправления. Мой код - это код взаимодействия с Харбором. Так что баг существует везде, просто этот экспорт редко реально используется. Ok. Про Accsess violation я в саппорт кинул. Как выставить тип принтера программно для этого диалога посмотрю.


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

Sergey Spirin: C 6-го по 25-е августа буду в отпуске. В это время продажи и обновления персональных копий FRH производиться не будут. Но, надеюсь, что просматривать конфы буду регулярно. -- Спирин Сергей.

Andrey: Sergey Spirin пишет: цитата: Кстати можно обсудить набор наиболее используемых функций и я добавлю их в FRH, чтобы не добавлять кодом. Sergey Spirin пишет: цитата: По умолчанию же, думаю, можно добавить не более десятка наиболее часто используемых. С этим десятком нужно определиться. Определяемся: ALLTRIM() PADC() PADL() PADR() TRANSFORM() MEMOTRAN() MEMOLINE() DTOC() STR() VAL() IIF() CHR() Когда будет это сделано ??? Начал переделывать отчеты и затык.... слишком уж часто пользуюсь стандартными функциями !!! Я думаю, что и другие тоже пользуются этим....

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

Sergey Spirin: Здравствуйте, Андрей, Andrey пишет: Определяемся: ALLTRIM() PADC() PADL() PADR() TRANSFORM() MEMOTRAN() MEMOLINE() DTOC() STR() VAL() IIF() CHR() Дело в том, что добавить все эти функции большого труда не составляет, поэтому многие пользователи уже это себе добавили. Получается ситуация, что если я это добавлю прямо в поставку, я просто много задублирую. Поэтому я не стал этого делать. В принципе, можно будет сделать просто дополнительный пример..... Andrey пишет: И еще один вопрос: Как сделать отчет только из одной текущей записи в БД ? Где и как указать что печатать только одну запись ? Смотрите четвертый параметр в SetWorkArea, либо RangeXXX-свойства в frxHarbourWorkArea.

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

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

Andrey: Подскажите пожалуйста, как сделать свою функцию по добавлению след. переменных и функций: Не буду же я всегда писать один и тот же код во многих местах.... //-------- 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

Sergey Spirin: 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

Andrey: Спасибо !!! Но здесь есть одно но ! Объявление переменных должны идти после загрузки формы ! Это вы писали..... InitFr(@FrPrn) // @ - ссылка на объект для изменения его внутри вызываемой функции //----------- Load file form FastReport ---------------------- FrPrn:LoadFromFile( cFileForm ) InitFrVars(@FrPrn) ??? ---------------------- Сделал ! Работает .... Только одну вещь подметил, что Public переменные "затолкнутые" в форму FastReport сохраняются там навсегда. И в принципе их потом можно не "заталкивать" !!!

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

Sergey Spirin: 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;

Andrey: 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 переменную и передавал бы в "Фаст". А как тогда будет выглядеть это УСЛОВИЕ в Фасте ? Третий день бодаюсь с Фастом, не могу заставить печатать.... Уже сделал отдельный пример, вышлю вам на ящик наверно...

Sergey Spirin: 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'));

Andrey: Sergey Spirin пишет: procedure MasterData1OnBeforePrint(Sender: TfrxComponent); begin MasterData1.Visible := <Customers."CUSTNO"> = 1354; end; Нифига не работает !!! В печати "чистые" страницы если не попадает под условие <ABONENT."DOLG_2008"> < -100

Andrey: Sergey Spirin пишет: цитата: Я бы это условие затолкал бы в Public переменную и передавал бы в "Фаст". А как тогда будет выглядеть это УСЛОВИЕ в Фасте ? MasterData1.Visible := EvalMacro(GetHbVar('MyVar')); А переменную MyVar мне как "готовить" по Паскалю или Харбору ?

Sergey Spirin: Andrey пишет: Нифига не работает !!! В печати "чистые" страницы если не попадает под условие <ABONENT."DOLG_2008"> < -100 Ищите ошибку. Andrey пишет: А переменную MyVar мне как "готовить" по Паскалю или Харбору ? GetHbVar - берет содержимое Харбор переменный EvalMacro - выполняет Харбор-макрос И как думаете? Ладно, присылайте, утром посмотрю.



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