powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Упрощение кода и обращений к программе(гриду)!!!
2 сообщений из 2, страница 1 из 1
Упрощение кода и обращений к программе(гриду)!!!
    #32267263
Фотография Nrisimha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Пользуюсь DataGrid-ом следующим образом:
1.Делаю в DataEnvironment запрос, в форме у нужного мне DataGrid-а ставлю ствойства:
DataSource = DataEnvironment
DataMember = Zapros

2.В DataGrid жду правой педалью мыши и делаю Retrive Fields - делаю нужные мне невидимые, подставляю .caption

3. Удаляю свойства DataSource,DataMember

4.Таблица становится на стадии разработки такая как мне надо, далее в модуле формы подключаюсь к АДО создаю SQL и присваиваю
Set me.DataGrid.DataSource=myAdo.recordset

Вопрос: Если не используя DataEnvironment ,то придется ли при каждом обновлении данных в DataGrid( recordset) делать что-то типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Form_Resize()
call DataGrid_HideColumns
End Sub

Sub Refresh_recordset()
call DataGrid_HideColumns
End Dub

Sub DataGrid_HideColumns()
with datagrid
   .columns( 0 ).visible=false
   ...
   .columns(N).visible=false
   ...
   .columns(N).caption= "Клиенты" 
end with
end sub
...
Рейтинг: 0 / 0
Упрощение кода и обращений к программе(гриду)!!!
    #32268135
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если при обновлении набора число полей и их названия не меняются, то вид грида можно устанавливать один раз при загрузке формы, я так и делаю:

' Обновляем записи в гриде. Если параметр не передается, то курсор устанавливаем на первую запись,
' если параметр равен "last", то на последнюю
Private Sub RefreshGrid(Optional vntRow As Variant)

Dim rst As New ADODB.Recordset
Dim strSQL As String

rst.CursorLocation = adUseClient
rst.LockType = adLockPessimistic

dtgРеестр.Visible = False

strSQL = "SELECT tblРеестр.ukn AS ukn, tblРеестр.ФамБольного AS fam,tblРеестр.ИмяБольного AS im,tblРеестр.ОтчБольного AS ot," & _
"tblРеестр.ПолБольного AS pol,tblРеестр.ДатаРожд AS drj,tblРеестр.НомРеестра AS nr, tblРеестр.ДатаНач AS dn, tblРеестр.ДатаОконч AS de," & _
"tblРеестр.КодСубРФ AS ksrf,tblРеестр.НомИстрБол AS nib, tblРеестр.НазвСтрхКомп AS so," & _
"tblРеестр.НомПаспорта AS nps, tblРеестр.ДомАдрес AS dma, tblРеестр.МестоРаб AS mrab, tblРеестр.КодДиагноза AS kdg," & _
"tblРеестр.КодИсхода AS kis, tblРеестр.КодСпец AS ksp, tblРеестр.КодМестЛеч AS kml, tblРеестр.КолПосещ AS kpos," & _
"tblРеестр.ИтогСумма AS isum, tblРеестр.ДатаВвода AS dvd, tbcДиагнозМКБ.КодМКБ3, tbcДиагнозМКБ.НазвДиагноза," & _
"tbcСпециализация.НазвСпец,tblРеестр.СтоимТариф,tblРеестр.КодЦелиПосещ,tbcМестоПосещ.НазвМеста," & _
"tbcЦельПосещ.ЦельПосещ,tbcСубъектРФ.НазвСубъекта,tbcИсход.НазвИсхода as nzish" & _
" FROM tblРеестр INNER JOIN" & _
" tbcСпециализация ON tblРеестр.КодСпец = tbcСпециализация.ukn INNER JOIN" & _
" tbcИсход ON tblРеестр.КодИсхода = tbcИсход.ukn INNER JOIN" & _
" tbcСубъектРФ ON tblРеестр.КодСубРФ = tbcСубъектРФ.ukn INNER JOIN" & _
" tbcДиагнозМКБ ON tblРеестр.КодДиагноза = tbcДиагнозМКБ.ukn INNER JOIN" & _
" tbcЦельПосещ ON tblРеестр.КодЦелиПосещ = tbcЦельПосещ.ukn INNER JOIN" & _
" tbcМестоПосещ ON tblРеестр.КодМестЛеч = tbcМестоПосещ.ukn"

rst.Open strSQL, cnn
dtgРеестр.AllowUpdate = False
Set dtgРеестр.DataSource = rst

dtgРеестр.Columns(0).Caption = "код"
dtgРеестр.Columns(1).Caption = "фамилия"
dtgРеестр.Columns(2).Caption = "имя"
dtgРеестр.Columns(3).Caption = "отчество"
dtgРеестр.Columns(4).Caption = "пол"
dtgРеестр.Columns(5).Caption = "дата рожд."
dtgРеестр.Columns(6).Caption = "№ р."
dtgРеестр.Columns(7).Caption = "дата нач."
dtgРеестр.Columns(8).Caption = "дата оконч."
dtgРеестр.Columns(9).Caption = "код субъекта РФ"
dtgРеестр.Columns(10).Caption = "№ бол."
dtgРеестр.Columns(11).Caption = "Название СМО"
dtgРеестр.Columns(12).Caption = "номер полиса"
dtgРеестр.Columns(13).Caption = "домашний адрес"
dtgРеестр.Columns(14).Caption = "место работы"
dtgРеестр.Columns(15).Caption = "код диагноза"
dtgРеестр.Columns(16).Caption = "код исхода"
dtgРеестр.Columns(17).Caption = "код спец."
dtgРеестр.Columns(18).Caption = "код места"
dtgРеестр.Columns(19).Caption = "чис. п."
dtgРеестр.Columns(20).Caption = "сумма"
dtgРеестр.Columns(21).Caption = "дата вв."
dtgРеестр.Columns(22).Caption = "мкб"
dtgРеестр.Columns(23).Caption = "название диагноза"
dtgРеестр.Columns(24).Caption = "название специализации"
dtgРеестр.Columns(25).Caption = "тариф"
dtgРеестр.Columns(26).Caption = "код цели"
dtgРеестр.Columns(27).Caption = "назв. места"
dtgРеестр.Columns(28).Caption = "цель посещ."
dtgРеестр.Columns(29).Caption = "название субъекта РФ"
dtgРеестр.Columns(30).Caption = "исход"

' ширина столбцов грида
dtgРеестр.Columns(0).Width = 500
dtgРеестр.Columns(1).Width = 1500
dtgРеестр.Columns(2).Width = 1500
dtgРеестр.Columns(3).Width = 1500
dtgРеестр.Columns(4).Width = 500
dtgРеестр.Columns(5).Width = 1000
dtgРеестр.Columns(6).Width = 500
dtgРеестр.Columns(7).Width = 1000
dtgРеестр.Columns(8).Width = 1000
dtgРеестр.Columns(9).Width = 0
dtgРеестр.Columns(10).Width = 750
dtgРеестр.Columns(11).Width = 4000
dtgРеестр.Columns(12).Width = 1500
dtgРеестр.Columns(13).Width = 4000
dtgРеестр.Columns(14).Width = 4000
dtgРеестр.Columns(15).Width = 0
dtgРеестр.Columns(16).Width = 0
dtgРеестр.Columns(17).Width = 0
dtgРеестр.Columns(18).Width = 0
dtgРеестр.Columns(19).Width = 750
dtgРеестр.Columns(20).Width = 1000
dtgРеестр.Columns(21).Width = 1000
dtgРеестр.Columns(22).Width = 750
dtgРеестр.Columns(23).Width = 4000
dtgРеестр.Columns(24).Width = 3500
dtgРеестр.Columns(25).Width = 1000
dtgРеестр.Columns(26).Width = 0
dtgРеестр.Columns(27).Width = 4000
dtgРеестр.Columns(28).Width = 2000
dtgРеестр.Columns(29).Width = 3000
dtgРеестр.Columns(30).Width = 1500

' в зависимости от переданного параметра, устанавливаем курсор на первую или последнюю запись грида
If rst.RecordCount <> 0 Then
dtgРеестр.Visible = True
If IsMissing(vntRow) Then
dtgРеестр.Row = 0
Else
dtgРеестр.Row = rst.RecordCount - 1
End If
End If

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


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