Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Я? Нет, я сейчас просто ищу - что в Фоксе может быть обработчиком не-Фокс-события? Событие "придет" со стороны FoxAPI. Рассматривая на эту роль любое выражение, которое будет вызываться по _Evaluate(), я выделил 2 недостатка. Вот и спрашиваю, может быть, можно придумать что-то оптимальнее.. Можно ли как-то хранить уже "скомпилированное" выражение и подавать на вход только параметры?
Ну, компилятор клиппер назвать можно с большой натяжкой Тот же P-code, В сравнении с Фоксом - это только момент возникновения этого P-соde. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
из FoxAPI сами события не придут в фокс, что бы их иницировать в фоксе, нужен либо таймер, либо курить мануал на тему BindEvent\Eventhandler
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
И какое такое событие в FoxAPI Вас так заинтересовало? Цитата:Для этого надо спрашивать конкретику, а не растекаться по поводу блоков, с помощью которых можно было и так, и эдак, и еще вот так. Цитата:Что за зацикленность на "скомпилированности"? Вам шашечки или ехать? Если второе, так говорите куда ехать, а не спрашивайте про наличие машины с шашечками. Кстати, при виде _Evaluate() возникает вопрос о языке, на котором Вы там что-то собрались делать. ------------------ Лень - это неосознанная мудрость. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Ok. Спасибо. Покурю. И это конечно же Фокс и его API |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
---- Visual FoxPro 9.0 Language Reference _Evaluate( ) API Library Routine ---- Про конкретику минут через 10 напишу. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Я это знаю. Но там же, в доке, есть и Evaluate() (без подчеркивания). Так Вы на фоксе собрались писать или на С? ------------------ Лень - это неосознанная мудрость. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Очень опасная функция особенно с применением извне - можно запросто валить фокс с ног. Читайте документацию по фоксу а не по гуглу
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Писать эту либу я буду на 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).... Насчет шашечек, хотелось бы по неопытности не поехать на раздолбанном жигуле, при наличие возможности поехать на Бэнтли |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Серьезно? Чтож, постараюсь поаккуратней.
Читаю, я, естественно, доку. Но там нет указания с какой версии Фокса появилась та или иная функция появилась. Гугл дал ответ, что ExecScript() появился в 7-й версии Фокса. Здесь, я как-то реакции вашей не понял. А то, что в идеале фаст-либа должна бы работать на разных версиях Фокса, это факт.
Сорри, здесь расхождение Фокса и Клиппера. 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() Хочу понять, нужно ли делать также или нет. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Если будет фоксовая часть, то наверное в ней и будут находится те самые "откомпилированные процедуры", которые сможет вызывать ФоксАПИ - будут это просто процедуры (SET PROC и они видны всюду), или будет там класс из которого создаётся объект и ссылку на этот объект получает fll - это уже детали. Суть в том, что апи будет вызывать уже скомпилированную фоксовую процедуру. При том, конечно, же можно и "заглушек" наделать - например экспортировать функцию, через которую апи можно сказать вызывать некоторую "свою" реализацию (вместо или вместе с той которую ты закодировал в фоксовой части).
насчёт мастер-детайл не в курсе как работает клиппер, но в фоксе есть древнейшие set relation, set skip, set filter, set key а есть и запросы SELECT... Не понимая архитектуры (кто и как запрашивает записи из "связанных" таблиц) сложно чего-то дельного посоветовать... Да и, наверное, не дело это движка организовывать связи - это сам разработчик должен думать, а отчёт лишь по уже настроенным в датасессии таблицам "ходит" - по крайней мере штатный отчёт там делает - он сам не управляет "связями" (то что в нём есть DE которая и обеспечивает "настройку датасессии" не должно смущать - ибо отчёт точно так-же успешно работает и без "внутренней" настройки - на открытых перед его запуском таблицах/курсорах). ------------------ WBR, Igor |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Это очередной заменитель фоксовского репорта что ли ? Насколько я понял из описания, а оно нада ? Или другими стредствами акромя FastReport пользоваться никак ?
Может вам взглянуть на земляка Женю Банщикова - его E-Report очень достаточен, да и тут maple4 тоже свой генератор отчетов во всю двигает. Вопрос главный - а оно нафиг надо кому-то кроме вас ? ------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
piva, люди то тянутся к лучшему А FastReport - это лучшее в Win32-мире, к которому Fox принадлежит, и в котором и останется.... В общем, второй раз на дню аллегория жигуля с лексусом (хоть и по другому поводу)
Это вопрос нужны ли мне деньги? piva, поверьте, я не больше вашего люблю ненужную работу и, естественно, "провентилировал" вопрос достаточно дотошно. P.S. Добровольным помощникам (Фокс-часть, написание демок и т.д.) могу пообещать бесплатную лицензию на продукт. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Вадим, ты начало темы забыл? Эти ж вопросы (и сомнения) все уже были
------------------ WBR, Igor |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Черт - возможно. Понял - виноват
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Ой ли ? Впрочем каждый кулик свое болото хвалит Желаю удачи. Если буде возможность помощи с моей стороны, то всегда милости просим. Чем больше инструментов, тем лучше ------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Сергей, если будет более точный (или, лучше сказать, "точечный") вопрос и более подробно описана сама архитектура исстемы - когда и по сколько она там данные запрашивает, какие случаи есть (ну я так думаю там не только мастер-детайл нужен) - тогда возможно будет проще точно ответить...
Я понимаю что можно взять ту же клипперную версию и "разобрать" - но увы, ни знаний в клиппере, ни желания его ковырять нет никакого ------------------ WBR, Igor |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
Dag Сообщений: 1156 Дата регистрации: 08.02.2006 |
Когда-то получил в наследство большой ворох отчетов в формате .frf. Чтобы не перешивать все это хозяйство под фоксовый формат, пришлось искать средство помирить FastReport и FoxPro. Добрые люди на этом форуме подсказали вот это решение. Лично мне этот генератор очень понравился (несмотря на все глюки конкретного решения), штатный фоксовый с тех пор практически не использую.
Готов вступить в шайку. Хотя должен честно предупредить - системщик из меня никакой. Исправлено 1 раз(а). Последнее : Dag, 09.09.10 22:50 |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
.frf - Это двойка, то есть, FastReport2, тогда лучшим он еще, пожалуй, не был, но надежды уже подавал "в полный рост". В 2004-ом вышел FastReport3, у него расширение у отчетов .fr3. Думаю, что увидев сейчас четверку будете очень приятно удивлены. Это уже продукт другого уровня.
Ok. Буду иметь в виду. Спасибо. А понадобятся не столько системные вещи, сколько фокс-рутина Демки, обсуждение Fr-класса в фоксе и т.п. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Хорошо, Игорь, постараюсь, действительно, быть более точечным в вопросах... Хотя в сегодняшней, например, проблематике это может и не совсем получиться, но попробуем на ней, итак: - Как я уже сказал, 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-у в частности |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Прелестно. Цитата:А вот вот и нет. В смысле не совсем очевидно. Если FastReprot представляет из себя виндовый COM-объект, то вся его подддержка может и не требовать FoxAPI. Цитата:А вот и намек на правильность моих слов. Цитата:Вот, уже чуствуется зацикленность. Без FoxAPI прямо никуда? Все остальной скипнул как недостойное пока рассмотрения в свете вышеизложенного. ------------------ Лень - это неосознанная мудрость. |
© 2000-2024 Fox Club  |