|
Вопрос по Grid.View = 3
|
|||
---|---|---|---|
#18+
Господа! Пусть дан Grid и Grid.View = 3. В первой колонке выводятся имена полей (или Caption полей). Какое свойство Grid управляет шириной указанной колонки? Значения каждого поля каждой записи помещается в соответствующий прямоугольник. Какое свойство Grid управляет шириной указанных прямоугольников? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2012, 18:15 |
|
Вопрос по Grid.View = 3
|
|||
---|---|---|---|
#18+
В дополнение еще один вопрос. Есть ли возможность разделить линиями не только записи в Grid.View = 3, но и поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2012, 18:20 |
|
Вопрос по Grid.View = 3
|
|||
---|---|---|---|
#18+
Отображение панели Grid в режиме Grid.View = 3 - практически не управлемое. Этот режим был введен для совместимости с командой CHANGE. Прямого управления шириной столбца с заголовками и содержимым нет. Только опосредовано. Ширина заголовочной части кажется равна ширине самого широкого заголовка. Лично я симулировал режим Change сделав обычный Grid с двумя столбцами и наполнял его "вручную". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2012, 21:16 |
|
Вопрос по Grid.View = 3
|
|||
---|---|---|---|
#18+
Уважаемый ВладимирМ! Пожалуйста, объясните как вы "симулируете" операцию транспонирования. Я пробовал применить Cross-Tab Wizard, но мне кажется, что этот аппарат не адекватен (хотя, я могу ошибаться). Кроме того, всякую таблицу можно представить таблицей со следующей структурой: Имя поля, № записи, Значение, ... (некоторые вспомогательные поля). Но расходы по обслуживанию такой таблицы велики (довольно трудно писать программы добавления записи, удаления записи, сортировки и т. п.). Всякий раз приходится заниматься преобразованием типов переменных и прочее. Кроме того, все описанные манипуляции при большом объеме таблицы будут делаться долго. Может быть нужно постоянно "переливать" данные из одного представления в другое? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2012, 12:58 |
|
Вопрос по Grid.View = 3
|
|||
---|---|---|---|
#18+
Собственно, Вы сами расписали все сопутствующие проблемы. А теперь попробуйте также расписать зачем Вам вообще нужен режим Change? Не проще вывести поля таблиц вне Grid (например, справа) просто как TextBox, а в Grid оставить только пару ключевых полей для навигации? Ну, или на первой закладке PageFrame обычный Grid, а на второй - набор TextBox. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2012, 14:52 |
|
Вопрос по Grid.View = 3
|
|||
---|---|---|---|
#18+
Уважаемый ВладимирМ! На мой взгляд, использование технологии "TextBox" имеет серьезный недостаток. А именно. Если в "опорной" таблице добавить (удалить) поле, то либо не появится соответствующий TextBox (либо возникнет ошибка). Понятно, что можно написать программу, которая создаст в соответствующих координатах и размерах объекты на форме, но уж больно все это хлопотно. Нетрудно понять, что технология Grid свободна от такой проблемы. Далее. Если в таблице очень много полей (не помещаются на экран), то удобно использовать Grid.View = 3 (или "симуляцию"). Таким образом, для навигации я использую Grid, а для корректировки Grid.View = 3 Проблема в том, что Grid.View = 3 очень некрасивый и, как Вы заметили, неуправляемый. Вот откуда мой вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2012, 17:08 |
|
Вопрос по Grid.View = 3
|
|||
---|---|---|---|
#18+
UAPЕсли в "опорной" таблице добавить (удалить) поле, то либо не появится соответствующий TextBox (либо возникнет ошибка). Понятно, что можно написать программу, которая создаст в соответствующих координатах и размерах объекты на форме, но уж больно все это хлопотно. Нетрудно понять, что технология Grid свободна от такой проблемы. Добавление поля - это неизбежная модификация много чего, много где. И технология Grid вовсе не свободна от этой проблемы. Точнее, она, конечно, свободна, но только в крайне примитивных случаях, когда Вы ставите ColumnCount = -1. Как правило, такая ситуация встречается крайне редко. Обычно Grid требует некой предварительной настройки столбцов еще на уровне проектирования форм. Так что, это не является каким-либо серьезным аргументом Кстати замечу, что как правило, изменение структуры данных в процессе работы приложения не происходит. Как следствие, нет необходимости писать программу по динамическому созданию и размещению объектов на форме. Эти объекты просто кладутся в нужные места в дизайнере класса или формы еще до создания исполняемого кода (до создания EXE). UAPЕсли в таблице очень много полей (не помещаются на экран), то удобно использовать Grid.View = 3 (или "симуляцию"). Таким образом, для навигации я использую Grid, а для корректировки Grid.View = 3 Экран монитора ограничен как по горизонтали, так и по вертикали. Поэтому как у Вас не умещается все в строку, точно также не будет умещаться и в столбец. Просто этот момент наступит чуть позже. Как правило, большое количество полей объединяют на формах в некие группы полей близкие по смыслу. А если на форме мало места, то еще и на разные страницы PageFrame. Кстати, если положить все объекты в контейнер и добавить ScroolBar, то получим полную симуляцияю Grid.View = 3 UAPПроблема в том, что Grid.View = 3 очень некрасивый и, как Вы заметили, неуправляемый. Вот откуда мой вопрос. Тут дело даже не в красоте, а в "не естесственной" навигации. Как Вы сможете внятно объяснить пользователями, что после последнего поля строки начинается первое поле новой строки? Переход между записями в таком режиме не очевиден для пользователя. Особенно, если полей действительно много. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2012, 20:09 |
|
Вопрос по Grid.View = 3
|
|||
---|---|---|---|
#18+
Уважаемый ВладимирМ! Как ни странно, я постоянно сталкиваюсь с задачами, где наборы полей в таблицах НЕСТАБИЛЬНЫ. Поэтому изменения структур таблиц и прилегающие вопросы непосредственно ВО ВРЕМЯ работы программы меня очень интересуют. Если изменение структуры таблицы снабдить хорошим контролем, то приличный пользователь вполне справится с корректировкой. В противном случае, придется программисту сидеть рядом и постоянно модифицировать структуры таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2012, 16:58 |
|
Вопрос по Grid.View = 3
|
|||
---|---|---|---|
#18+
UAPКак ни странно, я постоянно сталкиваюсь с задачами, где наборы полей в таблицах НЕСТАБИЛЬНЫ. Здесь возможны несколько причины 1. Не продуманная структура базы данных или приложения 2. Не продуманное желание пользователя Для приложений, работающих с реляционными базами данных изменение структуры таблиц "на лету" - это "не естественный" режим работы. Как правило, если это реальное требование, то база данных содержит настроечные таблицы со сложными метаданными специально для того, чтобы вместо добавления полей свести задачу к добавлению строк. Например, реквизиты компьютера. Для "правильной" структуры создается справочник названий реквизитов и дополнительная таблица значений реквизитов со ссылкой на этот справочник. В результате, добавление нового реквизита сводится к созданию новой записи. UAPПоэтому изменения структур таблиц и прилегающие вопросы непосредственно ВО ВРЕМЯ работы программы меня очень интересуют. Если изменение структуры таблицы снабдить хорошим контролем, то приличный пользователь вполне справится с корректировкой. Так не бывает. Точнее, бывает, конечно, но для очень примитивных случаев, когда надо добавить, скажем, некий второстепенный реквизит вроде комментария. Если же добавляемое поле затрагивает взаимодействие нескольких таблиц, то, как минимум, нужен программный код, который это взаимодействие обеспечит. Ну, например, захотел пользователь добавить в шапку документа поле, содержащее сумму строк этого же документа. Даже если пользователь сможет добавить это поле, то как он организует его наполнение? Только программированием. Пользователь, который может менять структуру базы данных - это миф. Утопия. Вы все-равно придете к необходимости предоставить такому пользователю некий программный интерфейс, чтобы обеспечить программную обработку добавляемых полей. Фактически, сделаете из пользователя программиста. UAPВ противном случае, придется программисту сидеть рядом и постоянно модифицировать структуры таблиц. Зачем же доводить до абсурда. Модификация структуры данных при "правильно" спроектированном приложении, операция относительно редкая. Да, иногда требуется. Но не настолько часто, чтобы "сидеть рядом". ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2012, 18:34 |
|
|
start [/forum/topic.php?fid=41&msg=37940511&tid=1583470]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 161ms |
0 / 0 |