📄 frm_zdwh.pas
字号:
unit frm_zdwh;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Mask,
DBCtrls, CheckLst, ExtCtrls,movelabel,DBTables,unit_global,
frame_CompanyList;
type
Tfrm_zd = class(TForm)
GroupBox1: TGroupBox;
DBGrid1: TDBGrid;
Label1: TLabel;
GroupBox2: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Edit1: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit2: TEdit;
B_ADD: TButton;
B_MOD: TButton;
B_DEL: TButton;
B_SAVE: TButton;
B_EXIT: TButton;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
ComboBox4: TComboBox;
ComboBox5: TComboBox;
ComboBox6: TComboBox;
CKB_MaintainTable: TCheckListBox;
RadioGroup1: TRadioGroup;
procedure FormCreate(Sender: TObject); //初始化界面radiogroup1的信息
procedure RadioButton1Click(Sender: TObject);//调用radiobuttonclick
procedure RadioButton2Click(Sender: TObject);//调用radiobuttonclick
procedure RadioButton3Click(Sender: TObject);//调用radiobuttonclick
procedure RadioButton4Click(Sender: TObject); //调用radiobuttonclick
procedure RadioButton5Click(Sender: TObject);//调用radiobuttonclick
procedure RadioButton6Click(Sender: TObject); //调用radiobuttonclick
procedure RadioButton7Click(Sender: TObject);//调用radiobuttonclick
procedure RadioButton8Click(Sender: TObject);//调用radiobuttonclick
procedure DBGrid1CellClick(Column: TColumn); //显示 DBGrid1中选中的详细信息
procedure B_ADDClick(Sender: TObject); //新增一条信息
procedure B_DELClick(Sender: TObject);//删除一条信息
procedure B_SAVEClick(Sender: TObject); //保存信息到数据库
procedure ComboBox2Change(Sender: TObject);//字段是否显示,
procedure B_EXITClick(Sender: TObject); //退出
procedure B_MODClick(Sender: TObject); //修改当前信息
procedure B_CANCELClick(Sender: TObject); //取消操作
procedure CKB_MaintainTableClickCheck(Sender: TObject); //初始化dbgrid1界面,并显示radiogroup1中选中表的详细信息
procedure RadioGroup1Click(Sender: TObject);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Edit12KeyPress(Sender: TObject; var Key: Char);
procedure Edit13KeyPress(Sender: TObject; var Key: Char);
procedure Edit14KeyPress(Sender: TObject; var Key: Char);
procedure Edit15KeyPress(Sender: TObject; var Key: Char);
procedure Edit11KeyPress(Sender: TObject; var Key: Char); //显示radiogroup1中选中表的详细信息
private
procedure ShwoGridInfo; //初始化dbgrid1界面,并显示radiogroup1中选中表的详细信息
Function IsNumeric(StrIn:String):Boolean; //判断输入的数据是否是数字型的
{ Private declarations }
public
procedure radiobuttonclick(sender:tobject); //显示当前操作的数据表字段信息
procedure readonly(value:boolean); //传递控件的只读性
procedure addfield; // 新增一条信息
procedure delfield; // 删除选定一条信息
procedure modfield; // 修改选定一条信息
{ Public declarations }
end;
var
frm_zd: Tfrm_zd;
implementation
uses data_module, Unit4, Unit_main;
var
gentable_name:string; //数据表名
colwidth:integer; //设置dbgrid1.Columns的宽度
save:boolean; //保存标志
id:integer; //选择信息的id号
SelectPage,SelectIndex:integer;//选择信息的页面号,和排序号
add,modify:boolean; //增加修改标志
colindex:integer; //没用
maintaintablelistL:tstrings; //表名标签
//sqlstring:string;
{$R *.dfm}
procedure Tfrm_zd.FormCreate(Sender: TObject);
begin
maintaintablelistL:=tstringlist.Create;
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select tablename,dwname from dw_info where yn');
open;
if not eof then
begin
while not eof do
begin
radiogroup1.Items.Add(fieldbyname('dwname').AsString);
//ckb_maintaintable.AddItem(fieldbyname('dwname').AsString,CKB_MaintainTable);
maintaintablelistL.Add(fieldbyname('tablename').AsString);
next;
end;
end;
end;
dbgrid1.DataSource:=dm.DataSource4;
add:=false;
modify:=false;
save:=true;
id:=0;
//save:=false;
end;
procedure Tfrm_zd.RadioButton1Click(Sender: TObject);
begin
radiobuttonclick(sender);
end;
procedure tfrm_zd.radiobuttonclick(sender:tobject);
var
index,i:integer;
sqlstr:string;
begin
colwidth:=55;
label1.Caption:='当前操作的数据表:';
index:=(sender as tradiobutton).Tag;
case index of
0: begin
label1.Caption:=label1.Caption+'基本信息表';
gentable_name:='a01';
end;
1: begin
label1.Caption:=label1.Caption+'职务表';
gentable_name:='a02';
end;
2: begin
label1.Caption:=label1.Caption+'学历表';
gentable_name:='a03';
end;
3: begin
label1.Caption:=label1.Caption+'家庭表';
gentable_name:='a04';
end;
4: begin
label1.Caption:=label1.Caption+'简历表';
gentable_name:='a05';
end;
5: begin
label1.Caption:=label1.Caption+'重大事项表';
gentable_name:='a06';
end;
6: begin
label1.Caption:=label1.Caption+'后备历史表';
gentable_name:='a07';
end;
7: begin
label1.Caption:=label1.Caption+'其他信息表';
gentable_name:='a08';
end;
end;
sqlstr:='select id,table_name,lab_name,field,'+
'bx_info,cx_field ,is_browse ,'+
'x ,y ,ord ,notnull,'+
'type ,yn ,page ,compx ,compy '+
' from field_info where table_name='+quotedstr(gentable_name);
with dm.ADOQuery7 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
open;
for i:=0 to 15 do
begin
dbgrid1.Columns[i].Width:=colwidth;
end;
end;
//=============================
dbgrid1.Columns[0].Title.caption:='id';
dbgrid1.Columns[1].Title.caption:='表名';
dbgrid1.Columns[2].Title.caption:='字段中文名';
dbgrid1.Columns[3].Title.caption:='字段英文名';
dbgrid1.Columns[4].Title.caption:='是否有备选信息';
dbgrid1.Columns[5].Title.caption:='是否为查询条件';
dbgrid1.Columns[6].Title.caption:='是否为从属信息字段';
dbgrid1.Columns[7].Title.caption:='标签控件上坐标';
dbgrid1.Columns[8].Title.caption:='标签控件左坐标';
dbgrid1.Columns[9].Title.caption:='排序值';
dbgrid1.Columns[10].Title.caption:='是否必填';
dbgrid1.Columns[11].Title.caption:='字段类型';
dbgrid1.Columns[12].Title.caption:='是否显示';
dbgrid1.Columns[13].Title.caption:='页面';
dbgrid1.Columns[14].Title.caption:='填值控件上坐标';
dbgrid1.Columns[15].Title.caption:='填值控件左坐标';
//=============================
end;
procedure Tfrm_zd.RadioButton2Click(Sender: TObject);
begin
RadioButtonClick(Sender);
end;
procedure Tfrm_zd.RadioButton3Click(Sender: TObject);
begin
RadioButtonClick(Sender);
end;
procedure Tfrm_zd.RadioButton4Click(Sender: TObject);
begin
RadioButtonClick(Sender);
end;
procedure Tfrm_zd.RadioButton5Click(Sender: TObject);
begin
RadioButtonClick(Sender);
end;
procedure Tfrm_zd.RadioButton6Click(Sender: TObject);
begin
RadioButtonClick(Sender);
end;
procedure Tfrm_zd.RadioButton7Click(Sender: TObject);
begin
RadioButtonClick(Sender);
end;
procedure Tfrm_zd.RadioButton8Click(Sender: TObject);
begin
RadioButtonClick(Sender);
end;
procedure Tfrm_zd.DBGrid1CellClick(Column: TColumn);
begin
readonly(true);
with dm.ADOQuery7 do
begin
id:=fieldbyname('id').AsInteger;
SelectPage:=fieldbyname('page').AsInteger;
SelectIndex:=fieldbyname('ord').AsInteger;
edit1.Text:=fieldbyname('lab_name').asstring;//fieldbyname('字段中文名').AsString;
edit2.Text:=fieldbyname('field').asstring;//fieldbyname('字段英文名').AsString;
if fieldbyname('type').AsString='E' then // fieldbyname('字段类型').AsString
combobox6.Text:='文本';
if fieldbyname('type').AsString='D' then
combobox6.Text:='日期';
if fieldbyname('type').AsString='M' then
combobox6.Text:='备注';
if fieldbyname('type').AsString='B' then
combobox6.Text:='是/否';
edit4.Text:=fieldbyname('table_name').asstring;//fieldbyname('表名').AsString;
edit5.Text:=fieldbyname('page').asstring;//fieldbyname('页面').AsString;
if fieldbyname('notnull').AsVariant=true then // fieldbyname('是否必填').AsVariant
combobox1.Text:='是'
else
combobox1.Text:='否';
if fieldbyname('yn').AsString='1' then // 是否显示
combobox2.Text:='是'
else
combobox2.Text:='否';
if fieldbyname('bx_info').AsVariant=true then // 是否有备选信息
combobox3.Text:='是'
else
combobox3.Text:='否';
if fieldbyname('cx_field').AsVariant=true then //是否为查询条件
combobox4.Text:='是'
else
combobox4.Text:='否';
if fieldbyname('is_browse').AsVariant=true then // 是否为从属信息字段
combobox5.Text:='是'
else
combobox5.Text:='否';
edit11.Text:=fieldbyname('ord').AsString; //排序值
edit12.Text:=fieldbyname('x').AsString; //标签控件上坐标
edit13.Text:=fieldbyname('y').AsString; //标签控件左坐标
edit14.Text:=fieldbyname('compx').AsString; //填值控件上坐标
edit15.Text:=fieldbyname('compy').AsString; //填值控件左坐标
end;
end;
procedure Tfrm_zd.B_ADDClick(Sender: TObject);
var
i:integer;
begin
if Application.Messagebox('确定要新增一条信息!','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
begin
for i:=0 to self.ComponentCount-1 do //控件清空
begin
if Self.Components[i] is Tcombobox then
Tcombobox(Self.Components[i]).Text:='';
if Self.Components[i] is Tedit then
Tedit(Self.Components[i]).Text:='';
end;
readonly(false);
add:=true;
modify:=false;
save:=false;
end;
end;
procedure tfrm_zd.readonly(value:boolean);
var
i:integer;
tmpvalue:boolean;
begin
for i:=0 to self.ComponentCount-1 do //控件清空
begin
if Self.Components[i] is Tcombobox then
begin
if value then
tmpvalue:=false
else
tmpvalue:=true;
Tcombobox(Self.Components[i]).Enabled:=tmpvalue;
end;
if Self.Components[i] is Tedit then
Tedit(Self.Components[i]).ReadOnly:=value;
if Self.Components[i] is TMaskEdit then
Tedit(Self.Components[i]).ReadOnly:=value; //2006-03
end;
end;
procedure Tfrm_zd.B_DELClick(Sender: TObject);
var
sqlstr:string;
i:integer;
begin
if (trim(edit4.Text)='') or (trim(edit2.Text)='') or (id=0) then
exit;
if Application.Messagebox('确定要删除该信息!','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
begin
////////////////////////2006-03//////////////////////////////////////////////
sqlstr:='delete from field_info where id='+inttostr(id);//lab_name='+quotedstr(edit1.Text)+' and table_name='+quotedstr(edit4.Text);
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
try
execsql;
except
exit;
end;
/////////////////////2006-03 删除对应字表的字段//////////////////////////////
close;
sql.Clear;
sql.Add('ALTER TABLE '+trim(edit4.Text)+' drop '+trim(edit2.Text)+' ');
execsql;
//////////////////////////////////////////////////////////////////////////////
end;
Form4.labelcaption1[SelectPage-1][SelectIndex-1].Destroy;
labelcaption[SelectPage-1][SelectIndex-1].Destroy;
if (combobox6.Text='文本') or (combobox6.Text='数字') then
begin
Form4.editbox1[SelectPage-1][SelectIndex-1].Destroy;
editbox[SelectPage-1][SelectIndex-1].Destroy;
end;
if combobox6.Text='日期' then
begin
Form4.maskedit1[SelectPage-1][SelectIndex-1].Destroy;
maskedit[SelectPage-1][SelectIndex-1].Destroy;
end;
if combobox6.Text='备注' then
begin
Form4.memo1[SelectPage-1][SelectIndex-1].Destroy;
memo[SelectPage-1][SelectIndex-1].Destroy;
end;
if combobox6.Text='是/否' then
begin
Form4.checkbox1[SelectPage-1][SelectIndex-1].Destroy;
checkbox[SelectPage-1][SelectIndex-1].Destroy;
end;
//////////////////////////////////////////////////////////////////////////////
dm.ADOQuery7.Close;
dm.ADOQuery7.Open;
for i:=0 to 14 do
begin
dbgrid1.Columns[i].Width:=colwidth;
end;
//dbgrid1.Update;
for i:=0 to self.ComponentCount-1 do //控件清空
begin
if Self.Components[i] is Tcombobox then
Tcombobox(Self.Components[i]).Text:='';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -