powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Автоподбор высоты строки в FlexGrid
16 сообщений из 16, страница 1 из 1
Автоподбор высоты строки в FlexGrid
    #37500947
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, подскажите если кто знает пожалуйста.
Данный элемент использую в ACCESS.
При первоначальном определении свойств элемента VSFlexgrid 8.0 среди прочего указываю:

Код: plaintext
1.
Grid.AutoSizeMode = flexAutoSizeRowHeight
Grid.WordWrap = True

однако при загрузке данных это не работает, и приходится при заполнении грида (я это делаю циклом)
для каждой строки указывать необходимую высоту.
В чем может быть причина?
Возможно необходимо установка/снятие еще каких-то его св-в или выбор какого-то режима работы.

P.S. На форуме MS ACCESS не задаю этот вопрос, так как полагаю здесь с этим элементом знакомы лучше.
Спасибо.
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37501134
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEXIS_22,
Код: plaintext
1.
2.
Grid.AutoSizeMode = flexAutoSizeRowHeight
Grid.AutoSize  0  'Здесь задается индекс колонки либо интервал колонок: Grid.AutoSize 0 , Grid.Colums.Count - 1
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37501145
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
З.Ы.
Как вам удалось вкрутить в Access активХ от ComponentOne?
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37501239
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо за подсказку ! В справке что-то не увидел . Видимо глаз к вечеру уже "замылился".
авторКак вам удалось вкрутить в Access активХ от ComponentOne?

Да с этим особых проблем не испытал. Подключил библиотеки и .ocx файлы - и вперед. Штатный табличный грид ACCESS меня давно напрягал своей ущербностью. Очень не хватало возможностей условного форматирования и невозможности сделать у таблицы сложную многострочную шапку без каких-то извратов.

FlexGrid - мощная и красивая вещь. Масса возможностей (определение подитогов, представление табличных в в виде иерархической структуры(дерево),вставка иконок) ... и т.д.

Работает абсолютно корректно. Очень выручает.
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37501263
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEXIS_22,

Согласен на 100%
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37501273
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем тогда вообще нужен аксесс как интерфейс пользователя? Вся прелесть его грида как раз в том, что он делает 90% рутинной работы по связи с подчиненными/вышестоящими данными.
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37501536
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗачем тогда вообще нужен аксесс как интерфейс пользователя?

Так он достаточно удобен в качестве интерфейса. У него есть свои достоинства. Но если имеется возможность расширить функционал, то почему бы этим не воспользоваться. По поводу 90 % работы штатного грида я не спорю, но в определенном контексте решаемых задач потребовалась некоторая альтернатива.
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37502215
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю новый топик создавать не стоит.

У меня по FlexGridу еще вот такой вопрос. Можно ли как то программно управлять масштабированием таблицы при выводе ее на печать? Я пробовал выполнять печать c помощью функции взятой из справки

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub PrintSelection(Flex, Row1&, Col1&, Row2&, Col2&, dlg As Boolean, orient As Integer)
        Dim hl%, tr&, lc&, rd%
        hl = Flex.HighLight: tr = Flex.TopRow: lc = Flex.LeftCol: rd = Flex.Redraw
        Flex.HighLight =  0 
        Flex.Redraw = flexRDNone
        Dim i&
        
    For i = Flex.FixedRows To Flex.Rows -  1 
       If i < Row1 Or i > Row2 Then Flex.RowHidden(i) = True
    Next
    For i = Flex.FixedCols To Flex.Cols -  1 
      If i < Col1 Or i > Col2 Then Flex.ColHidden(i) = True
    Next
    Flex.TopRow = Flex.FixedRows
    Flex.LeftCol = Flex.FixedCols
    Flex.PrintGrid , dlg, orient,  10 ,  10 
    Flex.RowHidden(- 1 ) = False
    Flex.ColHidden(- 1 ) = False
    Flex.TopRow = tr: Flex.LeftCol = lc: Flex.HighLight = hl
    Flex.Redraw = rd
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37502728
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше печатай через Excel,
или если необходим статический отчет, то в 8 студии ComponentOne есть тулса VSVIEW Reporting (конструктор отчетов)
на выходе получается xml файл.
А само лучше воспользоватся стандартным Access отчетом

Касательно самого вопроса, то ничем не могу помочь, потому что никогда не использовал эту функцию.
90% отчетов вывожу в Excel или в Word (удобно, просто и пользователям нравится)
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37502785
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЛучше печатай через Excel,
.......................................
90% отчетов вывожу в Excel или в Word (удобно, просто и пользователям нравится)
Да, я и сам так делаю. Массив данных кидаю в Excel. Пробовал, используя собственный функционал Flexgrid все в Excel выбрасывать.
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37506288
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще один вопрос возник при работе со строками в FlexGrid
Можно ли как то программно выделить несколько строк в таблице по определенному критерию.
Проблема в том, что метод
Код: plaintext
Grid.Select i, Col
выделяет только последнюю строку из набора, а вот как сохранить выделение предыдущих.
Руками - с клавишами CTRL и SHIFT это же можно делать.
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37506343
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покрути вот это:
Код: plaintext
Grid.Select Grid.Rows -  1 , Grid.Cols -  1 , Grid.Rows -  1 , Grid.Cols -  1 
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37506379
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TpaBka , спасибо за совет. Только я что-то не понял как я могу эту строку использовать.
У меня сейчас вот такая процедура

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub FindRow(Grid As Object, str As String, Col As Integer, n As Byte)
Dim i As Long
For i = n To Grid.Rows -  1 
If Grid.TextMatrix(i, Col) = str Then
Grid.IsSelected(i) = True
Grid.Select i, Col
'Grid.ShowCell i, Col
'Exit For
End If
Next i
End Sub

Как мне ее нужно изменить? Спасибо.
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37506387
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, направил на неверный путь ))
Наверно тебе надо вот это:

Код: plaintext
1.
2.
Grid.SelectionMode = flexSelectionListBox
Grid.IsSelected( 1 ) = True
Grid.IsSelected( 5 ) = True

Выделяет 1-ую и 5 -ую строку
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37506400
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALEXIS_22,

если тебе надо выделить массив строк то не используй Grid.Select i, Col
достаточно Grid.IsSelected(i) = True и незабуть установить Grid.SelectionMode = flexSelectionListBox
...
Рейтинг: 0 / 0
Автоподбор высоты строки в FlexGrid
    #37506433
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TpaBka , еще раз большое спасибо.
Все OK !
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Автоподбор высоты строки в FlexGrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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