DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: hfh9801
今日帖子: 0
在线用户: 4
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 harwk (安腾) ★☆☆☆☆ -
盒子活跃会员
2004/1/10 12:48:14
标题:
DBChart中的X轴,Y轴如何动态赋值? 浏览:1903
加入我的收藏
楼主: 我想在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
作者:
男 liberson ( ) ★☆☆☆☆ -
盒子活跃会员
2004/1/10 13:39:11
1楼: 以下这段代码不知是否有用:
  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;

----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行80.07813毫秒 RSS