⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitxpxs.pas

📁 这是一个很好的超市管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        money1 := strtofloat(Edit3.Text) * strtoint(Edit2.Text);
        Label6.Caption := floattostr(strtofloat(Label6.Caption) + money1);
        CLS;
        DM.ADOQXPXS1.Close;
        DM.ADOQXPXS1.Open;
        Combobox3.SetFocus;
      end;
    end
    else
    begin
      first;
      with DM.ADOQXPXS do
      begin
        close;
        SQL.Clear;
        SQL.Add(str6);
        parameters.ParamByName('number').Value := DM.ADOQTEMP3.fieldbyname('sell_number').AsInteger + strtoint(Edit2.Text);
        try
          if (not prepared) then
            prepared := true;
          ExecSQL;
          money1 := strtofloat(Edit3.Text) * strtoint(Edit2.Text);
          Label6.Caption := floattostr(strtofloat(Label6.Caption) + money1);
          CLS;
          Combobox3.SetFocus;
        except
          showmessage('操作失败,请再试!');
          exit;
        end;
      end;
    end;
  end;
    {with DM.ADOQXPXS do
    begin
      close;
      SQL.Clear;
      SQL.Add(str3);
      parameters.ParamByName('stock').Value := DM.ADOQTEMP4.fieldbyname('prod_stock').AsInteger - strtoint(Edit2.Text);
      parameters.ParamByName('sale').Value := DM.ADOQTEMP4.fieldbyname('prod_sale').AsInteger + strtoint(Edit2.Text);
      parameters.ParamByName('id').Value := trim(Combobox3.Text);
      try
        if (not prepared) then
          prepared := true;
        ExecSQL;
      except
        with DM.ADOQXPXS do
        begin
          close;
          SQL.Clear;
          SQL.Add(str4);
          parameters.ParamByName('id').Value := trim(Combobox3.Text);
          parameters.ParamByName('time').Value := times;
          try
            if (not prepared) then
              prepared := true;
            ExecSQL;
            Label6.Caption := floattostr(strtofloat(Label6.Caption) - money1);
          except
            showmessage('操作失败,请把刚添加的交易删除掉!');
            DM.ADOQXPXS1.Refresh;
            exit;
          end;
        end;
      end;
    end;}
  DM.ADOQXPXS1.Close;
  DM.ADOQXPXS1.Open;
end;


procedure TFrmXPXS.FormShow(Sender: TObject);
begin
  DIS;
  //DM.ADOQXPXS1.Open;
  image7.Enabled := true;
  Edit1.Clear;
end;

procedure TFrmXPXS.Image4Click(Sender: TObject);
var
  i, j: integer;
  money, money1: real;
  str1, str2, str3, str4, str6: string;
begin
  if (Edit1.Text = '') or (strtofloat(Edit1.Text) < strtofloat(Label6.Caption)) then
  begin
    messagebox(0, pchar('收额不足,应收金额为' + Label6.Caption + '元,收额不足!'),'检查输入', MB_OK+MB_ICONWARNING);
    exit;
  end;
  str1 := 'select * from sell where sell_pay = :pay';
  str2 := 'update sell set sell_pay = :pay where sell_id = :id';
  str3 := 'select * from prod where prod_id = :id';
  str4 := 'update prod set prod_stock = :stock, prod_sale = :sale where prod_id = :id';
  str6 := 'update sell set sell_pay = 0 where sell_id = :id';
  with DM.ADOQTEMP3 do
  begin
    close;
    SQL.Clear;
    SQL.Add(str1);
    parameters.ParamByName('pay').Value := 0; 
    if (not prepared) then
      prepared := true;
    try
      active := true;
    except
      ExecSQL;
    end;
    if (recordcount > 0) then
      first;
    for i := 0 to recordcount - 1 do
    begin
      with DM.ADOQXPXS do
      begin
        close;
        SQL.Clear;
        SQL.Add(str2);
        parameters.ParamByName('id').Value := DM.ADOQTEMP3.fieldbyname('sell_id').AsInteger;
        parameters.ParamByName('pay').Value := 1;
        try
          if (not prepared) then
            prepared := true;
          ExecSQL;
        except
          if i = 0 then
          begin
          showmessage('本次交易失败,请再试!');
          CLS;
          DIS;
          exit;
          end
          else
          begin
            for j := 0 to i - 1 do
            begin
              money1 := 0;
              first;
              money1 := money1 + fieldbyname('sell_money').AsFloat;
              next;
            end;
            Label6.Caption := floattostr(money1);
            messagebox(0, pchar('发生错误,只进行前 ' + inttostr(i + 1) + '条交易,应收款' + Label6.Caption + '元,找回' + floattostr(strtofloat(Edit1.text) - strtofloat(Label6.caption)) + '谢谢惠顾!'),'警告',MB_OK+MB_ICONWARNING);
            Edit1.Clear;
            CLS;
            DIS;
            exit;
          end;
        end;
      end;
      with DM.ADOQTEMP2 do
      begin
        close;
        SQL.Clear;
        SQL.Add(str3);
        parameters.ParamByName('id').Value := DM.ADOQTEMP3.fieldbyname('sell_prod_id').AsString;
        if (not prepared) then
          prepared := true;
        active := true;
      end;
      with DM.ADOQXPXS do
      begin
        close;
        SQL.Clear;
        SQL.Add(str4);
        parameters.ParamByName('id').Value := DM.ADOQTEMP3.fieldbyname('sell_prod_id').AsString;
        parameters.ParamByName('stock').Value := DM.ADOQTEMP2.fieldbyname('prod_stock').AsInteger - DM.ADOQTEMP3.fieldbyname('sell_number').AsInteger;
        parameters.ParamByName('sale').Value := DM.ADOQTEMP2.fieldbyname('prod_sale').AsInteger + DM.ADOQTEMP3.fieldbyname('sell_number').AsInteger;
        if (not prepared) then
            prepared := true;
        try
          ExecSQL;
        except
          if i = 0 then
          begin
          showmessage('本次交易失败,请再试!');
          exit;
          CLS;
          DIS;
          end
          else
          begin
            for j := 0 to i - 1 do
            begin
              money1 := 0;
              first;
              money1 := money1 + fieldbyname('sell_money').AsFloat;
              next;
            end;
            Label6.Caption := floattostr(money1);
            messagebox(0, pchar('发生错误,请把第' + inttostr(i + 1) + '条交易删除掉,否则会有严重后果。只进行前 ' + trim('i + 1') + '条交易, 应收款' + Label6.Caption + '元,找回' + floattostr(strtofloat(Edit1.text) - strtofloat(Label6.caption)) + '元,谢谢惠顾!'),'警告',MB_OK+MB_ICONWARNING);
            Edit1.Clear;
            CLS;
            DIS;
            with DM.ADOQXPXS do
            begin
              close;
              SQL.Clear;
              SQL.Add(str6);
              parameters.ParamByName('id').Value := DM.ADOQTEMP3.fieldbyname('sell_id').AsInteger;
              try
              if (not prepared) then
                prepared := true;
              ExecSQL;
              exit;
              except
                messagebox(0, pchar('发生错误,请把第' + inttostr(i + 1) + '条交易删除掉,否则会有严重后果。'),'错误', MB_OK+MB_ICONERROR);
                exit;
              end;
            end;
          end;
        end;
      end;
    next;
  end;
  end;
  money := strtofloat(Edit1.Text) - strtofloat(Label6.Caption);
  messagebox(0, pchar('找零' + floattostr(money) + '元,欢迎光临,谢谢惠顾!'), '销售完成', MB_OK+MB_ICONWARNING);
  image7.Enabled := true;
  Edit1.Clear;
  CLS;
  DIS;
end;

procedure TFrmXPXS.Image3Click(Sender: TObject);
var
  str1: string;
  money1: real;
begin
  money1 := DM.ADOQXPXS1.fieldbyname('sell_money').AsFloat;
  str1 := 'delete from sell where sell_id = :id and sell_pay = :pay';
  with DM.ADOQXPXS do
  begin
    close;
    SQL.Clear;
    SQL.Add(str1);
    parameters.ParamByName('id').Value := DM.ADOQXPXS1.fieldbyname('sell_id').AsInteger;
    parameters.ParamByName('pay').Value := 0;
    if (not prepared) then
        prepared := true;
    try
      ExecSQL;
    except
      showmessage('操作失败,请再试一次!');
      exit;
    end;
    Label6.Caption := floattostr(strtofloat(Label6.Caption) - money1);
    DM.ADOQXPXS1.Close;
    DM.ADOQXPXS1.Open;
  end;
end;


procedure TFrmXPXS.Image2Click(Sender: TObject);
var
  str1: string;
begin
  str1 := 'delete from sell where sell_pay = 0';
  with DM.ADOQXPXS do
  begin
    close;
    SQL.Clear;
    SQL.Add(str1);
    try
      if (not prepared) then
        prepared := true;
      ExecSQL;
      DIS;
      Label6.Caption := '0';
      DM.ADOQXPXS1.Close;
      DM.ADOQXPXS1.Open;
    except
      showmessage('发生错误,请再试一次!');
      exit;
    end;
  end;
  image7.Enabled := true;
end;

procedure TFrmXPXS.DBGrid1DblClick(Sender: TObject);
begin
  image5.Visible := false;
  image6.Visible := true;
  Combobox3.Enabled := false;
  Combobox3.Color := clLtGray;
  with DM.ADOQXPXS1 do
  begin
    Combobox3.Text := fieldbyname('sell_prod_id').AsString;
    Edit2.Text := fieldbyname('sell_number').AsString;
    Edit3.Text := fieldbyname('sell_prod_price').AsString;
  end;
end;

procedure TFrmXPXS.Image6Click(Sender: TObject);
var
  str1: string;
begin
  str1 := 'update sell set (sell_price = :price, sell_number = :number) '
    + ' where sell_id = :sellid ';
  with DM.ADOQTEMP1 do
  begin
    close;
    SQL.Clear;
    SQL.Add(str1);
    parameters.ParamByName('price').Value := strtofloat(Edit2.Text);
    parameters.ParamByName('number').Value := strtoint(Edit3.Text);
    parameters.ParamByName('sellid').Value := strtoint(Combobox3.Text); 
    try
      if (not prepared) then
        prepared := true;
      ExecSQL;
    except
      showmessage('操作失败,请再试!');
      exit;
    end;
  end;
end;

procedure TFrmXPXS.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (key = #13) then
    Image4click(self);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -