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

📄 spform.pas

📁 一个物流公司的物流配送系统
💻 PAS
字号:
unit spForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, ComCtrls,DateUtils;

type
  TFrmsp = class(TForm)
    ds: TDataSource;
    dg: TDBGrid;
    editPanel: TPanel;
    btnPanel: TPanel;
    addbtn: TButton;
    editbtn: TButton;
    okbtn: TButton;
    delbtn: TButton;
    cancelbtn: TButton;
    djedit: TEdit;
    ggedit: TEdit;
    Label5: TLabel;
    Label4: TLabel;
    Label3: TLabel;
    Label2: TLabel;
    spmcedit: TEdit;
    Label18: TLabel;
    dledit: TEdit;
    lxedit: TComboBox;
    procedure inputrealKeyPress(Sender: TObject; var Key: Char);
    Procedure inputintKeyPress(Sender:TObject;var Key: Char);
    Procedure NextFocusKeyPress(Sender:TObject;var Key:Char);
    procedure FormShow(Sender: TObject);
    procedure dgCellClick(Column: TColumn);
    procedure addbtnClick(Sender: TObject);
    procedure editbtnClick(Sender: TObject);
    procedure delbtnClick(Sender: TObject);
    procedure okbtnClick(Sender: TObject);
    procedure cancelbtnClick(Sender: TObject);
    procedure dgDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure lxeditEnter(Sender: TObject);
  private
    Procedure showdb;
  public
    { Public declarations }
  end;

var
  Frmsp: TFrmsp;

implementation

uses DataModule, ShareData;

{$R *.dfm}

{ TFrmBasic }

procedure TFrmsp.showdb;
begin
With DM.cquery do
begin
 Active:=False;
 SQL.Clear;
 sql.Add('select * from sp_v order by spmc');
 active:=True;
end;
end;

procedure TFrmsp.inputintKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then NextSetFocus(sender)
else
 key:=inputintkeys(sender,key);
end;

procedure TFrmsp.inputrealKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then NextSetFocus(sender)
else
 key:=inputrealkeys(sender,key);
end;

procedure TFrmsp.NextFocusKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then NextSetFocus(sender);
end;

procedure TFrmsp.FormShow(Sender: TObject);
begin
clearControls(EditPanel);
EnabledControls(EditPanel,False);
initButtons(btnPanel);
showdb;
end;

procedure TFrmsp.dgCellClick(Column: TColumn);
begin
if DM.cquery.IsEmpty then exit;
spmcedit.Text:=DM.cquery.FieldByName('spmc').AsString;
lxedit.Text:=DM.cquery.FieldByName('lxmc').AsString;
ggedit.Text:=DM.cquery.FieldByName('gg').AsString;
djedit.Text:=DM.cquery.FieldByName('dj').AsString;
dledit.Text:=DM.cquery.FieldByName('dl').AsString;
Enabledcontrols(editPanel,False);
DBClick(btnPanel);
end;

procedure TFrmsp.addbtnClick(Sender: TObject);
begin
EnabledControls(EditPanel,True);
clearcontrols(EditPanel);
addClick(btnPanel);
end;

procedure TFrmsp.editbtnClick(Sender: TObject);
begin
EnabledControls(EditPanel,True);
editClick(btnPanel);
end;

procedure TFrmsp.delbtnClick(Sender: TObject);
begin
if dm.cquery.IsEmpty then exit;
if messagedlg('确认要删除此记录吗?',mtWarning,MBOKCancel,0)=id_ok then
begin
 with dm.tempquery do
 begin
  active:=False;
  sql.Clear;
  sql.Add('delete from spb where spid=:spid');
  parameters.ParamByName('spid').Value:=dm.cquery.fieldbyname('spid').AsInteger;
  execsql;
 end;
 ShowMessage('删除成功!');
end;
updatequery;
delclick(btnPanel);
end;

procedure TFrmsp.okbtnClick(Sender: TObject);
begin
 if spmcedit.Text = '' then
 begin
  messagedlg('商品名称不能为空,请输入!',mtWarning,[mbok],0);
  spmcedit.SetFocus;
  exit;
 end;
 if djedit.text= '' then djedit.Text:='0';
 if dledit.text= '' then dledit.Text:='0';
 with dm.tempquery do
 begin
  Active:=False;
  sql.Clear;
  if flag then
  begin
   sql.Add('exec sp_op 1,0,:lxmc,:spmc,:gg,:dj,:dl ');
  end
  else
  begin
   sql.Add('exec sp_op 2,:spid,:lxmc,:spmc,:gg,:dj,:dl');

   parameters.ParamByName('spid').Value:=dm.cquery.fieldbyname('spid').AsInteger;
  end;
  parameters.ParamByName('lxmc').Value:=lxedit.Text ;
  parameters.ParamByName('spmc').Value:=spmcedit.text;
  parameters.ParamByName('gg').Value:=ggedit.Text ;
  parameters.ParamByName('dj').Value:=djedit.Text ;
  parameters.ParamByName('dl').Value:=dledit.Text;
  execsql;
 end;
 updatequery;
 okClick(btnpanel);
 enabledcontrols(editpanel,false);
end;

procedure TFrmsp.cancelbtnClick(Sender: TObject);
begin
 enabledcontrols(editpanel,false);
 cancelClick(btnpanel);
end;

procedure TFrmsp.dgDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
    if (DM.cquery.RecNo mod 2)=0 then
     dg.Canvas.Brush.Color:=clWhite
    else
     dg.Canvas.Brush.Color:=clSilver;
    dg.DefaultDrawColumnCell(Rect,DAtaCol,Column,State);
end;

procedure TFrmsp.lxeditEnter(Sender: TObject);
begin
with DM.TempQuery do
begin
 Active:=False;
 SQL.clear;
 SQL.add('select lxmc from lxb order by lxmc');
 Active:=True;
 lxedit.Items.Clear;
 while not Eof do
 begin
  lxedit.Items.Add(FieldbyName('lxmc').asString);
  next;
 end;
 Active:=False;
end;
end;

end.

⌨️ 快捷键说明

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