📄 u_program.pas
字号:
unit U_program;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, U_child1_1, DB, DosMove, DBTables, DBClient, Provider, ADODB,
Mask, StdCtrls, Buttons, DBCtrls, Grids, DBGridEh, ExtCtrls;
type
TF_program = class(TF_child1_1)
ClientDataSet1sys_id: TStringField;
ClientDataSet1program_id: TStringField;
ClientDataSet1program_no: TStringField;
ClientDataSet1program_nm: TStringField;
ClientDataSet1p_add: TStringField;
ClientDataSet1p_edit: TStringField;
ClientDataSet1p_delete: TStringField;
ClientDataSet1p_query: TStringField;
ClientDataSet1p_getdata: TStringField;
ClientDataSet1p_print: TStringField;
ClientDataSet1p_datain: TStringField;
ClientDataSet1p_dataout: TStringField;
ClientDataSet1add_date: TStringField;
ClientDataSet1edit_date: TStringField;
StaticText3: TStaticText;
StaticText4: TStaticText;
StaticText5: TStaticText;
StaticText6: TStaticText;
StaticText7: TStaticText;
StaticText8: TStaticText;
StaticText9: TStaticText;
StaticText10: TStaticText;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
StaticText11: TStaticText;
StaticText12: TStaticText;
StaticText13: TStaticText;
ADOQpub: TADOQuery;
ADOQpub1: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBEdit3Exit(Sender: TObject);
procedure DBEdit4Exit(Sender: TObject);
procedure DBEdit5Exit(Sender: TObject);
procedure DBEdit6Exit(Sender: TObject);
procedure DBEdit7Exit(Sender: TObject);
procedure DBEdit8Exit(Sender: TObject);
procedure DBEdit9Exit(Sender: TObject);
procedure DBEdit10Exit(Sender: TObject);
procedure DBEdit3Click(Sender: TObject);
procedure DBEdit4Click(Sender: TObject);
procedure DBEdit5Click(Sender: TObject);
procedure DBEdit6Click(Sender: TObject);
procedure DBEdit7Click(Sender: TObject);
procedure DBEdit8Click(Sender: TObject);
procedure DBEdit9Click(Sender: TObject);
procedure DBEdit10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure DoInsert;override;
procedure DoEdit;override;
procedure DoGetData;override;
end;
var
F_program: TF_program;
implementation
uses U_main,UDM;
{$R *.dfm}
//新增资料
procedure TF_program.DoInsert;
begin
inherited;
self.ClientDataSet1.FieldByName('sys_id').AsString :='4' ;
end;
//修改资料
procedure TF_program.DoEdit;
begin
inherited;
DBEdit1.Enabled :=true;
end;
procedure TF_program.DoGetData;
var mn_col,mn_row,mnl_row : integer ; //列号和行号
i,ii,iii : integer ; //循环变量
ss,sqlstr,sqlstr1,vnum : string ; //
str_menu_col,str_menu_row : string;
begin
//inherited;
mn_col := f_Main.MainMenu1.Items.Count; //获得菜单列数
sqlstr:='DELETE from program1 ';
with ADOQpub do
begin
Close;SQL.Clear;SQL.Add(sqlstr);
ExecSQL ;
end ;
//把菜单列记录到Module表中
for i := 1 to mn_col do
begin
ss := f_Main.MainMenu1.Items[i-1].Caption; //获得列名称
vnum :=trim(inttostr(i-1)) ;
{sqlstr:='INSERT INTO program_nm (program_id,program_nm) '+
' values ( '''+vnum+''','''+ ss+''')';
with ADOQpub do
begin
Close;SQL.Clear;SQL.Add(sqlstr);
try
ExecSQL ;
except
Application.MessageBox ('添加Program数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
exit;
end;
end ;
}
mn_row := f_Main.MainMenu1.Items[i-1].Count;
for ii := 1 to mn_row do
begin
ss := f_Main.MainMenu1.Items[i-1].Items[ii-1].Caption;
ss := trim(ss);
if ss<>'-' then
begin
vnum :=trim(inttostr(i-1)) +trim(inttostr(ii-1)) ;
sqlstr1:='select count(*) nn from program1 where sys_id=''4'' and program_nm='''+ss+'''' ;
self.ADOQpub1.Close ;
self.ADOQpub1.SQL.Text := SQLStr1;
self.ADOQpub1.Active :=true;
if self.ADOQpub1.FieldByName('nn').AsInteger =0 then
begin
sqlstr:='INSERT INTO program1 (sys_id,program_id,program_NO,program_nm,p_add,p_edit,p_delete,p_query,p_getdata,p_print) '+
' values ( ''4'','''+ vnum+''','''','''+ ss+''',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'')' ;
with ADOQpub do
begin
Close;SQL.Clear;SQL.Add(sqlstr);
try
ExecSQL ;
except
Application.MessageBox ('添加Program数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
exit;
end;
end ;
end ;
end ;
mnl_row := f_Main.MainMenu1.Items[i-1].Items[ii-1].Count;
for iii := 1 to mnl_row do
begin
ss := f_Main.MainMenu1.Items[i-1].Items[ii-1].Items[iii-1].Caption;
ss := trim(ss);
if ss<>'-' then
begin
vnum :=trim(inttostr(i-1)) +trim(inttostr(ii-1))+trim(inttostr(iii-1)) ;
sqlstr1:='select count(*) nn from program1 where sys_id=''4'' and program_nm='''+ss+'''' ;
self.ADOQpub1.Close ;
self.ADOQpub1.SQL.Text := SQLStr1;
self.ADOQpub1.Active :=true;
if self.ADOQpub1.FieldByName('nn').AsInteger =0 then
begin
sqlstr:='INSERT INTO program1 (sys_id,program_id,program_no,program_nm,p_add,p_edit,p_delete,p_query,p_getdata,p_print) '+
' values ( ''4'','''+ vnum+''','''','''+ ss+''',''Y'',''Y'',''Y'',''Y'',''Y'',''Y'' )' ;
with ADOQpub do
begin
Close;SQL.Clear;SQL.Add(sqlstr);
try
ExecSQL ;
except
Application.MessageBox ('添加Program数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
exit;
end;
end ;
end ;
end ;
end; //i
end; //i
end; //with
//删除旧的不再使用的程式
sqlstr:='DELETE FROM program WHERE sys_id=''4'' and program_id not in '+
' (select program_id FROM program1 where program1.sys_id=''4'')' ;
with ADOQpub do
begin
Close;SQL.Clear;SQL.Add(sqlstr);
try
ExecSQL ;
except
Application.MessageBox ('更新程式序号数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
exit;
end;
end ;
//更新程式序号
sqlstr:='UPDATE program SET program_id=program1.program_id '+
' FROM program1 where program.sys_id=program1.sys_id and '+
' program.program_nm=program1.program_nm '+
' and program.sys_id=''4''' ;
with ADOQpub do
begin
Close;SQL.Clear;SQL.Add(sqlstr);
try
ExecSQL ;
except
Application.MessageBox ('更新程式序号数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
exit;
end;
end ;
sqlstr:='INSERT INTO program SELECT * FROM program1 '+
' WHERE program1.program_id+program1.program_nm not in (select program_id+program_nm from program '+
' where sys_id=''4'' )' ;
with ADOQpub do
begin
Close;SQL.Clear;SQL.Add(sqlstr);
try
ExecSQL ;
except
Application.MessageBox ('添加Program数据时出现错误!','错误信息',mb_ok+mb_iconinformation);
exit;
end;
end ;
MessageBox(handle,'操作成功!','提示',MB_OK+MB_ICONINFORMATION);
self.ClientDataSet1.Active :=false;
self.ClientDataSet1.Active :=true;
end;
procedure TF_program.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
self.ClientDataSet1.Free ;
F_program:=nil;
end;
procedure TF_program.DBEdit3Exit(Sender: TObject);
begin
inherited;
if pos(dbedit3.Text,'YN')=0 then dbedit3.Text:='N'
end;
procedure TF_program.DBEdit4Exit(Sender: TObject);
begin
inherited;
if pos(dbedit4.Text,'YN')=0 then dbedit4.Text:='N'
end;
procedure TF_program.DBEdit5Exit(Sender: TObject);
begin
inherited;
if pos(dbedit5.Text,'YN')=0 then dbedit5.Text:='N'
end;
procedure TF_program.DBEdit6Exit(Sender: TObject);
begin
inherited;
if pos(dbedit6.Text,'YN')=0 then dbedit6.Text:='N'
end;
procedure TF_program.DBEdit7Exit(Sender: TObject);
begin
inherited;
if pos(dbedit7.Text,'YN')=0 then dbedit7.Text:='N'
end;
procedure TF_program.DBEdit8Exit(Sender: TObject);
begin
inherited;
if pos(dbedit8.Text,'YN')=0 then dbedit8.Text:='N'
end;
procedure TF_program.DBEdit9Exit(Sender: TObject);
begin
inherited;
if pos(dbedit9.Text,'YN')=0 then dbedit9.Text:='N'
end;
procedure TF_program.DBEdit10Exit(Sender: TObject);
begin
inherited;
if pos(dbedit10.Text,'YN')=0 then dbedit10.Text:='N' ;
f_main.b_update.SetFocus;
end;
procedure TF_program.DBEdit3Click(Sender: TObject);
begin
inherited;
if dbedit3.Text='Y' then dbedit3.Text:='N'
else dbedit3.Text:='Y';
end;
procedure TF_program.DBEdit4Click(Sender: TObject);
begin
inherited;
if dbedit4.Text='Y' then dbedit4.Text:='N'
else dbedit4.Text:='Y';
end;
procedure TF_program.DBEdit5Click(Sender: TObject);
begin
inherited;
if dbedit5.Text='Y' then dbedit5.Text:='N'
else dbedit5.Text:='Y';
end;
procedure TF_program.DBEdit6Click(Sender: TObject);
begin
inherited;
if dbedit6.Text='Y' then dbedit6.Text:='N'
else dbedit6.Text:='Y';
end;
procedure TF_program.DBEdit7Click(Sender: TObject);
begin
inherited;
if dbedit7.Text='Y' then dbedit7.Text:='N'
else dbedit7.Text:='Y';
end;
procedure TF_program.DBEdit8Click(Sender: TObject);
begin
inherited;
if dbedit8.Text='Y' then dbedit8.Text:='N'
else dbedit8.Text:='Y';
end;
procedure TF_program.DBEdit9Click(Sender: TObject);
begin
inherited;
if dbedit9.Text='Y' then dbedit9.Text:='N'
else dbedit9.Text:='Y';
end;
procedure TF_program.DBEdit10Click(Sender: TObject);
begin
inherited;
if dbedit10.Text='Y' then dbedit10.Text:='N'
else dbedit10.Text:='Y';
end;
procedure TF_program.FormCreate(Sender: TObject);
begin
inherited;
self.ClientDataSet1.Active :=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -