📄 ygdmwh.pas
字号:
unit ygdmwh;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ExtCtrls, Mask,
DBCtrls, Excel2000, OleServer, DBTables;
type
TygwhForm = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Panel2: TPanel;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
Panel4: TPanel;
BitBtn4: TBitBtn;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
Panel3: TPanel;
Label1: TLabel;
Label3: TLabel;
DBEdit1: TDBEdit;
DBEdit3: TDBEdit;
Query1: TQuery;
UpdateSQL1: TUpdateSQL;
Query2: TQuery;
Label2: TLabel;
DBComboBox1: TDBComboBox;
Label4: TLabel;
DBEdit2: TDBEdit;
Label5: TLabel;
DBEdit4: TDBEdit;
Label6: TLabel;
Label7: TLabel;
DBEdit6: TDBEdit;
DBComboBox2: TDBComboBox;
Label8: TLabel;
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Formbtn;
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure BitBtn8Click(Sender: TObject);
procedure DBEdit1Exit(Sender: TObject);
procedure DBEdit4Exit(Sender: TObject);
private
btn:string;
{ Private declarations }
public
{ Public declarations }
end;
var
ygwhForm: TygwhForm;
func:string;
implementation
{$R *.dfm}
procedure TygwhForm.FormActivate(Sender: TObject);
begin
if btn<>'' then exit;
panel1.Enabled:=true;
panel2.Enabled:=false;
panel3.Enabled:=false;
dbgrid1.Enabled:=true;
query1.Open;
end;
procedure TygwhForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
btn:='';
func:='';
query1.Close;
end;
procedure TygwhForm.BitBtn4Click(Sender: TObject);
begin
close;
end;
procedure TygwhForm.formBtn;
begin
dbgrid1.Enabled:=not dbgrid1.Enabled;
panel1.Enabled:=not panel1.Enabled;
panel2.Enabled:=not panel2.Enabled;
panel3.Enabled:=not panel3.Enabled;
if panel1.Enabled then bitbtn1.SetFocus else bitbtn5.SetFocus;
end;
procedure TygwhForm.BitBtn5Click(Sender: TObject);
begin
if (btn='add') or (btn='mod') then
begin
if query1.FieldByName('ygbh').AsString='' then
begin
messagedlg('编码不能为空!!',mtwarning,[mbok],0);
dbedit1.SetFocus;
exit;
end;
if query1.FieldByName('ygxm').AsString='' then
begin
messagedlg('姓名不能为空!!',mtwarning,[mbok],0);
exit;
end;
query1.Post;
query1.ApplyUpdates;
end;
if btn='del' then begin
query1.Delete;
query1.ApplyUpdates;
end;
formBtn;
end;
procedure TygwhForm.BitBtn6Click(Sender: TObject);
begin
if (btn='add') or (btn='mod') then query1.Cancel;
formBtn;
end;
procedure TygwhForm.BitBtn2Click(Sender: TObject);
begin
formBtn;
btn:='mod';
query1.Edit;
dbedit1.SetFocus;
end;
procedure TygwhForm.BitBtn1Click(Sender: TObject);
begin
formBtn;
btn:='add';
query1.Append;
dbedit1.SetFocus;
end;
procedure TygwhForm.BitBtn3Click(Sender: TObject);
begin
formBtn;
btn:='del';
end;
procedure TygwhForm.FormCreate(Sender: TObject);
begin
func:='';
btn:='';
end;
procedure TygwhForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then perform($28,0,0);
end;
procedure TygwhForm.BitBtn8Click(Sender: TObject);
var
i,row,column:integer;
begin
Try
ExcelApplication1.Connect;
Except
MessageDlg('Excel 没有安装,无法报表!!',
mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='Excel 报表';
ExcelApplication1.Workbooks.Add(Null,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
column:=1;
for i:=1 to query1.FieldCount do
begin
ExcelWorksheet1.Cells.Item[1,column]:=query1.fields[i-1].FieldName;
column:=column+1;
end;
row:=2;
query1.First;
While Not(query1.Eof) do
begin
column:=1;
for i:=1 to query1.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:=query1.fields[i-1].AsString;
column:=column+1;
end;
query1.Next;
row:=row+1;
end;
ExcelApplication1.Visible[0]:=true;
ExcelApplication1.ActiveWorkbook.Save(0);
ExcelApplication1.Save('员工编码表.xls');
ExcelApplication1.Workbooks.Close(1);
ExcelApplication1.Visible[0]:=false;
ExcelApplication1.Quit;
end;
procedure TygwhForm.DBEdit1Exit(Sender: TObject);
begin
if (btn='add') or ((btn='mod') and (query1.FieldByName('ygbh').Value<>query1.FieldByName('ygbh').OldValue)) then
begin
query2.Close;
query2.ParamByName('cs').AsString:=dbedit1.Text;
query2.Open;
if query2.RecordCount>0 then begin
showmessage('该编号已经存在,请另选');
dbedit1.SetFocus;
end;
query2.Close;
end;
end;
procedure TygwhForm.DBEdit4Exit(Sender: TObject);
begin
if (strtofloat(dbedit4.Text)>1) or (strtofloat(dbedit4.Text)<0) then
begin
messagedlg('取值范围必须在0~1之间!'+#13+'1__为不打折!'+#13+'0__为可免单!',mtwarning,[mbok],0);
dbedit4.SetFocus;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -