Редактор отчетов для 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
реклама
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают