1,在DELPHI的实际开发中,我们都需要在程序中绑定数据源,以便更好的适应实际的开发需求,这里只是简单的做个介绍:
我用的是FASTLINE,里面需要动态的绑定x,y轴,在DBCHART中可以直接设置,那么在程序中如何设置呢?
sSql := 'select scan_start_time,sum'+'('+trim(adoQtarget.FieldByName('name').Value)+')'+' as c1';
sSql := sSql + ' from pm_radio ';
sSql := sSql + ' where scan_start_time >='+#39+ FormatDateTime('YYYY-MM-DD HH:00:00',wwDBDateTimePicker1.DateTime)+#39;
sSql := sSql + ' and scan_start_time <='+#39+ FormatDateTime('YYYY-MM-DD 23:00:00',wwDBDateTimePicker1.DateTime)+#39;
sSql := sSql + ' group by scan_start_time';
adoQChart.Close;
adoQChart.SQL.Clear;
adoQChart.SQL.Text :=sSql;
adoQChart.Open;
Series1.XValues.ValueSource := 'scan_start_time';//adoQchart.FieldByName('scan_start_time').AsString;
series1.YValues.ValueSource := 'c1';//adoQchart.FieldValues['c1'];//.fieldbyname('c1').AsString;
里面直接把query中查询的数据列的结果scan_start_time,c1直接绑定;街面上可以根据实际的条件选择来改变,大家有空可以自己研究下,这东西不难,主要是不熟悉,现在的中文资料非常少,哎,我丢了C#来搞这个,不过个人认为delphi目前还不会被淘汰,因为它还是有自己的竞争力的。你用用就知道了!
2,有时候绑定了数据源,但是在X,y选值得时候却得不到所有的字段,比如你绑定一个表,里面有10个字段,但是在DBCHART里面你却只看到了3个,为什么呢?后来看看表结构,发现有的字段用了nVarchar(sql server2000),后来改为varchar,发现问题解决了。