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

вот код

Код: 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
10.07.2006, 17:51
    #33843261
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ширина колонок в datagrid (vb6)
Используй лучше индексы колонок.
...
Рейтинг: 0 / 0
28.09.2006, 19:38
    #34020337
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ширина колонок в datagrid (vb6)
Схожий вопрос - но по 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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ширина колонок в datagrid (vb6) / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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