正在做一个门诊划价系统,在Form3上选择药品和数量,系统记录到数据库的相应表中,点击生成表单按钮,系统弹出表单Form12.选择药品和数量这块已经做好了,表中也能记录。可一点击生成表单按钮,系统就死掉了,能强制结束运行,可就是弹不出表单。
代码如下:
procedure TForm3.Btn_okClick(Sender: TObject);  注:Btn_ok是Form3上的生成表单按钮
begin
  DataM.ADOQuery6.Connection:=DataM.ADOConnection1;  
  DataM.ADOQuery6.Close;
  DataM.ADOQuery6.SQL.Clear;
  DataM.ADOQuery6.SQL.Text:='select * from 用户药品表';  注:用户药品表中记录了该用户的购药记录。
  DataM.ADOQuery6.Open;
  if DataM.ADOQuery6.RecordCount=0 then
    begin
      showmessage('无药品信息!');
      Form3.ComboBox1.Text:='';        注:下拉菜单选择药品。
      Form3.E_singleprice.Text:='';    单价
      Form3.E_dn.Text:='';              数量
      Form3.ComboBox1.SetFocus;
    end
   else
     begin                 
       sum:=0;   总价,已定义。
       Form12.E_pid.Text:=Form3.E_pid.Text;          
       Form12.E_pname.Text:=Form3.E_pname.Text;
       Form12.E_pid.Enabled:=false;
       Form12.E_pname.Enabled:=false;
       Form12.E_total.Enabled:=false;
       Form12.E_yingfu.Enabled:=false;
       Form12.E_shifu.Enabled:=false;
       Form12.E_zhaoling.Enabled:=false;
       Form12.Button1.Enabled:=false;
       Form12.Button4.Enabled:=false;
       Form12.DBGrid2.DataSource:=DataM.DataSource4; 
       while not DataM.ADOQuery6.Eof do
        {begin
         sp:=DataM.ADOQuery6.fieldbyname('单价').AsFloat;
         num:=DataM.ADOQuery6.fieldbyname('数量').AsInteger;
         sum:=sum+sp*num;
         DataM.ADOQuery6.Next;
        end}
       if sum<>0 then
       {begin
       Form12.E_total.Text:=FloatToStr(sum);
       Form12.E_yingfu.Text:=Form12.E_total.Text;
       end }
       DataM.ADOQuery6.Close;
       DataM.ADOQuery6.SQL.Clear;
       DataM.ADOQuery6.SQL.Text:='delete * from 用户药品表';
       DataM.ADOQuery6.ExecSQL;
       Form12.Show;
     end
end;

解决方案 »

  1.   


    Form12.DBGrid2.DataSource:=DataM.DataSource4; 
    DataM.ADOQuery6.first
      

  2.   

    希望大家指点指点,我 是第一次接触delphi,菜鸟级的。谢谢!
      

  3.   

      Form3.ComboBox1.SetFocus; 
        end 
      else 
        begin               
          Form12:= TForm12.create(self);            // 加这行进去看看
          sum:=0;  总价,已定义。 
          Form12.E_pid.Text:=Form3.E_pid.Text;          
          Form12.E_pname.Text:=Form3.E_pname.Text; 
          Form12.E_pid.Enabled:=false;