CftClub.ru
Клуб специалистов ЦФТ-Банк

Grid - переход на следующую ячейку после окончания ввода
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеЧт Дек 04, 2014 07:17   Grid - переход на следующую ячейку после окончания ввода Ответить с цитатой
Полезность: Нет оценки
Добрый день.
Задача: заменить таблицу из контролов Edit на Grid.
Проблема:
Стандартный цфт-грид ведет себя не так, как табличка из контролов.
Например, после окончания ввода значения в ячейку хотелось бы, чтобы по ENTER фокус перескакивал на следующую редактируемую ячейку.
Реализуемо?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Дек 04, 2014 10:05    Ответить с цитатой
Полезность: Нет оценки
Grid1.SetFocus() наверное поможет
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеЧт Дек 04, 2014 12:15    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Grid1.SetFocus() наверное поможет

а как на конкретную строчку-столбец передать фокус?
Alex294
Участник со стажем


Вступление в Клуб: 02.06.2013
СообщениеЧт Дек 04, 2014 12:43    Ответить с цитатой
Полезность: Нет оценки
Damir пишет:
Volod пишет:
Grid1.SetFocus() наверное поможет

а как на конкретную строчку-столбец передать фокус?

Grid1.Row = 4
Grid1.Col = 2
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Дек 04, 2014 12:48    Ответить с цитатой
Полезность: Нет оценки
Public Sub Grid1_ValidateEdit (Row, Col, Cancel)

'Grid1.Row = Row + 1
'Grid1.Col = Col + 1
End Sub
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеСр Янв 14, 2015 14:30    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Public Sub Grid1_ValidateEdit (Row, Col, Cancel)
'Grid1.Row = Row + 1
'Grid1.Col = Col + 1
End Sub


только сейчас дошли руки до этой задачки...
Volod, не работает так! Crying or Very sad Crying or Very sad Crying or Very sad
т.е. вб-скрипт выполняется без ошибок,
Grid1_ValidateEdit() вызывается - всякие MsgBox() отрабатывают из нее...
а курсор НЕ переходит на указанную ячейку - хоть тресни.
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеСр Янв 14, 2015 14:41    Ответить с цитатой
Полезность: Нет оценки
У меня работает.
Проверка Сервер-Клиент.
Навигатор 6.0.111.22.
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеСр Янв 14, 2015 14:45    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:

Public Sub Grid1_ValidateEdit (Row, Col, Cancel)
Grid1.Row = 1
End Sub


Код:
Grid1.Row = 1

Это работает отдельно (в Майн), а в Sub Grid1_ValidateEdit() не работает.
Подозреваю, что после вызова Grid1_ValidateEdit() позиция курсора восстанавливается.
Т.е. курсор успевает сбегать 'куда послали' и вернуться на редактируемую ячейку.
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеСр Янв 14, 2015 14:48    Ответить с цитатой
Полезность: Нет оценки
В моем примере было

Grid1.Col = Col + 1
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеСр Янв 14, 2015 14:49    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
У меня работает.
Проверка Сервер-Клиент.
Навигатор 6.0.111.22.


Шайтан-ма!
Проверка Сервер-Клиент. - обе штуки.
Навигатор Версия 6.0.115.60
Версия ТЯ 7.1.2.2
Версия Рабочего места Оператора 6.11.12.0
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеСр Янв 14, 2015 15:10    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
В моем примере было

Grid1.Col = Col + 1


а я уж всяко пробовал....
Grid1.Col = Col + 1
Grid1.Col = 1
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеСр Янв 14, 2015 15:33    Ответить с цитатой
Полезность: Нет оценки
Damir пишет:
Это работает отдельно (в Майн), а в Sub Grid1_ValidateEdit() не работает.
Подозреваю, что после вызова Grid1_ValidateEdit() позиция курсора восстанавливается.
Т.е. курсор успевает сбегать 'куда послали' и вернуться на редактируемую ячейку.


Как Sub Grid1_ValidateEdit() не работает?
Msgbox col & Grid1.Col что пишет?
Т.е. в MAIN Grid1.Col = 1 осталось?
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеЧт Янв 15, 2015 08:30    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:

Как Sub Grid1_ValidateEdit() не работает?
Msgbox col & Grid1.Col что пишет?
Т.е. в MAIN Grid1.Col = 1 осталось?


По-порядку...
1) есть грид на форме - GridServices
2) Пытаюсь сделать переход на другую ячейку в гриде - после редактирования значения. Для этого навешиваю процедурку в VB-скрипте:
Код:

Public Sub GridServices_ValidateEdit(row, col, cancel)
   if row + 1 < GridServices.Rows then
      MsgBox("(1) row = " & row & " col = " & col & " GridServices.Row = " & GridServices.Row & " GridServices.col = " & GridServices.col )      
      GridServices.Row = 1
      GridServices.Col = 1            
      MsgBox("(2) row = " & row & " col = " & col & " GridServices.Row = " & GridServices.Row & " GridServices.col = " & GridServices.col )            
   end if
End Sub

3) рядом с гридом лежит кнопка 'Button7' - для тестирования
4) реакция на нажатие 'Button7' - прямой вызов GridServices_ValidateEdit()
Код:

Public Function Main(LastControl)
   If LastControl Is Button7 Then   
      call GridServices_ValidateEdit(1, 1, false)
   end if   
....


Запускаем операцию в навигаторе....
1) Нажатие на тестовую кнопку...
Видим MsgBox 2 штуки
(1) row = 1 col = 1 GridServices.Row = 2 GridServices.col = 5
(2) row = 1 col = 1 GridServices.Row = 1 GridServices.col = 1

2) Пытаемся редактировать ячейку грида...
Видим MsgBox 2 штуки
(1) row = 2 col = 5 GridServices.Row = 2 GridServices.col = 5
(2) row = 2 col = 5 GridServices.Row = 2 GridServices.col = 5

Вывод: нифига не работает
Damir
Участник - экстремал


Вступление в Клуб: 29.03.2013
СообщениеЧт Янв 15, 2015 08:40    Ответить с цитатой
Полезность: Нет оценки
Народ из ЦФТ....
Ну посмотрите - уже есть тестовый пример с указанием 2 версий навигаторов.
У меня не работает, у Volod - говорит, работает на его версии навигатора.

Damir пишет:

Запускаем операцию в навигаторе....
1) Нажатие на тестовую кнопку...
Видим MsgBox 2 штуки
(1) row = 1 col = 1 GridServices.Row = 2 GridServices.col = 5
(2) row = 1 col = 1 GridServices.Row = 1 GridServices.col = 1

2) Пытаемся редактировать ячейку грида...
Видим MsgBox 2 штуки
(1) row = 2 col = 5 GridServices.Row = 2 GridServices.col = 5
(2) row = 2 col = 5 GridServices.Row = 2 GridServices.col = 5

Вывод: нифига не работает
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Янв 15, 2015 08:58    Ответить с цитатой
Полезность: Нет оценки
Попробуйте этот код
Код:
Public Sub Grid1_ValidateEdit (Row, Col, Cancel)
      Grid1.Col = Col + 1
End Sub
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru