線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1612
推到 Plurk!
推到 Facebook!

series的addx如何顯示日期型態

缺席
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-16 14:05:24 IP:211.76.xxx.xxx 未訂閱
請教各位前輩 我使用addx(,'',clred) 第一個參數要如何寫才會再x軸顯示日期
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-16 14:16:57 IP:218.170.xxx.xxx 未訂閱
Addx(20,'2003/01/02',clred); 不過 如果你要讓第一個參數能表示y軸的value 那麼要用add唷
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-16 14:18:07 IP:218.170.xxx.xxx 未訂閱
Addx(10,'2003/01/01',clred); 可是如果你要讓y軸的值用第一個參數表示 用add(y軸值,x軸標籤,顏色)
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-16 14:43:41 IP:218.170.xxx.xxx 未訂閱
預期你可能會問日期轉文字 formatdatetime('yyy/mm/dd',date)
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-16 22:13:49 IP:211.76.xxx.xxx 未訂閱
版主您好 再請教
引言: Series1.add(10,'2004/01/2'); Series1.add(50,'2004/01/13'); Series2.add(0,'2004/01/2'); Series2.add(20,'2004/01/4'); Series2.add(40,'2004/01/13');
這樣再X軸會出現2個2004/01/13 我想問的是addx()第一個參數是Const AYValue: Double 如果填入日期如下 addx(2004/1/13,'2004/1/13',clred)這樣編譯會錯誤 請指教
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-16 22:21:28 IP:218.170.xxx.xxx 未訂閱
指教不敢 我也是你問了後才去try try chart元件的 其實addx第一個參數是double 當chart的類型設定為horiz.bar用addx才有作用 而第一個參數就是bar的水平方向的數值 而如果直方圖要用y軸作值 那麼就要用add 如果還有問題的話 再反應
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-17 00:12:51 IP:61.230.xxx.xxx 未訂閱
引言: Series1.add(10,'2004/01/2'); Series1.add(50,'2004/01/13'); Series2.add(0,'2004/01/2'); Series2.add(20,'2004/01/4'); Series2.add(40,'2004/01/13'); 這樣再X軸會出現2個2004/01/13 我想問的是addx()第一個參數是Const AYValue: Double 如果填入日期如下 addx(2004/1/13,'2004/1/13',clred)這樣編譯會錯誤 請指教
Hi BOSS您好: 由於您提到X軸顯示日期, 小弟猜想您應該是想要繪製直方圖或是線形圖吧 只是小弟想不透的是為何您要在 > <>~悠遊法國號~
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-17 10:27:02 IP:202.154.xxx.xxx 未訂閱
yachanga你好 我的資料表格如下 編號 日期(dt) 報酬率(frate) STKF02 2004-01-02 9.01186710 STKF02 2004-02-13 0.00000000 STKF02 004-04-13 0.00000000 stb 2004-01-07 0.00000000 stb 2004-02-13 0.00000000 stb 2004-04-13 0.00000000 STB001 2004-03-08 0.00000000 STB001 2004-04-13 0.00000000 以下是程式碼 var i,cnt:Integer; Series:TLineSeries; list:TStringList; spfno:string; begin cnt:=0; list:=TStringList.Create; try with aAdo do begin while not Eof do begin if spfno <> FieldByName('pfno').AsString then begin spfno:= FieldByName('pfno').AsString; cnt:=cnt 1; list.Add(FieldByName('pfno').AsString); end; Next; end; end; list.Sorted := True; aAdo.First; for i :=0 to cnt-1 do begin Series := TLineSeries.Create(dbChart1); Series.ParentChart := aChart; Series.Title:=list.Strings[i]; Series.XLabelsSource := 'dt'; Series.YValues.ValueSource:='frate'; Series.Marks.Visible:=true; Series.Marks.Style:=smsLabelValue; Ado:=TADOQuery.Create(nil); Ado.Name:='ADO' IntToStr(i 1); Ado.Recordset:=aAdo.Recordset; ado.Open; Ado.Filtered:=False; Ado.Filter:='pfno = ' QuotedStr(Trim(list.Strings[i])); Ado.Filtered:=true; Series.DataSource := Ado; aChart.AddSeries(Series); end; aChart.Title.Text.Clear; aChart.Title.Text.Add(aTitle); finally FreeAndNil(list); end; 畫出來的圖形不對且x軸無法顯示每個日期請各位前輩指點
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-05-17 14:25:09 IP:211.74.xxx.xxx 未訂閱
Hi BOSS: 您要的結果是像這樣嗎??
    編號 日期(dt) 報酬率(frate)
        STKF02        2004-02-13        2.11
        STKF02        2004-01-02        9.0118671
        STKF02        2004-04-13        0
        stb            2004-01-07        0.54554
        stb            2004-02-13        3.888
        stb            2004-04-13        0
        STB001        2004-03-08        0.54
        STB001        2004-04-13        0.8675
您想要x軸標示日期..而且間距相同, 我這邊提供一個小技巧.... 把您想要展現的x軸日期手動塞進去...即可
procedure TForm1.Button1Click(Sender: TObject);
var
 i:Integer;
 Series:TLineSeries;
 list:TStringList;
 spfno:string;
 begindt,enddt:TdateTime;
begin
 spfno:='';
 ADOQuery1.Close;
 ADOQuery1.Open;
 list:=TStringlist.Create;     while not ADOQuery1.Eof do begin
  spfno:=ADOQuery1.fieldByName('spno').AsString;
  if list.IndexOf(spfno)<0 then
   list.Add(spfno);
  ADOQuery1.Next;
 end;     for i:=0 to list.Count-1 do begin
  begindt:=StrtoDate('2004/01/01');
  enddt:=StrtoDate('2004/04/30');
  spfno:=list.Strings[i];
  Series := TLineSeries.Create(nil);
  Series.ParentChart := Chart1;
  Series.Title:=spfno;

  while begindt
~悠遊法國號~
系統時間:2024-05-02 4:43:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!