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

📄 withdraw_unit.~pas

📁 一个很不错的仓库管理系统,能容进各种软件中去,
💻 ~PAS
字号:
unit withdraw_unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TEMPLETFORM, Menus, ComCtrls, ToolWin, StdCtrls, ExtCtrls,
  MoveImageButton, TradeImage, LabelButton, Grids, DBGrids, NewDBGrid, DB,
  ADODB, QRCtrls, QuickRpt;

type
  Twithdraw = class(TTEMPLETF)
    grid: TNewDBGrid;
    Label8: TLabel;
    Panel1: TPanel;
    LabelBtn1: TLabelBtn;
    TradeImg1: TTradeImg;
    lbBtnOK: TLabelBtn;
    MIBtnOK: TMoveImgBtn;
    DataSource1: TDataSource;
    qry: TADOQuery;
    qryordinal: TStringField;
    qrygoods_id: TStringField;
    qrygoods_name: TStringField;
    qryold_quantity: TFloatField;
    Edit5: TEdit;
    Button1: TButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    QuickRep1: TQuickRep;
    DetailBand1: TQRBand;
    SummaryBand1: TQRBand;
    TitleBand1: TQRBand;
    QRLabel1: TQRLabel;
    QRLabel2: TQRLabel;
    QRLabel3: TQRLabel;
    QRLabel4: TQRLabel;
    QRDBText1: TQRDBText;
    QRDBText2: TQRDBText;
    QRDBText3: TQRDBText;
    PageFooterBand1: TQRBand;
    QRShape1: TQRShape;
    QRLabel5: TQRLabel;
    QRLabel6: TQRLabel;
    QRLabel7: TQRLabel;
    QRExpr1: TQRExpr;
    QRLabel8: TQRLabel;
    QRLabel9: TQRLabel;
    QRLabel10: TQRLabel;
    QRLabel11: TQRLabel;
    QRLabel12: TQRLabel;
    QRLabel13: TQRLabel;
    QRLabel14: TQRLabel;
    QRSysData1: TQRSysData;
    lbBtnExit: TLabelBtn;
    MIBtnExit: TMoveImgBtn;
    QRLabel15: TQRLabel;
    QRSysData2: TQRSysData;
    QRLabel16: TQRLabel;
    QRLabel17: TQRLabel;
    DataSource2: TDataSource;
    qry_quit: TADOQuery;
    qryamount: TFloatField;
    procedure gridKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure qryBeforePost(DataSet: TDataSet);
    procedure TradeImg1Click(Sender: TObject);
    procedure gridExit(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure MIBtnOKClick(Sender: TObject);
    procedure ComboBox1Exit(Sender: TObject);
    procedure MIBtnExitClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  withdraw: Twithdraw;

implementation

uses data_unit, main_unit;

{$R *.dfm}

procedure Twithdraw.gridKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if (grid.SelectedIndex=1) and  (grid.SelectedField.Text='') then      //判断货物是否存在
  begin
  grid.SelectedIndex:=0;
  grid.SelectedField.Text:=''
  end;

    if (grid.SelectedField.Text<>'')  then
  begin
   if (Key =#13) then          //用enter代替tab键  (grid.SelectedIndex=1) and
    keybd_event(VK_TAB,0,0,0);
  end;
end;

procedure Twithdraw.FormShow(Sender: TObject);
var a:integer;
begin
  inherited;

  edit3.Text:=main_form.edit2.Text;



 combobox1.Items.clear;     //添入仓库名
 with qry_quit do
 begin
   close;
   sql.Clear;
   sql.add('select * from depot');
   open;
   first;
   next;
 end;
 a:=qry_quit.RecordCount-1;
 {if qry_quit.RecordCount>0 then
   combobox1.text:=qry_quit.fields[1].asstring;
 repeat
   combobox1.Items.Add(qry_quit.fields[1].asstring);
 until qry_quit.findnext=false;
  }
 while a>0 do
 begin
  combobox1.Items.Add(trim(qry_quit.fields[1].asstring));
  qry_quit.Next ;
  a:=a-1;
 end;

 
with data.proc do   //生成一个新的单号
begin
parameters.ParamByName('@name').Value:='withdraw';  //领料
execproc;
edit5.text:=parameters.ParamByName('@value').Value
end;
//----------------------------------------------

data.old_quantity.Close; //刷新数据库
data.old_quantity.Open;

with qry do
begin
close;
sql.Clear ;
sql.add('select * from withdraw_info where ordinal=:id');
parameters.ParamByName('id').value:=edit5.Text ;
open; 
end;

combobox1.SetFocus ;
end;

procedure Twithdraw.qryBeforePost(DataSet: TDataSet);
begin
  inherited;
qry.fieldbyname('ordinal').AsString:=edit5.text;
end;

procedure Twithdraw.TradeImg1Click(Sender: TObject);
begin
  inherited;
qrlabel6.Caption:=combobox1.Text ;
qrlabel9.Caption:=edit1.Text;
qrlabel11.Caption:=edit2.text;
qrlabel13.Caption:=edit3.Text;
 qrlabel17.Caption:=edit5.Text;

quickrep1.Preview ;
end;

procedure Twithdraw.gridExit(Sender: TObject);
var value:real;
    id:integer;
begin
  inherited;
edit1.SetFocus ;
if qry.RecordCount<>0 then
begin
qry.Edit;
qry.Post;
end;

value:=0;
with qry do             //统计总的件数
begin
first;
id:=qry.RecordCount;
while id>0 do
begin
value:=value+(qry.fields[2].value);
qry.next;
id:=id-1;
end;
label3.Caption:=floattostr(value);
end;

end;

procedure Twithdraw.Button1Click(Sender: TObject);
begin
  inherited;
edit1.SetFocus ;
if qry.RecordCount<>0 then
begin
qry.Edit;
qry.Post;
end;
end;

procedure Twithdraw.MIBtnOKClick(Sender: TObject);
var i:integer;
    depot_id:string;
begin
  inherited;


if edit1.text='' then
begin
  application.MessageBox('退料人不能为空!','系统提示',mb_ok+mb_iconinformation);
  exit;
end;

TradeImg1Click(nil);

with qry_quit do
begin
close;
sql.Clear ;
sql.Add('select * from depot where depot_name=:id');
parameters.ParamByName('id').Value:=combobox1.Text;
open;
i:=strtoint(trim(fields[0].value));
end;

with qry_quit do  //总仓库加 领料仓减
begin
close;
sql.Clear ;
sql.Add('select * from storage');
open;
qry.First;
while not qry.Eof do    //领料的内容
begin
qry_quit.First;
while not qry_quit.Eof do
begin
if qry_quit.Fields[0].value=qry.Fields[1].Value then
begin
qry_quit.edit;
qry_quit.Fields[1].value:=(qry_quit.Fields[1].value)+(qry.Fields[2].Value); //总仓库加
qry_quit.Fields[i].value:=(qry_quit.Fields[i].value)-(qry.Fields[2].Value); //领料仓减   领料仓用参数i表示
post;
end;
qry_quit.Next ;
end;
qry.Next ;
end;
end;

with qry_quit do
begin
close;
sql.Clear ;
sql.Add('select * from depot where depot_name=:name');
parameters.ParamByName('name').Value:=combobox1.Text ;
open;
depot_id:=fields[0].Value ;
end;


with qry_quit do
begin
close;
sql.Clear ;
sql.Add('select * from withdraw');
open;
append;
fields[0].Value:=edit5.Text ;
fields[1].Value:=depot_id ;
fields[2].Value:=label3.Caption  ;
fields[3].Value:=date();
fields[4].Value:=edit1.Text ;
fields[5].Value:=edit2.Text ;
fields[6].Value:=edit3.Text  ;
fields[7].Value:=edit4.Text ;
fields[8].Value:=time();
post;
end;

combobox1.Text:='';
edit1.Clear ;
edit2.Clear ;
edit3.Clear ;
edit4.Clear ;

application.MessageBox('操作完成!','系统提示',mb_ok+mb_iconinformation);
withdraw.Close;

end;

procedure Twithdraw.ComboBox1Exit(Sender: TObject);
var i:string;
begin
  inherited;

if combobox1.Text='' then
begin
combobox1.SetFocus ;
application.MessageBox('请先选择退料仓库!','系统信息',mb_ok+mb_iconinformation);
exit;
end;

with qry_quit do
begin
close;
sql.Clear ;
sql.Add('select * from depot where depot_name=:id');
parameters.ParamByName('id').Value:=combobox1.Text;
open;
i:=trim(fields[0].value);

end;
qry.Close;
qry.FieldByName('old_quantity').LookupResultField:=i;
qry.Open;
end;

procedure Twithdraw.MIBtnExitClick(Sender: TObject);
var oldvalue:string;
begin
  inherited;
  with qry_quit do
  begin
  close;
  sql.Clear ;
  sql.Add('select value from usrordinal where name=''withdraw''');
  //parameters.ParamByName('name').Value:='withdraw';
  open;
  if qry_quit.recordcount<>0 then
  begin

      oldvalue:=fields[0].AsString;
      Close;
      SQL.Clear;
      SQL.Add('update usrordinal set value=:value where name=''withdraw''');
      Parameters.ParamByName('value').Value:='0'+inttostr(strtoint(oldvalue)-1);
      ExecSQL;
  //edit;
  //fieldByName('value').Value:='0'+inttostr(strtoint(fieldByName('value').Value)-1) ;
  //fields[0].AsString:='0'+inttostr(strtoint(fields[0].AsString)-1) ;
  //post;

  end;
  end;
  //删除已经输入的内容-------------------------------
  with qry_quit do
  begin
  close;
  sql.Clear ;
  sql.Add('delete from withdraw_info where ordinal=:id');
  parameters.ParamByName('id').Value:=edit5.Text ;
  execsql;
  end;
  //-------------------------------------------------
  qry.Close;
  label3.Caption:='';
  combobox1.Clear ;
  edit1.Clear ;
  edit2.Clear ;
  edit3.Clear ;
  edit4.Clear ;
  close;
end;

end.

⌨️ 快捷键说明

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