powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Использование элемента VSFlexGrid в MS ACCESS
11 сообщений из 86, страница 4 из 4
Использование элемента VSFlexGrid в MS ACCESS
    #37361852
КириллН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALEXIS_22,

Эва как!.. Спасибо =)
...
Рейтинг: 0 / 0
Использование элемента VSFlexGrid в MS ACCESS
    #37361854
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы такое представление имеете ввиду?
...
Рейтинг: 0 / 0
Использование элемента VSFlexGrid в MS ACCESS
    #37361882
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маленькое уточнение - в примере речь идет о построении дерева на основании чтения строк ini - файлов WINDOWS.
Но это не принципиально - можно на основе инструкции SQL.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Sub AddNode()
Dim r As DAO.Recordset
Dim ln As String
Set r = CurrentDb.OpenRecordset("SELECT tbl1.* FROM tbl1 ORDER BY tbl1.Key;",  2 )
r.MoveLast: r.MoveFirst
   With fg
   Do Until r.EOF
       If Len(r( 3 )) =  1  Then
       .AddItem r( 0 )
       .IsSubtotal(.Rows -  1 ) = True
       .TreeColor = vbBlue
       .Cell(flexcpFontBold, .Rows -  1 ,  0 ) = True
       .Cell(flexcpForeColor, .Rows -  1 ,  0 ) = vbBlue
            ElseIf Len(r( 3 )) =  2  Then
            .AddItem r( 0 )
            .IsSubtotal(.Rows -  1 ) = True
            .TreeColor = vbBlue
            .RowOutlineLevel(.Rows -  1 ) =  1 
            .Cell(flexcpFontBold, .Rows -  1 ,  0 ) = True
            ElseIf Len(r( 3 )) =  3  Then
            .AddItem r( 0 ) & vbTab & vbNullString & vbTab & r( 2 )
            .IsSubtotal(.Rows -  1 ) = True
            .RowOutlineLevel(.Rows -  1 ) =  2 
            .Cell(flexcpFontBold, .Rows -  1 ,  0 ) = True
            ElseIf Len(r( 3 )) =  4  Then
            .AddItem r( 0 ) & vbTab & vbNullString & vbTab & r( 2 )
            .IsSubtotal(.Rows -  1 ) = True
            .RowOutlineLevel(.Rows -  1 ) =  3 
            ElseIf Len(r( 3 )) =  5  Then
            .AddItem r( 0 ) & vbTab & vbNullString & vbTab & r( 2 )
            .IsSubtotal(.Rows -  1 ) = True
            .RowOutlineLevel(.Rows -  1 ) =  4 
            ElseIf Len(r( 3 )) =  6  Then
            .AddItem r( 0 ) & vbTab & vbNullString & vbTab & r( 2 )
            .IsSubtotal(.Rows -  1 ) = True
            .RowOutlineLevel(.Rows -  1 ) =  5 
             ElseIf Len(r( 3 )) =  7  Then
            .AddItem r( 0 ) & vbTab & vbNullString & vbTab & r( 2 )
            .IsSubtotal(.Rows -  1 ) = True
            .RowOutlineLevel(.Rows -  1 ) =  6 
       End If
    r.MoveNext
    Loop
    End With
    r.Close
    Set r = Nothing
    End Sub
...
Рейтинг: 0 / 0
Использование элемента VSFlexGrid в MS ACCESS
    #37361890
КириллН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALEXIS_22,

Вот теперь совсем спасибо! :) Буду ковыряться дальше
...
Рейтинг: 0 / 0
Использование элемента VSFlexGrid в MS ACCESS
    #37362019
КириллН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я правильно понимаю, что ни строки, ни ячейки в VSFlexGrid не имеют никаких свойств типа Key или Tag? Т.е. это исключительно информационно-просмотровый инструмент, из которого нельзя (при том, что он отвязанный) выйти на какую-либо запись, не внося в ячейки идентификаторов?
...
Рейтинг: 0 / 0
Использование элемента VSFlexGrid в MS ACCESS
    #37362266
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА я правильно понимаю, что ни строки, ни ячейки в VSFlexGrid не имеют никаких свойств типа Key или Tag? Т.е. это исключительно информационно-просмотровый инструмент, из которого нельзя (при том, что он отвязанный) выйти на какую-либо запись, не внося в ячейки идентификаторов?

У FlexGrid как бы можно определить что-то вроде уникального индекса ячейки, но это мне кажется не совсем то, что Вы имеете ввиду.
"Для доступа к содержимому произвольной ячейки используется свойство TextArray. Оно имеет один параметр - Index. Это индекс ячейки, содержимое которой нужно изменить или получить. Он вычисляется следующим образом. К номеру столбца ячейки прибавляется произведение ее номера строки на количество колонок, определяемое свойством Cols. Для расчёта индекса ячейки удобно использовать эту функцию:
Код: plaintext
1.
2.
Function GetCellIndex (MSFlexGrid As MSFlexGrid, row As Integer, col As Integer)
GetCellIndex = row * MSFlexGrid.Cols + col
End Function"
...
Рейтинг: 0 / 0
Использование элемента VSFlexGrid в MS ACCESS
    #37362894
КириллН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALEXIS_22,

Та не... Я вот о чем:
В ComboBox есть т.н. присоединенный (и, как правило, скрытый) столбец - поле, из которого берутся идентификаторы для дальнейшего использования. В ListBox тоже такое имеется. В TreeView и ListView каждый Node/Item имеет свой .Key для хранения в нем ID записи, которой этот Node/Item соответствует, плюс еще .Tag, по которому можно определить, какого типа данная запись (для TreeView, например, это могут быть категории товаров - [Tag = "StockType"] - либо сами наименования - [Tag = "StockItem"]) - очень удобно для обработки выбранных узлов/строк: выбрал наименование, нажал кнопку Cmd_Modify в форме - открылась форма редактирования, заполнившаяся значениями связанных записей (производитель, поставщик, количество, вес и т.п.). Либо, выбрал узел дерева, а справа от дерева заполнилась какая-то справочная форма, расписывающая в подробностях свойства выбранного наименования.
А вот во FlexGrid нету у строк никаких .Key, что затрудняет обработку выбранных записей. Или я недоглядел?
...
Рейтинг: 0 / 0
Использование элемента VSFlexGrid в MS ACCESS
    #37363041
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тот пример построения дерева в FlexGrid на основе таблицы подразумевает, что в таблице есть поле, содержащее значение ключа, который и является по сути уникальным идентификатором.

Про свойство .Key этого элемента я ничего не знаю. Может что-то не дочитал:)). А про .Tab
Из справки:

Код: plaintext
1.
2.
3.
4.
5.
Tag Property
Stores any extra data needed for your program.
Syntax
[[form!]VSFlexGrid.Tag[ = value As String ]
Data Type
String

Но это по-моему опять не то.
...
Рейтинг: 0 / 0
Использование элемента VSFlexGrid в MS ACCESS
    #37363096
КириллН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALEXIS_22,

Да, это опять не то. Form!VSFG.Tag - это свойство контрола, а мне надо, чтобы это свойство было присуще строкам (а лучше вообще ячейкам), расположенным внутри этого контрола.

А поле ID в таблице (читай - рекордсете), на основе которой заполняется VSFG, есть, но значения этих ID никуда не впихнуть в строки так, чтобы их было не видно. Или можно сделать какую-нибудь колонку скрытой и впихивать в ее ячейки ID-шки записей?
...
Рейтинг: 0 / 0
Использование элемента VSFlexGrid в MS ACCESS
    #37363425
ALEXIS_22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КириллН Или можно сделать какую-нибудь колонку скрытой и впихивать в ее ячейки ID-шки записей?
Ну да, так и делается. Ведь при заполнении FlexGrida необходимо при загрузке формы ему ряд установок задать, в том числе и тех что касаются количества столбцов (или их видимости).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
fg.Cols =  3 
fg.ExtendLastCol = True
fg.FixedCols =  0 
fg.Rows =  1 
fg.FormatString = "УЗЕЛ|Текст 1|Текст 2"
fg.OutlineBar = flexOutlineBarComplete
fg.GridLines = flexGridNone
fg.MergeCells = flexMergeSpill
fg.ColWidth( 0 ) =  3500 
fg.ColWidth( 1 ) =  2000 
fg.ColWidth( 2 ) =  2000 
fg.BackColor = vbYellow

или так
Код: plaintext
fg.ColHidden( 0 ) = True
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Использование элемента VSFlexGrid в MS ACCESS
    #39088715
Romanz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FG1.Col = 5
FG1.Row = 6
FG1.CellBackColor = 16114643

Можно ли иначе задать цвет произвольной ячейки?
...
Рейтинг: 0 / 0
11 сообщений из 86, страница 4 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Использование элемента VSFlexGrid в MS ACCESS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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