还是不行,每次运行以后,第一次总能正常显示在查询范围内的结果,可是第二次选择查询时间以后,总是不能正常显示。
这是放在最前面的代码
DataSource2.DataSet.Close;
DataSource2.DataSet.Open;
DataSetBZSJJ.Close;
DataSetBZSJJ.SQL.Text :='SELECT * FROM SJB ';
DataSetBZSJJ.Open;
// 图表显示
DataSetBZSJJ.Close;
DataSetBZSJJ.SQL.Text :='SELECT * FROM SJB where rzrq between '''+sysutils.DateToStr(DateTimePicker1.Date)+''' and '''+sysutils.DateToStr(DateTimePicker2.Date)+'''';
DataSetBZSJJ.Open;
DataSetBZSJJ.First;
DataSource2.DataSet.Open;
while DataSetBZSJJ.Eof = false do
begin
s := sysutils.FormatDateTime('YYYY',DataSetBZSJJ.FieldByName['RZRQ'].AsDateTime) +'年' + sysutils.FormatDateTime('mm',DataSetBZSJJ.FieldByName['RZRQ'].AsDateTime) +'月';
if DataSource2.DataSet.Locate('rq',s,[]) = true then
begin
DataSource2.DataSet.Edit;
DataSource2.DataSet.FieldByName['rs'].AsInteger := DataSource2.DataSet.FieldByName['rs'].AsInteger +1;
end
else
begin
DataSource2.DataSet.Edit;
DataSource2.DataSet.Append;
DataSource2.DataSet.FieldByName['RQ'].AsString := s;
end;
DataSetBZSJJ.Next;
end;
DataChart1.Series[0].XLabelsSource := 'rq';
DataChart1.Series[0].YValues.ValueSource := 'rs'; |