Creating a MemoView component in Delphi code

Hello

I have a report that is constructed in code and is running well, but I need to have one MemoView component that will display two database values. E.g.

MyText := TfrxMemoView.create(MyDataBand);

  MyText.Name := 'TxtUser_Ref';

  MyText.DataSet := frxDBDS_CTSummary;

MyText.DataField:= 'frxDBDSCTSummary.UsersRef' + ' User ID: ' + 'frxDBDS_CTSummary.UserID';

  MyText.Top:= fr1cm * 0;

  MyText.Left := fr1cm * 5.2;

  MyText.Width:= fr1cm * 3.5;

  MyText.Height := MyDataBand.height;

  MyText.StretchMode := smMaxHeight;

  MyText.Font.Size:= 8;

  MyText.Frame.Typ := [ftLeft,ftRight,ftTop,ftBottom];

However, this does not produce the correct result and causes an error (data field cannot be found - I know this is not the right way)

I have tried the following: MyText.Memo. addStrings('<frxDBDSCTSummary."UsersRef">' + ' User ID: ' + '<frxDBDS_CTSummary."UserID">';

This also does not function. Any ideas as how to get the MemoView to display more than one database field?


Regards

Tom Dalton

Comments

  • Use

    MyText.Memo.Text := '[frxDBDSCTSummary."UsersRef"] User ID: [frxDBDS_CTSummary."UserID"]';

    instead of

    MyText.DataSet := frxDBDS_CTSummary;

    MyText.DataField:= 'frxDBDSCTSummary.UsersRef' + ' User ID: ' + 'frxDBDS_CTSummary.UserID';

  • The fix does not work! I tried it. Paul Gursky also suggested this.

    I have played around with the code a bit and found out that:

    With some testing I figured out that you must not set the Datafield parameter at all. I removed the line of code.

    The reference in the Memo text must include both square brackets to enclose the database field references. 

    MyText.Memo.Text := '[CTSummary."Users_Ref"] User ID: [CTSummary."UserID"]'; //This works!

    The reference to the database field should not be the passed dataset reference e.g. MyText.DataSet := frxDBDS_CTSummary; but rather the actual query name; in this case CTSummary.


    This tested and it does work.

    Regards

    TomD

     

Leave a Comment