Artikel-Nummerierung: Abfrage eines UDF Wertes aus Maske

Michael Hubenschmid

Hallo

Habe nochmal ein ähnliches Problem wie bei meinem Eintrag bezüglich der GP-Nummerierung.

Habe folgende Query erstellt, die Im Queryanalyzer mit festen Variablen funktioniert, jedoch im Customize nicht.

SELECT CASE WHEN MAX(CAST(T0.ItemCode AS INTEGER)) <> 0 Then CAST(MAX(CAST(T0.ItemCode AS INTEGER))+1 AS varchar(20)) Else MIN(T0.U_ItmSubGrp) END
FROM OITM T0
INNER JOIN OITB T1 ON T0.ItmsGrpCod = T1.ItmsGrpCod
INNER JOIN [@MTF_ITMSUBGRP] T2 ON T1.ItmsGrpNam = T2.U_Itm_Mn_grp AND T2.Code = '[%G;U_ItmSubGrp]'
WHERE
T0.ItmsGrpCod = '[%G;39]'
HAVING MAX(CAST(T0.ItemCode AS INTEGER)) < MAX(CAST(T2.U_Code_bis AS INTEGER))

Wie frage ich den Inhalt eines UDFs aus der aktuellen Maske ab. Diese Felder haben ja keine Nummer als Item sondern den Feldnamen.

Danke für hilfreiche Tips.

Andreas Eugster

Auf welcher Maske bist du den (Artikelstamm, Ausgangsrechnung)?

Eigentlich sollte Folgende Syntax funktionieren: $[$Item,Column,Zeile] also bei dir:

$[$U_ItmSubGrp,0,0]

Wenns nicht geht schreib doch bitte auf welcher Maske du bist.

Michael Hubenschmid

Hallo Andreas.

Danke für die Antwort.

Ich bin auf der Artikelstammmaske und möchte die Artikelnummer automatisch generieren lassen aufgrund von Angaben in dem UDF.

Gruss Micha

Michael Hubenschmid

Hallo!

Leider funktioniert meine Funktion auch mit dem Parameter $[$U_ItmSubGrp,0,0] nicht. Wo liegt mein Fehler.
In einer Query irekt auf dem SQL Server ausgeführt mit festen Parameter läuft es.

Merci

Michael Hubenschmid

Hallo zusammen.

Habe den Code nochmal erweitert, jedoch keine Wirkung:


SELECT CASE WHEN MAX(CAST(T0.ItemCode AS INTEGER)) <> 0 Then CAST(MAX(CAST(T0.ItemCode AS INTEGER))+1 AS varchar(20)) Else MIN(T0.U_ItmSubGrp) END
FROM OITM T0
INNER JOIN OITB T1 ON T0.ItmsGrpCod = T1.ItmsGrpCod
INNER JOIN [@MTF_ITMSUBGRP] T2 ON T1.ItmsGrpNam = T2.U_Itm_Mn_grp AND T2.Code = '$[$U_ItmSubGrp,0,0]'
WHERE
T0.ItmsGrpCod = '[%G;39]'
AND T0.U_ItmSubGrp = '$[$U_ItmSubGrp,0,0]'
HAVING MAX(CAST(T0.ItemCode AS INTEGER)) < MAX(CAST(T2.U_Code_bis AS INTEGER))


Gruss Micha

Andreas Eugster

Sry leider hab ich mich verirrt. Ich dachte ich bin beim Designer. Dort würde es so funktionieren.

Hier wäre die Syntax so wie du zu beginn gesagt hast '[%G,U_ItmSubGrp]'
Doch leider kann ich selber auch keine Werte so auslesen.

Michael Egloff

Hallo zusammen,

SQL Auslese aus UDF Felder auf dem UDF Form funktioniert erst in der nächsten Version. Diese sollte bis Ende Monat draussen sein.
Die Syntax ist dann wie anfangs geschrieben
'[%G;U_ItmSubGrp]'

Michael Hubenschmid

Hallo Michael!

Danke für die Antwort.
Dann freue ich mich auf diese neue Version.
Kannst du mir dann eine Mail machen wenn diese freigegeben ist.
Ist es vorher auch nicht möglich per SQL
das Produkt von UDF1 * UDF2 in ein UDF3 zu übertragen?

Gruss Michael

Michael Egloff

Wenn Auslöser, lesende und schreibende Elemente alle auf demselben Formular sind, ist es momentan möglich. Übergreifend funktioniert noch nicht.
"das Produkt von UDF1 * UDF2 in ein UDF3 zu übertragen" sollte gehen

Michael Hubenschmid

Hallo!

Das heisst wenn der Auslöser der Buttojn "Hinzufügen" oder "Aktualisieren" ist, dann funktioniert es per SQL noch nicht, oder?
Wenn ja bis wann ist es dann möglich.

Gruss Micha

Michael Egloff

Hallo,
du kannst ohne Probleme als Auslöser den Button definieren, und etwas in ein UDF schreiben.
Die Parameterauslese ( [%G,U_ItmSubGrp] ) funktioniert aber nur auf dem Formular, auf welchem der Auslöser platziert ist.

Konkret:
- Auslöser auf "normalem" Form -> Alle Parameter vom "normalen" Form auslesbar
- Auslöser auf UDF Form -> Alle Parameter vom UDF Form auslesbar
0

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post