Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ComponentOne / 17 сообщений из 17, страница 1 из 1
13.02.2006, 11:54:18
    #33540361
strizzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
Кто-нибудь знает как обратится непосредственно к определенной строке TDBGrid'а. Необходимо, при условие содержания одной из ячеек строки менять цвет шрифта всей строки.
Заранее спасибо.
...
Рейтинг: 0 / 0
13.02.2006, 14:18:23
    #33540934
shady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
вроде в Туториал часть 11 описывается "колорирование"
...
Рейтинг: 0 / 0
13.02.2006, 14:24:18
    #33540959
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
Для того чтобы окрашивать строки служит событие FetchRowStyle
К определенной строке грида лучше не обращаться т.к. это будет строка относительно верхней (нулевой) строки.
Надо еще одно знать: привязанный к рекордсету TDBGrid держит не все данные, а только буфер из числа строк кратных 20-ти.
Поэтому для окраски FetchRosStyle надо пользоваться рекордсетом (или другим его источником данных).

См.
Tutorial 11 - Using Styles to Highlight Related Data
...
Рейтинг: 0 / 0
13.02.2006, 16:43:03
    #33541441
strizzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
спасибо
а не у кого примеров нет других, а то конкретно этот пример не рботает у меня, но разбираюсь потихоньку.
...
Рейтинг: 0 / 0
13.02.2006, 17:02:11
    #33541520
strizzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
авторPrivate Sub GridIn_FetchRowStyle(ByVal Split As Integer, Bookmark As Variant, ByVal RowStyle As TrueOleDBGrid80.StyleDisp)

End Sub


при вызове события FetchRowStyle у меня по умолчанию прописоваются отличные от примера в туториале параметры.

авторPrivate Sub C1TrueDBGrid1_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles C1TrueDBGrid1.FetchRowStyle

когда я их меняю на те, то у меня выскакивает ошибка: "user-defined type not defined"

может нужно еще подключить какие-нить библиотеки?
...
Рейтинг: 0 / 0
14.02.2006, 12:05:34
    #33543056
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
Пишете на VB.NET ?
Вам надо этот вопрос задать в форуме VB.NET.
Я, к сожалению, не могу ответить на этот вопрос. Т.к. студию2003 снес вместе с C1. А для студии2005 у меня нет С1. И открыть старый проект (где есть пример окраски строк и ячеек) не могу.
А что в хелпе п С1 нет соответствующего примера?
...
Рейтинг: 0 / 0
14.02.2006, 17:28:08
    #33544379
strizzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
нет просто, VB, а там похоже пример всее-таки для vb.net :(
...
Рейтинг: 0 / 0
15.02.2006, 17:38:09
    #33547258
strizzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
еще один вопросик возник:

когда настраиваю колонки(columns(00) и т. д.), ставлю там Caption - Имя, которое хочу видеть, а в DataField, ставлю название этой колонки в базе, но при запуске все равно показываются названия из базы. Подскажите, плз, может там еще чего нада поставить.
...
Рейтинг: 0 / 0
16.02.2006, 08:01:00
    #33547962
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
Такое случается после выполнения команды ClearFields.
Иначе колонки даже не добавятся (недостающие)
...
Рейтинг: 0 / 0
16.02.2006, 11:51:31
    #33548546
strizzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
Worobjoff

Спасибо огромное, я б сам не додумался. А как тогда очищать поля, если не ClearFields?
...
Рейтинг: 0 / 0
16.02.2006, 13:00:48
    #33548839
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
Надо делать одно из двух:
- В дизайнере создать все нужные колонки.
- В коде программы, после присвоения рекордсета гриду, всем колонкам дать кэпшены.

Можно автоматизировать второй вариант, но принцип останется.
...
Рейтинг: 0 / 0
16.02.2006, 14:54:55
    #33549282
strizzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
а если ставить в ячейку CheckBox, то он только отображает значение(0 или 1), соответсвующей ей ячейки в базе. А как заставить его динамично изменять значения в БД? Или нельзя?
...
Рейтинг: 0 / 0
16.02.2006, 15:12:19
    #33549343
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
strizzzА как заставить его динамично изменять значения в БД? Или нельзя?О чем речь?
Если надо в качестве Boolean-поля использовать Int, то комбинируем два свойства объекта ValueItems колонки:
Presentatioan и Translate
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   Dim vi As TrueOleDBGrid80.ValueItem
   With Grid1.Columns("хххх").ValueItems
      .Presentation = dbgCheckBox
      .Translate = True
      Set vi = New TrueOleDBGrid80.ValueItem
      vi.DisplayValue = True
      vi.Value =  1 
      .Add vi
      vi.DisplayValue = False
      vi.Value =  2 
      .Add vi
   End With
...
Рейтинг: 0 / 0
16.02.2006, 15:14:34
    #33549358
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
ps
На всякий случай:
Вместо двойки надо ноль поставить.
...
Рейтинг: 0 / 0
16.02.2006, 16:57:53
    #33549841
strizzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
мне нужно сделать так, чтобы когда я ставлю чекбокс, то сразу же в ЭТОТ МОМЕНТ значение в базе менялось на 1, и на 0, соответственно, когда снимаю галочку.
Спасибо еще раз, теперь все более менее понятно, но в БД значение все равно пока не меняется.
...
Рейтинг: 0 / 0
16.02.2006, 18:26:21
    #33550166
strizzz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
даже нет, значение всё таки меняется, только после закрытия приложения. вообщем проблема остается в том, как заставить меня значение именно в момент переключения чекбокса
...
Рейтинг: 0 / 0
17.02.2006, 09:08:06
    #33550868
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ComponentOne
Грид возвращает знаечения в источник данных (recordset) после перехода на другую строку.
Чтобы не ждать перехода на другую строку надо выполнить Update
Чтобы так реагировать лишь на одно поле надо так сделать:
Private Sub Grid1_AfterColEdit(ByVal ColIndex As Integer)
If ColIndex = 0 Then Grid1.Update
End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ComponentOne / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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