Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / CheckBox в таблице / 25 сообщений из 32, страница 1 из 2
25.06.2010, 13:33
    #36708015
Stanislavus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Привет Всем!

Нужно дописать прогу на VB6.

Суть дополнения, что должна появится таблица, где часть полей CheckBox, остальные нрмальные.
И пользователь должен мочь без всяких заморочек, как в Аccess например эти поля кликать и заполнять.

Совершенно элем. задача для Access или PHP, ASP ..., поставила меня просто в тупик.

Какой компонент для этого в VB6?
...
Рейтинг: 0 / 0
25.06.2010, 13:40
    #36708036
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
StanislavusПривет Всем!

Нужно дописать прогу на VB6.

Суть дополнения, что должна появится таблица, где часть полей CheckBox, остальные нрмальные.
И пользователь должен мочь без всяких заморочек, как в Аccess например эти поля кликать и заполнять.

Совершенно элем. задача для Access или PHP, ASP ..., поставила меня просто в тупик.

Какой компонент для этого в VB6?
DataGrid
...
Рейтинг: 0 / 0
25.06.2010, 13:50
    #36708069
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Shocker.ProStanislavusПривет Всем!

Нужно дописать прогу на VB6.

Суть дополнения, что должна появится таблица, где часть полей CheckBox, остальные нрмальные.
И пользователь должен мочь без всяких заморочек, как в Аccess например эти поля кликать и заполнять.

Совершенно элем. задача для Access или PHP, ASP ..., поставила меня просто в тупик.

Какой компонент для этого в VB6?
DataGrid

хм, но не всякий грид это умеет. ищите какой-нибудь платный, тип JanusGridex
...
Рейтинг: 0 / 0
25.06.2010, 13:55
    #36708084
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Konst_Oneхм, но не всякий грид это умеет. ищите какой-нибудь платный, тип JanusGridex
А, что, если кучу булевых столбцов подсунуть датагриду, он не даст их редактировать чекбоксами?
...
Рейтинг: 0 / 0
25.06.2010, 14:00
    #36708109
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Konst_OneShocker.ProStanislavusПривет Всем!

Нужно дописать прогу на VB6.

Суть дополнения, что должна появится таблица, где часть полей CheckBox, остальные нрмальные.
И пользователь должен мочь без всяких заморочек, как в Аccess например эти поля кликать и заполнять.

Совершенно элем. задача для Access или PHP, ASP ..., поставила меня просто в тупик.

Какой компонент для этого в VB6?
DataGrid

хм, но не всякий грид это умеет. ищите какой-нибудь платный, тип JanusGridex
Да, Janus рулит.
...
Рейтинг: 0 / 0
25.06.2010, 14:01
    #36708116
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Shocker.ProKonst_Oneхм, но не всякий грид это умеет. ищите какой-нибудь платный, тип JanusGridex
А, что, если кучу булевых столбцов подсунуть датагриду, он не даст их редактировать чекбоксами?


попробуй. только чекбоксики в Microsoft OLE DB DataGrid не рисуются автоматически, если только сам напрограммируешь ;)
...
Рейтинг: 0 / 0
25.06.2010, 14:02
    #36708121
Stanislavus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
ясно :(

Не, платить тут никто, ни за что не будет.

Ситуация просто дурацкая, в Аccess, это вообше ерунда была ба, дернуть оттуда бы компонент.
...
Рейтинг: 0 / 0
25.06.2010, 14:04
    #36708127
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Stanislavusясно :(

Не, платить тут никто, ни за что не будет.

Ситуация просто дурацкая, в Аccess, это вообше ерунда была ба, дернуть оттуда бы компонент.


можете заюзать ListView и вставлять картинки для чекбоксиков, только всю обработку вам самому придётся делать.
...
Рейтинг: 0 / 0
25.06.2010, 14:08
    #36708148
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Konst_Oneможете заюзать ListView и вставлять картинки для чекбоксиков, только всю обработку вам самому придётся делать.
Автору, помимо чекбоксов, нужны и текстовые поля, как я понял
...
Рейтинг: 0 / 0
25.06.2010, 14:12
    #36708162
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Shocker.ProKonst_Oneможете заюзать ListView и вставлять картинки для чекбоксиков, только всю обработку вам самому придётся делать.
Автору, помимо чекбоксов, нужны и текстовые поля, как я понял


так я и говорю, что нет ничего простого и бесплатного. только если самому ручками. пусть глянет на vbаксселераторе , там вроде был грид ему подходящий
...
Рейтинг: 0 / 0
25.06.2010, 14:20
    #36708182
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Konst_OneподходящийИ адово глючащий.
В аттаче DataGrid, дополненный комбобоксом, с примером использования. Это, конечно, не чекбокс, но, думаю, пользователя не особо напряжет выбрать да/нет из выпадающего списка.
...
Рейтинг: 0 / 0
25.06.2010, 17:18
    #36708825
bac
bac
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Я тут делал в flexGrid ввод щелкаешь мышкой по ячейке в таблице и начинаешь писать что надо. Я думаю аналогично можно сделать и комбо.
Код: 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.
'===========================================
' Обработчик выбора мышью ячейки в таблице
Private Sub MSFlexGrid_Click()
    Dim c As Integer    ' Номер колонки таблицы
    Dim r As Integer    ' Номер строки в таблице
    With Me.MSFlexGrid
        c = .Col
        r = .Row
        If c <  1  Or r <  1  Then
            Me.txtCol.Visible = False
            .SetFocus
            Exit Sub
        End If
        If Me.txtCol.Visible Then   ' Если поле для ввода уже видимо то сохранить данные в ячейку таблицы
            .Col = inCol
            .Row = inRow
            .Text = Me.txtCol
            .Col = c
            .Row = r
        Else
            Me.txtCol.Visible = True
        End If
        
'  Загрузить в поле для ввода значение из выбранной ячейки
'  и установить размер поля соответствующий выбранной ячейке
        inCol = c
        inRow = r
        Me.txtCol.Text = .Text
        Me.txtCol.Top = .CellTop -  70 
        Me.txtCol.Left = .CellLeft
        Me.txtCol.Width = .CellWidth
        Me.txtCol.Height = .CellHeight
        
        Me.txtCol.SetFocus
    End With
End Sub

'=============================================================
' Обработчик нажатия клавиши в поле ввода для ячейки в таблице
Private Sub txtCol_KeyPress(KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then      ' Если нажата кнопка Enter
        If Me.MSFlexGrid.Col =  4  Then   ' Если был ввод в последней колонке
                                        ' Добавить строку
            Me.MSFlexGrid.Rows = Me.MSFlexGrid.Rows +  1 
            Me.MSFlexGrid.Row = Me.MSFlexGrid.Rows -  1 
            Me.MSFlexGrid.Col =  0 
            Me.MSFlexGrid.Text = Me.MSFlexGrid.Row
        
            Me.MSFlexGrid.Col =  1 

            MSFlexGrid_Click
        ElseIf Me.MSFlexGrid.Col >  0  Then  ' Если это не последняя колонка то начать редактировать следующую
            Me.MSFlexGrid.Col = Me.MSFlexGrid.Col +  1 
            MSFlexGrid_Click
        End If
    ElseIf KeyAscii = vbKeyEscape Then   ' Если нажата Esc то прекратить режим корректировки
        Me.txtCol.Visible = False
        Me.MSFlexGrid.SetFocus
    End If
End Sub

...
Рейтинг: 0 / 0
25.06.2010, 17:21
    #36708835
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
bacЯ тут делал в flexGrid ввод щелкаешь мышкой по ячейке в таблице и начинаешь писать что надо. Я думаю аналогично можно сделать и комбо.
На самом деле еще проще - рисуешь в ячейке картинку чекбокса и отрабатываешь CellClick.
Автору нужна увязка с БД - это уже сложнее.
...
Рейтинг: 0 / 0
25.06.2010, 18:28
    #36708966
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Stanislavus,
дома есть пример через API , скину как приду
...
Рейтинг: 0 / 0
25.06.2010, 22:10
    #36709185
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Stanislavus,
держите
Код: 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.
Option Explicit
Dim x As Integer
Dim NumVisRow As Integer
Dim PredRowPos As Integer
Dim HeightRows As Integer

Private Sub Command1_Click()
MSFlexGrid1.AddItem ""
x = Combo1.Count

Load Check1(x)
Check1(x).Left = MSFlexGrid1.Left +  100 
Check1(x).Top = MSFlexGrid1.Top + (MSFlexGrid1.RowHeight( 0 ) * x) +  100 
Check1(x).ZOrder

Load Combo1(x)
Combo1(x).Left = MSFlexGrid1.Left + MSFlexGrid1.ColWidth( 0 ) + MSFlexGrid1.ColWidth( 1 ) + MSFlexGrid1.ColWidth( 2 ) +  50 
Combo1(x).Top = MSFlexGrid1.Top + (MSFlexGrid1.RowHeight( 0 ) * x) +  50 
Combo1(x).Width = MSFlexGrid1.ColWidth( 3 )
Combo1(x).ZOrder
Combo1(x).AddItem "Пар" & x

    If Check1(x).Top < MSFlexGrid1.Top + MSFlexGrid1.Height Then
    Check1(x).Visible = True
    End If

    If Combo1(x).Top < MSFlexGrid1.Top + MSFlexGrid1.Height Then
    Combo1(x).Visible = True
    End If
End Sub

Private Sub Form_Load()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
MSFlexGrid1.Cols =  5 
MSFlexGrid1.Rows =  1 
Combo1( 0 ).Visible = False
Check1( 0 ).Visible = False
Check1( 0 ).Caption = ""
Check1( 0 ).Width =  200 
Check1( 0 ).Height =  200 
'Check1(0).Appearance = 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
NumVisRow =  5  ' высота в строках
HeightRows =  330 
MSFlexGrid1.RowHeightMin = HeightRows
MSFlexGrid1.Height = HeightRows * NumVisRow +  50 
MSFlexGrid1.ColWidth( 0 ) =  330 
MSFlexGrid1.ColWidth( 3 ) =  2000 
End Sub

Private Sub MSFlexGrid1_Scroll()
For x =  1  To MSFlexGrid1.Rows -  1 
Combo1(x).Visible = False
Check1(x).Visible = False

   Combo1(x).Top = MSFlexGrid1.Top + MSFlexGrid1.RowPos(x) +  50 
   Check1(x).Top = MSFlexGrid1.Top + MSFlexGrid1.RowPos(x) +  100 

If Combo1(x).Top < MSFlexGrid1.Top + HeightRows Or Combo1(x).Top > MSFlexGrid1.Top + MSFlexGrid1.Height -  50  Then
Combo1(x).Visible = False
Else
Combo1(x).Visible = True
End If

If Check1(x).Top < MSFlexGrid1.Top + HeightRows Or Check1(x).Top > MSFlexGrid1.Top + MSFlexGrid1.Height Then
Check1(x).Visible = False
Else
Check1(x).Visible = True
End If
Next x
End Sub

Private Sub Combo1_Change(Index As Integer)
MSFlexGrid1.Col =  3 
MSFlexGrid1.Row = Index
MSFlexGrid1.Text = Combo1(Index).Text
End Sub

Private Sub Combo1_Click(Index As Integer)
MSFlexGrid1.Col =  3 
MSFlexGrid1.Row = Index
MSFlexGrid1.Text = Combo1(Index).Text
End Sub

Private Sub Check1_Click(Index As Integer)
MSFlexGrid1.Col =  0 
MSFlexGrid1.Row = Index
MSFlexGrid1.ForeColorFixed = MSFlexGrid1.BackColorFixed

    If Check1(Index).Value = True Then
    MSFlexGrid1.Text =  1 
    Else
    MSFlexGrid1.Text =  0 
    End If
End Sub
...
Рейтинг: 0 / 0
25.06.2010, 22:28
    #36709196
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
aduka05adm,

мм..эээ.. а где здесь АПИ???
...
Рейтинг: 0 / 0
25.06.2010, 22:42
    #36709214
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Игорь Горбоносмм..эээ.. а где здесь АПИ???
Отличный вопрос!

Я еще - комбобоксы исчезают, если скроллить сетку мышью (хотя событие Scroll исправно возникает).

А вообще, на большой сетке очень некрасиво и неудобно, когда она вся забита комбобоксами. Не говоря уж о потраченных ресурсах. Можно делать видимым комбобокс тогда, когда пользователь кликнул в конкретную ячейку.
...
Рейтинг: 0 / 0
25.06.2010, 22:45
    #36709221
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Игорь Горбонос,
перепутал я
пришел домой и оказывается не API
...
Рейтинг: 0 / 0
25.06.2010, 22:47
    #36709222
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Shocker.Pro,
Shocker.ProМожно делать видимым комбобокс тогда, когда пользователь кликнул в конкретную ячейку.
то есть CheckBox будет прыгать туда где мышкой кликнули?
...
Рейтинг: 0 / 0
25.06.2010, 23:27
    #36709239
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
aduka05admShocker.Pro,
Shocker.ProМожно делать видимым комбобокс тогда, когда пользователь кликнул в конкретную ячейку.
то есть CheckBox будет прыгать туда где мышкой кликнули?
Причем тут чекбокс?
С чекбоксом еще проще, как я говорил выше. Просто имеешь две картинки и программируешь соответственным образом CellPicture
...
Рейтинг: 0 / 0
25.06.2010, 23:48
    #36709255
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Shocker.Pro,
combobox имел ввиду
...
Рейтинг: 0 / 0
26.06.2010, 00:04
    #36709270
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Shocker.Pro,
че то у меня скролл не работает
код с добавлением записей
Код: 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.
CommonDialog1.ShowOpen
'MsgBox CommonDialog1.FileTitle
strCnxn = "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=" + App.Path + ";DefaultDir =" + App.Path + ""
Set Cnxn = New ADODB.Connection
Cnxn.Open strCnxn
Set rst = New ADODB.Recordset
strSQL = "SELECT * FROM " + CommonDialog1.FileTitle + ""
rst.Open strSQL, Cnxn, adCmdText
'MSFlexGrid1.AddItem ""
MSFlexGrid1.Cols = rst.Fields.Count
MSFlexGrid1.Rows =  1 
x = MSFlexGrid1.Rows
For i =  0  To rst.Fields.Count -  1 
    ' занести название имeн полей таблицы базы данных в
    ' первую строку MSFlexGrid1
    MSFlexGrid1.TextMatrix( 0 , i) = rst.Fields(i).Name
Next i
Do While Not rst.EOF
    ' увеличить количество строк в MSFlexGrid на единицу
    MSFlexGrid1.Rows = MSFlexGrid1.Rows +  1 
    ' цикл переноса данных из Recordset в MSFlexGrid1
        For i =  0  To rst.Fields.Count -  1 
            ' перенос данных данной строки (по полям). Если данные в
            ' ячейке Recordset имеются, то перенести их в
            ' таблицу MSFlexGrid1
            If Not rst.Fields(i) = "" Then
            MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows -  1 , i) = rst.Fields(i)
            End If
            ' конец цикла переноса данных
            ' в таблицу MSFlexGrid1 для одной строки
        Next i
    Load Check1(x)
    Check1(x).Left = MSFlexGrid1.Left +  100 
    Check1(x).Top = MSFlexGrid1.Top + (MSFlexGrid1.RowHeight( 0 )) +  100 
    Check1(x).ZOrder
    Check1(x).Visible = True
    Load Combo1(x)
    Combo1(x).Left = MSFlexGrid1.Left + MSFlexGrid1.ColWidth( 0 ) + MSFlexGrid1.ColWidth( 1 ) + MSFlexGrid1.ColWidth( 2 ) +  50 
    Combo1(x).Top = MSFlexGrid1.Top + (MSFlexGrid1.RowHeight( 0 ) * x) +  50 
    Combo1(x).Width = MSFlexGrid1.ColWidth( 3 )
    Combo1(x).ZOrder
    Combo1(x).AddItem "Пар" & x
    Combo1(x).Visible = True
    x = MSFlexGrid1.Rows
    ' использовать метод MoveNext - переход к
    ' следующей строке
    rst.MoveNext
Loop
If rst.BOF = True And rst.EOF = True Then
Else
End If
rst.Close
Cnxn.Close
Set Cnxn = Nothing
Set rst = Nothing
...
Рейтинг: 0 / 0
26.06.2010, 00:51
    #36709295
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
aduka05admче то у меня скролл не работает

У меня Genius-овский драйвер мыши - он скроллит даже то, что не поддерживает скроллинг :)

А вот немножно по теме скроллинга.
...
Рейтинг: 0 / 0
26.06.2010, 01:18
    #36709306
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
Shocker.Pro,
я читал это и что то похожее использовал
можете скинуть код как вы при изменении данных в MSFLEXGRID
добавляете их в базу данных или просто алгоритм без кода
просто не хочется отдельно использовать кнопку для этого
и насколько понимаю это надо делать цикл по всем записям в MSFLEXGRID
и добавлять их в базу данных
...
Рейтинг: 0 / 0
26.06.2010, 13:24
    #36709527
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CheckBox в таблице
aduka05admShocker.Pro,
можете скинуть код как вы при изменении данных в MSFLEXGRID
добавляете их в базу данных или просто алгоритм без кода
просто не хочется отдельно использовать кнопку для этого
и насколько понимаю это надо делать цикл по всем записям в MSFLEXGRID
и добавлять их в базу данных

Ну, собственно, смотря что ты задумал.
Одно дело, если ты хочешь пользователю обеспечить редактирование всей таблицы и дальнейшую возможность сохранить или отказаться от всех изменений - это одно. Если пользователь редактирует, и по завершении редактирования поля, изменения сразу должны отражаться в БД - это другое.

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


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