⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frxcharteditor.pas

📁 报表源码 FastReport 3 is new generation of the report generators components. It consists of report engin
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      YValuesE.Text:= FCurSeries.YSource;
    end;

    TopNE.Text:= IntToStr(FCurSeries.TopN);
    TopNCaptionE.Text:= FCurSeries.TopNCaption;
    SortCB.ItemIndex:= Integer(FCurSeries.SortOrder);
    FUpdating:= False;
  end;
end;

procedure TfrxChartEditorForm.AddBClick(Sender:TObject);
var
  pt:TPoint;
begin
  ChartTree.SetFocus;
  pt:= AddB.ClientToScreen(Point(0, 24));
  Popup.Popup(pt.X, pt.Y);
end;

procedure TfrxChartEditorForm.AddClick(Sender:TObject);
var
  sc:TSeriesClass;
  s:TChartSeries;
  n:TTreeNode;
  ind:Integer;
  b:Boolean;
begin
  ind:= TMenuItem(Sender).Tag;
  sc:= ChartSeries[ind];
  s:= TChartSeries(sc.NewInstance);
  s.Create(FChart.Chart);
  FChart.Chart.AddSeries(s);
  FChart.SeriesData.Add;

  with FChart.Chart do
  begin
    b:= not (s is TPieSeries);
    View3DOptions.Orthogonal:= b;
    AxisVisible:= b;
    View3DWalls:= b;
  end;

  n:= ChartTree.Items.AddChild(ChartTree.Items[0], 'Series'+
    IntToStr(ChartTree.Items.Count));
  n.ImageIndex:= ind+1;
  n.SelectedIndex:= ind+1;
  n.StateIndex:= ind+1;
  n.Data:= s;
  ChartTree.Selected:= n;
  ChartTreeClick(nil);
end;

procedure TfrxChartEditorForm.DeleteBClick(Sender:TObject);
var
  s:TChartSeries;
begin
  ChartTree.SetFocus;
  s:= ChartTree.Selected.Data;
  s.Free;
  FCurSeries.Free;
  ChartTree.Selected.Free;
  ChartTree.Selected:= ChartTree.Items[0];
  ChartTreeClick(nil);
end;

procedure TfrxChartEditorForm.InsExpressionB1Click(Sender:TObject);
var
  s:String;
begin
  s:= TfrxCustomDesigner(Owner).InsertExpression('');
  if s<>'' then
  begin
    X1ValuesCB.Text:= s;
    X1ValuesCB.SetFocus;
  end;
end;

procedure TfrxChartEditorForm.InsExpressionB2Click(Sender:TObject);
var
  s:String;
begin
  s:= TfrxCustomDesigner(Owner).InsertExpression('');
  if s<>'' then
  begin
    Y1ValuesCB.Text:= s;
    Y1ValuesCB.SetFocus;
  end;
end;

procedure TfrxChartEditorForm.InsExpressionB3Click(Sender:TObject);
var
  s:String;
begin
  s:= TfrxCustomDesigner(Owner).InsertExpression('');
  if s<>'' then
  begin
    X2ValuesCB.Text:= s;
    X2ValuesCB.SetFocus;
  end;
end;

procedure TfrxChartEditorForm.InsExpressionB4Click(Sender:TObject);
var
  s:String;
begin
  s:= TfrxCustomDesigner(Owner).InsertExpression('');
  if s<>'' then
  begin
    Y2ValuesCB.Text:= s;
    Y2ValuesCB.SetFocus;
  end;
end;

procedure TfrxChartEditorForm.CalcWidth(RB:TRadioButton);
begin
  RB.Width:= Canvas.TextWidth(RB.Caption)+24;
end;

procedure TfrxChartEditorForm.EnablePanel(P:TWinControl; E:Boolean);
var
  i:Integer;
begin
  for i:= 0 to P.ControlCount-1 do
  begin
    THackControl(P.Controls[i]).Enabled:= E;
    if not E then
      if (P.Controls[i] is TEdit) or (P.Controls[i] is TComboBox) then
        THackControl(P.Controls[i]).Text:= '';
    if P.Controls[i] is TGroupBox then
      EnablePanel(TWinControl(P.Controls[i]), E);
  end;
end;

procedure TfrxChartEditorForm.FillDataFields;
var
  ds:TfrxDataSet;
  l:TStringList;
  i:Integer;
begin
  ds:= FReport.GetDataSet(DatasetsCB.Items[DatasetsCB.ItemIndex]);
  if ds = nil then
  begin
    X1ValuesCB.Items.Clear;
    Y1ValuesCB.Items.Clear;
  end
  else
  begin
    l:= TStringList.Create;
    try
      ds.GetFieldList(l);
      for i:= 0 to l.Count-1 do
        l[i]:= FReport.GetAlias(ds)+'."'+l[i]+'"';

      X1ValuesCB.Items:= l;
      Y1ValuesCB.Items:= l;
    finally
      l.Free;
    end;
  end;
end;

procedure TfrxChartEditorForm.FillDataFields1;
var
  db:TfrxDataBand;
  ds:TfrxDataSet;
  l:TStringList;
  i:Integer;
begin
  db:= TfrxDataBand(FReport.FindObject(DatabandsCB.Items[DatabandsCB.ItemIndex]));
  if db<>nil then
    ds:= db.DataSet
  else
    ds:= nil;
  if ds = nil then
  begin
    X2ValuesCB.Items.Clear;
    Y2ValuesCB.Items.Clear;
  end
  else
  begin
    l:= TStringList.Create;
    try
      ds.GetFieldList(l);
      for i:= 0 to l.Count-1 do
        l[i]:= FReport.GetAlias(ds)+'."'+l[i]+'"';

      X2ValuesCB.Items:= l;
      Y2ValuesCB.Items:= l;
    finally
      l.Free;
    end;
  end;
end;

procedure TfrxChartEditorForm.DoClick(Sender:TObject);
begin
  if FUpdating then Exit;
  FUpdating:= True;

  case TControl(Sender).Tag of
    1:// DBSourceRB
      begin
        DBSourceRB.Checked:= True;
        FCurSeries.DataType:= dtDBData;
        FCurSeries.XSource:= '';
        FCurSeries.YSource:= '';
        EnablePanel(DBSourceP, True);
        EnablePanel(BandSourceP, False);
        EnablePanel(FixedDataP, False);
      end;

    2:// DatasetsCB
      begin
        FillDataFields;
        FCurSeries.DataSet:= FReport.GetDataSet(DatasetsCB.Items[DatasetsCB.ItemIndex]);
      end;

    3:// X1ValuesCB
      begin
        FCurSeries.XSource:= X1ValuesCB.Text;
      end;

    4:// Y1ValuesCB
      begin
        FCurSeries.YSource:= Y1ValuesCB.Text;
      end;

    5:// BandSourceRB
      begin
        BandSourceRB.Checked:= True;
        FCurSeries.DataType:= dtBandData;
        FCurSeries.XSource:= '';
        FCurSeries.YSource:= '';
        EnablePanel(DBSourceP, False);
        EnablePanel(BandSourceP, True);
        EnablePanel(FixedDataP, False);
      end;

    6:// DatabandsCB
      begin
        FillDataFields1;
        FCurSeries.DataBand:=
          TfrxDataBand(FReport.FindObject(DatabandsCB.Items[DatabandsCB.ItemIndex]));
      end;

    7:// X2ValuesCB
      begin
        FCurSeries.XSource:= X2ValuesCB.Text;
      end;

    8:// Y2ValuesCB
      begin
        FCurSeries.YSource:= Y2ValuesCB.Text;
      end;

    9:// FixedDataRB
      begin
        FixedDataRB.Checked:= True;
        FCurSeries.DataType:= dtFixedData;
        FCurSeries.XSource:= '';
        FCurSeries.YSource:= '';
        EnablePanel(DBSourceP, False);
        EnablePanel(BandSourceP, False);
        EnablePanel(FixedDataP, True);
      end;

    10:// XValuesE
      begin
        FCurSeries.XSource:= XValuesE.Text;
      end;

    11:// YValuesE
      begin
        FCurSeries.YSource:= YValuesE.Text;
      end;

    12:// TopNE
      begin
        FCurSeries.TopN:= StrToInt(TopNE.Text);
      end;

    13:// TopNCaptionE
      begin
        FCurSeries.TopNCaption:= TopNCaptionE.Text;
      end;

    14:// SortCB
      begin
        FCurSeries.SortOrder:= TfrxSeriesSortOrder(SortCB.ItemIndex);
      end;
  end;

  FUpdating:= False;
end;

procedure TfrxChartEditorForm.UpDown1Click(Sender:TObject; Button:TUDBtnType);
begin
  DoClick(Sender);
end;

procedure TfrxChartEditorForm.FormCreate(Sender:TObject);
begin
  frxResources.LocalizeForm(Self);
end;

initialization
  frxComponentEditors.Register(TfrxChartView, TfrxChartEditor);
  frxHideProperties(TChart, 'Align;AllowPanning;AllowZoom;Anchors;AnimatedZoom;'+
    'AnimatedZoomSteps;AutoSize;BackImage;BackImageInside;BackImageMode;'+
    'BevelInner;BevelOuter;BevelWidth;BorderStyle;BorderWidth;ClipPoints;Color;'+
    'Constraints;Cursor;DragCursor;DragKind;DragMode;DockSite;Enabled;Foot;Frame;Height;'+
    'HelpContext;Hint;Left;Locked;MarginBottom;MarginLeft;MarginRight;MarginTop;'+
    'MaxPointsPerPage;Name;Page;ParentColor;ParentShowHint;PopupMenu;PrintProportional;'+
    'ScaleLastPage;SeriesList;ShowHint;TabOrder;TabStop;Tag;Top;UseDockManager;'+
    'Visible;Width');
  frxHideProperties(TChartSeries, 'ColorSource;Cursor;DataSource;Name;'+
    'ParentChart;Tag;XLabelsSource');
  frxHideProperties(TfrxChartView, 'SeriesData');

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -