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

📄 unitxs.pas

📁 手机批发商进销存管理
💻 PAS
字号:
unit UnitXs;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzButton, RzBtnEdt, RzEdit, StdCtrls, Mask, ImgList, RzTabs,
  ComCtrls, Buttons, DB, ADODB, Grids, DBGrids, ExtCtrls;

type
  TXsForm = class(TForm)
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    ImageList1: TImageList;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    DateTimePicker1: TDateTimePicker;
    Edit1: TEdit;
    Panel3: TPanel;
    RzBitBtn1: TRzBitBtn;
    Panel2: TPanel;
    PanelInput: TPanel;
    BitBtn2: TBitBtn;
    DBGrid1: TDBGrid;
    Edit2: TEdit;
    Edit3: TEdit;
    Label13: TLabel;
    Edit4: TEdit;
    Label14: TLabel;
    Edit5: TEdit;
    Label15: TLabel;
    Edit6: TEdit;
    Label16: TLabel;
    Edit7: TEdit;
    Label17: TLabel;
    Memo1: TMemo;
    Label5: TLabel;
    Memo2: TMemo;
    DataSource1: TDataSource;
    ADODataSet1: TADODataSet;
    ADODataSet1GoodsNo: TWideStringField;
    ADODataSet1GoodsOwner: TWideStringField;
    ADODataSet1OutDate: TWideStringField;
    ADODataSet1CustName: TWideStringField;
    ADODataSet1CustTel: TWideStringField;
    ADODataSet1CustAddr: TWideStringField;
    ADODataSet1CustRemark: TWideStringField;
    ADODataSet1OutRemark: TWideStringField;
    ADODataSet1IsSale: TIntegerField;
    ADODataSet1GoodsName: TWideStringField;
    ADODataSet1GoodsType: TWideStringField;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Edit1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit6KeyPress(Sender: TObject; var Key: Char);
    procedure Edit7KeyPress(Sender: TObject; var Key: Char);
    procedure Memo1KeyPress(Sender: TObject; var Key: Char);
    procedure Memo2KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
    procedure ClearAll;
    procedure OpenData;
  public
    { Public declarations }
  end;

implementation

uses UnitDM;

{$R *.dfm}

procedure TXsForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=27 then Close;
end;

procedure TXsForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ADODataSet1.Close;
  Action := caFree;
end;

procedure TXsForm.Edit1Change(Sender: TObject);
begin
  ClearAll;
end;

procedure TXsForm.ClearAll;
begin
  Edit2.Clear;
  Edit3.Clear;
  Edit4.Clear;
  DateTimePicker1.DateTime := now;
  Edit5.Clear;
  Edit6.Clear;
  Edit7.Clear;
  Memo1.Lines.Clear;
  Memo2.Lines.Clear;  
end;

procedure TXsForm.FormCreate(Sender: TObject);
begin
  Edit1.Clear;
  ClearAll;
  OpenData;
end;

procedure TXsForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  Edit1.Text := Trim(Edit1.Text);
  if Trim(Edit1.Text)='' then Exit;
  if Key=#13 then
  begin
    try
      DM1.ADOQuery1.Close;
      DM1.ADOQuery1.SQL.Text := ' select A.GoodsName, A.GoodsType, B.GoodsOwner from Tab_GoodsNo A '
                              + ' left join Tab_Goods B on A.GoodsNo=B.GoodsNo '
                              + ' where B.IsSale=0 and A.GoodsNo=''' + Edit1.Text + ''' ';
      DM1.ADOQuery1.Open;
      if DM1.ADOQuery1.RecordCount=1 then
      begin
        Edit2.Text := DM1.ADOQuery1.FieldByName('GoodsName').AsString;
        Edit3.Text := DM1.ADOQuery1.FieldByName('GoodsType').AsString;
        Edit4.Text := DM1.ADOQuery1.FieldByName('GoodsOwner').AsString;
        DateTimePicker1.SetFocus;
      end
      else
      begin
        Application.MessageBox('此串号不存在或已经销售!', '提示', MB_OK + MB_ICONINFORMATION);      
        Edit1.SetFocus;
      end;
      DM1.ADOQuery1.Close;
    except
      DM1.ADOQuery1.Close;
    end;
  end;
end;

procedure TXsForm.RzBitBtn1Click(Sender: TObject);
var
  sql1: string;
  CustName,CustTel,CustAddr,CustRemark,OutRemark,GoodsNo: string;
begin
  GoodsNo := Trim(Edit1.Text);
  if GoodsNo='' then
  begin
    Application.MessageBox('请输入串号!', '提示', MB_OK + MB_ICONINFORMATION);
    Edit1.SetFocus;
    Exit;
  end;
  if Trim(Edit4.Text)='总仓' then
  begin
    if Application.MessageBox(PChar('商品存放在总仓,是否真的从总仓直接销售?'),'请确认',MB_OKCancel + MB_DEFBUTTON2 + MB_IconQuestion)<>ID_OK then Exit;
  end;

  CustName := Trim(Edit5.Text);
  CustTel := Trim(Edit6.Text);
  CustAddr := Trim(Edit7.Text);
  CustRemark := Trim(Memo1.Lines.Text);
  OutRemark := Trim(Memo2.Lines.Text);
  if CustName='' then CustName := ' ';
  if CustTel='' then CustTel := ' ';
  if CustAddr='' then CustAddr := ' ';
  if CustRemark='' then CustRemark := ' ';
  if OutRemark='' then OutRemark := ' ';
  sql1 := 'update Tab_Goods set OutDate=:OutDate, CustName=:CustName, CustTel=:CustTel, CustAddr=:CustAddr, CustRemark=:CustRemark, OutRemark=:OutRemark, IsSale=:IsSale where IsSale=0 and GoodsNo=:GoodsNo ';
  try
    DM1.ADOConnection1.BeginTrans;

    DM1.ADOQuery1.Close;
    DM1.ADOQuery1.SQL.Clear;
    DM1.ADOQuery1.SQL.Text := sql1;
    DM1.ADOQuery1.Parameters.ParamByName('OutDate').Value := FormatDateTime('yyyymmdd', DateTimePicker1.DateTime);
    DM1.ADOQuery1.Parameters.ParamByName('CustName').Value := CustName;
    DM1.ADOQuery1.Parameters.ParamByName('CustTel').Value := CustTel;
    DM1.ADOQuery1.Parameters.ParamByName('CustAddr').Value := CustAddr;
    DM1.ADOQuery1.Parameters.ParamByName('CustRemark').Value := CustRemark;
    DM1.ADOQuery1.Parameters.ParamByName('OutRemark').Value := OutRemark;
    DM1.ADOQuery1.Parameters.ParamByName('IsSale').Value := 1;
    DM1.ADOQuery1.Parameters.ParamByName('GoodsNo').Value := GoodsNo;
    DM1.ADOQuery1.ExecSQL;

    DM1.ADOConnection1.CommitTrans;
    DM1.ADOQuery1.Close;

    //刷新显示
    OpenData;
    Edit1.Clear;
    Edit1.SetFocus;
  except
    DM1.ADOConnection1.RollbackTrans;
    DM1.ADOQuery1.Close;
  end;
end;

procedure TXsForm.DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then Edit5.SetFocus;
end;

procedure TXsForm.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then Edit6.SetFocus;
end;

procedure TXsForm.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then Edit7.SetFocus;
end;

procedure TXsForm.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then Memo1.SetFocus;
end;

procedure TXsForm.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then Memo2.SetFocus;
end;

procedure TXsForm.Memo2KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then RzBitBtn1.SetFocus;
end;

procedure TXsForm.OpenData;
var
  sql: string;
begin
  sql := ' select A.*,B.GoodsName,B.GoodsType from Tab_Goods A '
       + ' left join Tab_GoodsNo B on A.GoodsNo=B.GoodsNo '
       + ' where A.IsSale=1 and A.OutDate=''' + FormatDateTime('yyyymmdd', DateTimePicker1.DateTime) + ''' '
       + ' order by A.GoodsOwner, B.GoodsName, B.GoodsType ';
  try
    ADODataSet1.DisableControls;
    ADODataSet1.Close;
    ADODataSet1.CommandText := sql;
    ADODataSet1.Open;
    ADODataSet1.Last;
  finally
    ADODataSet1.EnableControls;
  end;
end;

procedure TXsForm.BitBtn2Click(Sender: TObject);
var
  sql1: string;
  OutDate, CustName,CustTel,CustAddr,CustRemark,OutRemark,GoodsNo: string;
begin
  //返销
  if not ADODataSet1.Active then Exit;
  if ADODataSet1.IsEmpty then Exit;

  GoodsNo := Trim(ADODataSet1.FieldByName('GoodsNo').AsString);
  if GoodsNo='' then Exit;
  if Application.MessageBox(PChar('是否真的要返销串号为 ' + GoodsNo + ' 的商品?'),'请确认',MB_OKCancel + MB_DEFBUTTON2 + MB_IconQuestion)<>ID_OK then Exit;
  OutDate := ' ';
  CustName := ' ';
  CustTel := ' ';
  CustAddr := ' ';
  CustRemark := ' ';
  OutRemark := ' ';
  sql1 := 'update Tab_Goods set OutDate=:OutDate, CustName=:CustName, CustTel=:CustTel, CustAddr=:CustAddr, CustRemark=:CustRemark, OutRemark=:OutRemark, IsSale=:IsSale where IsSale=1 and GoodsNo=:GoodsNo ';
  try
    DM1.ADOConnection1.BeginTrans;

    DM1.ADOQuery1.Close;
    DM1.ADOQuery1.SQL.Clear;
    DM1.ADOQuery1.SQL.Text := sql1;
    DM1.ADOQuery1.Parameters.ParamByName('OutDate').Value := OutDate;
    DM1.ADOQuery1.Parameters.ParamByName('CustName').Value := CustName;
    DM1.ADOQuery1.Parameters.ParamByName('CustTel').Value := CustTel;
    DM1.ADOQuery1.Parameters.ParamByName('CustAddr').Value := CustAddr;
    DM1.ADOQuery1.Parameters.ParamByName('CustRemark').Value := CustRemark;
    DM1.ADOQuery1.Parameters.ParamByName('OutRemark').Value := OutRemark;
    DM1.ADOQuery1.Parameters.ParamByName('IsSale').Value := 0;
    DM1.ADOQuery1.Parameters.ParamByName('GoodsNo').Value := GoodsNo;
    DM1.ADOQuery1.ExecSQL;

    DM1.ADOConnection1.CommitTrans;
    DM1.ADOQuery1.Close;

    //刷新显示
    OpenData;
  except
    DM1.ADOConnection1.RollbackTrans;
    DM1.ADOQuery1.Close;
  end;
end;

procedure TXsForm.FormActivate(Sender: TObject);
begin
  Edit1.SetFocus;
end;

end.

⌨️ 快捷键说明

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