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

📄 accountfrm.pas

📁 delphi 编制的服务器程序
💻 PAS
字号:
unit AccountFrm;

interface

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

type
  TAccountForm = class(TChildForm)
    Panel2: TPanel;
    Panel3: TPanel;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    ADOQuery1StudentCode: TWideStringField;
    ADOQuery1StudentName: TWideStringField;
    ADOQuery1AllMoney: TFloatField;
    ADOQuery1OccurDate: TDateTimeField;
    ADOQuery1ChargeMan: TWideStringField;
    ADOQuery1MoneyClass: TWideStringField;
    ADOQuery2: TADOQuery;
    DataSource2: TDataSource;
    ADOQuery2StudentCode: TWideStringField;
    ADOQuery2studentName: TWideStringField;
    ADOQuery2ClassCaption: TWideStringField;
    ListBox1: TListBox;
    ListBox2: TListBox;
    ADOQuery1ID: TAutoIncField;
    sbModify: TSpeedButton;
    sbExit: TSpeedButton;
    Splitter1: TSplitter;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    sbQuery: TSpeedButton;
    SpeedButton6: TSpeedButton;
    sbDelete: TSpeedButton;
    sbSave: TSpeedButton;
    sbCancel: TSpeedButton;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    SpeedButton5: TSpeedButton;
    SpeedButton8: TSpeedButton;
    pnlQuery: TPanel;
    Panel4: TPanel;
    Rg: TRadioGroup;
    edtCode: TEdit;
    edtName: TEdit;
    DbdDate: TDateTimePicker;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure SpeedButton5Click(Sender: TObject);
    procedure DBGrid2DblClick(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sbModifyClick(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure sbExitClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure sbDeleteClick(Sender: TObject);
    procedure sbSaveClick(Sender: TObject);
    procedure sbCancelClick(Sender: TObject);
    procedure sbQueryClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure RgClick(Sender: TObject);

  private
    { Private declarations }
    procedure CreateStuCodeItems;
    procedure AppendRecordToAdo1(sCode,sName:string);
    procedure EnableButtons(b:Boolean);
  public
    { Public declarations }
  end;

var
  AccountForm: TAccountForm;
  procedure CallAccountForm;
implementation

uses PublicFunc, MainDm, ClassSelectFrm;

{$R *.dfm}

procedure CallAccountForm;
begin
  if AccountForm = nil then
    AccountForm := TAccountForm.Create(Application);
  AccountForm.ShowModal;
  AccountForm.Free;
  AccountForm := nil;
end;
procedure TAccountForm.SpeedButton5Click(Sender: TObject);
var
  s1,ClassC,mc: string;
begin
  inherited;
  if GetBMH(ClassC,mc) then
    Edit2.Text := MC;
  if ClassC = '' then Exit;
  s1 := 'select a.StudentCode,a.studentName,b.ClassCaption from '+
        ' student a,Monitor b where a.ClassCode=b.ClassCode';
  with AdoQuery2 do
  begin
    Close;
    Sql.Text := s1 + ' and b.ClassCode = ' + QuotedStr(ClassC) ;
    try
      Open;
    except
    end;
  end;
end;

procedure TAccountForm.DBGrid2DblClick(Sender: TObject);
begin
  inherited;
  if not  AdoQuery2.Active or (AdoQuery2.FieldByName('StudentCode').AsString = '') then Exit;
  DbGrid1.ReadOnly := False;
  AppendRecordToAdo1(AdoQuery2.FieldByName('StudentCode').AsString,AdoQuery2.FieldByName('StudentName').AsString);
end;

procedure TAccountForm.Edit1Change(Sender: TObject);
var
  s,s1: string;
  i: Integer;
begin
  inherited;
  if Edit1.Text = '' then Exit;
  s := '''aaa'''+','+'''bbb''';
  ListBox2.Items.Text := SearchByPYIndexStr(ListBox1.Items,Edit1.Text);
  for i := 0 to ListBox2.Items.Count - 1 do
  begin
    s1 := ListBox2.Items.Strings[i];
    s := s + ','+ QuotedStr(s1);
  end;
 // s := copy(s,2,Length(s)-1);
  s1 := 'select a.StudentCode,a.studentName,b.ClassCaption from '+
        ' student a,Monitor b where a.ClassCode=b.ClassCode';
  if s <> '' then
  with AdoQuery2 do
  begin
    Close;
    Sql.Text := s1+' and a.StudentName in ('+s+')';
    try
      Open;
    except
      Exit;
    end;
  end;
  if AdoQuery2.RecordCount >=1 then
    DbGrid2.Visible := True
  else
    DbGrid2.Visible := False;

end;

procedure TAccountForm.CreateStuCodeItems;
var
  sName: string;
begin
  ListBox1.Items.Clear;
  with DmMain.QueryPublic do
  begin
    Close;
    Sql.Text := 'select StudentName from student';
    Open;
    First;
    while not eof do
    begin
      sName := FieldByName('StudentName').Asstring;
      sName := StringReplace(sName,' ','',[rfReplaceAll]);
      if sName <> '' then
        ListBox1.Items.Add(sName);
      Next;
    end;
  end;
end;

procedure TAccountForm.FormCreate(Sender: TObject);
begin
  inherited;
  CreateStuCodeItems;
  AdoQuery1.Open;
  DbGrid2.Visible := False;
  EnableButtons(True);
  DbGrid1.ReadOnly := True;
  pnlQuery.Visible := False;
end;

procedure TAccountForm.sbModifyClick(Sender: TObject);
begin
  inherited;
  if AdoQuery1.IsEmpty then
  begin
    MessageBoxInfo('没有要删除的记录!');
    Exit;
  end;
  EnableButtons(False);
  AdoQuery1.Edit;
  DbGrid1.ReadOnly := False;
end;

procedure TAccountForm.SpeedButton8Click(Sender: TObject);
begin
  inherited;
  if Edit2.Text = '' then
  begin
    MessageBoxInfo('请先选择一个班级!');
    Exit;
  end;
  if MessageBoxQuery('您确认要对◆'+Edit2.Text+'◆整班操作吗,默认操作为续费,继续吗?')<>MrYes then Exit;
  with AdoQuery2 do
  begin
    First;
    while not eof do
    begin
      AppendRecordToAdo1(FieldByName('StudentCode').AsString,FieldByName('StudentName').AsString);
      Next;
    end;
    First;
  end;
  DbGrid1.ReadOnly := False;
  if AdoQuery2.RecordCount >=1 then
    DbGrid2.Visible := True
  else
    DbGrid2.Visible := False;
end;

procedure TAccountForm.AppendRecordToAdo1(sCode,sName:string);
begin
  AdoQuery1.Append;
  AdoQuery1StudentCode.Value := sCode;
  AdoQuery1StudentName.Value := sName;
  AdoQuery1MoneyClass.Value := '续费';
  AdoQuery1OccurDate.Value := Trunc(Date());
  AdoQuery1.UpdateRecord;
end;

procedure TAccountForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  if AdoQuery1.State in [DsEdit,DsInsert] then
  try
    AdoQuery1.Post;
  except
  end;
end;

procedure TAccountForm.sbExitClick(Sender: TObject);
begin
  inherited;

   Close;
end;

procedure TAccountForm.SpeedButton2Click(Sender: TObject);
begin
  inherited;
  DbGrid1.ReadOnly := False;
end;

procedure TAccountForm.Edit2Change(Sender: TObject);
begin
  inherited;
  if Edit2.Text <> '' then
    SpeedButton8.Enabled := True
  else
    SpeedButton8.Enabled := False;
end;

procedure TAccountForm.sbDeleteClick(Sender: TObject);
begin
  inherited;
  if AdoQuery1.IsEmpty then
  begin
    MessageBoxInfo('没有要删除的记录!');
    Exit;
  end;
  if MessageBoxQuery('您确认要删除此记录吗?')<>MrYes then Exit;
  ADOQuery1.Delete;
end;

procedure TAccountForm.sbSaveClick(Sender: TObject);
begin
  inherited;
  try
    AdoQuery1.Post;
  except
  end;
  DbGrid1.ReadOnly := True;
  EnableButtons(True);
end;

procedure TAccountForm.sbCancelClick(Sender: TObject);
begin
  inherited;
  AdoQuery1.Cancel;
  DbGrid1.ReadOnly := True;
  EnableButtons(True);
end;

procedure TAccountForm.EnableButtons(b: Boolean);
begin
  sbQuery.Enabled := B;
  sbDelete.Enabled := B;
  sbModify.Enabled := B;
  sbSave.Enabled := not B;
  sbCancel.Enabled := not B;
  sbExit.Enabled := B;
end;

procedure TAccountForm.sbQueryClick(Sender: TObject);
begin
  inherited;
  pnlQuery.Visible := True;
  edtCode.Visible := True;
  Rg.ItemIndex := 0;
  edtName.Visible := False;
  dbdDate.Visible := False;
end;

procedure TAccountForm.BitBtn1Click(Sender: TObject);
var
  s: string;
begin
  inherited;

  s := '';
  if rg.ItemIndex = 0 then
  begin
    if EdtCode.Text <> '' then
      s := ' where StudentCode='+QuotedStr(EdtCode.Text);
  end;
  if rg.ItemIndex = 1 then
  begin
    if EdtName.Text <> '' then
      s := ' where StudentName='+QuotedStr(EdtName.Text);
  end;
  if rg.ItemIndex = 2 then
  begin
//      s := ' where OccurDate='+QuotedStr(FormatDateTime('yyyymmdd',DbtDate.Date));
  end;
  if rg.ItemIndex = 3 then
    s := ' where 1=1';
  if s <> '' then
  with AdoQuery1 do
  begin
    Close;
    Sql.Text := 'select * from studentFee ' + s;
    Open;
  end;
  pnlQuery.Visible := False;
end;

procedure TAccountForm.BitBtn2Click(Sender: TObject);
begin
  inherited;
  pnlQuery.Visible := False;
end;

procedure TAccountForm.RgClick(Sender: TObject);
begin
  inherited;
  if Rg.ItemIndex = 0 then
  begin
    edtCode.Visible := True;
    edtName.Visible := False;
    dbdDate.Visible := False;
  end;
  if Rg.ItemIndex = 1 then
  begin
    edtCode.Visible := False;
    edtName.Visible := True;
    dbdDate.Visible := False;
  end;
  if Rg.ItemIndex = 2 then
  begin
    edtCode.Visible := False;
    edtName.Visible := False;
    dbdDate.Visible := True;
  end;
  if Rg.ItemIndex = 3 then
  begin
    edtCode.Visible := False;
    edtName.Visible := False;
    dbdDate.Visible := False;
  end;

end;

end.

⌨️ 快捷键说明

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