📄 unit_main.pas
字号:
csperscode:=prescodelist[i];
//@@@@@@@@@@@2
gencode:=csperscode;
end;
end;
if gencode<>'' then
begin
AppPath:=ExtractFilePath(Application.ExeName);
DefPath:=AppPath+'defaultbmp.bmp';
image1.Picture.LoadFromFile(DefPath);//载入默认图片
readpic;
if pagecontrol1.ActivePageIndex<>0 then
begin
label1.Parent:=tabsheet[pagecontrol1.ActivePageIndex];
label1.BringToFront;
label1.Top:=tabsheet[pagecontrol1.ActivePageIndex].Top-10;
label1.Left:=90;
with dm.ADOQuery1 do //显示当前用户信息
begin
close;
sql.Clear;
sql.Add('select a0101,a0102,a0103,a0104 from a01 where prescode='+quotedstr(gencode));
open;
label1.Caption:=fieldbyname('a0101').AsString+' , '+fieldbyname('a0102').AsString+' , '
+fieldbyname('a0103').AsString+' , '+fieldbyname('a0104').AsString;
end;
end;
end;
is_addnew:=false;
pagecontrol1.ActivePageIndex:=0;
showinfo(pagecontrol1.ActivePageIndex+1,perscode);
is_mod:=false;
}
end;
procedure Tfrm_main.PageControl1Change(Sender: TObject);
var
sqlstr:string;
str,tmpstr:string;
row,col:integer;
code:string;
fieldstr:string;
table_name:string;
loopnum:integer;
postion:integer;
field:string;
i:integer;
j:Variant;
//定义stringgrid的位置
itop,ileft:integer;
begin
is_mult:=false;
if pagecontrol1.ActivePageIndex=0 then //照片显示的相关控件显现与否
begin
groupbox1.Visible:=true;
B_ADD.Visible:=true;
b_del.Visible:=true;
end
else
begin
groupbox1.Visible:=false;
b_add.Visible:=false;
b_del.Visible:=false;
end;
if gencode<>'' then //显示某个成员姓名,性别等信息
begin
showinfo(pagecontrol1.ActivePageIndex+1,gencode);
if pagecontrol1.ActivePageIndex<>0 then
begin
label1.Parent:=tabsheet[pagecontrol1.ActivePageIndex];
label1.BringToFront;
label1.Top:=tabsheet[pagecontrol1.ActivePageIndex].Top-10;
label1.Left:=90;
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select a0101,a0102,a0103,a0104 from a01 where prescode='+quotedstr(gencode));
open;
label1.Caption:=fieldbyname('a0101').AsString+' , '+fieldbyname('a0102').AsString+' , '
+fieldbyname('a0103').AsString+' , '+fieldbyname('a0104').AsString;
end;
end;
end;
sqlstr:='select page_name,mult_rec,grid_top from page_def where page_no='+inttostr(pagecontrol1.ActivePageindex+1);
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
open;
end;
if dm.ADOQuery1.fieldbyname('mult_rec').AsVariant then
begin
tbn_newcszxx.Enabled:=true;
n_2_newcszxx.Enabled:=true;
tbn_newcs.Enabled:=false;
n_2_newcs.Enabled:=false;
is_mult:=true;
tbn_delzxx.Enabled:=true; //1023添加 删除子信息按钮可用
n_2_delcszxx.Enabled:=true; //1023添加 菜单项选项可用
//======20050403修改
stringgrid1.Top:=dm.ADOQuery1.fieldbyname('grid_top').asinteger;
stringgrid1.Left:=pagecontrol1.Left+5;
stringgrid1.Width:=pagecontrol1.Width-10;
stringgrid1.Height:=pagecontrol1.Top+pagecontrol1.Height-stringgrid1.Top-10;
//============
unit3.UpdateStringGrid;
StringGrid1.Visible:=true;
for i:=1 to StringGrid1.RowCount do
begin
if trim(combobox[xh_posi][xh_posy].text)<>'' then
if combobox[xh_posi][xh_posy].Text=stringgrid1.Cells[1,i] then
begin
xh_value:=strtoint(stringgrid1.Cells[0,i]);
break;
end;
end;
end
else
begin
stringgrid1.Visible:=false;
tbn_newcszxx.Enabled:=false;
n_2_newcszxx.Enabled:=false;
tbn_newcs.Enabled:=true;
n_2_newcs.Enabled:=true;
end;
end;
procedure Tfrm_main.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
var
pagenum,index:integer;
begin
if gencode='' then
begin
allowchange:=false;
exit;
end;
if addstate and (is_save=false) then
begin
if application.MessageBox('还未保存当前增加的信息,是否要保存','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
begin
N_2_saveClick(Sender);//(Sender);
allowchange:=false;
exit; //回到浏览状态
end
else
begin
///////////////////2006-03//////////////////////////////////////////////////
ChangeComposeState(true,false);//组建内容不可以修改
///////////////////////////////////////////////////////////////////////////
if is_addnew and (is_save=false) then
begin
delrecord('a01',gencode); //$$$$$$$$$$$$$$444
addstate:=false;
is_addnew:=false;
gencode:='';
pagecontrol1.ActivePageIndex:=0;
addstate:=false;
is_csadd:=false;
is_save:=true;
unit3.ClearAllComp;
is_mod:=false;
allowchange:=false;
exit;
end;
addstate:=false;
is_csadd:=false;
is_save:=true;
is_mod:=false;
end;
end;
if is_mod or upstate then
begin
if application.MessageBox('还未保存当前修改的信息,是否要保存','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
begin
N_2_saveClick(Sender);//N5Click(Sender);
is_mod:=false;
allowchange:=false;
exit; //回到浏览状态
end
else
begin
///////////////////2006-03//////////////////////////////////////////////////
ChangeComposeState(true,false);//组建内容不可修改
/////////////////////////////////////////////////////////////////////////
upstate:=false;
is_save:=true;
is_mod:=false;
end;
end;
end;
procedure Tfrm_main.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var
row,col:integer;
i,index,loopnum:integer;
sqltmp:string;
values:string;
table_name:string;
seafield:String;
sqlstr:string;
begin
if trim(stringgrid1.Cells[0,arow])='' then
exit;
xh_value:=strtoint(stringgrid1.Cells[0,arow]);
seafield:='xh';
row:=arow;
comprow:=row;
col:=2;
i:=pagecontrol1.ActivePageIndex+1;
dm.ADOQry_gen.First;
while not dm.ADOQry_gen.Eof do
begin
if (dm.ADOQry_gen.FieldByName('page').AsInteger=i) and (dm.ADOQry_gen.FieldByName('yn').AsString='1') then
begin
index:=dm.ADOQry_gen.FieldValues['ord']-1;
with dm.ADOQuery1 do
begin
table_name:=dm.ADOQry_gen.fieldbyname('table_name').AsString;
close;
sql.Clear;
sql.Add('select '+dm.ADOQry_gen.fieldbyname('field').AsString+' from '+table_name+' where prescode='+quotedstr(gencode)+' and '+seafield+'='+inttostr(xh_value));///quotedstr(frm_main.StringGrid1.Cells[xhpos,comprow])); //??????????????????//
open;
values:=dm.ADOQuery1.fieldbyname(dm.ADOQry_gen.fieldbyname('field').AsString).AsString;
if (dm.ADOQry_gen.FieldByName('type').AsString='E') or (dm.ADOQry_gen.fieldbyname('type').AsString='UE') then
editbox[i-1][index].Text:=values;//dm.AQ_dg.fieldbyname(dm.ADOQuery2.fieldbyname('field').AsString).AsString;
if dm.ADOQry_gen.FieldByName('type').AsString='D' then
maskedit[i-1][index].Text:=dm.ADOQuery1.Fieldbyname(dm.ADOQry_gen.FieldValues['field']).AsString;
if dm.ADOQry_gen.FieldByName('type').AsString='C' then
Combobox[i-1][index].Text:=values;
if dm.ADOQry_gen.FieldByName('type').AsString='M' then
memo[i-1][index].Text:=values;
if dm.ADOQry_gen.FieldByName('type').AsString='N' then
editbox[i-1][index].Text:=values;
end;
end;
dm.ADOQry_gen.next;
end;
end;
procedure Tfrm_main.t_2_exitClick(Sender: TObject); //退出
begin
if addstate and (is_save=false) then
begin
if Messagedlg('还未保存当前增加的信息,是否要保存',mtConfirmation, [mbYes, mbNo], 0) = mryes then
begin
N_2_saveClick(Sender);//N5Click(Sender);
exit; //回到浏览状态
end
else
begin
///////////////////2006-03//////////////////////////////////////////////////
ChangeComposeState(true,false);//组建内容不可修改
/////////////////////////////////////////////////////////////////////////
addstate:=false;
end;
end;
if upstate and (is_save=false) then
begin
if Messagedlg('还未保存当前修改的信息,是否要保存',mtConfirmation, [mbYes, mbNo], 0) = mryes then
begin
N_2_saveClick(Sender);//N5Click(Sender);
exit; //回到浏览状态
end
else
begin
///////////////////2006-03//////////////////////////////////////////////////
ChangeComposeState(true,false);//组建内容不可修改
/////////////////////////////////////////////////////////////////////////
upstate:=false;
//unit3.lockcomp;
end;
end;
close;
end;
procedure Tfrm_main.N_2_newcsClick(Sender: TObject); //增加从属信息
var
pagenum:integer;
table_name:string;
begin
///////////////////2006-03//////////////////////////////////////////////////
ChangeComposeState(false,true);//组建内容可修改
///////////////////////////////////////////////////////////////////////////
addstate:=true;
is_save:=false;
pagenum:=pagecontrol1.ActivePageIndex+1;
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select table_name from field_info where page='+inttostr(pagenum));
open;
table_name:=fieldbyname('table_name').AsString;
end;
with dm.ADOQuery1 do //判断是否有该成员的记录信息
begin
close;
sql.Clear;
sql.Add('select prescode from '+table_name+' where prescode='+quotedstr(gencode));
open;
if not eof then
begin
application.MessageBox('该成员的从属信息已经存在,请修改当前信息!','注意',mb_ok);
addstate:=false;
is_save:=true;
exit;
end
else
begin
unit3.AddRecord(table_name,gencode);
end;
end;
end;
procedure Tfrm_main.CBOnChange(Sender: TObject);
begin
end;
procedure Tfrm_main.CkOnChange(Sender: TObject);
begin
ckmod:=true;
end;
procedure Tfrm_main.N_2_delcszxxClick(Sender: TObject);
var
pagenum:integer;
table_name:string;
sqlstr:string;
seafield:String;
begin
if is_mult=true then
begin
if application.MessageBox('确定要删除当前用户该页的从属子信息','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
begin
pagenum:=pagecontrol1.ActivePageIndex+1;
{sqlstr:='select field from field_info where yn=''1'' and page='+inttostr(pagecontrol1.ActivePageIndex+1)+' and lab_name=''序号''';
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
open;
seafield:=fieldbyname('field').AsString;
end;}
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select table_name from field_info where page='+inttostr(pagenum));
open;
table_name:=fieldbyname('table_name').AsString;
end;
if comprow=0 then
comprow:=1;
//sqlstr:='delete from '+table_name+' where prescode='+quotedstr(gencode)+' and '+seafield+'='+quotedstr(stringgrid1.Cells[xhpos,comprow]);
sqlstr:='delete from '+table_name+' where XH='+stringgrid1.Cells[0,comprow];
showmessage(sqlstr);
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
execsql;
end;
unit3.UpdateStringGrid;
unit3.ClearSGSheet;
end;
end
else
begin
if application.MessageBox('确定要删除当前用户该页的从属信息','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
begin
pagenum:=pagecontrol1.ActivePageIndex+1;
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select table_name from field_info where page='+inttostr(pagenum));
open;
end;
sqlstr:='delete from '+ dm.ADOQuery1.fieldbyname('table_name').AsString +' where prescode='+quotedstr(gencode);
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
execsql;
end;
end;
unit3.ClearSGSheet;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -