powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Генератор DataWindow
15 сообщений из 40, страница 2 из 2
Генератор DataWindow
    #33397676
zenk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZhVА зачем так сложно со словарем . Создайте view , синонимы ... , которые отражают нужные вам сущности. Установите ограничения на доступ - будет работа для DBA...

Не понимаю, чем View мне помогут.

А в словаре описывается сущность, метод доступа (поле таблицы, функция, процедура, подзапрос...), родительская сущность, их связь, тип данных, размерность, шрифт, стиль редактирования и т.п. Часть параметров используется при формировании SQL, а часть - при создании формы.
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33397850
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zenkНе понимаю, чем View мне помогут.

А в словаре описывается сущность, метод доступа (поле таблицы, функция, процедура, подзапрос...), родительская сущность, их связь, тип данных, размерность, шрифт, стиль редактирования и т.п. Часть параметров используется при формировании SQL, а часть - при создании формы.

Ваше право :)

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

С большой вероятностью, должен быть местный IT, который сможет всю ситуацию разрулить. К примеру подправить формочку, под вдруг появившиеся новые требования. Только система должна быть хорошо документирована.
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33398472
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVВо-первых , зачем тратить молодые годы на копирование того , что уже есть и в гораздо более качественном виде. Можно просто с помощью InfoMaker-а или даже среды PowerBuilder-а (в сокращенном варианте штатного проекта и подходящего layuot-а)
- научить пользователя создавать нужные ему datawindow - manual-ы уже готовы
- предусмотреть в штатном приложении диалог для отработки последовательности действия
ls_syntax = LibraryExport(name_lib,name_obj,ExportDataWindow!)
ls_err = dw_target.Create(ls_syntax) Да, совсем забыл, такой подход тоже как-то был реализован в одном из небольших проектов.

ZhV ZhV[quot PL99] Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка.
"Отнюдь"(с) - Код "ГО" уже достаточно стабилен в работе и не нуждается в постоянном присмотре. А datawindow для шаблона может сочинить любой программист PB , главное - прилично знать SQL , БД приложения и соблюдать некоторые несложные "соглашения" по конструированию шаблонов. Поэтому вовсе даже наоборот - работаем удаленно по почте по мере поступления ТЗ.Навскидку - ZhV3) юзера сохраняют этот шаблон в оговоренной сетевой директории , откуда их видит "ГО" (отдельное mdi_window)и загружают к себе на исполнение - сначала ask-диалог на параметры , а потом retrieve по этим параметрам в штатном datawindow с CREATE(синтаксисом из шаблона) это самое слабое звено, учитывая, что ZhVв каталоге лежит несколько сот файлов-шаблоновВпрочем, не буду настаивать :-)

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

ZhVА насчёт Excel-я - так так когда-то и было . Этот кошмар уже стал забываться , когда между SaveAs->Excel и готовым отчетом нужно сделать полтыщи кликов ...А это совсем другой вопрос, он обсуждается в соседнем топике

ZhV ZhVА еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД. PL99Как связано знание пользователем структуры БД и безопасность?
А вам не приходит в голову , почему так свободно можно купить БД налоговой или сотовых операторов ? Если б только DBA имел доступ - проблем вычислить и прищучить не было. А так по вашей методе - всякий самый рядовой юзер может получить бесконтрольный доступ к описанию базы , а иногда и к содержимому - долго ли знаючи экспортнуть на флэшку.Так это должно решаться разграничением прав доступа, а не запретом на знание структуры. Пользователь под своим логином не должен, разумеется, иметь административных прав. Что же касается доступа к таблице, скажем, клиентов, то если пользователь имеет элементарные знания SQL, то все остальное он так или иначе получит. Разумеется, что поименовав таблицу клиентов, скажем, XG1537 мы несколько затрудняем ему доступ, но, с другой стороны, наверняка, где-то рядом будет таблица, к которой этот пользователь должен иметь доступ и содержащая запись вида
XG1537 КлиентыВпрочем, опять-таки, прошу рассматривать это как MHO.
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33398651
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zenk ФилиппА зачем InfoMaker изобретать?
Для возможности создания отчётов пользователями.
InfoMaker создан СПЕЦИАЛЬНО для создания отчётов пользователями.
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33399547
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99
zenk EstetsВ другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов.

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


2 PL99
Гы Гы Гы оно самое, это единственный на моей памяти результат когда функционал PB по редактированию DW был повторен на 70-80%. Но честно сказать затраты на все это не покрывают предполагаемый результат.

2 zenk
Есть конечно координаты, но в связи с внутренней организацией конторы это едва ли поможет ;(
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33399594
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп zenk ФилиппА зачем InfoMaker изобретать?
Для возможности создания отчётов пользователями.
InfoMaker создан СПЕЦИАЛЬНО для создания отчётов пользователями.
Вариантов может быть несколько, например русскоязычный интерфейс. Или интеграция с внутренними репозитариями по построению запросов для DW.

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

Если пользователю требуется изменить ширину поля в DW, или наименование заголовка (97% пользователей), то решить такую задачу проще другими средствами. А если пользователь хочет создавать сложные отчеты с сортировками, группировками и вычисляемыми полями, то проще его научить использовать PB, IM или CR.
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33399858
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Estets
Но как я писал в письме выше, обычно затраты реализацию редактора DW не покрывают бонусов от его существования.

Согласен. Именно поэтому я и спрашивал автора топика - что или кто подвинул его на столь сильный замах.
Я бы предложил посмотреть на проблему иначе. При "концептуальном" создании редактора DW - предстоит долгий путь до начала его практического применения, и в его начале не так уж ясна вся практическая ценность такого редатора для заказчика. Настолько ли терпелив заказчик , что будет платить точно не зная что получит в конце ?
А вот вариант "отчетника" ( (с) PridobreY ) - сразу предполагает получение полезных фич - создание системы отчетности в приложении , которая позволяет произвольно наращивать себя без переделки самого приложения . Заказчик гораздо скорее оценит возможность высокой оперативности при модификации отчетности, пусть даже и с привлечением профессиональных программистов, чем ценность довольно громоздкого (и всё равно ограниченного по сравнению с уже существующим InfoMaker-ом ) конструктора "Сам Себе Программист". Не знаю у кого как - но я редко встречал заказчиков , стремящихся влезать в программистскую шкуру. Самый яркий пример - 1С - в ней есть возможность самостоятельно писать навороченные отчеты на языке довольно близком к предметной области. Но все же большиство юзеров предпочитают получать готовые отчеты (файлы с расширением *.ert) - по рассылкам от 1С или заказывают их на стороне у программистов-одноэсников .

Estets
А если пользователь хочет создавать сложные отчеты с сортировками, группировками и вычисляемыми полями, то проще его научить использовать PB, IM или CR.

Не согласен. DataWindow очень удачно заточен под сервис сортировки и фильтрации - Describe/Modify("DataWindow.Sort/Filter") . Аналогично - еще и поиск. Нужны просто удобные для юзера диалоги при формировании условий - у нас это popup-меню, фильтры - по Selected строкам , диапазонам значений, по подстроке, по значениям DDDW/DDLB ... Группировки и добавление вычислимых полей - сложнее , но также реализуемо. При определенном навыке любой юзер , умеющий писать формулы для Excel-а - вполне справляется с написанием выражений и для вычислимых полей datawindow.

Достаточно быстро решив главную задачу - гибкая и настраиваемая отчетность - заказчик с лучшим пониманием переходит к расширению постановки задачи в сторону бОльшей функциональности "генератора DataWindow" . Я припоминаю первые обсуждения по нашему проекту с заказчиком - мы просто почти не понимали друг друга , кто чего хочет и может. По мере реализации некоторые первоначальные экзотические запросы-пожелания отпадают сами собой. Например как-то был сознательно продемострирован SQL-Select для очередного МСФО - у юзеров навсегда (кажется) пропало желание самим лезть в эти SQL дебри.
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33399971
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhV
Estets
А если пользователь хочет создавать сложные отчеты с сортировками, группировками и вычисляемыми полями, то проще его научить использовать PB, IM или CR.

Не согласен. DataWindow очень удачно заточен под сервис сортировки и фильтрации - Describe/Modify("DataWindow.Sort/Filter") . Аналогично - еще и поиск. Нужны просто удобные для юзера диалоги при формировании условий - у нас это popup-меню, фильтры - по Selected строкам , диапазонам значений, по подстроке, по значениям DDDW/DDLB ...

Против возможности настаивать сортировку фильтрацию и поиск в списках абсолютно ничего не имею, но из сотен отчетов в системе процентов 90 имеют вложенные отчеты, оствшиеся 10 процентов это списки чаще всего используемые как SaveAs для экспорта в другие системы или дальнейшей обработки. А вот построение сложных отчетов без PB, IM или DWEditora возможная, но геморойная вещь.

За годы работы я обучил человек 20 дизайнить DW с использованием PB и ни у кого особых проблем не возникало, правда стоит оговориться что это были программисты или администраторы а не брокеры и кассиры. Но на мой вгляд каждый должен делать свое дело.
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33400118
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Estets ...из сотен отчетов в системе процентов 90 имеют вложенные отчеты, оствшиеся 10 процентов это списки чаще всего используемые как SaveAs для экспорта в другие системы или дальнейшей обработки...

На вкус и цвет...
У нас принято - ваять Nested или Composite datawindow только если ну совсем уж никак и есть возможность обходиться с ним as is :
- невозможно нормально отработать клики
- невозможно отработать resize
- невозможна сортировка , фильтрация - а юзера уже привыкли к Excel-подобным фичам
- невозможно нормально выгрузить в Excel
- и собственно - "ГО" не работает - командой Create(ls_syntax) можно создать datawindow , но нельзя вставить ссылку на вложенный DataWindowChild - функция GetChild есть , а вот SetChild - нет .

Кто-то тут уже сказал , что Composite datawindow - это как PDF формат - можно только смотреть на него , но работать с ним почти невозможно.
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33401110
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVКто-то тут уже сказал , что Composite datawindow - это как PDF формат - можно только смотреть на него , но работать с ним почти невозможно.
Я сказал, но совершенно не это. С точки зрения SAveAs, PDF формат - для него самое подходящее. Но и только. В остальном Composite весьма гибок и позволяет вытворять с ним много чего. Вот nested - это другое дело...
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33402698
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhVУ нас принято - ваять Nested или Composite datawindow только если ну совсем уж никак и есть возможность обходиться с ним as is :
...
Ну я привык называть отчетами, то что готовится для печати на бумаге, а это как минимум Nested Report с логотипом и реквизитами, и Nested с подписями сотрудников.

В Excel это конечно не выгружается, для внутренней рассылки используется формат PSR и PSR-смотрелка, для внешней экспорт в PDF.
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33402774
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99Навскидку - ZhV3) юзера сохраняют этот шаблон в оговоренной сетевой директории , откуда их видит "ГО" (отдельное mdi_window)и загружают к себе на исполнение - сначала ask-диалог на параметры , а потом retrieve по этим параметрам в штатном datawindow с CREATE(синтаксисом из шаблона) это самое слабое звено, учитывая, что ZhVв каталоге лежит несколько сот файлов-шаблоновВпрочем, не буду настаивать :-)

Как то - так сразу не понял в чем слабость, потом появилось предположение...
Так вот все эти сотни шаблонов предлагаются юзеру на выбор :
1) в разных местах - точках вызова - разделение и контроль по префиксу имени шаблона
2) не в виде линейного списка типа DropDownDataWindow , а в стиле стандартного проводника на базе treeview - организована в виде групп , подгрупп произвольной вложенности. Вопрос группирования - чисто организационный.
Из практики - среди прочего имеется специальная группа "в помощь админу приложения" - наборы тестов на нарушения логической целостности БД , которые проявляются из-за сущестования некоторых "логических дыр" , допущенных при проектировании ... А также специальные контрольные реестры - да мало ли потребностей возникнет при существовании возможностей.
3) в "проводнике" кроме имени - выдается еще краткое описание , автор, версия , дата - всё как положено ; кроме этого имеется возможность подцепить полномасштабный help-файл (*.chm) - очень полезно для жесткорегламентированных отчетов.
4) система хранения шаблонов имеет собственное индексирование - для увеличения скорости работы ; поскольку save/load шаблонов делается через один обьект - опционально применить схему хранения шаблонов в БД - проблема небольшая ; просто так исторически сложилось - делать на файлах
...
Рейтинг: 0 / 0
Генератор DataWindow
    #33402852
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Estets ZhVУ нас принято - ваять Nested или Composite datawindow только если ну совсем уж никак и есть возможность обходиться с ним as is :
...
Ну я привык называть отчетами, то что готовится для печати на бумаге, а это как минимум Nested Report с логотипом и реквизитами, и Nested с подписями сотрудников.

В Excel это конечно не выгружается, для внутренней рассылки используется формат PSR и PSR-смотрелка, для внешней экспорт в PDF.


Ну да , я ж сказал "AS IS" ... Только логотипы и подписи - это можно вставить и GRID - в foregroynd и footer - нормально смотрится.

Не считая жестко регламентированных по форме отчетов , самый оправданный повод для composite - это действительно составной отчет , в котором разные части выполнены в принципиально различных структурах столбцов или даже типов.
Но... Из опыта. Проведя некоторую работу среди юзеров - они оценили полезность фич возможности excel-образных видов обработки (включая - копирование в clipboard по Data.Selected) и в некоторых случаях согласились на замену одного составного отчета на несколько (обычно не более 3) отдельных. Взамен - возможность копирования данных с экрана вместо "набивки" вручную
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Генератор DataWindow
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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