Skip to main content

Beschreibung statt Wert

Comments

5 comments

  • Lothar Hasenkämper

    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
  • Sven Neuelmann

    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
  • Sven Neuelmann

    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
  • Sven Neuelmann

    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
  • Lothar Hasenkämper

    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

Please sign in to leave a comment.