powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Генератор DataWindow
40 сообщений из 40, показаны все 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
Генератор 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
40 сообщений из 40, показаны все 2 страниц
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Генератор DataWindow
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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