|
|
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Не подскажите, где можно найти библиотеки, позволяющие пользователю самому создавать DW? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 12:49 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
view InfoMaker ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 13:02 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Извините, неправильно выразился. Интересует пример реализации такой библиотеки средствами PB. Что хочется: пользователь должен работать не с полями БД, а с известными ему сущностями предметной области, которые описаны в словаре БД. Необходимы также шаблоны группировок, сортировок. Напоследок, планирую написать дополнительные инструменты форматирования, например для "склеивания" соседних полей, размещённых методом drag-and-drop с некоторым промежутком/наложением и т.п. Хорошо бы скрыть от пользователя работу с системными вычисляемыми полями, используемыми при настройке печати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 13:47 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Пример дать не могу, а вариант есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 14:03 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Пример дать не могу, а вариант есть То есть вариант реализации есть, а код закрыт. Так? Как можно ознакомиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 14:06 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Много много всяких зарезервированных слов и достаточно большой объем кода Не моя разработка, а разрешение на публикацию чужих исходников мне никто не даст (да и специализирована она под "предприятие") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 16:30 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Много много всяких зарезервированных слов Не совсем понятно. DW строится не визуально, а с помощью скриптового языка? Так можно ли как-то ознакомиться с общими местами? Скриншоты можно? А Руководство пользователя - нереально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 17:36 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
IMHO, задача несложная, хотя, конечно, все зависит от постановки. Если надо сделать некий редактор форм, то 1. Создаете базовое DW (SyntaxFromSQL) 2. Изменяете расположение объектов на этом DW, обрабатывая событие clicked, и, возможно, нажатия клавиш-модификаторов 3. Желательно также иметь возможность напрямую редактировать свойства объектов на DW, для чего тоже надо создать некий интерфейс ввода Вот так примерно: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 20:05 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
zenkНе подскажите, где можно найти библиотеки, позволяющие пользователю самому создавать DW? У меня на сайте есть библиотека cpattern.pbl, в ней осуществляется генерация маски вывода для отчета, что к обсуждаемой проблеме отношения не имеет :) . Но в ней используется часть кода объекта, который является Wizard'ом для построения пользовательских DataWindow's. Если там не скрывать окно, которое создается :) , то будет видно окно, в котором находится графическое представление распарсенного синтаксиса DataWindow. На самом деле, там еще есть много кода, но он уже относится к конекретной программе, и окно там несколько другое. Там еще есть 3 уровня настройки, при создании форм, администраторская и пользовательская. Администраторская похожа на то, что опубликовал PL99. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 10:29 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Я встречался с двумя подходами, в одном случае генерился синтаксис по умолчанию, правилисть автоматом шрифты, размеры полей, цвета, наименования колонок (из внутреннего репозитория), а для точной настройки всякой всячины вызывался Datawindow Builder, правда я знаю его только для 6-ой версии. В другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов. Правда подход требует достаточного вложения сил и средств. Писалось и изменялось все это не один год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 12:46 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
не совсем по тему, но по поводу динамического размещения компанентов на форме (на visual c++) тута ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 13:14 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
PL99, спасибо. Можно уточнить ряд моментов? Самое главное - можно ли в этой системе создавать новые DW, или она предназначена только для косметической настройки? Если можно, нельзя ли прислать снимок конструктора DW в целом, а не окна настройки свойств объектов? Ну и несколько более частных вопросов: смещение поля "Количество квартир" вниз - это особенность интерфейса редактирования или изменилась позиция y? Можно ли менять стиль представления DataWindow? Реализованы ли разнесение объектов по полосам, группировки, вложенные отчёты? Локшин Марк: спасибо, я посмотрю. Estetsдля точной настройки всякой всячины вызывался Datawindow Builder, правда я знаю его только для 6-ой версии. А что это за штука - Datawindow Builder? Ссылочку можно? EstetsВ другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов. Самый интересный для меня метод. Можно про него рассказать подробнее? Нет ли у Вас координат разработчиков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 15:42 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
zenkPL99, спасибо. Можно уточнить ряд моментов?Пожалуйста :-) zenkСамое главное - можно ли в этой системе создавать новые DW, или она предназначена только для косметической настройки? Если можно, нельзя ли прислать снимок конструктора DW в целом, а не окна настройки свойств объектов?Это именно новое DW (в том смысле, что до момента своего создания оно нигде не хранилось). Первоначальное представление его создано вызовом функции SyntaxFromSql. Разумеется, что хранится всевозможная метаинформация об объектах, в т.ч. и в таблицах репозитария PB. zenkНу и несколько более частных вопросов: смещение поля "Количество квартир" вниз - это особенность интерфейса редактирования или изменилась позиция y?Я просто потянул мышкой вниз - изменилась координата Y. zenkМожно ли менять стиль представления DataWindow? Реализованы ли разнесение объектов по полосам, группировки, вложенные отчёты?То, что я показал предназначено только для форм, отчеты - это совсем другая песня. zenkА что это за штука - Datawindow Builder? Ссылочку можно?Приложение, реализующее DW Painter. Раньше эта штука шла с Оптимой и Инфомейкером. zenk EstetsВ другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов. Самый интересный для меня метод. Можно про него рассказать подробнее? Нет ли у Вас координат разработчиков?Меня терзают смутные сомненья - а не я ли начинал его разрабатывать ;-) В любом случае, если вы собираетесь делать нечто подобное, рекомендую прежде всего продумать перечень ограничений, которые не позволят юзеру все испортить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 15:59 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
А зачем InfoMaker изобретать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 18:30 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Я присоединяюсь к мнению предыдущего оратора :-) Во-первых , зачем тратить молодые годы на копирование того , что уже есть и в гораздо более качественном виде. Можно просто с помощью InfoMaker-а или даже среды PowerBuilder-а (в сокращенном варианте штатного проекта и подходящего layuot-а) - научить пользователя создавать нужные ему datawindow - manual-ы уже готовы - предусмотреть в штатном приложении диалог для отработки последовательности действия ls_syntax = LibraryExport(name_lib,name_obj,ExportDataWindow!) ls_err = dw_target.Create(ls_syntax) Во-вторых - гораздо существеннее. Работа на таком уровне потребует от юзера практически программистской квалификации - нужно знать структуру БД со всеми entity и relations , нужно уметь писать SQL Select-ы - причём не просто выборка столбцов из одной таблицы , а вполне может быть и несколько таблиц , да еще с union-ами и вложенными where (select...) . А еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД. ИМХО , нормальных юзеров перспектива таких напрягов может и не радовать - у него есть своя работа. Есть практический опыт создания "Генератора отчетов(ГО)" 1) в среде разработки PB создается некий datawindow , который по составу колонок достаточно универсально обеспечивает обширные потенциальные запросы юзера ; а также datawindow типа "ask" - чтобы иметь диалог для retrieve-параметров 2) синтаксис этих datawindow выгружается в файл под названием "шаблон" - туда же - автор, версия шаблона, дата , примечания... Этот файл обзывается "базовый" шаблон группы - по почте отсылается юзерам. 3) юзера сохраняют этот шаблон в оговоренной сетевой директории , откуда их видит "ГО" (отдельное mdi_window)и загружают к себе на исполнение - сначала ask-диалог на параметры , а потом retrieve по этим параметрам в штатном datawindow с CREATE(синтаксисом из шаблона) 4) если юзерам нужно что-то поменять - они копируют базовый (или иной существующий) шаблон в новый и с помощью простых диалогов могут - изменять положение, размеры , выравнивание,обрамление и (важно) видимость колонок , управлять шрифтом; задавать текстовые надписи и выражения вычисляемых полей ; очевидная идея состоит в том , что проще "удалять" (visible=False) ненужные (неактуальные) элементы чем конструировать новые 5) кроме того - сервис по сортировке , фильтру и группировкам 6) практика показала очень ценную фичу - добавление в detail вычисляемых колонок ; задавая нужные выражения в этих колонках можно задавать довольно изощренные условия для тех же фильтров, сортировок , группировок ; чтобы увеличить вычислительную "мощность" фичи - надо определить в приложении глобально несколько функций , например : аналог функции NVL, получение по id обьекта других его атрибутов , некоторые прикладные вычислительные операции ( но так , чтобы они были не слишком тормозными) … да мало ли фантазии - и можно использовать эти функции в вычисляемых колонках 7) для шапки , трайлеров и хидеров групп и подвала - также добавление и/или корректировка элементов - текстовые и вычисляемые, в том числе итоги/подитоги ; удобно иметь глобальную функцию string g_GetInfo(string as_kind) - где по этому kind-у можно получать нужные реквизиты, названия должностей и ФИО… Практика вполне подтвердила замысел. Юзера периодически запрашивают у программистов новые принципиально нетривиальные отчеты - "базовые шаблоны" . Программист сочиняет нужные SQLSelect - до 50 column и до нескольких кб текста непосредственно SQL оператора. Причесывает datawindow в типизированный вид и отсылает собранные шаблоны юзерам . Были случаи "горящей отчетности" - за полчаса укладывался. А уж юзера потом плодят всякие вариации по своему усмотрению - в каталоге лежит несколько сот файлов-шаблонов. В конце концов "ГО" содержит встроенную функцию экспорта в Excel (почти WISYWIG) - sky only limit Может кому-то это будет полезно . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 22:59 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
ZhV...Есть практический опыт создания "Генератора отчетов(ГО)" ...Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка. ZhVБыли случаи "горящей отчетности" - за полчаса укладывался. За полчаса проходили цепочку запрос от бизнес-подразделения-> постановка задачи->согласование->разработка отчета->тестирование? Если речь идет только о написании SQL-запроса, то, мне кажется, гораздо дешевле не использовать вообще никакие генераторы отчета, а выдавать пользователям результаты этого запроса в виде, например, xls-файла. И еще... ZhVА еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД.Как связано знание пользователем структуры БД и безопасность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 10:56 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
PL99 ZhV...Есть практический опыт создания "Генератора отчетов(ГО)" ...Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка. Пользователь - пользователю рознь. Написан отчетник, который на вход принимает dw greed (любые списки в приложении), а затем делай с данными то, куда мысль творческая заведет. Плоди любые шаблоны. Хранятся в БД. Случалось видеть отчеты, настроенные пользователем, что удивляешся, какие вещи из него выкручивают. А от разработчика требуется предоставление таких вот источников данных (dw), на основании которых можно получить требуемый отчет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 11:30 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
ФилиппА зачем InfoMaker изобретать? Для возможности создания отчётов пользователями. Что подразумевает использование словаря базы данных вместо имён полей и неких стандартных шаблонов и примитивов, например, стандартная трёхуровневая группировка по подразделениям или "печатать итоги в конце каждой страницы", "в конце отчёта - подпись руководителя в формате №3". ZhVВо-вторых - гораздо существеннее. Работа на таком уровне потребует от юзера практически программистской квалификации - нужно знать структуру БД со всеми entity и relations , нужно уметь писать SQL Select-ы - причём не просто выборка столбцов из одной таблицы , а вполне может быть и несколько таблиц , да еще с union-ами и вложенными where (select...) . А еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД. Нет, в таком случае Infomaker - лучший вариант. В нашем случае структуру БД пользователь знать не должен - в словаре БД есть описание сущностей и методы доступа к ним. Разумеется, не каждый SQL можно создать таким способом, да и запрос может быть не оптимальным. ZhV практика показала очень ценную фичу - добавление в detail вычисляемых колонок Если не сложно, не напишешь список таких колонок, и для чего они используются (номер по порядку, позиция печати ...)? Да, Ваш вариант интересен. Стоит подумать. Наверное, его можно реализовать в виде сервиса "Создать по шаблону". А вот создание самого шаблона ПОЛЬЗОВАТЕЛЕМ - отдельная задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 13:33 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
PL99 Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка. "Отнюдь"(с) - Код "ГО" уже достаточно стабилен в работе и не нуждается в постоянном присмотре. А datawindow для шаблона может сочинить любой программист PB , главное - прилично знать SQL , БД приложения и соблюдать некоторые несложные "соглашения" по конструированию шаблонов. Поэтому вовсе даже наоборот - работаем удаленно по почте по мере поступления ТЗ. PL99За полчаса проходили цепочку запрос от бизнес-подразделения-> постановка задачи->согласование->разработка отчета->тестирование? Если речь идет только о написании SQL-запроса, то, мне кажется, гораздо дешевле не использовать вообще никакие генераторы отчета, а выдавать пользователям результаты этого запроса в виде, например, xls-файла. Вся ваша цепочка имеет место быть при штатной работе - зачем плодить партизанщину без нужды. Но... Когда в 15-00 просят соорудить отчет, подлежащий сдаче к 18-00, прямо с телефона - "вот такой же как ... но со сверткой подекадно и расчетом показателей прироста..." Для меня вставить агрегатные функции в SQL Select несложно - а вот для человека с экономическим образованием ? Конечно такие случаи нечасты - но они сильно укрепляют позитивные взаимотношения. А насчёт Excel-я - так так когда-то и было . Этот кошмар уже стал забываться , когда между SaveAs->Excel и готовым отчетом нужно сделать полтыщи кликов ... PL99А еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД.Как связано знание пользователем структуры БД и безопасность?[/quot] А вам не приходит в голову , почему так свободно можно купить БД налоговой или сотовых операторов ? Если б только DBA имел доступ - проблем вычислить и прищучить не было. А так по вашей методе - всякий самый рядовой юзер может получить бесконтрольный доступ к описанию базы , а иногда и к содержимому - долго ли знаючи экспортнуть на флэшку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 14:11 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
zenk ...Что подразумевает использование словаря базы данных вместо имён полей и неких стандартных шаблонов и примитивов, например, стандартная трёхуровневая группировка по подразделениям или "печатать итоги в конце каждой страницы", "в конце отчёта - подпись руководителя в формате №3". ...В нашем случае структуру БД пользователь знать не должен - в словаре БД есть описание сущностей и методы доступа к ним. Разумеется, не каждый SQL можно создать таким способом, да и запрос может быть не оптимальным. А зачем так сложно со словарем . Создайте view , синонимы ... , которые отражают нужные вам сущности. Установите ограничения на доступ - будет работа для DBA... "Типовые стандарты отчетов" - копятся по мере освоения технологии самими юзерами , и они всегда имеют возможность использовать любой уже работающий шаблон как прототип для нового . zenk Если не сложно, не напишешь список таких колонок, и для чего они используются (номер по порядку, позиция печати ...)? ... "Не положено"(с) - названия функций содержат информацию о предметной области. Суть : есть базовый шаблон , который выдает некий набор данных содержащих - например некие финансово значимые показатели . Но юзеру захотелось узнать , как эти показатели коррелируют с другими атрибутами и показателями (не оьязательно из этого же dataset - можно получить другие типовые по global функциям) - создается несколько производных шаблонов ; добавляются доп.выч.колонки (их можно сделать невидимыми), которые своим результатом модифицируют показатели из столбцов так , что бы по ним можно было пересортировать, перегруппировать и отфильтровать данные нужным образом. Ну и шапку я рекомендую менять - "Зависимость удойности от длительности стойлового периода в порядке убывания" , "Реестр несушек , допустивших падение темпов ниже 10%"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 14:42 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33393460&tid=1338006]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 367ms |

| 0 / 0 |
