6. Februar 2009 11:50
Hallo Zusammen.
Wollte mal fragen ob jemand weiß, ob man aus einer Form entsprechende Daten in das Buch-Blatt importieren kann, ohne dabei ein Import zu benutzen.
Kurz gesagt: Von Form XX ins Buch-Blatt.
Kann mir jemand helfen?
Gruß Chiwi
Zuletzt geändert von Chiwi am 13. Februar 2009 12:47, insgesamt 1-mal geändert.
6. Februar 2009 13:02
Im Standard: Nein
Technisch ist es aber möglich, müsste jedoch programmiert werden.
Ich gehe davon aus, dass du in einer bestimmten Form stehst und von dort aus die Daten sozusagen in das Fibu Buch.-Blatt "schicken" möchtest.
Dazu musst du auf der Form einen CommandButton bzw. ein MenuItem in einem MenuButton anlegen.
Im C/AL-Code überträgst du dann die relevanten Daten in das entsprechende Buch.-Blatt.
Optional könntest du abschließend das Fibu Buch.-Blatt aufrufen, damit der Anwender die Daten sehen, prüfen und buchen kann.
6. Februar 2009 13:17
Danke. Die gleiche Idee ist mir auch vorhin in den Kopf gekommen. Benutze jetzt eine Commandbutton und werde über den OnPush Trigger die entsprechenden Felder übergeben und hoffe mal das es so klappen wird. Sollte sich noch was ergeben oder ich noch Fragen habe, meld ich mich.
Gruß Chiwi.
Zuletzt geändert von Chiwi am 6. Februar 2009 15:52, insgesamt 1-mal geändert.
6. Februar 2009 13:22
Das mit dem Buch-Blatt öffnen will ich auch machen, denn die Daten sollen ja auch dann gebucht werden. Hast da vielleicht ein Tipp wie ich das machen könnte, oder reicht einfach ein zweiter CommandButton der mich direkt aufs Buch-Blatt bringt?
6. Februar 2009 13:33
Nein, kein 2. Knopf, sondern: wenn alle Daten im Buchblatt stehen einfach die Form mit den Datensätzen aufrufen.
6. Februar 2009 15:45
Hab jetzt im Trigger den Code so geschrieben, dass mir eigentlich die Daten von der einen Tabelle ins Buch-Blatt verschoben werden sollten. Leider läuft es nicht. Muss ich beim CommandButton irgendetwas in den Properties ändern. Ich habe PushAction auf Yes gestellt und weiß nicht was ich noch machen soll.
gruß Chiwi
9. Februar 2009 10:54
Hi.
Wollte fragen ob mir jemand sagen könnte wie ich überprüfen kann ob die Felder die Ich übernehmen möchte auch tatsächlich durchgeganen sind.
Habe es mit einer Message immer kontrolliert,aber hab vergessen wie das geht. Kann mir jemand helfen?
Gruß
9. Februar 2009 12:57
Hab noch nee Frage.
Mein CommandButton schiebt nicht die Daten rüber wie ich es vor hatte, woran könnte es liegen?
Habe mit einer MESSAGE gearbeitet um zu testen ob die Daten übernommen worden sind, aber es funktioniert nicht.
Hat jemand nee Idee?
Gruß
9. Februar 2009 14:27
Hast du schonmal mit dem Debugger geprüft, welche Programmcodes durchlaufen werden?
9. Februar 2009 15:16
Sorry war nicht meine Absicht. Wie kann ich denn testen was durchlaufen wird?Bin halt ein Newby und kenne mich noch nicht so gut damit aus.
Gruß
9. Februar 2009 16:24
Hört sich momentan für mich so an, als hättest du den Insert auf die Tabelle vergessen. Einfacher wärs, wenn man den Code sehen könnte :)
9. Februar 2009 16:34
Chiwi hat geschrieben:Sorry war nicht meine Absicht.
War auch nur ein
offizieller Hinweis und keine Verwarnung.
Chiwi hat geschrieben:Wie kann ich denn testen was durchlaufen wird?
Schalte
vor der Drücken des Buttons über das Menü "Extras" -> "Debugger" zuerst die Breakpoints ein (so dass ein Punkt davor erscheint), und anschließend stellst du den Debugger auf "Aktive".
Nun klickst du auf deinen Button und kannst mit [F5] Schritt für Schritt nachvollziehen, welchen Programmcode NAV ausführt.
Chiwi hat geschrieben:Bin halt ein Newby und kenne mich noch nicht so gut damit aus.
So haben wir alle irgendwann mal angefangen.
12. Februar 2009 09:21
Hallo zusammen. Hier ist mal der Code den Ich geschrieben habe. Mit dem Code versuche ich alle Felder "BEARBEITET" die TRUE ergeben(also ein Häckchen haben zu übernehmen und die dann in die Artikel Buch-Blatt Zeile schieben. Vielleicht kann mir ja jemand sagen was ich eventuell falsch gemacht habe.
Gruß
"Artikel Buch.-Blattzeile".RESET;
"Artikel Buch.-Blattzeile".SETRANGE("Artikel Buch.-Blattzeile"."Buch.-Blatt Name",'Standard');
IF "Artikel Buch.-Blattzeile".FIND('+') THEN
Zeile := "Artikel Buch.-Blattzeile"."Zeilennr.";
l[i]r_debitor.GET('4085');
lr_lagerbewegung.SETRANGE(lr_lagerbewegung.Kunde,'4085');
lr_lagerbewegung.SETRANGE(lr_lagerbewegung.Bearbeitet,TRUE);
IF lr_lagerbewegung.FIND('-') THEN
REPEAT
lr_lagerbewegung.Bearbeitet := TRUE
UNTIL lr_lagerbewegung.NEXT(+1) = 0;
Zeile := Zeile + 10000;
// Füllen der Pflichtfelder
"Artikel Buch.-Blattzeile"."Buch.-Blatt Vorlagenname" := 'Artikel';
"Artikel Buch.-Blattzeile"."Buch.-Blatt Name" := 'Standard';
"Artikel Buch.-Blattzeile"."Zeilennr." := Zeile;
// Füllen der Artikelrelevanten Felder
"Artikel Buch.-Blattzeile".Kunde := Lagerbewegung.Kunde;
"Artikel Buch.-Blattzeile"."Artikelnr." := Lagerbewegung.ArtikelNr;
"Artikel Buch.-Blattzeile".Auftragsnummer := Lagerbewegung.AuftragNr;
"Artikel Buch.-Blattzeile".Lagerortcode := Lagerbewegung.Lagerort;
"Artikel Buch.-Blattzeile".Lagerfachcode := Lagerbewegung.Lagerfach;
"Artikel Buch.-Blattzeile".Menge := Lagerbewegung.Menge;
"Artikel Buch.-Blattzeile".Bearbeitet := Lagerbewegung.Bearbeitet;
12. Februar 2009 10:12
Hallo Chiwi,
eine Sache dir mir auffällt, ist das die Felder im Artikelbuchblatt nur per ':=' zugewiesen werden, und nicht per VALIDATE. Das ist in den Buchblättern keine gute Idee, da durch die Validates z.B. auf Artikelnr. noch weitere wichtige Felder (z.B. Einstandspreis) gefüllt werden.
Gruß, Fiddi
12. Februar 2009 12:00
Hallo Chiwi,
dein Quelltext ist leichter zu lesen und zu verstehen, wenn du ihn zwischen so genannte Code-Tags setzt. Insbesondere deine Formatierungen werden so auch beibehalten.
Daher bitten wir dich, vor und nach deinem Quelltext diese Code-Tags einzufügen. Beispiel:
[code]Dein Quelltext[/code]
Gruß, Timo Lässer
MSDynamics.de-Team
12. Februar 2009 12:08
- Code:
ArtikelBuchBlName.SETRANGE("Buch.-Blatt Vorlagenname",'ARTIKEL');
ArtikelBuchBlName.SETRANGE(ArtikelBuchBlName.Name,'STANDARD');
ArtikelBuchBlName.FIND('-');
//Belegnummer Automatisch füllen
IF ArtikelBuchBlName.Nummernserie <> '' THEN BEGIN
CLEAR(NrSerienVerw);
Belegnr := NrSerienVerw.VersuNächsteNr(ArtikelBuchBlName.Nummernserie,TODAY);
END;
"Artikel Buch.-Blattzeile".SETRANGE("Artikel Buch.-Blattzeile"."Buch.-Blatt Name",'STANDARD');
IF "Artikel Buch.-Blattzeile".FIND('+') THEN
Zeile := "Artikel Buch.-Blattzeile"."Zeilennr.";
Zeile := Zeile + 10000;
lr_debitor.GET('4085');
lr_lagerbewegung.SETRANGE(lr_lagerbewegung.Bearbeitet,TRUE);
IF lr_lagerbewegung.FIND('-') THEN
REPEAT
"Artikel Buch.-Blattzeile"."Buch.-Blatt Vorlagenname" := 'ARTIKEL';
"Artikel Buch.-Blattzeile"."Buch.-Blatt Name" := 'STANDARD';
"Artikel Buch.-Blattzeile"."Zeilennr." := Zeile;
"Artikel Buch.-Blattzeile".VALIDATE("Artikel Buch.-Blattzeile"."Artikelnr." ,lr_lagerbewegung.ArtikelNr);
"Artikel Buch.-Blattzeile".VALIDATE("Artikel Buch.-Blattzeile".Lagerortcode ,lr_lagerbewegung.Lagerort);
"Artikel Buch.-Blattzeile".Auftragsnummer := Lagerbewegung.AuftragNr;
"Artikel Buch.-Blattzeile".Lagerfachcode := Lagerbewegung.Lagerfach;
"Artikel Buch.-Blattzeile".Menge := Lagerbewegung.Menge;
"Artikel Buch.-Blattzeile".Bearbeitet := Lagerbewegung.Bearbeitet;
"Artikel Buch.-Blattzeile".Kunde := Lagerbewegung.Kunde;
"Artikel Buch.-Blattzeile"."Belegnr." := Belegnr;
"Artikel Buch.-Blattzeile".Buchungsdatum := TODAY;
"Artikel Buch.-Blattzeile".Buchungszeit := TIME;
UNTIL lr_lagerbewegung.NEXT = 0;
IF NOT lr_artikel.GET (lr_lagerbewegung.ArtikelNr) THEN
MESSAGE('Artikel exestiert nicht');
Hoffe es ist ok soweit. Es passiert aber garnichts.
12. Februar 2009 12:19
Hallo Chiwi,
schon anders, aber es fehlen noch ein paar Kleinigkeiten.
- Bringe deinen Code mal in Struktur (Einrückungen), dann fallen dir auch noch ein paar kleinere Fehler auf.
- Wann willst du die Zeilennummer hochzählen?
- Du solltest die Daten auch noch in die ArtikelBuchblattzeile einfügen . Der Befehl dafür lautet:
- Code:
"Artikel Buch.-Blattzeile".INSERT(TRUE);
Ob deine Validates ausreichen, solltest du anhand einer Von Hand gefüllten und einer vom Programm gefüllten Buchblattzeile prüfen.
Gruß, Fiddi
12. Februar 2009 12:42
kannst mir vielleicht genau sagen wie ich das machen soll und welche Fehler ich noch habe?
12. Februar 2009 12:56
jetzt läuft was, aber er nimmt nur den letzten datensatz und nicht alle.
12. Februar 2009 13:07
Hallo Chiwi,
vielen Dank für deinen Beitrag, leider mussten wir feststellen, dass du schon wieder das Thema durch eine Antwort auf deinen eigenen Beitrag wieder nach oben geschoben hast.
Wir bitten dich, zukünftig mindestens 24 Stunden zwischen zwei Antworten zu warten.
Falls du deinem Beitrag weitere Informationen hinzufügen möchtest, nutze hierzu bitte die [Ändern]-Funktion (rechts oben in jedem deiner Beiträge zu finden).
Vielen Dank für dein Verständnis.
Gruß, Timo Lässer
MSDynamics.de-Team
12. Februar 2009 15:02
Hallo Chiwi,
kann es sein, das du vergessen hast die Zeilennummer hochzuzählen?
Gruß, Fiddi
12. Februar 2009 15:11
Hab ich auch gemerkt.weiß aber nicht wie ich das machen soll.kannst mir vielleicht helfen?
12. Februar 2009 16:44
Kann mir vielleicht jemand sagen wie man eine neue Buch Blatt Zeile erstellt?
Gruß Chiwi
12. Februar 2009 18:40
Hallo Chiwi,
manchmal hilft es den Zeilenzähler auch
in der REPEAT-Schleife hochzuzählen, und nicht nur vorher.
Gruß,Fiddi
13. Februar 2009 00:19
Hallo Chiwi,
was meinst du damit? Willst du eine Buch.-Blatt Zeile im Quellcode erstellen, um die anschließend zu buchen?
Gruß, Michael
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.