|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Устраивает ли Вас Report Builder, который предлагает Microsoft Visual FoxPro? Сразу скажу – меня лично нет. Возможно, некоторых ( а может, и большинство ? ) – тоже. Не буду говорить о минусах стандартного RB (меня постигло глубокое разочарование от ReportListener, может мало изучал – не спорю), поэтому - что можно предложить взамен? Почему не обратиться к формату HTML (на основе CSS)? Я и ранее распечатывал договора на основе бланка (многостраничные, со сложной организацией данных), вот только таблицы приходилось создавать практически вручную. Какие возможности предлагает RB, предлагаемый мною? Динамическое (т.е. функция или процедура возвращает результат, а программа соответствующим образом реагирует на него) форматирование шрифта (размер, имя, Bold, Itallic, Cursiv, цвета шрифта и цвета фона, размещение по горизонтали/вертикали) – ах да, это же есть и в Report Listener! А теперь представьте – тоже самое можно делать с частью текста в ячейке. Динамическое изменение рамки вокруг ячейки (т.е. ее наличие и толщина). Объединение ячеек в одну, и дальнейшая работа, как с одной. Возможность создания нескольких Detail, Group, Title, End и генерация в отчет в зависимости от условий, всех или выборочно (очень удобно, если вид Detail значительно отличается, как например, отличается договор Интернет от договора на Телефонию ). Возможность объединения нескольких отчетов в один, а так же генерация подотчетов-таблиц в отчете (с обращением к другим таблицам), т.е. сложная организация данных теперь сложная только на словах (в разработке). Интерактивная реакция по клику (генерация других, связанных отчетов) (в разработке) Вычисление Sum, Cnt в зависимости от расположения в отчете (нашел, чем удивить, конечно) Возможность динамического управления стилем (это, если Вы ас в CSS). Как все это работает? Всю работу делает IE (в дальнейшем – объект IE, он нужен не только для отображения файла, но и для отработки кликов по ссылкам), нужно «всего лишь» соответствующим образом подготовить файл HTML. Файл генерится на основе Report-а, который, в свою очередь, создается в визуальном редакторе. Редактор пытается отобразить ячейки, границы, размеры, цвет и т.д., но только в том случае, если параметры статические, в ином случае, результат можно увидеть только при генерации отчета. Почему нельзя было использовать Excel, и не заморачиваться с созданием собственного редактора? Не хватило знания Excel и возможностей Файл HTML генерится при помощи технологии, используемой так же в программе Maple4 Site Creator, http://www.maple4.ru а именно: в тексте вставляется тэг, указывающий, что программе, что здесь необходимо выполнить функцию (вида `функция`) или код Visual FoxPro (вида `&код`), которые, в свою очередь, вставят вместо тэга некоторое значение. Например, тэг `str(m4rb_num())` размещенный в ячейке, вставит номер строки а тэг `alltr(test_.fam)+" "+alltr(test_.im)+" "+alltr(test_.ot)` вернет результат функции Все просто. Что в дальнейшем? Я думаю, признание, богатство и слава : ) А если серьезно, программа, по сути, состоит из двух частей – визуального редактора и программы генерации, следовательно, параллельно будут развиваться обе части. Визуальный редактор: Доведение визуального редактора до ума - редактирование ячеек, функций форматирования, отработки кликов (создание реакции на клик, в зависимости от расположения в отчете и полей сканируемой таблицы), редактирование (добавление, удаление) Title, Group , Detail Программа генерации: Работа с графикой, вставка файлов графики (в том, что это не составит труда, Вы можете убедиться на том же сайте http://www.maple4.ru ), причем как из полей, так и из файлов. Объединение отчетов (и подотчетов – программа уже спроектирована из расчета на это) и обработка реакции на клики. Вставка объектов меню (на том же сайте). Минусы (как следствие использования HTML): К сожалению, невозможно подсчитать высоту страницы (хотя строки имеют ширину, при включении автоподгонки под значение ячейки, общую высоту подсчитать я не смог). Или все таки возможно? Не знаю, как можно задать ориентацию текста (допустим, под некоторым углом, как это позволяет ReportListener) Редактор позволяет определить ширину колонок и высоту строк (для этого надо навести мышку на границу между колонками или строками - появится соответствующий значок, нажать кнопку, и держа ее нажатой, выбрать ширину или высоту), задать программы динамического форматирование шрифта (размер, имя, Bold, Itallic, Cursiv, цвета шрифта и цвета фона, размещение по горизонтали/вертикали - другой кнопкой мыши щелкаете по ячейке, а далее в меню выбираете, что собственно требуется изменить - ОБЯЗАТЕЛЬНО посмотрите примеры перед тем, как вносить какие-либо изменения в ячейках, примеров достаточно много), или двойным кликом по ячейке Вы непосредственно начнете редактировать значение ячейки ( После редактирования в визуальном редакторе НЕ ЗАБУДЬТЕ нажать кнопку Save - только в этом случае изменения вступят в силу, а после нажатия кнопки Close Вы увидите и сам отчет). Работающий "Прототип" можно загрузить отсюда (требуется Visual FoxPro 9.0 SP1) http://www.maple4.ru/a_downloads_for_maple4_ru/m4rb_demo_no_dll.zip размер программы в zip-е >100 кб, поэтому прикрепил изображение редактора и файл, который редактор формирует Версия (c DLL) – со страницы: http://www.maple4.ru/i_downloads.htm ФОРУМ: http://www.maple4.ru/forums/index.php?showtopic=23 Подробнее о программе: http://www.maple4.ru/i_m4rb.htm Хотелось бы узнать мнение о перспективности данной работы ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2008, 01:32 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Что-то я не понимаю... Вам вроде бы уже популярно расписали, почему нет смысла использовать Вашу программу... Вашим новым сообщением Вы просто пытаетесь "раскрутить" Ваш Web ресурс? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2008, 12:20 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Sergey ChЧто-то я не понимаю... Вам вроде бы уже популярно расписали, почему нет смысла использовать Вашу программу... Дайте пожалуйста ссылку ГДЕ это расписали ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2008, 12:31 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Гггость Sergey ChЧто-то я не понимаю... Вам вроде бы уже популярно расписали, почему нет смысла использовать Вашу программу... Дайте пожалуйста ссылку ГДЕ это расписали http://forum.foxclub.ru/read.php?30,310597,310597 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2008, 12:53 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
ВладимирМ Гггость Sergey ChЧто-то я не понимаю... Вам вроде бы уже популярно расписали, почему нет смысла использовать Вашу программу... Дайте пожалуйста ссылку ГДЕ это расписали http://forum.foxclub.ru/read.php?30,310597,310597 не рассмотрев даже демку (ее тогда не было)? ну тогда да, раз ЭКСперты сказали ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2008, 14:08 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
А как поменять фонт саиз, цвет и т.д. обьекта? При попытке сделать изменения, всегда открывается одна и таже форма с едит бокс и двумя кнопками. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2008, 19:19 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Marat CА как поменять фонт саиз, цвет и т.д. обьекта? При попытке сделать изменения, всегда открывается одна и таже форма с едит бокс и двумя кнопками. Внес изменения в программу (убрал ошибки, добавил новые :) ) Теперь открывается та же форма НО С ОПИСАНИЕМ в заголовке + корректно отрабатываются все процедуры (цвет, размер и т.д.) программу можно загрузить по тем же ссылкам (выше, в первом топике) Насчет фонт саиз, цвет и т.д. обьекта Есть 2 варианта (+1 в запасе) изменения свойств: Полностью для всей ячейки либо части текста в ячейке Первый вариант: Пример изменения размера ( в программе - ячейка с Service: `test_.t2`) Можно задать сразу (например вбить 11), или вставить функцию (Edit/Font/Size) iif(alltr(test_.t2)=="Internet",12,10) программа в зависимости от значения test_.t2 вставит либо 12 либо 10 Пример изменения имени шрифта Можно задать сразу (например вставить имя "Times New Roman" , как в ячейке Report), или вставить функцию (Edit/Font/Name) (в ячейке Service: `test_.t2`) iif(alltr(test_.t2)=="Internet",'"Arial"','"Times New Roman"') программа в зависимости от значения test_.t2 вставит либо "Arial" либо "Times New Roman" Пример изменения выравнивания Align ( в программе - ячейка № `str(m4rb_num())`) Можно задать сразу (например вбить 0 для Left, 1-Center, 2-Right), или вставить функцию (Edit/Font/Align) iif(alltr(test_.t2)=="Internet",0,2) программа в зависимости от значения test_.t2 вставит либо 0-Left либо 2-Right Пример задания цвета шрифта в ячейке `alltr(str(test_.saldo,15,2))` iif(test_.saldo>0,RGB(255,0,0),NULL) при значении test_.saldo>0 значение в ячейке будет выделяться красным цветом (RGB) Второй вариант: Изменять шрифт можно непосредственно в ячейке, как это сделано в ячейке For City: `test_.t1` - <font size=+1 color=blue><b>`alltr(str(m4rb_sum("test_.saldo"),15,2))`</b></font> Или вот пример динамического форматирования в ячейке `iif(alltr(test_.t2)=="Internet","<u>","<i>")``test_.addr``iif(alltr(test_.t2)=="Internet","</b>","</u>")` Основной плюс второго варианта - можно форматировать не только всю ячейку, но и, допустим, часть ее. Минус - пользователь должен знать разметку HTML хотя бы на начальном уровне. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 02:08 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Понял. А эта программа на кого расчитана? На конечного пользователя или на программиста? Если на программиста, то, по-моему, стандартныи редактор фокспро будет на много проше в использовании. Если на конечного пользователя, то я бы сделал интерфеис намного интуитивнее и проше ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 03:43 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Marat CПонял. А эта программа на кого расчитана? На конечного пользователя или на программиста? Если на программиста, то, по-моему, стандартныи редактор фокспро будет на много проше в использовании. Если на конечного пользователя, то я бы сделал интерфеис намного интуитивнее и проше Марат, у меня все получилось с последней версией frx2any (12.04.06). Теперь все работает как надо и в отчетах VFP 9.0. В начале след. месяца мы оплатим через ссылку http://www.frx2any.com/payment.php?prod=dev с помощью Share It версию DEVELOPER вашей программы. Я так полагаю, что в ней можно будет поменять кодовую страницу по умолчанию, чтобы и в PDF все выводило по русски ? С уважением, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 08:08 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Aleksey-K Marat CПонял. А эта программа на кого расчитана? На конечного пользователя или на программиста? Если на программиста, то, по-моему, стандартныи редактор фокспро будет на много проше в использовании. Если на конечного пользователя, то я бы сделал интерфеис намного интуитивнее и проше Марат, у меня все получилось с последней версией frx2any (12.04.06). Теперь все работает как надо и в отчетах VFP 9.0. В начале след. месяца мы оплатим через ссылку http://www.frx2any.com/payment.php?prod=dev с помощью Share It версию DEVELOPER вашей программы. Я так полагаю, что в ней можно будет поменять кодовую страницу по умолчанию, чтобы и в PDF все выводило по русски ? С уважением, Алексей. Программа (m4rb) расчитана как На конечного пользователя, так и на программиста. Если бы все свойства (font, size, border и т.д.) были фиксированы как в Excel-e, то интерфейс был бы как в Excel-e, НО ведь хочется ДИНАМИЧЕСКОГО форматирования Вообще же Интерфейс будет напоминать стандартный FoxPro Report Builder, но с возможностями табличного редактора (отдаленно напоминает 1С, как не хотелось об этом говорить, + Excel) например, при перемещении из одной ячейки в другую, будет меняться информация о FontName, FontSize, border и т.д. (если они фиксированы, кстати, то визуальный редактор сразу же их и отображает, т.е. если размер=10, то редактор отобразит font с 10 размером, если fontname="Times New Roman", то редактор отобразит именно этот шрифт и т.д., и, кстати ВСЕ ЭТО работает даже и сейчас) То, что представлено в программе - первая пробная работающая версия. Хотелось показать, что на самом деле все не так уж и сложно, и вполне реализуемо, а интерфейс наработается ЗЫ Как я понял frx2any в фаворе и любые упоминания о программе не являются рекламой :) и активно приветствуются. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 11:11 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
maple4Как я понял frx2any в фаворе и любые упоминания о программе не являются рекламой :) и активно приветствуются. Вы не правильно поняли. Я увидель в диалоге Marat C и решил напомнить ему о некоторых вопросах. Его программа НИКАК не конкурирует с вашей. Она берет готовый FRX и выводит в разные приемники, а ваша является построителем отчета. Скорее конкурентом вашей программы является Microsoft Reporting Services :) С уважением, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 11:20 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Вот пример более наглядный - чем не стандартный Report Builder? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 11:38 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Какой ужас. Уже лет 5 существует F1. Для особо одернных рассказыва, что это такой оле сервер, кторый может генирить динамические отчеты в Excel и в нем же понимает скрипт фокпры. Вот возьми и да прибудет с вами сила. Опять велик, елы-палы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 18:31 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
profile32Какой ужас. Уже лет 5 существует F1. Для особо одернных рассказыва, что это такой оле сервер, кторый может генирить динамические отчеты в Excel и в нем же понимает скрипт фокпры. Вот возьми и да прибудет с вами сила. Опять велик, елы-палы. работал я и с оле сервер-ом Два минуса а)медленно б)ограничение на количество строк ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 18:56 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Aleksey-KМарат, у меня все получилось с последней версией frx2any (12.04.06). Теперь все работает как надо и в отчетах VFP 9.0. В начале след. месяца мы оплатим через ссылку http://www.frx2any.com/payment.php?prod=dev с помощью Share It версию DEVELOPER вашей программы. Ждем-с с нетерпением... :)) Aleksey-K Я так полагаю, что в ней можно будет поменять кодовую страницу по умолчанию, чтобы и в PDF все выводило по русски ? Кодовую страницу можно и сеичас установить: loFile.nCodePage = 1250 loFile.lIncludeFont = .T. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 19:13 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
maple4Если бы все свойства (font, size, border и т.д.) были фиксированы как в Excel-e, то интерфейс был бы как в Excel-e, НО ведь хочется ДИНАМИЧЕСКОГО форматирования Вообще же Интерфейс будет напоминать стандартный FoxPro Report Builder, но с возможностями табличного редактора (отдаленно напоминает 1С, как не хотелось об этом говорить, + Excel) например, при перемещении из одной ячейки в другую, будет меняться информация о FontName, FontSize, border и т.д. (если они фиксированы, кстати, то визуальный редактор сразу же их и отображает, т.е. если размер=10, то редактор отобразит font с 10 размером, если fontname="Times New Roman", то редактор отобразит именно этот шрифт и т.д., и, кстати ВСЕ ЭТО работает даже и сейчас) Идея хорошая, достоина внедрения... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 19:15 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Aleksey-K Его программа НИКАК не конкурирует с вашей. Она берет готовый FRX и выводит в разные приемники, а ваша является построителем отчета. Скорее конкурентом вашей программы является Microsoft Reporting Services :) Конкурирует другая моя программа - ReportDepot ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2008, 19:16 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Вряд ли эта программа сможет заменить фоксовский репорт, так как HTML - не самый удобный формат для печати, редактировать его в броузере тоже невозможно. А пользователь хочет иметь многие отчеты в редактируемом виде. Лично я сейчас в 10% случаев использую репорт, в 60% - GENREP, в 25% - E_REPORT, а в 5% - программное формирование листов в EXCEL. Но, HTML - удобная форма многоуровневого представления информации, когда по щелчку мышки нужно раскрыть детальную информацию, например, цифру в бухгалтерском отчете раскрыть до уровня счетов, потом до аналитики и до элементарных проводок. Можно, конечно, все это реализовать с помощью GRIDов и форм. Но. думаю, в формате HTML это проще реализуется да и смотреться будет нагляднее. Мне кажется, нужно рыть именно в направлении программного создания из фокса многоуровневых WEB-страниц для отображения сложных структур данных - как альтернативы созданию сложных фоксовских форм. С уважением - Sea_Cat ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2008, 13:53 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Sea_Cat... Мне кажется, нужно рыть именно в направлении программного создания из фокса многоуровневых WEB-страниц для отображения сложных структур данных - как альтернативы созданию сложных фоксовских форм. Безперспективно... Microsoft создал очень прекрасный инструмент для создания отчетов бизнес-аналитиками, то что в принципе мы хотели всегда - "пусть отчеты делают те, кому они нужны"... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2008, 14:31 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Marat C Aleksey-KМарат, у меня все получилось с последней версией frx2any (12.04.06). Теперь все работает как надо и в отчетах VFP 9.0. В начале след. месяца мы оплатим через ссылку http://www.frx2any.com/payment.php?prod=dev с помощью Share It версию DEVELOPER вашей программы. Ждем-с с нетерпением... :)) Aleksey-K Я так полагаю, что в ней можно будет поменять кодовую страницу по умолчанию, чтобы и в PDF все выводило по русски ? Кодовую страницу можно и сеичас установить: loFile.nCodePage = 1250 loFile.lIncludeFont = .T. Это при работе только с PDF. А через Preview я не нашел. С уважением, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2008, 14:35 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Sergey Ch Sea_Cat... Мне кажется, нужно рыть именно в направлении программного создания из фокса многоуровневых WEB-страниц для отображения сложных структур данных - как альтернативы созданию сложных фоксовских форм. Безперспективно... Microsoft создал очень прекрасный инструмент для создания отчетов бизнес-аналитиками, то что в принципе мы хотели всегда - "пусть отчеты делают те, кому они нужны"... Если имеется в виду ReportService, то действительно с ним сложно конкурировать в это области, но это платный продукт и теперь поставляется в составе всего SQL Server 2005. С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2008, 14:37 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Sea_Cat... HTML - удобная форма многоуровневого представления информации, когда по щелчку мышки нужно раскрыть детальную информацию, например, цифру в бухгалтерском отчете раскрыть до уровня счетов, потом до аналитики и до элементарных проводок. Можно, конечно, все это реализовать с помощью GRIDов и форм. Но. думаю, в формате HTML это проще реализуется да и смотреться будет нагляднее. Для каждой ячейки (точнее - для всего текста, находящегося в ячеке) можно создать реакцию на клик, как это сделано в примере (Report с датой - по клику открывается страница проекта). Для этого нужно выбрать ячейку , кликнув другой кнопкой мыши, и выбрать Edit/Field/Click ну, и далее, задать текст ссылки, причем этот текст, как и основной текст ячейки, так же формируется программой, в зависимости от данных т.е. НАПРИМЕР текст в поле "Click" ячейки Detail (Edit/Field/Click) "http://sql.ru/`alltr(str(test_.saldo))`.html" при формировании отчета, при значении test_.saldo=3 создаст ссылку "http://sql.ru/3.html" при формировании отчета, при значении test_.saldo=200 создаст ссылку "http://sql.ru/200.html" и т.д. Но пример, выложенный на рассмотрение, НЕ ИСПОЛЬЗУЕТ объект IE, программа просто открывает готовую страницу браузером "по умолчанию". (Я, кстати, думал , что реализация интерактивности - не самое главное :) ) Но это будет реализовано в следующей версии, это не проблема ( уже сделано в другом проекте - ссылка выше ): Страница открывается в объекте IE, клик по ссылке обрабатывается Fox-om, и далее... а как такой вариант, когда при формировании отчета запускается след. отчет? А он, в свою очередь - другой? Например, отчет по клиентам, со списком телефонов, сводная по направлениям и с детализацией по звонкам (куда, направление, сколько...) Т.е. не просто один отчет "пристегнул" к другому, а действительно многоуровневый отчет со сложной организацией данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2008, 14:56 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Aleksey-KЭто при работе только с PDF. А через Preview я не нашел. Хмм.. верно, нет такого. Вернее не было. В новои версии - 12.04.07 я это дело подправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2008, 18:18 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Sea_CatВряд ли эта программа сможет заменить фоксовский репорт, так как HTML - не самый удобный формат для печати, редактировать его в броузере тоже невозможно. А пользователь хочет иметь многие отчеты в редактируемом виде. Лично я сейчас в 10% случаев использую репорт, в 60% - GENREP, в 25% - E_REPORT, а в 5% - программное формирование листов в EXCEL. Но, HTML - удобная форма многоуровневого представления информации, когда по щелчку мышки нужно раскрыть детальную информацию, например, цифру в бухгалтерском отчете раскрыть до уровня счетов, потом до аналитики и до элементарных проводок. Можно, конечно, все это реализовать с помощью GRIDов и форм. Но. думаю, в формате HTML это проще реализуется да и смотреться будет нагляднее. Мне кажется, нужно рыть именно в направлении программного создания из фокса многоуровневых WEB-страниц для отображения сложных структур данных - как альтернативы созданию сложных фоксовских форм. С уважением - Sea_Cat Отреагировал я на мнение некоторых , что все бесперспективно (а может это было сделано специально: ) ?) и учел мнение остальных. В общем, по роду моей работы, мне довольно часто приходится формировать отчеты, договора, акты, приложения и другие документы. Стандартным Report Bulder-ом формировать зарекся, через управление Word и Excell - довольно муторно... В общем, вот новая версия редактора. Изменился интерфейс визуального редактора - теперь можно обращаться к свойствам ячейки без открытия контекстного меню. Свойства доступны при клике по ячейке. Редактирование свойств ячейки из формы, "почти как в Excell", т.е.: Изменение шрифта (из тех, что установлены в системе), размера и атрибутов (Bold,Italic,Underline), выравнивания по ширине и высоте, назначение границ ячейке - это теперь можно делать прямо из экранной формы. Для ячейки можно задать значения Default по каждому свойству, основные значения и любые другие, а так же задать функции для управления свойствами. При переходе в другую ячейку (при клике основной кнопкой или дополнительной), активная ячейка отображается красными границами. Идеология m4RB: Каждый Report имеет следующие зоны (в дальнейшем - Хедеры ): Title (Начало отчета), Summary (Конец отчета), Page Header (Начало страницы), Page Footer (Конец страницы) и Detail (Данные). Использовать их пользователем или нет - личное дело пользователя, но они есть и всегда будут, ХОТЯ БЫ по одному каждого вида в Report-е. Хедер управляет строками, которые в него входят: Печатать ли Хедер Например, программа при формировании распечатает все Detail (по умолчанию), или только те, которые удовлетворяют условию. В примере можно увидеть, что при формировании распечатывается общий Detail по клиенту и один, в зависимости от типа договора (Интернет это или Телефония). Начинать ли печатать Хедер с новой страницы Порядок печати определяется расположением Хедеров в отчете. Можно перемещать Хедеры Вверх/Вниз (только в пределах типа, т.е. нельзя, например, Detail расположить выше Title) Можно удалять Хедеры (удаляются так же все строки в Хедере), НО нельзя вообще удалить Хедер, если он один в отчете. Кроме рассмотренных Хедеров, есть еще один: Group Его применение необходимо в случае группировки данных. Нужно понимать, что данные УЖЕ ДОЛЖНЫ быть отсортированы, аналогично, как со стандартным Report Builder-ом Group должен принадлежать какому-либо уровню (ROOT) сортировки, т.е. не может быть Group без уровня, просто так. При добавлении нового уровня сортировки (ROOT), добавлется одновременно Group для начала и Group для конца. Group Start срабатывает при начале новой группы, Group End - при конце группы. Может быть несколько Group , но должен быть хотя бы один Group (Group Start) для каждого уровня для начала и хотя бы один (Group End) для конца. В примере, данные отсортированы по городу и услуге. Коротко по пунктам контекстного меню: Check/UnCheck - выделить ячейку или снять выделение (если была до этого выделена) Checked Cells/Group - выделенные ячейки объединить в одну. Каждая из выделенных ячеек не должна быть в группе, и, так же, все выделенные ячейки должны принадлежать одному Хедеру. Checked Cells/Group - выделенные ячейки разгруппировать Checked Cells/Clear - очистить выделенные ячейки (привести в состояние Default все свойства ячейки) Edit/Cell/Field - редактирование значения ячейки (доступ из формы - двойной клик по ячейке) Edit/Cell/Click - свойство, отвечающее за генерацию реакции на клик. Пример можно посмотреть в отчете по Телефонам или по IP (саму реакцию можно посмотреть, кликнув в сгенеренном отчете по телефону или IP - откроется детализированный отчет) Edit/Cell/Style - свойство, отвечающее за дополнительное управление стилем ячейки (CSS) Edit/Cell/Caption - что показывается в отчете вместо значения ячейки (При снятом флажке Hide Values всегда показывается значение ячейки, не зависимо от того, введено Caption или нет). Очень удобно, если данные загромождают отчет, ввести для каждой ячеки Caption - разница бросается в глаза. Для изменения свойств Edit/Border/ и Edit/Font/ можно напрямую обращаться через экранную форму (она появляется при клике по ячейке). В качестве значений свойств (для Edit/Border/ и Edit/Font/ ) можно использовать функции FoxPro или программный код FoxPro (в случае программного кода ОБЯЗАТЕЛЕН Return со значением - числовым, текстовым или логическим значением. Для того, что бы программа поняла, что в свойстве находится именно код программы, а не функция, первое значение в свойстве должно быть &.) Edit/Border/Top (Bottom,Left,Right) - свойство, отвечающее за границу ячейки сверху (снизу, слева, справа) (доступ из формы - изменение свойств в группе Borders). В качестве параметра - числовое значение (пусто - нет рамки, 0-ЖЕСТКО нет рамки, 1,2... - толщина границы) Edit/Font/Size - свойство, отвечающее за размер шрифта в ячейке, числовое значение (пусто - 10, 6,7,... - размер шрифта) Edit/Font/Name - свойство, отвечающее за имя шрифта в ячейке, текст, заключенный в двойные кавычки (пусто - "Arial") Edit/Font/Align - выравнивание по горизонтали, числовое значение (пусто,0 - Left,1-Center,2-Right) Edit/Font/Valign - выравнивание по вертикали, числовое значение (пусто,0 - Top,1-Middle,2-Bottom) - данное свойство не смог реализовать для отображения на экранной форме :) - к сожаление, Edit в Visual FoxPro допускает только горизонтальное выравнивание. При отображении отчета - все ОК. Edit/Font/Flags (Bold,Italic,Underline) - управление атрибутами шрифта, числовое значение (пусто - ничего, +1-Выделение жирным,+2 - Курсивом, +4- Подчеркнуть. Например, значение 3 Жирный курсив, 6-подчеркнутый курсив ) Edit/Font/Color - цвет шрифта, числовое значение (пусто - цвет по умолчанию, обычно черный,в качестве значения - результат функции RGB, например 255 для красного RGB(255,0,0), или 65280 для зеленого - RGB(0,255,0) ) Edit/Font/BkColor - цвет фона ячейки, числовое значение (пусто - цвет по умолчанию, обычно белый,в качестве значения - результат функции RGB, например 16711680 для синего RGB(0,0,255), или 16777215 для белого - RGB(255,255,255) ) Edit/Clear - очистить только активную ячейку Row/Insert - вставка новой строки в Хедер. Имеет значение, в какой ячейке исполняется команда. Если в Хедере - добавляется строка в конец, в ячейке - строки сдвигаются вниз (как в Excel-е). Если новая строка пересекается с сгруппированной ячейкой (из нескольких строк), строка АВТОМАТИЧЕСКИ добавляется в данную ячейку (как в Excel-е), т.е. нет необходимости расгруппировывать ячеки, потом опять объединять - все делается автоматом. Row/Delete - удалении строки из Хедера. Если удаляемая строка пересекается с сгруппированной ячейкой (из нескольких строк), строка АВТОМАТИЧЕСКИ из ячейки (как в Excel-е), т.е. нет необходимости расгруппировывать ячеки а потом опять объединять. Row/On Auto Height и Row/Off Auto Height - задание свойства растягиваться строке по высоте или зафиксировать жестко. Активно используется в предложенном примере , но меню пока дорабатывается. При добавлении, строка по умолчанию получает свойство Off Auto Height (жесткий размер высоты), поэтому если значение в ячейке превысит размер по высоте, ячейка будет обрезана. Значением On Auto Height удобно пользоваться, если размер текста в ячейке динамический, т.е. нельзя предугадать его заранее. Column/Insert/New Column - вставка колонки по всей высоте отчета. Имеет значение, в какой ячейке исполняется команда. Если в Хедере - добавляется колонка слева, в ячейке - все колонки сдвигаются вправо (как в Excel-е). Если новая колонка пересекается с сгруппированной ячейкой (из нескольких строк/колонок), колонка АВТОМАТИЧЕСКИ добавляется в данную ячейку (как в Excel-е), т.е. нет необходимости расгруппировывать ячеки, потом опять объединять - все делается автоматом. Column/Insert/New Column - Right - вставка колонки по всей высоте отчета справа. Column/Delete - удаление колонки по всей высоте отчета. Имеет значение, в какой ячейке исполняется команда. Если в Хедере - удаляется колонка слева, в ячейке - все колонки сдвигаются влево (как в Excel-е). Если новая колонка пересекается с сгруппированной ячейкой (из нескольких строк/колонок), колонка АВТОМАТИЧЕСКИ удаляется из данной ячейки (как в Excel-е), т.е. нет необходимости расгруппировывать ячеки, а потом опять их объединять. Column/Edit Properties - доп. свойства, в разработке. Header/Move UP (DOWN) - перенести Хедер со строками вверх(вниз), только в пределах типа Хедера. Header/Caption - Заголовок Хедера Header/Insert - добавление нового Хедера в отчет (того типа, по чему был клик) Header/Delete - удаление Хедера из отчета вместе со связанными с ним строками. Header/Rule/Report - условие печати Хедера и связанных строк (пусто - печатать все, .f. или функция, возвращающая .f. - Хедер не печатается) Header/Rule/New Page - условие печати Хедера с новой страницы (пусто - печатать на той же, .t. или функция, возвращающая .t. - Хедер печатается с новой страницы) Root/Move IN(OUT) - перенесение группировки на один уровень + (-) (в разработке) вместе со всеми Хедерами вида Group. Как сложно написано :) , на самом деле аналог Visual FoxPro Report Builder - > Data Grouping Root/New Root - добавление нового уровня группировки (Start и End). Root/Delete Root - удаление уровня группировки со всеми связанными Group. Root/Edit 'Group by...' - редактирование условия группировки. Если Вы используете Group в отчете, таблица должна быть отсортирована соответствующим образом! (как и в стандартном Report Builder-е) Undo - самый главный пункт в контекстном меню :) - Отмена последнего действия (в дальнейшем количество будет добавлено). Как задать цвет шрифта ячейки? Кликнуть по ячейке основной кнопкой мыши. Высветится (или обновится) панель свойств, в которой можно, кликнув по Font Color выбрать необходимый цвет из стандартных, или выбрав GetColor задать необходимый. При выборе FUNCTION откроется окно редактирования, в котором можно функцию или программу FoxPro, которая сформирует необходимый цвет. Пример функции - RGB(0,255,0) для зеленого цвета. К FUNCTION можно обратиться так же через контекстное меню Edit/Font/Color. Аналогично редактируются и другие свойства: Шрифт, Размер, Цвет фона ячейки, атрибуты шрифта и границы. НО нужно, понимать, что если Вы свойства задаете через FUNCTION, то результат работы сможете увидеть только после генерации отчета. Как задать реакцию на клик по содержимому ячейки? Кликнуть неосновной кнопкой по ячейке для вызова контекстного меню. Далее, выбрать Edit/Cell/Click Откроется окно редактирования реакции на клик Если по клику требуется обычный переход на страницу, то достаточно, например, написать текст: "http://forum.foxclub.ru/read.php?30,314453" Обратите внимание, текст взят в двойные кавычки Если же требуется обработка в зависимости от содержимого, тогда, например (реализовано в отчете при выводе списка телефонов) "VFP:///phone_click(`alltr(str(phonek.id_))`)" что это означает? программа при формировании отчета создаст ссылку, текст которой будет зависеть от содержимого поля таблицы phonek.id_ (уникальный идентификатор номера телефона) т.е., еще раз например, будут созданы ссылки (и размещены в тексте HTML), вида "VFP:///phone_click(1)" "VFP:///phone_click(2)" "VFP:///phone_click(3)" .... Далее, в процессе просмотра готового отчета, при клике по тексту (в данном случае - по номеру телефона) запустится функция phone_click() с соответствующим параметром (функция phone_click генерит детализированный отчет по телефону и выводит его на экран). Префикс VFP в ссылке - это указание программе, что требуется выполнение функции FoxPro, а не переход по ссылке. еще один пример генерации ссылки - в главном отчете (ячейка Report) "VFP:///messagebox('DateTime for Report - `ttoc(datetime())`'+chr(13)+'DateTime For Click - '+ttoc(datetime()))" при генерации отчета будет создана, например, ссылка "VFP:///messagebox('DateTime for Report - 07/02/2008 09:37:33'+chr(13)+'DateTime For Click - '+ttoc(datetime()))" а при клике в готовом отчете, запустится стандартная функция messagebox Visual FoxPro и выведет, например, сообщение (вторая строка сообщения - текущие дата/время ) : DateTime for Report - 07/02/2008 09:37:33 DateTime for Click - 07/02/2008 09:40:38 В представленном примере, последовательно выводятся все необходимые отчеты для редактирования, а после закрытия последнего отчета генерится страница HTML. Загрузить программу можно отсюда (требуется Visual FoxPro 9.0 SP1) http://www.maple4.ru/a_downloads_for_maple4_ru/m4rb_demo_no_dll.zip Версия (c DLL) – со страницы: http://www.maple4.ru/i_downloads.htm ФОРУМ: http://www.maple4.ru/forums/index.php?showtopic=23 Официальная страница: http://www.maple4.ru/i_m4rb.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 10:11 |
|
Редактор отчетов для Visual Foxpro (HTML)
|
|||
---|---|---|---|
#18+
Marat C Aleksey-KЭто при работе только с PDF. А через Preview я не нашел. Хмм.. верно, нет такого. Вернее не было. В новои версии - 12.04.07 я это дело подправил. И еще одно, Марат. Мне кажется, что ваша программа не отрабатывает свойство Title отчета "New Page after title has printed". Во всяком случае у меня в этом режиме данные "лепятся" поверх title. Подробно я вам написал об этом на e-mail. С уважением, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2008, 11:02 |
|
|
start [/forum/topic.php?fid=41&msg=35092839&tid=1585256]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 392ms |
total: | 654ms |
0 / 0 |