Nur 1 Datensatz auslesen

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Nur 1 Datensatz auslesen

    Hallo zusammen,
    ich benutze delight crm, Version 2.2.4 und finde das Programm sehr gut. Nun habe ich eine Frage.

    Im Journal habe ich eine Briefvorlage, in die per Scan(a)-Auslese Daten aus dem Datensatz automatisch eingetragen werden sollen. Mit Hilfe des Handbuchs habe ich das ganz gut geschafft.

    Nun habe ich ein Problem: Es soll auch die jeweilige Klassifikation des Datensatzes auf dem Dokument erscheinen. Das klappt soweit auch. ABER es sind bei einigen Datensätzen durchaus mehrere Klassifikationen eingetragen. Ich möchte aber, dass nur eine davon im Dokument erscheint, nämlich die letzteingetragene.

    Wie geht das? Ich denke mal, ich muss dem Scan-Befehl irgendeine Bedingung hinzufügen ("gebe nur den letzten Datensatz aus"). Aber wie geht das? Leider beherrsche ich die Programmiersprache nicht.
    Kann mir jemand helfen?

    Einen schönen Gruß und danke schonmal,
    Guhnie
  • Hallo Guhnie

    Die Idee mit dem Scan-Befehl ist sehr gut, leider gibt es aber keinen solchen Befehl im RTF-Reportgenerator (mit dem internen Designer sähe es da schon anders aus).

    Mit einem kleinen Trick kannst Du es aber trotzdem umsetzen. In dem Du eine Variable verwendest, die Du in einem SCAN(j) (alle Klassifikationen der Adresse) mit der Klassifikation befüllst (aber nicht auf den Report ausgibst). Da der Inhalt der Variable beim Befüllen mit jedem Scan-Durchlauf überschrieben wird, steht am Ende die letzte Klassifikation in der Variable. Nun musst Du diese nur noch ausgeben.

    und so funktioniert das Ganze:
    Klassifikation: \VAR(Klassifikation)\\scan(j)\\SETV(Klassifikation, j:classificationtypeid)\\endscan\\Klassifikation\

    (einfach den kompletten "Befehl" in deine Briefvorlage kopieren)

    Schöne Grüsse
    Elias
    Schöne Grüsse
    Elias Zurschmiede

    delight software gmbh
  • Hallo Herr Zurschmiede,
    es funktioniert! Vielen Dank für die Hilfe! Klasse!!

    Ich habe noch zwei Anschlussfragen:

    1. Ich habe in die Klassifizierung ein paar Zusatzfelder eingefügt. (Habe diese dank ihrem Code auch zur Anzeige gebracht.) Ein Feld möchte ich nur dann anzeigen, wenn auch ein Inhalt drin steht.
    Laut Handbuch geht das mit dem Befehl NOEOF. An welcher Stelle muss ich den in den Code hineinbasteln?

    2. In zweien meiner Zusatzfelder stehen Zahlen. Diese Felder möchte ich addieren.
    Der entsprechende Scan-Befehl, so entnehme ich dem Handbuch, sähe so aus:
    \scan(j), INC(j:Feld1, j:Feld2)\

    Wie bekomme ich das in den Code hineingebastelt?

    Ich bedanke mich für weitere Hilfestellung!

    Einen schönen Gruß, Guhnie
  • Hallo Guhnie

    Super das freut mich :)

    Ein Feld möchte ich nur dann anzeigen, wenn auch ein Inhalt drin steht.

    hmm wenn kein Inhalt im Feld drin steht wird ja sowieso nichts (leer) ausgegeben... oder was genau möchtest Du machen?


    Source Code

    1. In zweien meiner Zusatzfelder stehen Zahlen. Diese Felder möchte ich addieren.

    Ja der Weg stimmt, umgesetzt könnte das in etwa so aussehen. Damit Du es besser lesen kannst habe ich noch Leerschläge und Zeilenvorschübe drin - die müssen in der finalen Version natürlich raus da es die sonst druckt:

    Source Code

    1. Variabeln initialisieren:
    2. \VAR(MeineSumme)\
    3. \VAR(Klassifikation)\
    4. Datensätze loopen:
    5. \scan(j)\
    6. \SETV(Klassifikation, j:classificationtypeid)\
    7. \SETV(MeineSumme, INC(j:Feld1, j:Feld2))\
    8. \endscan\
    9. Ausgabe:
    10. \Klassifikation\
    11. \MeineSumme\
    Display All


    Finale Version ohne Leerschläge und Zeilenvorschübe:

    Source Code

    1. \VAR(MeineSumme)\\VAR(Klassifikation)\\scan(j)\\SETV(Klassifikation, j:classificationtypeid)\\SETV(MeineSumme, INC(j:Feld1, j:Feld2))\\endscan\\Klassifikation\ \MeineSumme\


    Schöne Grüsse
    Elias
    Schöne Grüsse
    Elias Zurschmiede

    delight software gmbh
  • Re: Nur 1 Datensatz auslesen

    Lieber Herr Zurschmiede,
    ich belebe meinen alten Thread wieder, da ich gerade wieder am Basteln in den RTF-Briefvorlagen bin und hierzu wieder eine Frage habe.
    Vielen Dank für Ihre bisherigen Antworten, die mir sehr gut weitergeholfen haben!

    Die Vorlage, die ich gerade erstelle, soll eine Vertragsvorlage sein. Darin werden verschiedene Daten aus dem Datensatz per Scan(a) eingefügt, u.a. auch das Land des Vertragpartners.

    Nun soll die Vorlage variabel sein - ein Abschnitt soll je nach Land verschieden lauten. Im Prinzip suche ich nach einem RTF-Befehl, der folgendes macht:
    If Land = Deutschland, then write "Textabschnitt A"
    If Land = Schweiz, then write "Textabschnitt B"
    etc.

    Im Handbuch habe ich hier leider nichts dazu gefunden. Können Sie mir hier weiterhelfen?

    Schöne Grüße, Guhnie
  • Re: Nur 1 Datensatz auslesen

    Hallo Guhnie

    Vorab: Das ist möglich. Die entsprechende Handbuchseite dazu findest Du hier: delight.ch/onlinehelp/delightcrm/rtfrep_bedingungen.htm

    Bsp:

    Source Code

    1. \if(EQ(a:countryid, 'Deutschland'))\
    2. In Deutschland...
    3. \else\
    4. \if(EQ(a:countryid, 'Schweiz'))\
    5. In der Schweiz...
    6. \else\
    7. Ausserhalb DE/CH....
    8. \endif\
    9. \endif\
    Schöne Grüsse
    Elias Zurschmiede

    delight software gmbh
  • Re: Nur 1 Datensatz auslesen

    Lieber Herr Zurschmiede,
    vielen Dank für die wie immer kompetente und superschnelle Hilfe! Und auch den Link zum Handbuch, das war eine große Hilfe für mich.
    Damit konnte ich nun das Dokument formattieren.
    Sie machen eine tolle Arbeit!
    Schöne Grüße,
    Guhnie