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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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