?? exchange_unit.pas
字號:
unit exchange_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
Texchange = class(TTEMPLETF)
grid: TNewDBGrid;
Label8: TLabel;
Panel1: TPanel;
LabelBtn1: TLabelBtn;
TradeImg1: TTradeImg;
lbBtnOK: TLabelBtn;
MIBtnOK: TMoveImgBtn;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
ComboBox1: TComboBox;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label4: TLabel;
ComboBox2: TComboBox;
qry: TADOQuery;
DataSource1: TDataSource;
DataSource2: TDataSource;
qry_quit: TADOQuery;
Edit5: TEdit;
Button1: TButton;
qryordinal: TStringField;
qrygoods_id: TStringField;
qrygoods_mame: TStringField;
QuickRep1: TQuickRep;
DetailBand1: TQRBand;
SummaryBand1: TQRBand;
TitleBand1: TQRBand;
PageFooterBand1: TQRBand;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRShape1: TQRShape;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRExpr1: TQRExpr;
QRLabel10: TQRLabel;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRLabel13: TQRLabel;
QRLabel14: TQRLabel;
QRSysData1: TQRSysData;
lbBtnExit: TLabelBtn;
MIBtnExit: TMoveImgBtn;
QRLabel15: TQRLabel;
QRSysData2: TQRSysData;
QRLabel16: TQRLabel;
QRLabel17: TQRLabel;
qryamount: TFloatField;
qryoldamount: 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 ComboBox2Enter(Sender: TObject);
procedure ComboBox1Exit(Sender: TObject);
procedure MIBtnExitClick(Sender: TObject);
procedure gridEnter(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
exchange: Texchange;
implementation
uses data_unit, receive_unit, main_unit;
{$R *.dfm}
procedure Texchange.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 Texchange.FormShow(Sender: TObject);
var a:integer;
begin
inherited;
Panel1.Visible:=false; //確定按鈕不可見
edit3.Text:=main_form.edit2.Text ;
combobox1.Items.clear; //添入倉庫名
with qry_quit do
begin
close;
sql.Clear;
sql.add('select * from depot');
open;
first;
end;
a:=qry_quit.RecordCount;
{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:='exchange'; //領料
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 exchange_info where ordinal=:id');
parameters.ParamByName('id').value:=edit5.Text ;
open;
end;
combobox1.SetFocus ;
end;
procedure Texchange.qryBeforePost(DataSet: TDataSet);
begin
inherited;
qry.fieldbyname('ordinal').AsString:=edit5.text;
end;
procedure Texchange.TradeImg1Click(Sender: TObject);
begin
inherited;
qrlabel6.Caption:=combobox1.Text ;
qrlabel8.Caption:=combobox2.Text ;
qrlabel11.Caption:= edit3.Text ;
qrlabel13.Caption:=edit2.Text ;
qrlabel17.Caption:=edit5.Text ;
quickrep1.Preview ;
end;
procedure Texchange.gridExit(Sender: TObject);
var value:real;
id:integer;
begin
inherited;
combobox2.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 Texchange.Button1Click(Sender: TObject);
begin
inherited;
Panel1.Visible:=true; //確定可見
combobox2.SetFocus ;
if qry.RecordCount<>0 then
begin
qry.Edit;
qry.Post;
end;
end;
procedure Texchange.MIBtnOKClick(Sender: TObject);
var i:integer;
j:integer;
in_id:string ; //調入倉id
out_id:string ; //調出倉id
begin
inherited;
if combobox2.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:=trim(combobox1.Text);
open;
j:=strtoint(trim(fields[0].value)); //j is the number of out_depot
end;
with qry_quit do
begin
close;
sql.Clear ;
sql.Add('select * from depot where depot_name=:id');
parameters.ParamByName('id').Value:=trim(combobox2.Text);
open;
i:=strtoint(trim(fields[0].value)); //i is the number of in_depot
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[i].value:=(qry_quit.Fields[i].value)+(qry.Fields[2].Value); //調入倉加
qry_quit.Fields[j].value:=(qry_quit.Fields[j].value)-(qry.Fields[2].Value); //調出倉減
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:=combobox2.Text ;
open;
in_id:=fields[0].Value ;
close;
sql.Clear ;
sql.Add('select * from depot where depot_name=:name');
parameters.ParamByName('name').Value:=combobox1.Text ;
open;
out_id:=fields[0].Value ;
end;
with qry_quit do
begin
close;
sql.Clear ;
sql.Add('select * from exchange');
open;
append;
fields[0].Value:=edit5.Text ;
fields[1].Value:=out_id;
fields[2].Value:=in_id;
fields[3].Value:=strtofloat(label3.Caption) ;
fields[4].Value:=date() ;
fields[5].Value:=edit2.Text ;
fields[6].Value:=edit3.Text ;
fields[7].Value:=edit4.Text ;
fields[8].Value:=time() ;
post;
end;
combobox1.Text:='';
combobox2.Text:='';
edit2.Clear ;
edit3.Clear ;
edit4.Clear ;
application.MessageBox('操作完成!','系統提示',mb_ok+mb_iconinformation);
exchange.Close;
end;
procedure Texchange.ComboBox2Enter(Sender: TObject);
var a:integer;
begin
inherited;
combobox2.Items.clear; //添入倉庫名
with qry_quit do
begin
close;
sql.Clear;
sql.add('select * from depot');
open;
first;
end;
a:=qry_quit.RecordCount;
{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
combobox2.Items.Add(trim(qry_quit.fields[1].asstring));
qry_quit.Next ;
a:=a-1;
end;
end;
procedure Texchange.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('oldamount').LookupResultField:=i;
qry.Open;
end;
procedure Texchange.MIBtnExitClick(Sender: TObject);
var oldvalue:string;
begin
inherited;
//操作未完成 單號減1--------------------------------------
with qry_quit do
begin
close;
sql.Clear ;
sql.Add('select value from usrordinal where name=:name');
parameters.ParamByName('name').Value:='exchange';
open;
if recordcount<>0 then
begin
//edit;
//fieldByName('value').Value:='0'+inttostr(strtoint(fieldByName('value').Value)-1) ;
//post;
oldvalue:=fields[0].AsString;
Close;
SQL.Clear;
SQL.Add('update usrordinal set value=:value where name=''exchange''');
Parameters.ParamByName('value').Value:='0'+inttostr(strtoint(oldvalue)-1);
ExecSQL;
end;
end;
//刪除已經輸入的內容-------------------------------
with qry_quit do
begin
close;
sql.Clear ;
sql.Add('delete from exchange_info where ordinal=:id');
parameters.ParamByName('id').Value:=edit5.Text ;
execsql;
end;
//-------------------------------------------------
qry.Close;
label3.Caption:='';
combobox1.Clear ;
combobox2.Clear ;
edit2.Clear ;
edit3.Clear ;
edit4.Clear ;
close;
end;
procedure Texchange.gridEnter(Sender: TObject);
begin
inherited;
grid.SelectedIndex:=0;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -