?? grate.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 + -