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

📄 unitstockposition.pas

📁 仓储系统
💻 PAS
字号:
unit UnitStockPosition;

interface

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

type
  TfrmStockPosition = class(TForm)
    Panel2: TPanel;
    btnAdd: TButton;
    btnCancel: TButton;
    btnErase: TButton;
    btnMod: TButton;
    btnSave: TButton;
    btnExit: TButton;
    Panel1: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    cbbKfdm: TComboBox;
    edtKwdm: TEdit;
    DBGrid1: TDBGrid;
    dsKw: TDataSource;
    edtKwmc: TEdit;
    procedure btnExitClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnAddClick(Sender: TObject);
    procedure btnEraseClick(Sender: TObject);
    procedure btnModClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure dsKwDataChange(Sender: TObject; Field: TField);
    procedure cbbKfdmKeyPress(Sender: TObject; var Key: Char);
    procedure cbbKfdmExit(Sender: TObject);
    procedure edtKwmcKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    //listkf,listkfmc:array of string;
    listkfdm,listkfmc:array of string;
  public
    { Public declarations }
  end;

var
  frmStockPosition: TfrmStockPosition;
  isAdd,isMod:boolean;
  Recno:Tbookmark;
implementation

uses UnitDm;

{$R *.dfm}

procedure TfrmStockPosition.btnExitClick(Sender: TObject);
begin
  close;
end;

procedure TfrmStockPosition.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action:=cafree;
end;

procedure TfrmStockPosition.btnAddClick(Sender: TObject);
begin
  isAdd:=true;
  isMod:=false;
  Dm.qry_Kw.last;
  if btnAdd.caption='增加(&A)' then
  begin
    btnAdd.enabled:=false;
    btnErase.enabled:=false;
    btnMod.enabled:=false;
    btnSave.enabled:=true;
    btnCancel.enabled:=true;

    panel1.enabled:=true;
    cbbKfdm.text:='';
    edtKwdm.text:='';
    edtKwmc.text:='';
    cbbKfdm.setfocus;
  end;
end;

procedure TfrmStockPosition.btnEraseClick(Sender: TObject);
begin
  if dm.qry_Kw.RecordCount=0 then exit;
  if application.MessageBox('确信删除当前记录?','警告',mb_okcancel+mb_iconwarning)=IDOK then
  begin
    with dm.qry_Kw do
    begin
      edit;
      Delete;
      Close;
      Open;
    end;
  end;
end;

procedure TfrmStockPosition.btnModClick(Sender: TObject);
begin
  if dm.qry_kw.RecordCount=0 then exit;
  //获得当前的记录位置
  Recno:=dm.qry_kw.GetBookmark;
  //关闭与表的联系-------------
  dm.qry_kw.DisableControls;
  //标志位--------
  isMod:=true;
  isAdd:=false;

  btnAdd.Enabled:=false;
  btnErase.Enabled:=false;
  btnMod.Enabled:=false;
  btnSave.Enabled:=true;
  btnCancel.Enabled:=true;
  edtKwmc.enabled:=true;
  panel1.enabled:=true;
  edtKwmc.setfocus;
end;

procedure TfrmStockPosition.btnSaveClick(Sender: TObject);
begin
  if cbbkfdm.text='' then
   begin
    application.MessageBox('注意:'+#13+'  库房代码不能为空!','警告',mb_ok+mb_iconwarning);
    cbbkfdm.setfocus;
    exit;
   end;
   if edtkwdm.text='' then
   begin
    application.MessageBox('注意:'+#13+'  库位代码不能为空!','警告',mb_ok+mb_iconwarning);
    edtkwdm.setfocus;
    exit;
   end;
   if (length(edtkwdm.text)>0) and (length(edtkwdm.text)<5) then
   begin
     application.MessageBox('注意:'+#13+'  库位代码不能少于5个字符!','警告',mb_ok+mb_iconwarning);
     edtkwdm.setfocus;
     exit;
   end;
  //----------保存------------------
   if isAdd then
   begin
     DM.qry_kw.DisableControls;
     DM.qry_kw.append;
   end;
     DM.qry_kw.edit;
     DM.qry_kw.fieldbyname('Storeroom_zip').asstring:=listkfdm[cbbkfdm.items.indexof(cbbkfdm.text)];
     DM.qry_kw.fieldbyname('Storeplace_zip').asstring:=edtkwdm.Text;
     DM.qry_kw.fieldbyname('Storeplace_name').asstring:=edtkwmc.text;
     DM.qry_kw.post;
  //--------------------------------
   if isAdd then isAdd:=false;
   if isMod then isMod:=false;
  //--------------------------------
    btnadd.enabled:=true;
    btnadd.SetFocus;
    btnErase.enabled:=true;
    btnMod.enabled:=true;
    btnSave.enabled:=false;
    btnCancel.enabled:=false;

    Panel1.Enabled:=false;
   //----------------------
    DM.qry_kw.EnableControls;
    DM.qry_kw.close;
    DM.qry_kw.open;
end;

procedure TfrmStockPosition.btnCancelClick(Sender: TObject);
begin
  if isAdd then isadd:=false;
  if isMod then isMod:=false;

  DM.qry_Kw.EnableControls;
  DM.qry_Kw.close;
  DM.qry_Kw.open;

  if btnCancel.caption='取消(&C)' then
  begin
    panel1.enabled:=false;
    btnAdd.enabled:=true;
    btnErase.enabled:=true;
    btnMod.enabled:=true;
    btnSave.enabled:=false;
    btnCancel.enabled:=false;
  end;
end;

procedure TfrmStockPosition.FormShow(Sender: TObject);
var
  i:integer;
begin
  //添加库房代码
  with dm.qry_Kf do
  begin
    close;
    sql.add('select * from StoreRoom order by Storeroom_zip');
    open;
  end;
  setlength(listKfdm,dm.qry_Kf.recordcount);
  setlength(listKfmc,dm.qry_Kf.recordcount);
  cbbKfdm.Items.clear;
  for i:=0 to dm.qry_Kf.recordcount - 1 do
  begin
    listKfdm[i]:=dm.qry_Kf.fieldbyname('Storeroom_zip').asstring;
    listKfmc[i]:=dm.qry_Kf.fieldbyname('Storeroom_name').asstring;
    cbbKfdm.items.Add(listKfdm[i]+' '+listKfmc[i]);
    dm.qry_Kf.next;
  end;
  //库位
  with dm.qry_kw do
  begin
    close;
    sql.Clear;
    sql.add('select * from Storeposition');
    open;
  end;
end;

procedure TfrmStockPosition.dsKwDataChange(Sender: TObject; Field: TField);
var
  strtemp:string;
  cur,i:integer;
begin
    with DM.qry_kw do
    begin
      strtemp:=fieldbyname('Storeroom_zip').asstring;
      cur:=-1;
      for i:=0 to high(listkfdm) do
      begin
        if strtemp=listkfdm[i] then
        begin
          cur:=i;
          break;
        end;
      end;
      cbbkfdm.itemindex:=cur;
      edtkwdm.Text:=fieldbyname('Storeplace_zip').asstring;
      edtkwmc.text:=fieldbyname('Storeplace_name').asstring;
    end;
end;

procedure TfrmStockPosition.cbbKfdmKeyPress(Sender: TObject;
  var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    perform(CM_DIALOGKEY,VK_TAB,0);
  end;
end;

procedure TfrmStockPosition.cbbKfdmExit(Sender: TObject);
var
  i:integer;
begin
  if isAdd then
  begin
    if cbbkfdm.Text='' then  exit;

    if cbbkfdm.itemindex=-1 then     //没有项被选择
    begin
      for i:=0 to high(listkfdm) do
      begin
        if cbbkfdm.Text=listkfdm[i] then
        begin
          cbbkfdm.itemindex:=i;
          exit;
        end;
      end;
    end;

    if cbbkfdm.items.indexof(cbbkfdm.Text)=-1 then
    begin
      application.MessageBox('注意:'+#13+'  库房代码错误,请选择正确的一项!','提示',mb_ok+mb_iconinformation);
      cbbkfdm.Text:='';
      exit;
    end
    else
      cbbkfdm.itemindex:=cbbkfdm.items.indexof(cbbkfdm.Text);//end if
  end;//end 增加
end;

procedure TfrmStockPosition.edtKwmcKeyPress(Sender: TObject;
  var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    btnSave.setfocus;
  end;
end;

end.

⌨️ 快捷键说明

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