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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

конечно же.

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

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

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

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

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

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

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


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