:: Обсуждаем проекты
Re: FastReport for FoxPro (тестирование и реализация)
Pliskin

Сообщений: 2959
Откуда: Новосибирск
Дата регистрации: 19.11.2003
Есть такая функция
AINSTANCE(ArrayName, cClassName)
VFP Help
CLEAR ALL
goINSTANCE1 = CREATEOBJECT('Form')
goINSTANCE2 = CREATEOBJECT('Form')

CLEAR
? AINSTANCE(gaMyArray, 'Form') && Returns 2, two form instances
DISPLAY MEMORY LIKE gaMyArray && Displays the references
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
SergeySpirin
Наверное, в методе Init() этого класса мы будем загружать fr.fll, а в методе Destroy() выгружать ее. Допустим, создано 2 объекта. Вопрос как правильно сделать на Фоксе так, чтобы второй объект уже не загружал fr.fll, а выгрузил ее только последний уничтожающийся?
Наличие fll в памяти - set('library'), количество инстансов объекта - Ainstances().

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
Pliskin
Есть такая функция
AINSTANCE(ArrayName, cClassName)

ssa
Наличие fll в памяти - set('library'), количество инстансов объекта - Ainstances().

Ok. Спасибо.
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
Pliskin

Сообщений: 2959
Откуда: Новосибирск
Дата регистрации: 19.11.2003
Помощь в написании каких-либо модулей не нужна?
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
Pliskin
Помощь в написании каких-либо модулей не нужна?

Может быть, чуть позже потребуется. Сейчас у меня "в голове должно все разложиться"
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
h.i.a.

Сообщений: 4002
Откуда: Мурманск/Спб/Мск
Дата регистрации: 18.11.2005
Вот простой пример работы с объектом. Помимо упомянутого hidden, для ограничения доступа "извне" можно также использовать protected. Отличия между ними в том, что protected видны внутри классов, производных от frReportManager, hidden - нет.
Hidden/Protected могут быть как свойства, так и методы объекта.
Нужно отметить, что init/destroy/error являются событиями custom в отличие от объявленных методов set_my_hidden_property/get_my_hidden_property.
Также рекомендую ознакомиться в хэлпе с механизмами работы access_method / assign_method. Наверняка пригодятся.

LOCAL lo_obj
lo_obj=CREATEOBJECT("frReportManager")
MESSAGEBOX("after init")
MESSAGEBOX(lo_obj.my_public_property)
lo_obj.set_my_hidden_property(20)
MESSAGEBOX(lo_obj.get_my_hidden_property())
MESSAGEBOX("before destroy")
RELEASE lo_obj
define class frReportManager as custom
my_hidden_property=1 && Свойство недоступное "извне" объекта
my_public_property=2 && Свойство, доступное "извне" объекта
hidden my_hidden_property && Объявление свойства hidden
procedure init
* Событие инициализации
messagebox("init")
endproc
procedure destroy
* Событие уничтожения объекта
messagebox("destroy")
endproc
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
* Событие ошибки
ENDPROC
PROCEDURE set_my_hidden_property && Типовой интерфейс set закрытого свойства объекта
LPARAMETERS pn_new_value
this.my_hidden_property=m.pn_new_value
ENDPROC
PROCEDURE get_my_hidden_property && Типовой интерфейс get к закрытому свойству объекта
RETURN this.my_hidden_property
ENDPROC
ENDDEFINE


------------------
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
Здравствуйте.

Сорри, немного "пропал", к сожалению, не удавалось выкроить время. Но сегодня "возвращаюсь" основательно к проекту и планирую к понедельнику что-нибудь первое для тестирования "выкатить" (Ну, а на ноябрьские отправлю семью в Египет и займусь совсем плотно .

Возникла следующая полупроблема - как "прозрачно" передать параметры дальше "в общем виде". Поясню на примере, метод SetWorkArea():

FUNCTION SetWorkArea
LPARAMETERS cFrAlias, nWorkArea, lOem AS Logical, nRangeParam1 AS Integer, nRangeParam2 AS Integer, nRangeParam3 AS Integer
LOCAL Res
IF USED(nWorkArea)
Res = _fr_SetWorkArea(cFrAlias, nWorkArea, lOem, nRangeParam1, nRangeParam2, nRangeParam3)
ELSE
Res = .f.
ENDIF
RETURN Res

_fr_SetWorkArea - функция FoxAPI, первые 2 параметра обязательные, далее нет.

Если я например вызываю:

_fr_SetWorkArea("MyWA", 1)

То все OK. Я четко получаю количество параметров 2. Теперь, вызываем метод

oFr.SetWorkArea("MyWA", 1)

Здесь я получаю 6 параметров, 4 последних логические со значением False... Что собственно и неприятно Хотя бы .NULL. бы что-ли был бы....

Понятно, что можно писать типа IF PCOUNT() = .... и далее либо присваивать умолчательные значения, либо ветвить вызовы... Но как-то это не совсем то

Какие в Фоксе могут быть здесь еще варианты?

Спасибо.
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
SergeySpirin
Здесь я получаю 6 параметров, 4 последних логические со значением False... Что собственно и неприятно Хотя бы .NULL. бы что-ли был бы....
Мечтать не вредно .
Цитата:

Понятно, что можно писать типа IF PCOUNT() = .... и далее либо присваивать умолчательные значения, либо ветвить вызовы... Но как-то это не совсем то
Нравится, не нравится - спи моя красавица.
Цитата:

Какие в Фоксе могут быть здесь еще варианты?
Никаких. Се ля ва.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
Рома

Сообщений: 1079
Дата регистрации: 06.06.2001
SergeySpirin
Здесь я получаю 6 параметров, 4 последних логические со значением False... Что собственно и неприятно Хотя бы .NULL. бы что-ли был бы....

Понятно, что можно писать типа IF PCOUNT() = .... и далее либо присваивать умолчательные значения, либо ветвить вызовы... Но как-то это не совсем то

Какие в Фоксе могут быть здесь еще варианты?

Как вариант - проверяй тип параметра при вызове

Res = _fr_SetWorkArea(cFrAlias, nWorkArea, lOem, ;
iif(vartype(nRangeParam1)="N", nRangeParam1, null), ;
iif(vartype(nRangeParam2)="N", nRangeParam2, null), ;
iif(vartype(nRangeParam3)="N", nRangeParam3, null) ;
)
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Никаких - только PCOUNT(). Как именно его пользовать - уже второй вопрос.
Хочешь нулл, пиши IIF(PCOUNT() < 3, NULL, m.lOem) внутри команды вызова.
Можно и через макро закрутить, например "обрезая" строку со списком имён параметров по значению PCOUNT().
lcParams = "cFrAlias, nWorkArea, lOem, nRangeParam1, nRangeParam2, nRangeParam3,"
lcParams = LEFT(m.lcParams, AT(",", m.lcParams, PCOUNT()) - 1)
Res = _fr_SetWorkArea(&lcParams.)


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
У vartype по сравнению с pcount есть заметный недостаток - он не отличит "непереданный" параметр от переданного логического.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
Рома

Сообщений: 1079
Дата регистрации: 06.06.2001
Igor Korolyov
У vartype по сравнению с pcount есть заметный недостаток - он не отличит "непереданный" параметр от переданного логического.

pcount() тоже может не отличить
Вызвать-то можно и как-нибудь так

oFr.SetWorkArea("MyWA", 1,,,,20)

Так что параметры лучше проверить и выдать вразумительное сообщение об ошибке или заменить значениями по умолчанию
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
Ok. Спасибо за отклики.

Чтож, "покручусь" тогда "со своей стороны"
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
reware

Сообщений: 4116
Откуда: Хабаровск
Дата регистрации: 21.07.2008
А где скачать этот FastReport ? Или оно там напрочь триальное и не фриварное ? И чего оно умеет ?
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
reware
Или оно там напрочь триальное и не фриварное

Гм... Он (вряд ли генератор отчетов это "оно" ), конечно, "не фриварный"

reware
А где скачать этот FastReport ?

Основной сайт производителя:

www.fast-report.com

Без денег дадут только триал ;)

Можете посмотреть и мои клипперные порты:

paritetsoft.ru

Тоже триал

reware
И чего оно умеет ?

Уф.. Перечислять очень долго. Может чего конкретное спросите?
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
reware

Сообщений: 4116
Откуда: Хабаровск
Дата регистрации: 21.07.2008
SergeySpirin
Уф.. Перечислять очень долго. Может чего конкретное спросите?
Конкретно - вывод отчётов в форматах RTF/PDF/HTML.
И дока там-же лежит ?
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
Евгений Банщиков

Сообщений: 218
Откуда: Kurgan
Дата регистрации: 09.04.2004
reware
И чего оно умеет ?
Использую версию 2.7 уже несколько лет.
Для меня определяющим в выборе этого генератора была возможность создания сложных (многостраничных и композитных) отчетов.
Кроме того он может сохранять готовый отчет в различные форматы (rtf,doc,xls,pdf,txt, bmp ...) , можно также сохранить и в собственном формате с возможностью последующей печати и правки. Есть встроеный скриптовый язык , позволяющий легко управлять процессом создания отчета.Также можно рулить отчетом извне через события и своиства. Есть встроенная поддержка для отчетов шахматок. Есть встроенные объекты для RichText и штрихкодов. Возможно редактировать листы в режиме предпросмотра.Ну и еще много чего. В последующих версиях,думаю, возможностей еще добавилось
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
reware
Конкретно - вывод отчётов в форматах RTF/PDF/HTML.

Конечно, всего поддерживается сейчас 11 форматов вывода-экспорта (я же вам это писал почтой, вы же уже спрашивали ). До конца года ожидаем версию 5, в которой добавятся еще 4-ре. Итого будет 15

reware
И дока там-же лежит ?

Конечно, если конкретней:

www.fast-report.com

Скачайте там для начала руководство пользователя.

Евгений Банщиков
reware
И чего оно умеет ?
Использую версию 2.7 уже несколько лет.
Для меня определяющим в выборе этого генератора была возможность создания сложных (многостраничных и композитных) отчетов.
Кроме того он может сохранять готовый отчет в различные форматы (rtf,doc,xls,pdf,txt, bmp ...) , можно также сохранить и в собственном формате с возможностью последующей печати и правки. Есть встроеный скриптовый язык , позволяющий легко управлять процессом создания отчета.Также можно рулить отчетом извне через события и своиства. Есть встроенная поддержка для отчетов шахматок. Есть встроенные объекты для RichText и штрихкодов. Возможно редактировать листы в режиме предпросмотра.Ну и еще много чего. В последующих версиях,думаю, возможностей еще добавилось

Вы, наверное, имели в виду версию 2.57, так как в двойке версии 2.7 не было. А так вы правы, сегодняшняя версия 4.10.5 от двойки отличается уже очень серьезно, до конца года ожидается пятая версия.

А так, "на вскидку", чтобы "поразить" reware , скажу например следующее:

- FastReport имеет полную локализацию на 32(!) языка, включая китайский, японский, арабский и т.д.
- "встроеный скриптовый язык" - сейчас это подсистема FastScript, которая поддерживает 4 синтаксиса(Pascal, C++, Basic, Java).
- Имеет также встроенный дизайнер форм на случай, если в отчете чего уточнить у пользователя надо.

Ну и я уже говорил, что в Win32-мире особых конкурентов и нет особо уже Если в .NET появляются какие-то конкуренты (хотя и здесь FastReport выпустил версию FastReport.NET и является одним из лидеров), то в Win32 только тот самый дорогущий и довольно "мутный" CrystalReport как конкурент и существует
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
Евгений Банщиков

Сообщений: 218
Откуда: Kurgan
Дата регистрации: 09.04.2004
SergeySpirin
Вы, наверное, имели в виду версию 2.57, так как в двойке версии 2.7 не было. А так вы правы, сегодняшняя версия 4.10.5 от двойки отличается уже очень серьезно, до конца года ожидается пятая версия.
Виноват, допустил описку в номере версии - у меня 2.47
Все что Вы пишете о новых версиях конечно хорошо , но есть один минус - это цена.
Я платил за fr2 600 руб. FR Studio Developer Edition Single по прайсу обоидется в сумму более 6000 .
При всех достоинствах 4ки, сомнительно , что ее возможности выросли в 10 раз
Ratings: 0 negative/0 positive
Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
Евгений Банщиков
Виноват, допустил описку в номере версии - у меня 2.47
Все что Вы пишете о новых версиях конечно хорошо , но есть один минус - это цена.
Я платил за fr2 600 руб. FR Studio Developer Edition Single по прайсу обоидется в сумму более 6000 .
При всех достоинствах 4ки, сомнительно , что ее возможности выросли в 10 раз

Что-то вы прям рассуждаете как в начале 90-х 3-ка Фаста вышла в 2004 году, так как еще были версии 2.5x, то явно 600 рублей вы платили не позже 2003-го года. Конечно, с тех пор и рубль изменился и доллар, и уровень жизни, и сам Фаст. Мне трудно оценить, "во сколько раз" улучшился Фаст, но то, что он сейчас представляет собой продукт совсем другого уровня, чем двойка, это точно Да, на двойке Фаст демпинговал на exUSSR, и сейчас есть разница в цене, просто не в такие разы. Кстати, во времена двойки никакой Studio не было, поэтому сравнивать надо с FR4 VCL либо со Standard, либо с Professional. Здесь уже дестикратной разницы не будет даже с пятеркой (прайс партнерам уже разослан), хотя по сравнению с 4-кой она подорожает тоже.

Да и дорого по сравнению с чем? Посмотрите цены того же Crystal или дебиловатого List&Label, Фаст намного дешевле по всем лицензионным аспектам.

P.S. Не знаю, но как-то считать, что программисту трудно заплатить 6-10 тысяч за нужный ему продукт - это похоже на незнание сегодняшних зарплат программистов Про компании, вообще в таком ракурсе говорить странно
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 4 (Гостей: 4)

© 2000-2024 Fox Club 
Яндекс.Метрика