|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Добрый день, уважаемые форумчане! Есть программа в ней у меня используется MSHFLEXGRID (ну мне он чем то симпатичен). Собственно вопрос вот какой: Параметры грида задаю программно (устанавливаю FormatString,ColAlligment,ColWidth,ColWordWrapOption ну и т.п.). Собственно вопрос вот в чем: У пользователя может быть свое видение нужного ему набора колонок, порядка их следования и ширины колонок. Собственно имеет право. А вот как бы грамотно организовать сохранение этих параметров? Планирую писать это в базу, возможен конечно вариант с файлом. Пожалуй это даже с моей точки зрения удобнее можно хранить на локале в файле сразу имена полей в определенном порядке, сопоставив им ширину и заголовки колонок. Но есть заковыка если с одной машины будут работать несколько пользователей. Тут либо файлы плодить либо переходить к хранению в базе. Но вот как организовать хранение в базе никак не соображу. Вариант который приходит в голову табличка с ID пользователя и текстовым полем куда собственно и писать имена полей в определенном порядке, сопоставив им ширину и заголовки колонок. Может кто имеет опыт в таких делах и подскажет что оптимальнее, может еще варианты есть или свойства грида , которые я упускаю из вида? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 10:49 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
В базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 11:07 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Antonariy, Какой же размер полей надо отводить под перечни? Хотя, по идее, можно разделить: наименования полей, заголовки и ширину хранить в разных полях. Вопрос не будет ли слишком долго парсить такие перечни? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 11:24 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Alex_menМожет кто имеет опыт в таких делахя имею. 1) Список полей сетки хранится в базе, все варианты отчетов/журналов именованы. Там определяется код поля, заголовок, ширина по умолчанию, последовательность по умолчанию, параметры редактирования (текст/число/дата/выпадающий список и т.п. + минимальные/максимальные значения), права пользователей на отображение и редактирование поля, а также стиль. В стиле задается выравнивание заголовка, выравнивание ячейки, шрифт, размер, цвет фона, цвет текста, картинка, ссылка на контекстное меню (если стиль - номер заказа, то в контекстном меню будет, к примеру "открыть заказ", "отправить сообщение по заказу" и т.п.). Эти параметры по умолчанию, но они могут быть переопределены при заполнении сетки. 2) Пользовательские настройки (разумеется хранятся в базе, чтобы пользователь с любого компа мог открывать те параметры, которые он себе настроил (включая размеры форм и т.п.). Переопределенная настройка сетки для пользователя сериализована, выглядит так: ID|20|Date|1095|ZWID|645|PLGroup|1995|Category|195|Type|1005|CostBuy|1005|CostSale|1005|Amount|795|CostSH|1005|Margin|1005|Profit|1005|SHType|795|Name|3495|PosPolicy|1005|PayNoMatch|255|Shop|1200|Partner|3000|Referer|3000|SearchWords|3000|OrderComment|495|SuperGroup|1500|SuperSubgroup|1500|Supplier|1005|Guidline|1500|Brand|1005|WhereFrom|1005 т.е. код поля, ширина, последовательность полей определяется собственно последовательностью в этой строке. Никаких проблем и тормозов при разборе не возникает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 11:38 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Alex_menAntonariy, Какой же размер полей надо отводить под перечни? Хотя, по идее, можно разделить: наименования полей, заголовки и ширину хранить в разных полях. Вопрос не будет ли слишком долго парсить такие перечни?Какой парсинг, окстись. Все хранить в отдельных полях. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 12:02 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Спасибо, ребята! Про доступ с разных машин я не подумал. Shocker.Pro спасибо за пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 12:19 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Извиняюсь за возврат к вопросу, хотел уточнить 2 момента 1) Что означает фраза "все варианты отчетов/журналов именованы". 2) Правильно я понимаю получается под каждый грид отдельная таблица. Или все таки некое универсальное хранилище для этих целей. (ну если не секрет конечно.) Извиняюсь за то что прошу все совсем разжевать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2013, 13:50 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Alex_men1) Что означает фраза "все варианты отчетов/журналов именованы".Ну то есть есть, к примеру, форма отчета "Журнал операций по кассе". То есть это единый набор столбцов со своими свойствами, но в интерфейсе он может быть представлен в разных местах, у кассира в одном месте, у бухгалтера, как часть его совокупности отчетов. То есть формы могут быть разные, а набор столбцов - один. Alex_men2) Правильно я понимаю получается под каждый грид отдельная таблица. Или все таки некое универсальное хранилище для этих целей. (ну если не секрет конечно.)Нет, конечно. Изучи вопрос - это сильно пригодится тебе в работе. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2013, 14:19 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Такой вопрос, как красиво отобразить в зголовке столбца что по нему отображается сортировка? Вообще так думал псевдографика бы подошла например 30 и 31 символа или 24 и 25. Но вот засада они относятся к непечатаемым и в итоге отображается квадратик. Есть еще варианты таких отображений в гриде? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:17 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
да и текст заголовка естественно хотелось бы сохранить ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:34 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Я просто использую ForeColor для заголовка. А вообще, есть же стандартный метод - изобразить картинку-треугольничек ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:39 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Shocker.Pro А вообще, есть же стандартный метод - изобразить картинку-треугольничек Стандартный метод? Любопытно и у иерархического флекс грида тоже есть? что то я в книге не нашел такого сейчас посмотрю, может подскажете какое? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:46 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Да блин, я имел ввиду не Method ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:51 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Shocker.ProДа блин, я имел ввиду не Method ))) :) тогда в чем заключается метод? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:53 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Метод - ну может слово неудачное. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 16:57 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Это я и имел ввиду. Вы используете символ псевдографики? а если сортировка по убыванию? Или это графический объект? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 17:00 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
См. выше. Я использую выделение цветом. А это можно реализовать через CellPicure ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 17:12 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Спасибо понял, хороших выходных. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2013, 17:13 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Еще вопросик: Как программно получить в MSHFG структуру рекордсета. Я использую программное заполнение грида: Код: vbnet 1.
Соответственно получить структуру кнопкой Retrieve Structure не получится. Можно ли это сделать как то программно? Просто если на VBA он структуру из рекордсета берет, но VBA многое сам додумывает. А мне структура нужна чтобы хранить пользовательские настройки для грида. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 12:26 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Alex_men, Прошу прощения, ввел в заблуждение Код: vbnet 1.
конечно же. А вот Код: vbnet 1.
возвращает пусто. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 12:35 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Лично я не подскажу, я заполняю грид вручную через TextMatrix Когда мешает посторонняя автоматика, проще ее отключить и написать свою, ибо получается гораздо более гибкое решение. Естественно максимально нужно соблюсти принципы инкапсуляции. У меня, чтобы создать новый отчет на основе грида, нужно проделать следующее: 1) разместить грид на форме (грид представляет собой юзерконтрол) 2) при необходимости разместить на форме контролы, которые будут исполнять роль фильтров (например интервал дат) и при необходимости блок выбора сортировки, и привязать их к гриду 3) написать SQL-запрос, обеспечивающий заполнение грида (при этом в самом запросе могут быть поля, обеспечивающие форматирование, к примеру поле с названием "Date$ForeColor" задает раскраску ячеек в столбце Date) 4) запустить автозаполнение - создание столбцов грида на основе сделанного SQL-запроса и подкорректировать (название столбцов, стили и т.п., если не определилось автоматически) Все. То есть для подключения новой сетки, программирования на VB в общем случае не требуется (хотя и возможно, к примеру для передачи в SQL-запрос нестандартных параметров). Так что если планируешь большой проект, лучше сразу потрать время на подобную унификацию ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 12:38 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Через TextMatrix у меня читаются заголовки, которые задаются строкой форматирования, но там все значения я вывожу на русском (для удобства чтения заголовков пользователем). В обработке я для себя считаю не очень удобным работать с русскими буквами. Я делаю примерно так же. 1) размещаю грид на форме 2) Создаю формочку для задания параметров фильтрации (размещать 5-7 дополнительных контролов на форме считаю излишним), опять же фильтры хранятся отдельно для каждого пользователя 3) кодом пишу конструктор строки запроса (в зависимости от параметров фильтрации) 4) Соответственно заполнение грида. Вот сейчас озаботился сделать индивидуальными не только фильтры, но и внешний вид грида. Пошел по всем программкам. То что когда то делалось на аксесе проблем не создало там стуктура прекрасно берется датасоурсом из рекордсета. А вот на VB-шных гридах запнулся с передачей структуры из запроса в грид. Нет грид то заполняется данными, только почему то без HeadrCaption ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 13:03 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Извиняюсь, это я ошибся, все подставляется как надо. Вопрос снят ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2013, 13:14 |
|
Вопрос по организации работы с гридом.
|
|||
---|---|---|---|
#18+
Shocker.Pro, А можно ли сделать так чтобы текст не наезжал на картинку? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2013, 15:37 |
|
|
start [/forum/topic.php?fid=60&msg=38195230&tid=2157077]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 383ms |
0 / 0 |