![]() |
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум | ![]() |
![]() |
Л и с о в о д ы в с е х с т р а н, о б ъ е д и н я й т е с ь !!! |
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
Pliskin Сообщений: 2802 Откуда: Новосибирск |
Есть такая функция
AINSTANCE(ArrayName, cClassName)
![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
ssa [Модератор] Сообщений: 12170 Откуда: Москва |
Наличие fll в памяти - set('library'), количество инстансов объекта - Ainstances(). ------------------ Лень - это неосознанная мудрость. ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва |
Ok. Спасибо. ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
Pliskin Сообщений: 2802 Откуда: Новосибирск |
Помощь в написании каких-либо модулей не нужна?
![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва |
Может быть, чуть позже потребуется. Сейчас у меня "в голове должно все разложиться" ![]() ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
h.i.a. Сообщений: 3997 Откуда: Мурманск |
Вот простой пример работы с объектом. Помимо упомянутого 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 ------------------ ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва |
Здравствуйте.
Сорри, немного "пропал", к сожалению, не удавалось выкроить время. Но сегодня "возвращаюсь" основательно к проекту и планирую к понедельнику что-нибудь первое для тестирования "выкатить" ![]() ![]() Возникла следующая полупроблема - как "прозрачно" передать параметры дальше "в общем виде". Поясню на примере, метод 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... Что собственно и неприятно ![]() Понятно, что можно писать типа IF PCOUNT() = .... и далее либо присваивать умолчательные значения, либо ветвить вызовы... Но как-то это не совсем то ![]() Какие в Фоксе могут быть здесь еще варианты? Спасибо. ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
ssa [Модератор] Сообщений: 12170 Откуда: Москва |
Мечтать не вредно . ![]() Цитата:Нравится, не нравится - спи моя красавица. Цитата:Никаких. Се ля ва. ![]() ------------------ Лень - это неосознанная мудрость. ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
Рома Сообщений: 1078 |
Как вариант - проверяй тип параметра при вызове Res = _fr_SetWorkArea(cFrAlias, nWorkArea, lOem, ; iif(vartype(nRangeParam1)="N", nRangeParam1, null), ; iif(vartype(nRangeParam2)="N", nRangeParam2, null), ; iif(vartype(nRangeParam3)="N", nRangeParam3, null) ; ) ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
Igor Korolyov Сообщений: 32274 |
Никаких - только 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 ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
Igor Korolyov Сообщений: 32274 |
У vartype по сравнению с pcount есть заметный недостаток - он не отличит "непереданный" параметр от переданного логического.
------------------ WBR, Igor ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
Рома Сообщений: 1078 |
pcount() тоже может не отличить Вызвать-то можно и как-нибудь так oFr.SetWorkArea("MyWA", 1,,,,20) Так что параметры лучше проверить и выдать вразумительное сообщение об ошибке или заменить значениями по умолчанию ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва |
Ok. Спасибо за отклики.
Чтож, "покручусь" тогда "со своей стороны" ![]() ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
reware Сообщений: 4116 Откуда: Хабаровск |
А где скачать этот FastReport ? Или оно там напрочь триальное и не фриварное ? И чего оно умеет ?
![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва |
Гм... Он (вряд ли генератор отчетов это "оно" ![]() ![]()
Основной сайт производителя: www.fast-report.com Без денег дадут только триал ![]() Можете посмотреть и мои клипперные порты: paritetsoft.ru Тоже триал ![]()
Уф.. Перечислять очень долго. Может чего конкретное спросите? ![]() ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
reware Сообщений: 4116 Откуда: Хабаровск |
Конкретно - вывод отчётов в форматах RTF/PDF/HTML. И дока там-же лежит ? ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
Евгений Банщиков Сообщений: 211 Откуда: Kurgan |
Использую версию 2.7 уже несколько лет. Для меня определяющим в выборе этого генератора была возможность создания сложных (многостраничных и композитных) отчетов. Кроме того он может сохранять готовый отчет в различные форматы (rtf,doc,xls,pdf,txt, bmp ...) , можно также сохранить и в собственном формате с возможностью последующей печати и правки. Есть встроеный скриптовый язык , позволяющий легко управлять процессом создания отчета.Также можно рулить отчетом извне через события и своиства. Есть встроенная поддержка для отчетов шахматок. Есть встроенные объекты для RichText и штрихкодов. Возможно редактировать листы в режиме предпросмотра.Ну и еще много чего. В последующих версиях,думаю, возможностей еще добавилось ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва |
Конечно, всего поддерживается сейчас 11 форматов вывода-экспорта (я же вам это писал почтой, вы же уже спрашивали ![]() ![]()
Конечно, если конкретней: www.fast-report.com Скачайте там для начала руководство пользователя.
Вы, наверное, имели в виду версию 2.57, так как в двойке версии 2.7 не было. А так вы правы, сегодняшняя версия 4.10.5 от двойки отличается уже очень серьезно, до конца года ожидается пятая версия. А так, "на вскидку", чтобы "поразить" reware ![]() - FastReport имеет полную локализацию на 32(!) языка, включая китайский, японский, арабский и т.д. - "встроеный скриптовый язык" - сейчас это подсистема FastScript, которая поддерживает 4 синтаксиса(Pascal, C++, Basic, Java). - Имеет также встроенный дизайнер форм на случай, если в отчете чего уточнить у пользователя надо. Ну и я уже говорил, что в Win32-мире особых конкурентов и нет особо уже ![]() ![]() ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
Евгений Банщиков Сообщений: 211 Откуда: Kurgan |
Виноват, допустил описку в номере версии - у меня 2.47 Все что Вы пишете о новых версиях конечно хорошо , но есть один минус - это цена. Я платил за fr2 600 руб. FR Studio Developer Edition Single по прайсу обоидется в сумму более 6000 . При всех достоинствах 4ки, сомнительно , что ее возможности выросли в 10 раз ![]() |
||
Re: FastReport for FoxPro (тестирование и реализация) | |||
---|---|---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва |
Что-то вы прям рассуждаете как в начале 90-х ![]() ![]() Да и дорого по сравнению с чем? Посмотрите цены того же Crystal или дебиловатого List&Label, Фаст намного дешевле по всем лицензионным аспектам. P.S. Не знаю, но как-то считать, что программисту трудно заплатить 6-10 тысяч за нужный ему продукт - это похоже на незнание сегодняшних зарплат программистов ![]() ![]() ![]() ![]() |
||
© 2000-2019 Fox Club  |