:: Обсуждаем проекты
Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Устраивает ли Вас 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,
www.maple4.ru
а именно: в тексте вставляется тэг, указывающий, что программе, что здесь необходимо выполнить функцию (вида `функция`) или код Visual FoxPro (вида `&код`), которые, в свою очередь, вставят вместо тэга некоторое значение.
Например, тэг
`str(m4rb_num())`
размещенный в ячейке, вставит номер строки
а тэг
`alltr(test_.fam)+" "+alltr(test_.im)+" "+alltr(test_.ot)`
вернет результат функции
Все просто.

Что в дальнейшем?
Я думаю, признание, богатство и слава : )
А если серьезно, программа, по сути, состоит из двух частей – визуального редактора и программы генерации, следовательно, параллельно будут развиваться обе части.

Визуальный редактор:
Доведение визуального редактора до ума - редактирование ячеек, функций форматирования, отработки кликов (создание реакции на клик, в зависимости от расположения в отчете и полей сканируемой таблицы), редактирование (добавление, удаление) Title, Group , Detail

Программа генерации:
Работа с графикой, вставка файлов графики (в том, что это не составит труда, Вы можете убедиться на том же сайте www.maple4.ru ), причем как из полей, так и из файлов.
Объединение отчетов (и подотчетов – программа уже спроектирована из расчета на это) и обработка реакции на клики.
Вставка объектов меню (на том же сайте).

Минусы (как следствие использования HTML):
К сожалению, невозможно подсчитать высоту страницы (хотя строки имеют ширину, при включении автоподгонки под значение ячейки, общую высоту подсчитать я не смог). Или все таки возможно?
Не знаю, как можно задать ориентацию текста (допустим, под некоторым углом, как это позволяет ReportListener)

Редактор позволяет определить ширину колонок и высоту строк (для этого надо навести мышку на границу между колонками или строками - появится соответствующий значок, нажать кнопку, и держа ее нажатой, выбрать ширину или высоту), задать программы динамического форматирование шрифта (размер, имя, Bold, Itallic, Cursiv, цвета шрифта и цвета фона, размещение по горизонтали/вертикали - другой кнопкой мыши щелкаете по ячейке, а далее в меню выбираете, что собственно требуется изменить - ОБЯЗАТЕЛЬНО посмотрите примеры перед тем, как вносить какие-либо изменения в ячейках, примеров достаточно много), или двойным кликом по ячейке Вы непосредственно начнете редактировать значение ячейки ( После редактирования в визуальном редакторе НЕ ЗАБУДЬТЕ нажать кнопку Save - только в этом случае изменения вступят в силу, а после нажатия кнопки Close Вы увидите и сам отчет).



Работающий "Прототип" можно загрузить отсюда (требуется Visual FoxPro 9.0 SP1)
www.maple4.ru
размер программы в zip-е >100 кб, поэтому прикрепил изображение редактора и файл, который редактор формирует

Версия (c DLL) – со страницы:
www.maple4.ru

ФОРУМ:
www.maple4.ru

Подробнее о программе:
www.maple4.ru

Хотелось бы узнать мнение о перспективности данной работы
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
zip-файл необходимо распаковать, например, в каталоге c:/rb, d:/test/cb или в любом другом, НО что бы в названии каталога НЕ БЫЛО пробела (поэтому, кстати, рабочий стол не подходит)
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Мда уж. Его еще пилить и пилить напильником, или даже рашпилем, никакой динамики я тут не увидел, установил Edit\Font\Color = Cyan - и все - прога падает с копыт сразу. Или Try\EndTry не освоили еще ? Потом ваще забыл в какой ячейке я это сделал и найти уже не смог

Цитата:
Что в дальнейшем?
Я думаю, признание, богатство и слава : )
Это еще очень не скоро будет ;)

Цитата:
НО что бы в названии каталога НЕ БЫЛО пробела
А что и с этим проблемы ? Вот уж не знал

Вот скриншот

[attachment 5823 0.jpg]

Это чего за _Screen с окном - а просто на As Top Level сделать нельзя было ?
И еше - все настолько не очевидно в дизайнере, что я лучше буду фоксовским пользоваться, хотя им и пользуюсь уже почти 20 лет, и пока он меня устраивает ;)


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Цитата:
Мда уж. Его еще пилить и пилить напильником, или даже рашпилем, никакой динамики я тут не увидел,
Ну да, а без проекта это будет всего-лишь реклама...
Динамика от чего?

Цитата:
установил Edit\Font\Color = Cyan - и все - прога падает с копыт сразу.
Здесь надо было вписать функцию FoxPro
rgb(0,255,0) для Green

piva
Или Try\EndTry не освоили еще ?
есть , но не везде

piva
Потом ваще забыл в какой ячейке я это сделал и найти уже не смог
как отображать редактируемую ячейку - не решил
может быть так - (Shift + Click мышкой - ячейка поменяет цвет)

Цитата:
Что в дальнейшем?
Я думаю, признание, богатство и слава : )
Да уж.

Цитата:
НО что бы в названии каталога НЕ БЫЛО пробела
работает

Цитата:
И еше - все настолько не очевидно в дизайнере, что я лучше буду фоксовским пользоваться, хотя им и пользуюсь уже почти 20 лет, и пока он меня устраивает ;)
а в чем неочевидность?
все, что мог - взял со стандартного
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Внес изменения в программу (убрал ошибки, добавил новые )
Теперь открывается та же форма НО С ОПИСАНИЕМ в заголовке
+ корректно отрабатываются все процедуры (цвет, размер и т.д.)
программу можно загрузить по тем же ссылкам (выше, в первом топике)

Есть 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 значение в ячейке будет выделяться красным цветом (Edit/Font/Color)

Второй вариант:
Изменять шрифт можно непосредственно в ячейке, как это сделано в ячейке
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 хотя бы на начальном уровне.
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Цитата:
Или вот пример динамического форматирования в ячейке
`iif(alltr(test_.t2)=="Internet","<u>","<i>")``test_.addr``iif(alltr(test_.t2)=="Internet","</b>","</u>")`
Это не динамическое форматирование, это изврат какой-то, если мне нужно десяток-два условий, я задолбаюсь все это впихивать в одну строку
ExecScript хотя бы воткнул. Не знаю, идея Dinamics в Report Designer в фоксе мне больше по душе, внятно и понятно, а тут уже юзера лепить отчеты не посадишь

ЗЫ - я уже остыл к этому решению. Юра Шутенко показвал гораздо более интересные вещи в DHTML


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
вместо функций можно использовать кусок кода Visual FoxPro
для этого первым символом после ` должен быть знак &
И обязательна конструкция return, с vartype="C" (текст, строка)
пример (это только пример!)
`&
local date_
date_=date()
return dtoc(date_)
`
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Очень очевидно
Изобретаете новые языки ?


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
piva
Очень очевидно Изобретаете новые языки ?
Чуть выше в 1 топике

а именно: в тексте вставляется тэг, указывающий, что программе, что здесь необходимо выполнить функцию (вида `функция`) или код Visual FoxPro (вида `&код`), которые, в свою очередь, вставят вместо тэга некоторое значение.
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
NSF

Сообщений: 3853
Откуда: Пермь
Дата регистрации: 21.01.2005
Цитата:
Очень очевидно Изобретаете новые языки ?
это называется "управляющие конструкции", вадим ... интересно было бы послушать чтобы ты сказал о моих способах "разметки" шаблона документа (MSWord) ... пусть его ... хотя интерфейс мне тоже не нравится ... но это - фокс, как говорится "что имеем" ...


------------------
откапываю!
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
А ты покажи


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
NSF

Сообщений: 3853
Откуда: Пермь
Дата регистрации: 21.01.2005
может на очередном дувконе ... слишком длинный вводный курс


------------------
откапываю!
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Договорились


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Для каждой ячейки (точнее - для всего текста, находящегося в ячеке) можно создать реакцию на клик, как это сделано в примере (Report с датой - по клику открывается страница проекта).
Для этого нужно выбрать ячейку , кликнув другой кнопкой мыши, и выбрать Edit/Field/Click
ну, и далее, задать текст ссылки, причем этот текст, как и основной текст ячейки, так же формируется программой, в зависимости от данных
т.е. НАПРИМЕР текст в поле "Click" ячейки Detail (Edit/Field/Click)
"http://foxclub.ru/`alltr(str(test_.saldo))`.html"

при формировании отчета, при значении test_.saldo=3 создаст ссылку
"http://foxclub.ru/3.html"
при формировании отчета, при значении test_.saldo=200 создаст ссылку
"http://foxclub.ru/200.html"
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Отреагировал я на мнение некоторых , что все бесперспективно (а может это было сделано специально: ) ?) и учел мнение остальных.
В общем, по роду моей работы, мне довольно часто приходится формировать отчеты, договора, акты, приложения и другие документы.
Стандартным 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
Откроется окно редактирования реакции на клик

Если по клику требуется обычный переход на страницу, то достаточно, например, написать текст:
"https://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)
www.maple4.ru
Версия (c DLL) – со страницы:
www.maple4.ru
ФОРУМ:
www.maple4.ru
Официальная страница:
www.maple4.ru
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
piva
Его еще пилить и пилить напильником, или даже рашпилем
В принципе, здесь две недели пиления

Что реализовано:
переработан интерфейс (под Excel)
обработка реакции на клик (как в 1С), и запуск, если необходимо, детализированных отчетов и т.д.
динамическое форматирование текста
генерация необходимых нужных блоков Detail, Group, Title, Summary (их количество может быть больше 1) по условию
формирование отчета в отчете (в основном отчете используются ДРУГИЕ, в них еще, и т.д.)
появились функции добавления колонок, строк, хедеров (в том числе - Group)
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Немного подумав, нашел интересный способ вставки и отображения файлов графики в Maple4 Report Builder-e (пожалуйста, только не говорите, что в Excel-е не так )
Теперь через контекстное меню Edit\Picture\Insert можно в ячейку вставить любой
графический файл , поддерживаемый Visual FoxPro.
И он тут же отобразится в визуальном редакторе (и, конечно, будет выведен в готовом файле HTML).
НО!
Нужно понимать, что программа демонстрационная, поэтому никаких преобразований (задание ширины и высоты) не ведется,
поэтому какой файл по размеру будет, такой и отобразится в HTML-документе.
В дальнейшем, БУДЕТ возможность задания макс. ширины и высоты, или привязки их к свойствам ячейки.
+ возможность формирования графического файла из поля таблицы
+ управление файлами графики отчета
Сейчас же просто хотелось показать, что снят главный барьер для использования.

В окончательном варианте программа будет распространяться, как exe-приложение
с запуском сценария (соединение с БД, подготовка таблиц, выполнение кода FoxPro, генерация на экран/печать на принтер),
и как app-приложение для применения в FoxPro проекте.


Хотелось бы узнать мнение FoxPro сообщества (именно на этом этапе, когда решены практически все проблемы с реализацией проекта, далее необходимо только время), хотя, как сказал мой знакомый, от мнения УЖЕ ничего не зависит. Ну тогда, хотя бы пару советов.
Например, до сих пор не решен вопрос размещения файлов графики в теле документа (пока) - mht. В принципе, ничего критичного в том, что документы будут вида HTML нет.

Загрузить программу можно отсюда (требуется Visual FoxPro 9.0 SP1)
www.maple4.ru

Версия (c DLL) – со страницы:
www.maple4.ru
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
Новая версия редактора отчетов Maple4 Report Builder

Назначение программы:
Создание репорта, генерация страниц HTML и вывод на экран (печать на принтер).

Кроме основного назначения есть не менее значительные неосновные:
Обработка реакции на клик
Применение app-приложения для генерации страниц или текста для последующей вставки в Вашу формируемую страницу (т.е. в нужном месте app-приложение вернет необходимый код для отображения отчета)
Создание приложений "типа под Web" (запуск приложений, форм с последующим обновлением страницы), когда в качестве основного окна программы (или других окон) выступает не форма Visual FoxPro, а HTML-страница.
Создание редактируемых зон в отчетах , т.н. редактируемых примечаний.

Страница загрузки программы
http://www.maple4.ru/rb/m4rb_download.html

Официальная страница проекта
http://www.maple4.ru/rb/index.html
Особенности программы
http://www.maple4.ru/rb/m4rb_osoben.html
Описание примера
http://www.maple4.ru/rb/m4rb_example.html
Вопросы и ответы по программе
http://www.maple4.ru/rb/m4rb_otvet.html
Форум по Maple4 Report Builder
http://www.maple4.ru/forums/index.php?showtopic=23
Настройки и
http://www.maple4.ru/rb/m4rb_nastroi.html
глюки программы
http://www.maple4.ru/rb/m4rb_gluk.html

Что реализовано в программе (как в виде exe- так и в виде app-приложения): (подробнее о возможностях можно узнать здесь)

Создание и редактирование отчетов и сценариев (как из exe- так и из app-приложения).
Редактирования каждого из отчетов и сценариев в отдельных окнах.
Создание и открытие репортов и сценариев непосредственно из окон редактирования репорта и сценария (не требуется запуск еще одного app-приложения или выбор в меню exe-приложения).
Запуск скрипта(сценария) из коммандной строки (или Вашего приложения) или из exe-модуля (в том числе по заранее подготовленному ярлыку).
Генерация связанных отчетов (один в другом) или нескольких отдельных отчетов в одном.
Генерация HTML-страниц или кода отчета без отображения (для последующей вставки).
Предпросмотр готовой страницы (при печати).
Печать HTML-страницы без предпросмотра (и вывода на экран).
Сохранение готовой страницы HTML (в том числе в виде mht, т.е. в виде архива и с включенными файлами графики).
Выполнение открытого скрипта из окна редактирования.
Возможность выполнения кода перед генерацией HTML и после генерации (со вставкой текстов или других отчетов до и после основного).
Возможность выполнения кода перед просмотром отчета HTML (при Return .f. отчет не показывается, удобно использовать для ограничения доступа), после просмотра и задание кода обновления отчета (данная возможность необходима при создании псевдоредактируемых отчетов - т.е. таких, где данные редактируются в формах Visual FoxPro, а потом необходимо обновление страницы).
Возможность задания нескольких хедеров одного типа (например, несколько хедеров Detail или Title).
Генерация в HTML (в зависимости от условия) различных хедеров или всех (по умолчанию).
Задание программы или функции обработки клика по значению в отчете.
Выполнение при генерации внутренних функций RB, функций, программ, форм Вашего приложения или внешних форм и prg-файлов.
Интеллектуальный анализатор файлов графики (сбор всех файлов в одном месте, т.е. где бы файл графики не находился, после генерации он будет размещен в подкаталоге reports_maple4_ru_rb текущего каталога, сравнение по размеру файла или по всему содержимому для сокращения повторяющихся файлов и конечного уменьшения файлов HTML с графикой)
Редактор выбора, размещения, и изменения размеров файлов графики (без изменений, с жесткими размерами, с максимальным ограничением по высоте/ширине).
Схожие принципы разработки отчетов со стандартным редактором.
Создание редактируемых зон в отчете, редактируемых примечаний.



Данная программа изначально разрабатывалась как некая простенькая программа для формирования файлов в формате HTML.
Потом захотелось графики (фото, рисунков), обработки кликов, редактируемых примечаний, создания отчетов отчете, последовательных отчетов в одном и т.д.
Программа является конкурентом программ, альтернативных стандартному редактору отчетов Visual FoxPro.
Действительно, какой смысл использовать другие редакторы отчетов, если они не приносят каких-либо выгод по сравнению со стандартным?
Программа распространяется абсолютно БЕСПЛАТНО, без каких-либо регистраций со стороны пользователя.
Программа имеет некоторые глюки (об этом заявляется честно и открыто), большинство которых являются порождением использования объекта IE.
Свой собственный браузер разрабатываться не будет , поэтому просьба, зная о глюках, заранее предусмотреть варианты других решений.
Ratings: 0 negative/0 positive
Re: Замена Report Buildera VisualFoxPro (реализация)
maple4
Автор

Сообщений: 210
Откуда: Москва
Дата регистрации: 26.10.2007
разместив в свойстве Styles (контекстное меню Edit/Cell/Style) ячейки текст
writing-mode: tb-rl;
получаете ориентацию текста
сверху-вниз - слева-направо

данная возможность работает только в IE (т.е. как раз в том control-e WebBrowser, которым Вы пользуетесь)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

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

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