Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по организации работы с гридом. / 25 сообщений из 35, страница 1 из 2
15.03.2013, 10:49
    #38185179
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Добрый день, уважаемые форумчане!

Есть программа в ней у меня используется MSHFLEXGRID (ну мне он чем то симпатичен). Собственно вопрос вот какой:

Параметры грида задаю программно (устанавливаю FormatString,ColAlligment,ColWidth,ColWordWrapOption ну и т.п.). Собственно вопрос вот в чем: У пользователя может быть свое видение нужного ему набора колонок, порядка их следования и ширины колонок. Собственно имеет право. А вот как бы грамотно организовать сохранение этих параметров?

Планирую писать это в базу, возможен конечно вариант с файлом. Пожалуй это даже с моей точки зрения удобнее можно хранить на локале в файле сразу имена полей в определенном порядке, сопоставив им ширину и заголовки колонок. Но есть заковыка если с одной машины будут работать несколько пользователей. Тут либо файлы плодить либо переходить к хранению в базе. Но вот как организовать хранение в базе никак не соображу. Вариант который приходит в голову табличка с ID пользователя и текстовым полем куда собственно и писать имена полей в определенном порядке, сопоставив им ширину и заголовки колонок.

Может кто имеет опыт в таких делах и подскажет что оптимальнее, может еще варианты есть или свойства грида , которые я упускаю из вида?
...
Рейтинг: 0 / 0
15.03.2013, 11:07
    #38185209
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
В базе.
...
Рейтинг: 0 / 0
15.03.2013, 11:24
    #38185253
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Antonariy,

Какой же размер полей надо отводить под перечни? Хотя, по идее, можно разделить: наименования полей, заголовки и ширину хранить в разных полях. Вопрос не будет ли слишком долго парсить такие перечни?
...
Рейтинг: 0 / 0
15.03.2013, 11:38
    #38185286
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
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

т.е. код поля, ширина, последовательность полей определяется собственно последовательностью в этой строке. Никаких проблем и тормозов при разборе не возникает
...
Рейтинг: 0 / 0
15.03.2013, 12:02
    #38185347
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Alex_menAntonariy,

Какой же размер полей надо отводить под перечни? Хотя, по идее, можно разделить: наименования полей, заголовки и ширину хранить в разных полях. Вопрос не будет ли слишком долго парсить такие перечни?Какой парсинг, окстись. Все хранить в отдельных полях.
...
Рейтинг: 0 / 0
15.03.2013, 12:19
    #38185389
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Спасибо, ребята! Про доступ с разных машин я не подумал.

Shocker.Pro спасибо за пример.
...
Рейтинг: 0 / 0
19.03.2013, 13:50
    #38189675
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Shocker.Pro,

Извиняюсь за возврат к вопросу, хотел уточнить 2 момента
1) Что означает фраза "все варианты отчетов/журналов именованы".
2) Правильно я понимаю получается под каждый грид отдельная таблица. Или все таки некое универсальное хранилище для этих целей. (ну если не секрет конечно.)

Извиняюсь за то что прошу все совсем разжевать.
...
Рейтинг: 0 / 0
19.03.2013, 14:19
    #38189766
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Alex_men1) Что означает фраза "все варианты отчетов/журналов именованы".Ну то есть есть, к примеру, форма отчета "Журнал операций по кассе". То есть это единый набор столбцов со своими свойствами, но в интерфейсе он может быть представлен в разных местах, у кассира в одном месте, у бухгалтера, как часть его совокупности отчетов. То есть формы могут быть разные, а набор столбцов - один.

Alex_men2) Правильно я понимаю получается под каждый грид отдельная таблица. Или все таки некое универсальное хранилище для этих целей. (ну если не секрет конечно.)Нет, конечно. Изучи вопрос - это сильно пригодится тебе в работе.
...
Рейтинг: 0 / 0
22.03.2013, 16:17
    #38195129
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Shocker.Pro,

Такой вопрос, как красиво отобразить в зголовке столбца что по нему отображается сортировка? Вообще так думал псевдографика бы подошла например 30 и 31 символа или 24 и 25. Но вот засада они относятся к непечатаемым и в итоге отображается квадратик. Есть еще варианты таких отображений в гриде?
...
Рейтинг: 0 / 0
22.03.2013, 16:34
    #38195159
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
да и текст заголовка естественно хотелось бы сохранить
...
Рейтинг: 0 / 0
22.03.2013, 16:39
    #38195171
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Я просто использую ForeColor для заголовка. А вообще, есть же стандартный метод - изобразить картинку-треугольничек
...
Рейтинг: 0 / 0
22.03.2013, 16:46
    #38195183
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Shocker.Pro А вообще, есть же стандартный метод - изобразить картинку-треугольничек

Стандартный метод? Любопытно и у иерархического флекс грида тоже есть? что то я в книге не нашел такого сейчас посмотрю, может подскажете какое?
...
Рейтинг: 0 / 0
22.03.2013, 16:51
    #38195193
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Да блин, я имел ввиду не Method )))
...
Рейтинг: 0 / 0
22.03.2013, 16:53
    #38195195
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Shocker.ProДа блин, я имел ввиду не Method )))

:) тогда в чем заключается метод?
...
Рейтинг: 0 / 0
22.03.2013, 16:57
    #38195205
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Метод - ну может слово неудачное.
...
Рейтинг: 0 / 0
22.03.2013, 17:00
    #38195213
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Shocker.Pro,

Это я и имел ввиду. Вы используете символ псевдографики? а если сортировка по убыванию? Или это графический объект?
...
Рейтинг: 0 / 0
22.03.2013, 17:12
    #38195230
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
См. выше. Я использую выделение цветом.
А это можно реализовать через CellPicure
...
Рейтинг: 0 / 0
22.03.2013, 17:13
    #38195231
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Shocker.Pro,

Спасибо понял, хороших выходных.
...
Рейтинг: 0 / 0
25.03.2013, 12:26
    #38197135
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Еще вопросик: Как программно получить в MSHFG структуру рекордсета. Я использую программное заполнение грида:
Код: vbnet
1.
 Set Form.MSHFG.Recordset= rst



Соответственно получить структуру кнопкой Retrieve Structure не получится. Можно ли это сделать как то программно? Просто если на VBA он структуру из рекордсета берет, но VBA многое сам додумывает. А мне структура нужна чтобы хранить пользовательские настройки для грида.
...
Рейтинг: 0 / 0
25.03.2013, 12:35
    #38197165
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Alex_men,

Прошу прощения, ввел в заблуждение
Код: vbnet
1.
 Set Form.MSHFG.DataSource= rst

конечно же.

А вот
Код: vbnet
1.
 Form.MSHFG.ColHeaderCaption(0,i)

возвращает пусто.
...
Рейтинг: 0 / 0
25.03.2013, 12:38
    #38197176
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Лично я не подскажу, я заполняю грид вручную через TextMatrix
Когда мешает посторонняя автоматика, проще ее отключить и написать свою, ибо получается гораздо более гибкое решение.

Естественно максимально нужно соблюсти принципы инкапсуляции. У меня, чтобы создать новый отчет на основе грида, нужно проделать следующее:
1) разместить грид на форме (грид представляет собой юзерконтрол)
2) при необходимости разместить на форме контролы, которые будут исполнять роль фильтров (например интервал дат) и при необходимости блок выбора сортировки, и привязать их к гриду
3) написать SQL-запрос, обеспечивающий заполнение грида (при этом в самом запросе могут быть поля, обеспечивающие форматирование, к примеру поле с названием "Date$ForeColor" задает раскраску ячеек в столбце Date)
4) запустить автозаполнение - создание столбцов грида на основе сделанного SQL-запроса и подкорректировать (название столбцов, стили и т.п., если не определилось автоматически)
Все. То есть для подключения новой сетки, программирования на VB в общем случае не требуется (хотя и возможно, к примеру для передачи в SQL-запрос нестандартных параметров). Так что если планируешь большой проект, лучше сразу потрать время на подобную унификацию
...
Рейтинг: 0 / 0
25.03.2013, 13:03
    #38197210
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Shocker.Pro,

Через TextMatrix у меня читаются заголовки, которые задаются строкой форматирования, но там все значения я вывожу на русском (для удобства чтения заголовков пользователем). В обработке я для себя считаю не очень удобным работать с русскими буквами.

Я делаю примерно так же.
1) размещаю грид на форме
2) Создаю формочку для задания параметров фильтрации (размещать 5-7 дополнительных контролов на форме считаю излишним), опять же фильтры хранятся отдельно для каждого пользователя
3) кодом пишу конструктор строки запроса (в зависимости от параметров фильтрации)
4) Соответственно заполнение грида.

Вот сейчас озаботился сделать индивидуальными не только фильтры, но и внешний вид грида. Пошел по всем программкам. То что когда то делалось на аксесе проблем не создало там стуктура прекрасно берется датасоурсом из рекордсета. А вот на VB-шных гридах запнулся с передачей структуры из запроса в грид. Нет грид то заполняется данными, только почему то без HeadrCaption
...
Рейтинг: 0 / 0
25.03.2013, 13:14
    #38197226
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Извиняюсь, это я ошибся, все подставляется как надо. Вопрос снят
...
Рейтинг: 0 / 0
27.03.2013, 15:37
    #38200689
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Shocker.Pro,

А можно ли сделать так чтобы текст не наезжал на картинку?
...
Рейтинг: 0 / 0
27.03.2013, 16:18
    #38200770
Alex_men
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по организации работы с гридом.
Alex_men,
и что то я не пойму как сбросить картинку установленную в ячейку
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по организации работы с гридом. / 25 сообщений из 35, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]