Страница 1 из 2

Отмена добавления эл-та в справочник

СообщениеДобавлено: Сб апр 25, 2009 8:31 pm
stakanov
Создал в новой бизнес-схеме справочник "Склады" с единственным элементом "Наименование". Создал форму для ввода, как описано в статье из 98 номера ЛинксФормат, с двумя кнопками "Принять" и "Отмена". При нажатии на "Принять" все хорошо, а вот при нажатии на "Отмена" форма ввода закрывается, но в справочнике появляется пустой элемент.

ЗЫ. У кнопки Отмена, как и полагается отмечено "Простое действие" и "Закрыть".

Re: Отмена добавления эл-та в справочник

СообщениеДобавлено: Сб апр 25, 2009 11:44 pm
anton
Код: Выделить всё
function on_formstop()
{
   if(!saved)
    {
   var ans = MessageBox.warning( "Сохранить элемент??", MessageBox.Yes, MessageBox.No );
   if (ans == MessageBox.Yes)
       Update();   
   else if(!GetMode())
   {
       Current().Delete();
   }
    }
    return true;   
}

Re: Отмена добавления эл-та в справочник

СообщениеДобавлено: Сб апр 25, 2009 11:46 pm
anton
Переменная saved должна быть описана и инициализирована примерно так
Код: Выделить всё
var saved = false;

Re: Отмена добавления эл-та в справочник

СообщениеДобавлено: Вс апр 26, 2009 4:06 pm
stakanov
спасибо :)

только может тогда и не стоит связываться с предопределенными простыми действиями, а сразу на кнопки свои создавать?

например через on_button()

Re: Отмена добавления эл-та в справочник

СообщениеДобавлено: Вс апр 26, 2009 7:31 pm
anton
Лично я так и делаю. У меня wActionButton не используется практически нигде

Re: Отмена добавления эл-та в справочник

СообщениеДобавлено: Пн апр 27, 2009 10:01 am
stakanov
Пожалуй мне так тоже проще будет :-)

У меня тут вопросу по приведённому примеру.

В примере есть вызовы методов Update() и GetMode(). Не понятно чьи они. Точнее если не указывать явно объект, то чей метод будет вызываться по-умолчанию.

Так же Current().Delete(). Интуитивно понятно, что при создании формы я указал, что это Диалог редактирования элемента и Current() здесь возвращает текущий элемент справочника. Так ли это? А что он вернет в других случаях? А как получить текущий объект-диалог?

Re: Отмена добавления эл-та в справочник

СообщениеДобавлено: Пн апр 27, 2009 1:31 pm
antares0
В примере есть вызовы методов Update() и GetMode(). Не понятно чьи они. Точнее если не указывать явно объект, то чей метод будет вызываться по-умолчанию.

Будет вызываться метод текущего объекта. Поскольку вы пишите этот код в модуле формы, то соответсвено методы формы - экземпляра aForm. Стоит посмотреть их в DoxyGen справке.
Так же Current().Delete(). Интуитивно понятно, что при создании формы я указал, что это Диалог редактирования элемента и Current() здесь возвращает текущий элемент справочника. Так ли это?

DoxyGen/aForm писал(а): aForm::Current ( ) [slot]
ScriptAPI. Возвращает ссылку на бизнес объект, редактируемый данной экранной формой.
По свему назначению метод аналогичен SelectByCurrent()
Возвращает:
- текущий объект формы

Под объектом понимается справочник или документ к которому относиться форма.
А что он вернет в других случаях?

Получите сообщение что такого метода не существует. Это метот aForm и соответсвенно работает только с формами.
А как получить текущий объект-диалог?

текуший объект вызывается как this.
Напр. this.Current() то же самое что и Current().

Re: Отмена добавления эл-та в справочник

СообщениеДобавлено: Пн апр 27, 2009 6:33 pm
stakanov
все понял :-) спасибо :-)

Re: Отмена добавления эл-та в справочник

СообщениеДобавлено: Пт июл 24, 2009 11:08 am
xoy
stakanov писал(а):Создал в новой бизнес-схеме справочник "Склады" с единственным элементом "Наименование". Создал форму для ввода, как описано в статье из 98 номера ЛинксФормат, с двумя кнопками "Принять" и "Отмена". При нажатии на "Принять" все хорошо, а вот при нажатии на "Отмена" форма ввода закрывается, но в справочнике появляется пустой элемент.

ЗЫ. У кнопки Отмена, как и полагается отмечено "Простое действие" и "Закрыть".


Вам не кажется, что данный вопрос не мешало бы отправить в багтрекер. Кстати он вообще есть?

Re: Отмена добавления эл-та в справочник

СообщениеДобавлено: Пт июл 24, 2009 11:26 am
radist