Paketanzahl in SalesHeader schreiben

12. November 2009 12:27

Hallo Zusammen,

ich komm bei mir leider nicht weiter. Ich will vor dem buchen eines Warenausgangs eine Abfrage starten, wo die Paketanzahl des jeweiligen Auftrages eingegeben werden kann. Die Information muss aber vor dem buchen in die Tabelle Sales Header eingetragen werden - da ich die Information schon dort benötige und nicht erst z.B. in Sales Shipment Header

Es passt soweit auch alles, nur das entscheidene Passt nicht -> die eingegebene Zahl wird nicht ins Feld "Unit Parcel" in der Tabelle Sales Header eingetragen. Was mache ich verkehrt?

Code:
// Pakete abfragen
IF ScanCompleted THEN
      IF CONFIRM('Wollen Sie mehrere Pakete eingeben?',TRUE) THEN BEGIN
      SalesHeader.GET("Auftragsnr.");

      PaketKorrektur := TRUE;

      WHILE PaketKorrektur DO BEGIN
        Fenster.OPEN('Geben Sie die Anzahl der Pakete an: #1############');
        Fenster.INPUT(1,Paketanzahl);
        Fenster.CLOSE;
   
        PaketeErfassen(Paketanzahl, "Auftragsnr.");
        PaketKorrektur := CONFIRM('Wollen Sie die Eingabe korrigieren?',FALSE);
        CLEAR(Paketanzahl);
      END;
END;


Function
Code:
// Paketanzahl erfassen
 
  SalesHeader.SETRANGE("No.","Auftragsnr.");
  SalesHeader.INIT;
  SalesHeader.TRANSFERFIELDS(SalesHeader);
  SalesHeader.VALIDATE("Unit Parcel", Paketanzahl);
  SalesHeader."Unit Parcel" := Paketanzahl;

Re: Paketanzahl in SalesHeader schreiben

12. November 2009 12:54

Der Sales Header hat zwei Felder im Primäschlüssel.(Document Type,No.)
Document Type für Auftrag ist = 1
Code:
SalesHeader.GET(1,"Auftragsnr.");


mfg Michael

Re: Paketanzahl in SalesHeader schreiben

12. November 2009 13:14

Ja stimmt - Danke! Ich habs geändert - leider wird immer noch kein Wert eingetragen :-(

Re: Paketanzahl in SalesHeader schreiben

12. November 2009 13:18

Fehlt evtl. ein
Code:
SalesHeader.MODIFY
:?:

[Gelöst] Re: Paketanzahl in SalesHeader schreiben

12. November 2009 14:35

Vielen Dank für eure Hinweise... :-)
ich habe die Lösung gefunden:

Function

Code:
// Paketanzahl erfassen

IF SalesHeader.GET(1, "Auftragsnr.") THEN BEGIN
  SalesHeader.VALIDATE("Unit Parcel", Paketanzahl);
  END ELSE BEGIN
  SalesHeader."Unit Parcel" := Paketanzahl;
END;
  SalesHeader.MODIFY

Re: [Gelöst] Re: Paketanzahl in SalesHeader schreiben

12. November 2009 14:47

Dein Quelltext macht leider keinen Sinn.
Ich übersetze mal:
Code:
WENN SalesHeader.Gefunden DANN
  Validiere eines seiner Felder
SONST
  Setzte eines seiner Felder // obwohl nicht gefunden!!!!
IMMER: SalesHeader.MODIFY // Laufzeitfehler, wenn vorher nicht gefunden!!


Daher schreib es so:

Code:
IF SalesHeader.GET(1, "Auftragsnr.") THEN BEGIN
  SalesHeader.VALIDATE("Unit Parcel", Paketanzahl);
  SalesHeader.MODIFY
END ELSE BEGIN
  // gute Frage, wäre das nicht ein Fehler?
END;