Текущий архив: 2004.05.02;
Скачать: CL | DM;
Вниз
Диалоги запросов Найти похожие ветки
← →
Ломброзо © (2004-04-11 14:10) [0]Пишется небольшое приложение на Access, всего пара десятков таблиц, но очень много запросов. Параметризованные запросы хранятся прямо в mdb-шнике, их там порядка полусотни. Пятьдесят отдельных форм для этих запросов клепать просто лень. Вариант универсальной формы с тестбоксом "искать что", комбобоксом "искать где" и кнопкой OK не устраивает. Хочу что-нибудь более гибкое, например какую-нибудь формочку, которая бы на основе метаданных, извлекаемых движком ADO из хранящихся в базе запросов сама себя бы и строила. Кто-нибудь пробовал такое реализовать? Или какой-нибудь другой способ?
← →
kaif © (2004-04-11 16:41) [1]Так нужен построитель запросов или просто нужно выводить результаты запросов, заведомо написанных и сохраненных?
← →
kaif © (2004-04-11 16:44) [2]Или проблема в том, что у разных запросов разные наборы параметров и нужно динамически создавать соответствующие органы управления на окошке, после выбора того или иного запроса из выпадающего списка? Если так, то это не самая сложная задача - можно написать руками, если Access позволяет к таким метаданным обращаться (список параметров запроса).
← →
Ломброзо © (2004-04-11 17:09) [3]Второе. Уже пробую. Список параметров Access получить позволяет, но запнулся на том, что каждому параметру нужно сопоставить аттрибут "Подпись поля" для вывода надписи над соответствующим динамически создаваемым контролом. Что-то пока никак )
← →
kaif © (2004-04-11 17:16) [4]Что такое "Подпись поля"? Русское название атрибута? Например, надпись: "дата рождения" над контролом ввода даты рождения? Если так, то можно создавать динамически обычный TLabel и располагать его над контролом.
← →
kaif © (2004-04-11 17:20) [5]И еще. Какие типы параметров используются? Есть ли там такие типы, что требуют выбора из выпадающего списка (справочника), к примеру? То есть контролы разнородные и требуются ли еще динамически создаваемые компоненты запросов для Lookup-целей?
← →
kaif © (2004-04-11 17:27) [6]Я как-то делал подобную подсистему отчетов в одной базе на MSSQL. Так вот мне пришлось в отдельных таблицах хранить информацию о том, какие компоненты использовать и какие справочники задействовать, если это компоненты TDBLookupComboBox. Там же я и хранил будущие надписи (русские названия параметров). Так что одними системными таблицами тут, боюсь, не обойтись. Программа же сама по себе не знает, что, например, вот в этом параметре хорошо бы передать ID из какого-то справочника, например "Список подразделений")
← →
kaif © (2004-04-11 17:30) [7]Так что сначала надо точно прикинуть, какие контролы будут использоваться в принципе (весь минимальный джентльментский набор), затем создать таблицу, в которой хранить всю нужную информацию. Эту таблицу тщательно продумать. Потом уже городить окно с панелью, на которой динамически создавать контролы. К тому же я не знаю... хорошо бы русские названия для полей возвращаемого набора тоже иметь. чтобы Title-ы сетки потом разукрашивать понятным для юзера сленгом.
← →
Ломброзо © (2004-04-11 17:44) [8]kaif © (11.04.04 17:30) [7]
Вот русские названия и содержатся в аттрибуте "Подпись поля" в конструкторе таблиц Access, в мастере форм Акцесса этот атрибут выводится в лейбл над контролом. Нет, задача в принципе решаемая, вопрос лишь в том, насколько красиво и сопровождаемо её реализовать. Первая проблема - в динамической настройке Layout, т.е. автоматического расположения контролов + автоматический ресайзинг формы в зависимости от количества контролов. Тут проблема проще всего решается HTML-ом, однакож придётся WebBrowser прикручивать и бегать по объектной модели html-документа. Вторая - действительно, некоторые параметры нужно позволять выбирать из списка, а некоторые - вводить руками. Третья - некоторые параметры должны подставляться по умолчанию. Четвертая - русские подписи.
Так что всё-таки придётся писать какой-то конфигуратор-конструктор... ) Эхехех...
Страницы: 1 вся ветка
Текущий архив: 2004.05.02;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.026 c