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

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

Sergey Spirin: Andrey пишет: 11 июля выпущены FastReport for COM/ActiveX и FastReport for Business версии 4.9 Что нового? + формат картинок во всех экспортах изменён на PNG + добавлен экспорт в DBF формат - этот формат востребован при обмене данными модулями различных бизнес-приложений. А у нас это когда будет ? Я не тороплюсь, просто спрашиваю.... А у нас это уже давно есть :) FastReport for COM/ActiveX и FastReport for Business (бывшая Студия) - это вторичные продукты по отношению к базовой FastReport VCL. В них все/всегда появляется позже. экспорт в DBF же я пока не публиковал, так как глючит он что-то пока. Фокс получаемый dbf открыть не смог, что странно. Да и зачем вам dbf? У вас своего мало?

Andrey: Sergey Spirin пишет: Да и зачем вам dbf? У вас своего мало? Да так, до кучи.... Интересно будет как таблицу с логотипом фирмы будет выгружать этот ЭКСПОРТ ?

Andrey: Разобрался я с отправкой письма через функцию отправки. Но не могу понять зачем в документации написано: S := FrPrn:SendMail("someserver.com", 25, "MyUserName", "MyPassword", "from@xxx.ru", "to@xxx.es", "MySubject", "MyCompany", cTextField, cFileNames) IF S <> "" MsgBox(S) ELSE MsgBox("Mail is sent") ENDIF При неправильных данных (адресах) всегда выходит "Mail is sent", хотя письмо не отправляется и получаю ошибку в файл: Mail is sent ! Timeout expired (60) 535 Incorrect authentication data Чего я не догоняю ? Исходник и прога здесь: http://files.mail.ru/GMDK7I


Sergey Spirin: Andrey пишет: Чего я не догоняю ? Возможно, что и разболталось за годы... Посмотрю на досуге. По задумке же, текст ошибки и должен возвращаться в S.

Andrey: Sergey Spirin пишет: По задумке же, текст ошибки и должен возвращаться в S. Тогда нужно написать: IF LEN(S) > 0 MsgBox(S) ELSE MsgBox("Mail is sent") ENDIF

Sergey Spirin: Andrey пишет: Тогда нужно написать: И в чем разница?

Andrey: Sergey Spirin пишет: И в чем разница? Тогда ошибка правильно появляется: А почему это так - это нужно спрашивать у наших Гуру ! Вопрос знатокам, в чем различие этих конструкций ? Может в строке что-то хитрое присутствует ? // --------- не работает правильно -------------- IF S <> "" MsgBox(S) ELSE MsgBox("Mail is sent") ENDIF При ошибке отправки выдает: // --------- работает правильно -------------- IF LEN(S) > 0 MsgBox(S) ELSE MsgBox("Mail is sent") ENDIF

PSP: Что возвращает SendMail? Можно ж в runtime посмотреть. PS Хотя, скорее всего все правильно. Так работает сравнение строк: http://www.ousob.com/ng/53guide/ng11a6ab.php http://www.ousob.com/ng/53guide/nge677e.php

Sergey Spirin: PSP пишет: Что возвращает SendMail? SendMail то возвращает пустую строку, если все хорошо, и текст ошибки, если все плохо. Текст ошибки примерно такой как Андрей показал, два квадратика это chr1310. Да ясно, что "проблема" с "мягким" сравнением строк Типа пустая строка часть любой строки, и поэтому равна любой строке Самое противное, что я всегда проверяю выкладываемый код. То есть, на какой-то версии [x]Harbour это работало по умолчанию по "нормальному" сравнению. То бишь есть зависимости от версий [x]Harbour... ну, что называется, эффекты "Жopen Source".

PSP: Sergey Spirin пишет: Да ясно, что "проблема" с "мягким" сравнением строк Типа пустая строка часть любой строки, и поэтому равна любой строке Режим сравнения зависит от установки SET EXACT. Нельзя заранее предугадать, какое значение у этого переключателя будет в конечном приложении. Поэтому, имхо, пустые строки лучше "ловить", к примеру, функцией Empty().

Sergey Spirin: PSP пишет: Нельзя заранее предугадать, какое значение у этого переключателя будет в конечном приложении. Я к тому, что и умолчательное значение SET EXACT менялось от сборки к сборке, так как я никогда не переопределяю умолчание в своих тестах. А кстати, для равенства есть жесткое ==, а для неравенства?

Pasha: Sergey Spirin пишет: А кстати, для равенства есть жесткое ==, а для неравенства? Для неравенства точного сравнения нет, надо пользоваться: ! (x1 == x2)

Andrey: Собрал ваш пример на Harbour 3.0: http://www.paritetsoft.ru/downloads/frh_demo_simple_console.zip Пришлось переделывать bat-ник , с тем не пошло. Наверно добавьте его отдельно: Compile_bcc-Harbour30.bat @ECHO ON @set HB_BIN_INSTALL=Z:\hb30\bin @set HB_LIB_INSTALL=Z:\hb30\lib\win\bcc\ @set HB_INC_INSTALL=Z:\hb30\include\ del FastDemo.c del FastRepH.c %HB_BIN_INSTALL%\harbour SmplDemo.prg -n -i%HB_INC_INSTALL% %HB_BIN_INSTALL%\harbour FastRepH.prg -n -i%HB_INC_INSTALL% bcc32 -O2 -d -X -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% SmplDemo.c FastRepH.c harbour-30-bcc.lib hbvm.lib hbrtl.lib hbrdd.lib hbmacro.lib hbpp.lib rddntx.lib rddcdx.lib rddfpt.lib hbcommon.lib gtwin.lib hblang.lib hbcpage.lib hbct.lib hbpcre.lib hbsix.lib hbzlib.lib hbextern.lib hbhsx.lib rddnsx.lib И функцию в Smpldemo.prg пришлось добавлять: FUNCTION CurDrive() RETURN HB_CurDrive() Размер ЕХЕ-ника небольшой вышел: 300544, правда без harbour-30.dll не запускается.... Наверно в Compile_bcc-Harbour30.bat нужно как-то это указать для малоразбирающихся...

Andrey: Исправленный демо пример (который я раньше собирал) для Harbour 3.0 вам на сайт. Для последней сборки FrSystH.dll Протестировано, работает !!! http://files.mail.ru/ZJNQ1J

Sergey Spirin: Andrey пишет: Размер ЕХЕ-ника небольшой вышел: 300544, правда без harbour-30.dll не запускается.... В соседней же ветке подсказали, что надо добавить ws2_32.lib, тогда и будет автономный exe в 2,5 мега.

Andrey: Sergey Spirin пишет: В соседней же ветке подсказали, Да я читал. Просто для других может непонятно будет. А в примере вам для сайта, я указал в батнике как собирать.

Andrey: Подскажите как форму ПРАВИЛЬНО делать. Задача такова: есть базы с переменным количеством oplata2009.dbf , oplata2010.dbf, oplata2011.dbf (но могут быть еще и с 2000 года быть), алиасы этих баз предаю в FastReport соответственно. Выходная форма должна быть такая: http://files.mail.ru/N6DEEC Или может все базы затолкать в одну ? Как удобней сделать ?

Sergey Spirin: Andrey пишет: Или может все базы затолкать в одну ? Если "затолкать", то это самое простое - группы. Если не ""заталкивать", то тоже можно, но это динамическое создание всех MasterData.

Sergey Spirin: Andrey пишет: Как удобней сделать ? Ну или Композит по каждому году.

Andrey: Sergey Spirin пишет: Если "затолкать", то это самое простое - группы. Сделал пример. Базы объединил в одну и создал поле "YEAR" по годам. Читал в доке описание отчетов по группам, мало что понял. Подскажите пожалуйста на примере как это сделать ! Заранее спасибо за помощь. http://files.mail.ru/W5QS7U



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