Report button automatically presses button with action "Save Record" to save data from form to database, because button with action "Report" gets data from database, not from form.
In your case, you can use variables to use it in report, example:
procedure Form1_Button4_OnClick (Sender: TObject; var Cancel: boolean);
begin
Form1.frxReport.Clear;
// DESIGN MODE
Form1.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Report\1.fr3');
Form1.frxReport.Variables.Clear;
Form1.frxReport.Variables[' ' + 'My Category 1'] := Null;
Form1.frxReport.Variables['My Variable 1'] := 10;
Form1.frxReport.Variables['My Variable 2'] := ''''+'Hello'+'''';
Form1.frxReport.DesignReport;
// PREVIEW MODE
//Form1.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Report\1.fr3');
//Form1.frxReport.Variables.Clear;
//Form1.frxReport.Variables[' ' + 'My Category 1'] := Null;
//Form1.frxReport.Variables['My Variable 1'] := 10;
//Form1.frxReport.Variables['My Variable 2'] := ''''+'Hello'+'''';
//Form1.frxReport.ShowReport;
end;
Dmitry.