D365 Метод нажал на командную кнопку - PullRequest
1 голос
/ 14 июня 2019

В D365 Finance and Operations в форме TaxExempt, General Section есть несколько полей, таких как CodeType, CodeName, CompanyList (раскрывающееся меню).Пользователь должен ввести желаемые значения (типы и имена).В следующем разделе Property VAT - настройка есть командная кнопка New.При нажатии на эту кнопку она должна создать строку со значениями, которые взяты из общего раздела: Компания (из списка выбора компании), Код налога с продаж (из типа кода) и Имя (из Кодового имени).На данный момент он создает только пустую строку.Есть ли какой-нибудь совет, как это можно сделать?

enter image description here

1 Ответ

3 голосов
/ 14 июня 2019

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

[DataSource]
class TaxExemptCodeTable
{
    /// <summary>
    /// Default values from other form controls/fields on new record creation
    /// </summary>
    public void initValue()
    {
        super();

        TaxExemptCodeTable.Value = CustomFormControl.text();

        //etc.
    }
}

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

Если это так, вы можете посмотреть значения по умолчанию для события OnCreated, которое сработает после предыдущих событий, и "base" / "из исходного кода", которые могут уже существовать в этих методах и /или события.Это перезапишет любую существующую логику по умолчанию / init со значениями, указанными вами в событии oncreated, а также предоставит вам контекст формы для работы (в отличие от событий на уровне таблицы, которые не имеют элементов управления / значений формы, которые кажутсяобязательно для ваших требований)

enter image description here

...