📄 unitxs.pas
字号:
unit UnitXs;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzButton, RzBtnEdt, RzEdit, StdCtrls, Mask, ImgList, RzTabs,
ComCtrls, Buttons, DB, ADODB, Grids, DBGrids, ExtCtrls;
type
TXsForm = class(TForm)
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
ImageList1: TImageList;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
DateTimePicker1: TDateTimePicker;
Edit1: TEdit;
Panel3: TPanel;
RzBitBtn1: TRzBitBtn;
Panel2: TPanel;
PanelInput: TPanel;
BitBtn2: TBitBtn;
DBGrid1: TDBGrid;
Edit2: TEdit;
Edit3: TEdit;
Label13: TLabel;
Edit4: TEdit;
Label14: TLabel;
Edit5: TEdit;
Label15: TLabel;
Edit6: TEdit;
Label16: TLabel;
Edit7: TEdit;
Label17: TLabel;
Memo1: TMemo;
Label5: TLabel;
Memo2: TMemo;
DataSource1: TDataSource;
ADODataSet1: TADODataSet;
ADODataSet1GoodsNo: TWideStringField;
ADODataSet1GoodsOwner: TWideStringField;
ADODataSet1OutDate: TWideStringField;
ADODataSet1CustName: TWideStringField;
ADODataSet1CustTel: TWideStringField;
ADODataSet1CustAddr: TWideStringField;
ADODataSet1CustRemark: TWideStringField;
ADODataSet1OutRemark: TWideStringField;
ADODataSet1IsSale: TIntegerField;
ADODataSet1GoodsName: TWideStringField;
ADODataSet1GoodsType: TWideStringField;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure RzBitBtn1Click(Sender: TObject);
procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Edit6KeyPress(Sender: TObject; var Key: Char);
procedure Edit7KeyPress(Sender: TObject; var Key: Char);
procedure Memo1KeyPress(Sender: TObject; var Key: Char);
procedure Memo2KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
procedure ClearAll;
procedure OpenData;
public
{ Public declarations }
end;
implementation
uses UnitDM;
{$R *.dfm}
procedure TXsForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=27 then Close;
end;
procedure TXsForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ADODataSet1.Close;
Action := caFree;
end;
procedure TXsForm.Edit1Change(Sender: TObject);
begin
ClearAll;
end;
procedure TXsForm.ClearAll;
begin
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
DateTimePicker1.DateTime := now;
Edit5.Clear;
Edit6.Clear;
Edit7.Clear;
Memo1.Lines.Clear;
Memo2.Lines.Clear;
end;
procedure TXsForm.FormCreate(Sender: TObject);
begin
Edit1.Clear;
ClearAll;
OpenData;
end;
procedure TXsForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
Edit1.Text := Trim(Edit1.Text);
if Trim(Edit1.Text)='' then Exit;
if Key=#13 then
begin
try
DM1.ADOQuery1.Close;
DM1.ADOQuery1.SQL.Text := ' select A.GoodsName, A.GoodsType, B.GoodsOwner from Tab_GoodsNo A '
+ ' left join Tab_Goods B on A.GoodsNo=B.GoodsNo '
+ ' where B.IsSale=0 and A.GoodsNo=''' + Edit1.Text + ''' ';
DM1.ADOQuery1.Open;
if DM1.ADOQuery1.RecordCount=1 then
begin
Edit2.Text := DM1.ADOQuery1.FieldByName('GoodsName').AsString;
Edit3.Text := DM1.ADOQuery1.FieldByName('GoodsType').AsString;
Edit4.Text := DM1.ADOQuery1.FieldByName('GoodsOwner').AsString;
DateTimePicker1.SetFocus;
end
else
begin
Application.MessageBox('此串号不存在或已经销售!', '提示', MB_OK + MB_ICONINFORMATION);
Edit1.SetFocus;
end;
DM1.ADOQuery1.Close;
except
DM1.ADOQuery1.Close;
end;
end;
end;
procedure TXsForm.RzBitBtn1Click(Sender: TObject);
var
sql1: string;
CustName,CustTel,CustAddr,CustRemark,OutRemark,GoodsNo: string;
begin
GoodsNo := Trim(Edit1.Text);
if GoodsNo='' then
begin
Application.MessageBox('请输入串号!', '提示', MB_OK + MB_ICONINFORMATION);
Edit1.SetFocus;
Exit;
end;
if Trim(Edit4.Text)='总仓' then
begin
if Application.MessageBox(PChar('商品存放在总仓,是否真的从总仓直接销售?'),'请确认',MB_OKCancel + MB_DEFBUTTON2 + MB_IconQuestion)<>ID_OK then Exit;
end;
CustName := Trim(Edit5.Text);
CustTel := Trim(Edit6.Text);
CustAddr := Trim(Edit7.Text);
CustRemark := Trim(Memo1.Lines.Text);
OutRemark := Trim(Memo2.Lines.Text);
if CustName='' then CustName := ' ';
if CustTel='' then CustTel := ' ';
if CustAddr='' then CustAddr := ' ';
if CustRemark='' then CustRemark := ' ';
if OutRemark='' then OutRemark := ' ';
sql1 := 'update Tab_Goods set OutDate=:OutDate, CustName=:CustName, CustTel=:CustTel, CustAddr=:CustAddr, CustRemark=:CustRemark, OutRemark=:OutRemark, IsSale=:IsSale where IsSale=0 and GoodsNo=:GoodsNo ';
try
DM1.ADOConnection1.BeginTrans;
DM1.ADOQuery1.Close;
DM1.ADOQuery1.SQL.Clear;
DM1.ADOQuery1.SQL.Text := sql1;
DM1.ADOQuery1.Parameters.ParamByName('OutDate').Value := FormatDateTime('yyyymmdd', DateTimePicker1.DateTime);
DM1.ADOQuery1.Parameters.ParamByName('CustName').Value := CustName;
DM1.ADOQuery1.Parameters.ParamByName('CustTel').Value := CustTel;
DM1.ADOQuery1.Parameters.ParamByName('CustAddr').Value := CustAddr;
DM1.ADOQuery1.Parameters.ParamByName('CustRemark').Value := CustRemark;
DM1.ADOQuery1.Parameters.ParamByName('OutRemark').Value := OutRemark;
DM1.ADOQuery1.Parameters.ParamByName('IsSale').Value := 1;
DM1.ADOQuery1.Parameters.ParamByName('GoodsNo').Value := GoodsNo;
DM1.ADOQuery1.ExecSQL;
DM1.ADOConnection1.CommitTrans;
DM1.ADOQuery1.Close;
//刷新显示
OpenData;
Edit1.Clear;
Edit1.SetFocus;
except
DM1.ADOConnection1.RollbackTrans;
DM1.ADOQuery1.Close;
end;
end;
procedure TXsForm.DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Edit5.SetFocus;
end;
procedure TXsForm.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Edit6.SetFocus;
end;
procedure TXsForm.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Edit7.SetFocus;
end;
procedure TXsForm.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Memo1.SetFocus;
end;
procedure TXsForm.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Memo2.SetFocus;
end;
procedure TXsForm.Memo2KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then RzBitBtn1.SetFocus;
end;
procedure TXsForm.OpenData;
var
sql: string;
begin
sql := ' select A.*,B.GoodsName,B.GoodsType from Tab_Goods A '
+ ' left join Tab_GoodsNo B on A.GoodsNo=B.GoodsNo '
+ ' where A.IsSale=1 and A.OutDate=''' + FormatDateTime('yyyymmdd', DateTimePicker1.DateTime) + ''' '
+ ' order by A.GoodsOwner, B.GoodsName, B.GoodsType ';
try
ADODataSet1.DisableControls;
ADODataSet1.Close;
ADODataSet1.CommandText := sql;
ADODataSet1.Open;
ADODataSet1.Last;
finally
ADODataSet1.EnableControls;
end;
end;
procedure TXsForm.BitBtn2Click(Sender: TObject);
var
sql1: string;
OutDate, CustName,CustTel,CustAddr,CustRemark,OutRemark,GoodsNo: string;
begin
//返销
if not ADODataSet1.Active then Exit;
if ADODataSet1.IsEmpty then Exit;
GoodsNo := Trim(ADODataSet1.FieldByName('GoodsNo').AsString);
if GoodsNo='' then Exit;
if Application.MessageBox(PChar('是否真的要返销串号为 ' + GoodsNo + ' 的商品?'),'请确认',MB_OKCancel + MB_DEFBUTTON2 + MB_IconQuestion)<>ID_OK then Exit;
OutDate := ' ';
CustName := ' ';
CustTel := ' ';
CustAddr := ' ';
CustRemark := ' ';
OutRemark := ' ';
sql1 := 'update Tab_Goods set OutDate=:OutDate, CustName=:CustName, CustTel=:CustTel, CustAddr=:CustAddr, CustRemark=:CustRemark, OutRemark=:OutRemark, IsSale=:IsSale where IsSale=1 and GoodsNo=:GoodsNo ';
try
DM1.ADOConnection1.BeginTrans;
DM1.ADOQuery1.Close;
DM1.ADOQuery1.SQL.Clear;
DM1.ADOQuery1.SQL.Text := sql1;
DM1.ADOQuery1.Parameters.ParamByName('OutDate').Value := OutDate;
DM1.ADOQuery1.Parameters.ParamByName('CustName').Value := CustName;
DM1.ADOQuery1.Parameters.ParamByName('CustTel').Value := CustTel;
DM1.ADOQuery1.Parameters.ParamByName('CustAddr').Value := CustAddr;
DM1.ADOQuery1.Parameters.ParamByName('CustRemark').Value := CustRemark;
DM1.ADOQuery1.Parameters.ParamByName('OutRemark').Value := OutRemark;
DM1.ADOQuery1.Parameters.ParamByName('IsSale').Value := 0;
DM1.ADOQuery1.Parameters.ParamByName('GoodsNo').Value := GoodsNo;
DM1.ADOQuery1.ExecSQL;
DM1.ADOConnection1.CommitTrans;
DM1.ADOQuery1.Close;
//刷新显示
OpenData;
except
DM1.ADOConnection1.RollbackTrans;
DM1.ADOQuery1.Close;
end;
end;
procedure TXsForm.FormActivate(Sender: TObject);
begin
Edit1.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -