yg.pas

来自「应对服装行业的生产成本控制系统」· PAS 代码 · 共 411 行

PAS
411
字号
unit yg;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Grids, DBGrids, Buttons, ExtCtrls, DB,
  DBClient, MConnect, Mask, DBCtrls, DBTables;

type
  TFrmyg = class(TForm)
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    edit2: TDBEdit;
    DBGrid2: TDBGrid;
    Label3: TLabel;
    Panel3: TPanel;
    Tnew: TBitBtn;
    Trepair: TBitBtn;
    Tdelete: TBitBtn;
    Tcancel: TBitBtn;
    Tsave: TBitBtn;
    Treturn: TBitBtn;
    fz: TDBLookupComboBox;
    DBEdit2: TDBEdit;
    DBGrid1: TDBGrid;
    Label8: TLabel;
    Label9: TLabel;
    BitBtn1: TBitBtn;
    bprintc: TBitBtn;
    OpenDialog1: TOpenDialog;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    fb: TDBLookupComboBox;
    Label4: TLabel;
    DBEdit3: TDBEdit;
    SpeedButton2: TSpeedButton;
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TnewClick(Sender: TObject);
    procedure TrepairClick(Sender: TObject);
    procedure TdeleteClick(Sender: TObject);
    procedure TcancelClick(Sender: TObject);
    procedure TsaveClick(Sender: TObject);
    procedure TreturnClick(Sender: TObject);
    procedure DBEdit5KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure edit2Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
    procedure bprintcClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure DBEdit3Change(Sender: TObject);
    procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
    procedure fbKeyPress(Sender: TObject; var Key: Char);
    procedure fzKeyPress(Sender: TObject; var Key: Char);
    
 private
 rzczy,rzsj,rzjsj,rzcsj:string;
  xg: integer;
    { Private declarations }
  public
st1,st2,st3:string;
function checkyg(yg,gh,fb,fz:string):boolean;
function checkll(yg,fb,fz:string):boolean;
  end;

var
  Frmyg: TFrmyg;

implementation
uses unit28,Unit16, Unit1,func;

{$R *.dfm}

procedure TFrmyg.FormActivate(Sender: TObject);
begin
rzjsj:=datetimetostr(now);
rzczy:=form1.StatusBar1.Panels[4].Text;
rzsj:='添加员工';
rzcsj:='';
xg:=0;
tnew.Enabled:=true;
trepair.Enabled:=false;
tdelete.Enabled:=false;
tsave.Enabled:=false;
tcancel.Enabled:=false;
tnew.SetFocus;
dbedit3.Enabled:=false;
edit2.Enabled:=false;
fz.Enabled:=false;
fb.Enabled:=false;
try
DataModule1.ClientDataSet2.Close;
DataModule1.ClientDataSet2.CommandText:='select * from dbo.fzb order by xh' ;
DataModule1.ClientDataSet2.Open;
DataModule1.ClientDataSet1.Close;
DataModule1.ClientDataSet1.CommandText:='select * from dbo.fbb order by xh';
DataModule1.ClientDataSet1.Open;
DataModule1.ClientDataSet3.Close;
DataModule1.ClientDataSet3.CommandText:='select * from dbo.ygb order by fb,fz,xm' ;
DataModule1.ClientDataSet3.Open;
except
showmessage('数据库没有打开!')
end;
end;

procedure TFrmyg.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
DataModule1.ClientDataSet3.IndexFieldNames:='';
if DataModule1.ClientDataSet3.Active then  DataModule1.ClientDataSet3.CancelUpdates;
if DataModule1.ClientDataSet3.Active then DataModule1.ClientDataSet3.Active:=false;
if DataModule1.ClientDataSet2.Active then DataModule1.ClientDataSet2.Active:=false;
if DataModule1.ClientDataSet1.Active then DataModule1.ClientDataSet1.Active:=false;
if DataModule1.ClientDataSet28.Active then DataModule1.ClientDataSet28.active:=false;
if rzcsj<>'' then exit;
rzcsj:=datetimetostr(now);
form16.WriteTorz(rzczy,rzsj,rzjsj,rzcsj);
except
showmessage('数据库没有打开!')
end;
end;


procedure TFrmyg.TnewClick(Sender: TObject);
begin
dbedit3.Enabled:=true;
fb.Enabled:=true;
fz.Enabled:=true;
edit2.Enabled:=true;
tnew.Enabled:=false;
tdelete.Enabled:=false;
trepair.Enabled:=false;
tcancel.Enabled:=true;
tsave.Enabled:=true;
try
DataModule1.ClientDataSet3.IndexFieldNames:='fb;fz;xm';
dbedit3.SetFocus;
if xg=0 then
begin
DataModule1.ClientDataSet3.CancelUpdates;
DataModule1.ClientDataSet3.First;
DataModule1.ClientDataSet3.Edit;
DataModule1.ClientDataSet3.Insert;
end;
except
showmessage('数据库没有打开!');
end;
end;


procedure TFrmyg.TrepairClick(Sender: TObject);
begin
try
xg:=1;
DataModule1.ClientDataSet3.Edit;
dbedit3.Enabled:=true;
fb.Enabled:=true;
fz.Enabled:=true;
edit2.Enabled:=true;
dbedit3.SetFocus;
tnew.Enabled:=false;
trepair.Enabled:=false;
tdelete.Enabled:=false;
tcancel.Enabled:=true;
tsave.Enabled:=true;
except
showmessage('数据库没有打开!')
end;
end;

procedure TFrmyg.TdeleteClick(Sender: TObject);
begin
try
tnew.Enabled:=true;
tnew.SetFocus;
trepair.Enabled:=false;
tdelete.Enabled:=false;
tcancel.Enabled:=false;
tsave.Enabled:=false;
if DataModule1.ClientDataSet3.RecordCount<1 then exit;
DataModule1.ClientDataSet3.Edit;
DataModule1.ClientDataSet3.Delete;
DataModule1.ClientDataSet3.ApplyUpdates(-1);
except
showmessage('数据库没有打开!')
end;
end;

procedure TFrmyg.TcancelClick(Sender: TObject);
begin
xg:=0;
DataModule1.ClientDataSet3.CancelUpdates;
fb.Enabled:=true;
fz.Enabled:=true;
tnew.Enabled:=true;
tnew.SetFocus;
trepair.Enabled:=false;
tdelete.Enabled:=false;
tcancel.Enabled:=false;
tsave.Enabled:=false;
end;

procedure TFrmyg.TsaveClick(Sender: TObject);
begin
if trim(fb.Text)<>'' then dbedit1.Text:=fb.Text;
if trim(fz.Text)<>'' then dbedit2.Text:=fz.Text;
if trim(edit2.Text)=''then exit;
if trim(dbedit2.Text)=''then exit;
if trim(dbedit3.Text)=''then exit;
xg:=0;
 try
dbedit2.Text:=trim(dbedit2.Text);
edit2.Text:=trim(edit2.Text);
DataModule1.ClientDataSet3.ApplyUpdates(-1);
fb.Enabled:=true;
fz.Enabled:=true;
if not DataModule1.ClientDataSet3.Active then DataModule1.ClientDataSet3.Active:=true;
tsave.Enabled:=false;
tcancel.Enabled:=false;
trepair.Enabled:=false;
tdelete.Enabled:=false;
tnew.Enabled:=true;
tnew.SetFocus;
except
showmessage('输入数据重复或数据库没有打开!')
end;
end;

procedure TFrmyg.TreturnClick(Sender: TObject);
begin
try
form1.yg:=trim(edit2.text);
DataModule1.ClientDataSet3.IndexFieldNames:='';
if DataModule1.ClientDataSet3.Active then  DataModule1.ClientDataSet3.CancelUpdates;
if DataModule1.ClientDataSet3.Active then DataModule1.ClientDataSet3.Active:=false;
if DataModule1.ClientDataSet2.Active then DataModule1.ClientDataSet2.Active:=false;
if DataModule1.ClientDataSet1.Active then DataModule1.ClientDataSet1.Active:=false;
if DataModule1.ClientDataSet28.Active then DataModule1.ClientDataSet28.active:=false;
rzcsj:=datetimetostr(now);
form16.WriteTorz(rzczy,rzsj,rzjsj,rzcsj);
except
showmessage('数据库没有打开!')
end;
close;
end;

procedure TFrmyg.DBEdit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then tsave.SetFocus;
end;

procedure TFrmyg.DBGrid1DblClick(Sender: TObject);
begin
tnew.Enabled:=false;
tdelete.Enabled:=true;
trepair.Enabled:=true;
trepair.Enabled:=true;
tcancel.Enabled:=true;
tsave.Enabled:=false;
trepair.SetFocus;
end;

procedure TFrmyg.edit2Change(Sender: TObject);
var
relation,cx,commandstring,strt:string;
begin
 relation:=' like ''';
    cx:='%';
  try
if trim(edit2.Text)<>'' then
begin
strt:=trim(edit2.Text);
commandstring:='select * from ygb where (ygb.xm'+relation+cx+strt+cx+''')';
DataModule1.ClientDataSet28.Close;
DataModule1.ClientDataSet28.CommandText:=commandstring;
DataModule1.ClientDataSet28.Open;
end;
except
showmessage('数据库没有打开!')
end;
end;

procedure TFrmyg.BitBtn1Click(Sender: TObject);
begin
DataModule1.ClientDataSet3.Close;
DataModule1.ClientDataSet3.CommandText:='select * from ygb order by fb,fz,xm';
DataModule1.ClientDataSet3.Open;
end;

procedure TFrmyg.DBGrid1TitleClick(Column: TColumn);
var i : integer;
begin
for i:= 1 to DBGrid1.Columns.Count do
begin
//恢复所有标题字体为默认
DBGrid1.Columns[i-1].Title.Font.Color := clBlue;
DBGrid1.Columns[i-1].Title.Font.Style := [];
end;
if DataModule1.ClientDataSet3.IndexFieldNames<>(Column.FieldName) then //判断原排序方式
begin
DataModule1.ClientDataSet3.IndexFieldNames:= Column.FieldName;
Column.Title.Font.Color := clRed; //改变标题行字体为红色,表示当前的排序方式为升序
Column.Title.Font.Style := [fsBold];
end;
end;

procedure TFrmyg.bprintcClick(Sender: TObject);
var
excelname: string;
begin
if not form1.excel then
begin
showmessage('您还未获得管理员的授权!请您与管理员联系获取授权!');
exit;
end;
if DataModule1.ClientDataSet3.RecordCount<=0 then exit;
opendialog1.Filter:='Excel 文件 (*.xls) │*.xls';
if opendialog1.Execute then
excelname:=opendialog1.FileName;
if length(excelname)>0 then writetoexcel(DataModule1.ClientDataSet3,excelname,'员工信息报表');
exit;
end;


procedure TFrmyg.SpeedButton2Click(Sender: TObject);
begin
fz.KeyValue:='';
end;

procedure TFrmyg.DBEdit3Change(Sender: TObject);
var
relation,cx,commandstring,strt:string;
begin
 relation:=' = ''';
    cx:='';
  try
if trim(dbedit3.Text)<>'' then
begin
strt:=trim(dbedit3.Text);
commandstring:='select * from ygb where (ygb.gh'+relation+cx+strt+cx+''')';
DataModule1.ClientDataSet28.Close;
DataModule1.ClientDataSet28.CommandText:=commandstring;
DataModule1.ClientDataSet28.Open;
end;
except
showmessage('数据库没有打开!')
end;
end;

procedure TFrmyg.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then fb.SetFocus;
end;

procedure TFrmyg.fbKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then fz.SetFocus;
end;

procedure TFrmyg.fzKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit2.SetFocus;
end;

function tfrmyg.checkyg(yg,gh,fb,fz:string):boolean;
var
relation,commandstring,cx:string;
begin
relation:=' = ''';
cx:='';
commandstring:='select * from dbo.ygb where (xm ' +relation+cx+form1.yg+cx+''')';  //检查
commandstring:=commandstring+' and (gh ' +relation+cx+form1.gh+cx+''')';
commandstring:=commandstring+' and (fb ' +relation+cx+form1.fb+cx+''')';
if form1.fz<>'' then commandstring:=commandstring+' and (fz ' +relation+cx+form1.fz+cx+''')';
try
DataModule1.ClientDataSet28.Close;
DataModule1.ClientDataSet28.CommandText:=commandstring;
DataModule1.ClientDataSet28.Open;
if DataModule1.ClientDataSet28.RecordCount<1 then form1.yg:='';
DataModule1.ClientDataSet28.Active:=false;
except
form1.yg:='';
end;
end;

function tfrmyg.checkll(yg,fb,fz:string):boolean;
var
relation,commandstring,cx:string;
begin
relation:=' = ''';
cx:='';
commandstring:='select * from dbo.ygb where (xm ' +relation+cx+form1.yg+cx+''')';  //检查
commandstring:=commandstring+' and (fb ' +relation+cx+form1.fb+cx+''')';
if form1.fz<>'' then commandstring:=commandstring+' and (fz ' +relation+cx+form1.fz+cx+''')';
try
DataModule1.ClientDataSet28.Close;
DataModule1.ClientDataSet28.CommandText:=commandstring;
DataModule1.ClientDataSet28.Open;
if DataModule1.ClientDataSet28.RecordCount<1 then form1.yg:='';
DataModule1.ClientDataSet28.Active:=false;
except
form1.yg:='';
end;
end;

end.

⌨️ 快捷键说明

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