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

📄 u_inwarehouse.pas

📁 这是一个用条码录入的数据的进销存(只对成品)---做童装的
💻 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 + -