Форум » [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: Залез на сайт FastReport и обалдел.... Сколько типов графиков в компоненте Chart там есть.... А у нас только один "Standart" ... А когда у нас ОНИ БУДУТ ???

Sergey Spirin: Andrey пишет: Залез на сайт FastReport и обалдел.... Сколько типов графиков в компоненте Chart там есть.... А у нас только один "Standart" ... А когда у нас ОНИ БУДУТ ??? Хоть завтра, удовольствие стоит 700$. Я не шучу Все Чарты реализуются библиотекой TeeChart. TeeChart Standard - это часть Delphi. TeeChart Professional - за дополнительные деньги. Я с ними (TeeChart - испанская компания), кстати, уже вел переговоры, объясняя надобность. Скидку на клиента они давали, но все равно получалось, что FRH/FRAX с TeeChart Professional должен был бы стоить более, чем в 2 раза дороже.

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


Sergey Spirin: Andrey пишет: Это к Fast'y еще 700 баксов ??? Почему к Фасту, это к Delphi, если хочется хорошие чарты, в том числе и в Фасте. Кстати, сейчас глянул, немного подешевело 579$: http://www.teechart.com/ordering/order_tchpro8vcl_n.shtml Andrey пишет: Блин.... Жмоты они .... баксов 200 бы может и отдал, а 700 - ну уж нет.... Никому из моих заказчиков графики ЗА ТАКИЕ ДЕНЬГИ !!! - они (заказчики) просто удавятся. Кто жмоты? Испанцы или заказчики? Вообще-то, испанцы продают за ту цену за которую у них покупают, не более. А заказчикам, если это не нужно за эти деньги, то и не нужно... Кстати, для вас это была бы цена за всех заказчиков, так как это developer-лицензия. За профессиональную Chart-библиотеку это не сказать, что сильно дорого. Просто "нужно" и "хочется" - вещи разные.

Andrey: Sergey Spirin пишет: Кстати, для вас это была бы цена за всех заказчиков, так как это developer-лицензия. Да я понимаю, что для меня это было бы дешевле.... Только на графиках я бы сделал от силы 2-им заказчикам ... Другим это не в надобность... А сколько будет стоить "Графика" и "Фаст" для чужого заказчика ? Может я кого-нибудь подряду под это дело ..... Sergey Spirin пишет: Просто "нужно" и "хочется" - вещи разные. Согласен на все 100 !

Петр: 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

Петр: Небольшое разьяснение Вы здесь не видете вызов UnloadFr(), потому что в исходниках frReportManager я определил этот метод как деструктор DESTRUCTOR UnloadFr() .. PROCEDURE UnloadFr CLASS frReportManager .. RETURN и еще обьявил Init как METHOD Init( cOptionalPath ) CONSTRUCTOR Никаких других изменений не делаю. Все остальное добавляю или созданием нового класса с родителем frReportManager или динамически создавая нужные свойства (методы) экземпляру класса (обьекту). В данном примере использованы сразу два этих метода.

Петр: 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

Петр: Скрипт для любителей 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

Петр: Andrey пишет: А сколько будет стоить "Графика" и "Фаст" для чужого заказчика ? Может я кого-нибудь подряду под это дело ..... Если вам действительно нужна графика за приемлемую цену, то рекомендую обратить внимание на rmchart Цена - потраченое время на изучение и адаптацию - вполне демократическая P.S. В MiniGUI пример тоже имеется.

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

Петр: Можно. Я к примеру собираю вот так @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=

Петр: Для сборки нужна утилита make GNU. Я использую mingw32-make.exe из состава MigW 3.4.5 Просто переименовал ее в make.exe и поместил в %WATCOM%\BINNT

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

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

Sergey Spirin: Andrey пишет: просто как обойтись без нее.... [FormatMaskText( '(000) 000-00-00;0', <Table."Field">)]

Andrey: Был на выставке Softtools, подходил на стенд FastReport, спрашивал насчет графиков (Типы графиков в компоненте Chart). Сказали следующее: скачать новую DLL если есть лицензия и ПРОСТО ПОЛЬЗОВАТЬСЯ, так как они уже включены в поставку..... А у нас тогда почему нет ???

Sergey Spirin: Andrey пишет: Был на выставке Softtools, подходил на стенд FastReport, спрашивал насчет графиков (Типы графиков в компоненте Chart). Сказали следующее: скачать новую DLL если есть лицензия и ПРОСТО ПОЛЬЗОВАТЬСЯ, так как они уже включены в поставку..... А у нас тогда почему нет ??? Так у вас есть лицензия на TeeChart Pro? И какую такую новую dll надо скачать? И что включено в какую поставку?

Andrey: У них там на стенде была версия 4.5.43 (Дали диск с демо версией FastReport Studio) Так там куча типов графиков: Standart, Extended, Stats, Financial, Other Может я и сразу не сделаю все графики, но хочется иметь их тоже на будущее Ну я взял эту Fastreport3.dll от Studio и подключил к себе в проект.... Не ЗАРАБОТАЛО !!! Конечно догадывался, что не пойдет так просто... , так на всякий случай... Резуме, так как получить эти графики к себе в FastReport ?

Sergey Spirin: 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 за юзерское одно рабочее место. Надеюсь, что разница очевидна.



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