⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ufrmfee.pas

📁 本文件采用了c/s结构的分布式应用系统
💻 PAS
字号:
unit ufrmfee;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Grids, DBGrids, ExtCtrls;

type
  TfrmFee = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    DateTimePicker1: TDateTimePicker;
    Label2: TLabel;
    DateTimePicker2: TDateTimePicker;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    Edit2: TEdit;
    Memo1: TMemo;
    Label5: TLabel;
    Button1: TButton;
    GroupBox2: TGroupBox;
    Label6: TLabel;
    DateTimePicker3: TDateTimePicker;
    Label7: TLabel;
    DateTimePicker4: TDateTimePicker;
    Label8: TLabel;
    Edit3: TEdit;
    Label9: TLabel;
    Edit4: TEdit;
    Label10: TLabel;
    Edit5: TEdit;
    Label11: TLabel;
    Edit6: TEdit;
    Memo2: TMemo;
    Button2: TButton;
    TabSheet2: TTabSheet;
    Panel1: TPanel;
    Label12: TLabel;
    Edit7: TEdit;
    Label13: TLabel;
    Edit8: TEdit;
    Label14: TLabel;
    Edit9: TEdit;
    Label15: TLabel;
    DateTimePicker5: TDateTimePicker;
    Memo3: TMemo;
    Label16: TLabel;
    DBGrid1: TDBGrid;
    Panel2: TPanel;
    Button4: TButton;
    Timer1: TTimer;
    TabSheet3: TTabSheet;
    Label17: TLabel;
    Edit10: TEdit;
    Button5: TButton;
    DBGrid2: TDBGrid;
    Label18: TLabel;
    Button3: TButton;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmFee: TfrmFee;

implementation

uses udmclient;

{$R *.dfm}
//动态显示当前时间
procedure TfrmFee.Timer1Timer(Sender: TObject);
begin
label18.Caption:=datetimetostr(now);
end;

//开始交费
procedure TfrmFee.Button1Click(Sender: TObject);
begin
 if (edit1.Text<>'') and (edit2.Text<>'') then
 begin
  groupbox1.Enabled:=false;
  groupbox2.Enabled:=true;
 end
 else
 messagedlg('不允许空数据',mterror,[mbok],0);
 edit9.Text:=edit1.Text;
end;

//交费结束
procedure TfrmFee.Button2Click(Sender: TObject);
var
 a:integer;
begin
 //比较交费人数与户主人数,如果相等,则表示交费结束
 dmclient.cdsFee.Active:=false;
 dmclient.cdsFee.CommandText:='select *from feesinfo';
 dmclient.cdsFee.Open;
 dmclient.cdsHomeMaster.Active:=false;
 dmclient.cdsHomeMaster.CommandText:='select *from homemasters';
 dmclient.cdsHomeMaster.Open;
//交费结束
 if dmclient.cdsFee.RecordCount=dmclient.cdsHomeMaster.RecordCount then
 begin
   //填写交费信息
   a:=dmclient.cdsFee.RecordCount;
   edit5.Text:=inttostr(a);
   datetimepicker3.DateTime:=datetimepicker1.DateTime;
   datetimepicker4.DateTime:=datetimepicker2.DateTime;
   edit3.Text:=edit1.Text;
   edit4.Text:=edit2.Text;
   memo2.Text:=memo1.Text;
   groupbox1.Enabled:=true;
   groupbox2.Enabled:=false;
   edit6.Text:='全部交齐';
   if messagedlg('费用已全部交齐,是否退出?',mtconfirmation,[mbok,mbno],0)=mrok then
   close;
 end
 else
   if messagedlg('交费还没有完成,是否退出?',mtconfirmation,[mbok,mbno],0)=mrok then
   close;
end;

//添加交费信息
procedure TfrmFee.Button4Click(Sender: TObject);
begin
  //验证身份证号是否符合要求
  if (edit7.Text='')and (length(edit7.Text)<>15)
  and (length(edit7.Text)<>18) then
  begin
    messagedlg('输入了非法身份证号码',mterror,[mbok],0);
    exit;
  end;
 //是否存在该户主
  dmclient.cdsHomeMaster.Active:=false;
  dmclient.cdsHomeMaster.CommandText:='select *from homemasters where '
  +'homemasterSIDcardno=:cardno';
  dmclient.cdsHomeMaster.Params.ParamByName('cardno').Value:=edit7.Text;
  dmclient.cdsHomeMaster.Open;
  if dmclient.cdsHomeMaster.RecordCount=1 then
  begin
    if (edit8.Text<>'')and(edit9.Text<>'')
    and(datetimepicker5.DateTime<=now) then
    begin
      //添加数据到本地缓存区
      dmclient.cdsFee.Append;
      dmclient.cdsFee.FieldByName('feedatebegin').Value:=datetimepicker1.Date;
      dmclient.cdsFee.FieldByName('feedateend').Value:=datetimepicker2.Date;
      dmclient.cdsFee.FieldByName('feeMasterSIDCardno').Value:=edit7.Text;
      dmclient.cdsFee.FieldByName('feemastername').Value:=edit8.Text;
      dmclient.cdsFee.FieldByName('feecount').Value:=edit9.Text;
      dmclient.cdsFee.FieldByName('feedate').Value:=datetimepicker5.Date;
      dmclient.cdsFee.FieldByName('memo').Value:=memo3.Text;
       dmclient.cdsFee.FieldByName('feeName').Value:=edit2.Text;
      dmclient.cdsFee.Post;
    end
    else
    begin
    messagedlg('输入了非法数据',mterror,[mbok],0);
    exit;
    end;
  end
  else
  begin
    messagedlg('该户主不存在',mterror,[mbok],0);
    exit;
  end;
    
end;

//将本地缓存区的交费数据更新回数据源
procedure TfrmFee.Button3Click(Sender: TObject);
begin
dmclient.cdsFee.ApplyUpdates(0);
//更新本地缓存区的数据
dmclient.cdsFee.Active:=false;
dmclient.cdsFee.CommandText:='select *from feesinfo';
dmclient.cdsFee.Open;
end;

//查询交费信息
procedure TfrmFee.Button5Click(Sender: TObject);
begin
 //验证身份证号码
 if (edit10.Text='')and(length(edit10.Text)<>15)
 and(length(edit10.Text)<>18) then
 begin
   messagedlg('身份证号码输入错误',mterror,[mbok],0);
   exit;
 end;
 //查询
 dmclient.cdsFee.Active:=false;
 dmclient.cdsFee.CommandText:='select *from feesinfo'
 +'  where FeeMasterSIDCardNo=:cardno';
 //为查询参数赋值
 dmclient.cdsFee.Params.ParamByName('cardno').Value:=edit10.Text;
 dmclient.cdsFee.Open;
 //没有查到此人
 if dmclient.cdsFee.RecordCount=0 then
 messagedlg('查无此人',mterror,[mbok],0);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -