crkform.pas

来自「一个物流公司的物流配送系统」· PAS 代码 · 共 219 行

PAS
219
字号
unit crkForm;

interface

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

type
  TFrmcrk = class(TForm)
    ds: TDataSource;
    dg: TDBGrid;
    editPanel: TPanel;
    btnPanel: TPanel;
    addbtn: TButton;
    editbtn: TButton;
    okbtn: TButton;
    delbtn: TButton;
    cancelbtn: TButton;
    djedit: TEdit;
    Label5: TLabel;
    Label4: TLabel;
    Label2: TLabel;
    Label18: TLabel;
    sledit: TEdit;
    spmcedit: TComboBox;
    czrqpk: TDateTimePicker;
    czlxedit: TComboBox;
    Label1: TLabel;
    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 spmceditEnter(Sender: TObject);
  private
    Procedure showdb;
  public
    { Public declarations }
  end;

var
  Frmcrk: TFrmcrk;

implementation

uses DataModule, ShareData;

{$R *.dfm}

{ TFrmBasic }

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

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

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

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

procedure TFrmcrk.FormShow(Sender: TObject);
begin
czrqpk.Date:=date;
clearControls(EditPanel);
EnabledControls(EditPanel,False);
initButtons(btnPanel);
showdb;
end;

procedure TFrmcrk.dgCellClick(Column: TColumn);
begin
if DM.cquery.IsEmpty then exit;
spmcedit.Text:=DM.cquery.FieldByName('spmc').AsString;
djedit.Text:=DM.cquery.FieldByName('sjdj').AsString;
sledit.Text:=DM.cquery.FieldByName('sl').AsString;
czrqpk.Date:=DM.cquery.FieldByName('czrq').ASDateTime;
czlxedit.itemindex:=DM.cquery.FieldByName('czlx').AsInteger;
Enabledcontrols(editPanel,False);
DBClick(btnPanel);
end;

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

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

procedure TFrmcrk.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 czb where czid=:czid');
  parameters.ParamByName('czid').Value:=dm.cquery.fieldbyname('czid').AsInteger;
  execsql;
 end;
 ShowMessage('删除成功!');
end;
updatequery;
delclick(btnPanel);
end;

procedure TFrmcrk.okbtnClick(Sender: TObject);
begin
 if spmcedit.Text = '' then
 begin
  messagedlg('商品名称不能为空,请输入!',mtWarning,[mbok],0);
  spmcedit.SetFocus;
  exit;
 end;
 if czlxedit.Text='' then
 begin
  messagedlg('操作类型不能为空,请选择!',mtWarning,[mbok],0);
  czlxedit.SetFocus;
  exit;
 end;
 if djedit.text= '' then djedit.Text:='0';
 if sledit.text= '' then sledit.Text:='0';
 with dm.tempquery do
 begin
  Active:=False;
  sql.Clear;
  if flag then
  begin
   sql.Add('exec czb_op 1,0,:spmc,:sl,:sjdj,:czrq,:czlx ');
  end
  else
  begin
   sql.Add('exec czb_op 2,:czid,:spmc,:sl,:sjdj,:czrq,:czlx ');
   parameters.ParamByName('czid').Value:=dm.cquery.fieldbyname('czid').AsInteger;
  end;
  parameters.ParamByName('spmc').Value:=spmcedit.Text ;
  parameters.ParamByName('sl').Value:=sledit.text;
  parameters.ParamByName('sjdj').Value:=djedit.Text ;
  parameters.ParamByName('czrq').Value:=czrqpk.Date;
  parameters.ParamByName('czlx').Value:=czlxedit.ItemIndex;
  execsql;
 end;
 updatequery;
 okClick(btnpanel);
 enabledcontrols(editpanel,false);
end;

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

procedure TFrmcrk.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 TFrmcrk.spmceditEnter(Sender: TObject);
begin
with DM.TempQuery do
begin
 Active:=False;
 SQL.clear;
 SQL.add('select spmc from spb order by spmc');
 Active:=True;
 spmcedit.Items.Clear;
 while not Eof do
 begin
  spmcedit.Items.Add(FieldbyName('spmc').asString);
  next;
 end;
 Active:=False;
end;
end;

end.

⌨️ 快捷键说明

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