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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.02.2013, 11:06   #21  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
...
Пока что вставил свои условия в метод modified того контрола, в котором выбирается данное услвоие - отрабатывает лишь одно из двух...
не понял, что "одно из двух"?
скрывается один столбец вместо двух?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 11:11   #22  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от lev Посмотреть сообщение
не понял, что "одно из двух"?
скрывается один столбец вместо двух?
Нет, отрабатывает одно условие из двух...

Сделал сейчас метод на форме void visibleFields() и на датасоурсе void visibleCollums()

В void visibleCollums() прописал мои условия, а в void visibleFields() пишу

X++:
 SalesQuotationLine_ds.visibleCollums();
      if(smm.PhaseId==SalesQuotationLine.Status
        && smm.IsAskCode==NoYes::Yes)
    {
  SalesQuotationLine_StatusReasonCode.visible(true);
    }
Верно?

Последний раз редактировалось user_ax; 20.02.2013 в 11:16.
Старый 20.02.2013, 11:24   #23  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Отрабатывает только одно условие, например: Стоит статус строки продажи 09(Выпадающий список), для этого статуса снизу открывается доп.поле "код", если сменить статус на 14, должно открытся другое поле "id", но оно не открывается. А если вернутся на 09 - нужное поле, относящяеся к 09 появляется. И только если закрыть форму со статусом 14 и открыть снова - нужное поле id оторбазится.

А нужно, чтобы без закрыть\открыть форму: выбрал 09 - одно поле отобразилось, выбрал 14 - другое поле отобразилось, вот
Старый 20.02.2013, 11:26   #24  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
Нет, отрабатывает одно условие из двух...

Сделал сейчас метод на форме void visibleFields() и на датасоурсе void visibleCollums()

В void visibleCollums() прописал мои условия, а в void visibleFields() пишу

X++:
 SalesQuotationLine_ds.visibleCollums();
      if(smm.PhaseId==SalesQuotationLine.Status
        && smm.IsAskCode==NoYes::Yes)
    {
  SalesQuotationLine_StatusReasonCode.visible(true);
    }
Верно?
почти
покажите, что написано в методе visibleCollums (там так же должно быть управление видимостью).

и вместо:
X++:
 SalesQuotationLine_ds.visibleCollums();
      if(smm.PhaseId==SalesQuotationLine.Status
        && smm.IsAskCode==NoYes::Yes)
    {
  SalesQuotationLine_StatusReasonCode.visible(true);
    }
я бы написал:
X++:
SalesQuotationLine_StatusReasonCode.visible(smm.PhaseId==SalesQuotationLine.Status && smm.IsAskCode);
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 11:27   #25  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
А нужно, чтобы без закрыть\открыть форму: выбрал 09 - одно поле отобразилось, выбрал 14 - другое поле отобразилось, вот
поле - это столбец в таблице, я правильно понимаю?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 11:32   #26  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Да, вы абсолютно правильно понимаете, это столбец в таблице.

Вот код visibleCollums

X++:
void visibleCollums()
{
 //->18.02.2013 Если статус не 11  - поле код причины скрывать
    if(smm.PhaseId==SalesQuotationLine.Status
        && smm.IsAskCode==NoYes::Yes)
    {
        SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,StatusReasonCode)).visible(true);
    //    SalesQuotationLine_ds.write();
     //   SalesQuotationLine_ds.refresh();
    }
    else
    {
       SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,StatusReasonCode_ZTR)).visible(false);

    }

    //Если стоит галка "запрашивать основное предложение" -показывать основное предложение)
    if(smm.PhaseId == SalesQuotationLine.Status
        && smm.IsAskMainQuotationId == NoYes::Yes)
    {
       SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,QuotationId)).visible(true);
     //  SalesQuotationLine_ds.write();
     //  SalesQuotationLine_ds.refresh();

    }
   else
   {
      SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine, QuotationId)).visible(false);
   }

   //<- 18.02.2013
}


Цитата:
Сообщение от lev Посмотреть сообщение
я бы написал:
X++:
SalesQuotationLine_StatusReasonCode.visible(smm.PhaseId==SalesQuotationLine.Status && smm.IsAskCode);
То есть если не писать enum NoYes:Yes, он по умолчанию будет равен Yes? Не знал, учту!)
Старый 20.02.2013, 11:37   #27  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
X++:
void visibleCollums()
{
 //->18.02.2013 Если статус не 11  - поле код причины скрывать
    if(smm.PhaseId==SalesQuotationLine.Status
        && smm.IsAskCode==NoYes::Yes)
    {
        SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,[B]StatusReasonCode[/B])).visible(true);
    //    SalesQuotationLine_ds.write();
     //   SalesQuotationLine_ds.refresh();
    }
    else
    {
       SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,[B]StatusReasonCode_ZTR[/B])).visible(false);

    }

   ...
   }

   //<- 18.02.2013
}
я выделил жирным разные поля. Вы делаете видимым одно поле, а потом не видимым, другое, так и должно быть?

P.S. что то в теге не выделились слова жирным
в общем скрываете StatusReasonCode_ZTR, а показывает StatusReasonCode.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 11:39   #28  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от lev Посмотреть сообщение
я выделил жирным разные поля. Вы делаете видимым одно поле, а потом не видимым, другое, так и должно быть?

P.S. что то в теге не выделились слова жирным
в общем скрываете StatusReasonCode_ZTR, а показывает StatusReasonCode.

Нет, это я не до конца скопировал, поле одно StatusReasonCode_ZTR и там и там, и показывается и скрывается.
Старый 20.02.2013, 11:42   #29  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
Нет, это я не до конца скопировал, поле одно StatusReasonCode_ZTR и там и там, и показывается и скрывается.
у вас в методе visibleCollums все уже написано.
вот это лишние, в методе visibleFields (SalesQuotationLine_StatusReasonCode - это же тоже столбец, да??)
X++:
if(smm.PhaseId==SalesQuotationLine.Status
        && smm.IsAskCode==NoYes::Yes)
    {
  SalesQuotationLine_StatusReasonCode.visible(true);
    }
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 11:44   #30  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от lev Посмотреть сообщение
у вас в методе visibleCollums все уже написано.
вот это лишние, в методе visibleFields (SalesQuotationLine_StatusReasonCode - это же тоже столбец, да??)
X++:
if(smm.PhaseId==SalesQuotationLine.Status
        && smm.IsAskCode==NoYes::Yes)
    {
  SalesQuotationLine_StatusReasonCode.visible(true);
    }
То есть в visibleFields только указывать какой контрол скрыть/показать? или поля датасоурса?


Нет, SalesQuotationLine_StatusReasonCode - это контрол формы, а поле датасоурса назыается просто StatusReasonCode. Вы ведь сказали, что в visibleFields скрывать, показывать контролы, а в visibleCollums - поля датасоурса, или я вас неправильно понял?
Старый 20.02.2013, 11:55   #31  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
То есть в visibleFields только указывать какой контрол скрыть/показать? или поля датасоурса?


Нет, SalesQuotationLine_StatusReasonCode - это контрол формы, а поле датасоурса назыается просто StatusReasonCode. Вы ведь сказали, что в visibleFields скрывать, показывать контролы, а в visibleCollums - поля датасоурса, или я вас неправильно понял?
судя по названию SalesQuotationLine_StatusReasonCode, это контрол грида, правильно?
в гриде отображаются поля датасорса (ну и display \ edit методы, и в ручную можно поля добавить, но в основном поля датасорса).
если есть возможность, выложите принтскрин формы где обведите контрол SalesQuotationLine_StatusReasonCode.

З.Ы. на всякий случай, под контролом формы, я понимаю объект, добавленный на форму, который не относится к датасорсу.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 12:00   #32  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от lev Посмотреть сообщение
судя по названию SalesQuotationLine_StatusReasonCode, это контрол грида, правильно?
в гриде отображаются поля датасорса (ну и display \ edit методы, и в ручную можно поля добавить, но в основном поля датасорса).
если есть возможность, выложите принтскрин формы где обведите контрол SalesQuotationLine_StatusReasonCode.

З.Ы. на всякий случай, под контролом формы, я понимаю объект, добавленный на форму, который не относится к датасорсу.

Это StringEdit на гриде, источником которого является поле таблицы SalesQuotationLine датасоурса.

Вот.
Под обведённым Статусом сейчас есть поле Код причины, вот оно должно отображаться, когда статус 09 или другой(в зависимости от enum-а), а когда хочу переключить на 14, например, оно должно пропасть и появится другое.

Этот объект относится к датасоурсу, как я понимаю, ведь оно связано с полем моим ))
Миниатюры
Нажмите на изображение для увеличения
Название: 11.PNG
Просмотров: 252
Размер:	46.3 Кб
ID:	8071  
Старый 20.02.2013, 12:21   #33  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
Это StringEdit на гриде, источником которого является поле таблицы SalesQuotationLine датасоурса.

Вот.
Под обведённым Статусом сейчас есть поле Код причины, вот оно должно отображаться, когда статус 09 или другой(в зависимости от enum-а), а когда хочу переключить на 14, например, оно должно пропасть и появится другое.

Этот объект относится к датасоурсу, как я понимаю, ведь оно связано с полем моим ))
Если поле "Код причины" - это поле дата сорса, тогда для него надо писать скрытие и показ так же в методе visibleCollums.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 12:33   #34  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от lev Посмотреть сообщение
Если поле "Код причины" - это поле дата сорса, тогда для него надо писать скрытие и показ так же в методе visibleCollums.
Все поля, которые я хочу скрывать\показывать (их 2) это поля датасоурса.


То есть мой метод visibleCollums должен выглядеть так?

X++:
void visibleCollums()
{
 // 18.02.2013 Если статус не 11  - поле код причины скрывать
    if(smm.PhaseId==SalesQuotationLine.Status
        && smm.IsAskCode==NoYes::Yes)
    {
        SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,StatusReasonCode)).visible(true);
       SalesQuotationLine_ds.write();
        SalesQuotationLine_ds.refresh();
    }
    else
    {
       SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,StatusReasonCode)).visible(false);

    }

    //Если стоит галка "запрашивать основное предложение -показывать основное предложение)
    if(smm.PhaseId == SalesQuotationLine.Status
        && smm.IsAskMainQuotationId == NoYes::Yes)
    {
       SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,QuotationId)).visible(true);
       SalesQuotationLine_ds.write();
       SalesQuotationLine_ds.refresh();

    }
   else
   {
      SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine, QuotationId)).visible(false);
   }

   // 3816 18.02.2013
}
А что писать в методе modified поля Статус тогда?
это уже ведь будет не element, а Table_ds
Старый 20.02.2013, 12:36   #35  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
Все поля, которые я хочу скрывать\показывать (их 2) это поля датасоурса.


То есть мой метод visibleCollums должен выглядеть так?

X++:
void visibleCollums()
{
 // 18.02.2013 Если статус не 11  - поле код причины скрывать
    if(smm.PhaseId==SalesQuotationLine.Status
        && smm.IsAskCode==NoYes::Yes)
    {
        SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,StatusReasonCode)).visible(true);
       SalesQuotationLine_ds.write();
        SalesQuotationLine_ds.refresh();
    }
    else
    {
       SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,StatusReasonCode)).visible(false);

    }

    //Если стоит галка "запрашивать основное предложение -показывать основное предложение)
    if(smm.PhaseId == SalesQuotationLine.Status
        && smm.IsAskMainQuotationId == NoYes::Yes)
    {
       SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,QuotationId)).visible(true);
       SalesQuotationLine_ds.write();
       SalesQuotationLine_ds.refresh();

    }
   else
   {
      SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine, QuotationId)).visible(false);
   }

   // 3816 18.02.2013
}
А что писать в методе modified поля Статус тогда?
это уже ведь будет не element, а Table_ds
SalesQuotationLine_ds.write(); - это не надо здесь.
вызывайте element, ведь в нем вызывается нужный нам метод
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 12:41   #36  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от lev Посмотреть сообщение
SalesQuotationLine_ds.write(); - это не надо здесь.
вызывайте element, ведь в нем вызывается нужный нам метод
write убрал.

а, visibleFields, да, но тогда что в нём писать??


X++:
SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,StatusReasonCode_ZTR)).visible(smm.PhaseId ==SalesQuotationLine.Status_ZTR && smm.IsAskCode_ZTR);

SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine, QuotationId)).visible(smm.PhaseId ==SalesQuotationLine.Status_ZTR && smm.IsAskMainQuotationId_ZTR);
??

Последний раз редактировалось user_ax; 20.02.2013 в 12:44.
Старый 20.02.2013, 12:44   #37  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
write убрал.

а, visibleFields, да, но тогда что в нём писать??


X++:
SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine,StatusReasonCode).visible(true);
SalesQuotationLine_ds.object(fieldnum(SalesQuotationLine, QuotationId)).visible(true);
??
на данный момент, только SalesQuotationLine_ds.visibleColums();
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 12:46   #38  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Работает почти так как надо.
Если при открытии статус стоит который по условию - поле должно отображаться при открытии формы, но оно отображается только если изменить статус на любой, а потом на нужный...

Что ж такое-то(
Старый 20.02.2013, 12:47   #39  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от user_ax Посмотреть сообщение
Работает почти так как надо.
Если при открытии статус стоит который по условию - поле должно отображаться при открытии формы, но оно отображается только если изменить статус на любой, а потом на нужный...

Что ж такое-то(
перекройте в корневых методах формы метод init() и в нем после супера надо вызвать метод visibleFields().
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 20.02.2013, 12:48   #40  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от user_ax Посмотреть сообщение
Работает почти так как надо.
Если при открытии статус стоит который по условию - поле должно отображаться при открытии формы, но оно отображается только если изменить статус на любой, а потом на нужный...

Что ж такое-то(
в методе active() также вызывайте свой новый метод visibleFields()
метод init() оставьте в покое.
__________________
// no comments
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
условие с датой в Query romanja DAX: Программирование 5 07.04.2011 10:25
Условие по агрегатам в запросе cherv DAX: Программирование 5 14.08.2006 14:55
Глючит условие в запросе Sada DAX: Программирование 5 28.04.2006 05:19
Условие на поле NotEmpty Logger DAX: Программирование 3 12.05.2005 12:32
Как в range на одно и тоже контейнерное поле поставить условие: "исключ." && like Pustik DAX: Программирование 15 03.07.2004 11:54

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

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

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