Ignore:
Timestamp:
Jan 4, 2010, 8:02:21 AM (14 years ago)
Author:
Kevin Toppenberg
Message:

Added HTML templating

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cprs/branches/tmg-cprs/CPRS-Chart/Templates/uTemplateFields.pas

    r453 r654  
    4444    FPanelDying: boolean;
    4545    FOnDestroy: TNotifyEvent;
     46    FHTMLMode : boolean; //kt added 12/28/09
     47    FAnswerOpenTag : string; //kt added 12/28/09
     48    FAnswerCloseTag : string; //kt added 12/28/09
    4649    procedure KillLabels;
    4750    function GetFieldValues: string;
    4851    procedure SetFieldValues(const Value: string);
    4952    procedure SetAutoDestroyOnPanelFree(const Value: boolean);
     53    procedure SetAnswerHTMLTag(Value : string); //kt 12/28/09
     54
    5055  protected
    5156    procedure UpDownChange(Sender: TObject);
     
    6772    property OnDestroy: TNotifyEvent read FOnDestroy write FOnDestroy;
    6873    property FieldValues: string read GetFieldValues write SetFieldValues;
     74    property HTMLMode : boolean read FHTMLMode write FHTMLMode; //kt added 12/28/09
     75    property AnswerHTMLTag : string read FAnswerOpenTag write SetAnswerHTMLTag;  //kt added 12/28/09
    6976    property AutoDestroyOnPanelFree: boolean read FAutoDestroyOnPanelFree
    7077                                             write SetAutoDestroyOnPanelFree;
     
    161168procedure AssignFieldIDs(var Txt: string); overload;
    162169procedure AssignFieldIDs(SL: TStrings); overload;
    163 function ResolveTemplateFields(Text: string; AutoWrap: boolean; Hidden: boolean = FALSE; IncludeEmbedded: boolean = FALSE): string;
     170//kt 12/28/09 originial --> function ResolveTemplateFields(Text: string; AutoWrap: boolean; Hidden: boolean = FALSE; IncludeEmbedded: boolean = FALSE): string;
     171function ResolveTemplateFields(Text: string;
     172                               AutoWrap: boolean;
     173                               Hidden: boolean = FALSE;
     174                               IncludeEmbedded: boolean = FALSE;
     175                               HTMLMode : boolean = FALSE; //kt added 12/28/09
     176                               HTMLAnswerOpenTag : string = ''; //kt added 12/28/09
     177                               HTMLAnswerCloseTag : string = '' //kt added 12/28/09
     178                               ): string;
    164179function AreTemplateFieldsRequired(const Text: string; FldValues: TORStringList =  nil): boolean;
    165180function HasTemplateField(txt: string): boolean;
     
    179194  TemplateFieldBeginSignature = '{FLD:';
    180195  TemplateFieldEndSignature = '}';
     196  HTMLBEGINNINGTAG = '{HTML:';
     197  HTMLENDINGTAG = '}';
     198  HTMLBEGINNINGTAGLEN = length(HTMLBEGINNINGTAG);
     199  HTMLENDINGTAGLEN = length(HTMLENDINGTAG);
    181200  //MissingFieldsTxt = 'One or more required fields must still be entered.';  <-- original line.  //kt 8/8/2007
    182201  function MissingFieldsTxt : string;  //kt added
     
    519538                               AutoWrap: boolean;
    520539                               Hidden: boolean = FALSE;
    521                                IncludeEmbedded: boolean = FALSE): string;
     540                               IncludeEmbedded: boolean = FALSE;
     541                               HTMLMode : boolean = FALSE; //kt added 12/28/09
     542                               HTMLAnswerOpenTag : string = ''; //kt added 12/28/09
     543                               HTMLAnswerCloseTag : string = '' //kt added 12/28/09
     544                               ): string;
    522545var
    523546  flen, CtrlID, i, j: integer;
     
    526549  FoundEntry: boolean;
    527550  TmplFld: TTemplateField;
     551  tempSL : TStringList;
    528552
    529553  procedure AddNewTxt;
     
    584608            if (assigned(TmplFld)) and (TmplFld.DateType in DateComboTypes) then {if this is a TORDateBox}
    585609               NewTxt := Piece(NewTxt,':',1);          {we only want the first piece of NewTxt}
     610            //kt 12/28/09 --- Start mod to wrap answers in custom HTML tag ---
     611            if (HTMLMode=true) and (NewTxt <> '') then begin
     612              NewTxt := HTMLAnswerOpenTag + NewTxt + HTMLAnswerCloseTag;   //kt 12/29/09
     613            end;
     614            //kt --- End mod to wrap answers in custom HTML tag ---
    586615            AddNewTxt;
    587616          end;
     
    594623        end;
    595624      end;
     625    end else begin
     626      if HTMLMode=true then begin
     627        tempSL := TStringList.create;
     628        tempSL.Text := Result;
     629        if tempSL.Count < 3 then begin
     630          Result := HTMLAnswerOpenTag + Result + HTMLAnswerCloseTag;
     631        end;
     632        tempSL.Free;
     633      end;
    596634    end;
    597635  until(i = 0);
    598636  if not AutoWrap then
    599637    WordWrapText(Result);
     638
    600639end;
    601640
     
    18011840  FID := AID;
    18021841  FText := Text;
     1842  FHTMLMode := false; //kt added 12/28/09
    18031843  FControls := TStringList.Create;
    18041844  FIndents := TStringList.Create;
     
    22232263end;
    22242264
     2265procedure TTemplateDialogEntry.SetAnswerHTMLTag(Value : string);
     2266//kt 12/28/09 Added entire function
     2267begin
     2268  if Value='' then begin
     2269    FAnswerOpenTag :='';
     2270    FAnswerCloseTag := '';
     2271  end else begin
     2272    if Pos('<',Value)>0 then Value := Piece(Value,'<',2);
     2273    if Pos('>',Value)>0 then Value := Piece(Value,'>',1);
     2274    FAnswerOpenTag :='<'+Value+'>';
     2275    FAnswerCloseTag := '</' + Value + '>';
     2276  end;
     2277end;
     2278
    22252279function TTemplateDialogEntry.GetText: string;
    22262280begin
    2227   Result := ResolveTemplateFields(FText, FALSE);
     2281  //kt Result := ResolveTemplateFields(FText, FALSE);
     2282  Result := ResolveTemplateFields(FText, FALSE, FALSE, FALSE, FHTMLMode, FAnswerOpenTag, FAnswerCloseTag); //kt 12/29/09
    22282283end;
    22292284
Note: See TracChangeset for help on using the changeset viewer.