Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Formatierter Text und String zusammenfügen (https://www.delphipraxis.net/188296-formatierter-text-und-string-zusammenfuegen.html)

Walter Landwehr 18. Feb 2016 11:56

AW: Formatierter Text und String zusammenfügen
 
Sir Rufo,

das Thema ist etwas komplexer. Ich will schon die beiden Felder in einem Feld zusammenführen und zusätzlich noch mit : und ; ergänzen. Es können nämlich mehrere Diagnosen vorhanden sein die alle in ein Blob Feld gespeichert werden sollen. Ich hatte versucht Dir eine private Nachricht zu senden ist aber nicht möglich. Hätte gerne mit Dir mal dieses Thema besprochen, weil es doch komplexer ist als hier die Lösungen aufzeigen. Es dürfen auf keinen Fall die Schriftattribute verloren gehen. Im Reportgenerator zu realisieren ist unmöglich.

Walter Landwehr 18. Feb 2016 12:13

AW: Formatierter Text und String zusammenfügen
 
Hier mal meine Procedure wie ich es bislang gelöst habe. Leider verlieren ich hier alle Schriftattribute.

Delphi-Quellcode:
procedure TRechnungsSerienDruckFrm.AktualisiereRechnungDiagnose;
  var Satz : String;
      Suchwort : String;
      LetztesDatum : String;
begin
  TempQry.Close;
  TempQry.SQL.Text := 'Select BEHANDLUNGSDATUM, GebuehNr, Suchwort, Text from tbl_Rechnungspositionen '
                  + 'where RechnungNr = :RechnungNr and Typ = ''D'' ';
  TempQry.ParamByName('RechnungNr').AsInteger := RechnungQry.FieldByName('RechnungNr').AsInteger;
  TempQry.Open;
  DiagnoseEdit.Clear; //           
  LetztesDatum := '';
  While not TempQry.Eof do
  begin
    satz := '';
    if dmMain.ibqryOptionen.FieldByName('DIAGNOSEDATUM').AsString = 'J' then
      if LetztesDatum <> FormatDateTime('dd.mm.yyyy', TempQry.FieldByName('Behandlungsdatum').AsDatetime) then
      begin
        LetztesDatum := FormatDateTime('dd.mm.yyyy', TempQry.FieldByName('Behandlungsdatum').AsDatetime);
        Satz := FormatDateTime('dd.mm.yyyy', TempQry.FieldByName('Behandlungsdatum').AsDatetime) + ': ';
      end;

    ManuelleDiagnoseEdit.AsString := TempQry.FieldByName('Text').AsString;
    Suchwort := StringReplace(ManuelleDiagnoseEdit.Text, #13#10, ' ', [rfReplaceAll]);
    if Suchwort = '' then
       Suchwort := TempQry.FieldByName('Suchwort').AsString;
    if dmMain.ibqryOptionen.FieldByName('DIAGNOSE').AsString = 'Diagnose einfügen' then
       satz := Satz + Suchwort + '; '
    else
    if dmMain.ibqryOptionen.FieldByName('DIAGNOSE').AsString = 'Nur ICD 10 Code einfügen' then
       satz := Satz + TempQry.FieldByName('GebuehNr').AsString + '; '
    else
    begin
     if TempQry.FieldByName('GebuehNr').AsString > '' then
        satz := Satz + TempQry.FieldByName('GebuehNr').AsString + ', ' + Suchwort + '; '
     else
        satz := Satz + Suchwort + '; '
    end;

    DiagnoseEdit.CPPosition := MaxInt;
    DiagnoseEdit.InputString(Satz);
    TempQry.Next;
  end;
  if TempQry.IsEmpty then
    DiagnoseEdit.AsString := PatientQry.FieldByName('PatDiagnose').AsString; //Abwärtskompatibilität
  TempQry.Close;
  DiagnoseEdit.SelectAll;
  DiagnoseEdit.CurrAttr.FontName := ProgOptions.Texteditor.FontName;



//    DiagnoseEdit.CurrAttr.Size := ProgOptions.Texteditor.FontSize;
//    if ProgOptions.Texteditor.Bold then
//      DiagnoseEdit.CurrAttr.Style := DiagnoseEdit.CurrAttr.Style + [afsBold]
//    else
//      DiagnoseEdit.CurrAttr.Style := DiagnoseEdit.CurrAttr.Style - [afsBold];
//    if ProgOptions.Texteditor.Italic then
//      DiagnoseEdit.CurrAttr.Style := DiagnoseEdit.CurrAttr.Style + [afsItalic]
//    else
//      DiagnoseEdit.CurrAttr.Style := DiagnoseEdit.CurrAttr.Style - [afsItalic];
//    if ProgOptions.Texteditor.Underline then
//      DiagnoseEdit.CurrAttr.Style := DiagnoseEdit.CurrAttr.Style + [afsUnderline]
//    else
//      DiagnoseEdit.CurrAttr.Style := DiagnoseEdit.CurrAttr.Style - [afsUnderline];


    if pgcRechnungen.ActivePage = TabEinzel_Rechnungen then
    begin
      RechnungQry.Edit;
      RechnungQry.FieldByName('Diagnose').asString := DiagnoseEdit.AsString;
      RechnungQry.Post;
    end;
    if pgcRechnungen.ActivePage = TabSammelRechnungen then
    begin
      if PatientQry.FieldByName('PATIENTNR').Value = Patientnr then
      begin
        UpdateSammeldiagnoseQry.ParamByName('RECHNUNGNR').Value := RechnungQry.FieldByName('RECHNUNGNR').Value;
        UpdateSammeldiagnoseQry.ParamByName('PATIENTNR').Value := Patientnr;
        UpdateSammeldiagnoseQry.ParamByName('DIAGNOSE').AsString := DiagnoseEdit.AsString;
        UpdateSammeldiagnoseQry.ExecSQL;
      end
      else
      begin
        InsSammeldiagnose.ParamByName('SAMMELDIAGNOSENR').Value := dmMain.GetGeneratorWert('GEN_TBL_SAMMELDIAGNOSE');
        InsSammeldiagnose.ParamByName('RECHNUNGNR').Value := RechnungQry.FieldByName('RECHNUNGNR').Value;
        InsSammeldiagnose.ParamByName('PATIENTNR').Value := PatientQry.FieldByName('PATIENTNR').Value;
        InsSammeldiagnose.ParamByName('DIAGNOSE').AsString := DiagnoseEdit.AsString;
        InsSammeldiagnose.ExecSQL;

        Patientnr := PatientQry.FieldByName('PATIENTNR').Value;
      end;
    end;
end;

Sir Rufo 18. Feb 2016 13:15

AW: Formatierter Text und String zusammenfügen
 
Brechen wir das mal herunter:

Du hast mehrere RTF-Dokumente* und diese möchtest du in einem RTF-Dokument zusammenfassen, ohne das die Formatierungen der einzelnen Dokumente verloren gehen.

* Den noch zu formatierenden Teil sehe ich jetzt auch mal als RTF-Dokument an, bzw. ich lasse den Teil aus der Betrachtung heraus, denn das löst man dann separat.

Richtig soweit?

Walter Landwehr 18. Feb 2016 13:30

AW: Formatierter Text und String zusammenfügen
 
Ja das ist richtig.

Ich habe eine Tabelle mit dem Feld Datum (DateTime) und Diagnose (Blob). Es können nun mehrere Diagnosen in der Tabelle zu einem Patienten gehören. Diese sollen in der Rechnung alle zusammengefasst werden ohne das die Diagnosen die Attribute verlieren.

Beispiel: 14.01.2016: Diagnose 1; 15.01.2016: Diagnose 2; 01.02.2016: Diagnose 3

Am Ende sollte kein Semikolon sein.

bra 18. Feb 2016 14:09

AW: Formatierter Text und String zusammenfügen
 
Ist EK RTF (http://www.128byte.ru/) eventuell eine Alternative? Ist aber für kommerzielle Lösungen wohl kostenpflichtig.

p80286 19. Feb 2016 14:50

AW: Formatierter Text und String zusammenfügen
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1330743)
Diese sollen in der Rechnung alle zusammengefasst werden ohne das die Diagnosen die Attribute verlieren.

Wie womit erstellst Du denn die Rechnung?
Meiner Meinung nach willst Du ja nicht zwei Felder in einem zusammenfassen, sonder zwei Felder so ausgeben, daß es so aussieht, als ob es eines wäre.
Für mich ein kleiner Unterschied!

Gruß
K-H

Sir Rufo 19. Feb 2016 15:06

AW: Formatierter Text und String zusammenfügen
 
Man kann die
Delphi-Quellcode:
TRichEdit
-Komponente auch noch aufblasen mit

https://groups.google.com/forum/m/#!...al/ZDJCTaPlqWM
(Antwort von Ralph Friedman)

Mit ein paar kleinen Änderungen (warum immer nur Dateinamen und nicht Streams :roll:) kann man dann die RTF-Dokumente zusammenbasteln.

Auf der anderen Seite geht das auch mit FastReport, wenn man einen tabellarische Darstellung wählt
DatumDiagnose
01.01.2016bla blub RTF
02.01.2016blub bla RTF

Walter Landwehr 20. Feb 2016 10:36

AW: Formatierter Text und String zusammenfügen
 
Hallo,

es soll schon alles in einem Feld zusammengeführt werden. Werde mich heute mal weiter darum kümmern.

Walter Landwehr 23. Feb 2016 17:04

AW: Formatierter Text und String zusammenfügen
 
Oh Mist,

hier handelt es sich um ein TWPRichText von WPTools das ich mit einem String verbinden will ohne das die Formatierung verloren geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz