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

📄 unitsh.pas

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

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
  TShForm = class(TForm)
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    ImageList1: TImageList;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Panel3: TPanel;
    RzBitBtn1: TRzBitBtn;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    Edit_GoodsName: TEdit;
    Edit_GoodsType: TEdit;
    Label13: TLabel;
    Edit_GoodsOwner: TEdit;
    Label14: TLabel;
    Edit_CustName: TEdit;
    Label15: TLabel;
    Edit_CustTel: TEdit;
    Label16: TLabel;
    Edit_CustAddr: TEdit;
    Label17: TLabel;
    Edit_OutDate: TEdit;
    Label4: TLabel;
    Edit_GoodsNo: TEdit;
    Label8: TLabel;
    Memo_ServiceRemark: TMemo;
    Edit_CustRemark: TEdit;
    Label5: TLabel;
    Edit_OutRemark: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Edit_InDate: TEdit;
    Edit_InRemark: TEdit;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    DateTimePicker1: TDateTimePicker;
    Label9: TLabel;
    ADODataSet1ServiceDate: TWideStringField;
    ADODataSet1ServiceRemark: TWideStringField;
    ADODataSet1ServiceID: TAutoIncField;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit_GoodsNoKeyPress(Sender: TObject; var Key: Char);
    procedure Memo_ServiceRemarkKeyPress(Sender: TObject; var Key: Char);
    procedure Edit_GoodsNoChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
    procedure ClearAll;
    procedure OpenData;
  public
    { Public declarations }
  end;

implementation

uses UnitDM;

{$R *.dfm}

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

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

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

procedure TShForm.Edit_GoodsNoKeyPress(Sender: TObject; var Key: Char);
begin
  Edit_GoodsNo.Text := Trim(Edit_GoodsNo.Text);
  if Trim(Edit_GoodsNo.Text)='' then Exit;
  if Key=#13 then
  begin
    try
      DM1.ADOQuery1.Close;
      DM1.ADOQuery1.SQL.Text := ' select A.GoodsName, A.GoodsType, B.* from Tab_GoodsNo A '
                              + ' left join Tab_Goods B on A.GoodsNo=B.GoodsNo '
                              + ' where B.IsSale=1 and A.GoodsNo=''' + Edit_GoodsNo.Text + ''' ';
      DM1.ADOQuery1.Open;
      if DM1.ADOQuery1.RecordCount=1 then
      begin
        Edit_OutDate.Text := DM1.ADOQuery1.FieldByName('OutDate').AsString;
        Edit_GoodsOwner.Text := DM1.ADOQuery1.FieldByName('GoodsOwner').AsString;
        Edit_GoodsName.Text := DM1.ADOQuery1.FieldByName('GoodsName').AsString;
        Edit_GoodsType.Text := DM1.ADOQuery1.FieldByName('GoodsType').AsString;
        Edit_InDate.Text := DM1.ADOQuery1.FieldByName('InDate').AsString;
        Edit_InRemark.Text := DM1.ADOQuery1.FieldByName('InRemark').AsString;
        Edit_CustName.Text := DM1.ADOQuery1.FieldByName('CustName').AsString;
        Edit_CustTel.Text := DM1.ADOQuery1.FieldByName('CustTel').AsString;
        Edit_CustAddr.Text := DM1.ADOQuery1.FieldByName('CustAddr').AsString;
        Edit_CustRemark.Text := DM1.ADOQuery1.FieldByName('CustRemark').AsString;
        Edit_OutRemark.Text := DM1.ADOQuery1.FieldByName('OutRemark').AsString;

        //查询售后记录
        OpenData;

        DateTimePicker1.SetFocus;
      end
      else
      begin
        Application.MessageBox('未销售此串号商品!', '提示', MB_OK + MB_ICONINFORMATION);
        Edit_GoodsNo.SetFocus;
      end;
      DM1.ADOQuery1.Close;
    except
      DM1.ADOQuery1.Close;
    end;
  end;
end;

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

procedure TShForm.ClearAll;
begin
  DateTimePicker1.DateTime := now;
  Memo_ServiceRemark.Lines.Clear;
  Edit_OutDate.Clear;
  Edit_GoodsOwner.Clear;
  Edit_GoodsName.Clear;
  Edit_GoodsType.Clear;
  Edit_InDate.Clear;
  Edit_InRemark.Clear;
  Edit_CustName.Clear;
  Edit_CustTel.Clear;
  Edit_CustAddr.Clear;
  Edit_CustRemark.Clear;
  Edit_OutRemark.Clear;
  ADODataSet1.Close;
end;

procedure TShForm.Edit_GoodsNoChange(Sender: TObject);
begin
  ClearAll;
end;

procedure TShForm.FormCreate(Sender: TObject);
begin
  ClearAll;
  Edit_GoodsNo.Clear;
end;

procedure TShForm.OpenData;
begin
  //查询售后记录
  if Trim(Edit_GoodsNo.Text)<>'' then
  begin
    try
      ADODataSet1.DisableControls;
      ADODataSet1.Close;
      ADODataSet1.CommandText :=' select A.* from Tab_Service A '
                              + ' where A.GoodsNo=''' + Trim(Edit_GoodsNo.Text) + ''' '
                              + ' order by A.ServiceDate ';
      ADODataSet1.Open;
      ADODataSet1.Last;
    finally
      ADODataSet1.EnableControls;
    end;
  end;
end;

procedure TShForm.RzBitBtn1Click(Sender: TObject);
var
  sql1: string;
  ServiceRemark,GoodsNo: string;
begin
  GoodsNo := Trim(Edit_GoodsNo.Text);
  if GoodsNo='' then
  begin
    Application.MessageBox('请输入串号!', '提示', MB_OK + MB_ICONINFORMATION);
    Edit_GoodsNo.SetFocus;
    Exit;
  end;
  ServiceRemark := Trim(Memo_ServiceRemark.Lines.Text);
  if ServiceRemark='' then ServiceRemark := ' ';
  sql1 := ' insert into Tab_Service(GoodsNo, ServiceDate, ServiceRemark)values(:GoodsNo, :ServiceDate, :ServiceRemark) ';
  try
    DM1.ADOConnection1.BeginTrans;

    DM1.ADOQuery1.Close;
    DM1.ADOQuery1.SQL.Clear;
    DM1.ADOQuery1.SQL.Text := sql1;
    DM1.ADOQuery1.Parameters.ParamByName('GoodsNo').Value := GoodsNo;
    DM1.ADOQuery1.Parameters.ParamByName('ServiceDate').Value := FormatDateTime('yyyymmdd', DateTimePicker1.DateTime);
    DM1.ADOQuery1.Parameters.ParamByName('ServiceRemark').Value := ServiceRemark;
    DM1.ADOQuery1.ExecSQL;

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

    //刷新显示
    OpenData;
    Application.MessageBox('登记成功!', '提示', MB_OK + MB_ICONINFORMATION);
    Memo_ServiceRemark.Lines.Clear;    
  except
    DM1.ADOConnection1.RollbackTrans;
    DM1.ADOQuery1.Close;
  end;
end;

procedure TShForm.DBGrid1DblClick(Sender: TObject);
var
  ServiceID: string;
begin
  //删除记录
  if not ADODataSet1.Active then Exit;
  if ADODataSet1.IsEmpty then Exit;
  ServiceID := Trim(ADODataSet1.FieldByName('ServiceID').AsString);
  if ServiceID='' then Exit;
  if Application.MessageBox(PChar('是否真的要删除当前售后服务记录?删除后不可恢复'),'请确认',MB_OKCancel + MB_DEFBUTTON2 + MB_IconQuestion)<>ID_OK then Exit;
  try
    DM1.ADOConnection1.BeginTrans;

    DM1.ADOQuery1.Close;
    DM1.ADOQuery1.SQL.Clear;
    DM1.ADOQuery1.SQL.Text := 'delete from Tab_Service where ServiceID=:ServiceID';
    DM1.ADOQuery1.Parameters.ParamByName('ServiceID').Value := ServiceID;
    DM1.ADOQuery1.ExecSQL;

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

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

procedure TShForm.FormActivate(Sender: TObject);
begin
  Edit_GoodsNo.SetFocus;
end;

end.

⌨️ 快捷键说明

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