正在做一个门诊划价系统,在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;
代码如下:
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;
Form12.DBGrid2.DataSource:=DataM.DataSource4;
DataM.ADOQuery6.first
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;