AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.04.2007, 20:38   #1  
balashov is offline
balashov
Участник
Аватар для balashov
 
78 / 10 (1) +
Регистрация: 01.09.2005
Как в коде получить ID или хотя бы Name, поля таблицы Rec переменной формы на которой в текущий момент находиться курсор (фокус).
Может у кого есть готовый алгоритм?

Что бы было более понятнее мне надо:
Передать в функцию ID таблицы и ID поля, на котором в текущий момент находиться курсор.
ID таблицы непроблема а ID поля???
Старый 08.04.2007, 14:11   #2  
satir is offline
satir
Участник
Аватар для satir
 
77 / 10 (1) +
Регистрация: 09.06.2006
Если правильно понял вопрос, то номер поля получают так
Код:
integer := rec.FIELDNO(Name);
Старый 08.04.2007, 15:42   #3  
balashov is offline
balashov
Участник
Аватар для balashov
 
78 / 10 (1) +
Регистрация: 01.09.2005
Цитата:
Сообщение от satir Посмотреть сообщение
Если правильно понял вопрос, то номер поля получают так
Код:
integer := rec.FIELDNO(Name);
Неа не пойдет.
Мне надо:
1. Пользователь нажимает на карточной форме определенную кнопку
2. в OnPush обрабатывается данное событие, а именно в функцию передается две переменные ID таблицы и ID текущего поля в момент нажатия на котором находился курсор.
Вот примерный алгоритм, как бы так в repeatе, узнать ID поля на котором курсор стоит???
Или надо контролы формы обрабатывать??
Код:
RecRef.GETTABLE(Rec);
TableID:= RecRef.NUMBER;
Field.SETRANGE(TableNo, TableID);
Field.FIND('-');
  REPEAT
  
  UNTIL Field.NEXT = 0;
Старый 08.04.2007, 16:21   #4  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Думаю, придется каждого контрола OnActivate обрабатывать....
И на этом тригере вручную прописывать

VarIntegerFieldNo := 1;
VarIntegerFieldNo := 2;
....
и т.п.

Гемор, конечно...

Может кто лучше идею даст
Старый 08.04.2007, 18:29   #5  
balashov is offline
balashov
Участник
Аватар для balashov
 
78 / 10 (1) +
Регистрация: 01.09.2005
Цитата:
Сообщение от randrews Посмотреть сообщение
Думаю, придется каждого контрола OnActivate обрабатывать....
И на этом тригере вручную прописывать

VarIntegerFieldNo := 1;
VarIntegerFieldNo := 2;
....
и т.п.

Гемор, конечно...

Может кто лучше идею даст
Наврятли тут что нибуть получиться по проичинам:
1. Нельзя узнать какому полю соответствует контрол формы
2. Нельзя узнать активен ли контрол или нет (это возможно только для формы)
Поэтому придеться тупо в OnActivate все мутить.
Старый 08.04.2007, 22:34   #6  
satir is offline
satir
Участник
Аватар для satir
 
77 / 10 (1) +
Регистрация: 09.06.2006
Самый простой способ повесить на OnActivate запись в глобальную переменную результат от rec.FIELDNO И будет всегда нужный номер поля
Старый 08.04.2007, 23:13   #7  
balashov is offline
balashov
Участник
Аватар для balashov
 
78 / 10 (1) +
Регистрация: 01.09.2005
Цитата:
Сообщение от satir Посмотреть сообщение
Самый простой способ повесить на OnActivate запись в глобальную переменную результат от rec.FIELDNO И будет всегда нужный номер поля
ну так и сделал
Цитата:
EVALUATE(FormID,DELSTR(CurrForm.OBJECTID(FALSE),1, 5));
RecRef.GETTABLE(Rec);
TableID:= RecRef.NUMBER;
FieldID:=FIELDNO("Sell-to Customer No.");
Только не красиво как то, в каждом контроле код плодить.
Старый 09.04.2007, 08:31   #8  
satir is offline
satir
Участник
Аватар для satir
 
77 / 10 (1) +
Регистрация: 09.06.2006
А зачем вообще понадобилось знать на каком поле сейчас курсор(кроме того, что необходимо передавать в какую-то функцию)? Возможно существует другое решение?
Старый 09.04.2007, 11:08   #9  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от satir Посмотреть сообщение
А зачем вообще понадобилось знать на каком поле сейчас курсор(кроме того, что необходимо передавать в какую-то функцию)? Возможно существует другое решение?
+1
Старый 09.04.2007, 12:37   #10  
balashov is offline
balashov
Участник
Аватар для balashov
 
78 / 10 (1) +
Регистрация: 01.09.2005
Цитата:
Сообщение от satir Посмотреть сообщение
А зачем вообще понадобилось знать на каком поле сейчас курсор(кроме того, что необходимо передавать в какую-то функцию)? Возможно существует другое решение?
Типа курсовик пишу
Воспроизведение компьютерного голоса из C\AL
На элементе стоиш F1 нажимаеш, а он тебе в динамик бормочет справку по элементу
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:52.