procedure TFrmMain.cxButton7Click(Sender: TObject);
begin
if IsChenked=False then
begin
with FrmLogin.OraQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select SCSJKS,SCSJTZ,SJHJ,SCQK,FL,XH from ZMTSJB ' +
'where bc=:bc and mth=:mth and yf=:yf and day=:day order by xh');
Params.ParamByName('mth').Value:=botStr;
Params.ParamByName('bc').Value:=cxComboBox1.Text;
Params.ParamByName('yf').Value:=cxlbmonth.Caption;
Params.ParamByName('day').Value:=cxlbday.Caption;
Open;
end;
IsChenked:=True;
end;
{显示下一条数据}
ShowMessage(IntToStr(FrmLogin.OraQuery1.RecordCount));
try
FrmLogin.OraQuery1.Next;
cxTextEdit1.Text:=FrmLogin.OraQuery1.Fields[5].DisplayText; //显示序号
cxMaskEdit1.Text:=FrmLogin.OraQuery1.Fields[0].DisplayText; //开始时间
cxMaskEdit2.Text:=FrmLogin.OraQuery1.Fields[1].DisplayText; //停止时间
cxTextEdit4.Text:=FrmLogin.OraQuery1.Fields[2].DisplayText; //时间合计
cxTextEdit5.Text:=FrmLogin.OraQuery1.Fields[3].DisplayText; //生产情况
cxComboBox2.Text:=FrmLogin.OraQuery1.Fields[4].DisplayText; //情况分类
except
on E: Exception do
begin
ShowMessage(E.Message);
Exit;
end;
end;
end;这个按钮事件是需要多次点击的.
现有两种情况
情况一
第一次执行到ShowMessage(IntToStr(FrmLogin.OraQuery1.RecordCount));,显示6,是正确的.但接下来执行到cxTextEdit1.Text:=FrmLogin.OraQuery1.Fields[5].DisplayText;
提示list index out of bounds (5),然后第一次点击的时候.ShowMessage(IntToStr(FrmLogin.OraQuery1.RecordCount));直接显示1情况二.去掉ShowMessage(IntToStr(FrmLogin.OraQuery1.RecordCount));,则第一次点击按钮不报错.但在第二次点击时.出现list index out of bounds (5),代码指定在cxTextEdit1.Text:=FrmLogin.OraQuery1.Fields[5].DisplayText;这是为什么...
if FrmLogin.OraQuery1.IsEmpty then exit;
if FrmLogin.OraQuery1.Eof then FrmLogin.OraQuery1.First
else FrmLogin.OraQuery1.Next;
//以上是我帮你加入的代码,不过你要保证下面的字段列数才行
cxTextEdit1.Text:=FrmLogin.OraQuery1.Fields[5].DisplayText; //显示序号 cxMaskEdit1.Text:=FrmLogin.OraQuery1.Fields[0].DisplayText; //开始时间 cxMaskEdit2.Text:=FrmLogin.OraQuery1.Fields[1].DisplayText; //停止时间 cxTextEdit4.Text:=FrmLogin.OraQuery1.Fields[2].DisplayText; //时间合计 cxTextEdit5.Text:=FrmLogin.OraQuery1.Fields[3].DisplayText; //生产情况 cxComboBox2.Text:=FrmLogin.OraQuery1.Fields[4].DisplayText; //情况分类
else FrmLogin.OraQuery1.Next;
//把上面的几行修改为下面的代码吧
FrmLogin.OraQuery1.Next;
if FrmLogin.OraQuery1.Eof then FrmLogin.OraQuery1.First;