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

📄 unitjhth.~pas

📁 这是一个很好的超市管理系统
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit UnitJHTH;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, ExtCtrls, StdCtrls, Buttons;

type
  TFrmJHTH = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    ComboBox1: TComboBox;
    BitBtn1: TBitBtn;
    Label2: TLabel;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    Edit2: TEdit;
    Label7: TLabel;
    Edit5: TEdit;
    Label8: TLabel;
    Edit6: TEdit;
    Label9: TLabel;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    RadioGroup1: TRadioGroup;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Label1: TLabel;
    Memo1: TMemo;
    procedure DIS;
    procedure CLS;
    procedure ENA;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure ComboBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure BitBtn1Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure ComboBox1Change(Sender: TObject);
  private
    totalmon,tempmon: real;
    form_id: integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmJHTH: TFrmJHTH;

implementation

uses UnitDM;

{$R *.dfm}

procedure TFrmJHTH.DIS;
begin
  Edit1.Enabled := false;
  Edit1.Color := clLtGray;
  Edit2.Enabled := false;
  Edit2.Color := clLtGray;
  Edit5.Enabled := false;
  Edit5.Color := clLtGray;
  Edit6.Enabled := false;
  Edit6.Color := clLtGray;
  Memo1.Enabled := false;
  Memo1.Color := clLtGray;
end;

procedure TFrmJHTH.CLS;
begin
  Edit1.Clear;
  Edit2.Clear;
  Edit5.Clear;
  Edit6.Clear;
  Memo1.Clear;
end;

procedure TFrmJHTH.ENA;
begin
  Edit1.Enabled := true;
  Edit1.Color := clwindow;
  Edit2.Enabled := true;
  Edit2.Color := clwindow;
  Edit5.Enabled := true;
  Edit5.Color := clwindow;
  Edit6.Enabled := true;
  Edit6.Color := clwindow;
  Memo1.Enabled := true;
  Memo1.Color := clwindow;
end;

procedure TFrmJHTH.BitBtn2Click(Sender: TObject);
begin
  ENA;
  CLS;
  with DM.ADOQCHTH do
  begin
    Edit1.Text := fieldbyname('order_prod_id').Value;
    Edit5.Text := fieldbyname('order_prod_name').Value;
    Edit6.Text := fieldbyname('order_prod_price').AsString;
    Edit2.Text := fieldbyname('order_prod_number').AsString;
    Memo1.Text := fieldbyname('order_memo').Value;
  end;
  BitBtn4.Enabled := true;
  BitBtn5.Enabled := true;
end;

procedure TFrmJHTH.BitBtn4Click(Sender: TObject);
var
  str1,str2: string;
  destmoney: real;//已经更改过的销售金额
begin
  tempmon := DM.ADOQCHTH.fieldbyname('order_money').Value;
  form_id := DM.ADOQCHTH.fieldbyname('order_form_id').Value;
  destmoney :=  strtofloat(Edit6.Text) * strtoint(Edit2.Text);
  str1 := 'update orders set order_prod_id = :id, order_prod_name = :name, order_prod_price = :price, order_prod_number = :number, order_memo = :memo where order_id = :orid';
  str2 := 'update order_pay set order_total_money = :money where order_form_id = :id';
  with DM.ADOQTEMP1 do
  begin
    close;
    SQL.Clear;
    SQL.Add(str1);
    parameters.ParamByName('id').Value := trim(Edit1.Text);
    parameters.ParamByName('name').Value := trim(Edit5.Text);
    parameters.ParamByName('price').Value := strtofloat(Edit6.Text);
    parameters.ParamByName('number').Value := strtofloat(Edit2.Text);
    parameters.ParamByName('memo').Value := trim(memo1.Text);
    parameters.ParamByName('orid').Value := DM.ADOQCHTH.fieldbyname('order_id').Value;
    if (not prepared) then
      prepared := true;
    try
      ExecSQL;
    except
      BitBtn4.Enabled := false;
      BitBtn5.Enabled := false;
      showmessage('操作失败,请再试!');
      exit;
    end;
    close;
    SQL.Clear;
    SQL.Add(str2);
    parameters.ParamByName('money').Value := totalmon - tempmon + destmoney;
    parameters.ParamByName('id').Value := form_id;
    if (not prepared) then
      prepared := true;
    try
      ExecSQL;
    except
      messagebox(0,pchar('发生错误,请把订单号为' + inttostr(form_id) + '的订单的总金额改为' + floattostr(totalmon - tempmon + destmoney) + '元') , '错误',MB_OK);
    end;
  end;
  CLS;
  DIS;
end;

procedure TFrmJHTH.BitBtn3Click(Sender: TObject);
var
  str1,str2: string;
  mon1: real;
  ids: integer;
begin
  mon1 := DM.ADOQCHTH.fieldbyname('order_money').Value;
  ids := DM.ADOQCHTH.fieldbyname('order_form_id').Value;
  str1 := 'delete from orders where order_form_id = :formid and order_id = :id';
  str2 := 'update order_pay set order_total_money = :money where order_form_id = :id';
  if (messagebox(0, pchar('确实要删除这条订单记录吗?'), '警告', MB_OKCANCEL) = IDOK) then
  begin
  with DM.ADOQTEMP1 do
  begin
    close;
    SQL.Clear;
    SQL.Add(str1);
    parameters.ParamByName('formid').Value := DM.ADOQCHTH.fieldbyname('order_form_id').Value;
    parameters.ParamByName('id').Value := DM.ADOQCHTH.fieldbyname('order_id').Value;
    if (not prepared) then
      prepared := true;
    try
      ExecSQL;
    except
      showmessage('操作失败,请再试!');
    end;
    close;
    SQL.Clear;
    SQL.Add(str2);
    parameters.ParamByName('money').Value := mon1;
    parameters.ParamByName('id').Value := ids;
    if (not prepared) then
      prepared := true;
    try
      ExecSQL;
    except
      messagebox(0,pchar('发生错误,请把订单号为' + inttostr(ids) + '的订单金额改为' + floattostr(totalmon - mon1) + '元'), '错误',MB_OK);
      exit;
    end;
  end;
  end;

end;

procedure TFrmJHTH.BitBtn5Click(Sender: TObject);
begin
  CLS;
  DIS;
end;

procedure TFrmJHTH.ComboBox1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
var
  i: integer;
  str1, str2: string;
begin
  combobox1.Clear;
  str1 := 'select order_form_id from order_pay';
  str2 := 'select order_form_id  from order_pay where order_finish = :finish';
  if (RadioButton1.Checked) then
  begin
    with DM.ADOQTEMP1 do
    begin
      close;
      SQL.Clear;
      SQL.Add(str1);
      if (not prepared) then
        prepared := true;
      try
        open;
      except
        ExecSQL;
      end;
      if recordcount <> 0 then
      first;
      for i := 0 to recordcount - 1 do
      begin
        Combobox1.Items.Add(fieldbyname('order_form_id').AsString);
        next;
      end;
    end;
  end;
  if (RadioButton2.Checked) then
  begin
    with DM.ADOQTEMP1 do
    begin
      close;
      SQL.Clear;
      SQL.Add(str2);
      parameters.ParamByName('finish').Value := 1;
      if (not prepared) then
        prepared := true;
      try
        open;
      except
        ExecSQL;
      end;
      if recordcount <> 0 then
      first;
      for i := 0 to recordcount - 1 do
      begin
        Combobox1.Items.Add(fieldbyname('order_form_id').AsString);
        next;
      end;
    end;
  end;
  if (RadioButton3.Checked) then
  begin
    with DM.ADOQTEMP1 do
    begin
      close;
      SQL.Clear;
      SQL.Add(str2);
      parameters.ParamByName('finish').Value := 0;
      if (not prepared) then
        prepared := true;
      try
        open;
      except
        ExecSQL;
      end;
      if recordcount <> 0 then
      first;
      for i := 0 to recordcount - 1 do
      begin
        Combobox1.Items.Add(fieldbyname('order_form_id').AsString);
        next;
      end;
    end;
  end;
end;

procedure TFrmJHTH.BitBtn1Click(Sender: TObject);
var
  str1, str2, str3, str4: string;
begin
  if (RadioButton1.Checked = false) and (RadioButton2.Checked = false) and (RadioButton3.Checked = false) then
  begin
    str1 := 'select order_form_id,operator_id,order_person_id,order_person_name,order_total_money,order_pre_money,order_owe_money from order_pay where order_form_id = :id';
    with DM.ADOQJHTH do
    begin
      close;
      SQL.Clear;
      SQL.Add(str1);
      parameters.ParamByName('id').Value := trim(Combobox1.Text);
      if (not prepared) then
        prepared := true;
      try
        open;
      except
        ExecSQL;
        exit;
      end;
      if (recordcount = 0) then
      begin
        showmessage('无此定单号的商品订货!');
        exit;
      end;
    end;
  end
  else
    if (RadioButton1.Checked) then
    begin
      str2 := 'select order_form_id,operator_id,order_person_id,order_person_name,order_total_money,order_pre_money,order_owe_money from order_pay';
      with DM.ADOQJHTH do
      begin
        close;
        SQL.Clear;
        SQL.Add(str2);
        if (not prepared) then
          prepared := true;
        try
          open;
        except
          ExecSQL;
        end;
      end;
    end;
    if (RadioButton2.Checked) then
    begin
      str3 := 'select order_form_id,operator_id,order_person_id,order_person_name,order_total_money,order_pre_money,order_owe_money from order_pay where pay_finish = 1';

⌨️ 快捷键说明

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