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

📄 uexportgoods.pas

📁 港口货物管理系统
💻 PAS
字号:
unit uexportgoods;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBTables, DB, DBCtrls, ComCtrls, StdCtrls, Buttons, Grids,
  DBGrids, ExtCtrls, ADODB;

type
  Tfmexporgoods = class(TForm)
    Bevel1: TBevel;
    Label1: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    DBGrid1: TDBGrid;
    Edit2: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    ComboBox1: TComboBox;
    BitBtn1: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    DateTimePicker1: TDateTimePicker;
    DBLookupComboBox1: TDBLookupComboBox;
    Label9: TLabel;
    ComboBox2: TComboBox;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    Query1: TQuery;
    DataSource3: TDataSource;
    Memo1: TMemo;
    Edit3: TEdit;
    Label11: TLabel;
    Table2: TTable;
    Label4: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Query2: TQuery;
    DataSource4: TDataSource;
    DBLookupComboBox3: TDBLookupComboBox;
    Table3: TTable;
    Table5: TTable;
    Query3: TQuery;
    CheckBox1: TCheckBox;
    StatusBar1: TStatusBar;
    Query4: TQuery;
    ComboBox3: TComboBox;
    Table1: TTable;
    Label10: TLabel;
    Label12: TLabel;
    procedure ComboBox1Click(Sender: TObject);
    procedure DBLookupComboBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure DBLookupComboBox3Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Edit6Exit(Sender: TObject);
    procedure FormClick(Sender: TObject);
    private
    { Private declarations }
  public
    atnamestr:string;{ Public declarations }
  end;

var
  fmexporgoods: Tfmexporgoods;

implementation

uses udm_user, ulogin;

{$R *.dfm}

procedure Tfmexporgoods.ComboBox1Click(Sender: TObject);
begin
query2.Active:=false;
query1.Close;
query1.SQL.Clear;
query1.sql.add('select distinct atnum,agname from spotgoods where  agoodd='''+combobox1.Text+'''');
query1.SQL.Add(' order by agname');
query1.ExecSQL;
query1.Active:=true;
edit3.Text:='0';
edit5.Text:='0';
end;

procedure Tfmexporgoods.DBLookupComboBox1Click(Sender: TObject);
begin
query2.Close;
query2.SQL.Clear;
query2.SQL.Add('select distinct adime from spotgoods where agoodd='''+combobox1.text+'''');
query2.SQL.Add('and atnum='''+dblookupcombobox1.Text+'''');
query2.active:=true;
dblookupcombobox3.ListField:='adime';
dblookupcombobox3.KeyField:='adime';
end;

procedure Tfmexporgoods.FormCreate(Sender: TObject);
var i:integer;
begin
application.OnMessage:=fmlogin.doenterastab;
datetimepicker1.Date:=date();
//edit3.Text:='0';
//edit5.Text:='0';
edit6.Text:='';
edit2.Text:='';
edit1.Text:='';
query4.Active:=true;
query4.First;
for i:=1 to query4.RecordCount do
begin
combobox1.Items.Add(query4.FieldValues['agoodd']);
query4.Next;
end;
combobox1.ItemIndex:=0;
combobox1.OnClick(sender);
end;

procedure Tfmexporgoods.ComboBox3Click(Sender: TObject);
var tempquery:tquery;
begin
if table1.Locate('agoodd;atnum;adime;aspot',vararrayof([combobox1.text,dblookupcombobox1.text,dblookupcombobox3.text,combobox3.text]),[])=true
then
begin
memo1.Clear;
memo1.Lines.Add('货场:'+combobox3.Text);
memo1.Lines.Add('货代:'+combobox1.text);
memo1.Lines.Add('提单:'+dblookupcombobox1.ListSource.DataSet.FieldValues['atnum']);
memo1.Lines.Add('货名:'+dblookupcombobox1.ListSource.DataSet.FieldValues['agname']+' '+table1.FieldValues['adime']);
memo1.Lines.Add('库存件数:'+inttostr(table1.FieldValues['ncoil'])+' 件');
memo1.Lines.Add('库存吨位:'+formatfloat('0.000',table1.FieldValues['nton'])+' 吨');
table3.Locate('agoodd;atnum;adime',vararrayof([combobox1.text,dblookupcombobox1.text,dblookupcombobox3.text]),[]);
memo1.Lines.Add('计划吨位:'+inttostr(table3.FieldValues['nton'])+' 吨');
edit3.Text:=inttostr(table1.FieldValues['ncoil']);
edit5.Text:=formatfloat('0.000',table1.FieldValues['nton']);
edit3.SetFocus;
edit3.SelectAll;
end;
end;

procedure Tfmexporgoods.BitBtn4Click(Sender: TObject);
begin
fmexporgoods.Close;
end;

procedure Tfmexporgoods.BitBtn1Click(Sender: TObject);
var aaa,tempnum:string;
begin

if trim(edit6.Text)='' then
begin
showmessage('出货工具名不能为空!!');
edit6.SetFocus;
end
else
begin
if checkbox1.Checked=false then
if query3.Locate('atname',trim(edit6.text),[])=true then
begin
aaa:=varastype(chr(63+query3.RecordCount+1),varString );
atnamestr:=trim(edit6.text)+trim(aaa);
end
else
atnamestr:=trim(edit6.Text);


//if table2.Locate('ddate;atnum;ncoil;nton;atname',vararrayof([datetostr(datetimepicker1.date),dblookupcombobox1.text,strtofloat(edit3.Text),strtofloat(edit5.Text),edit6.text]),[])=false
if table1.Locate('agoodd;atnum;adime;aspot',vararrayof([combobox1.text,dblookupcombobox1.text,dblookupcombobox3.text,combobox3.text]),[])=true
then
if table1.FieldValues['ncoil']>=strtoint(edit3.Text)
then
begin
table2.Append;
table2.FieldValues['ddate']:=formatdatetime('yyyy-mm-dd',datetimepicker1.Date);
table2.FieldValues['atnum']:=dblookupcombobox1.Text;
table2.FieldValues['agname']:=table3.FieldValues['agname'];
table2.FieldValues['adime']:=table3.FieldValues['adime'];
table2.FieldValues['ncoil']:=strtofloat(edit3.Text);
tempnum:=formatfloat('0.000',strtofloat(edit5.text));
table2.FieldValues['nton']:=strtofloat(tempnum);
table2.FieldValues['aqd']:=combobox2.Text;
table2.FieldValues['atname']:=atnamestr;
table2.FieldValues['agoodd']:=table3.FieldValues['agoodd'];
table2.fieldvalues['aspot']:=combobox3.text;
table2.FieldValues['adir']:=edit1.Text;
table2.FieldValues['auser']:=fmuser.susername;
table2.FieldValues['agroup']:=fmuser.strgroup;
table2.FieldValues['abz']:=edit2.Text;
table2.Post;
table2.Last;

if table1.Locate('agoodd;atnum;adime;aspot',vararrayof([combobox1.text,dblookupcombobox1.text,dblookupcombobox3.text,combobox3.text]),[])=true then
begin
if table1.FieldValues['ncoil']=strtoint(trim(edit3.Text)) then
begin
table1.Delete;
end
else
begin
table1.Edit;
table1.FieldValues['ncoil']:=table1.FieldValues['ncoil']-strtoint(edit3.Text);
tempnum:=formatfloat('0.000',strtofloat(edit5.text));
table1.FieldValues['nton']:=table1.FieldValues['nton']-strtofloat(tempnum);
table1.Post;
end;
end;

end
else
messagedlg('你输入的件数大于库场量!请核查!!',mtInformation,
     [mbOk], 0)

else
begin
messagedlg('库中没有此条记录或'+#13+'你已经输入过该记录'+'请核查!!',mtInformation,
     [mbOk], 0);
table2.Locate('agoodd;atnum;adime;aspot',vararrayof([combobox1.text,dblookupcombobox1.text,dblookupcombobox3.text,combobox3.text]),[]);
end;
end;
fmexporgoods.OnClick(sender);
combobox1.OnClick(sender);
fmexporgoods.DBLookupComboBox1.OnClick(sender);
fmexporgoods.DBLookupComboBox3.OnClick(sender);
fmexporgoods.ComboBox3.OnClick(sender);

end;





procedure Tfmexporgoods.BitBtn3Click(Sender: TObject);
begin
if table2.RecordCount>0 then
begin
if table1.Locate('agoodd;atnum;adime;aspot',vararrayof([table2.FieldValues['agoodd'],table2.FieldValues['atnum'],table2.FieldValues['adime'],table2.FieldValues['aspot']]),[])=true then
begin
table1.Edit;
table1.FieldValues['ncoil']:=table1.FieldValues['ncoil']+table2.FieldValues['ncoil'];
table1.FieldValues['nton']:=table1.FieldValues['nton']+table2.FieldValues['nton'];
table1.Post;
end
else
begin
table1.Append;
table1.FieldValues['atnum']:=table2.FieldValues['atnum'];;
table1.FieldValues['agname']:=table2.FieldValues['agname'];
table1.FieldValues['adime']:=table2.FieldValues['adime'];
table1.FieldValues['ncoil']:=table2.FieldValues['ncoil'];
table1.FieldValues['nton']:=table2.FieldValues['nton'];
table1.FieldValues['aspot']:=table2.FieldValues['aspot'];
table1.FieldValues['agoodd']:=table2.FieldValues['agoodd'];
table1.FieldValues['abz']:=table2.FieldValues['abz'];
table1.Post;
end;

table2.Delete;
//dblookupcombobox3.OnClick(sender);
end
else
showmessage('没有可删除的记录!');
fmexporgoods.OnClick(sender);
combobox1.OnClick(sender);
fmexporgoods.DBLookupComboBox1.OnClick(sender);
fmexporgoods.DBLookupComboBox3.OnClick(sender);
fmexporgoods.ComboBox3.OnClick(sender);
end;

procedure Tfmexporgoods.BitBtn2Click(Sender: TObject);
begin
if table2.RecordCount>0 then
begin
table2.Edit;
table2.Post;
dblookupcombobox3.OnClick(sender);
end
else
showmessage('没有可修改的记录!');
fmexporgoods.OnClick(sender);
end;

procedure Tfmexporgoods.DBLookupComboBox3Click(Sender: TObject);
var aa,dd:single;
    cc,bb:integer;
    tempquery:tquery;
begin
aa:=0;
bb:=0;
cc:=0;
dd:=0;

try
table1.DisableControls;
table1.First;
while not  table1.eof
do
begin
if (table1.FieldValues['agoodd']=combobox1.Text) and (table1.FieldValues['atnum']=dblookupcombobox1.Text) and  (table1.FieldValues['adime']=dblookupcombobox3.Text)

then
begin
bb:=bb+table1.FieldValues['ncoil'];
aa:=aa+table1.FieldValues['nton'];
end;
table1.next;
end;
finally
table1.EnableControls;
end;

try
table5.DisableControls;
table5.First;
while not  table5.eof
do
begin
if (table5.FieldValues['agoodd']=combobox1.Text) and (table5.FieldValues['atnum']=dblookupcombobox1.Text) and  (table5.FieldValues['adime']=dblookupcombobox3.Text)
then
begin
cc:=cc+table5.FieldValues['ncoil'];
dd:=dd+table5.FieldValues['nton'];
end;
table5.next;
end;
finally
table5.EnableControls;
end;





memo1.Clear;
//with table4 do
begin
//table4.Locate('agoodd;atnum;adime',vararrayof([combobox1.text,dblookupcombobox1.text,dblookupcombobox3.text]),[]);
table3.Locate('agoodd;atnum;adime',vararrayof([combobox1.text,dblookupcombobox1.text,dblookupcombobox3.text]),[]);
table2.Locate('agoodd;atnum;adime',vararrayof([combobox1.text,dblookupcombobox1.text,dblookupcombobox3.text]),[]);
memo1.Lines.Add('货代:'+combobox1.Text);//.FieldValues['agoodd']);
memo1.Lines.Add('提单号:'+table3.FieldValues['atnum']);
memo1.Lines.Add('货名:'+table3.fieldValues['adime']+' '+table3.FieldValues['agname']);
memo1.Lines.Add('库存件数:'+inttostr(bb)+' 件');
memo1.Lines.Add('库存吨位:'+formatfloat('0.000',aa)+' 吨');
memo1.Lines.Add('计划吨位:'+formatfloat('0.000',table3.FieldValues['nton'])+'吨');
//memo1.Lines.Add('到港件数:'+inttostr(bb)+'件');
//memo1.Lines.Add('到港吨位:'+formatfloat('0.000',(aa))+'吨');
//memo1.Lines.Add('出港件数:'+inttostr(cc)+'件');
//memo1.Lines.Add('出港吨位:'+formatfloat('0.000',(dd))+'吨');
//edit3.Text:=inttostr(bb-cc);
//edit5.Text:=formatfloat('0.000',(aa-dd));
tempquery:=tquery.Create(nil);
tempquery.DatabaseName:='port';
tempquery.Close;
tempquery.SQL.clear;
tempquery.SQL.Add('select distinct aspot from spotgoods where agoodd='''+combobox1.text+'''');
tempquery.SQL.Add('and atnum='''+dblookupcombobox1.Text+'''');
tempquery.SQL.Add('and adime='''+dblookupcombobox3.Text+'''');
tempquery.Open;

combobox3.Items.Clear;
while not tempquery.Eof
do
begin
combobox3.Items.add(tempquery.Fields[0].Value);
tempquery.Next;
end;
combobox3.ItemIndex:=0;
end;
end;


procedure Tfmexporgoods.CheckBox1Click(Sender: TObject);
var bbb:string;
begin
if length(trim(edit6.text))>0 then
begin
bbb:='select distinct atname from mexport where atname like '+'"'+trim(edit6.Text)+'%"';
query3.Close;
query3.SQL.clear;
query3.SQL.add(bbb);
query3.SQL.add(' order by atname');
query3.open;
query3.Last;
if query3.RecordCount>0 then
begin
if checkbox1.Checked then
atnamestr:=trim(query3.FieldValues['atname']);
end
else
begin
showmessage('次出货工具名库中没有找到!不能接班输入!');
checkbox1.Checked:=false;
end;
end
else
begin
showmessage('出货工具名不能为空!重新输入!!');
checkbox1.Checked:=false;
edit6.SetFocus;
end;
end;








procedure Tfmexporgoods.Edit6Exit(Sender: TObject);
var bbb:string;
begin
//if trim(edit6.Text)='' then
//begin
//showmessage('出货工具名不能为空!!');
//edit6.SetFocus;
//end
//else
begin
bbb:='select distinct atname from mexport where atname like '+'"'+trim(edit6.Text)+'%"';
query3.Close;
query3.SQL.clear;
query3.SQL.add(bbb);
query3.SQL.add(' order by atname');
query3.open;
end;
end;
procedure Tfmexporgoods.FormClick(Sender: TObject);
var sumton:single;
    i,sumcoil:integer;
begin
sumton:=0.000;
sumcoil:=0;
table2.First;
for i:=1 to table2.RecordCount do
begin
sumton:=sumton+table2.FieldValues['nton'];
sumcoil:=sumcoil+table2.FieldValues['ncoil'];
table2.Next;
end;
statusbar1.Panels[1].Text:=inttostr(table2.RecordCount)+' 个记录';
statusbar1.Panels[2].Text:=inttostr(sumcoil)+' 件';
statusbar1.Panels[3].Text:=formatfloat('0.000',sumton)+' 吨';
end;


end.

⌨️ 快捷键说明

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