📄 unitstockposition.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 + -