Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Генератор DataWindow / 25 сообщений из 40, страница 1 из 2
22.11.2005, 12:49
    #33392173
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
Не подскажите, где можно найти библиотеки, позволяющие пользователю самому создавать DW?
...
Рейтинг: 0 / 0
22.11.2005, 13:02
    #33392221
Mykola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
view InfoMaker
...
Рейтинг: 0 / 0
22.11.2005, 13:47
    #33392369
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
Извините, неправильно выразился.
Интересует пример реализации такой библиотеки средствами PB.
Что хочется: пользователь должен работать не с полями БД, а с известными ему сущностями предметной области, которые описаны в словаре БД. Необходимы также шаблоны группировок, сортировок. Напоследок, планирую написать дополнительные инструменты форматирования, например для "склеивания" соседних полей, размещённых методом drag-and-drop с некоторым промежутком/наложением и т.п.
Хорошо бы скрыть от пользователя работу с системными вычисляемыми полями, используемыми при настройке печати.
...
Рейтинг: 0 / 0
22.11.2005, 14:03
    #33392436
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
Пример дать не могу, а вариант есть
...
Рейтинг: 0 / 0
22.11.2005, 14:06
    #33392443
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
Пример дать не могу, а вариант есть

То есть вариант реализации есть, а код закрыт. Так?

Как можно ознакомиться?
...
Рейтинг: 0 / 0
22.11.2005, 16:30
    #33393000
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
Много много всяких зарезервированных слов и достаточно большой объем кода
Не моя разработка, а разрешение на публикацию чужих исходников мне никто не даст (да и специализирована она под "предприятие")
...
Рейтинг: 0 / 0
22.11.2005, 17:36
    #33393198
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
Много много всяких зарезервированных слов

Не совсем понятно. DW строится не визуально, а с помощью скриптового языка?

Так можно ли как-то ознакомиться с общими местами?

Скриншоты можно?
А Руководство пользователя - нереально?
...
Рейтинг: 0 / 0
22.11.2005, 20:05
    #33393454
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
IMHO, задача несложная, хотя, конечно, все зависит от постановки.
Если надо сделать некий редактор форм, то
1. Создаете базовое DW (SyntaxFromSQL)
2. Изменяете расположение объектов на этом DW, обрабатывая событие clicked, и, возможно, нажатия клавиш-модификаторов
3. Желательно также иметь возможность напрямую редактировать свойства объектов на DW, для чего тоже надо создать некий интерфейс ввода

Вот так примерно:
...
Рейтинг: 0 / 0
22.11.2005, 20:05
    #33393456
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
...
Рейтинг: 0 / 0
22.11.2005, 20:06
    #33393457
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
...
Рейтинг: 0 / 0
22.11.2005, 20:06
    #33393458
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
...
Рейтинг: 0 / 0
22.11.2005, 20:07
    #33393459
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
...
Рейтинг: 0 / 0
22.11.2005, 20:07
    #33393460
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
...
Рейтинг: 0 / 0
23.11.2005, 10:29
    #33393960
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
zenkНе подскажите, где можно найти библиотеки, позволяющие пользователю самому создавать DW?
У меня на сайте есть библиотека cpattern.pbl, в ней осуществляется генерация маски вывода для отчета, что к обсуждаемой проблеме отношения не имеет :) . Но в ней используется часть кода объекта, который является Wizard'ом для построения пользовательских DataWindow's. Если там не скрывать окно, которое создается :) , то будет видно окно, в котором находится графическое представление распарсенного синтаксиса DataWindow. На самом деле, там еще есть много кода, но он уже относится к конекретной программе, и окно там несколько другое. Там еще есть 3 уровня настройки, при создании форм, администраторская и пользовательская. Администраторская похожа на то, что опубликовал PL99.
...
Рейтинг: 0 / 0
23.11.2005, 12:46
    #33394523
Estets
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
Я встречался с двумя подходами, в одном случае генерился синтаксис по умолчанию, правилисть автоматом шрифты, размеры полей, цвета, наименования колонок (из внутреннего репозитория), а для точной настройки всякой всячины вызывался Datawindow Builder, правда я знаю его только для 6-ой версии.

В другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов. Правда подход требует достаточного вложения сил и средств. Писалось и изменялось все это не один год.
...
Рейтинг: 0 / 0
23.11.2005, 13:14
    #33394604
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
не совсем по тему, но по поводу динамического размещения компанентов на форме (на visual c++) тута
...
Рейтинг: 0 / 0
23.11.2005, 15:42
    #33395056
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
PL99, спасибо.

Можно уточнить ряд моментов?
Самое главное - можно ли в этой системе создавать новые DW, или она предназначена только для косметической настройки? Если можно, нельзя ли прислать снимок конструктора DW в целом, а не окна настройки свойств объектов?
Ну и несколько более частных вопросов: смещение поля "Количество квартир" вниз - это особенность интерфейса редактирования или изменилась позиция y?
Можно ли менять стиль представления DataWindow? Реализованы ли разнесение объектов по полосам, группировки, вложенные отчёты?

Локшин Марк: спасибо, я посмотрю.

Estetsдля точной настройки всякой всячины вызывался Datawindow Builder, правда я знаю его только для 6-ой версии.

А что это за штука - Datawindow Builder? Ссылочку можно?

EstetsВ другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов.

Самый интересный для меня метод. Можно про него рассказать подробнее? Нет ли у Вас координат разработчиков?
...
Рейтинг: 0 / 0
23.11.2005, 15:59
    #33395111
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
zenkPL99, спасибо.

Можно уточнить ряд моментов?Пожалуйста :-)
zenkСамое главное - можно ли в этой системе создавать новые DW, или она предназначена только для косметической настройки? Если можно, нельзя ли прислать снимок конструктора DW в целом, а не окна настройки свойств объектов?Это именно новое DW (в том смысле, что до момента своего создания оно нигде не хранилось). Первоначальное представление его создано вызовом функции SyntaxFromSql. Разумеется, что хранится всевозможная метаинформация об объектах, в т.ч. и в таблицах репозитария PB.
zenkНу и несколько более частных вопросов: смещение поля "Количество квартир" вниз - это особенность интерфейса редактирования или изменилась позиция y?Я просто потянул мышкой вниз - изменилась координата Y.
zenkМожно ли менять стиль представления DataWindow? Реализованы ли разнесение объектов по полосам, группировки, вложенные отчёты?То, что я показал предназначено только для форм, отчеты - это совсем другая песня.

zenkА что это за штука - Datawindow Builder? Ссылочку можно?Приложение, реализующее DW Painter. Раньше эта штука шла с Оптимой и Инфомейкером.

zenk EstetsВ другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов.

Самый интересный для меня метод. Можно про него рассказать подробнее? Нет ли у Вас координат разработчиков?Меня терзают смутные сомненья - а не я ли начинал его разрабатывать ;-)

В любом случае, если вы собираетесь делать нечто подобное, рекомендую прежде всего продумать перечень ограничений, которые не позволят юзеру все испортить.
...
Рейтинг: 0 / 0
23.11.2005, 18:30
    #33395611
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
А зачем InfoMaker изобретать?
...
Рейтинг: 0 / 0
23.11.2005, 22:59
    #33395932
ZhV
ZhV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
Я присоединяюсь к мнению предыдущего оратора :-)
Во-первых , зачем тратить молодые годы на копирование того , что уже есть и в гораздо более качественном виде. Можно просто с помощью 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

Может кому-то это будет полезно .
...
Рейтинг: 0 / 0
24.11.2005, 10:56
    #33396503
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
ZhV...Есть практический опыт создания "Генератора отчетов(ГО)" ...Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка.

ZhVБыли случаи "горящей отчетности" - за полчаса укладывался. За полчаса проходили цепочку запрос от бизнес-подразделения-> постановка задачи->согласование->разработка отчета->тестирование?
Если речь идет только о написании SQL-запроса, то, мне кажется, гораздо дешевле не использовать вообще никакие генераторы отчета, а выдавать пользователям результаты этого запроса в виде, например, xls-файла.

И еще...
ZhVА еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД.Как связано знание пользователем структуры БД и безопасность?
...
Рейтинг: 0 / 0
24.11.2005, 11:30
    #33396641
PridobreY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
PL99 ZhV...Есть практический опыт создания "Генератора отчетов(ГО)" ...Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка.

Пользователь - пользователю рознь. Написан отчетник, который на вход принимает dw greed (любые списки в приложении), а затем делай с данными то, куда мысль творческая заведет. Плоди любые шаблоны. Хранятся в БД. Случалось видеть отчеты, настроенные пользователем, что удивляешся, какие вещи из него выкручивают. А от разработчика требуется предоставление таких вот источников данных (dw), на основании которых можно получить требуемый отчет.
...
Рейтинг: 0 / 0
24.11.2005, 13:33
    #33397226
zenk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
ФилиппА зачем InfoMaker изобретать?

Для возможности создания отчётов пользователями.
Что подразумевает использование словаря базы данных вместо имён полей и неких стандартных шаблонов и примитивов, например, стандартная трёхуровневая группировка по подразделениям или "печатать итоги в конце каждой страницы", "в конце отчёта - подпись руководителя в формате №3".

ZhVВо-вторых - гораздо существеннее. Работа на таком уровне потребует от юзера практически программистской квалификации - нужно знать структуру БД со всеми entity и relations , нужно уметь писать SQL Select-ы - причём не просто выборка столбцов из одной таблицы , а вполне может быть и несколько таблиц , да еще с union-ами и вложенными where (select...) . А еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД.
Нет, в таком случае Infomaker - лучший вариант. В нашем случае структуру БД пользователь знать не должен - в словаре БД есть описание сущностей и методы доступа к ним. Разумеется, не каждый SQL можно создать таким способом, да и запрос может быть не оптимальным.

ZhV практика показала очень ценную фичу - добавление в detail вычисляемых колонок
Если не сложно, не напишешь список таких колонок, и для чего они используются (номер по порядку, позиция печати ...)?

Да, Ваш вариант интересен. Стоит подумать. Наверное, его можно реализовать в виде сервиса "Создать по шаблону". А вот создание самого шаблона ПОЛЬЗОВАТЕЛЕМ - отдельная задача.
...
Рейтинг: 0 / 0
24.11.2005, 14:11
    #33397426
ZhV
ZhV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
PL99 Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка.
"Отнюдь"(с) - Код "ГО" уже достаточно стабилен в работе и не нуждается в постоянном присмотре. А datawindow для шаблона может сочинить любой программист PB , главное - прилично знать SQL , БД приложения и соблюдать некоторые несложные "соглашения" по конструированию шаблонов. Поэтому вовсе даже наоборот - работаем удаленно по почте по мере поступления ТЗ.

PL99За полчаса проходили цепочку запрос от бизнес-подразделения-> постановка задачи->согласование->разработка отчета->тестирование?
Если речь идет только о написании SQL-запроса, то, мне кажется, гораздо дешевле не использовать вообще никакие генераторы отчета, а выдавать пользователям результаты этого запроса в виде, например, xls-файла.
Вся ваша цепочка имеет место быть при штатной работе - зачем плодить партизанщину без нужды. Но... Когда в 15-00 просят соорудить отчет, подлежащий сдаче к 18-00, прямо с телефона - "вот такой же как ... но со сверткой подекадно и расчетом показателей прироста..." Для меня вставить агрегатные функции в SQL Select несложно - а вот для человека с экономическим образованием ? Конечно такие случаи нечасты - но они сильно укрепляют позитивные взаимотношения.
А насчёт Excel-я - так так когда-то и было . Этот кошмар уже стал забываться , когда между SaveAs->Excel и готовым отчетом нужно сделать полтыщи кликов ...


PL99А еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД.Как связано знание пользователем структуры БД и безопасность?[/quot]
А вам не приходит в голову , почему так свободно можно купить БД налоговой или сотовых операторов ? Если б только DBA имел доступ - проблем вычислить и прищучить не было. А так по вашей методе - всякий самый рядовой юзер может получить бесконтрольный доступ к описанию базы , а иногда и к содержимому - долго ли знаючи экспортнуть на флэшку.
...
Рейтинг: 0 / 0
24.11.2005, 14:42
    #33397539
ZhV
ZhV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генератор DataWindow
zenk ...Что подразумевает использование словаря базы данных вместо имён полей и неких стандартных шаблонов и примитивов, например, стандартная трёхуровневая группировка по подразделениям или "печатать итоги в конце каждой страницы", "в конце отчёта - подпись руководителя в формате №3".

...В нашем случае структуру БД пользователь знать не должен - в словаре БД есть описание сущностей и методы доступа к ним. Разумеется, не каждый SQL можно создать таким способом, да и запрос может быть не оптимальным.
А зачем так сложно со словарем . Создайте view , синонимы ... , которые отражают нужные вам сущности. Установите ограничения на доступ - будет работа для DBA...
"Типовые стандарты отчетов" - копятся по мере освоения технологии самими юзерами , и они всегда имеют возможность использовать любой уже работающий шаблон как прототип для нового .

zenk
Если не сложно, не напишешь список таких колонок, и для чего они используются (номер по порядку, позиция печати ...)?
...
"Не положено"(с) - названия функций содержат информацию о предметной области. Суть : есть базовый шаблон , который выдает некий набор данных содержащих - например некие финансово значимые показатели . Но юзеру захотелось узнать , как эти показатели коррелируют с другими атрибутами и показателями (не оьязательно из этого же dataset - можно получить другие типовые по global функциям) - создается несколько производных шаблонов ; добавляются доп.выч.колонки (их можно сделать невидимыми), которые своим результатом модифицируют показатели из столбцов так , что бы по ним можно было пересортировать, перегруппировать и отфильтровать данные нужным образом. Ну и шапку я рекомендую менять - "Зависимость удойности от длительности стойлового периода в порядке убывания" , "Реестр несушек , допустивших падение темпов ниже 10%"...
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Генератор DataWindow / 25 сообщений из 40, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]