:: Visual Foxpro, Foxpro for DOS
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
ssa
Считаете, что они должны быть?

Я? Нет, я сейчас просто ищу - что в Фоксе может быть обработчиком не-Фокс-события? Событие "придет" со стороны FoxAPI.

Рассматривая на эту роль любое выражение, которое будет вызываться по _Evaluate(), я выделил 2 недостатка. Вот и спрашиваю, может быть, можно придумать что-то оптимальнее.. Можно ли как-то хранить уже "скомпилированное" выражение и подавать на вход только параметры?

ssa
Кстати, Вы не забыли, что клиппер был компилятором, а фокс - интерпретатор?

Ну, компилятор клиппер назвать можно с большой натяжкой Тот же P-code, В сравнении с Фоксом - это только момент возникновения этого P-соde.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
из FoxAPI сами события не придут в фокс, что бы их иницировать в фоксе, нужен либо таймер, либо курить мануал на тему BindEvent\Eventhandler


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
SergeySpirin
ssa
Считаете, что они должны быть?

Я? Нет, я сейчас просто ищу - что в Фоксе может быть обработчиком не-Фокс-события? Событие "придет" со стороны FoxAPI.
И какое такое событие в FoxAPI Вас так заинтересовало?
Цитата:
Рассматривая на эту роль любое выражение, которое будет вызываться по _Evaluate(), я выделил 2 недостатка. Вот и спрашиваю, может быть, можно придумать что-то оптимальнее..
Для этого надо спрашивать конкретику, а не растекаться по поводу блоков, с помощью которых можно было и так, и эдак, и еще вот так.
Цитата:
Можно ли как-то хранить уже "скомпилированное" выражение и подавать на вход только параметры?
Что за зацикленность на "скомпилированности"? Вам шашечки или ехать? Если второе, так говорите куда ехать, а не спрашивайте про наличие машины с шашечками. Кстати, при виде _Evaluate() возникает вопрос о языке, на котором Вы там что-то собрались делать.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
piva
из FoxAPI сами события не придут в фокс, что бы их иницировать в фоксе, нужен либо таймер, либо курить мануал на тему BindEvent\Eventhandler

Ok. Спасибо. Покурю.

И это конечно же Фокс и его API
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
ssa
Кстати, при виде _Evaluate() возникает вопрос о языке, на котором Вы там что-то собрались делать.

----
Visual FoxPro 9.0 Language Reference
_Evaluate( ) API Library Routine
----

Про конкретику минут через 10 напишу.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
SergeySpirin
ssa
Кстати, при виде _Evaluate() возникает вопрос о языке, на котором Вы там что-то собрались делать.

----
Visual FoxPro 9.0 Language Reference
_Evaluate( ) API Library Routine
----
Я это знаю. Но там же, в доке, есть и Evaluate() (без подчеркивания). Так Вы на фоксе собрались писать или на С?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Очень опасная функция особенно с применением извне - можно запросто валить фокс с ног. Читайте документацию по фоксу а не по гуглу


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
ssa
Так Вы на фоксе собрались писать или на С?

Писать эту либу я буду на 3-х языках, а именно:

1. FoxPro. prg-файл, содержащий класс frReportManager, который будет полностью управлять всем, что умеет делать FastReport.
2. C. fll-файл, FoxAPI-врата ФастРепорта в Фокс.
3. Delphi. dll-файл, собственно FastReport, с полным взаимодействием с вратами Фокса.

Как видите "полтора" модуля - это Фокс и его API. Торжественно клянусь, что по остальным полтора (С+Delphi) я вопросов задавать не буду


Теперь суть моих вопросов на конкретике. Позвольте с кодом "на проклятом клиппере" Вот код простого примера:

FrPrn := frReportManager():new()
FrPrn:SetEventHandler("Report", "OnPrintPage", {|x|ShowProcess(x)})
FrPrn:LoadFromFile(cFileName)
FrPrn:Print()

PROCEDURE ShowProcess(x)

MyForm:Label1:Caption := "Поперла страница за номером №" + Str(x)

RETURN

Я думаю, что смысл понятен. Я сейчас и раздумываю, как сделать, чтобы то же самое на Фоксе (с FoxAPI)....

Насчет шашечек, хотелось бы по неопытности не поехать на раздолбанном жигуле, при наличие возможности поехать на Бэнтли
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
piva
Очень опасная функция особенно с применением извне - можно запросто валить фокс с ног.

Серьезно? Чтож, постараюсь поаккуратней.

piva
Читайте документацию по фоксу а не по гуглу

Читаю, я, естественно, доку. Но там нет указания с какой версии Фокса появилась та или иная функция появилась. Гугл дал ответ, что ExecScript() появился в 7-й версии Фокса. Здесь, я как-то реакции вашей не понял. А то, что в идеале фаст-либа должна бы работать на разных версиях Фокса, это факт.


piva
Я делаю запросом А собсно Scope тут причем ? Мы вообще чего с чем сравниваем ?

Сорри, здесь расхождение Фокса и Клиппера. SET SCOPE в клиппере устанавливает "фильтр по индексу" (если так можно сказать). MasterDetail же, это самое "популярное" отношение в разрезе отчетов. Поэтому я и спрашивал, в Фоксе это "штатно" реализуется или дополнительным кодом? В клиппере не штатно, для него я делал доп. методы, например:

USE Customer NEW
USE Orders NEW
FrPrn:SetWorkArea("Customers", Select("Customer"))
FrPrn:SetWorkArea("Orders", Select("Orders"))
FrPrn:SetMasterDetail("Customers", "Orders", {||Customer->CustNo})
FrPrn:ShowReport()

Хочу понять, нужно ли делать также или нет.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Если будет фоксовая часть, то наверное в ней и будут находится те самые "откомпилированные процедуры", которые сможет вызывать ФоксАПИ - будут это просто процедуры (SET PROC и они видны всюду), или будет там класс из которого создаётся объект и ссылку на этот объект получает fll - это уже детали. Суть в том, что апи будет вызывать уже скомпилированную фоксовую процедуру. При том, конечно, же можно и "заглушек" наделать - например экспортировать функцию, через которую апи можно сказать вызывать некоторую "свою" реализацию (вместо или вместе с той которую ты закодировал в фоксовой части).
насчёт мастер-детайл не в курсе как работает клиппер, но в фоксе есть древнейшие set relation, set skip, set filter, set key а есть и запросы SELECT... Не понимая архитектуры (кто и как запрашивает записи из "связанных" таблиц) сложно чего-то дельного посоветовать... Да и, наверное, не дело это движка организовывать связи - это сам разработчик должен думать, а отчёт лишь по уже настроенным в датасессии таблицам "ходит" - по крайней мере штатный отчёт там делает - он сам не управляет "связями" (то что в нём есть DE которая и обеспечивает "настройку датасессии" не должно смущать - ибо отчёт точно так-же успешно работает и без "внутренней" настройки - на открытых перед его запуском таблицах/курсорах).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Это очередной заменитель фоксовского репорта что ли ? Насколько я понял из описания, а оно нада ? Или другими стредствами акромя FastReport пользоваться никак ?

Может вам взглянуть на земляка Женю Банщикова - его E-Report очень достаточен, да и тут maple4 тоже свой генератор отчетов во всю двигает. Вопрос главный - а оно нафиг надо кому-то кроме вас ?


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
piva
Или другими стредствами акромя FastReport пользоваться никак ?

piva, люди то тянутся к лучшему А FastReport - это лучшее в Win32-мире, к которому Fox принадлежит, и в котором и останется.... В общем, второй раз на дню аллегория жигуля с лексусом (хоть и по другому поводу)

piva
Вопрос главный - а оно нафиг надо кому-то кроме вас ?

Это вопрос нужны ли мне деньги? piva, поверьте, я не больше вашего люблю ненужную работу и, естественно, "провентилировал" вопрос достаточно дотошно.

P.S. Добровольным помощникам (Фокс-часть, написание демок и т.д.) могу пообещать бесплатную лицензию на продукт.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Вадим, ты начало темы забыл? Эти ж вопросы (и сомнения) все уже были


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Черт - возможно. Понял - виноват


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
SergeySpirin
А FastReport - это лучшее в Win32-мире, к которому Fox принадлежит, и в котором и останется....

Ой ли ? Впрочем каждый кулик свое болото хвалит Желаю удачи. Если буде возможность помощи с моей стороны, то всегда милости просим. Чем больше инструментов, тем лучше


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Сергей, если будет более точный (или, лучше сказать, "точечный") вопрос и более подробно описана сама архитектура исстемы - когда и по сколько она там данные запрашивает, какие случаи есть (ну я так думаю там не только мастер-детайл нужен) - тогда возможно будет проще точно ответить...
Я понимаю что можно взять ту же клипперную версию и "разобрать" - но увы, ни знаний в клиппере, ни желания его ковырять нет никакого


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
Dag

Сообщений: 1156
Дата регистрации: 08.02.2006
SergeySpirin
piva
Или другими стредствами акромя FastReport пользоваться никак ?
piva, люди то тянутся к лучшему А FastReport - это лучшее в Win32-мире, к которому Fox принадлежит, и в котором и останется...
Когда-то получил в наследство большой ворох отчетов в формате .frf. Чтобы не перешивать все это хозяйство под фоксовый формат, пришлось искать средство помирить FastReport и FoxPro. Добрые люди на этом форуме подсказали вот это решение. Лично мне этот генератор очень понравился (несмотря на все глюки конкретного решения), штатный фоксовый с тех пор практически не использую.

piva
Вопрос главный - а оно нафиг надо кому-то кроме вас ?
SergeySpirin
P.S. Добровольным помощникам (Фокс-часть, написание демок и т.д.) могу пообещать бесплатную лицензию на продукт.
Готов вступить в шайку. Хотя должен честно предупредить - системщик из меня никакой.



Исправлено 1 раз(а). Последнее : Dag, 09.09.10 22:50
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
Dag
Когда-то получил в наследство большой ворох отчетов в формате .frf. Чтобы не перешивать все это хозяйство под фоксовый формат, пришлось искать средство помирить FastReport и FoxPro. Добрые люди на этом форуме подсказали вот это решение. Лично мне этот генератор очень понравился (несмотря на все глюки конкретного решения), штатный фоксовый с тех пор практически не использую.

.frf - Это двойка, то есть, FastReport2, тогда лучшим он еще, пожалуй, не был, но надежды уже подавал "в полный рост". В 2004-ом вышел FastReport3, у него расширение у отчетов .fr3. Думаю, что увидев сейчас четверку будете очень приятно удивлены. Это уже продукт другого уровня.

Dag
Готов вступить в шайку. Хотя должен честно предупредить - системщик из меня никакой.

Ok. Буду иметь в виду. Спасибо. А понадобятся не столько системные вещи, сколько фокс-рутина Демки, обсуждение Fr-класса в фоксе и т.п.
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
SergeySpirin
Автор

Сообщений: 203
Откуда: Москва
Дата регистрации: 20.07.2010
Igor Korolyov
Сергей, если будет более точный (или, лучше сказать, "точечный") вопрос и более подробно описана сама архитектура исстемы - когда и по сколько она там данные запрашивает, какие случаи есть (ну я так думаю там не только мастер-детайл нужен) - тогда возможно будет проще точно ответить...
Я понимаю что можно взять ту же клипперную версию и "разобрать" - но увы, ни знаний в клиппере, ни желания его ковырять нет никакого

Хорошо, Игорь, постараюсь, действительно, быть более точечным в вопросах... Хотя в сегодняшней, например, проблематике это может и не совсем получиться, но попробуем на ней, итак:

- Как я уже сказал, Fox-часть fr-либы будет представлять собой Fox-класс, назовем этот класс - frReportManager. Все остальное конечного Fox-юзера волновать не должно (разве что необходимость включить в комплект поставки еще одну fll и еще одну dll).

- Очевидно, что почти все вызовы методов frReportManager будут "уходить во вне Fox-а", путем вызовов подготовленных для этого функций в FoxAPI-библиотеке (fll).

- FastReport является ООП-библиотекой, отчет в нем представляет собой набор объектов, которыми можно (и иногда нужно) управлять из экземпляра Fox-класса frReportManager.

- Объекты FastReport имеют события, обработать которые Fox-юзер должен иметь возмжность. Fr-события "доставляются" до уровня FoxAPI-библиотеки и......

Теперь 2 "точечных" вопроса-размышления:

1. Каков должен быть синтаксис присваивания обработчика события в Fox-объекте frReportManager? То есть:

Fr.SetEventHandler("Report", "OnSomeEvent", xxxxxxxx)

Что должно стоять вместо xxxxxxxx?

2. Каким образом FoxAPI-библиотека будет вызывать этот EventHandler, этот xxxxxxxx? C помощью каких FoxAPI-функций?

-------------------

Собственно, эти вопросы возникли при просмотре списка FoxAPI-функций. Например, для работы с переменными все есть, однако для вызова функций "нашлись" только _Evaluate( ) и _Execute( ). Кстати для объектов также: есть _GetObjectProperty()/_SetObjectProperty(), но интересно, что ничего нет про методы (!)....

Конечно, все можно сделать на _Evaluate(). Тогда присвоение обработчика будет:

- Fr.SetEventHandler("Report", "OnSomeEvent", "MyFunction(par1)")

Вызов обработчика из FoxAPI:

- _Evaluate(ParseParams(cUserEvent))

где cUserEvent и есть запомненное "MyFunction(par1)", а ParseParams() - превращение параметров в строковую репрезентацию.

Недостатки "строкового" подхода я выше описал, можно добавить еще и "конвенциональность написания (я о параметрах)" и юзерские здесь ошибки, и т.д. Но работать это конечно будет (про шашечки).

Так вот, можно ли это сделать оптимальнее? Piva уже "направил" в сторону BINDEVENT()/RAISEEVENT() и т.д. Возможно здесь есть что-то для оптимизации, но как можно и в этом случае отказаться полностью от _Evaluate() я пока не вижу. Покопаю еще COM-возможности, но сильно сюда COM тащить не хочу...

... Вопросы оптимизации для меня актуальны - очень не хочется превратить Фаст, который действительно FAST (!), и в разы быстрее конкурентов, в Fox-реализации во что-то более медлительное

Спасибо.


P.S. И небольшая ремарка для "ssa" Прошу фразу "какие есть в фоксе аналоги блокам кода клиппера?" не считать фразой
"а какого хрена тут у вас блоков кода нету?" ;) У меня вполне уважительное отношение и ко всему Dbase-миру и к Fox-у в частности
Ratings: 0 negative/0 positive
Re: Общие вопросы, а также специфичные (отчеты, FastReport))
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
SergeySpirin
- Как я уже сказал, Fox-часть fr-либы будет представлять собой Fox-класс, назовем этот класс - frReportManager. Все остальное конечного Fox-юзера волновать не должно (разве что необходимость включить в комплект поставки еще одну fll и еще одну dll).
Прелестно.
Цитата:
- Очевидно, что почти все вызовы методов frReportManager будут "уходить во вне Fox-а", путем вызовов подготовленных для этого функций в FoxAPI-библиотеке (fll).
А вот вот и нет. В смысле не совсем очевидно. Если FastReprot представляет из себя виндовый COM-объект, то вся его подддержка может и не требовать FoxAPI.
Цитата:
- FastReport является ООП-библиотекой, отчет в нем представляет собой набор объектов, которыми можно (и иногда нужно) управлять из экземпляра Fox-класса frReportManager.
А вот и намек на правильность моих слов.
Цитата:
- Объекты FastReport имеют события, обработать которые Fox-юзер должен иметь возмжность. Fr-события "доставляются" до уровня FoxAPI-библиотеки и......
Вот, уже чуствуется зацикленность. Без FoxAPI прямо никуда?
Все остальной скипнул как недостойное пока рассмотрения в свете вышеизложенного.


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


Эта тема закрыта.

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

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