📄 ufrm_programmaintain.pas
字号:
{
************************************
Program name:mpss_program
Author :Guo xuliang
Purpose :程序資料維護
Date :2003/05/09
************************************
程序資料單頭維護(master)
}
unit ufrm_programmaintain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ufrm_level4_2, dxExEdtr, DB, DBTables, ImgList, dxCntner, dxTL,
dxDBCtrl, dxDBGrid, StdCtrls, ExtCtrls, ComCtrls, ToolWin, DBCtrls, Mask,
dxEditor, dxEdLib, dxDBELib, Menus;
type
Tfrm_program_maintain = class(Tfrm_level4_2)
dbc_zb01: TdxDBGridColumn;
dbc_zb02: TdxDBGridColumn;
dbc_zb03: TdxDBGridColumn;
dbc_d_sn: TdxDBGridColumn;
Label1: TLabel;
Label3: TLabel;
Label6: TLabel;
Label9: TLabel;
Label10: TLabel;
acti: TDBText;
Label4: TLabel;
za01: TDBEdit;
za03: TDBEdit;
za04: TDBEdit;
za02: TdxDBButtonEdit;
za05: TDBRadioGroup;
lb_zb02_desc: TLabel;
procedure qy_masterAfterScroll(DataSet: TDataSet);
procedure za02ButtonClick(Sender: TObject; AbsoluteIndex: Integer);
procedure qy_masterNewRecord(DataSet: TDataSet);
private
{ Private declarations }
protected
procedure set_Focus; override; //設置焦點
procedure chg_canwrite; override; //設置關鍵字為可寫
procedure chg_Readonly; override; //設置關鍵字為只讀
function chk_save:boolean; override; //保存前的檢查
function chk_conf:boolean; override; //確認前的檢查
procedure call_detail; override; //調用單身維護
//===================================================
function chk_za01:boolean; //檢查序號是否有效
function chk_za02:boolean; //檢查父階是否有效
function next_za01:integer; //生成下一個序號
public
{ Public declarations }
end;
var
frm_program_maintain: Tfrm_program_maintain;
implementation
uses udm,uglobal_var, ufrm_programmaintain_d,uglobal_fun,ufrm_program_select;
{$R *.dfm}
procedure Tfrm_program_maintain.call_detail;
begin
inherited;
Application.CreateForm(Tfrm_programmaintain_d, frm_programmaintain_d);
frm_programmaintain_d.ShowModal;
try
frm_programmaintain_d.Free;
except
;
end;
end;
procedure Tfrm_program_maintain.chg_canwrite;
begin
inherited;
za01.Enabled:=true;
za03.Enabled:=true;
end;
procedure Tfrm_program_maintain.chg_Readonly;
begin
inherited;
za01.Enabled:=false;
za03.Enabled:=false;
end;
function Tfrm_program_maintain.chk_conf: boolean;
begin
result:=true;
if TRIM(qy_master.FieldByName('ZA04').AsString)='' then
begin
u_error:='程序說明不能為空';
result:=false;
end;
end;
function Tfrm_program_maintain.chk_save: boolean;
begin
result:=true;
//判斷序號和父階段是否有效
if not self.chk_za01 then
begin
//uglobal_fun.cl_showmsg(u_error);
result:=false;
exit;
end;
if not self.chk_za02 then
begin
//uglobal_fun.cl_showmsg(u_error);
result:=false;
exit;
end;
end;
function Tfrm_program_maintain.chk_za01: boolean;
begin
result:=true;
if TRIM(qy_master.FieldByName('ZA01').AsString)='' then
begin
u_error:='程序序號不能為空';
result:=false;
exit;
end;
if qy_master.State=dsInsert then
begin
with dm do
begin
g_sqlstr:='SELECT ZA01 FROM ZA_FILE WHERE ZA01='''+
qy_master.fieldbyname('ZA01').AsString+'''';
pub1.Close;
pub1.sql.Clear;
pub1.sql.Add(g_sqlstr);
pub1.Open;
if not (pub1.Bof and pub1.Eof ) then
begin
u_error:='序號已經存在';
result:=false;
pub1.Close;
exit;
end;
pub1.Close;
end;
end;
end;
function Tfrm_program_maintain.chk_za02: boolean;
begin
result:=true;
if trim(qy_master.fieldbyname('ZA02').AsString)='' then
begin
u_error:='父階不能為空';
result:=false;
exit;
end;
if qy_master.FieldByName('ZA02').AsString='0' then exit;
with dm do
begin
g_sqlstr:='SELECT ZA01 FROM ZA_FILE WHERE ZA01='''+
qy_master.fieldbyname('ZA02').AsString+'''';
pub1.close;
pub1.sql.Clear;
pub1.SQL.Add(g_sqlstr);
pub1.Open;
if pub1.Bof and pub1.Eof then
begin
u_error:='父階不存在';
result:=false;
exit;
end;
end;
end;
function Tfrm_program_maintain.next_za01: integer;
begin
result:=1;
with dm.pub1 do
begin
g_sqlstr:='SELECT MAX(ZA01) FROM ZA_FILE';
close;
sql.Clear;
sql.Add(g_sqlstr);
open;
result:=fields[0].AsInteger+1;
end;
end;
procedure Tfrm_program_maintain.qy_masterAfterScroll(DataSet: TDataSet);
var l_desc:string;
begin
inherited;
with dm do
begin
g_sqlstr:='SELECT ZA04 FROM ZA_FILE WHERE ZA01='''+
qy_master.fieldbyname('ZA02').Asstring+'''';
pub1.close;
pub1.sql.clear;
pub1.sql.add(g_sqlstr);
pub1.open;
l_desc:=pub1.fieldbyname('ZA04').Asstring;
//if l_desc='' then l_desc:='Root';
pub1.close;
end;
lb_zb02_desc.Caption:=l_desc;
end;
procedure Tfrm_program_maintain.set_Focus;
begin
inherited;
if za03.Enabled then
za03.SetFocus
else
za02.SetFocus;
end;
procedure Tfrm_program_maintain.za02ButtonClick(Sender: TObject;
AbsoluteIndex: Integer);
begin
inherited;
//to do
Application.CreateForm(Tfrm_program_select,frm_program_select);
frm_program_select.init('','2');
if frm_program_select.showmodal=mrok then
begin
qy_master.FieldByName('ZA02').AsString:=frm_program_select.za_file.fieldbyname('ZA01').AsString;
lb_zb02_desc.Caption:=frm_program_select.za_file.fieldbyname('ZA04').AsString;
end;
try
frm_program_select.Release;
except
;
end;
end;
procedure Tfrm_program_maintain.qy_masterNewRecord(DataSet: TDataSet);
begin
inherited;
qy_master.FieldByName('ZA01').AsInteger:=next_za01;
qy_master.FieldByName('ZA05').AsString:='1';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -