for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Обсуждаем проекты
   :: Помощь сайту :: 

Re: FastReport for FoxPro (тестирование и реализация)
Pliskin

Сообщений: 2568
Откуда: Новосибирск
Дата: 06.10.10 16:38:35ОтветитьЦитировать
Есть такая функция
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
[Модератор]

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

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

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

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

Ok. Спасибо.
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
Pliskin

Сообщений: 2568
Откуда: Новосибирск
Дата: 06.10.10 17:02:12ОтветитьЦитировать
Помощь в написании каких-либо модулей не нужна?
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата: 06.10.10 17:12:05ОтветитьЦитировать
Pliskin
Помощь в написании каких-либо модулей не нужна?

Может быть, чуть позже потребуется. Сейчас у меня "в голове должно все разложиться"
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
h.i.a.

Сообщений: 3905
Откуда: Мурманск
Дата: 06.10.10 17:12:51ОтветитьЦитировать
Вот простой пример работы с объектом. Помимо упомянутого 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
Откуда: Москва
Дата: 15.10.10 16:15:39ОтветитьЦитировать
Здравствуйте.

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

Возникла следующая полупроблема - как "прозрачно" передать параметры дальше "в общем виде". Поясню на примере, метод 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
[Модератор]

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

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

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

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
Рома

Сообщений: 1071
Дата: 15.10.10 17:29:19ОтветитьЦитировать
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

Сообщений: 30646
Дата: 15.10.10 17:33:39ОтветитьЦитировать
Никаких - только 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

Сообщений: 30646
Дата: 15.10.10 17:35:57ОтветитьЦитировать
У vartype по сравнению с pcount есть заметный недостаток - он не отличит "непереданный" параметр от переданного логического.


------------------
WBR, Igor
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
Рома

Сообщений: 1071
Дата: 15.10.10 17:57:30ОтветитьЦитировать
Igor Korolyov
У vartype по сравнению с pcount есть заметный недостаток - он не отличит "непереданный" параметр от переданного логического.

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

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

Так что параметры лучше проверить и выдать вразумительное сообщение об ошибке или заменить значениями по умолчанию
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата: 15.10.10 18:32:23ОтветитьЦитировать
Ok. Спасибо за отклики.

Чтож, "покручусь" тогда "со своей стороны"
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
reware

Сообщений: 4116
Откуда: Хабаровск
Дата: 15.10.10 19:52:52ОтветитьЦитировать
А где скачать этот FastReport ? Или оно там напрочь триальное и не фриварное ? И чего оно умеет ?
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата: 15.10.10 20:07:04ОтветитьЦитировать
reware
Или оно там напрочь триальное и не фриварное

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

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

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

www.fast-report.com

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

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

paritetsoft.ru

Тоже триал

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

Уф.. Перечислять очень долго. Может чего конкретное спросите?
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
reware

Сообщений: 4116
Откуда: Хабаровск
Дата: 16.10.10 02:59:50ОтветитьЦитировать
SergeySpirin
Уф.. Перечислять очень долго. Может чего конкретное спросите?
Конкретно - вывод отчётов в форматах RTF/PDF/HTML.
И дока там-же лежит ?
Ratings: 0 negative/0 positive

Re: FastReport for FoxPro (тестирование и реализация)
Евгений Банщиков

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

Re: FastReport for FoxPro (тестирование и реализация)
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата: 16.10.10 10:16:02ОтветитьЦитировать
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 (тестирование и реализация)
Евгений Банщиков

Сообщений: 210
Откуда: Kurgan
Дата: 16.10.10 17:13:28ОтветитьЦитировать
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
Откуда: Москва
Дата: 16.10.10 20:39:52ОтветитьЦитировать
Евгений Банщиков
Виноват, допустил описку в номере версии - у меня 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: 36 PuMa  and Guests: 35


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