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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.07.2008, 01:12   #1  
Qaz Qwerty is offline
Qaz Qwerty
китайский стажер
 
152 / 37 (2) +++
Регистрация: 12.05.2008
Добавление новых строк в SalesLine
Пришлось написать коротенькую шпаргалку, у которой две цели:
1) При добавлении новых полей в SalesLine и SalesTable поддерживать стандартный механизм обновления строк из заголовка.
2) Поддерживать обновление новых полей при работе с AIF.

Не думаю, что это великие знания, но может кому-нибудь полезно будет, раз мне это было полезно.

Собрано из двух статей:
- (http://www.fotovallescrivia.it/publi...rder-lines.htm
- http://axapta.mazzy.ru/lib/salestable2line/

На английском

1. Add new fields to SalesTable and place new fields which should be updated in SalesLine to group HeaderToLineUpdate.

2. Add new fields to SalesLine.

3 How to use standard mechanism to update fields in Salesline from Salestable
3.1 SalesTable2LineField class, modify the LineUpdateDescription() method. Add the new fields from SalesTable you want to copy to SalesLines. SalesTable2LineField::lineDescription(). The text line will be used in the dialog for lines updating.
eg:

X++:
case fieldnum(salesTable, NewField)     :
            return fieldid2pName(tableNum(SalesLine), fieldnum(salesLine,  NewField));
            break;
3.2 Reinitialize table SalesTable2LineParameters. Clear this table; next create and run job which has one command: SalesTable2LineParameters::initiate();

3.3 Add instructions into method SalesLineType::initFromSalesTable() to initialize values in order lines used by default. The method will be called when you create a new line.

4. Next for AIF:

4.1 AxSalesTable class: Add a parameter set and get method

eg:

X++:
public NewField NewField (NewField  _NewField  = Value)
{
    if (!prmisdefault(_NewField ))
    {
        this.setField(fieldNum(SalesTable, NewField ), _NewField );
    }
    return SalesTable.NewField ;
}
and

X++:
protected void setNewField ()
{
    if (this.isMethodExecuted(funcName()))
    {
        return;
    }
    if (this.isFieldSetExternally(fieldNum(SalesTable, NewField )))
    {
        if (this.isSetMethodsCalledFromSave())

        {
            return;
        }
    }
    else
    {
        if (this.isFieldSet(fieldNum(SalesTable, NewField )))
        {
            return;
        }
        if (!this.NewField ())
        {
            if (this.isSetMethodsCalledFromSave())
            {
                this.NewField (Value);
            }
        }
    }
}

4.2 Do the same for class axSalesLine:

eg:

X++:
public NewField NewField(NewField _NewField= Value)
{
    if (!prmisdefault(_NewField))
    {
        this.setField(fieldNum(SalesLine, NewField), _NewField);
    }
    return salesLine.NewField;
}
And

X++:
protected void SetNewField()
{
    if (this.isMethodExecuted(funcName(), fieldNum(SalesLine, NewField)))
    {
        return;
    }
    this.setAxSalesTableFields();
    if (this.isAxSalesTableFieldsSet() || 
this.AxSalesTable().isFieldModified(fieldNum(SalesTable, NewField)))
    {
        this.NewField(this.AxSalesTable().NewField());
    }
}
4.3 Adjust the method SetTableFields() in the axSalesLine class. Add the call of the new method NewField().
За это сообщение автора поблагодарили: Logger (1), jeky (1).
Теги
aif, документация, заказ на продажу, как правильно, программно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Копирование строк из InventJournalTrans в SalesLine Petruccio DAX: Программирование 11 29.09.2006 11:40
Добавление строк в "Фильтр записей" Vby DAX: Программирование 6 05.06.2006 11:31
Добавление строк при изменении значения контрола 36AC DAX: Программирование 3 11.08.2005 12:56
Добавление строк в существующую таблицу! Kolbin_Mihail DAX: Программирование 9 18.03.2005 13:48
Документация . Встроенная. Собственная. Изменение. Добавление новых объектов. Surok DAX: Программирование 0 29.10.2002 16:47

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

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

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