我在点击入库,出库,订购按钮时总提示 ‘应用程序在当前操作中使用了错误类型的值’,但确定下错误提示对话框后,继续点击入库,出库,订购按钮又可以正常工作,这是为什么啊?SOS!
入库按钮的代码如下:
procedure Tsjhcrk.BitBtn_rkClick(Sender: TObject);
begin
   if (edit_rkdh.Text='')or(edit_fph.Text='')or(edit_pm.Text='')or(edit_ph.Text='')
   or(edit_sl.Text='')or(edit_dj.Text='')or(edit_gys.Text='') then
    begin
        messagebox(0,pchar('请将信息输入完整!'),'试剂耗材入库',0+64);
        exit;
    end
    else
      begin
        with DM_sjhcgl.ADOQry_Code do
          begin
            close;
            SQL.Clear;
            SQL.Add('select isnull(max(入库代码),0)+1 from tbl_sjhcrk');
            open;
            rkCode:=Fields[0].AsInteger+1;
          end;
        with DM_sjhcgl.ADOCmm_NoResult do        //添加到入库表
          begin
            commandtext:='insert into tbl_sjhcrk(入库日期,入库单号,发票号,品名代码,有效期,数量,单价,供应商, 
            金额,批号,操作者,入库代码) values(:p0,:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8,:p9,:p10,:p11)';
            Parameters[0].Value:=DateTP_rkrq.Date;
            Parameters[1].Value:=trim(edit_rkdh.text);
            Parameters[2].Value:=trim(edit_fph.text);
            //Parameters[3].Value:=trim(edit_pm.text);
            Parameters[3].Value:=trim(edit_pm_dm.text);
            Parameters[4].Value:=DateTP_yxq.date;
            Parameters[5].Value:=trim(edit_sl.Text);
            Parameters[6].Value:=trim(edit_dj.Text);
            Parameters[7].Value:=trim(edit_gys.text);
            Parameters[8].Value:=strtoint(trim(edit_sl.Text))*strtofloat(trim(edit_dj.Text));
            Parameters[9].Value:=trim(edit_ph.Text);
            Parameters[10].Value:='万祥辉';
            Parameters[11].Value:=rkCode;
            Execute;
          end;
        with DM_sjhcgl.ADOCmm_NoResult1 do    //添加到库存
          begin
            CommandText:='insert into tbl_kc(品名代码,单价,数量,金额,供应商,批号,库存代码) values      
            (:p0,:p1,:p2,:p3,:p4,:p5,:p6)';
            Parameters[0].Value:=trim(edit_pm_dm.text);
            Parameters[1].Value:=trim(edit_dj.Text);
            Parameters[2].Value:=trim(edit_sl.Text);
            Parameters[3].Value:=strtoint(trim(edit_sl.Text))*strtofloat(trim(edit_dj.Text));
            Parameters[4].Value:=trim(edit_gys.text);
            Parameters[5].Value:=trim(edit_ph.Text);
            Parameters[6].Value:=rkCode;
            Execute;
          end;
        ADOTbl_View.DisableControls;
        ADOTbl_View.Active:=False;
        ADOTbl_View.Active:=True;
        ADOTbl_View.EnableControls;
        edit_fph.Text:='';
        edit_pm_dm.Text:='';
        edit_pm.Text:='';
        edit_ph.Text:='';
        edit_sl.Text:='';
        edit_dj.Text:='';
        edit_gys_dm.Text:='';
        edit_gys.Text:='';
        Edit_pm2.Text:='';
        Edit_gg.Text:='';
        Edit_zb.Text:='';
        Edit_dw.Text:='';
        Edit_cs.Text:='';
        Edit_ph2.Text:='';
        DM_sjhcgl.ADOQry_Other.Active:=false;
      end;
end;
代码都是可以执行的啊,不知道能不能这样写,之间是不是要点衔接啊!

解决方案 »

  1.   

    我调试过了,在订购界面的出错情况,
    procedure TFm_cgdd.BitBtn_qdClick(Sender: TObject);
    begin
      if (Edit_pm2.Text<>'')and(Edit_gg.Text<>'')and(Edit_dw.Text<>'')and(Edit_dj.Text<>'') and (Edit_sl.Text<>'')and(Edit_cs.Text<>'')and(Edit_gys.Text<>'')and(Edit_ph.Text<>'')and(Edit_dgr.Text<>'') then
        begin
          with DM_sjhcgl.ADOQry_Code do
            begin
              close;
              SQL.Clear;
              SQL.Add('select isnull(max(订购代码),0)+1 from tbl_cgdd');
              open;
              cgCode:=Fields[0].AsInteger+1;
            end;
          with DM_sjhcgl.ADOCmm_NoResult do     //添加到采购表
            begin
              CommandText:='insert into tbl_cgdd(品名代码,单价,订购数量,订购金额,订购人,供应商,批号,订购时间,订购人学号,订购代码,库存代码)'  //此处一次报错,一次正常
              +' values(:p0,:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8,:p9,:p10)';
              parameters[0].Value:=pmCode;
              parameters[1].Value:=trim(Edit_dj.text);
              parameters[2].Value:=trim(Edit_sl.text);
              parameters[3].Value:=floattostr(strtoint(Edit_sl.Text)*strtofloat(Edit_dj.Text));
              parameters[4].Value:=trim(Edit_dgr.text);
              parameters[5].Value:=trim(Edit_gys.text);
              parameters[6].Value:=trim(Edit_ph.text);
              parameters[7].Value:=date();
              parameters[8].Value:=trim(Edit_xh.text);
              parameters[9].Value:=cgCode;
              parameters[10].Value:=kcCode;
              Execute;
            end;
          Edit_pm2.Text:='';
          Edit_gg.Text:='';
          Edit_dw.Text:='';
          Edit_dj.Text:='';
          Edit_sl.Text:='';
          Edit_cs.Text:='';
          Edit_gys.Text:='';
          Edit_ph.Text:='';
          Edit_dgr.Text:='';
          Edit_xh.Text:='';
          Panel_ts.Visible:=false;
          showmessage('订购成功!');
          Lbl_ts.Caption:='';
        end
        else
          begin
            messagebox(0,pchar('请将信息输入完整!'),'采购订单',0+64);
            exit;
          end;
    end;
    帮看下啥,我看不错原因啊 !谢谢啊