📄 transferunit.pas
字号:
unit TransferUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, StdCtrls, DB, ADODB, Menus;
type
TTransferForm = class(TForm)
pnl1: TPanel;
pnl5: TPanel;
lblFindKh: TLabel;
edtFind: TEdit;
btn1: TButton;
lv1: TListView;
spl1: TSplitter;
pnl3: TPanel;
grp1: TGroupBox;
grp2: TGroupBox;
btn2: TButton;
btnClose: TButton;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
lbl6: TLabel;
edtName1: TEdit;
edtName2: TEdit;
edtPass1: TEdit;
edtBlance1: TEdit;
edtPass2: TEdit;
edtBlance2: TEdit;
ds1: TDataSource;
qryCardtb: TADOQuery;
con1: TADOConnection;
lbl7: TLabel;
lbl8: TLabel;
edtBC: TEdit;
edtBR: TEdit;
btnZR: TButton;
btnZC: TButton;
pm1: TPopupMenu;
x1: TMenuItem;
N1: TMenuItem;
procedure btnCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnZCClick(Sender: TObject);
procedure btnZRClick(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure edtBlance1KeyPress(Sender: TObject; var Key: Char);
procedure edtBlance1Exit(Sender: TObject);
private
function GetString(sql: string): variant;
function Exesql(sql: string): variant;
procedure ClearText;
public
{ Public declarations }
end;
var
TransferForm: TTransferForm;
Cardnb1, Cardnb2, balance1, balance2: string; //转出 转入的卡号和余额
implementation
{$R *.dfm}
procedure TTransferForm.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TTransferForm.FormShow(Sender: TObject);
var j: integer;
begin
j := 0;
qryCardtb.Close;
qryCardtb.SQL.Clear;
qryCardtb.SQL.Add('select nbcardno,wbcardno,name,studentcardno,balance from cardtb where cardkind = 0 ');
qryCardtb.Prepared;
qryCardtb.Open;
lv1.Items.Clear;
while not qryCardtb.eof do
begin
lv1.Items.Add;
lv1.Items.Item[j].Caption := (qryCardtb.Fields[0].AsString);
lv1.Items.Item[j].SubItems.Add(qryCardtb.Fields[1].AsString);
lv1.Items.Item[j].SubItems.Add(qryCardtb.Fields[2].AsString);
lv1.Items.Item[j].SubItems.Add(qryCardtb.Fields[3].AsString);
lv1.Items.Item[j].SubItems.Add(qryCardtb.Fields[4].AsString);
qryCardtb.next;
j := J + 1;
end;
if not qryCardtb.IsEmpty then
lv1.ItemS.Item[0].Selected := TRUE;
ClearText;
end;
procedure TTransferForm.btnZCClick(Sender: TObject);
var cb1: string;
begin
if lv1.Selected = nil then exit;
Cb1 := lv1.Selected.Caption;
if cb1 = cardnb2 then
begin
application.MessageBox('与转出帐号重复,请重新选择', '提示', 48);
exit;
end;
Cardnb1 := lv1.Selected.Caption;
edtname1.Text := lv1.Selected.SubItems.Strings[1];
edtPass1.Text := '';
balance1 := lv1.Selected.SubItems.Strings[3];
end;
procedure TTransferForm.btnZRClick(Sender: TObject);
var cb2: string;
begin
if lv1.Selected = nil then exit;
cb2 := lv1.Selected.Caption;
if cardnb1 = cb2 then
begin
application.MessageBox('与转入帐号重复,请重新选择', '提示', 48);
exit;
end;
Cardnb2 := lv1.Selected.Caption;
Cardnb2 := lv1.Selected.Caption;
edtname2.Text := lv1.Selected.SubItems.Strings[1];
edtPass2.Text := '';
balance2 := lv1.Selected.SubItems.Strings[3];
end;
procedure TTransferForm.btn1Click(Sender: TObject);
var
i: Integer;
p: TPoint;
begin
if Lv1.Selected = nil then Lv1.ItemIndex := 0;
for i := Lv1.Selected.Index + 1 to Lv1.Items.Count - 1 do
if Pos(edtFind.Text, Lv1.Items[i].SubItems[1]) <> 0 then
begin
Lv1.Items[i].Selected := True;
Lv1.ItemIndex := i;
Lv1.SetFocus;
Exit;
end;
MessageBox(Handle, '搜索到最后,没有找到!', '提示', MB_ICONWARNING);
Lv1.ItemIndex := 0;
end;
procedure TTransferForm.btn2Click(Sender: TObject);
var pass1, pass2: string;
begin
if (edtName1.Text = '') or (edtName2.Text = '') then
begin
Application.MessageBox('请选择用户!', '提示', 48);
exit;
end;
Pass1 := Getstring('select Password from cardtb where nbcardno = ' + #39 + cardnb1 + #39);
Pass2 := Getstring('select Password from cardtb where nbcardno = ' + #39 + cardnb2 + #39);
if pass1 <> edtPass1.Text then
begin
Application.MessageBox('转出帐号密码出错,请重新输入!', '提示', 48);
edtPass1.Text := '';
exit;
end;
if pass2 <> edtPass2.Text then
begin
Application.MessageBox('转入帐号密码出错,请重新输入!', '提示', 48);
edtPass2.Text := '';
exit;
end;
Exesql('update cardtb set balance = ' + trim(EdtBc.Text) + ' where nbCardno =' + #39 + Cardnb1 + #39);
Exesql('update cardtb set balance = ' + trim(EdtBr.Text) + ' where nbCardno =' + #39 + Cardnb2 + #39);
clearText;
formshow(sender);
application.MessageBox('转帐成功!', '提示', 48);
end;
procedure TTransferForm.edtBlance1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9', '.', #8, #13]) then
begin
key := #0;
beep;
end;
edtBlance2.Text := edtBlance1.Text;
end;
procedure TTransferForm.edtBlance1Exit(Sender: TObject);
begin
if edtblance1.Text = '' then exit;
edtBlance2.Text := edtBlance1.Text;
if (edtName2.Text = '') or (edtName1.Text = '') then
begin
Application.MessageBox('请您选择转入的用户!', '提示', 48);
edtBlance1.Text := '';
edtBlance2.Text := '';
exit;
end;
if StrTofloat(edtBlance1.Text) > StrTofloat(balance1) then
begin
Application.MessageBox('您没有足够的余额,请重新输入!', '提示', 48);
exit;
end;
edtBC.Text := floatTostr(StrTofloat(balance1) - StrTofloat(edtBlance1.Text));
edtBR.Text := floatTostr(StrTofloat(balance2) + StrTofloat(edtBlance1.Text));
end;
function TTransferForm.GetString(sql: string): variant;
var
TmQuery: TAdoQuery;
begin
try
TmQuery := TAdoQuery.Create(self);
TmQuery.Connection := con1;
TmQuery.SQL.Clear;
TmQuery.SQL.Add(sql);
TmQuery.Prepared;
TmQuery.Open;
Result := TmQuery.Fields[0].value;
finally
TmQuery.Free;
end;
end;
procedure TTransferForm.ClearText;
begin
edtName1.Text := '';
edtPass1.Text := '';
edtBlance1.Text := '';
edtName2.Text := '';
edtPass2.Text := '';
edtBlance2.Text := '';
edtBc.Text := '';
edtBr.Text := '';
Cardnb1 := '';
Cardnb2 := '';
balance1 := '';
balance2 := '';
end;
function TTransferForm.Exesql(sql: string): variant;
var
TmQuery: TAdoQuery;
begin
try
TmQuery := TAdoQuery.Create(self);
TmQuery.Connection := con1;
TmQuery.SQL.Clear;
TmQuery.SQL.Add(sql);
TmQuery.Prepared;
TmQuery.ExecSQL;
finally
TmQuery.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -