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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.10.2013, 19:04   #1  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Каким образом на request form-е сделать хайд определенного Controla при условии? и возможно ли это?
к примеру

if type=1 then
control№1234.visible(TRUE)
else
control№1234.visible(FALSE)

возможно ли это?
Старый 23.10.2013, 23:24   #2  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
да, написать надо на OnOpenForm самой реквест формы
или вопрос в том, как передать флаг в отчет?
Старый 24.10.2013, 10:53   #3  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Триггер OnOpenForm - RequestOptionForm
Код:
IF ContrType=0 THEN
RequestOptionsForm.control.VISIBLE(TRUE)
  ELSE 
RequestOptionsForm.control.VISIBLE(FALSE);
при выборе типа 1,0, ничео не происходит, контрол не скрывается..
Старый 24.10.2013, 11:04   #4  
Constantine_imported is offline
Constantine_imported
Участник
 
126 / 10 (1) +
Регистрация: 28.04.2011
Я так понимаю, что этот метод работает на обычных формах и только на контролах, которые привязаны к какому-то полю в таблице. Если к контролу привязана какая-то переменная или речь идет о реквешнформ, то у меня не получалось управлять их видимостью.
Старый 24.10.2013, 11:30   #5  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Цитата:
Сообщение от Constantine Посмотреть сообщение
Я так понимаю, что этот метод работает на обычных формах и только на контролах, которые привязаны к какому-то полю в таблице. Если к контролу привязана какая-то переменная или речь идет о реквешнформ, то у меня не получалось управлять их видимостью.
Спасибо за советы)

вот еще вопросик, значение как обнулить, после выбора?
к примеру.
я выбираю type=1;
потом иду на лукап, выбираю то, по чему делаю фильтр.
после этих действий я выбираю type=0;, но на строке значение остается.. с type=1
Старый 24.10.2013, 11:48   #6  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Ребята,
Старый 24.10.2013, 12:19   #7  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
переменная:='';
Старый 24.10.2013, 14:35   #8  
zuzka is offline
zuzka
Участник
Аватар для zuzka
 
131 / 10 (1) +
Регистрация: 29.07.2013
а управлять видимостью на тригере OnAfterValidate контрола по которому проверяете не получится?
__________________
Как только вы проиграете, все ваши прошлые победы забудут.
Старый 24.10.2013, 15:39   #9  
Constantine_imported is offline
Constantine_imported
Участник
 
126 / 10 (1) +
Регистрация: 28.04.2011
Цитата:
Сообщение от zuzka Посмотреть сообщение
а управлять видимостью на тригере OnAfterValidate контрола по которому проверяете не получится?
Тут вопрос не в том, откуда управлять, а как управлять? Не получается обратиться к свойствам контрола, если он не привязан к какому-либо полю в таблице.
Старый 24.10.2013, 17:39   #10  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Цитата:
Сообщение от Constantine Посмотреть сообщение
Цитата:
Сообщение от zuzka Посмотреть сообщение
а управлять видимостью на тригере OnAfterValidate контрола по которому проверяете не получится?
Тут вопрос не в том, откуда управлять, а как управлять? Не получается обратиться к свойствам контрола, если он не привязан к какому-либо полю в таблице.
Да все должно получиться, только надо контролу имя сменить ручками (прямо вот написать ему в свойствах в Name что-нибудь свое)
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 24.10.2013, 19:49   #11  
Constantine_imported is offline
Constantine_imported
Участник
 
126 / 10 (1) +
Регистрация: 28.04.2011
Цитата:
Сообщение от Дуд Посмотреть сообщение
Да все должно получиться, только надо контролу имя сменить ручками (прямо вот написать ему в свойствах в Name что-нибудь свое)
А ларчик до смешного просто открывался, спасибо. />
Старый 25.10.2013, 10:36   #12  
zuzka is offline
zuzka
Участник
Аватар для zuzka
 
131 / 10 (1) +
Регистрация: 29.07.2013
Цитата:
Сообщение от Дуд Посмотреть сообщение
Да все должно получиться, только надо контролу имя сменить ручками (прямо вот написать ему в свойствах в Name что-нибудь свое)
я еще обычно меняю не свойство контрола а булевой переменной присваиваю true/false - а вот переменная уже стоит в свойствах контрола (в RTC по другому никак, а не хочется делать различия в логике работы одного и того же функционала).
__________________
Как только вы проиграете, все ваши прошлые победы забудут.
Старый 25.10.2013, 12:05   #13  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Рябзи, получилось, за минуту сделать это все, утро вечера мудренее)

вообщем добавил два поля.
одно которое скрываем. SourceExpr - name(переменная глобалс)
второе Type(visible,hide), от которого зависит, скрываем или показываем. SourceExpr - type (переменная глобалс OptionString)
на афтевалидейте Type
Код:
IF type=type::visible THEN
RequestOptionsForm.name.VISIBLE(TRUE)
ELSE
RequestOptionsForm.name.VISIBLE(FALSE);
и две кнопки, для разнообразия)
две кнопки

visible
на он пуше
Код:
RequestOptionsForm.name.VISIBLE(TRUE);
hide
на он пуше
Код:
RequestOptionsForm.name.VISIBLE(FALSE);

но вообще реализовал вот так.

мне надо было сделать, зависимо от выбора Customer/Vendor сделать вызов лукапа
изначально на ContrCode,Customer/Vendor (чтоб их выбирать)

дальше, зависимо от того, выбрал я Customer/Vendor, сделать лукап номер договора DocContr(на реквест форме написано "документа", ибо завтыкал)).

лукап поля ContrCode - Выбор(Кастомера или Вендора)

Код:
IF ContrType=0 THEN
BEGIN
IF Customer.GET(ContrCode) THEN;
IF FORM.RUNMODAL(0,Customer)=ACTION::LookupOK THEN
ContrCode:=Customer."No."
END;

IF ContrType=1 THEN
BEGIN
IF Vendor.GET(ContrCode) THEN;
IF FORM.RUNMODAL(0,Vendor)=ACTION::LookupOK THEN
ContrCode:=Vendor."No."
END;
на лукапе поля DocContr
Код:
CASE ContrType OF
  ContrType::Customer:
  BEGIN
    CustomerAgr.RESET;

    IF CustomerAgr.FINDFIRST THEN;
    CustomerAgr.SETRANGE(CustomerAgr."Customer No.",Customer."No.");
    IF FORM.RUNMODAL(0,CustomerAgr)=ACTION::LookupOK THEN
       DocContr:=CustomerAgr."No.";
  END;
END;

CASE ContrType OF
  ContrType::Vendor:
  BEGIN
    VendorAgr.RESET;

    IF VendorAgr.FINDFIRST THEN;
    VendorAgr.SETRANGE(VendorAgr."Vendor No.",Vendor."No.");
    IF FORM.RUNMODAL(0,VendorAgr)=ACTION::LookupOK THEN
       DocContr:=VendorAgr."No.";
  END;
END;
ну и что получил.
Старый 25.10.2013, 16:14   #14  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Ребята, вопрос, как отсортировать при выгрузке по возрастанию даты?
1,2,3,4, и тд?
Старый 25.10.2013, 17:27   #15  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
При выгрузке чего и откуда?

Вообще Навижн, в отличие от Экселя, умеет сортировать только по ключам.
Т.е. самый простой путь - создать в табличке ключ, в ключ вставить эту дату
И не забыть в свойствах ключа отключить MaintainSQLIndex, т.к. ключ нужен только для сортировки

Есть более сложные пути
Типа например сначала пихать данные во временную таблицу в нужном порядке, а потом уже с ней работать
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 25.10.2013, 17:37   #16  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
Цитата:
Сообщение от Fierce Посмотреть сообщение
на афтевалидейте Type
Код:
IF type=type::visible THEN
RequestOptionsForm.name.VISIBLE(TRUE)
ELSE
RequestOptionsForm.name.VISIBLE(FALSE);
сокращаем так
Код:
CurrForm.name.VISIBLE(type=type::visible);
должно сработать, можно, чтоб уж наверняка, дописать
CurrForm.UPDATE(FALSE);
 


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

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

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