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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2013, 10:55   #21  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
В свойствах грида нужно указывать главный датасорс, а не подчинённый. А какой у вас главный - сами смотрите. Pustik вам уже намекал на то что у вас подчинение датасурсов немного не стандартное
Буду знать, спасибо огромное!!) Надеюсь, в будущем пригодится)
Ну, стандартное мне не особо подходило)
Старый 14.02.2013, 10:51   #22  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Ребят, есть один информационный вопрос.

Скажите, что это за табличка такая? http://msdn.microsoft.com/en-us/libr...(v=ax.10).aspx

В базе axapt-ы её не нахожу, откуда она подтягивается?
На одной из таблиц есть lookup-метод, в котором в кач-ве параметра таблицы выступает она
Старый 14.02.2013, 10:52   #23  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Судя по комментарию из кода, это апи?

X++:
static void lookupAOTTables(FormStringControl _ctrl)
{
   // [url]http://msdn.microsoft.com/en-us/library/aa632599(v=ax.10).aspx[/url]
    // This table enables you to create, read, update, and delete X++ code and metadata.
 Ensure that the user has access to the Development Security Key (SysDevelopment) before calling this API.
    SysTableLookup              sysTableLookup = SysTableLookup::newParameters(tablenum(UtilidElements), _ctrl);
Старый 14.02.2013, 11:05   #24  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
AOT\System Documentation\Tables\UtilIdElements

Кое-что нового про AOT
За это сообщение автора поблагодарили: LeonDerCom (1).
Старый 14.02.2013, 11:14   #25  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
AOT\System Documentation\Tables\UtilIdElements

Кое-что нового про AOT

Спасибо большое! К сожалению повысить репутацию смогу только через 3 дня

Почитаю на досуге.
Старый 14.02.2013, 13:13   #26  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Ещё такой вопросик, выдаёт предупреждение:

Цитата:
Не все пути в validateWrite возвращают значение
Очень критично?

Вот код:

X++:
public boolean validateWrite()
{
    boolean ret;

    ret = super();
 
    ret = FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам
    if(!ret)
    return ret;
  }

Последний раз редактировалось user_ax; 14.02.2013 в 13:18.
Старый 14.02.2013, 13:46   #27  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Видимо, нет.
Старый 14.02.2013, 13:59   #28  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
1) Вы теряете значение ret = super(), затирая его результатом функции FieldSetupTable::SetupFormDataSource2(). Что будет если стандартная проверка super() вернёт ошибку (false), например из-за уникального индекса, а FieldSetupTable::SetupFormDataSource2 вернёт истину?

2) Для чего в вашем коде присутствует if?
Старый 14.02.2013, 14:45   #29  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
1) Вы теряете значение ret = super(), затирая его результатом функции FieldSetupTable::SetupFormDataSource2(). Что будет если стандартная проверка super() вернёт ошибку (false), например из-за уникального индекса, а FieldSetupTable::SetupFormDataSource2 вернёт истину?

2) Для чего в вашем коде присутствует if?
1)У нас есть некоторая настроечная таблица, благодаря которой можно группе пользователей дать определённые параметры доступа к форме. Это мне и нужно сделать.


Заккоментировал вызов super - предупреждение осталось.

2) Код не мой, разбираюсь в нём только.
Старый 14.02.2013, 15:17   #30  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Хм...интересно... возвратил ещё раз ret - предупреждение исчезло...
Старый 14.02.2013, 16:01   #31  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от user_ax Посмотреть сообщение
Заккоментировал вызов super - предупреждение осталось.
Это вы зря. Как теперь система будет контролировать обязательность полей и уникальность индексов?

Цитата:
Сообщение от user_ax Посмотреть сообщение
Хм...интересно... возвратил ещё раз ret - предупреждение исчезло...
Так всё-таки для чего там if?
Старый 14.02.2013, 16:12   #32  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
super я раскоменнтировал , проверка будет проходить.

if ? Честно, не знаю, для дополнительной проверки, может. Предыдущий программист так сделал, нужно для особой настроечной таблицы скорее всего.
Старый 14.02.2013, 16:20   #33  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от user_ax Посмотреть сообщение
if ? Честно, не знаю, для дополнительной проверки, может. Предыдущий программист так сделал, нужно для особой настроечной таблицы скорее всего.
Честно? Нет слов...
Старый 14.02.2013, 16:22   #34  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Честно? Нет слов...
Да, я тоже так подумал и поэтому удалил это.
Старый 14.02.2013, 16:25   #35  
LeonDerCom is offline
LeonDerCom
Участник
 
45 / 20 (1) +++
Регистрация: 08.10.2012
user_ax
В супере он полезет на валидацию полей самой таблицы - не стоит комментить его, перекрывая ret и не комментируя супер - сводите его работу на нет, поскольку результат проверки он вам не вернет.
Про if - получается он всегда будет возвращать (return) только отрицательное значение, иначе return (если true) не отработает и функция по умолчанию будет давать false (так как генерирует boolean по умолчанию false), то есть с этим условием всегда результат функции всегда false... И результат валидации - отрицательный.

update:
Цитата:
Сообщение от user_ax Посмотреть сообщение
1)У нас есть некоторая настроечная таблица, благодаря которой можно группе пользователей дать определённые параметры доступа к форме. Это мне и нужно сделать.


Заккоментировал вызов super - предупреждение осталось.

2) Код не мой, разбираюсь в нём только.
Судя по всему, у вас приоритет у последнего запроса - тогда код бы переделал вот так:
X++:
public boolean validateWrite()
{
    boolean ret;
    ;
    ret = FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам
    (ret==true?ret=super():ret);
    return ret;
  }

Последний раз редактировалось LeonDerCom; 14.02.2013 в 16:37.
Старый 14.02.2013, 16:42   #36  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от LeonDerCom Посмотреть сообщение
user_ax
В супере он полезет на валидацию полей самой таблицы - не стоит комментить его, перекрывая ret и не комментируя супер - сводите его работу на нет, поскольку результат проверки он вам не вернет.
Про if - получается он всегда будет возвращать (return) только отрицательное значение, иначе return (если true) не отработает и функция по умолчанию будет давать false (так как генерирует boolean по умолчанию false), то есть с этим условием всегда результат функции всегда false... И результат валидации - отрицательный.

update:

Судя по всему, у вас приоритет у последнего запроса - тогда код бы переделал вот так:
X++:
public boolean validateWrite()
{
    boolean ret;
    ;
    ret = FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам
    (ret==true?ret=super():ret);
    return ret;
  }
Спасибо большое за столь подобное разъяснение.

Но ваш код выдаёт синтаксическую ошибку...
Старый 14.02.2013, 17:04   #37  
LeonDerCom is offline
LeonDerCom
Участник
 
45 / 20 (1) +++
Регистрация: 08.10.2012
user_ax
Прошу прощения, невнимательность.
ret = (ret==true?ret=super():ret);
Старый 14.02.2013, 17:12   #38  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от LeonDerCom Посмотреть сообщение
user_ax
Прошу прощения, невнимательность.
ret = (ret==true?ret=super():ret);
Всё равно ругается, на строке 9, а это присвоение ret=super().
Старый 14.02.2013, 18:28   #39  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Что за жесть? Только тернарного оператора user_ax для полного счастья не хватает?
Всё гораздо проще:
X++:
public boolean validateWrite()
{
    boolean ret;
    ;

    ret = super();
 
    if (ret)
    {
        ret = FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам
    }

    return ret;
}
или вместо if можно покороче написать:
X++:
ret = ret && FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам
Это всё к слову о переприсваивании значения ret.

А по поводу предупреждения "Не все пути в validateWrite возвращают значение", user_ax, если всё ещё не поняли, то это так компилятор сообщает вам что вы забыли в конце написать return. В оригинальном вашем сообщении return распологался внутри оператора if (отсюда и все мои попытки обратить на него ваше внимание), а если значения переменных будут такими, что алгоритм не попадёт в этот if? Чем завершится работа функции validateWrite? Какое значение она вернёт?
Старый 14.02.2013, 19:11   #40  
LeonDerCom is offline
LeonDerCom
Участник
 
45 / 20 (1) +++
Регистрация: 08.10.2012
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Что за жесть? Только тернарного оператора user_ax для полного счастья не хватает?
Каюсь, нравится мне он за лаконичность. Хотя в Аксе 3 месяца нахожусь, но напоминает она мне гибрид C# и Delphi.
Вообще, мне непонятна идея засовывания проверки на разрешение редактирования в валидацию поля...
Если необходимо определить разрешение на редактирование всей записи, то в метод active() - <имядатасерса>.allowEdit(FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true));
Либо в modifiedField - если определенные поля... А валидацию оставить на решение ее конкретной задачи.
Теги
datafield, datasource, presence, свойства полей

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
sumitsaxfactor: Presence Information in DAX Blog bot DAX Blogs 0 06.05.2011 02:19
jinx: Dynamics AX &ndash; Query-Ranges und Filtereinstellungen des Benutzers Blog bot DAX auf Deutsch 0 04.02.2010 00:05
jinx: Microsoft Dynamics AX &ndash; Den zuletzt ausgew&auml;hlten Datensatz ermitteln Blog bot DAX auf Deutsch 0 24.10.2009 23:05
jinx: Dynamics AX LookupForms &ndash; FindValue und Range auf gleichem Feld Blog bot DAX auf Deutsch 0 18.09.2009 03:13
C# and AX Development: Updating the caller Form/DataSource Blog bot DAX Blogs 0 18.07.2009 02:28

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:16.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.