[Gelöst] Gefüllte Tabelle im Buchungsblatt anzeigen.

22. April 2008 16:48

Hallo zusammen.

Ich habe mal wieder ein Problem bei dem ihr mir vielleicht helfen könnt.

Ich fülle mit Hilfe eines Reports die Tabelle 81 Gen. Journal Line. Das funktioniert auch wunderbar. Also wenn ich in die Tabelle reinschaue stehen dort meine gefüllten Daten.

Nun möchte ich mir die Daten natürlich auch in der Form anzeigen lassen damit diese gebucht werden können.

Ich bin davon ausgegangen das die Form 39 General Journal dafür zuständig ist, da sie ja die Tabelle 81 als Source Tabelle hat. Aber leider wird mir bei meinem ausgewählten Buchungsblatt nichts angezeigt.

Ich kenne mich leider fast gar nicht damit aus. Vielleicht kann mir jemand einen Tip geben?
Zuletzt geändert von Heike Bennerscheid am 28. April 2008 17:08, insgesamt 1-mal geändert.

22. April 2008 16:53

Hast du irgendwelche FIlter geladen??
Oder hast du die falsche Buchungsgruppe eingestellt??

Gruß Schaarschi

23. April 2008 09:20

Nein. Das Fibu Buchblatt öffne ich ganz normal ohne Filter. Das einzige was eingestellt ist, ist oben das Buchblatt-Name. Und da steht der richtige Buchblatt-Name drinne (also den, den ich auch brauche). Ist Buchblatt-Name das gleiche wie Buchungsgruppe?

23. April 2008 09:43

Also laut Tabelle ist das nicht das gleiche.
Aber ich kann dir keinen Unterschied sagen, denn dafür stecke ich nicht in der Materie. Ich nähere mich solchen Problemen immer codeseitig.

23. April 2008 09:55

Laut Code sollte er rein theoretisch mit Hilfe der GenJnlManagement CodeUnit die Tabelle füllen. Aber vielleicht habe ich da noch irgendwo einen Denkfehler. Vielleicht kennt sich wer mit der Materie besser aus und kann mir weiterhelfen *hoff*

23. April 2008 10:24

du musst nicht nur den "Buch.-Blattname (Journal Batch Name)", sondern auch den "Buch.-Blattvorlagenname (Journal Template Name)" vergeben.
Gibt es eventuell einen Schreibfehler in einem dieser Namen, oder existiert dieser Name denn überhaupt?

23. April 2008 10:33

Also rein theoretisch füllt mein Code auch den Vorlagennamen in der Tabelle aus. Schau ich aber in die Tabelle ist das Feld leider leer. Ich dachte auch zuerst das es daran liegt. Aber alte Zeilen in denen alles korrekt ausgefüllt ist bekomm ich auch nicht angezeigt wenn ich den Buchungsblattnamen im Buchungsblatt ändere. Oder versteh ich da wieder etwas falsch?

Also ich rede von der Form 39 General Journal. Dort kann man ja oben den Buchungsblattnamen auswählen. Wenn ich dort etwas auswähle müsste er mir doch die Zeilen die in der Tabelle 81 Gen. Journal Line stehen anzeigen. Oder etwa nicht?

23. April 2008 11:06

Wenn du dir Form 39 startest, dann zeigt sie dir zuerst den Vorlagen Namen, nicht den Buchblattnamen.

Wenn die Vorlage in der Fibu-Enrichtung nicht angelegt ist, wirst du ihn hier auch nicht finden. Eine Vorlage ohen Namen (' ') gibt es nicht.

Nachdem du die Vorlage ausgewählt hast, kannst du dort erst den Buchblattnamen wählen.

28. April 2008 12:18

So.. ich habe es nun endlich geschafft das etwas angezeigt wurde. Nun hätte ich aber eine andere Frage. Und zwar fülle ich das Buchungsblatt ja mit Hilfe einer Function. Unter anderem befülle ich auch die Belegnummer. Hierfür habe ich folgenden Code verwendet:

Code:
PurchaseSetup.GET();
PurchaseSetup.TESTFIELD("Provisionsgutschrift-Nr.");
"Gen. Journal Line"."Document No." := NoSeriesMgt.GetNextNo(PurchaseSetup."Provisionsgutschrift-Nr.",0D,TRUE);


Das funktioniert eigentlich auch wunderbar. Jetzt nehmen wir an das ich eine Zeile in dem Buchblatt stehen habe und als Buchungsnummer steht dort GUTA00061. Nun möchte ich das ganze Buchen. Dann bekomme ich aber folgende Fehlermeldung:

Belegnr. muss GUTA00062 in Fibu Buch.-Blattzeile Buch.-Blattvorlagenname='TAP',Buch.-Blattname='TAP',Zeilennr.='1000' sein.


Was ich weiß das folgender Code in der CodeUnit 13 für diese Fehlermeldung verantwortlich ist:

Code:
IF NOT EmptyLine THEN BEGIN
      IF (GenJnlBatch."No. Series" <> '') AND
         ("Document No." <> LastDocNo)
      THEN
        TESTFIELD("Document No.",NoSeriesMgt.GetNextNo(GenJnlBatch."No. Series","Posting Date",FALSE));


Was ich nicht weiß ist: Wieso? Kann mir das vielleicht einer Erklären? Irgendwie ist mir das zu hoch.

28. April 2008 15:06

Wenn NoSeriesMgt.GetNextNo mit Parameter TRUE verwendet wird, dann wird die "Letzte Nr. verwendet" um das Intervall bereits hochgezählt. Die Prüfung beim Buchen erwartet also schon die nächste Nummer. Bei FALSE wird die nächste Nummer nur innerhalb der GetNextNo-Funktion ermittelt, aber nicht erhöht.
Solange die Nummerserie nicht auch noch woanders verwendet wird, stellt dies aber kein Problem da. Sollte dies der Fall sein , gibt es immer wieder Konflikte.

28. April 2008 15:14

Achso. Sollte ich dann statt TRUE, FALSE verwenden? Zur Zeit wird die Nummernserie noch nicht anderweitig verwendet.. aber falls mal doch, ist das dann vielleicht besser, oder?

28. April 2008 17:05

Entweder mit FALSE oder auch NoSeriesMgt.TryGetNextNo anstatt verwenden.
Wenn GUTA00061 in der Zeile und auch als "Letzte Nr. verwendet" steht, ist es so, als ob die Zeile manuell erstellt worden wäre. Solange diese nur für dieses Buchungsblatt verwendet wird, gibt es dann auch keine Probleme. Jede anderweitige Verwendung der Nummernserie an anderer Stelle im System, die vor der Verbuchung abläuft, würde die "Letzte Nr. verwendet" auch wieder erhöhen und das Verbuchen verhindern.

28. April 2008 17:08

Danke dir. Problem gelöst und was dazu gelernt.

30. April 2008 11:02

Mehhh.. jetzt ist doch noch ein Problem aufgetaucht. Ich habe die Zeile mit GetNextNo ja auch FALSE geändert. Hatte dann aber nur das Buchen getestet. Jetzt ist mir grad erst aufgefallen das wenn ich mehrere Zeilen in dem Buchblatt habe er immer die gleiche Nummer vergibt. Also GUTA00064 in Zeile 1 und Zeile 2 (usw. usf.). Mit TryGetNextNo gibts das gleiche Ergebnis. Was mach ich nur falsch? :cry:

5. Mai 2008 09:39

Kann mir keiner bei meinem kleinen Problem helfen? Wir brauchen ja pro Zeile eine eindeutige Nummer. Und leider kenne ich mich noch nicht so gut mit der Nummernserie aus. Deswegen wäre ich für jede Hilfe sehr dankbar.

6. Mai 2008 13:49

Das zweite Problem ist nun auch gelöst. Ich hatte dem Buchungsblatt die Nummernserie als Defaultwert zugewiesen. Dadurch kam die Fehlermeldung zustande. Nummerserie als Defaultwert entfernt und schon funktioniert es auch mit dem Buchen.