powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ширина колонок в datagrid (vb6)
3 сообщений из 3, страница 1 из 1
ширина колонок в datagrid (vb6)
    #33843005
Corporal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет люди!! Такой трабл:
у меня не получается установить ширину колонки в датагриде.

вот код

Код: 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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
Public Sub ShowForm(ByVal pProfile As DOCSObjects.IProfile)

On Error GoTo EndOfFun

    If pProfile Is Nothing Then Err.Raise vbObjectError +  1000 , "frmProfileHistory.ShowForm", "ïðîôèëü íå âûáðàí"
    
    Dim doc_num As Long
    
    doc_num = pProfile.DocNumber
   
    Dim psql As PCDSQL
    
    Dim ssql As String
    ssql = "select T.system_id, T.change_date, P.FULL_NAME TYPIST, T.colname, T.old_value, T.new_value from docsadm.tl_profile_history T, docsadm.people P where P.system_id = T.typist and T.docnumber = " & Str(doc_num)
    Assert False, ssql
    Set psql = retrieveSQL(ssql)
    
    If CBool(psql Is Nothing) = True Then Err.Raise vbObjectError +  1000 , "frmProfileHistory.ShowForm", "äëÿ äàííîãî ïðîôèëÿ íå óäàëîñü ñ÷èòàòü èñòîðèþ èçìåíåíèé: çàïèñåé íå íàéäåíî"
    
    Dim colcnt As Integer
    
    colcnt = psql.GetColumnCount
    
    Dim iSysID_ord As Integer
    Dim iDocNum_ord As Integer
    Dim iChngDat_ord As Integer
    Dim iTypist_ord As Integer
    Dim iColName_ord As Integer
    Dim iOld_ord As Integer
    Dim iNew_ord As Integer
    Dim curcolname As String
    
    Dim i As Integer
    
    For i =  1  To colcnt
    
        curcolname = psql.GetColumnName(i)
        If UCase(curcolname) = "SYSTEM_ID" Then iSysID_ord = i: GoTo endcycle1
        If UCase(curcolname) = "CHANGE_DATE" Then iChngDat_ord = i: GoTo endcycle1
        If UCase(curcolname) = "TYPIST" Then iTypist_ord = i: GoTo endcycle1
        If UCase(curcolname) = "COLNAME" Then iColName_ord = i: GoTo endcycle1
        If UCase(curcolname) = "OLD_VALUE" Then iOld_ord = i: GoTo endcycle1
        If UCase(curcolname) = "NEW_VALUE" Then
            iNew_ord = i: GoTo endcycle1
        Else
            Err.Raise - 1 , Me, "Íåïðàâèëüíîå èìÿ êîëîíêè:" & curcolname
        End If
endcycle1:
    Next i
    
        Set pRecordset = New ADODB.Recordset
        
        pRecordset.Fields.Append "SYSTEM_ID", adVarChar,  4000 
        pRecordset.Fields.Append "CHANGE_DATE", adVarChar,  4000 
        pRecordset.Fields.Append "TYPIST", adVarChar,  4000 
        pRecordset.Fields.Append "COLNAME", adVarChar,  4000 
        pRecordset.Fields.Append "OLD_VALUE", adVarChar,  4000 
        pRecordset.Fields.Append "NEW_VALUE", adVarChar,  4000 

        pRecordset.Open
        
    Do
        pRecordset.AddNew
        pRecordset("SYSTEM_ID") = psql.GetColumnValue(iSysID_ord)
        pRecordset("CHANGE_DATE") = psql.GetColumnValue(iChngDat_ord)
        pRecordset("TYPIST") = psql.GetColumnValue(iTypist_ord)
        pRecordset("COLNAME") = psql.GetColumnValue(iColName_ord)
        pRecordset("OLD_VALUE") = psql.GetColumnValue(iOld_ord)
        pRecordset("NEW_VALUE") = psql.GetColumnValue(iNew_ord)
        pRecordset.Update
        If psql.NextRow = False Then Exit Do
    Loop
    
    
    Set Me.DataGrid1.DataSource = pRecordset
    
    
    Me.DataGrid1.Columns("SYSTEM_ID").Visible = False
    Me.DataGrid1.Columns("SYSTEM_ID").Width =  0 
    Me.DataGrid1.Columns("CHANGE_DATE").Caption = "Äàòà èçìåíåíèÿ"
    Me.DataGrid1.Columns("CHANGE_DATE").Width =  500   '  <<< - КОЛОНКА НЕ НАЙДЕНА ?
    Me.DataGrid1.Columns("TYPIST").Caption = "Ïîëüçîâàòåëü"
    Me.DataGrid1.Columns("COLNAME").Caption = "Íàçâàíèå ïîëÿ"
    Me.DataGrid1.Columns("OLD_VALUE").Caption = "Ïðåæíåå çíà÷åíèå"
    Me.DataGrid1.Columns("NEW_VALUE").Caption = "Èçìåíåííîå çíà÷åíèå"
    
    Me.Caption = "Èñòîðèÿ èçìåíåíèé êàðòî÷êè: #" & doc_num & "  " & pProfile.Name
    Me.Show vbModal
    
    Exit Sub
    
EndOfFun:
MsgBox "Â ðåçóëüòàòå ðàáîòû âîçíèêëà ñëåäóþùàÿ îøèáêà" & vbCrLf & "  èñòîðèÿ èçìåíåíåíèé íåäîñòóïíà." & vbCrLf & vbCrLf & Err.Description, vbCritical, "Îøèáêà"

End Sub

в строке Me.DataGrid1.Columns("CHANGE_DATE").Width = 500
вылезает ексепшн что колонка CHANGE_DATE не найдена.:(

Люди добрые, знатоки, ткните носом, почему оно не устанавливается? убираю эту строку, все работает нормально.

пасиб заранее.
...
Рейтинг: 0 / 0
ширина колонок в datagrid (vb6)
    #33843261
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй лучше индексы колонок.
...
Рейтинг: 0 / 0
ширина колонок в datagrid (vb6)
    #34020337
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Схожий вопрос - но по MSFlesGrid:
у меня 1500 строк. Как разом поменять их высоту?

меняю таким образом, в лоб:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    Dim i As Integer
    Dim j As Integer
    'Установка высоты строк таблицы
    j = Число_Строк
    For i =  1  To j
        MSFlesGrid1.RowHeight(i) = Выстоа_Строки
    Next i
полминуты выполняется...
вот установлено свойство
Код: plaintext
1.
    MSFlesGrid1.RowSizingMode=flexRowSizeAll
- юзер меняет высоту строк моментально. А если задаёт в тектовом поле и жмёт кнопу "изменить высоту строк", ты приведённый выше код выполяется втечение 20 секунд (строк там много)
Как в программе изменить высоту строк сразу всей таблицы MSFlesGrid ?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ширина колонок в datagrid (vb6)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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