📄 sendmoney.pas
字号:
unit sendMoney;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, DB, DBTables, Grids, DBGrids;
type
TfrmSendMoney = class(TForm)
DBGrid1: TDBGrid;
Query1: TQuery;
DataSource1: TDataSource;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
bmName: TComboBox;
bmId: TEdit;
dt: TDateTimePicker;
num: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button6: TButton;
Table1: TTable;
Table2: TTable;
Label5: TLabel;
Label6: TLabel;
note: TEdit;
procedure FormCreate(Sender: TObject);
procedure bmNameSelect(Sender: TObject);
procedure numExit(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
procedure refreshDbGrid;
public
{ Public declarations }
end;
var
frmSendMoney: TfrmSendMoney;
implementation
{$R *.dfm}
uses comFunc;
procedure TfrmSendMoney.FormCreate(Sender: TObject);
begin
{初始化部门编号和部门名称}
with table1 do
begin
open;
while not eof do
begin
bmName.Items.Add(fieldByName('部门名称').AsString);
next;
end;
bmName.ItemIndex:=0;
First;
bmId.Text:=fieldByName('部门编号').AsString;
close;
end;//end of with
{初始化其他}
num.Text:='';
dt.Date:=now;
note.Text:='';
end;
procedure TfrmSendMoney.bmNameSelect(Sender: TObject);
begin
{根据用户选择不同的部门名称,相应的部门编号也跟着发生变化}
with table1 do
begin
open;
while not eof do
begin
if bmName.Items[bmName.ItemIndex]=
fieldByName('部门名称').AsString then
begin
bmId.Text:=fieldByName('部门编号').AsString;
break;
end;//end of if
next;
end;
close;
end;//end of with
end;
procedure TfrmSendMoney.numExit(Sender: TObject);
begin
if (isMoney(num.Text)=false) and
(num.Text<>'') then
begin
showMessage('输入的需求数量错误!');
activeControl:=num;
exit;
end;
end;
procedure TfrmSendMoney.refreshDbGrid;
{更新DBGrid1控件,让显示和数据集达到一致}
begin
with query1 do
begin
close;
sql.Clear;
sql.Add('select a.部门编号,a.部门名称,b.资金数额,b.拨款日期,b.用途');
sql.Add('from bminfo as a,zjxb as b');
sql.Add('where a.部门编号=b.部门编号');
open;
end;
end;
procedure TfrmSendMoney.Button1Click(Sender: TObject);
begin
{检查资金数额是否合理}
if num.Text='' then
begin
showMessage('资金数额不能为空!');
activeControl:=num;
exit;
end;
{对资金下拨表进行修改}
with table2 do
begin
open;
while not eof do
begin
if (bmId.Text=fieldByName('部门编号').AsString) then
begin
edit;
fieldValues['资金数额']:=num.Text;
fieldValues['拨款日期']:=dt.Date;
fieldValues['用途']:=note.Text;
post;
showMessage('修改数据成功!');
refreshDbGrid;
close;
exit;
end;
next;
end;//end of while
close;
showMessage('资金下拨记录中没有所对应的项!');
end;//end of with
end;
procedure TfrmSendMoney.Button2Click(Sender: TObject);
begin
{检查资金数额是否合理}
if num.Text='' then
begin
showMessage('资金数额不能为空!');
activeControl:=num;
exit;
end;
{对下拨资金表进行插入操作}
with table2 do
begin
open;
insert;
fieldValues['部门编号']:=bmId.Text;
fieldValues['拨款日期']:=dt.Date;
fieldValues['资金数额']:=num.Text;
fieldValues['用途']:=note.Text;
post;
close;
showMessage('下拨资金记录添加成功!');
refreshDbGrid;
end;//end of with
end;
procedure TfrmSendMoney.Button3Click(Sender: TObject);
var
rt:integer;
begin
with table2 do
begin
open;
while not eof do
begin
if (fieldByName('部门编号').AsString=bmId.Text) then
begin
{询问用户是否要真的删除记录}
rt:=messageDlg('是否真的要删除?',mtConfirmation,
[mbYes,mbNo],0);
if rt=mrYes then
begin
delete;
close;
refreshDbGrid;
exit;
end
else
begin
close;
exit;
end;
end;
next;
end;
close;
showMessage('没有找到要删除的下拨资金记录!');
end;//end of with
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -