Реализация контроля ввода в Janus GridEX 2000 (любом гриде)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
hasuhands
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.11.2004 (Ср) 20:14

Реализация контроля ввода в Janus GridEX 2000 (любом гриде)

Сообщение hasuhands » 22.11.2004 (Пн) 1:47

Никак не могу реализовать контроль ввода во время редактирования данных через грид.

То есть, к примеру, таблица Студент-Стипендия.
Как сделать так, чтобы в столбец Стипендия можно было вводить только числа.

Есть такая функция:
Код: Выделить всё
Private Sub object_KeyPress( [ index As Integer,] keyascii As Integer)

The KeyPress event syntax has these parts:

Part    Description
object    An object expression that evaluates to an object in the Applies To list.
index An integer that uniquely identifies a control if it's in a control array.
keycode  An integer that represents the key code. 
keyascii  An integer that returns a standard numeric ANSI keycode. keyascii is passed by reference; changing it sends a different character to the object.

Changing keyascii to 0 cancels the keystroke so the object receives no character.

Но как ее привязать к конкретному столбцу? [/code]

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 22.11.2004 (Пн) 10:34

В событии KeyPress Grid-a получаешь колонку Grid-a (Свойство Col) и дальше действуешь в зависимости от этого...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 22.11.2004 (Пн) 10:40

Кстати, ниже пример такой проверки (функцию CheckKeyPress напишешь сам):

Код: Выделить всё
Private Sub GEdit_KeyPress(KeyAscii As Integer)
    Dim f As ADODB.Field, c As JSColumn

    If GEdit.IsGroupItem(GEdit.Row) Then Exit Sub
    If GEdit.Col < 1 Then Exit Sub
    Set c = GEdit.Columns.ItemByPosition(GEdit.Col)
    If c.FetchData Then Exit Sub
    If c.HasValueList Then Exit Sub
    Select Case c.EditType
        Case jgexEditCombo, jgexEditDropDown, jgexEditCheckBox
            Exit Sub
    End Select
   
    Select Case GEdit.DataMode
        Case jgexADO
            If c.DataField <> "" Then
                Set f = GEdit.AdoRecordset.Fields(c.DataField)
                CheckKeyPress GEdit.Value(c.Index), KeyAscii, f.Type
            End If
    End Select
End Sub
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 20

    TopList