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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.10.2007, 03:34   #1  
Blog bot is offline
Blog bot
Участник
 
25,626 / 848 (80) +++++++
Регистрация: 28.10.2006
jinx: Microsoft Dynamics AX API – Teil 3 „Buchen von Auftr?gen“
Das Buchen von Auftr?gen in Microsoft Dynamics AX geschieht ?ber die Klasse „SalesFormLetter“bzw. einer ihrer konkretisierten (abgeleiteten) Klassen. Jeder Buchungstyp (z.B. Best?tigung,Lieferschein, Rechnung) ist durch eine eigene Klasse abgebildet, welche von der Basisklasse„SalesFormLetter“ abgeleitet ist (siehe Abbildung).

Um einen Auftrag per Programmcode zu buchen, muss ein Objekt der Klasse „SalesFormLetter“erstellt werden.
salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation);
Dies geschieht, wie Allgemein in Microsoft Dynamics AX ?blich, ?ber die “construct”Methode der Klasse. Als Parameter muss dieser Methode die gew?nschte Art der Buchung(z.B. Best?tigung, Lieferschein, Rechnung) angegeben werden. Die „construct“ Methodeerzeugt ein,der Buchungsart entsprechendes, Objekt und gibt dieses zur?ck (In diesemFall wird ein „SalesFormLetter_Confirm“ Objekt erzeugt).
Die eigentliche Buchung wird ?ber die Methode „update“ aufgerufen. Da dieser Methodealle f?r die Buchung notwendigen Daten als Parameter ?bergeben werden k?nnen, isteine einzelne Zuweisung von z.B. dem Auftrag, welcher gebucht werden soll, nicht notwendig.
Hierzu ein Beispiel:
//--- Buchen ohne Ausdruck ---
static void PostingConfimation(Args_args)
{
SalesFormLetter salesFormLetter;
SalesTable salesTable;
SalesId salesId;
PrintJobSettings printJobSettings;
;
//Angabedes Auftrags, welcher gebucht werden soll.
salesId = "00423_036";
salesTable = SalesTable::find(salesId);

//Bestimmen des Buchungstyps durch Angabe des DocumentStatus
salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation);

//Buchendes Auftrags (aber nicht Drucken).
salesFormLetter.update(salesTable,
SystemDateGet(),
SalesUpdate::All,
AccountOrder::None,
NoYes::No,
NoYes::No);
}

Bei diesem Beispiel ist gut zu sehen, dass f?r die Buchung eines Auftrags im Wesentlichennur zwei Schritte notwendig sind.
  1. ?ber die Methode „construct“ ein dem Buchungstyp einsprechendes Objekt erzeugen.
  2. ?ber den Aufruf der Methode „update“ den Auftrag buchen.
Nat?rlich k?nnen auch noch umfangreichere oder etwas speziellere Buchungsszenarienmit der Klasse „salesFormLetter“ abgebildet werden. So ist es z.B. m?glich, gleichbei der Buchung entsprechende Dokumente auszudrucken (einmal, mehrfach und in verschiedeneFormate), die Maske f?r die Buchung zu ?ffnen (damit der Benutzer Einfluss auf dieBuchung nehmen kann) oder die Buchung nicht direkt auszuf?hren, sondern diese f?rdie Stapelverarbeitung bereit zu stellen.
Damit es nicht zu komplex wird, kurz noch ein Beispiel zum Buchung und gleichzeitigenausdrucken entsprechender Dokumente.
//--- Buchen mit Ausdruck ---
static void PostingConfimation(Args_args)
{
SalesFormLetter salesFormLetter;
SalesTable salesTable;
SalesId salesId;
PrintJobSettings printJobSettings;
;
//Angabedes Auftrags, welcher gebucht werden soll.
salesId = "00423_036";
salesTable = SalesTable::find(salesId);
salesFormLetter = SalesFormLetter::construct(DocumentStatus::Confirmation);

//Buchendes Auftrags und drucken (Druckmedium aus Std. Einstellung).
salesFormLetter.update(salesTable,
SystemDateGet(),
SalesUpdate::All,
AccountOrder::None,
NoYes::No,
NoYes::Yes);

//2terAusdruck.
printJobSettings = new PrintJobSettings(salesFormLetter.printerSettingsFormletter(
PrintSetupOriginalCopy::Original));
//Wohinm?chten wir drucken (hier Datei).
printJobSettings.setTarget(PrintMedium::File);

//Inwelches Format soll gedruckt werden (hier PDF).
printJobSettings.format(PrintFormat::PDF);
printJobSettings.fileName(@"C:\Test_Order.pdf");

//?bergabeder Druckoptionen an das SalesFormLetter Objekt.
salesFormLetter.updatePrinterSettingsFormLetter(printJobSettings.packPrintJobSettings());

salesFormLetter.printJournal();
}


Es wird keine Haftung oder Gew?hrleistung auf die Richtigkeit der gemachten Angaben gegeben. Die Verwendung erfolgt auf eigene Gefahr. Copyright © Axel K?hn (Aku's AX Blog, http://blog.ak-home.net) and Mathias F??ler (jinx's AX Blog, http://starside.eu)

More...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX: Microsoft's strategy and vision for Dynamics AX and SOA Blog bot DAX Blogs 0 05.03.2009 18:05
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
jinx: Microsoft Dynamics AX API – Teil 2 „Erstellen von Bestellungen“ Blog bot DAX auf Deutsch 1 04.09.2007 11:46
jinx: Microsoft Dynamics AX API – Teil 1 „Erstellen von Auftr?gen“ Blog bot DAX auf Deutsch 0 17.08.2007 20:54
Сергей Герасимов: Что нового в Microsoft Dynamics AX 4.0 Blog bot DAX Blogs 0 16.01.2007 11:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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