📄 pas_office.~pas
字号:
unit pas_office;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ComCtrls, Buttons, ToolWin, StdCtrls;
type
TForm_office = class(TForm)
ToolBar1: TToolBar;
select: TSpeedButton;
add: TSpeedButton;
modify: TSpeedButton;
del: TSpeedButton;
edit_money: TEdit;
dtp_end: TDateTimePicker;
dtp_start: TDateTimePicker;
Label4: TLabel;
Label5: TLabel;
Label3: TLabel;
cb_thing: TComboBox;
cb_depart: TComboBox;
Label2: TLabel;
Label1: TLabel;
Label13: TLabel;
Label9: TLabel;
Label6: TLabel;
Label11: TLabel;
Label8: TLabel;
Label10: TLabel;
Label12: TLabel;
edit_remarks: TEdit;
dtp_optime: TDateTimePicker;
edit_money2: TEdit;
Edit_num: TEdit;
cb_thing2: TComboBox;
cb_depart2: TComboBox;
Edit_no: TEdit;
DBGrid: TDBGrid;
procedure cb_depart2DropDown(Sender: TObject);
procedure cb_thing2DropDown(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure addClick(Sender: TObject);
procedure modifyClick(Sender: TObject);
procedure selectClick(Sender: TObject);
procedure delClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure cb_thingDropDown(Sender: TObject);
procedure DBGridCellClick(Column: TColumn);
procedure cb_departDropDown(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_office: TForm_office;
implementation
uses pas_dm2, Pas_DM;
{$R *.dfm}
procedure TForm_office.cb_depart2DropDown(Sender: TObject);
var
s:string;
begin
try
with dm2.query_office do
begin
close;
sql.Clear;
s:='select dp_no 部门 from depart';
sql.Add(s);
open;
cb_depart2.Items.Clear;
while not dm2.query_office.Eof do
begin
cb_depart2.Items.Add(fields.Fields[0].asstring);
next;
end;
end;
except
end;
end;
procedure TForm_office.cb_thing2DropDown(Sender: TObject);
var
s:string;
begin
try
with dm2.query_office do
begin
close;
sql.Clear;
s:='select distinct os_thing 事物 from officesupplies';
sql.Add(s);
open;
cb_thing2.Items.Clear;
while not dm2.query_office.Eof do
begin
cb_thing2.Items.Add(fields.Fields[0].asstring);
next;
end;
end;
except
end;
end;
procedure TForm_office.FormShow(Sender: TObject);
begin
dtp_start.DateTime:=now();
dtp_end.DateTime:=now();
dtp_optime.DateTime:=now();
end;
procedure TForm_office.addClick(Sender: TObject);
var
s:string;
begin
if (cb_depart2.Text='') or (cb_thing2.Text='') or (edit_money2.Text='')
then
begin
showmessage('不能为空');
exit;
end;
with pas_dm2.DM2.Query_office do
begin
try
Close;
SQL.Clear;
s:='insert into officesupplies(os_depart,os_thing,os_num,os_money,os_remarks,os_optime,os_now) values('''+trim(cb_depart2.Text)+''','''+
trim(cb_thing2.Text)+''','''+trim(edit_num.Text)+''','''+trim(edit_money2.Text)+''','''+
trim(edit_remarks.Text)+''','''+datetostr(dtp_optime.DateTime)+''','''+FormatDateTime('yyyy-mm-dd hh:mm:ss',(now()))+''')';
SQL.Add(s);
ExecSQL;
showmessage('添加 '+cb_thing2.Text+' 成功!');
except
end;
end;
s:= ' where os_depart like ''%' +
trim(cb_depart2.Text)+'%'' and os_thing like ''%'+
trim(cb_thing2.Text)+'%''';
with pas_dm2.DM2.Query_office do
begin
close;
sql.Clear;
sql.Add(' select c as 自动编号,'+
' os_depart as 部门 ,'+
' os_thing as 事物,'+
' os_num as 数量,'+
' os_money as 金额,'+
' os_remarks as 备注,'+
' os_optime as 发生时间'+
' from officesupplies '+s);
open;
end;
end;
procedure TForm_office.modifyClick(Sender: TObject);
var
s:string;
begin
if (cb_depart2.Text='') or (cb_thing2.Text='') or (edit_money2.Text='')
then
begin
showmessage('不能为空');
exit;
end;
with pas_dm2.DM2.Query_office do
begin
try
Close;
SQL.Clear;
s:='update officesupplies set '+
' os_depart ='''+trim(cb_depart2.Text)+
''',os_thing='''+trim(cb_thing2.Text)+
''',os_money='''+trim(edit_money2.Text)+
''',os_remarks='''+trim(edit_remarks.Text)+
''',os_num='''+trim(edit_num.Text)+
''',os_optime='''+datetostr(dtp_optime.DateTime)+
''',os_now='''+FormatDateTime('yyyy-mm-dd hh:mm:ss',(now()))+''' where c='''+edit_no.Text+'''';
SQL.Add(s);
ExecSQL;
showmessage('修改 '+cb_thing2.Text+' 成功!');
except
end;
end;
s:= ' where os_depart like ''%' +
trim(cb_depart2.Text)+'%'' and os_thing like ''%'+
trim(cb_thing2.Text)+'%''';
with pas_dm2.DM2.Query_office do
begin
close;
sql.Clear;
sql.Add(' select c as 自动编号,'+
' os_depart as 部门 ,'+
' os_thing as 事物,'+
' os_num as 数量,'+
' os_money as 金额,'+
' os_remarks as 备注,'+
' os_optime as 发生时间'+
' from officesupplies '+s);
open;
end;
end;
procedure TForm_office.selectClick(Sender: TObject);
var
s:string;
i:integer;
begin
i:=0;
s:= ' where os_depart like ''%' +
trim(cb_depart.Text)+'%'' and os_thing like ''%'+
trim(cb_thing.Text)+'%'''+
' and datediff(day,os_optime,'''+datetostr(dtp_start.datetime)+''')<=0'+
' and datediff(day,os_optime,'''+datetostr(dtp_end.DateTime)+''')>=0';;
with pas_dm2.DM2.Query_office do
begin
close;
sql.Clear;
sql.Add(' select c as 自动编号,'+
' os_depart as 部门 ,'+
' os_thing as 事物,'+
' os_num as 数量,'+
' os_money as 金额,'+
' os_remarks as 备注,'+
' os_optime as 发生时间'+
' from officesupplies '+s);
open;
end;
dm2.query_office.First;
while not dm2.Query_office.Eof do
begin
i:=i+dm2.Query_office.Fields.Fields[4].asinteger;
dm2.Query_office.Next;
end;
edit_money.Text:=inttostr(i);
end;
procedure TForm_office.delClick(Sender: TObject);
begin
if edit_no.Text='' then
begin
showmessage('编号不能为空');
exit;
end;
if IDOK=messagebox(handle,pchar(edit_no.text+'将被删除'),'警告', MB_OKCANCEL)
then
begin
with pas_dm2.DM2.query_office do
begin
Close;
SQL.Clear;
SQL.Add('delete from officesupplies where c='''+edit_no.text+'''');
ExecSQL;
if RowsAffected=1 then
begin
showmessage(edit_no.text+'删除成功');
end;
end;
end;
end;
procedure TForm_office.DBGrid1CellClick(Column: TColumn);
begin
with pas_dm2.DM2.Query_office do
begin
if dbgrid.FieldCount=0 then
begin
showmessage('没有打开数据库');
exit;
end;
if dbgrid.Fields[0].AsString='' then
begin
showmessage('数据库没有数据');
exit;
end;
if dbgrid.Columns.Count=7 then
begin
edit_no.Text:=Fields.Fields[0].AsString;
cb_depart2.Text:=Fields.Fields[1].AsString;
cb_thing2.Text:=Fields.Fields[2].AsString;
edit_num.Text:=Fields.Fields[3].AsString;
edit_money2.Text:=Fields.Fields[4].AsString;
edit_remarks.Text:=Fields.Fields[5].AsString;
dtp_optime.DateTime:=fields.Fields[6].AsDateTime;
end;
end;
end;
procedure TForm_office.cb_thingDropDown(Sender: TObject);
var
s:string;
begin
try
with dm2.query_office do
begin
close;
sql.Clear;
s:='select distinct os_thing 事物 from officesupplies';
sql.Add(s);
open;
cb_thing.Items.Clear;
while not dm2.query_office.Eof do
begin
cb_thing.Items.Add(fields.Fields[0].asstring);
next;
end;
end;
except
end;
end;
procedure TForm_office.DBGridCellClick(Column: TColumn);
begin
with pas_dm2.DM2.Query_office do
begin
if dbgrid.FieldCount=0 then
begin
showmessage('没有打开数据库');
exit;
end;
if dbgrid.Fields[0].AsString='' then
begin
showmessage('数据库没有数据');
exit;
end;
if dbgrid.Columns.Count=7 then
begin
edit_no.Text:=Fields.Fields[0].AsString;
cb_depart.Text:=Fields.Fields[1].AsString;
cb_thing.Text:=Fields.Fields[2].AsString;
edit_num.Text:=Fields.Fields[3].AsString;
edit_money.Text:=Fields.Fields[4].AsString;
edit_remarks.Text:=Fields.Fields[5].AsString;
dtp_optime.DateTime:=fields.Fields[6].AsDateTime;
end;
end;
end;
procedure TForm_office.cb_departDropDown(Sender: TObject);
var
s:string;
begin
try
with dm2.query_office do
begin
close;
sql.Clear;
s:='select dp_no 部门 from depart';
sql.Add(s);
open;
cb_depart.Items.Clear;
while not dm2.query_office.Eof do
begin
cb_depart.Items.Add(fields.Fields[0].asstring);
next;
end;
end;
except
end;
end;
procedure TForm_office.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_F4 then
begin
add.Click;
Key := 0;
exit;
end;
if Key = VK_F1 then
begin
select.Click;
Key := 0;
exit;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -