home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 October / Chip_2001-10_cd1.bin / zkuste / delphi / kolekce / d6 / FRCLX.ZIP / DEMO / Unit1.pas < prev    next >
Pascal/Delphi Source File  |  2001-07-30  |  4KB  |  152 lines

  1. // FastReport 2.4 demo
  2. //
  3. // Main demo
  4.  
  5. unit Unit1;
  6.  
  7. interface
  8.  
  9. uses
  10.   SysUtils, Classes, QImgList, QStdCtrls, QComCtrls, QControls, QForms,
  11.   QGraphics, QExtCtrls, FR_Class;
  12.  
  13. type
  14.   TForm1 = class(TForm)
  15.     Tree1: TTreeView;
  16.     ImageList1: TImageList;
  17.     Image1: TImage;
  18.     Label4: TLabel;
  19.     GroupBox1: TGroupBox;
  20.     RB1: TRadioButton;
  21.     RB2: TRadioButton;
  22.     DesignBtn: TButton;
  23.     PreviewBtn: TButton;
  24.     Memo1: TMemo;
  25.     procedure FormShow(Sender: TObject);
  26.     procedure Tree1Change(Sender: TObject; Node: TTreeNode);
  27.     procedure DesignBtnClick(Sender: TObject);
  28.     procedure PreviewBtnClick(Sender: TObject);
  29.   private
  30.     { Private declarations }
  31.     WPath: String;
  32.   public
  33.     { Public declarations }
  34.   end;
  35.  
  36. var
  37.   Form1: TForm1;
  38.  
  39.  
  40. implementation
  41.  
  42. uses Unit2, Unit3, Unit4, datasets;
  43.  
  44. {$R *.xfm}
  45.  
  46.  
  47. function NodeIndex(Node: TTreeNode): Integer;
  48. begin
  49.   Result := -1;
  50.   if Pos('.', Node.Text) <> 0 then
  51.     Result := StrToInt(Copy(Node.Text, 1, Pos('.', Node.Text) - 1));
  52. end;
  53.  
  54.  
  55. procedure TForm1.FormShow(Sender: TObject);
  56. begin
  57.   WPath := ExtractFilePath(ParamStr(0));
  58.   Tree1.Items[0].Expand(True);
  59.   Tree1.Selected := Tree1.Items[0].Item[0].Item[0];
  60.   Tree1.TopItem := Tree1.Items[0];
  61. // shows how to disable particular dataset or entire datamodule
  62. //  Form2.frReport1.Dictionary.DisabledDatasets.Add('CustomerData.Bio');
  63. //  Form2.frReport1.Dictionary.DisabledDatasets.Add('CustomerData*');
  64. end;
  65.  
  66. procedure TForm1.Tree1Change(Sender: TObject; Node: TTreeNode);
  67. var
  68.   n: Integer;
  69. begin
  70.   n := NodeIndex(Node);
  71.   if n = -1 then
  72.   begin
  73.     Memo1.Text := '';
  74.     DesignBtn.Enabled := False;
  75.     PreviewBtn.Enabled := False;
  76.     Exit;
  77.   end
  78.   else if n = 11 then
  79.   begin
  80.     Memo1.Text := 'Demonstrates now to join several reports into one. To do this, fill ' +
  81.        'TfrCompositeReport.Reports property by references to the other ' +
  82.        'reports and call its ShowReport method. Reports can have different ' +
  83.        'page sizes and orientation.';
  84.     DesignBtn.Enabled := False;
  85.     PreviewBtn.Enabled := True;
  86.     Exit;
  87.   end;
  88.   with Form2.frReport1 do
  89.   begin
  90.     LoadFromFile(WPath + IntToStr(n) + '.frf');
  91.     if Dictionary.Variables.IndexOf('Description') <> - 1 then
  92.       Memo1.Text := Dictionary.Variables['Description'] else
  93.       Memo1.Text := '';
  94.     DesignBtn.Enabled := True;
  95.     PreviewBtn.Enabled := True;
  96.   end;
  97. end;
  98.  
  99. procedure TForm1.DesignBtnClick(Sender: TObject);
  100. var
  101.   Node: TTreeNode;
  102. begin
  103.   Node := Tree1.Selected;
  104.   if (Node = nil) or (NodeIndex(Node) = -1) or (NodeIndex(Node) = 13) then Exit;
  105.   Form2.frReport1.DesignReport;
  106. end;
  107.  
  108. procedure TForm1.PreviewBtnClick(Sender: TObject);
  109. var
  110.   n: Integer;
  111.   Node: TTreeNode;
  112.   Report: TfrReport;
  113. begin
  114.   Node := Tree1.Selected;
  115.   if (Node = nil) or (NodeIndex(Node) = -1) then Exit;
  116.   n := NodeIndex(Node);
  117.   with Form2 do
  118.   if n = 11 then { Composite report }
  119.   begin
  120.     Report := frCompositeReport1;
  121.     frReport1.LoadFromFile(WPath + '1.frf');
  122.     frReport2.LoadFromFile(WPath + '2.frf');
  123.     frCompositeReport1.DoublePass := True;
  124.     frCompositeReport1.Reports.Clear;
  125.     frCompositeReport1.Reports.Add(frReport1);
  126.     frCompositeReport1.Reports.Add(frReport2);
  127.   end
  128.   else
  129.   begin
  130.     Report := frReport1;
  131.     Report.LoadFromFile(WPath + IntToStr(n) + '.frf');
  132.     if n = 10 then { "Live" report }
  133.     begin
  134.       Report.OnObjectClick := frReport1ObjectClick;
  135.       Report.OnMouseOverObject := frReport1MouseOverObject;
  136.     end
  137.     else
  138.     begin
  139.       Report.OnObjectClick := nil;
  140.       Report.OnMouseOverObject := nil;
  141.     end;
  142.   end;
  143.   if RB1.Checked then
  144.     Report.Preview := nil else
  145.     Report.Preview := Form3.frPreview1;
  146.   Report.ShowReport;
  147.   if RB2.Checked then
  148.     Form3.ShowModal;
  149. end;
  150.  
  151. end.
  152.