7. Mai 2007 14:51
7. Mai 2007 14:56
7. Mai 2007 17:16
8. Mai 2007 16:40
Frank hat geschrieben:
Natürlich kannst Du das auch wie von dir geplant machen. Die Übergabe des Codefeldes ist nicht das Problem. Füge das Feld einfach in Table 36 für den Auftrag und 112 für die Geb. Rechnung mit der gleichen Feldnummer sowie dem gleichen Datentyp (inkl. Feld-Länge) ein, und das entsprechende Transferfields in der Codeunit 80 übernimmt für dich die Übergabe zwischen den Belegen.
Gruß
Frank
8. Mai 2007 20:21
find('+')
8. Mai 2007 21:03
elTorito hat geschrieben:Habe aber nun schon erste Problemchen, wollte auf das Feld "Customer Order No." filtern, und mit dem Auftragsdatum des letzten gefunden arbeiten.
SETCURRENTKEY("Customer Order No.","Order Date");
SETFILTER("Customer Order No.", 'WAU*');
IF FIND('+') THEN BEGIN
... Letztes Auftragsdatum gefunden
... und nun der restliche Code
END;
9. Mai 2007 11:08
mikka hat geschrieben:
- Code:
find('+')
Es währe einfacher wenn du genauer Beschreiben würdest, was du machen willst bzw. was das Ziel sein soll!
Gruß Mikka
9. Mai 2007 11:51
SETCURRENTKEY("Customer Order No.");
SETFILTER("Customer Order No.", 'WAU*');
IF FIND('-') THEN
REPEAT
MachIrgendWasMitDemRecord();
//Sprung zum letzten Datensatz dieser Gruppe
SETFILTER("Customer Order No.", "Customer Order No.");
FIND('+');
SETFILTER("Customer Order No.", 'WAU*');
UNTIL (NEXT = 0);
9. Mai 2007 11:57
10. Mai 2007 13:44
10. Mai 2007 13:57
10. Mai 2007 14:09
Michael Schumacher hat geschrieben:Dazu brauchst du die Funktion Calcdate (Syntax in der Onlinehilfe) und eine Variable vom Typ Date zum Zwischenspeichern des Ergebnisses.
10. Mai 2007 14:11
10. Mai 2007 14:17
NextOrderDate:=CALCDATE(OrderInterval,"Sales Invoice Header"."Order Date");
10. Mai 2007 15:47
10. Mai 2007 18:14
11. Mai 2007 11:00
11. Mai 2007 11:08
11. Mai 2007 11:16
11. Mai 2007 14:47
Michael Schumacher hat geschrieben:sollen die Auftrüge zum neuen Auftragsdatum anhand dieser Tabelle automatisch erstellt werden?
Wenn ja, würde ich so vorgehen:
In der Tabelle:
im Onvalidate-Trigger des Felds mit der Dateformula den Calcdatebefehl bezogen auf das Flowfield mit der letzten Auftragsnummer
In der Funktion die die neuen Aufträge erzeugt, den Befehl bezogen auf das Feld neues Auftragsdatum.
Wenn du in der Tabelle das Feld mit dem Intervall änderst, wird das neue Datum neu berechnet. Wenn der Auftrag das erste mal aufgenommen wurde, steht im Intervall ja noch nichts drin, wenn eine Funktion den Auftrag in diese Tabelle schreibt, füllst Du das Intervallfeld mit Validate, dann wird das neue Datum auch berechnet. Im C/AL-Code aber nicht den Calcfields-Befehl vergessen!
Wenn nun die Funktion zum erstellen des neuen Auftrags läuft, dann schreibst du nach dem erstellen des Auftrags den neu berechneten Wert des nächsten Auftragsdatums direkt in das Feld oder du stößt nach dem Commit des neuen Auftrags den Validate vom Intervallfeld an. Sicherer ist aber die erste Variante, weil du dann zwischendurch kein Commit brauchst.
15. Mai 2007 15:51
15. Mai 2007 17:00
elTorito hat geschrieben:Kann ich das irgendwie konvertieren/formatieren?
CheckOrderInterval := EVALUATE(OrderInterval, FORMAT("Code OrderInterval"));
VALIDATE("OrderInterval", OrderInterval);
15. Mai 2007 19:34
IF EVALUATE(OrderInterval,"Code OrderInterval") THEN
VALIDATE(OrderInterval);
16. Mai 2007 15:17
Michael Schumacher hat geschrieben:Ich würde das im OnValidate-Trigger von "Code OrderInterval" so lösen:
- Code:
IF EVALUATE(OrderInterval,"Code OrderInterval") THEN
VALIDATE(OrderInterval);
17. Mai 2007 02:05