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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.11.2004, 11:23   #1  
johndoe is offline
johndoe
Участник
 
88 / 10 (1) +
Регистрация: 15.10.2004
Адрес: Москва
Thumbs up
Господа!

Еще один элементарный вопрос, но для начала опишу антураж. Есть форма (нестандартная карточка), на которой совмещена информация из двух таблиц (главной - текстовые поля и подчиненной - субформа); есть кнопка, по нажатию на которую я вызываю метод субформы, удаляющей отдельные записи подчиненной таблицы. Здесь все OK.

Теперь проблема: удалив нужные записи, я хочу позиционироваться в конкретной строке субформы (выбрать конкретную запись подчиненной таблицы). Программно ищу ее первичный ключ и вызываю функцию GET, при этом курсор (проверено экспериментально) еще стоит на только что удаленной мной записи. Беда же состоит в том, что вызов GET приводит к появлению окна "Вы хотите переименовать запись?" Ясно, что ответив "да", я получу ошибку (текущей записи нет), ответив "нет", я добьюсь своего. Но как сделать так, чтобы не отвечать "нет" и не получать подобных радостей на экране?

Заранее спасибо.

P.S. Пробовал COMMIT перед GET - не помогает. RESET делать не могу - слетит нетривиальная user-defined сортировка, да и не помогает (против окна).
Старый 10.11.2004, 11:32   #2  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Для начала предлагаю сделать currform.update(true)
Старый 10.11.2004, 11:46   #3  
johndoe is offline
johndoe
Участник
 
88 / 10 (1) +
Регистрация: 15.10.2004
Адрес: Москва
Цитата:
Сообщение от Dzemon
Для начала предлагаю сделать currform.update(true)
IMHO, достаточно CurrForm.UPDATE(FALSE)... Более того, такой вариант уже помогает!

Спасибо за оперативный ответ. Респект!
Старый 10.11.2004, 21:40   #4  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Рискну предложить использовать функцию SETRECORD:
Цитата:
SETRECORD (Form)
Use this function to select the current record shown on the form.

Form.SETRECORD(Record)
Form

Data type: form

Record

Data type: record

The record you want to select as the current record.

Comments
You can use this function to select a record to display when the user opens the form. If you use this function for this purpose, it will override the SourceTableRecord property "Saved" setting: the current record will not be saved in the setup file.
К примеру, вот так:
CurrForm.<Имя субформы>.FORM.SETRECORD(<Record>);

Или я не правильно понял вопрос?
__________________
Русский человек славится своим умением находить выход из самых трудных ситуаций, но еще более он славится своим умением находить туда вход.
Старый 11.11.2004, 10:05   #5  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
Во всех подобных случаях надо использовать CurrForm.UPDATE(FALSE), что и доказал johndoe
__________________
С уваженем,
rootadmin
 


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

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

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