?? warehouseinunit.pas
字號:
unit WarehouseInUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons, ToolWin, ComCtrls, Grids, DBGrids, StdCtrls,
Mask, DBCtrls,DB, DBClient, SimpleDS;
type
TfrmWarehouseIn = class(TForm)
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label5: TLabel;
Label4: TLabel;
Label3: TLabel;
Label6: TLabel;
edtInReceiveID: TDBEdit;
edtVendorDept: TDBEdit;
edtInvoiceNO: TDBEdit;
edtWareName: TDBEdit;
edtOperator: TDBEdit;
dbGrdWarehouseInDetail: TDBGrid;
ControlBar1: TControlBar;
CoolBar2: TCoolBar;
sbtnFirst: TSpeedButton;
sbtnPrior: TSpeedButton;
sbtnNext: TSpeedButton;
sbtnLast: TSpeedButton;
CoolBar3: TCoolBar;
sbtnAdd: TSpeedButton;
sbtnSave: TSpeedButton;
Bevel1: TBevel;
sbtnExit: TSpeedButton;
sbtnDelete: TSpeedButton;
btnCancel: TSpeedButton;
Bevel2: TBevel;
Label7: TLabel;
Label8: TLabel;
edt_MaterialName: TDBEdit;
edtMaterialSpell: TDBEdit;
Label9: TLabel;
edtMaterialSpecs: TDBEdit;
edtMaterialModel: TDBEdit;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
edtMaterialType: TDBEdit;
Label13: TLabel;
Label14: TLabel;
edtRemark: TDBEdit;
edtMaterialUnit: TDBEdit;
edtMaterialNum: TDBEdit;
Label15: TLabel;
Label16: TLabel;
edtMaterialPrice: TDBEdit;
Label17: TLabel;
Label18: TLabel;
edtMaterialMoney: TDBEdit;
edtWarehoseID: TDBEdit;
edt_MaterialID: TDBEdit;
edtWareDate: TDBEdit;
procedure edt_MaterialIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_MaterialIDKeyPress(Sender: TObject; var Key: Char);
procedure sbtnAddClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure sbtnSaveClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure edtVendorDeptKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtWareNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtInReceiveIDKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure sbtnDeleteClick(Sender: TObject);
procedure sbtnExitClick(Sender: TObject);
procedure sbtnFirstClick(Sender: TObject);
procedure sbtnPriorClick(Sender: TObject);
procedure sbtnNextClick(Sender: TObject);
procedure sbtnLastClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure edtMaterialNumKeyPress(Sender: TObject; var Key: Char);
procedure edtWareDateKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
MaterialID:string; //物品編號
MaterialName:string; // 物品名稱
MaterialSpell:string;//拼音簡碼
MaterialModel:string;//型號
MaterialSpecs:string;//規(guī)格
MaterialType:string; //類型
MaterialUnit:string; //單位
MaterialPrice:string;//價格
InNo:string; //類型編號
ACode,AName:string;
procedure SaveInWarehouse(var AWarehouseName,AMaterialID,AMaterialName,AMaterialType,AMaterialModel,AMaterialSpecs,
AMaterialUnit,AMaterialNum,AMaterialPrice,AMaterialMoney:string);
public
{ Public declarations }
end;
var
frmWarehouseIn: TfrmWarehouseIn;
implementation
uses MaterialInfoSearchUnit, DM_Unit, SpellInputUnit;
{$R *.dfm}
procedure TfrmWarehouseIn.edt_MaterialIDKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_SPACE then
begin
frmMaterialSearch.GetMaterialInfo(
MaterialName,
MaterialID,
MaterialSpell,
MaterialModel,
MaterialSpecs,
MaterialType,
MaterialUnit,
MaterialPrice);
edt_MaterialName.text:=MaterialName;
edt_MaterialID.text:=MaterialID;
edtMaterialSpell.text:=MaterialSpell;
edtMaterialModel.text:=MaterialModel;
edtMaterialSpecs.text:=MaterialSpecs;
edtMaterialType.text:=MaterialType;
edtMaterialUnit.text:=MaterialUnit;
edtMaterialPrice.text:=MaterialPrice;
end;
{ }
end;
procedure TfrmWarehouseIn.edt_MaterialIDKeyPress(Sender: TObject;
var Key: Char);
begin
edtMaterialNum.setfocus;
end;
procedure TfrmWarehouseIn.sbtnAddClick(Sender: TObject);
begin
DM.DataSetInsert(DM.sdsInWarehouse);
DM.DataSetInsert(DM.sdsWarehouseDetail);
end;
procedure TfrmWarehouseIn.FormCreate(Sender: TObject);
begin
DM.sdsWarehouseDetail.Open;
DM.sdsInWarehouse.Open;
end;
procedure TfrmWarehouseIn.sbtnSaveClick(Sender: TObject);
var
FWarehouseName,FMaterialID,FMaterialName,FMaterialType,FMaterialModel,
FMaterialSpecs,FMaterialUnit,FMaterialNum,FMaterialPrice,FMaterialMoney:string;
begin
if edtInReceiveID.Text='' then
begin
Application.MessageBox('系統(tǒng)錯誤:入庫編號不能為空!','系統(tǒng)信息',mb_ok+MB_ICONWARNING );
edtInReceiveID.SetFocus; Exit;
end;
if edt_MaterialID.Text='' then
begin
Application.MessageBox('系統(tǒng)錯誤:物品編號不能為空!','系統(tǒng)信息',mb_ok+MB_ICONWARNING );
edt_MaterialID.SetFocus; Exit;
end;
if edtWareDate.Text='' then
begin
Application.MessageBox('系統(tǒng)錯誤:入庫時間不能為空!','系統(tǒng)信息',mb_ok+MB_ICONWARNING );
edtWareDate.SetFocus; Exit;
end;
FWarehouseName := edtWareName.Text;
FMaterialID := edt_MaterialID.Text;
FMaterialName := edt_MaterialName.Text;
FMaterialType := edtMaterialType.Text;
FMaterialModel := edtMaterialModel.Text;
FMaterialSpecs := edtMaterialSpecs.Text;
FMaterialUnit := edtMaterialUnit.Text;
FMaterialNum := edtMaterialNum.Text;
FMaterialPrice := edtMaterialPrice.Text;
FMaterialMoney := edtMaterialMoney.Text;
if DM.sdsInWarehouse.State in [dsInsert, dsEdit] then
begin
//DM.sdsInWarehouse.fieldbyname('InReceiveDate').AsDateTime := dtpWareDate.Date;
DM.sdsInWarehouse.ApplyUpdates(-1);
DM.sdsWarehouseDetail.ApplyUpdates(-1);
SaveInWarehouse(FWarehouseName,FMaterialID,FMaterialName,FMaterialType,FMaterialModel,FMaterialSpecs,FMaterialUnit,FMaterialNum,FMaterialPrice,FMaterialMoney);
end;
end;
procedure TfrmWarehouseIn.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
DM.sdsInWarehouse.Close;
DM.sdsWarehouseDetail.Close;
Action:=caFree;
frmWarehouseIn:=nil;
end;
procedure TfrmWarehouseIn.edtVendorDeptKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_SPACE then
begin
frmSpellInput.showFormData('WMS_Vendor','VendorName','VendorSpell',ACode,AName); //
edtVendorDept.Text:=AName;
edtWareName.SetFocus;
end;
end;
procedure TfrmWarehouseIn.edtWareNameKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_SPACE then
begin
frmSpellInput.showFormData('WMS_WareInfo','WarehouseName','WarehouseID',ACode,AName); //
edtWareName.Text:=AName;
edtWareName.SetFocus;
end;
end;
procedure TfrmWarehouseIn.edtInReceiveIDKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if DM.sdsInWarehouse.State <> dsInsert then
begin
Application.MessageBox('系統(tǒng)錯誤:請首先點新增功能按鈕!','系統(tǒng)信息',mb_ok+MB_ICONWARNING );
edtInReceiveID.SetFocus; Exit;
end;
if key=VK_RETURN then
begin
if trim(edtInReceiveID.text)='' then
begin
if DM.sdsInWarehouse.State <> dsInsert then
DM.DataSetInsert(DM.sdsInWarehouse);
DM.OfferTypeID('select InReceiveID from WMS_InWarehouseInfo where InReceiveID like'+#39+'RK'+formatdatetime('yyyymmdd',now)+'%'+#39,InNo);
edtInReceiveID.text:='RK'+formatdatetime('yyyymmdd',now)+'000'+InNo;
edtVendorDept.setfocus;
end
else
begin
edtVendorDept.setfocus;
end;
end;
end;
procedure TfrmWarehouseIn.sbtnDeleteClick(Sender: TObject);
begin
DM.DataSetDelete(DM.sdsInWarehouse);
if DM.sdsInWarehouse.State in [dsInsert, dsEdit] then
begin
if DM.sdsInWarehouse.RecordCount > 0 then
if MessageDlg('確定刪除當(dāng)前記錄嗎?', mtWarning, [mbOk, mbCancel], 0) = mrOK then
begin
DM.sdsInWarehouse.Delete;
DM.sdsInWarehouse.ApplyUpdates(-1);
DM.sdsWarehouseDetail.Delete;
DM.sdsWarehouseDetail.ApplyUpdates(-1);
end;
end;
end;
procedure TfrmWarehouseIn.sbtnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmWarehouseIn.sbtnFirstClick(Sender: TObject);
begin
DM.DataSetFirst(DM.sdsInWarehouse);
end;
procedure TfrmWarehouseIn.sbtnPriorClick(Sender: TObject);
begin
DM.DataSetPrior(DM.sdsInWarehouse);
end;
procedure TfrmWarehouseIn.sbtnNextClick(Sender: TObject);
begin
DM.DataSetNext(DM.sdsInWarehouse);
end;
procedure TfrmWarehouseIn.sbtnLastClick(Sender: TObject);
begin
DM.DataSetLast(DM.sdsInWarehouse);
end;
procedure TfrmWarehouseIn.btnCancelClick(Sender: TObject);
begin
DM.DataSetCancel(DM.sdsInWarehouse);
DM.DataSetCancel(DM.sdsWarehouseDetail);
end;
procedure TfrmWarehouseIn.SaveInWarehouse(var AWarehouseName, AMaterialID,
AMaterialName, AMaterialType, AMaterialModel, AMaterialSpecs,
AMaterialUnit, AMaterialNum, AMaterialPrice, AMaterialMoney: string);
var
str_sql,InNo,AWarehouseNO:string;
Money:Integer;
begin
try
str_sql := 'select WarehouseNO from wms_warehouse where WarehouseName='+#39+
AWarehouseName+#39+' and MaterialName='+#39+AMaterialName+#39;
DM.sdspub.Close;
DM.sdspub.DataSet.CommandText := str_sql;
DM.sdspub.Open;
if DM.sdspub.RecordCount>0 then //庫存表中已經(jīng)存在此物品修改其值即可
begin
Money :=StrToInt(AMaterialNum) * StrToInt(AMaterialPrice);
str_sql := 'update wms_warehouse set MaterialUnit='+#39+AMaterialUnit+#39+',MaterialPrice='+AMaterialPrice+
',MaterialMoney= MaterialMoney+ '+IntToStr(Money)+ ',MaterialNum=MaterialNum + ' +AMaterialNum+
' where MaterialName='+#39+AMaterialName+#39+' and WarehouseName='+#39+AWarehouseName+#39+
' and MaterialType='+#39+AMaterialType+#39;
DM.sdsWarehouse.Close;
DM.sdsWarehouse.DataSet.CommandText := str_sql;
DM.sdsWarehouse.Execute;
end
else//庫存表中不存在則新增
begin
DM.OfferTypeID('select WarehouseNO from wms_warehouse where WarehouseNO like'+#39+'KC'+formatdatetime('yyyymmdd',now)+'%'+#39,InNo);
AWarehouseNO := 'RK'+formatdatetime('yyyymmdd',now)+'000'+InNo;
str_sql := 'insert into wms_warehouse (WarehouseNO,WarehouseName,MaterialID,MaterialName,MaterialType,MaterialModel,MaterialSpecs,MaterialUnit,MaterialNum,MaterialPrice,MaterialMoney) values('+
#39+AWarehouseNO+#39+','+#39+AWarehouseName+#39+','+#39+AMaterialID+#39+','+#39+AMaterialName+#39+','+#39+AMaterialType+#39+','+#39+AMaterialModel+#39+','+#39+AMaterialSpecs+#39+','+#39+AMaterialUnit+#39+','+
AMaterialNum+','+AMaterialPrice+','+AMaterialMoney+')';
DM.sdsWarehouse.Close;
DM.sdsWarehouse.DataSet.CommandText := str_sql;
DM.sdsWarehouse.Execute;
end;
except
on e : exception do
begin
Application.MessageBox(pchar('錯誤:數(shù)據(jù)寫入數(shù)據(jù)庫失敗.錯誤代碼:' + e.Message),
'連接錯誤',MB_OK+MB_ICONWARNING);
abort;
end
else
Application.MessageBox('入庫保存失敗','連接錯誤',MB_OK+MB_ICONWARNING);
end;
end;
procedure TfrmWarehouseIn.edtMaterialNumKeyPress(Sender: TObject;
var Key: Char);
var
Money: Integer;
begin
if edtMaterialNum.Text='' then Exit;
Money :=StrToInt(edtMaterialNum.Text) * StrToInt(edtMaterialPrice.Text);
edtMaterialMoney.Text := IntToStr(Money);
end;
procedure TfrmWarehouseIn.edtWareDateKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
edtWareDate.Text := formatdatetime('yyyy-mm-dd',now);
edtInvoiceNO.SetFocus;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -