📄 cpml.pas
字号:
unit cpml;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Grids, DBGrids, Buttons, ExtCtrls, DB,
DBClient, MConnect, Mask, DBCtrls, DBTables;
type
TFrmcpml = 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;
cpdw: TDBLookupComboBox;
DBEdit2: TDBEdit;
DBGrid1: TDBGrid;
Label8: TLabel;
Label9: TLabel;
BitBtn1: TBitBtn;
bprintc: TBitBtn;
OpenDialog1: TOpenDialog;
Label1: TLabel;
DBEdit1: TDBEdit;
cpfl: TDBLookupComboBox;
Label4: TLabel;
DBEdit3: TDBEdit;
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 BitBtn1Click(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure bprintcClick(Sender: TObject);
procedure DBEdit3Change(Sender: TObject);
procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure cpflKeyPress(Sender: TObject; var Key: Char);
procedure cpdwKeyPress(Sender: TObject; var Key: Char);
private
rzczy,rzsj,rzjsj,rzcsj:string;
xg: integer;
{ Private declarations }
public
st1,st2,st3:string;
function checkcp(cpmc,cpfl,cpdw:string):boolean;
end;
var
Frmcpml: TFrmcpml;
implementation
uses unit28,Unit16, Unit1,func;
{$R *.dfm}
procedure TFrmcpml.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;
cpfl.Enabled:=false;
cpdw.Enabled:=false;
try
DataModule1.ClientDataSet6.Close;
DataModule1.ClientDataSet6.CommandText:='select * from dbo.cpdwb order by xh' ;
DataModule1.ClientDataSet6.Open;
DataModule1.ClientDataSet12.Close;
DataModule1.ClientDataSet12.CommandText:='select * from dbo.cpflb order by xh';
DataModule1.ClientDataSet12.Open;
DataModule1.ClientDataSet13.Close;
DataModule1.ClientDataSet13.CommandText:='select * from dbo.cpmlb order by xh' ;
DataModule1.ClientDataSet13.Open;
except
showmessage('数据库没有打开!')
end;
end;
procedure TFrmcpml.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
DataModule1.ClientDataSet13.IndexFieldNames:='';
if DataModule1.ClientDataSet13.Active then DataModule1.ClientDataSet13.CancelUpdates;
if DataModule1.ClientDataSet13.Active then DataModule1.ClientDataSet13.Active:=false;
if DataModule1.ClientDataSet6.Active then DataModule1.ClientDataSet6.Active:=false;
if DataModule1.ClientDataSet12.Active then DataModule1.ClientDataSet12.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 TFrmcpml.TnewClick(Sender: TObject);
begin
dbedit3.Enabled:=true;
cpfl.Enabled:=true;
cpdw.Enabled:=true;
edit2.Enabled:=true;
tnew.Enabled:=false;
tdelete.Enabled:=false;
trepair.Enabled:=false;
tcancel.Enabled:=true;
tsave.Enabled:=true;
try
DataModule1.ClientDataSet13.IndexFieldNames:='cpfl;cpmc';
dbedit3.SetFocus;
if xg=0 then
begin
DataModule1.ClientDataSet13.CancelUpdates;
DataModule1.ClientDataSet13.First;
DataModule1.ClientDataSet13.Edit;
DataModule1.ClientDataSet13.Insert;
if form1.cpmc<>'' then
begin
dbedit3.Text:=form1.cpmc;
form1.cpmc:='';
end;
end;
except
showmessage('数据库没有打开!');
end;
end;
procedure TFrmcpml.TrepairClick(Sender: TObject);
begin
try
xg:=1;
DataModule1.ClientDataSet13.Edit;
dbedit3.Enabled:=true;
cpfl.Enabled:=true;
cpdw.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 TFrmcpml.TdeleteClick(Sender: TObject);
begin
try
tnew.Enabled:=true;
tnew.SetFocus;
trepair.Enabled:=false;
tdelete.Enabled:=false;
tcancel.Enabled:=false;
tsave.Enabled:=false;
if DataModule1.ClientDataSet13.RecordCount<1 then exit;
DataModule1.ClientDataSet13.Edit;
DataModule1.ClientDataSet13.Delete;
DataModule1.ClientDataSet13.ApplyUpdates(-1);
except
showmessage('数据库没有打开!')
end;
end;
procedure TFrmcpml.TcancelClick(Sender: TObject);
begin
xg:=0;
DataModule1.ClientDataSet13.CancelUpdates;
cpdw.Enabled:=true;
cpfl.Enabled:=true;
tnew.Enabled:=true;
tnew.SetFocus;
trepair.Enabled:=false;
tdelete.Enabled:=false;
tcancel.Enabled:=false;
tsave.Enabled:=false;
end;
procedure TFrmcpml.TsaveClick(Sender: TObject);
begin
if trim(cpfl.Text)<>'' then dbedit1.Text:=cpfl.Text;
if trim(cpdw.Text)<>'' then dbedit2.Text:=cpdw.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.ClientDataSet13.ApplyUpdates(-1);
cpfl.Enabled:=true;
cpdw.Enabled:=true;
if not DataModule1.ClientDataSet13.Active then DataModule1.ClientDataSet13.Active:=true;
tsave.Enabled:=false;
tcancel.Enabled:=false;
trepair.Enabled:=false;
tdelete.Enabled:=false;
tnew.Enabled:=true;
tnew.SetFocus;
except
showmessage('输入数据重复或数据库没有打开!')
end;
end;
procedure TFrmcpml.TreturnClick(Sender: TObject);
begin
try
form1.cpmc:=trim(dbedit3.Text);
DataModule1.ClientDataSet13.IndexFieldNames:='';
if DataModule1.ClientDataSet13.Active then DataModule1.ClientDataSet13.CancelUpdates;
if DataModule1.ClientDataSet13.Active then DataModule1.ClientDataSet13.Active:=false;
if DataModule1.ClientDataSet6.Active then DataModule1.ClientDataSet6.Active:=false;
if DataModule1.ClientDataSet12.Active then DataModule1.ClientDataSet12.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 TFrmcpml.DBEdit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then tsave.SetFocus;
end;
procedure TFrmcpml.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 TFrmcpml.BitBtn1Click(Sender: TObject);
begin
DataModule1.ClientDataSet13.Close;
DataModule1.ClientDataSet13.CommandText:='select * from cpmlb order by cpfl,cpmc';
DataModule1.ClientDataSet13.Open;
end;
procedure TFrmcpml.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.ClientDataSet13.IndexFieldNames<>(Column.FieldName) then //判断原排序方式
begin
DataModule1.ClientDataSet13.IndexFieldNames:= Column.FieldName;
Column.Title.Font.Color := clRed; //改变标题行字体为红色,表示当前的排序方式为升序
Column.Title.Font.Style := [fsBold];
end;
end;
procedure TFrmcpml.bprintcClick(Sender: TObject);
var
excelname: string;
begin
if not form1.excel then
begin
showmessage('您还未获得管理员的授权!请您与管理员联系获取授权!');
exit;
end;
if DataModule1.ClientDataSet13.RecordCount<=0 then exit;
opendialog1.Filter:='Excel 文件 (*.xls) │*.xls';
if opendialog1.Execute then
excelname:=opendialog1.FileName;
if length(excelname)>0 then writetoexcel(DataModule1.ClientDataSet13,excelname,'产品信息报表');
exit;
end;
procedure TFrmcpml.DBEdit3Change(Sender: TObject);
var
relation,cx,commandstring,strt:string;
begin
relation:=' like ''';
cx:='%';
try
if trim(dbedit3.Text)<>'' then
begin
strt:=trim(dbedit3.Text);
commandstring:='select * from cpmlb where (cpmlb.cpmc'+relation+cx+strt+cx+''')';
DataModule1.ClientDataSet28.Close;
DataModule1.ClientDataSet28.CommandText:=commandstring;
DataModule1.ClientDataSet28.Open;
end;
except
showmessage('数据库没有打开!')
end;
end;
procedure TFrmcpml.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then cpfl.SetFocus;
end;
procedure TFrmcpml.cpflKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then cpdw.SetFocus;
end;
procedure TFrmcpml.cpdwKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit2.SetFocus;
end;
function tfrmcpml.checkcp(cpmc,cpfl,cpdw:string):boolean;
var
relation,commandstring,cx:string;
begin
relation:=' = ''';
cx:='';
commandstring:='select * from dbo.cpmlb where (cpmc ' +relation+cx+form1.cpmc+cx+''')'; //检查
commandstring:=commandstring+' and (cpfl ' +relation+cx+form1.cpfl+cx+''')';
commandstring:=commandstring+' and (cpdw ' +relation+cx+form1.cpdw+cx+''')';
try
DataModule1.ClientDataSet28.Close;
DataModule1.ClientDataSet28.CommandText:=commandstring;
DataModule1.ClientDataSet28.Open;
if DataModule1.ClientDataSet28.RecordCount<1 then form1.cpmc:='';
DataModule1.ClientDataSet28.Active:=false;
except
form1.cpmc:='';
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -