📄 cyyd.pas
字号:
unit cyyd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ExtCtrls, Mask,
DBCtrls, Excel2000, OleServer, DBTables, ComCtrls;
type
TcyydForm = class(TForm)
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;
Label2: TLabel;
DBEdit2: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
Label5: TLabel;
Label6: TLabel;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
ADOQuery1ID: TAutoIncField;
ADOQuery1rq: TDateTimeField;
ADOQuery1ct: TStringField;
ADOQuery1th: TStringField;
ADOQuery1qssj: TDateTimeField;
ADOQuery1zzsj: TDateTimeField;
ADOQuery1rs: TIntegerField;
ADOQuery1yq: TStringField;
ADOQuery1jbr: TStringField;
ADOQuery1ydr: TStringField;
ADOQuery1ydsj: TDateTimeField;
ADOQuery1lxfs: TStringField;
ADOQuery1bz: TStringField;
ADOQuery1zxbz: TBooleanField;
DataSource1: TDataSource;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
DataSource2: TDataSource;
Label12: TLabel;
DataSource3: TDataSource;
Label4: TLabel;
DBEdit1: TDBEdit;
Label7: TLabel;
DBRichEdit1: TDBRichEdit;
DBRichEdit2: TDBRichEdit;
Label8: TLabel;
DBEdit3: TDBEdit;
ADOQuery4: TADOQuery;
DBEdit6: TDBEdit;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Panel5: TPanel;
Label9: TLabel;
Label10: TLabel;
Edit1: TEdit;
Label11: TLabel;
Edit2: TEdit;
Label13: TLabel;
Edit3: TEdit;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
Bevel1: TBevel;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
Edit4: TEdit;
Edit5: TEdit;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
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 DBLookupComboBox1CloseUp(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure ADOQuery1AfterScroll(DataSet: TDataSet);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
private
btn,sql:string;
{ Private declarations }
public
{ Public declarations }
end;
var
cyydForm: TcyydForm;
func:string;
implementation
uses pass;
{$R *.dfm}
procedure TcyydForm.FormActivate(Sender: TObject);
begin
if btn<>'' then exit;
if func='' then
begin
bitbtn1.Enabled:=true;
bitbtn2.Enabled:=true;
bitbtn3.Enabled:=true;
bitbtn7.Enabled:=true;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from ctyd where zxbz=0 order by ydsj');
end
else
begin
bitbtn1.Enabled:=false;
bitbtn2.Enabled:=false;
bitbtn3.Enabled:=false;
bitbtn7.Enabled:=false;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from ctyd where zxbz=0 and id=:cs1 order by ydsj');
adoquery1.Parameters[0].Value:=func;
end;
panel1.Enabled:=true;
panel2.Enabled:=false;
panel3.Enabled:=false;
dbgrid1.Enabled:=true;
adoquery3.Open;
adoquery2.Open;
adoquery1.Open;
end;
procedure TcyydForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
btn:='';
func:='';
adoquery2.Close;
adoquery3.Close;
adoquery1.Close;
end;
procedure TcyydForm.BitBtn4Click(Sender: TObject);
begin
close;
end;
procedure TcyydForm.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 TcyydForm.BitBtn5Click(Sender: TObject);
begin
if (btn='add') or (btn='mod') then
begin
if edit4.Text='' then
begin
messagedlg('请指定时间!',mtinformation,[mbok],0);
edit4.SetFocus;
exit;
end;
if edit5.Text='' then
begin
messagedlg('请指定时间!',mtinformation,[mbok],0);
edit5.SetFocus;
exit;
end;
if adoquery1qssj.AsDateTime<=date then
begin
messagedlg('开始时间有误!',mtinformation,[mbok],0);
edit4.SetFocus;
exit;
end;
if adoquery1zzsj.AsDateTime<=date then
begin
messagedlg('截止时间有误!',mtinformation,[mbok],0);
edit5.SetFocus;
exit;
end;
if adoquery1zzsj.AsDateTime<adoquery1qssj.AsDateTime then
begin
messagedlg('开始时间 大于 截止时间!! 有误!',mtinformation,[mbok],0);
edit4.SetFocus;
exit;
end;
if btn='add' then
begin
adoquery4.Close;
adoquery4.Parameters.ParamByName('cs1').Value:=adoquery1rq.AsDateTime;
adoquery4.Parameters.ParamByName('cs2').Value:=adoquery1ct.AsString;
adoquery4.Parameters.ParamByName('cs3').Value:=adoquery1th.AsString;
adoquery4.Parameters.ParamByName('cs4').Value:=adoquery1qssj.AsDateTime;
adoquery4.Parameters.ParamByName('cs5').Value:=adoquery1qssj.AsDateTime;
adoquery4.Open;
if adoquery4.RecordCount>0 then
begin
messagedlg('该时间段台位已预定!',mtinformation,[mbok],0);
edit4.SetFocus;
exit;
end;
adoquery4.Close;
end;
adoquery1.Post;
end;
if btn='del' then begin
adoquery1.Delete;
end;
if btn='ser' then begin
panel1.Enabled:=false;
panel2.Enabled:=true;
panel3.Enabled:=true;
dbgrid1.Enabled:=false;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sql);
adoquery1.Open;
end;
formBtn;
end;
procedure TcyydForm.BitBtn6Click(Sender: TObject);
begin
if (btn='add') or (btn='mod') then adoquery1.Cancel;
if btn='ser' then begin
panel1.Enabled:=false;
panel2.Enabled:=true;
panel3.Enabled:=true;
dbgrid1.Enabled:=false;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sql);
adoquery1.Open;
end;
formBtn;
end;
procedure TcyydForm.BitBtn2Click(Sender: TObject);
begin
formBtn;
btn:='mod';
adoquery1.Edit;
DBLookupComboBox1.SetFocus;
end;
procedure TcyydForm.BitBtn1Click(Sender: TObject);
begin
formBtn;
btn:='add';
adoquery1.Append;
adoquery1rq.AsDateTime:=date;
adoquery1ydsj.AsDateTime:=date+time;
adoquery1qssj.AsDateTime:=date+time;
adoquery1zzsj.AsDateTime:=date+time;
adoquery1jbr.AsString:=pass.yhmc;
edit4.Text:='';
edit5.Text:='';
adoquery1zxbz.AsBoolean:=false;
DBLookupComboBox1.SetFocus;
end;
procedure TcyydForm.BitBtn3Click(Sender: TObject);
begin
formBtn;
btn:='del';
end;
procedure TcyydForm.FormCreate(Sender: TObject);
begin
func:='';
btn:='';
end;
procedure TcyydForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then perform($28,0,0);
end;
procedure TcyydForm.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 adoquery1.FieldCount do
begin
ExcelWorksheet1.Cells.Item[1,column]:=adoquery1.fields[i-1].FieldName;
column:=column+1;
end;
row:=2;
adoquery1.First;
While Not(adoquery1.Eof) do
begin
column:=1;
for i:=1 to adoquery1.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:=adoquery1.fields[i-1].AsString;
column:=column+1;
end;
adoquery1.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 TcyydForm.DBLookupComboBox1CloseUp(Sender: TObject);
begin
adoquery3.Close;
adoquery3.Parameters[0].Value:=adoquery1ct.AsString;
adoquery3.Open;
end;
procedure TcyydForm.BitBtn10Click(Sender: TObject);
begin
panel5.Visible:=false;
panel1.Enabled:=false;
panel2.Enabled:=true;
panel3.Enabled:=true;
dbgrid1.Enabled:=false;
panel5.Visible:=false;
end;
procedure TcyydForm.BitBtn9Click(Sender: TObject);
begin
panel5.Visible:=false;
panel1.Enabled:=false;
panel2.Enabled:=true;
panel3.Enabled:=true;
dbgrid1.Enabled:=false;
if func='1' then adoquery1rq.Value:=strtodate(edit1.Text+'-'+edit2.Text+'-'+edit3.Text);
if func='2' then begin
adoquery1qssj.Value:=strtodate(formatdatetime('yyyy-mm-dd',adoquery1rq.Value))+ strtotime(edit1.Text+':'+edit2.Text+':'+edit3.Text);
edit4.Text:=adoquery1qssj.AsString;
end;
if func='3' then begin
adoquery1zzsj.Value:=strtodate(formatdatetime('yyyy-mm-dd',adoquery1rq.Value))+ strtotime(edit1.Text+':'+edit2.Text+':'+edit3.Text);
edit5.Text:=adoquery1zzsj.AsString;
end;
if func='x' then begin
panel3.Enabled:=false;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from ctyd where zxbz=0 and ydsj>=:cs1 and ydsj<=:cs2');
adoquery1.Parameters[0].Value:=strtodate(edit1.Text+'-'+edit2.Text+'-'+edit3.Text);
adoquery1.Parameters[1].Value:=strtodate(edit1.Text+'-'+edit2.Text+'-'+edit3.Text)+strtotime('23:59:59');
adoquery1.Open;
end;
end;
procedure TcyydForm.SpeedButton1Click(Sender: TObject);
begin
func:='1';
edit1.Text:=formatdatetime('yyyy',date);
edit2.Text:=formatdatetime('mm',date);
edit3.Text:=formatdatetime('dd',date);
label9.Caption:=SpeedButton1.Caption;
label10.Caption:='年份';
label11.Caption:='月份';
label13.Caption:='日期';
panel1.Enabled:=false;
panel2.Enabled:=false;
panel3.Enabled:=false;
dbgrid1.Enabled:=false;
panel5.Visible:=true;
end;
procedure TcyydForm.SpeedButton2Click(Sender: TObject);
var xx:string;
begin
panel1.Enabled:=false;
panel2.Enabled:=false;
panel3.Enabled:=false;
dbgrid1.Enabled:=false;
func:='2';
xx:=formatdatetime('hh:mm:ss',adoquery1qssj.AsDateTime);
edit1.Text:=copy(xx,1,2);
edit2.Text:=copy(xx,4,2);
edit3.Text:=copy(xx,7,2);
label9.Caption:=dbedit6.Text+ SpeedButton2.Caption;
label10.Caption:='时';
label11.Caption:='分';
label13.Caption:='秒';
panel5.Visible:=true;
end;
procedure TcyydForm.SpeedButton3Click(Sender: TObject);
var xx:string;
begin
panel1.Enabled:=false;
panel2.Enabled:=false;
panel3.Enabled:=false;
dbgrid1.Enabled:=false;
func:='3';
xx:=formatdatetime('hh:mm:ss',adoquery1zzsj.AsDateTime);
edit1.Text:=copy(xx,1,2);
edit2.Text:=copy(xx,4,2);
edit3.Text:=copy(xx,7,2);
label9.Caption:=dbedit6.Text+SpeedButton3.Caption;
label10.Caption:='时';
label11.Caption:='分';
label13.Caption:='秒';
panel5.Visible:=true;
end;
procedure TcyydForm.SpeedButton4Click(Sender: TObject);
begin
edit1.Text:=inttostr(strtoint(edit1.Text)+1)
end;
procedure TcyydForm.SpeedButton5Click(Sender: TObject);
begin
edit1.Text:=inttostr(strtoint(edit1.Text)-1)
end;
procedure TcyydForm.SpeedButton6Click(Sender: TObject);
begin
edit2.Text:=inttostr(strtoint(edit2.Text)+1)
end;
procedure TcyydForm.SpeedButton7Click(Sender: TObject);
begin
edit2.Text:=inttostr(strtoint(edit2.Text)-1)
end;
procedure TcyydForm.SpeedButton8Click(Sender: TObject);
begin
edit3.Text:=inttostr(strtoint(edit3.Text)+1)
end;
procedure TcyydForm.SpeedButton9Click(Sender: TObject);
begin
edit3.Text:=inttostr(strtoint(edit3.Text)-1)
end;
procedure TcyydForm.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
edit4.Text:=adoquery1qssj.AsString;
edit5.Text:=adoquery1zzsj.AsString;
end;
procedure TcyydForm.SpeedButton10Click(Sender: TObject);
begin
adoquery1rs.Value:=adoquery1rs.Value+1;
end;
procedure TcyydForm.SpeedButton11Click(Sender: TObject);
begin
if adoquery1rs.Value>0 then adoquery1rs.Value:=adoquery1rs.Value-1;
end;
procedure TcyydForm.BitBtn7Click(Sender: TObject);
begin
panel1.Enabled:=false;
panel2.Enabled:=false;
panel3.Enabled:=false;
dbgrid1.Enabled:=false;
btn:='ser';
sql:=adoquery1.SQL.Text;
func:='x';
edit1.Text:=formatdatetime('yyyy',date);
edit2.Text:=formatdatetime('mm',date);
edit3.Text:=formatdatetime('dd',date);
label9.Caption:='按预定日期查找';
label10.Caption:='年份';
label11.Caption:='月份';
label13.Caption:='日期';
panel5.Visible:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -