|
|
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Не подскажите, где можно найти библиотеки, позволяющие пользователю самому создавать DW? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 12:49 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
view InfoMaker ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 13:02 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Извините, неправильно выразился. Интересует пример реализации такой библиотеки средствами PB. Что хочется: пользователь должен работать не с полями БД, а с известными ему сущностями предметной области, которые описаны в словаре БД. Необходимы также шаблоны группировок, сортировок. Напоследок, планирую написать дополнительные инструменты форматирования, например для "склеивания" соседних полей, размещённых методом drag-and-drop с некоторым промежутком/наложением и т.п. Хорошо бы скрыть от пользователя работу с системными вычисляемыми полями, используемыми при настройке печати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 13:47 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Пример дать не могу, а вариант есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 14:03 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Пример дать не могу, а вариант есть То есть вариант реализации есть, а код закрыт. Так? Как можно ознакомиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 14:06 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Много много всяких зарезервированных слов и достаточно большой объем кода Не моя разработка, а разрешение на публикацию чужих исходников мне никто не даст (да и специализирована она под "предприятие") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 16:30 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Много много всяких зарезервированных слов Не совсем понятно. DW строится не визуально, а с помощью скриптового языка? Так можно ли как-то ознакомиться с общими местами? Скриншоты можно? А Руководство пользователя - нереально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 17:36 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
IMHO, задача несложная, хотя, конечно, все зависит от постановки. Если надо сделать некий редактор форм, то 1. Создаете базовое DW (SyntaxFromSQL) 2. Изменяете расположение объектов на этом DW, обрабатывая событие clicked, и, возможно, нажатия клавиш-модификаторов 3. Желательно также иметь возможность напрямую редактировать свойства объектов на DW, для чего тоже надо создать некий интерфейс ввода Вот так примерно: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 20:05 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
zenkНе подскажите, где можно найти библиотеки, позволяющие пользователю самому создавать DW? У меня на сайте есть библиотека cpattern.pbl, в ней осуществляется генерация маски вывода для отчета, что к обсуждаемой проблеме отношения не имеет :) . Но в ней используется часть кода объекта, который является Wizard'ом для построения пользовательских DataWindow's. Если там не скрывать окно, которое создается :) , то будет видно окно, в котором находится графическое представление распарсенного синтаксиса DataWindow. На самом деле, там еще есть много кода, но он уже относится к конекретной программе, и окно там несколько другое. Там еще есть 3 уровня настройки, при создании форм, администраторская и пользовательская. Администраторская похожа на то, что опубликовал PL99. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 10:29 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Я встречался с двумя подходами, в одном случае генерился синтаксис по умолчанию, правилисть автоматом шрифты, размеры полей, цвета, наименования колонок (из внутреннего репозитория), а для точной настройки всякой всячины вызывался Datawindow Builder, правда я знаю его только для 6-ой версии. В другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов. Правда подход требует достаточного вложения сил и средств. Писалось и изменялось все это не один год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 12:46 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
не совсем по тему, но по поводу динамического размещения компанентов на форме (на visual c++) тута ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 13:14 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
PL99, спасибо. Можно уточнить ряд моментов? Самое главное - можно ли в этой системе создавать новые DW, или она предназначена только для косметической настройки? Если можно, нельзя ли прислать снимок конструктора DW в целом, а не окна настройки свойств объектов? Ну и несколько более частных вопросов: смещение поля "Количество квартир" вниз - это особенность интерфейса редактирования или изменилась позиция y? Можно ли менять стиль представления DataWindow? Реализованы ли разнесение объектов по полосам, группировки, вложенные отчёты? Локшин Марк: спасибо, я посмотрю. Estetsдля точной настройки всякой всячины вызывался Datawindow Builder, правда я знаю его только для 6-ой версии. А что это за штука - Datawindow Builder? Ссылочку можно? EstetsВ другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов. Самый интересный для меня метод. Можно про него рассказать подробнее? Нет ли у Вас координат разработчиков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 15:42 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
zenkPL99, спасибо. Можно уточнить ряд моментов?Пожалуйста :-) zenkСамое главное - можно ли в этой системе создавать новые DW, или она предназначена только для косметической настройки? Если можно, нельзя ли прислать снимок конструктора DW в целом, а не окна настройки свойств объектов?Это именно новое DW (в том смысле, что до момента своего создания оно нигде не хранилось). Первоначальное представление его создано вызовом функции SyntaxFromSql. Разумеется, что хранится всевозможная метаинформация об объектах, в т.ч. и в таблицах репозитария PB. zenkНу и несколько более частных вопросов: смещение поля "Количество квартир" вниз - это особенность интерфейса редактирования или изменилась позиция y?Я просто потянул мышкой вниз - изменилась координата Y. zenkМожно ли менять стиль представления DataWindow? Реализованы ли разнесение объектов по полосам, группировки, вложенные отчёты?То, что я показал предназначено только для форм, отчеты - это совсем другая песня. zenkА что это за штука - Datawindow Builder? Ссылочку можно?Приложение, реализующее DW Painter. Раньше эта штука шла с Оптимой и Инфомейкером. zenk EstetsВ другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов. Самый интересный для меня метод. Можно про него рассказать подробнее? Нет ли у Вас координат разработчиков?Меня терзают смутные сомненья - а не я ли начинал его разрабатывать ;-) В любом случае, если вы собираетесь делать нечто подобное, рекомендую прежде всего продумать перечень ограничений, которые не позволят юзеру все испортить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 15:59 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
А зачем InfoMaker изобретать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 18:30 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Я присоединяюсь к мнению предыдущего оратора :-) Во-первых , зачем тратить молодые годы на копирование того , что уже есть и в гораздо более качественном виде. Можно просто с помощью InfoMaker-а или даже среды PowerBuilder-а (в сокращенном варианте штатного проекта и подходящего layuot-а) - научить пользователя создавать нужные ему datawindow - manual-ы уже готовы - предусмотреть в штатном приложении диалог для отработки последовательности действия ls_syntax = LibraryExport(name_lib,name_obj,ExportDataWindow!) ls_err = dw_target.Create(ls_syntax) Во-вторых - гораздо существеннее. Работа на таком уровне потребует от юзера практически программистской квалификации - нужно знать структуру БД со всеми entity и relations , нужно уметь писать SQL Select-ы - причём не просто выборка столбцов из одной таблицы , а вполне может быть и несколько таблиц , да еще с union-ами и вложенными where (select...) . А еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД. ИМХО , нормальных юзеров перспектива таких напрягов может и не радовать - у него есть своя работа. Есть практический опыт создания "Генератора отчетов(ГО)" 1) в среде разработки PB создается некий datawindow , который по составу колонок достаточно универсально обеспечивает обширные потенциальные запросы юзера ; а также datawindow типа "ask" - чтобы иметь диалог для retrieve-параметров 2) синтаксис этих datawindow выгружается в файл под названием "шаблон" - туда же - автор, версия шаблона, дата , примечания... Этот файл обзывается "базовый" шаблон группы - по почте отсылается юзерам. 3) юзера сохраняют этот шаблон в оговоренной сетевой директории , откуда их видит "ГО" (отдельное mdi_window)и загружают к себе на исполнение - сначала ask-диалог на параметры , а потом retrieve по этим параметрам в штатном datawindow с CREATE(синтаксисом из шаблона) 4) если юзерам нужно что-то поменять - они копируют базовый (или иной существующий) шаблон в новый и с помощью простых диалогов могут - изменять положение, размеры , выравнивание,обрамление и (важно) видимость колонок , управлять шрифтом; задавать текстовые надписи и выражения вычисляемых полей ; очевидная идея состоит в том , что проще "удалять" (visible=False) ненужные (неактуальные) элементы чем конструировать новые 5) кроме того - сервис по сортировке , фильтру и группировкам 6) практика показала очень ценную фичу - добавление в detail вычисляемых колонок ; задавая нужные выражения в этих колонках можно задавать довольно изощренные условия для тех же фильтров, сортировок , группировок ; чтобы увеличить вычислительную "мощность" фичи - надо определить в приложении глобально несколько функций , например : аналог функции NVL, получение по id обьекта других его атрибутов , некоторые прикладные вычислительные операции ( но так , чтобы они были не слишком тормозными) … да мало ли фантазии - и можно использовать эти функции в вычисляемых колонках 7) для шапки , трайлеров и хидеров групп и подвала - также добавление и/или корректировка элементов - текстовые и вычисляемые, в том числе итоги/подитоги ; удобно иметь глобальную функцию string g_GetInfo(string as_kind) - где по этому kind-у можно получать нужные реквизиты, названия должностей и ФИО… Практика вполне подтвердила замысел. Юзера периодически запрашивают у программистов новые принципиально нетривиальные отчеты - "базовые шаблоны" . Программист сочиняет нужные SQLSelect - до 50 column и до нескольких кб текста непосредственно SQL оператора. Причесывает datawindow в типизированный вид и отсылает собранные шаблоны юзерам . Были случаи "горящей отчетности" - за полчаса укладывался. А уж юзера потом плодят всякие вариации по своему усмотрению - в каталоге лежит несколько сот файлов-шаблонов. В конце концов "ГО" содержит встроенную функцию экспорта в Excel (почти WISYWIG) - sky only limit Может кому-то это будет полезно . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2005, 22:59 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
ZhV...Есть практический опыт создания "Генератора отчетов(ГО)" ...Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка. ZhVБыли случаи "горящей отчетности" - за полчаса укладывался. За полчаса проходили цепочку запрос от бизнес-подразделения-> постановка задачи->согласование->разработка отчета->тестирование? Если речь идет только о написании SQL-запроса, то, мне кажется, гораздо дешевле не использовать вообще никакие генераторы отчета, а выдавать пользователям результаты этого запроса в виде, например, xls-файла. И еще... ZhVА еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД.Как связано знание пользователем структуры БД и безопасность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 10:56 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
PL99 ZhV...Есть практический опыт создания "Генератора отчетов(ГО)" ...Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка. Пользователь - пользователю рознь. Написан отчетник, который на вход принимает dw greed (любые списки в приложении), а затем делай с данными то, куда мысль творческая заведет. Плоди любые шаблоны. Хранятся в БД. Случалось видеть отчеты, настроенные пользователем, что удивляешся, какие вещи из него выкручивают. А от разработчика требуется предоставление таких вот источников данных (dw), на основании которых можно получить требуемый отчет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 11:30 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
ФилиппА зачем InfoMaker изобретать? Для возможности создания отчётов пользователями. Что подразумевает использование словаря базы данных вместо имён полей и неких стандартных шаблонов и примитивов, например, стандартная трёхуровневая группировка по подразделениям или "печатать итоги в конце каждой страницы", "в конце отчёта - подпись руководителя в формате №3". ZhVВо-вторых - гораздо существеннее. Работа на таком уровне потребует от юзера практически программистской квалификации - нужно знать структуру БД со всеми entity и relations , нужно уметь писать SQL Select-ы - причём не просто выборка столбцов из одной таблицы , а вполне может быть и несколько таблиц , да еще с union-ами и вложенными where (select...) . А еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД. Нет, в таком случае Infomaker - лучший вариант. В нашем случае структуру БД пользователь знать не должен - в словаре БД есть описание сущностей и методы доступа к ним. Разумеется, не каждый SQL можно создать таким способом, да и запрос может быть не оптимальным. ZhV практика показала очень ценную фичу - добавление в detail вычисляемых колонок Если не сложно, не напишешь список таких колонок, и для чего они используются (номер по порядку, позиция печати ...)? Да, Ваш вариант интересен. Стоит подумать. Наверное, его можно реализовать в виде сервиса "Создать по шаблону". А вот создание самого шаблона ПОЛЬЗОВАТЕЛЕМ - отдельная задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 13:33 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
PL99 Все это подходит только для случая, когда разработчик системы сидит рядом с пользователем, получает за свою работу фиксированный оклад и исключительно трудолюбив - поддержка такого хозяйства довольно трудоемка. "Отнюдь"(с) - Код "ГО" уже достаточно стабилен в работе и не нуждается в постоянном присмотре. А datawindow для шаблона может сочинить любой программист PB , главное - прилично знать SQL , БД приложения и соблюдать некоторые несложные "соглашения" по конструированию шаблонов. Поэтому вовсе даже наоборот - работаем удаленно по почте по мере поступления ТЗ. PL99За полчаса проходили цепочку запрос от бизнес-подразделения-> постановка задачи->согласование->разработка отчета->тестирование? Если речь идет только о написании SQL-запроса, то, мне кажется, гораздо дешевле не использовать вообще никакие генераторы отчета, а выдавать пользователям результаты этого запроса в виде, например, xls-файла. Вся ваша цепочка имеет место быть при штатной работе - зачем плодить партизанщину без нужды. Но... Когда в 15-00 просят соорудить отчет, подлежащий сдаче к 18-00, прямо с телефона - "вот такой же как ... но со сверткой подекадно и расчетом показателей прироста..." Для меня вставить агрегатные функции в SQL Select несложно - а вот для человека с экономическим образованием ? Конечно такие случаи нечасты - но они сильно укрепляют позитивные взаимотношения. А насчёт Excel-я - так так когда-то и было . Этот кошмар уже стал забываться , когда между SaveAs->Excel и готовым отчетом нужно сделать полтыщи кликов ... PL99А еще , по соображениям безопасности - далеко не всегда целесообразно знакомить юзеров со структурой БД.Как связано знание пользователем структуры БД и безопасность?[/quot] А вам не приходит в голову , почему так свободно можно купить БД налоговой или сотовых операторов ? Если б только DBA имел доступ - проблем вычислить и прищучить не было. А так по вашей методе - всякий самый рядовой юзер может получить бесконтрольный доступ к описанию базы , а иногда и к содержимому - долго ли знаючи экспортнуть на флэшку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 14:11 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
zenk ...Что подразумевает использование словаря базы данных вместо имён полей и неких стандартных шаблонов и примитивов, например, стандартная трёхуровневая группировка по подразделениям или "печатать итоги в конце каждой страницы", "в конце отчёта - подпись руководителя в формате №3". ...В нашем случае структуру БД пользователь знать не должен - в словаре БД есть описание сущностей и методы доступа к ним. Разумеется, не каждый SQL можно создать таким способом, да и запрос может быть не оптимальным. А зачем так сложно со словарем . Создайте view , синонимы ... , которые отражают нужные вам сущности. Установите ограничения на доступ - будет работа для DBA... "Типовые стандарты отчетов" - копятся по мере освоения технологии самими юзерами , и они всегда имеют возможность использовать любой уже работающий шаблон как прототип для нового . zenk Если не сложно, не напишешь список таких колонок, и для чего они используются (номер по порядку, позиция печати ...)? ... "Не положено"(с) - названия функций содержат информацию о предметной области. Суть : есть базовый шаблон , который выдает некий набор данных содержащих - например некие финансово значимые показатели . Но юзеру захотелось узнать , как эти показатели коррелируют с другими атрибутами и показателями (не оьязательно из этого же dataset - можно получить другие типовые по global функциям) - создается несколько производных шаблонов ; добавляются доп.выч.колонки (их можно сделать невидимыми), которые своим результатом модифицируют показатели из столбцов так , что бы по ним можно было пересортировать, перегруппировать и отфильтровать данные нужным образом. Ну и шапку я рекомендую менять - "Зависимость удойности от длительности стойлового периода в порядке убывания" , "Реестр несушек , допустивших падение темпов ниже 10%"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 14:42 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
ZhVА зачем так сложно со словарем . Создайте view , синонимы ... , которые отражают нужные вам сущности. Установите ограничения на доступ - будет работа для DBA... Не понимаю, чем View мне помогут. А в словаре описывается сущность, метод доступа (поле таблицы, функция, процедура, подзапрос...), родительская сущность, их связь, тип данных, размерность, шрифт, стиль редактирования и т.п. Часть параметров используется при формировании SQL, а часть - при создании формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 15:20 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
zenkНе понимаю, чем View мне помогут. А в словаре описывается сущность, метод доступа (поле таблицы, функция, процедура, подзапрос...), родительская сущность, их связь, тип данных, размерность, шрифт, стиль редактирования и т.п. Часть параметров используется при формировании SQL, а часть - при создании формы. Ваше право :) Вот чисто концептуальный вопрос - кто иницирует проект по приведенной вами концепции - программисты (ИТ-шники) или юзера (заказчик) ? Осознают ли юзера все грабли на этом нелегком пути , в том числе - большую трудоемкость такого конструирования , предстоящую необходимость осваивать область знаний связанную с "сущность, метод доступа (поле таблицы, функция, процедура, подзапрос...), родительская сущность, их связь" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:12 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Пользователи ничего знать не должны. Они оперируют только с сущностями. Все параметры сущности описывают программисты. Опишут неправильно - ничего работать не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:47 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
ZhV Вот чисто концептуальный вопрос - кто иницирует проект по приведенной вами концепции - программисты (ИТ-шники) или юзера (заказчик) ? Осознают ли юзера все грабли на этом нелегком пути , в том числе - большую трудоемкость такого конструирования , предстоящую необходимость осваивать область знаний связанную с "сущность, метод доступа (поле таблицы, функция, процедура, подзапрос...), родительская сущность, их связь" С большой вероятностью, должен быть местный IT, который сможет всю ситуацию разрулить. К примеру подправить формочку, под вдруг появившиеся новые требования. Только система должна быть хорошо документирована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:58 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 19:04 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
zenk ФилиппА зачем InfoMaker изобретать? Для возможности создания отчётов пользователями. InfoMaker создан СПЕЦИАЛЬНО для создания отчётов пользователями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 21:05 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
PL99 zenk EstetsВ другой конторе был практически полностью реализован интерфейс PB для создания и редактирования DW повторяющий возможности PB, я и сам приложил некоторые усилия для его доработки в части вложенных отчетов и КросТабов. Самый интересный для меня метод. Можно про него рассказать подробнее? Нет ли у Вас координат разработчиков?Меня терзают смутные сомненья - а не я ли начинал его разрабатывать ;-) 2 PL99 Гы Гы Гы оно самое, это единственный на моей памяти результат когда функционал PB по редактированию DW был повторен на 70-80%. Но честно сказать затраты на все это не покрывают предполагаемый результат. 2 zenk Есть конечно координаты, но в связи с внутренней организацией конторы это едва ли поможет ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 12:05 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Филипп zenk ФилиппА зачем InfoMaker изобретать? Для возможности создания отчётов пользователями. InfoMaker создан СПЕЦИАЛЬНО для создания отчётов пользователями. Вариантов может быть несколько, например русскоязычный интерфейс. Или интеграция с внутренними репозитариями по построению запросов для DW. Но как я писал в письме выше, обычно затраты реализацию редактора DW не покрывают бонусов от его существования. Если пользователю требуется изменить ширину поля в DW, или наименование заголовка (97% пользователей), то решить такую задачу проще другими средствами. А если пользователь хочет создавать сложные отчеты с сортировками, группировками и вычисляемыми полями, то проще его научить использовать PB, IM или CR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 12:14 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
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 дебри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 13:10 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
ZhV Estets А если пользователь хочет создавать сложные отчеты с сортировками, группировками и вычисляемыми полями, то проще его научить использовать PB, IM или CR. Не согласен. DataWindow очень удачно заточен под сервис сортировки и фильтрации - Describe/Modify("DataWindow.Sort/Filter") . Аналогично - еще и поиск. Нужны просто удобные для юзера диалоги при формировании условий - у нас это popup-меню, фильтры - по Selected строкам , диапазонам значений, по подстроке, по значениям DDDW/DDLB ... Против возможности настаивать сортировку фильтрацию и поиск в списках абсолютно ничего не имею, но из сотен отчетов в системе процентов 90 имеют вложенные отчеты, оствшиеся 10 процентов это списки чаще всего используемые как SaveAs для экспорта в другие системы или дальнейшей обработки. А вот построение сложных отчетов без PB, IM или DWEditora возможная, но геморойная вещь. За годы работы я обучил человек 20 дизайнить DW с использованием PB и ни у кого особых проблем не возникало, правда стоит оговориться что это были программисты или администраторы а не брокеры и кассиры. Но на мой вгляд каждый должен делать свое дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 13:44 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
Estets ...из сотен отчетов в системе процентов 90 имеют вложенные отчеты, оствшиеся 10 процентов это списки чаще всего используемые как SaveAs для экспорта в другие системы или дальнейшей обработки... На вкус и цвет... У нас принято - ваять Nested или Composite datawindow только если ну совсем уж никак и есть возможность обходиться с ним as is : - невозможно нормально отработать клики - невозможно отработать resize - невозможна сортировка , фильтрация - а юзера уже привыкли к Excel-подобным фичам - невозможно нормально выгрузить в Excel - и собственно - "ГО" не работает - командой Create(ls_syntax) можно создать datawindow , но нельзя вставить ссылку на вложенный DataWindowChild - функция GetChild есть , а вот SetChild - нет . Кто-то тут уже сказал , что Composite datawindow - это как PDF формат - можно только смотреть на него , но работать с ним почти невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 14:19 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
ZhVКто-то тут уже сказал , что Composite datawindow - это как PDF формат - можно только смотреть на него , но работать с ним почти невозможно. Я сказал, но совершенно не это. С точки зрения SAveAs, PDF формат - для него самое подходящее. Но и только. В остальном Composite весьма гибок и позволяет вытворять с ним много чего. Вот nested - это другое дело... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 20:26 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
ZhVУ нас принято - ваять Nested или Composite datawindow только если ну совсем уж никак и есть возможность обходиться с ним as is : ... Ну я привык называть отчетами, то что готовится для печати на бумаге, а это как минимум Nested Report с логотипом и реквизитами, и Nested с подписями сотрудников. В Excel это конечно не выгружается, для внутренней рассылки используется формат PSR и PSR-смотрелка, для внешней экспорт в PDF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 10:44 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
PL99Навскидку - ZhV3) юзера сохраняют этот шаблон в оговоренной сетевой директории , откуда их видит "ГО" (отдельное mdi_window)и загружают к себе на исполнение - сначала ask-диалог на параметры , а потом retrieve по этим параметрам в штатном datawindow с CREATE(синтаксисом из шаблона) это самое слабое звено, учитывая, что ZhVв каталоге лежит несколько сот файлов-шаблоновВпрочем, не буду настаивать :-) Как то - так сразу не понял в чем слабость, потом появилось предположение... Так вот все эти сотни шаблонов предлагаются юзеру на выбор : 1) в разных местах - точках вызова - разделение и контроль по префиксу имени шаблона 2) не в виде линейного списка типа DropDownDataWindow , а в стиле стандартного проводника на базе treeview - организована в виде групп , подгрупп произвольной вложенности. Вопрос группирования - чисто организационный. Из практики - среди прочего имеется специальная группа "в помощь админу приложения" - наборы тестов на нарушения логической целостности БД , которые проявляются из-за сущестования некоторых "логических дыр" , допущенных при проектировании ... А также специальные контрольные реестры - да мало ли потребностей возникнет при существовании возможностей. 3) в "проводнике" кроме имени - выдается еще краткое описание , автор, версия , дата - всё как положено ; кроме этого имеется возможность подцепить полномасштабный help-файл (*.chm) - очень полезно для жесткорегламентированных отчетов. 4) система хранения шаблонов имеет собственное индексирование - для увеличения скорости работы ; поскольку save/load шаблонов делается через один обьект - опционально применить схему хранения шаблонов в БД - проблема небольшая ; просто так исторически сложилось - делать на файлах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 11:00 |
|
||
|
Генератор DataWindow
|
|||
|---|---|---|---|
|
#18+
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) отдельных. Взамен - возможность копирования данных с экрана вместо "набивки" вручную ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 11:20 |
|
||
|
|

start [/forum/topic.php?all=1&fid=15&tid=1338006]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 467ms |

| 0 / 0 |
