📄 unitsh.pas
字号:
unit UnitSh;
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
TShForm = class(TForm)
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
ImageList1: TImageList;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Panel3: TPanel;
RzBitBtn1: TRzBitBtn;
Panel2: TPanel;
DBGrid1: TDBGrid;
Edit_GoodsName: TEdit;
Edit_GoodsType: TEdit;
Label13: TLabel;
Edit_GoodsOwner: TEdit;
Label14: TLabel;
Edit_CustName: TEdit;
Label15: TLabel;
Edit_CustTel: TEdit;
Label16: TLabel;
Edit_CustAddr: TEdit;
Label17: TLabel;
Edit_OutDate: TEdit;
Label4: TLabel;
Edit_GoodsNo: TEdit;
Label8: TLabel;
Memo_ServiceRemark: TMemo;
Edit_CustRemark: TEdit;
Label5: TLabel;
Edit_OutRemark: TEdit;
Label6: TLabel;
Label7: TLabel;
Edit_InDate: TEdit;
Edit_InRemark: TEdit;
ADODataSet1: TADODataSet;
DataSource1: TDataSource;
DateTimePicker1: TDateTimePicker;
Label9: TLabel;
ADODataSet1ServiceDate: TWideStringField;
ADODataSet1ServiceRemark: TWideStringField;
ADODataSet1ServiceID: TAutoIncField;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure Edit_GoodsNoKeyPress(Sender: TObject; var Key: Char);
procedure Memo_ServiceRemarkKeyPress(Sender: TObject; var Key: Char);
procedure Edit_GoodsNoChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
procedure ClearAll;
procedure OpenData;
public
{ Public declarations }
end;
implementation
uses UnitDM;
{$R *.dfm}
procedure TShForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=27 then Close;
end;
procedure TShForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ADODataSet1.Close;
Action := caFree;
end;
procedure TShForm.DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Memo_ServiceRemark.SetFocus;
end;
procedure TShForm.Edit_GoodsNoKeyPress(Sender: TObject; var Key: Char);
begin
Edit_GoodsNo.Text := Trim(Edit_GoodsNo.Text);
if Trim(Edit_GoodsNo.Text)='' then Exit;
if Key=#13 then
begin
try
DM1.ADOQuery1.Close;
DM1.ADOQuery1.SQL.Text := ' select A.GoodsName, A.GoodsType, B.* from Tab_GoodsNo A '
+ ' left join Tab_Goods B on A.GoodsNo=B.GoodsNo '
+ ' where B.IsSale=1 and A.GoodsNo=''' + Edit_GoodsNo.Text + ''' ';
DM1.ADOQuery1.Open;
if DM1.ADOQuery1.RecordCount=1 then
begin
Edit_OutDate.Text := DM1.ADOQuery1.FieldByName('OutDate').AsString;
Edit_GoodsOwner.Text := DM1.ADOQuery1.FieldByName('GoodsOwner').AsString;
Edit_GoodsName.Text := DM1.ADOQuery1.FieldByName('GoodsName').AsString;
Edit_GoodsType.Text := DM1.ADOQuery1.FieldByName('GoodsType').AsString;
Edit_InDate.Text := DM1.ADOQuery1.FieldByName('InDate').AsString;
Edit_InRemark.Text := DM1.ADOQuery1.FieldByName('InRemark').AsString;
Edit_CustName.Text := DM1.ADOQuery1.FieldByName('CustName').AsString;
Edit_CustTel.Text := DM1.ADOQuery1.FieldByName('CustTel').AsString;
Edit_CustAddr.Text := DM1.ADOQuery1.FieldByName('CustAddr').AsString;
Edit_CustRemark.Text := DM1.ADOQuery1.FieldByName('CustRemark').AsString;
Edit_OutRemark.Text := DM1.ADOQuery1.FieldByName('OutRemark').AsString;
//查询售后记录
OpenData;
DateTimePicker1.SetFocus;
end
else
begin
Application.MessageBox('未销售此串号商品!', '提示', MB_OK + MB_ICONINFORMATION);
Edit_GoodsNo.SetFocus;
end;
DM1.ADOQuery1.Close;
except
DM1.ADOQuery1.Close;
end;
end;
end;
procedure TShForm.Memo_ServiceRemarkKeyPress(Sender: TObject;
var Key: Char);
begin
if Key=#13 then RzBitBtn1.SetFocus;
end;
procedure TShForm.ClearAll;
begin
DateTimePicker1.DateTime := now;
Memo_ServiceRemark.Lines.Clear;
Edit_OutDate.Clear;
Edit_GoodsOwner.Clear;
Edit_GoodsName.Clear;
Edit_GoodsType.Clear;
Edit_InDate.Clear;
Edit_InRemark.Clear;
Edit_CustName.Clear;
Edit_CustTel.Clear;
Edit_CustAddr.Clear;
Edit_CustRemark.Clear;
Edit_OutRemark.Clear;
ADODataSet1.Close;
end;
procedure TShForm.Edit_GoodsNoChange(Sender: TObject);
begin
ClearAll;
end;
procedure TShForm.FormCreate(Sender: TObject);
begin
ClearAll;
Edit_GoodsNo.Clear;
end;
procedure TShForm.OpenData;
begin
//查询售后记录
if Trim(Edit_GoodsNo.Text)<>'' then
begin
try
ADODataSet1.DisableControls;
ADODataSet1.Close;
ADODataSet1.CommandText :=' select A.* from Tab_Service A '
+ ' where A.GoodsNo=''' + Trim(Edit_GoodsNo.Text) + ''' '
+ ' order by A.ServiceDate ';
ADODataSet1.Open;
ADODataSet1.Last;
finally
ADODataSet1.EnableControls;
end;
end;
end;
procedure TShForm.RzBitBtn1Click(Sender: TObject);
var
sql1: string;
ServiceRemark,GoodsNo: string;
begin
GoodsNo := Trim(Edit_GoodsNo.Text);
if GoodsNo='' then
begin
Application.MessageBox('请输入串号!', '提示', MB_OK + MB_ICONINFORMATION);
Edit_GoodsNo.SetFocus;
Exit;
end;
ServiceRemark := Trim(Memo_ServiceRemark.Lines.Text);
if ServiceRemark='' then ServiceRemark := ' ';
sql1 := ' insert into Tab_Service(GoodsNo, ServiceDate, ServiceRemark)values(:GoodsNo, :ServiceDate, :ServiceRemark) ';
try
DM1.ADOConnection1.BeginTrans;
DM1.ADOQuery1.Close;
DM1.ADOQuery1.SQL.Clear;
DM1.ADOQuery1.SQL.Text := sql1;
DM1.ADOQuery1.Parameters.ParamByName('GoodsNo').Value := GoodsNo;
DM1.ADOQuery1.Parameters.ParamByName('ServiceDate').Value := FormatDateTime('yyyymmdd', DateTimePicker1.DateTime);
DM1.ADOQuery1.Parameters.ParamByName('ServiceRemark').Value := ServiceRemark;
DM1.ADOQuery1.ExecSQL;
DM1.ADOConnection1.CommitTrans;
DM1.ADOQuery1.Close;
//刷新显示
OpenData;
Application.MessageBox('登记成功!', '提示', MB_OK + MB_ICONINFORMATION);
Memo_ServiceRemark.Lines.Clear;
except
DM1.ADOConnection1.RollbackTrans;
DM1.ADOQuery1.Close;
end;
end;
procedure TShForm.DBGrid1DblClick(Sender: TObject);
var
ServiceID: string;
begin
//删除记录
if not ADODataSet1.Active then Exit;
if ADODataSet1.IsEmpty then Exit;
ServiceID := Trim(ADODataSet1.FieldByName('ServiceID').AsString);
if ServiceID='' then Exit;
if Application.MessageBox(PChar('是否真的要删除当前售后服务记录?删除后不可恢复'),'请确认',MB_OKCancel + MB_DEFBUTTON2 + MB_IconQuestion)<>ID_OK then Exit;
try
DM1.ADOConnection1.BeginTrans;
DM1.ADOQuery1.Close;
DM1.ADOQuery1.SQL.Clear;
DM1.ADOQuery1.SQL.Text := 'delete from Tab_Service where ServiceID=:ServiceID';
DM1.ADOQuery1.Parameters.ParamByName('ServiceID').Value := ServiceID;
DM1.ADOQuery1.ExecSQL;
DM1.ADOConnection1.CommitTrans;
DM1.ADOQuery1.Close;
//刷新显示
OpenData;
except
DM1.ADOConnection1.RollbackTrans;
DM1.ADOQuery1.Close;
end;
end;
procedure TShForm.FormActivate(Sender: TObject);
begin
Edit_GoodsNo.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -