QRChart问题(100分)

  • 主题发起人 主题发起人 toy_rong
  • 开始时间 开始时间
T

toy_rong

Unregistered / Unconfirmed
GUEST, unregistred user!
部门 要求交期 实际交期
下料组 2006-05-15 05:00:00.000 2006-05-14 23:00:00.000
铣床组 2006-05-15 14:00:00.000 2006-05-16 05:00:00.000
钻床 2006-05-15 22:00:00.000 2006-05-18 15:00:00.000
CNC粗框 2006-05-16 15:00:00.000 2006-05-18 17:00:00.000
钻磨组 2006-05-16 23:00:00.000 2006-05-19 15:00:00.000
CNC镗孔 2006-05-17 12:00:00.000 2006-05-20 01:00:00.000
组装组 2006-05-17 22:00:00.000 2006-05-21 02:00:00.000
CNC精框 2006-05-18 21:00:00.000 2006-05-23 14:00:00.000
总装组 2006-05-19 06:00:00.000 2006-05-25 15:00:00.000
怎么样用QRChart控件做出两条线,其中要求交期要显示为直线,实际交期显示为曲线哈,大侠些帮忙看下哈
 
你现在要求交期的时间也没法是直线吧。除非你调整部门的X坐标位置。
除非这样,按照小时为单位计算部门之间的间隔,然后调整X坐标,把时间作为Y坐标,但是这样有一个毛病,就是部门之间的距离可能会不等。这个应该不是你要的吧?
 
就是这样的效果哈,怎么实现两条线,要求交期一条,实际交期一条
 
procedure TForm1.BitBtn1Click(Sender:TObject);
var d1:array[0..8] of tdatetime;
d2:array[0..8] of tdatetime;
x:array[0..8] of tdatetime;
//调整后的坐标
l1:array[0..8] of string;
temp:Single;
i:Integer;
begin
l1[0]:='下料组';
d1[0]:=strtodatetime('2006-05-15 05:00:00.000');
d2[0]:=strtodatetime('2006-05-14 23:00:00.000');
l1[1]:='铣床组';
d1[1]:=strtodatetime('2006-05-15 14:00:00.000');
d2[1]:=strtodatetime('2006-05-16 05:00:00.000');
l1[2]:='钻床';
d1[2]:=strtodatetime('2006-05-15 22:00:00.000');
d2[2]:=strtodatetime('2006-05-18 15:00:00.000');
l1[3]:='CNC粗框';
d1[3]:=strtodatetime('2006-05-16 15:00:00.000');
d2[3]:=strtodatetime('2006-05-18 17:00:00.000');
l1[4]:='钻磨组';
d1[4]:=strtodatetime('2006-05-16 23:00:00.000');
d2[4]:=strtodatetime('2006-05-19 15:00:00.000');
l1[5]:='CNC镗孔';
d1[5]:=strtodatetime('2006-05-17 12:00:00.000');
d2[5]:=strtodatetime('2006-05-20 01:00:00.000');
l1[6]:='组装组';
d1[6]:=strtodatetime('2006-05-17 22:00:00.000');
d2[6]:=strtodatetime('2006-05-21 02:00:00.000');
l1[7]:='CNC精框';
d1[7]:=strtodatetime('2006-05-18 21:00:00.000');
d2[7]:=strtodatetime('2006-05-23 14:00:00.000');
l1[8]:='总装组';
d1[8]:=strtodatetime('2006-05-19 06:00:00.000');
d2[8]:=strtodatetime('2006-05-25 15:00:00.000');
//计算X坐标。
x[0]:=d1[0];
x[8]:=d1[8];
temp:=x[8]-x[0];
//换算成分钟用于绘图
for i:=0 to 8do
begin
x:=(d1-d1[0])*9/temp+d1[0];
end;
for i:=0 to 8do
begin
Series1.AddxY(x,d1,l1);
Series2.AddxY(x,d2,l1);
end;
Series1.yValues.DateTime:=True;
Series2.yValues.DateTime:=True;
end;
 
zywcd要求交期我要它是直线呀,实际交期可以是曲线哈,先给50哈,请再看看
 
难道不是直线?那就是我自己眼睛花了,呵呵。
 
谢谢zywcd,可以了哈
 
后退
顶部