Beschreibung statt Wert

Hallo,

ich möchte ein Userfeld im Beleg anzeigen. Das Userfeld ist ein Dropdown Feld mit einer hinterlegten Werteliste. Nun wird mir immer der "Wert" im Beleg angezeigt/gedruckt. Wie bekomme ich es hin, das die dazugehörige Beschreibung an dieser Stelle angezeigt/gedruckt wird?

Danke für eure Hilfe!

0

Comments

5 comments
  • Hallo Sven,

    du kannst LD.GetDesc verwenden.

    LD.GetDesc("OCRD","U_CardType",dataBand1("U_CardType"))

    LD.GetDesc("XXX1","U_XXX2",XXX3)

    XXX1 = Name der Tabelle in der das UDF ist

    XXX2 = UDF-FeldName

    XXX3 = Das Feld das du zur Zeit nutzt

    Gruß Lothar

    0
    Comment actions Permalink
  • Hallo Lothar,

    danke für die Rückmeldung. Leider klappt das aber noch nicht wie gewünscht.

    Ich muss das doch unter Darstellung - Value eintragen, richtig?
    Und der Wert wäre dann wie folgt? -> LD.GetDesc("ORDR","U_Testfeld",dataBand1("U_Testfeld"))

    Wenn ich das so mache, erhalte ich den Fehler -> Error in Layout : Eine Ausnahme vom Typ / "PerpetuumSoft.Reporting.Rendering.ScriptException" wurde ausgelöst.

    Ich habe den Wert in der Auftragsbestätigung. Dort habe ich im Dropdown "U_Testfeld" zB den ersten Wert ausgewählt -> der hat als Wert 500 und als Beschreibung "Text". Ich möchte den Text dann angezeigt bekommen, auf dem Ausdruck.

    0
    Comment actions Permalink
  • Mein Fehler, ich hatte das falsche Datenfeld... nun passt es.

    LD.GetDesc("ORDR","U_Testfeld",DocumentFooter("U_Testfeld"),GetData("B1_Data.Document.LangCode"))


    Danke!!

    0
    Comment actions Permalink
  • Sorry, ich habe nun doch noch eine Nachfrage zu dem Thema.

    Ich möchte in einer Benutzerabfrage im B1 den hinterlegten Datensatz auch abfragen (hier in dem Beispiel aus dem Bereich Geschäftspartner).

    Über folgende Abfrage bekomme ich dann aber auch hier wieder nur an den Wert und nicht an die Beschreibung

    SELECT T0.U_Testfeld FROM OCRD T0 WHERE T0.CardCode = $[$4.0.0] FOR BROWSE

    Gibt es hier auch einen Trick direkt an die Beschreibung zu gelangen, oder muss ich hier per "Join" und der UFD1 Tabelle mir die Beschreibung raussuchen? Wie mach ich das dann aber mit den verschiedenen Sprachen?


    Danke noch Mal :-)

    0
    Comment actions Permalink
  • Hallo Sven,

    Versuch mal diese Abfrage:

    DECLARE @LangCode AS INT
    DECLARE @AliasID AS nvarchar(max)
    DECLARE @Value AS nvarchar(max)

    /*Hole Sprachcode v. GP*/
    SET @LangCode = (SELECT T0.LangCode FROM OCRD T0 WHERE T0.CardCode = $[$4.0.0])
    /*Feldname des UDF ohne U_*/
    SET @AliasID = 'xxx'
    /*Hole den UDF-Wert v. GP*/
    SET @Value = (SELECT T0.U_Testfeld FROM OCRD T0 WHERE T0.CardCode = $[$4.0.0])

    /*DEBUG ONLY*/
    --SET @LangCode = (SELECT [LangCode] FROM [OCRD] WHERE [OCRD].[CardCode] = 'Muster3')
    --SET @AliasID = 'aktivitaet'
    --SET @Value = (SELECT [U_aktivitaet] FROM [OCRD] WHERE [OCRD].[CardCode] = 'Muster3')


    SELECT
    COALESCE([MLT1].[Trans],[UFD1].[Descr]) AS [UDF-Value]
    FROM
    CUFD
    INNER JOIN [UFD1] ON [UFD1].[FieldID] = [CUFD].[FieldID] AND [UFD1].[TableID] = [CUFD].[TableID]
    LEFT JOIN [OMLT] ON [OMLT].[TableName] = 'UFD1' AND REPLACE([OMLT].PK,' ','') = CONCAT([CUFD].[TableID],CAST([UFD1].[FieldID] AS nvarchar(max)),CAST([UFD1].[IndexID] AS nvarchar(max)))
    LEFT JOIN [MLT1] ON [MLT1].[TranEntry] = [OMLT].[TranEntry] AND [MLT1].[LangCode] = @LangCode
    WHERE
    [CUFD].[TableID] = 'OCRD'
    AND [CUFD].[AliasID] = @AliasID
    AND [UFD1].[FldValue] =@Value

    Gruß Lothar

    0
    Comment actions Permalink

Please sign in to leave a comment.

Didn't find what you were looking for?

New post