如何用語句實現擷取fastreport4.011中chart

來源:互聯網
上載者:User
使用fastreport4.011,製作出與資料庫相聯的chart圖形,chart包含的圖形bar有三個?(fastreport中顯示的就是bar,並沒有名稱的屬性?)
偶現在想用語句實現的功能如下
1:擷取其chart與bar(chart所包含的bar),擷取後,對bar進行圖形轉換!例如:直條圖換為園形圖等等!擷取chart已經搞定,可是擷取其中的chart所包含的bar應該怎樣實現,實在是沒有辦法了?

擷取其chart的語句是這樣寫的,
var
VChart :TfrxChartView;
begin
VChart := TfrxChartView(frxReportConstrue.FindObject('Chart'));
end;

procedure TForm_DesignReport.SetChart;
var
i: Integer;
sSeriesType, sFieldName: String;
pChart: TDBChart;
sSeries: TChartSeries;

vMemo: TfrMemoView;
vBand2: TFrBandView;
myDataSet: TClientDataSet;
myFrDataSet: TFrDBDataSet;
myChart: TFrChartView;
begin
//尋找報表中是否有特定的Chart
myChart:=TfrChartView(FRReport.Pages[0].FindObject('myChart'));
if myChart=nil then Exit;

//尋找報表中是否有特定的Memo, 然後根據Memo對Chart進行設定
vMemo := TfrMemoView(FRReport.FindObject('SetmyChart'));
if vMemo=nil then Exit;

//得到主項資料
vBand2:=TfrBandView(FRReport.Pages[0].FindObject('myPageMasterData_myDataSet'));
if vBand2=nil then Exit;

//得到主項資料對應的資料集
myFrDataSet:=(Self.FindComponent(vBand2.DataSet) as TFrDBDataSet);
if myFrDataSet=nil then Exit;
myDataSet:=TClientDataSet(myFrDataSet.DataSet);

pChart:=TDBChart.Create(Self);
try
pChart.RemoveAllSeries;
pChart.View3D:=vMemo.Memo.Values['View3D']='1';
pChart.LeftAxis.Title.Font.Name:='@宋體';
pChart.LeftAxis.Title.Font.Size:=10;
pChart.LeftAxis.Title.Angle:=270;
pChart.LeftAxis.Automatic:=True;

if trim(vMemo.Memo.Values['LeftAxisMax'])<>'-1' then
begin
pChart.LeftAxis.Automatic:=False;
pChart.LeftAxis.AutomaticMaximum:=False;
pChart.LeftAxis.Maximum:=StrToFloat(trim(vMemo.Memo.Values['LeftAxisMax']));
//ShowMessage('111"'+vMemo.Memo.Values['LeftAxisMax']+'"'+vMemo.Memo.Values['LeftAxisMin']+'"');
end;
if trim(vMemo.Memo.Values['LeftAxisMin'])<>'-1' then
begin
//ShowMessage('222"'+vMemo.Memo.Values['LeftAxisMax']+'"'+vMemo.Memo.Values['LeftAxisMin']+'"');
pChart.LeftAxis.Automatic:=False;
pChart.LeftAxis.AutomaticMinimum:=False;
pChart.LeftAxis.Minimum:=StrToFloat(trim(vMemo.Memo.Values['LeftAxisMin']));
end;
pChart.LeftAxis.AutomaticMaximum:=trim(vMemo.Memo.Values['LeftAxisMax'])='-1';
pChart.LeftAxis.AutomaticMinimum:=trim(vMemo.Memo.Values['LeftAxisMin'])='-1';

pChart.LeftAxis.Title.Caption:=vMemo.Memo.Values['YLabel'];
pChart.BottomAxis.Title.Caption:=vMemo.Memo.Values['XLabel'];

sSeriesType:=vMemo.Memo.Values['Series'];
for i:=0 to myDataSet.FieldCount - 1 do
begin
sFieldName:=myDataSet.Fields.FieldName;
if vMemo.Memo.Values[sFieldName]<>'' then
begin
if sSeriesType='Line' then sSeries:=TLineSeries.Create(pChart)
else if sSeriesType='Bar' then sSeries:=TBarSeries.Create(pChart)
else if sSeriesType='Pie' then sSeries:=TPieSeries.Create(pChart);
pChart.AddSeries(sSeries);
sSeries.DataSource:=myDataSet;
sSeries.Title:=vMemo.Memo.Values[sFieldName];
sSeries.YValues.ValueSource:=sFieldName;
end;
end;
myChart.AssignChart(pChart);
except
ShowMessage('圖形設定錯誤!')
end;
end;
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.