powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по организации работы с гридом.
35 сообщений из 35, показаны все 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
Вопрос по организации работы с гридом.
    #38200834
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

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

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

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

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

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

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

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


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