
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
21.08.2007, 21:49
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
вопрос скорее философский в наших проектах приходится создавать множество форм особенно достает создание форм для корректироки справочников например 30 справочников, форма корректировки справочников состоит собственонно из наименования, грида(1-2 колонки), кнопки добавить, кнопки удалить и каждую форму рисую вручную может есть какие нибудь методы для оптимизации этого процесса например создал 1 форму и она сама подстраивается под все справочники которые нужно редактировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.08.2007, 23:20
|
|||
|---|---|---|---|
вопросик |
|||
|
#18+
Я имею на все простые справочники одну форму. Вызываю форму с параметром имени таблицы этого справочника. Далее все операции делаю одинаково используя вместо имени таблицы это свойство формы... Если таблицы разные, то в свойстве INIT GRID прописываю разные столбцы в зависимости от имени таблицы etc... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 07:26
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
в том то и вопрос таблицы разные в одной нужно корректировать 1 поле в другой 8 тут нужно не просто табличку в грид подставить, но и расчитать величину формы, количество полей в гриде, название колонок в гриде, да и поля бывают разной величины и типа например символьные до 50 или 100 позиций, что при отражении в грид влияет на длину поля опять же нужно чтобы все уместилось на форме и было читабельным. как вы это все решаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 09:31
|
|||
|---|---|---|---|
вопросик |
|||
|
#18+
formв том то и вопрос таблицы разные в одной нужно корректировать 1 поле в другой 8 тут нужно не просто табличку в грид подставить, но и расчитать величину формы, количество полей в гриде, название колонок в гриде, да и поля бывают разной величины и типа например символьные до 50 или 100 позиций, что при отражении в грид влияет на длину поля опять же нужно чтобы все уместилось на форме и было читабельным. как вы это все решаете? С Grid я писал - в Init в зависимости от того, что надо - формирую вручную столбцы. Форма как праило принимает максимально допустимый размер. Если полей всего 2 до отсается незаполненное пространство в Grid, если 8 - то прокрутка. Если Ваши клиенты большие эстеты, то в методе INIT формы в зависимости от имени таблицы можно задавать ширину формы и положение кнопок, цвет etc.... Все это очень просто - форма остается одна, но кода внутри ее довольно много ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 09:32
|
|||
|---|---|---|---|
вопросик |
|||
|
#18+
Я вот извращался так (правда в связке VFP+MS SQL)... Для каждого справочника написал свою хранимку, которая возвращает собственно справочник и описание таблицы. Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. где len - ширина колонки в гриде, name - это заголовок колонки, а sourse - это имя поля, отбражаемого в колонке... В фоксе соответствеено выполняю запрос, получаю два курсора и далее "на лету" формирую сам грид (т.е. определяю количество колонок, ширину, заголовки и привязку к данным). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 10:07
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
в связке с SQL еще не думал а вот по поводу автоматизации процесса в фоксе идея такая: создаю две таблички - главная и зависимая в главной указываю характеристики формы - размер, название, источник грида, к-во полей в зависимой поля - название столбцов, ширина столбцов, источник столбцов и т.д. правда тут возникают проблемы, в каждой форме всеравно нужно расчитывать длинну грида изходя из к-ва колонок и ширины колонок, все это опять заполнять и вычислять вручную.. стоит ли того.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 10:10
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
в вычислениях тоже есть неопределенности например символьное поле размером 50 символов должно иметь в гриде колонку какой ширины в пикселях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 10:37
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
авторможет есть какие нибудь методы для оптимизации этого процесса есть - это ООП пишется библиотекчка с классом-шаблоном-заготовкай и от него виз-но пораждаются наследники, или динам-ки изм-ся класс при подъеме в завис-ти от каких-то настроечных сущностей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 11:02
|
|||
|---|---|---|---|
вопросик |
|||
|
#18+
form а вот по поводу автоматизации процесса в фоксе идея такая: создаю две таблички - главная и зависимая в главной указываю характеристики формы - размер, название, источник грида, к-во полей в зависимой поля - название столбцов, ширина столбцов, источник столбцов и т.д. правда тут возникают проблемы, в каждой форме всеравно нужно расчитывать длинну грида изходя из к-ва колонок и ширины колонок, все это опять заполнять и вычислять вручную.. стоит ли того.. А зачем такие сложности? Может проще для каждого справочника все-таки свою форму наваять. С гридом я изголялся только из-за того, что задолбало писать много однотипного кода - вот и забабахал такой класс... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 11:16
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
автордля каждого справочника все-таки свою форму наваять неоптимальный способ, который приводит к большим трудозатратам при поддержке софта (не говоря уже о размерах прилож-я) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 11:54
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
прошелмимо авторможет есть какие нибудь методы для оптимизации этого процесса есть - это ООП пишется библиотекчка с классом-шаблоном-заготовкай и от него виз-но пораждаются наследники, или динам-ки изм-ся класс при подъеме в завис-ти от каких-то настроечных сущностей здесь суть: или динамически изменяется класс при подьеме в зависимости от настроечных сущностей... в этом суть, как динамически изменяется класс? используя что изменяется? где эти настроечные сущности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 12:34
|
|||
|---|---|---|---|
вопросик |
|||
|
#18+
formстоит ли того.. После многих лет изысканий (в том числе создания визуальных классов с наследованием, хранением параметров форм в таблицах и генерацией их "на лету") я остановился на описанном варианте - проще и нагляднее поддержка... Но все зависит от Вас и Ваших пристрастий - сегодня Вам нравится баловаться с ООП, завтра Вы захотите стать сторонником простоты для других людей, поддерживающих Ваш код... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 12:47
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
пример фокспро 9 показано наследование, перегрузка классов показана динам-я закрузка и изменение объектов ("на лету") в зависим-ти от состояния свойств-настроек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 12:48
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
пример для того чтобы просто посмотреть принцип. фанатизма не нужно - это не прямое указание на стиль прогр-я ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 13:37
|
|||
|---|---|---|---|
вопросик |
|||
|
#18+
прошелмимо автордля каждого справочника все-таки свою форму наваять неоптимальный способ Это у меня " два пишем - три в уме" .... Подразумевалось следующее : Есть некий класс my_grid ( на основе грида) с параметром pQuery и методом mRequery. В указанном методе выполняется запрос, указанный в пераметре и на основе полученных данных "на лету" оформляется грид. Для работы со справочником я создаю форму, в которую добавляется my_grid и прописывается текст запроса + оформление формы (иконка, заголовок и пр.). Вот такая форма и подразумевается для каждого справочника... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.08.2007, 19:29
|
|||
|---|---|---|---|
вопросик |
|||
|
#18+
прошелмимо авторможет есть какие нибудь методы для оптимизации этого процесса есть - это ООП пишется библиотекчка с классом-шаблоном-заготовкай и от него виз-но пораждаются наследники, или динам-ки изм-ся класс при подъеме в завис-ти от каких-то настроечных сущностей + 1 У меня такая библиотека: класс BaseForm (производный от фоксового Form) там прописано: автоизменение размера шрифта и размеров контролов, управление меню для формы (появляется когда форма активна), методы для модального/немодального вызова. Все формы проекта на основе этого класса или его производных. Класс BForm производный от BaseForm: содержит Grid и кнопки (Добавить, Правка, Печать, Просмотр и т.д.) используется для отображения простых справочников. Прописан Resize(), свойство для имени формы правки, прописаны все кнопки. Прописан быстрый поиск по текущему индексу. Прописана менюшка формы с клавишами дублирующими кнопки (Ins, Del, F4) Grid тоже хитрый, в header.click() прописано установка SET ORDER TO по колонке, если есть индекс, или создание индекса если источник открыт монопольно. Класс EForm производный от BaseForm: содержит кнопки (Сохранить Отмена) используется для отображения/правки записи справочника. Прописана установка на запись переданную из BForm, буферизация, tableupdate(), tablerevert() на кнопках. Еще правила ключ таблицы обычно называю n{Имя таблицы}Id, формы b{Имя таблицы}, e{Имя таблицы}, чтобы автоматом по имени одного определять имя другого. Как этим пользуюсь: например таблица SPR (nSprId, cSpr) Код: plaintext Код: plaintext Пару минут и со справочником можно работать. Это вкратце, еще есть поля ввода, которые привязываются к справочнику, хранят Id отображают заданное поле, по двойному клику открывают справочник для выбора. и еще много всякой всячины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.08.2007, 08:13
|
|||
|---|---|---|---|
|
|||
вопросик |
|||
|
#18+
создание формы с гридом. Добавляю в DE таблицу SPR, перетаскиваю все поля на форму, подписываю Caption, задаю порядок обхода полей. Пару минут и со справочником можно работать. перетаскиваю все поля на форму... - ручная работа получается а нельзя ли так , чтобы форма анализировала отражаемую таблицу и по ее характеристикам размещала грид, устанавливала ширину полей, название полей и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.08.2007, 08:33
|
|||
|---|---|---|---|
вопросик |
|||
|
#18+
formа нельзя ли так , чтобы форма анализировала отражаемую таблицу и по ее характеристикам размещала грид, устанавливала ширину полей, название полей и т.д. Можно. Ты же спросил кто как делает. Только на мой взгляд авторазмещение будет убого смотреться. Руками гораздо лучше форму с полями скомпоновать, где-то pageframe может понадобится, пара минут работы мышкой - не высокая цена. Да и человеческие подписи полей все-равно нужны. И как правило этим не ограничивается, обычно надо бывает что-то еще допрописать индивидуальное для конкретной формы, например, убирание двойных пробелов в наименовании или принудительная установка первой заглавной буквы. Тут почитай, обсуждали необходимость и разумность использования подобных библиотек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1588862]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 408ms |

| 0 / 0 |
