Seite 1 von 1

[gelöst]Feld von Customer- in Sales Inv. Header übernehmen?

Verfasst: 11. März 2010 09:39
von D_Gross
Hallo,

wir haben folgendes Problem. Wir haben auf der Debitorkarte, bzw. in der Debitortabelle ein Boolean-Feld namens "Drucken" erstellt.
Dieses möchten wir jetzt in den Sales Invoice Header übernehmen.

D.h. wenn das Feld im Debitor auf JA gesetzt ist, soll es auch mit JA in den Sales Invoice Header übernommen werden.
Ziel ist es, dann im Bericht der die gebuchte Rechnung ausgibt, nach diesem Boolean-Feld zu filtern und damit zu bestimmen, das nur diejenigen Rechnungen gedruckt werden die wir auch wirklich drucken müssen. (also die, die Drucken - JA im Debitor hinterlegt haben).

Als erstes hätten wir nun versucht das Feld mit in den Auftrag (Sales Header) zu nehmen, das hat mit
Code:
Drucken := Cust.Drucken;
auch wunderbar funktioniert. Aber wie bekommen wir das Feld jetzt am einfachsten in die gebuchte Rechnung?
Fraglich ist auch ob wir den Zwischenschritt in die Sales Header Tabelle überhaupt benötigen und ob wir nicht direkt vom Debitoren das Feld in den Sales Invoice Header übernehmen können?

Also wir bräuchten einfach nur eine Möglichkeit beim Ausführen des Reports VK-Rechnung nach dem Feld "Drucken" ja/nein aus dem Debitor filtern zu können.

Wäre super wenn mir jemand weiterhelfen könnte ;)

Danke!

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 09:47
von McClane
Ist es denn wichtig, dass das Feld in den Vk-Belegen gepseichert wird? Wenn nicht, kannst du es vor dem Aufruf des Druckes einfach von der Debitorkarte auslesen. Oder auch im Report.

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 10:01
von fiddi
Du musst Das Feld dort nur mit der gleichen ID und Typ anlegen. NAV kopiert automatisch alle passenden Daten.
Leider kannst du das nur mit einer passenden Lizenz (Solution-Developer) programmieren, da ein normaler Anwender in gebuchten Belegen nicht programmieren darf :wink:

Gruß, Fiddi

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 10:42
von D_Gross
Danke schon mal für die Antworten ;)
Ok, jetzt haben wir das Feld drucken in beiden Tabellen, allerdings kommt jetzt beim buchen des Auftrages der Fehler "Die Beziehung zu dem Teil Drucken der Variable konnte nicht gelöst werden." Was hat das zu bedeuten?
Muss vielleicht noch irgendwas in den Properties hinterlegt werden oder so ähnlich?

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 10:51
von McClane
Das deutet eher darauf hin, dass in einem Objekt etwas verschwunden (oder noch nicht angelegt) ist, worauf ein anderes Objekt zugreifen möchte.

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 14:59
von D_Gross
Momentan hab ich mein Feld "Drucken" ja auch im Sales Header. Ist das überhaupt notwendig oder kann ich das Feld direkt aus der Customer-Tabelle übernehmen?
Ich hätte das Feld jetzt in allen Tabellen mit der gleichen ID angelegt. Brauch ich denn sonst noch irgendwas?
Oder wo könnte das Problem ansonsten noch liegen?

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 15:04
von fiddi
In der Tabelle "Sales Invoice Header" sollte das Feld ohne Code für Validierung oder Lookup angelegt werden. Und das ganze funktioniert natürlich nur, wenn das Feld ein echtes Feld ist und kein boolean.

Gruß, Fiddi

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 15:12
von D_Gross
D.h. ich brauche das Feld in der Customer-Tabelle (welches ja ein Boolean ist) und im Sales Invoice Header, mit der gleichen ID wie in der Customer-Tabelle, aber nicht als Boolean sondern..? Was meinst du mit "echtes Feld"? :)
Und das im Sales Header kann ich rauslöschen, oder? Und ansonsten ist auch kein weiterer Code notwendig?

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 15:21
von fiddi
Dein Ansatz,, bei der Eingabe des Debitors, das Feld in den SalesHeader zu übernehmen, ist schon richtig. Du musst jetzt nur noch die Felddefinition aus dem SalesHeader in den SalesInvoiceHeader zu kopieren. Dabei solltest du darauf achten, das Code der im SalesHeader an dem Feld hängt, im Rechnungskopf gelöscht wird.

Gruß, Fiddi

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 16:00
von D_Gross
Ja es ist weder Code im Sales Header noch im Sales Invoice Header hinter dem Feld...

Das Feld ist jetzt in allen drei Tabellen als Boolean mit der gleichen ID. Können wir das schon mal so lassen, oder sollte es nicht boolean sein im Invoice Header?
Und wenn das so passt was müssen wir dann noch genau machen, wie übernhmen wir denn das Felod in den Sales Invocie Header?
Code brauchen wir ja keinen und auch keine Einstellungen in den Properties, oder?

Sorry, Anfänger... :-)

Gruß,
d_gross

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 16:24
von fiddi
Wenn Typ und ID -im SalesInvoiceHeader identisch mit dem SalesHeader sind, brauchst einegtlich nichts mehr zu tun. Das Feld sollte dank TRANSFERFIELDS automatisch gefüllt werden.

Gruß, Fiddi

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 16:33
von D_Gross
Aber das funktioniert nicht...
Im Debitor ist ja Feld auf ja, das übernimmt er ohne Code, so wie es jetzt ist nicht mal in den Sales Header.
Wenn ich hier einen Auftrag erfasse ist das Feld immer NEIN.
Und beim buchen des Auftrages bringt er dann den Fehler : "Die Beziehung zum teil Drucken konnte nicht gelöst werden. "
Was aber sowieso nicht bringen würde solange er im Sales Header auch nein hat, oder?

Gruß,
d_gross

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 16:51
von fiddi
Irgendwas machst du da falsch.:-(

Im SalesHeader (und zwar in der Tabelle 36) musst du ein Feld "Drucken" mit dem Typ Boolean einfügen. Dieses Feld bekommt dort eine eindeutige Nummer (ID), sagen wir 50000. In dem SalesInvoiceHeader (Tabelle 112) musst du dieses Feld genauso mit gleichem Typ und ganz wichtig gleicher Nummer 50000 anlegen.

Das Feld Drucken im SalesHeader solltest du im OnValidate des Feldes "Verk. an Deb. Nr." zuweisen, wie du es oben beschrieben hast.

Gruß, Fiddi

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 17:08
von D_Gross
Genau so haben wir das jetzt. Das Feld wird im Sales Header zugewiesen und das funktioniert auch - es ist auf true.
Allerdings bekommen wir beim buchen immer noch diesen blöden Fehler - True wird nicht mit in den Sales Invoice Header übernommen. :shock:

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 17:11
von D_Gross
Und wir bekommen im Sales Invoice Header folgenden Fehler:
"Das Feld Drucken muss aktiv sein". Was soll das heißen?
Liegt hier vielleicht das Ganze Problem?

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 17:34
von D_Gross
Hallo,

ok,wir haben das Feld jetzt deaktiviert und wieder aktiviert. Jetzt funktioniert es, das Feld ist jetzt aktiv (Warum es das auch immer vorher nicht war?) und
er übernimmt das Feld aus dem Sales Header. Das Feld ist jetzt im Sales Invoice Header auch TRUE! Das ist ja schon mal super .... :-D

Nur gibt es jetzt noch immer ein Problem. Beim buchen bringt er trotzdem diese blöde Meldung, das die Beziehung zur Variable nicht gelöst werden kann.
Aber warum, das Feld ist aktiv und er übernimmt auch schon den richtigen Wert?

Wenn wir diese Meldung jetzt noch weg bekommen würden wäre alles perfekt... :-)

Gruß,
d_gross

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 11. März 2010 17:46
von fiddi
Wirf mal den Debugger an (nicht Break on Trigger), schau mal wo er beim Buchen auf die Nase fällt.

Gruß, Fiddi

Re: Feld von Customer- in Sales Inv. Header-Tabelle übernehmen?

Verfasst: 12. März 2010 12:39
von D_Gross
Super, es hat endlich geklappt.
Es war noch ein Code von den vorherigen Versuchen versteckt.
Vielen Dank für deine Hilfe und vorallem Geduld :)