2013-09-25 2 views
3

빠른 보고서 4.13.1을 사용하고 있습니다. 내 요약 밴드에 차트의 번호를 표시해야하고, 나는 동적으로 그들을 밴드의 OnBeforePrint 이벤트 핸들러에서 생성하려고합니다. 문제는 차트가 올바르게 작성되었지만 시리즈에 추가 할 데이터가 표시되지 않는다는 것입니다. 내 OnBeforePrint 이벤트는 다음과 같습니다.코드에서 TfrxChartView를 만드는 방법은 무엇입니까?

var 
    dsSections, 
    dsTests, 
    dsHistory: TfrxDataSet; 

    Chart: TfrxChartView; 
    ChartCount: Integer;            
begin 
    dsSections := Report.GetDataSet('frdTestSections'); 
    dsTests := Report.GetDataSet('frdResults'); 
    dsHistory := Report.GetDataSet('frdTestHistory'); 

    ChartCount := 0; 
    dsSections.First; 
    while not dsSections.Eof do 
    begin 
    dsTests.First; 
    while not dsTests.Eof do 
    begin 
     if dsHistory.RecordCount > 0 then 
     begin 
     Chart := TfrxChartView.Create(rsHistory); 
     Chart.Left := (ChartCount mod 2) * 8 + 1; 
     Chart.Top := (ChartCount div 2) * 5 + 0.5; 

     Chart.Width := 8; 
     Chart.Height := 5; 
     Chart.Chart.Title.Text.Text := dsTests.Value('Name'); 
     Chart.Chart.View3D := False; 

     Chart.AddSeries(csLine); 
     dsHistory.First; 
     while not dsHistory.Eof do 
     begin 
      ShowMessage(dsTests.Value('Name') + #13#10 + IntToStr(dsHistory.RecNo + 1) + ' ' +dsHistory.Value('Result')); // this is for debugging only 
      Chart.Series[0].Add(dsHistory.Value('Result'), IntToStr(dsHistory.RecNo + 1), clBlue);                                                     
      dsHistory.Next; 
     end;                          

     Inc(ChartCount);           
     end; 
     dsTests.Next; 
    end; 
    dsSections.Next; 
    end;     
end; 

무엇이 누락 되었습니까? TfrxChartView의 재산이 있습니까? 나는 그다지 좋지 않다는 것을 설정해야합니까?

답변

1

XVal ues 및 YValues ​​대신 Chart.Series [0] .Add

//..... 
    while not dsHistory.Eof do 
    begin 
    Chart.SeriesData[0].XValues := Chart.SeriesData[0].XValues + IntToStr(dsHistory.RecNo + 1) + ';'; 
    Chart.SeriesData[0].YValues := Chart.SeriesData[0].YValues + FloatToStr(dsHistory.Value('Result')) + ';'; 
    dsHistory.Next; 
    end; 

//..... 
2

이 코드는 바로 Series[0]을 만든 후 일부 설정이 누락되었습니다

  • Datatype 속성을, 그 데이터가 dtDBData, dtBandData 또는 dtFixedData에서 오는 여부를 설정합니다. 이 dtDBData의 경우
    • , 당신은 그 Active 마침내 dtBandData의 경우
  • XSourceYSource 속성을 그 DataBand 속성을 다음 설정해야
  • 을 그 DataSet 재산
  • 을 설정해야 속성