?? u_inwarehouse.pas
字號:
unit U_InWareHouse;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, U_Bill_Base, WinSkinData, DB, ADODB, Grids, DBGridEh, DBCtrls,
Buttons, ExtCtrls, StdCtrls, Mask;
type
TF_InWarehouse = class(TF_Bill_Base)
Ado_MasterInNO: TStringField;
Ado_MasterIndate: TDateTimeField;
Ado_MasterWarehouseno: TStringField;
Ado_MasterUsername: TStringField;
Ado_MasterAllhandcount: TIntegerField;
Ado_MasterAllCount: TIntegerField;
Ado_MasterAllmoney: TBCDField;
Label1: TLabel;
EInNO: TDBEdit;
Label2: TLabel;
EInDate: TDBEdit;
Label3: TLabel;
Label4: TLabel;
EUsername: TDBEdit;
ADO_DetailGroupname: TStringField;
ADO_DetailInNo: TStringField;
ADO_DetailProductTm: TStringField;
ADO_DetailItemNo: TStringField;
ADO_DetailUnit: TStringField;
ADO_DetailhandCount: TIntegerField;
ADO_DetailIncount: TIntegerField;
ADO_DetailPerhandcount: TIntegerField;
ADO_DetailInPrice: TBCDField;
ADO_DetailInmoney: TBCDField;
EWarehouse: TDBComboBox;
LWareNO: TLabel;
ADO_DetailWarehouseno: TStringField;
procedure FormCreate(Sender: TObject);
procedure EWarehouseKeyPress(Sender: TObject; var Key: Char);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure btn_insertClick(Sender: TObject);
procedure EWarehouseExit(Sender: TObject);
procedure DBGridEhColExit(Sender: TObject);
procedure ADO_DetailAfterInsert(DataSet: TDataSet);
procedure ADO_DetailBeforePost(DataSet: TDataSet);
procedure btn_deleteClick(Sender: TObject);
procedure btn_saveClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_InWarehouse: TF_InWarehouse;
implementation
uses U_DM, U_Function;
{$R *.dfm}
procedure TF_InWarehouse.FormCreate(Sender: TObject);
var i: integer;
begin
inherited;
Height := 448;
Width := 652;
EUsername.Text := Username;
opensql(F_Dm.Temp, 'Select * from IWarehouse');
while not F_Dm.Temp.Eof do
begin
EWarehouse.Items.Add(F_Dm.Temp.fieldbyname('Warehouseno').AsString + '-' + F_Dm.Temp.fieldbyname('WarehouseName').AsString);
F_Dm.Temp.Next;
end;
end;
procedure TF_InWarehouse.EWarehouseKeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
if key = #13 then
dbgrideh.SetFocus;
end;
procedure TF_InWarehouse.FormKeyPress(Sender: TObject; var Key: Char);
begin
// inherited;
if Key = #13 then //vk_return
begin
// Key := #0;
if ActiveControl is TDbgrideh then
begin
if TDBGrideh(ActiveControl).SelectedIndex = dbgrideh.Columns.Count - 1 then
begin
Perform(CM_DialogKey, VK_TAB, 0);
TDBGrideh(ActiveControl).SelectedIndex := 0;
end
else
begin
if TDBGrideh(ActiveControl).SelectedIndex = 0 then //當是第一格時
begin
TDBGrideh(ActiveControl).SelectedIndex := TDBGrideh(ActiveControl).SelectedIndex + 3;
exit;
end
else
begin
if TDBGrideh(ActiveControl).SelectedIndex = 3 then //當是第4格時
begin
if TDBGRIDEH(ActiveControl).DataSource.DataSet.Fields[0].AsString = '' then
begin
TDBGrideh(ActiveControl).SelectedIndex := 0;
exit;
end
else
begin
keybd_event(VK_TAB, KEYEVENTF_KEYUP, 0, 0);
dbgrideh.SelectedIndex := 0;
Exit;
end;
end ;
//else
// begin
// TDBGrideh(ActiveControl).SelectedIndex := 0;
// exit;
// end;
end;
end;
end
else
//Perform(CM_DialogKey, VK_TAB, 0);
end;
end;
procedure TF_InWarehouse.btn_insertClick(Sender: TObject);
begin
EWarehouse.SetFocus;
EWarehouse.ItemIndex := 0;
inherited;
Eindate.Text := FormatdateTime('YYYY-MM-DD', Date);
Eusername.Text := Username;
Einno.Text := Formatdatetime('YYYYMMDDSS', now);
end;
procedure TF_InWarehouse.EWarehouseExit(Sender: TObject);
begin
inherited;
if Ado_Master.State in [dsinsert, dsedit] then
if EWarehouse.Text = '' then
begin
Application.MessageBox('請先選擇倉庫!', '提示信息', MB_ICONinformation + MB_OK);
EWarehouse.SetFocus;
exit;
end;
Ado_master.Post;
end;
procedure TF_InWarehouse.DBGridEhColExit(Sender: TObject);
begin
inherited;
// if dbgrideh.Fields[dbgrideh.SelectedIndex].AsString='' then
// dbgrideh.SelectedIndex:=0;
if ado_Detail.ReadOnly then exit;
if dbgrideh.DataSource.DataSet.State in [dsEdit, dsInsert] then
begin
if dbgrideh.SelectedIndex = 0 then
begin
Getiteminfo(dbgrideh.Fields[dbgrideh.SelectedIndex].AsString, theitem);
Getgroupinfo(dbgrideh.Fields[dbgrideh.SelectedIndex].AsString, thegroup);
Dbgrideh.DataSource.DataSet.FieldByName('Groupname').AsString := Thegroup.Groupname;
//Dbgrideh.DataSource.DataSet.FieldByName('Groupno').AsString := Thegroup.Groupno;
Dbgrideh.DataSource.DataSet.FieldByName('Itemno').AsString := TheItem.ITemNO;
Dbgrideh.DataSource.DataSet.FieldByName('Perhandcount').AsInteger := TheItem.HandCount;
Dbgrideh.DataSource.DataSet.FieldByName('inprice').AsFloat := TheItem.Price;
end;
// if dbgrideh.SelectedIndex = 1 then
// begin
// GetiteminfoA(dbgrideh.Fields[dbgrideh.SelectedIndex].AsString, theitem);
// //GetgroupinfoA(dbgrideh.Fields[dbgrideh.SelectedIndex].AsString, thegroup);
// //Dbgrideh.DataSource.DataSet.FieldByName('Groupname').AsString := Thegroup.Groupname;
// //Dbgrideh.DataSource.DataSet.FieldByName('Groupno').AsString := Thegroup.Groupno;
// Dbgrideh.DataSource.DataSet.FieldByName('ItemNO').AsString := TheItem.ITemNO;
// Dbgrideh.DataSource.DataSet.FieldByName('Perhandcount').AsInteger := TheItem.HandCount;
// Dbgrideh.DataSource.DataSet.FieldByName('orderprice').AsFloat := TheItem.Price;
// end;
end;
end;
procedure TF_InWarehouse.ADO_DetailAfterInsert(DataSet: TDataSet);
begin
inherited;
if Dataset.State in [dsinsert, dsedit] then
begin
if EWarehouse.Text = '' then
begin
Application.MessageBox('請先選擇倉庫編號!', '提示信息', MB_ICONINFORMATION + MB_OK);
EWarehouse.SetFocus;
Exit
end
else
begin
Dbgrideh.DataSource.DataSet.FieldByName('inno').AsString := Einno.text;
Dbgrideh.DataSource.DataSet.FieldByName('Warehouseno').AsString := Copy(Ewarehouse.Text, 1, pos('-', Ewarehouse.Text) - 1);
Dbgrideh.DataSource.DataSet.FieldByName('Inmoney').AsFloat := 0;
Dbgrideh.DataSource.DataSet.FieldByName('InPrice').AsFloat := 0;
Dbgrideh.DataSource.DataSet.FieldByName('handCount').AsInteger := 0;
Dbgrideh.DataSource.DataSet.FieldByName('Incount').AsInteger := 0;
Dbgrideh.DataSource.DataSet.FieldByName('Perhandcount').AsInteger := 0;
// Dbgrideh.DataSource.DataSet.FieldByName('Username').AsString := Eusername.Text;
end;
end;
end;
procedure TF_InWarehouse.ADO_DetailBeforePost(DataSet: TDataSet);
begin
inherited;
Dbgrideh.DataSource.DataSet.FieldByName('inno').AsString := Einno.text;
Dbgrideh.DataSource.DataSet.FieldByName('Warehouseno').AsString := Copy(Ewarehouse.Text, 1, pos('-', Ewarehouse.Text) - 1);
Dbgrideh.DataSource.DataSet.FieldByName('Incount').AsInteger :=
Dbgrideh.DataSource.DataSet.FieldByName('Perhandcount').AsInteger *
Dbgrideh.DataSource.DataSet.FieldByName('handCount').AsInteger;
Dbgrideh.DataSource.DataSet.FieldByName('Inmoney').AsCurrency :=
Dbgrideh.DataSource.DataSet.FieldByName('Incount').AsInteger *
Dbgrideh.DataSource.DataSet.FieldByName('InPrice').AsFloat;
end;
procedure TF_InWarehouse.btn_deleteClick(Sender: TObject);
begin
inherited;
Execsql('Delete from InWarehouseDetail where inno=''' + Einno.Text + '''');
Ado_Master.Delete;
Ado_Detail.UpdateBatch(Arall);
end;
procedure TF_InWarehouse.btn_saveClick(Sender: TObject);
begin
inherited;
if Ewarehouse.Text = '' then
begin
Application.MessageBox('倉庫編號不能為空,請選擇倉庫!', '提示信息', MB_ICONINFORMATION + MB_OK);
Ewarehouse.SetFocus;
Exit;
end;
if Einno.Text = '' then
begin
Application.MessageBox('入倉單號不能為空!', '提示信息', MB_ICONINFORMATION + MB_OK);
Einno.SetFocus;
Exit;
end;
if Eindate.Text = '' then
begin
Application.MessageBox('入倉日期不能為空!', '提示信息', MB_ICONINFORMATION + MB_OK);
Eindate.SetFocus;
Exit;
end;
if Ado_master.State in [dsinsert, dsedit] then
Ado_master.Post;
if Ado_Detail.State in [dsinsert, dsedit] then
Ado_Detail.Post;
Ado_Master.UpdateBatch(arall);
Ado_Detail.UpdateBatch(Arall);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -