我想在DBChart中的X轴,Y轴动态赋值,可是自己搞不定呀,何解? //日期筛选过程 procedure DateFilter(FirstDate,LastDate:TDate;DM:TdmAnFina); var StaStr,FinStr,Field:String; begin Field:='Expend_Date'; //筛选字段 StaStr:=DateToStr(FirstDate); FinStr:=DateToStr(LastDate); if(FirstDate<LastDate)then begin DM.ExpendTable.Filtered:=False; DM.ExpendTable.Filter:=Field+' >= '+'+StaStr+'+' and '+Field+' <= '+'+FinStr+'; DM.ExpendTable.Filtered:=True; end else DM.ExpendTable.Filtered:=False; end; //统计图表 procedure BarWrite(DM:TdmAnFina;Bar1,Bar2,Bar3:TBarSeries); var IncSum,ExpSum,Bala,temp:Double; BalaStr: String; begin Incsum:=0.0; Expsum:=0.0; DM.ExpendTable.First; DM.IncomeTable.First; //得到支出,收入合计数目 begin while not(DM.ExpendTable.Eof)do begin Expsum:=Expsum+DM.ExpendTable.FieldByName('Expend_Amount').AsFloat; DM.ExpendTable.Next; end; while not(DM.IncomeTable.Eof)do begin Incsum:=Incsum+DM.IncomeTable.FieldByName('Income_Amount').AsFloat; DM.IncomeTable.Next; end; end; //画图表 begin temp:=Expsum-Incsum; Bala:=Abs(temp); Bar1.AddBar(Incsum,',clYellow); Bar2.AddBar(Expsum,',clGreen); if(temp>0) then begin Bar3.AddBar(Bala,',clBlue); //Bar3.ColorSource:='clBlue'; end else BalaStr:='超支 '+ FloatToStr(Bala); Bar3.AddBar(Bala,BalaStr,clRed); //Bar3.ColorSource:='clRed'; Bar1.Title:='收入'; Bar2.Title:='支出'; Bar3.Title:='透支平衡率'; end; end; //这是调用函数,使用DateTimePicker进行ADOTable的数据筛选。 procedure TfrBala.DataChange(Sender:TObject); var i:Integer; begin DateFilter(StartDate.Date,FinishDate.Date,dmAnFina); for i:=0 to chBala.SeriesCount-1 do begin chBala.Series[i].Delete(0); BarWrite(dmAnFina,seIncome,seExpend,seBala); end; end;
----------------------------------------------
Shift your life
以下这段代码不知是否有用: FDataSet1.IndexFieldNames:=FDataSet1.Fields[0].FieldName; FDataSet1.First; while not FDataSet1.Eof do begin for I:=1 to FFieldNr do TargetRpt.Chart.Series[I-1].Add(FDataSet1.Fields[I].AsFloat, trim(FDataSet1.Fields[0].AsString)); FDataSet1.Next; end;