DB Felder zum Liefersch. hinzugef.,werden nur bedingt angez.

Alles, was den Programmierer beschäftigt

Moderator: SYNERPY

Antworten
Cyg
Beiträge: 45
Registriert: Mi Mai 31, 2006 2:37 pm

DB Felder zum Liefersch. hinzugef.,werden nur bedingt angez.

Beitrag von Cyg »

Hallo!

Ich habe aus dem Lieferschein (FRDCMLISMB) eine Packing List für den Außenhandel erstellt.

Ich brauchte ein paar weitere Daten, nämlich Ursprungsland und Währung.
Diese habe ich mir aus q_rep4 (View V_BRLSP) geholt.

Ist der Kunde in Deutschland klappt das auch wunderbar. Bei einem Kunde im Ausland (im Länderstamm hinzugefügt) wird bei Ursprungsland un Währung aber nichts angezeigt. Wenn ich mir den Inhalt der View V_BRLSP im IBExpert ansehe sind die Felder für den Deutschen Kunden gefüllt, für den ausländischen aber leer.

Woran liegt das?

Desweiteren ist mir aufgefallen, daß im Lieferschein die Artikelbezeichnung weiterhin auf deutsch angedruckt wird, auch wenn das Sprachkennzeichen auf englisch steht und eine Übersetzung existiert.

Im Angebotsformular wird das korrekt übersetzt angedruckt.

Gibt es dafür eine schnelle Lösung, oder muß ichs mir im Angebot ansehen?


Herzlichen Dank im voraus!
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Schauen wir uns an. Gibt sicherlich eine schnelle Lösung.
Cyg
Beiträge: 45
Registriert: Mi Mai 31, 2006 2:37 pm

Beitrag von Cyg »

Das erste Problem tritt dann auf, wenn man nur einen Lieferschein erzeugen läßt, aber keine Rechnung.

Ich habe mir für die Währung dann mit q_rep15, View V_BAUF geholfen.

Aber woher bekomme ich das Land des Kunden :?:

Dafür habe ich keine passende View gefunden. Muß ich eine durch einen Join erweitern?
SYN14
Beiträge: 216
Registriert: Do Jun 17, 2004 8:08 am

Beitrag von SYN14 »

Hallo Cyg,

ich denke, dass es da ein paar Verständnisprobleme über die genannten Felder gibt.

Das Ursprungsland ist nicht das Land, dass beim Kunden hinterlegt ist. Es handelt sich um das Ursprungsland des Artikels und wird in den Auftragspositionen (Vorbelegung im Artikelstamm) angegeben. Dieses Ursprungsland ist für die Zollerklärungen bei der Ausfuhr des Artikels notwendig.

Die Währung in der V_BRLSP kommt aus der Rechnung, wenn die Lieferscheinposition bereits in einer Rechnung erfasst ist. An die Währung kommt man auch über den Kundenstamm (im Ausdruck ist dies die q_rep13) Feldname BWAER_MASKENKEY.

Mit einer kleinen Erweiterung der V_BKUNDE kann auch das Land im Ausdruck angezeigt werden. Hier müsste ein neuer Join zur Tabelle BLAND eingefügt werden:

Code: Alles auswählen

CREATE VIEW V_BKUNDE(
    ID,
    MASKENKEY,
.
.
.
    BWAER_KURS,
    BKST_MASKENKEY,
    BKST_KSTBEZ,
    BADR_BLAND_MASKENKEY)
AS
SELECT 
A.ID,
A.MASKENKEY,
.
.
.
S.MASKENKEY,
S.KSTBEZ,
T.MASKENKEY
FROM BKUNDE A
LEFT OUTER JOIN BADR B ON A.BADR_ID_ADRNR = B.ID 
LEFT OUTER JOIN BPLZ C ON B.BPLZ_ID_LANDPLZ = C.ID 
LEFT OUTER JOIN BLAND D ON C.BLAND_ID_LANDKENNZ = D.ID 
LEFT OUTER JOIN BKUGRU E ON A.BKUGRU_ID_PREISGR = E.ID 
LEFT OUTER JOIN BKUSE1 F ON A.BKUSE1_ID_SEL1K = F.ID 
LEFT OUTER JOIN BKUSE2 G ON A.BKUSE2_ID_SEL2K = G.ID 
LEFT OUTER JOIN BLIEBE H ON A.BLIEBE_ID_VERSBED1K = H.ID 
LEFT OUTER JOIN BLIEBE I ON A.BLIEBE_ID_VERSBED2K = I.ID 
LEFT OUTER JOIN BVERSAND J ON A.BVERSAND_ID_1 = J.ID
LEFT OUTER JOIN BVERSAND K ON A.BVERSAND_ID_2 = K.ID
LEFT OUTER JOIN BZAHBE L ON A.BZAHBE_ID_ZAHL1K = L.ID 
LEFT OUTER JOIN BZAHBE M ON A.BZAHBE_ID_ZAHL2K = M.ID 
LEFT OUTER JOIN BZAHBE N ON A.BZAHBE_ID_ZAHL3K = N.ID 
LEFT OUTER JOIN BZAHBE O ON A.BZAHBE_ID_ZAHL4K = O.ID
LEFT OUTER JOIN BVERT V ON A.BVERT_ID = V.ID
LEFT OUTER JOIN BADR W ON V.BADR_ID = W.ID
LEFT OUTER JOIN BSBANK P ON A.BSBANK_ID = P.ID
LEFT OUTER JOIN BFIRMAKTO X ON A.BFIRMAKTO_ID = X.ID
LEFT OUTER JOIN BWAER R ON A.BWAER_ID = R.ID
LEFT OUTER JOIN BKST S ON A.BKST_ID = S.ID
LEFT OUTER JOIN BLAND T ON C.BLAND_ID_LANDKENNZ = T.ID
Das sollte Ihre Probleme eigentlich lösen.

thx SYN14
It's not a bug.
It's a feature.
Cyg
Beiträge: 45
Registriert: Mi Mai 31, 2006 2:37 pm

Beitrag von Cyg »

So ähnlich hatte ich mir dann auch geholfen um das Land anzuzeigen:

Code: Alles auswählen

CREATE VIEW V_BKUNDE( 
    ID, 
    MASKENKEY, 
. 
. 
. 
    BWAER_KURS, 
    BKST_MASKENKEY, 
    BKST_KSTBEZ, 
    BLAND_LAND)        
AS 
SELECT 
A.ID, 
A.MASKENKEY, 
. 
. 
. 
S.MASKENKEY, 
S.KSTBEZ,                   
D.LAND 
FROM BKUNDE A 
LEFT OUTER JOIN BADR B ON A.BADR_ID_ADRNR = B.ID 
LEFT OUTER JOIN BPLZ C ON B.BPLZ_ID_LANDPLZ = C.ID 
LEFT OUTER JOIN BLAND D ON C.BLAND_ID_LANDKENNZ = D.ID 
.
.
.
Das funktioniert auch prima in den Formularen, aber wie sich herausgestellt hat, gibt es jetzt Probleme beim Anlegen von Kunden :(

Legt man einen neuen Kunden an, erhält man die Fehlermeldung: validation error for column BLAND_LAND, value "*** null ***"

Woran liegt das :?:
admin
Site Admin
Beiträge: 2673
Registriert: Di Feb 10, 2004 5:48 am
Wohnort: Bayreuth

Beitrag von admin »

Wie wurden die Trigger modifiziert?
Cyg
Beiträge: 45
Registriert: Mi Mai 31, 2006 2:37 pm

Beitrag von Cyg »

Da ich keine neuen Daten schreibe sondern nur bestehende anzeige, habe ich an den Triggern nichts geändert.
SYN14
Beiträge: 216
Registriert: Do Jun 17, 2004 8:08 am

Beitrag von SYN14 »

Hallo Cyg,

nach einer Änderung eines Views müssen im AvERPAdmin immer die geänderten Informationen aus der Datenbank in die AvERP-Systemtabellen übertragen werden. Dies erledigt der AvERPAdmin. Gehen Sie dazu einfach unter dem Punkt Tabellen-/Feldverwaltung auf die Registerkarte Aktualisieren und starten Sie den Abgleich über die Schaltfläche "Ausgewählte Aktionen ausführen". Anschließend lässt sich der Kunde speichern.

thx SYN14
It's not a bug.
It's a feature.
Antworten