procedure TFrame_sell.Button2Click(Sender: TObject);
begin
 dm.ADO_product.Open;
dm.ADO_product.First;
if not dm.ADO_product.Locate('商品编号',Edit1.Text,[])  then
begin
 ShowMessage('未查到此种商品,请检查!');
 Edit1.Text:='';
 Edit1.SetFocus();
  exit;
  end;  if dm.ADO_product.FieldByName('库存数量').AsInteger<StrToInt(Edit2.Text)  then
  begin
  ShowMessage('对不起,库存数量不足');
  Edit2.Text:='';
  Edit2.SetFocus();
  Exit;
  end
  else
  begin
  dm.ADO_tmpsell.Open;
  dm.ADO_tmpsell.Append;
  dm.ADO_tmpsell.FieldByName('销售商品编号').AsString:=dm.ADO_product.FieldByName('商品编号').AsString;
  dm.ADO_tmpsell.FieldByName('销售商品名称').AsString:=dm.ADO_product.FieldByName('商品名称').AsString;
  dm.ADO_tmpsell.FieldByName('销售商品单价').AsFloat:=dm.ADO_product.FieldByName('商品单价').AsFloat;
  dm.ADO_tmpsell.FieldByName('销售商品数量').AsInteger:=StrToInt(Edit2.Text);
  dm.ADO_tmpsell.FieldByName('收银员姓名').AsString:=Edit4.Text;
  dm.ADO_tmpsell.FieldByName('销售时间').AsDateTime:=StrToDateTime(Edit5.Text);
  dm.ADO_tmpsell.Post;
  TotalMoney:=TotalMoney+dm.ADO_product.FieldByName('商品价格').AsFloat*StrToInt(Edit2.Text);
  end;
  Edit1.Text:='';
  Edit2.Text:='';
  Label4.Caption:=FloatToStr(TotalMoney);  end;
procedure TFrame_sell.Button4Click(Sender: TObject);
begin
  dm.ADO_tmpsell.Open;
 if dm.ADO_tmpsell.IsEmpty  then
   begin
   ShowMessage('没有销售明细,不可保存');
   Exit;
   end;   if  Edit3.Text:='' then
   ShowMessage('没有收款,不可保存')   else   begin
   if(StrToFloat(Edit3.Text)<TotalMoney)  then
    begin
    MessageBox(handle,pchar('应收金额为'+FloatToStr(TotalMoney)+'元,收款不足!'),'检查输入',mb_iconwarning+mb_ok);
    Exit;
    end;
      dm.ADOQ_tmpsell.Close;
      dm.ADOQ_tmpsell.SQL.Clear;
      dm.ADOQ_tmpsell.SQL.Add('insert into t_sell(销售商品编号,销售商品名称,销售商品单价,收银员姓名,销售时间,销售数量) select (销售商品编号,销售商品名称,销售商品单价,收银员姓名,销售时间,销售商品数量) from tmpsell');
      dm.ADOQ_tmpsell.ExecSQL;
      dm.ADOQ_tmpsell.Close;
       dm.ADOQ_tmpsell.Open;
       dm.ADOQ_tmpsell.First;
        while  not dm.ADO_tmpsell.Eof  do
        begin
        dm.ADO_product.Open;
        dm.ADO_product.Locate('商品编号',dm.ADO_tmpsell.FieldByName('销售商品编号').AsString,[]);
        dm.ADO_product.Edit;
       dm.ADO_product.FieldByName('销售数量').AsInteger:=dm.ADO_product.FieldByName('销售数量').AsInteger+dm.ADO_tmpsell.FieldByName('销售商品数量').AsInteger;
       dm.ADO_product.FieldByName('库存数量').AsInteger:=dm.ADO_product.FieldByName('库存数量').AsInteger-dm.ADO_tmpsell.FieldByName('销售商品数量').AsInteger;
     dm.ADO_product.Post;
     dm.ADO_tmpsell.Next;
     end;
     dm.ADOQ_tmpsell.SQL.Clear;
     dm.ADOQ_tmpsell.SQL.Add('delete from tmpsell');
     dm.ADOQ_tmpsell.ExecSQL;
     dm.ADO_tmpsell.Close;
   MessageBox(handle,pchar('找零'+FloatToStr(StrToFloat(Edit3.Text)-TotalMoney)+'元,谢谢惠顾!') ,'销售完成',mb_iconwarning+mb_ok);
 Edit1.Visible:=False;
 Edit2.Visible:=False;
 Edit3.Text:='';
 Label4.Caption:='0';
 end;
 end;
procedure TFrame_sell.Button3Click(Sender: TObject);
begin
  dm.ADOQ_tmpsell.SQL.Clear;
 dm.ADOQ_tmpsell.SQL.Add('delete from tmpsell');
 dm.ADOQ_tmpsell.ExecSQL;
 dm.ADOQ_tmpsell.Close;
 dm.ADO_tmpsell.Close;
 dm.ADO_tmpsell.Open;
 Edit1.Visible:=False;
 Edit2.Visible:=False;
 Edit3.Text:='';
 Label4.Caption:='0';end;end.

解决方案 »

  1.   

    不会运行,也不提示出错!点击run,又回到了代码块,但没提示出错!是不是Delphi有问题
      

  2.   

    啊,ado,我猜测他只打开了pas文件没有打开工程文件
      

  3.   

    你是不是装了cnpack?
    点cnpack的run按钮,这时Delphi抛出的提示是看不到的,最好点Delphi自己的Run。
    另一种情况就是 点击Run时,底下的运行信息会提示不能运行的原因。
      

  4.   

    谢谢各位哦,我把那些Unit通过Add Project后,终于会显示出错了