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

📄 grate.pas

📁 网吧管理系统 网吧IC卡计费管理系统源码
💻 PAS
字号:
unit GRate;

interface

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

type
  TFrm_GRate = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBedt_StartTime: TDBEdit;
    DBedt_PTK: TDBEdit;
    DBedt_JK: TDBEdit;
    DBedt_Yk: TDBEdit;
    Btn_Add: TButton;
    Btn_Modi: TButton;
    Btn_Dele: TButton;
    Btn_Ok: TButton;
    Btn_Cancel: TButton;
    Btn_Close: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Bevel1: TBevel;
    Label6: TLabel;
    StaticText1: TStaticText;
    Stxt_State: TStaticText;
    Bevel2: TBevel;
    Label5: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Btn_AddClick(Sender: TObject);
    procedure Btn_OkClick(Sender: TObject);
    procedure Btn_CancelClick(Sender: TObject);
    procedure Btn_ModiClick(Sender: TObject);
    procedure Btn_DeleClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    procedure disa ;
    procedure enab ;
    procedure AdjustRate;  // 调整费率
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_GRate: TFrm_GRate;

implementation

uses sys_dm, sys_global ;
{$R *.dfm}

procedure TFrm_GRate.FormCreate(Sender: TObject);
begin
  with Frm_sys_dm.Qr_tmp1 do
  begin
    close;
    SQL.Clear ;
    sql.text := 'select * from Grate where Gid = '''+m_Flag+''' order by StartTime' ;
    open ;
  end;
end;

procedure TFrm_GRate.FormShow(Sender: TObject);
begin
  disa ;
end;

procedure TFrm_GRate.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Frm_sys_dm.Qr_tmp1.close;
  Frm_sys_dm.Qr_tmp2.close;
end;

procedure TFrm_GRate.disa ;
var
  i: integer ;
begin
  for i := 0 to Controlcount-1 do
    if Controls[i].ClassType = TDBEdit then
        TDBEdit(Controls[i]).Enabled := false ;
  Btn_Add.Enabled := true ; Btn_Modi.Enabled := true ; Btn_Dele.Enabled := true ;
  Btn_Ok.Enabled := false ; Btn_Cancel.Enabled := false ;

  dbgrid1.Enabled := true ;
  dbgrid1.SetFocus ;
  Stxt_state.Caption := '浏览' ;
end;

procedure TFrm_GRate.enab ;
var
  i: integer ;
begin
  for i := 0 to Controlcount-1 do
    if Controls[i].ClassType = TDBEdit then
        TDBEdit(Controls[i]).Enabled := true ;
  Btn_Add.Enabled := false ; Btn_Modi.Enabled := false ; Btn_Dele.Enabled := false ;
  Btn_Ok.Enabled := true ; Btn_Cancel.Enabled := true ;

  dbgrid1.Enabled := false ;
  DBedt_StartTime.SetFocus ;
end;


procedure TFrm_GRate.Btn_AddClick(Sender: TObject);
begin
  Stxt_state.Caption := '增加' ;
  Frm_sys_dm.Qr_tmp1.Append ;
  if  m_Flag = '01' then
     Frm_sys_dm.Qr_tmp1.FieldByName('Gid').AsString := '01'
  else
     Frm_sys_dm.Qr_tmp1.FieldByName('Gid').AsString := '02' ;
  enab ;
end;

procedure TFrm_GRate.Btn_ModiClick(Sender: TObject);
begin
  Stxt_state.Caption := '修改' ;
  Frm_sys_dm.Qr_tmp1.Edit ;
  enab ;
end;

procedure TFrm_GRate.Btn_DeleClick(Sender: TObject);
var
  st: string ;
begin
  Stxt_state.Caption := '删除' ;
  st := Frm_sys_dm.Qr_tmp1.fieldbyname('StartTime').asstring ;
  if application.MessageBox(pchar('时段'+st+' 的各种费率将被删去, 您确定吗?'),'信息提示',MB_yesno+mb_iconquestion+MB_DEFBUTTON2)=ID_yes then
     Frm_sys_dm.Qr_tmp1.Delete ;
  disa ;
end;

procedure TFrm_GRate.Btn_OkClick(Sender: TObject);
begin
  if length(DBedt_StartTime.Text)<> 5 then
  begin
    application.MessageBox(' 时间有错! ', '提示', MB_OK+MB_ICONERROR) ;
    DBedt_StartTime.SetFocus ;
    exit ;
  end;
  try
    strTotime(DBedt_StartTime.Text)
  except
    application.MessageBox(' 时间有错! ', '提示', MB_OK+MB_ICONERROR) ;
    DBedt_StartTime.SetFocus ;
    exit ;
  end;
  if trim(DBedt_PTK.Text) ='' then
  begin
    application.MessageBox(' 请填写普通卡的单价! ', '提示', MB_OK+MB_ICONERROR) ;
    DBedt_PTK.SetFocus ;
    exit ;
  end;

  try
    Frm_sys_dm.Qr_tmp1.Post ;
  except
    application.MessageBox('操作不能成功,自动退出', '错误提示', MB_OK+MB_ICONERROR) ;
    Frm_sys_dm.Qr_tmp1.Cancel ;
    disa;
    exit;
  end;
  application.MessageBox('修改已做保存!','提示',MB_ok+MB_ICONWARNING);
  disa ;
  AdjustRate ; // 调整费率
end;

procedure TFrm_GRate.AdjustRate;
begin
  with Frm_sys_dm.Qr_tmp2 do
  begin
    close;
    sql.Clear ;
    sql.add('update Grate');
    sql.add('set jk1=(1.0*ISNULL(jk,0.0))/60*(:jsdw1),');
    sql.add('yk1=(1.0*ISNULL(yk,0.0))/60*(:jsdw2),');
//BjCat    sql.add('ptk1=(1.0*ISNULL(ptk,0.0))/60*(:jsdw3)');
    sql.add('ptk1=(2.0*ISNULL(ptk,0.0))/60*(:jsdw3)');
    Parameters.parambyname('jsdw1').value := m_MonTime ;
    Parameters.parambyname('jsdw2').value := m_MonTime ;
    Parameters.parambyname('jsdw3').value := m_MonTime ;
    try
      execsql;
    except
      application.messagebox('上机费率有问题, 请检查!','错误提示',mb_ok+mb_iconstop);
      exit;
    end;
  end;
end;

procedure TFrm_GRate.Btn_CancelClick(Sender: TObject);
begin
  Frm_sys_dm.Qr_tmp1.Cancel ;
  disa ;
end;

procedure TFrm_GRate.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_SPACE then  btn_modi.Click ;
  if key = VK_DELETE then btn_dele.Click ;
  if (key=ord('N')) and (shift-[ssalt]-[ssshift]+[ssctrl]=shift) then btn_add.Click ;

  case key of
    vk_return:
    begin
      if (activecontrol is TDbgrid) then
        exit;
      SelectNext(ActiveControl As Twincontrol,true,true);
      key:=0;
    end;
    vk_up,vk_down:
    begin
      if (activecontrol is TDbgrid) then
        exit;
      SelectNext(ActiveControl As Twincontrol,key=vk_down,true);
      key:=0;
    end;
  end;
end;

procedure TFrm_GRate.DBGrid1DblClick(Sender: TObject);
begin
  btn_modi.Click ;
end;

end.

⌨️ 快捷键说明

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