desarrollosconsejeria/adtos-server/1.7-0/adtos/gruposservidores.pas @ 23a384b9
23a384b9 | Elisa | unit gruposservidores;
|
|
{$mode objfpc}{$H+}
|
|||
interface
|
|||
uses
|
|||
globales,inicio,Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
|
|||
ExtCtrls, Grids, StdCtrls, Menus,IniFiles, Buttons;
|
|||
type
|
|||
{ TfrmGruposServidores }
|
|||
TfrmGruposServidores = class(TForm)
|
|||
btAnadirGrupo: TButton;
|
|||
btAnadirEquipo: TButton;
|
|||
btAnadirEquipoDominio: TButton;
|
|||
btnEliminarEquipo: TButton;
|
|||
btnVolver: TButton;
|
|||
mnuNuevo: TButton;
|
|||
btnLimpiarEquipos: TButton;
|
|||
btnModificarGrupo: TButton;
|
|||
btnEliminarGrupo: TButton;
|
|||
cboDominios: TComboBox;
|
|||
EdGrupo: TEdit;
|
|||
Image1: TImage;
|
|||
Image2: TImage;
|
|||
Label1: TLabel;
|
|||
Label81: TLabel;
|
|||
Label82: TLabel;
|
|||
Label83: TLabel;
|
|||
Label84: TLabel;
|
|||
Label85: TLabel;
|
|||
ltsGrupos: TListBox;
|
|||
sgED: TStringGrid;
|
|||
sgEquiposGrupo: TStringGrid;
|
|||
spArriba: TSpeedButton;
|
|||
spAbajo: TSpeedButton;
|
|||
procedure btAnadirEquipoClick(Sender: TObject);
|
|||
procedure btAnadirEquipoDominioClick(Sender: TObject);
|
|||
procedure btAnadirGrupoClick(Sender: TObject);
|
|||
procedure btMoverAbajoClick(Sender: TObject);
|
|||
procedure btMoverArribaClick(Sender: TObject);
|
|||
procedure btnEliminarEquipoClick(Sender: TObject);
|
|||
procedure btnEliminarGrupoClick(Sender: TObject);
|
|||
procedure btnLimpiarEquiposClick(Sender: TObject);
|
|||
procedure btnModificarGrupoClick(Sender: TObject);
|
|||
procedure btnVolverClick(Sender: TObject);
|
|||
procedure cboDominiosChange(Sender: TObject);
|
|||
procedure cboDominiosKeyPress(Sender: TObject; var Key: char);
|
|||
procedure FormActivate(Sender: TObject);
|
|||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
|||
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|||
procedure FormCreate(Sender: TObject);
|
|||
procedure FormShow(Sender: TObject);
|
|||
procedure ltsGruposClick(Sender: TObject);
|
|||
procedure mnuNuevoClick(Sender: TObject);
|
|||
procedure sgEDSelectCell(Sender: TObject; aCol, aRow: Integer;
|
|||
var CanSelect: Boolean);
|
|||
procedure sgEquiposGrupoSelectCell(Sender: TObject; aCol, aRow: Integer;
|
|||
var CanSelect: Boolean);
|
|||
procedure spArribaClick(Sender: TObject);
|
|||
private
|
|||
procedure AnadirGrupo;
|
|||
procedure cargaListaEquipos(mdominio: string);
|
|||
procedure CargarListaGrupos();
|
|||
procedure EliminarEquipo();
|
|||
procedure EliminarGrupo();
|
|||
procedure EscribirficheroCursos;
|
|||
procedure LimpiarGrupos();
|
|||
procedure ModificarGrupo;
|
|||
procedure mueveAbajo();
|
|||
procedure mueveArriba();
|
|||
function ValidarDatosGrupo(): boolean;
|
|||
{ private declarations }
|
|||
public
|
|||
{ public declarations }
|
|||
end;
|
|||
var
|
|||
frmGruposServidores: TfrmGruposServidores;
|
|||
f_fila:integer=-1;
|
|||
f_grupo:integer=-1;
|
|||
f_equipo:integer=-1;
|
|||
f_gruposEquipos:array of TGruposDeEquipos;
|
|||
f_numGrupo:integer=0;
|
|||
implementation
|
|||
{ TfrmGruposServidores }
|
|||
procedure TfrmGruposServidores.LimpiarGrupos();
|
|||
var
|
|||
mygrupo:integer;
|
|||
begin
|
|||
mygrupo:=ltsGrupos.ItemIndex;
|
|||
if (ltsGrupos.Items.count=0) or (mygrupo=-1) then
|
|||
begin
|
|||
mensaje('Selecciona un grupo',aceptar);
|
|||
exit;
|
|||
end;
|
|||
if mensaje('¿Desea eliminar todos los equipos de este grupo ' +ltsGrupos.Items[mygrupo]+'?',sino)=2 then exit;
|
|||
sgEquiposGrupo.Clean;
|
|||
sgEquiposGrupo.RowCount:=1;
|
|||
f_gruposEquipos[mygrupo].NumeroEquipos:=sgEquiposGrupo.RowCount-1;
|
|||
SetLength(f_gruposEquipos[mygrupo].Host,f_gruposEquipos[mygrupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[mygrupo].MAC,f_gruposEquipos[mygrupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[mygrupo].IP,f_gruposEquipos[mygrupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[mygrupo].curso,f_gruposEquipos[mygrupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[mygrupo].Dominio,f_gruposEquipos[mygrupo].NumeroEquipos);
|
|||
//btnEliminarGrupo.Enabled:=false;
|
|||
//btnModificarGrupo.Enabled:=false;
|
|||
end;
|
|||
procedure TfrmGruposServidores.EliminarGrupo();
|
|||
var
|
|||
mgrupo:String;
|
|||
misgrupos:array of TGruposDeEquipos;
|
|||
i,j,z:integer;
|
|||
begin
|
|||
f_grupo:=ltsGrupos.ItemIndex;
|
|||
mgrupo:= f_gruposEquipos[f_grupo].Nombre;
|
|||
if mensaje('¿Desea eliminar el grupo ' +mgrupo+'?',sino)=2 then exit;
|
|||
setlength(misgrupos, f_numGrupo);
|
|||
////writeln( 'El grupo elegido es ', f_grupo);
|
|||
j:=0;
|
|||
for i:=0 to f_numGrupo-1 do
|
|||
begin
|
|||
if i<>f_grupo then
|
|||
begin
|
|||
misgrupos[j].nombre:= f_gruposEquipos[i].Nombre;
|
|||
misgrupos[j].NumeroEquipos:=f_gruposEquipos[i].NumeroEquipos;
|
|||
setlength(misgrupos[j].Host,f_gruposEquipos[i].NumeroEquipos);
|
|||
setlength(misgrupos[j].IP,f_gruposEquipos[i].NumeroEquipos);
|
|||
setlength(misgrupos[j].MAC,f_gruposEquipos[i].NumeroEquipos);
|
|||
setlength(misgrupos[j].Dominio,f_gruposEquipos[i].NumeroEquipos);
|
|||
setlength(misgrupos[j].curso,f_gruposEquipos[i].NumeroEquipos);
|
|||
for z:=0 to misgrupos[j].NumeroEquipos -1 do
|
|||
begin
|
|||
misgrupos[j].Host[z]:=f_gruposEquipos[i].Host[z];
|
|||
misgrupos[j].IP[z]:=f_gruposEquipos[i].ip[z];
|
|||
misgrupos[j].MAC[z]:=f_gruposEquipos[i].mac[z];
|
|||
misgrupos[j].Dominio[z]:=f_gruposEquipos[i].dominio[z];
|
|||
misgrupos[j].curso[z]:=f_gruposEquipos[i].curso[z];
|
|||
end;
|
|||
j:=j+1;
|
|||
end;
|
|||
end;
|
|||
f_gruposEquipos:=misgrupos;
|
|||
f_numGrupo:=f_numGrupo-1;
|
|||
SetLength(f_gruposEquipos,f_numGrupo);
|
|||
ltsGrupos.Items.Delete(ltsGrupos.itemindex);
|
|||
ltsGrupos.ItemIndex:=-1;
|
|||
mensaje('El grupo '+ mgrupo +' ha sido eliminado',aceptar);
|
|||
btnEliminarGrupo.Enabled:=false;
|
|||
btnModificarGrupo.Enabled:=false;
|
|||
EdGrupo.Text:='';
|
|||
sgEquiposGrupo.Clean;
|
|||
sgEquiposGrupo.RowCount:=1;
|
|||
end;
|
|||
procedure TfrmGruposServidores.ModificarGrupo;
|
|||
var
|
|||
grupo:string;
|
|||
i:integer;
|
|||
begin
|
|||
if (ltsGrupos.Items.count=0) or (ltsGrupos.ItemIndex=-1) then exit;
|
|||
grupo:=EdGrupo.text;
|
|||
if mensaje('¿Desea modificar el grupo ' +grupo+'?',sino)=2 then exit;
|
|||
ltsGrupos.Items[f_grupo]:=grupo;
|
|||
f_gruposEquipos[f_grupo].Nombre:=grupo;
|
|||
f_gruposEquipos[f_grupo].NumeroEquipos:=sgEquiposGrupo.RowCount-1;
|
|||
SetLength(f_gruposEquipos[f_grupo].Host,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[f_grupo].MAC,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[f_grupo].IP,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[f_grupo].curso,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[f_grupo].Dominio,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
for i:=0 to f_gruposEquipos[f_grupo].NumeroEquipos-1 do
|
|||
begin
|
|||
f_gruposEquipos[f_grupo].Host[i]:=sgEquiposGrupo.Cells[1,i+1];
|
|||
f_gruposEquipos[f_grupo].IP[i]:=sgEquiposGrupo.Cells[2,i+1];
|
|||
f_gruposEquipos[f_grupo].MAC[i]:=sgEquiposGrupo.Cells[3,i+1];
|
|||
f_gruposEquipos[f_grupo].Dominio[i]:=sgEquiposGrupo.Cells[4,i+1];
|
|||
f_gruposEquipos[f_grupo].curso[i]:=sgEquiposGrupo.Cells[5,i+1];
|
|||
end;
|
|||
mensaje('El grupo ' + EdGrupo.Text + ' ha sido modificado correctamente',aceptar);
|
|||
end;
|
|||
procedure TfrmGruposServidores.CargarListaGrupos();
|
|||
var
|
|||
i:integer;
|
|||
begin
|
|||
if f_numGrupo=0 then exit;;
|
|||
ltsGrupos.Clear;
|
|||
for i:=0 to f_numGrupo-1 do
|
|||
ltsGrupos.Items.Add(f_gruposEquipos[i].nombre);
|
|||
end;
|
|||
procedure TfrmGruposServidores.EscribirficheroCursos;
|
|||
var
|
|||
Mifichero:TMemIniFile;
|
|||
j,i:integer;
|
|||
begin
|
|||
try
|
|||
if FileExists('/var/lib/adtos/grupos.ini') then
|
|||
DeleteFile('/var/lib/adtos/grupos.ini');
|
|||
Mifichero := TMemIniFile.Create('/var/lib/adtos/grupos.ini');
|
|||
try
|
|||
with Mifichero do
|
|||
begin
|
|||
for i:=0 to high(f_gruposEquipos) do
|
|||
WriteString('Grupos','Grupo_'+inttostr(i),f_gruposEquipos[i].nombre);
|
|||
WriteInteger('Grupos','Numero_Grupos',f_numGrupo);
|
|||
for i:=0 to high(f_gruposEquipos) do
|
|||
begin
|
|||
WriteString('Grupo_'+inttostr(i),'Nombre',f_gruposEquipos[i].nombre);
|
|||
WriteInteger('Grupo_'+inttostr(i),'Numero_Equipos',f_gruposEquipos[i].NumeroEquipos);
|
|||
////writeln('Grupo: ','Grupo_'+inttostr(i),'Numero_Equipos: ',f_gruposEquipos[i].NumeroEquipos);
|
|||
for j:=0 to f_gruposEquipos[i].NumeroEquipos-1 do
|
|||
begin
|
|||
WriteString('Grupo_'+inttostr(i),'Host_'+inttostr(j), f_gruposEquipos[i].Host[j]);
|
|||
WriteString('Grupo_'+inttostr(i),'IP_'+inttostr(j), f_gruposEquipos[i].IP[j]);
|
|||
WriteString('Grupo_'+inttostr(i),'MAC_'+inttostr(j), f_gruposEquipos[i].MAC[j]);
|
|||
WriteString('Grupo_'+inttostr(i),'Dominio_'+inttostr(j), f_gruposEquipos[i].Dominio[j]);
|
|||
WriteString('Grupo_'+inttostr(i),'Curso_'+inttostr(j), f_gruposEquipos[i].curso[j]);
|
|||
end;
|
|||
end;
|
|||
UpdateFile;
|
|||
end;
|
|||
finally
|
|||
Mifichero.free;
|
|||
end;
|
|||
except
|
|||
//Mensaje(MEN_ERROR_GRUPOS,aceptar);
|
|||
end;
|
|||
end;
|
|||
procedure TfrmGruposServidores.AnadirGrupo;
|
|||
var
|
|||
nc,i:integer;
|
|||
begin
|
|||
f_numGrupo:=f_numGrupo+1;
|
|||
SetLength(f_gruposEquipos,f_numGrupo);
|
|||
nc:=f_numGrupo-1;
|
|||
f_gruposEquipos[nc].Nombre:=EdGrupo.text;
|
|||
f_gruposEquipos[nc].NumeroEquipos:=sgEquiposGrupo.RowCount-1;
|
|||
SetLength(f_gruposEquipos[nc].Host,f_gruposEquipos[nc].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[nc].MAC,f_gruposEquipos[nc].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[nc].IP,f_gruposEquipos[nc].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[nc].curso,f_gruposEquipos[nc].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[nc].Dominio,f_gruposEquipos[nc].NumeroEquipos);
|
|||
for i:=0 to f_gruposEquipos[nc].NumeroEquipos-1 do
|
|||
begin
|
|||
f_gruposEquipos[nc].Host[i]:=sgEquiposGrupo.Cells[1,i+1];
|
|||
f_gruposEquipos[nc].IP[i]:=sgEquiposGrupo.Cells[2,i+1];
|
|||
f_gruposEquipos[nc].MAC[i]:=sgEquiposGrupo.Cells[3,i+1];
|
|||
f_gruposEquipos[nc].Dominio[i]:=sgEquiposGrupo.Cells[4,i+1];
|
|||
f_gruposEquipos[nc].curso[i]:=sgEquiposGrupo.Cells[5,i+1];
|
|||
end;
|
|||
ltsGrupos.Items.add(EdGrupo.text);
|
|||
sgEquiposGrupo.RowCount:=1;
|
|||
EdGrupo.Text:='';
|
|||
end;
|
|||
procedure TfrmGruposServidores.cargaListaEquipos(mdominio:string);
|
|||
var
|
|||
j,i: integer;
|
|||
begin
|
|||
sgED.Clean;
|
|||
sgEd.RowCount:=g_numero_equipos_registrados+1;
|
|||
j:=0;
|
|||
for i:=0 to g_numero_equipos_registrados -1 do
|
|||
begin
|
|||
if (Trim(g_EquiposDominio[i].Host)<>'') and ((g_EquiposDominio[i].Dominio=mdominio) or (mdominio='Todos')) then
|
|||
begin
|
|||
sgED.Cells[0,j+1]:=inttostr(j);
|
|||
sgED.Cells[1,j+1]:=g_EquiposDominio[i].Host;
|
|||
sgED.Cells[2,j+1]:=g_EquiposDominio[i].IP;
|
|||
sgED.Cells[3,j+1]:=g_EquiposDominio[i].MAC;
|
|||
sgED.Cells[4,j+1]:=g_EquiposDominio[i].Dominio;
|
|||
sgED.Cells[5,j+1]:=g_EquiposDominio[i].Curso;
|
|||
inc(j);
|
|||
end
|
|||
end;
|
|||
if j>0 then sgEd.RowCount:=j+1 else sgEd.RowCount:=1;
|
|||
end;
|
|||
procedure TfrmGruposServidores.FormCreate(Sender: TObject);
|
|||
var
|
|||
i:integer;
|
|||
begin
|
|||
top:=13;
|
|||
left:=(screen.Width-width) div 2;
|
|||
f_gruposEquipos:=g_GruposEquipos;
|
|||
f_numGrupo:=g_NumGrupos;
|
|||
cboDominios.clear;
|
|||
for i:=0 to High(g_listadominios) do
|
|||
cboDominios.Items.Add(g_listadominios[i]);
|
|||
cboDominios.Items.Add('Todos');
|
|||
cboDominios.Text:='Todos';
|
|||
cargaListaEquipos('Todos');
|
|||
end;
|
|||
procedure TfrmGruposServidores.FormShow(Sender: TObject);
|
|||
begin
|
|||
CargarListaGrupos();
|
|||
end;
|
|||
procedure TfrmGruposServidores.ltsGruposClick(Sender: TObject);
|
|||
var
|
|||
migrupo:string;
|
|||
i:integer;
|
|||
begin
|
|||
if ltsGrupos.itemindex=-1 then exit;
|
|||
migrupo:=ltsGrupos.Items[ltsGrupos.itemindex];
|
|||
f_grupo:=ltsGrupos.itemindex;
|
|||
EdGrupo.text:=migrupo;
|
|||
sgEquiposGrupo.Clean;
|
|||
sgEquiposGrupo.RowCount:=f_gruposEquipos[f_grupo].NumeroEquipos+1;
|
|||
for i:=0 to f_gruposEquipos[f_grupo].NumeroEquipos-1 do
|
|||
begin
|
|||
sgEquiposGrupo.Cells[0,i+1]:=inttostr(i);
|
|||
sgEquiposGrupo.Cells[1,i+1]:=f_gruposEquipos[f_grupo].Host[i];
|
|||
sgEquiposGrupo.Cells[2,i+1]:=f_gruposEquipos[f_grupo].IP[i];
|
|||
sgEquiposGrupo.Cells[3,i+1]:=f_gruposEquipos[f_grupo].MAC[i];
|
|||
sgEquiposGrupo.Cells[4,i+1]:=f_gruposEquipos[f_grupo].Dominio[i];
|
|||
sgEquiposGrupo.Cells[5,i+1]:=f_gruposEquipos[f_grupo].curso[i];
|
|||
end;
|
|||
btnEliminarGrupo.Enabled:=true;
|
|||
btnModificarGrupo.Enabled:=true;
|
|||
end;
|
|||
procedure TfrmGruposServidores.mnuNuevoClick(Sender: TObject);
|
|||
begin
|
|||
EdGrupo.Text:='';
|
|||
ltsGrupos.ItemIndex:=-1;
|
|||
sgEquiposGrupo.Clean();
|
|||
sgEquiposGrupo.RowCount:=1;
|
|||
EdGrupo.SetFocus;
|
|||
end;
|
|||
procedure TfrmGruposServidores.sgEDSelectCell(Sender: TObject; aCol,
|
|||
aRow: Integer; var CanSelect: Boolean);
|
|||
begin
|
|||
f_fila:=aRow;
|
|||
end;
|
|||
procedure TfrmGruposServidores.sgEquiposGrupoSelectCell(Sender: TObject; aCol,
|
|||
aRow: Integer; var CanSelect: Boolean);
|
|||
begin
|
|||
f_equipo:=aRow;
|
|||
end;
|
|||
procedure TfrmGruposServidores.spArribaClick(Sender: TObject);
|
|||
begin
|
|||
end;
|
|||
procedure TfrmGruposServidores.FormActivate(Sender: TObject);
|
|||
begin
|
|||
if frmMain.Visible then frmMain.hide;
|
|||
end;
|
|||
procedure TfrmGruposServidores.cboDominiosChange(Sender: TObject);
|
|||
begin
|
|||
cargaListaEquipos(cboDominios.Text);
|
|||
end;
|
|||
procedure TfrmGruposServidores.cboDominiosKeyPress(Sender: TObject;
|
|||
var Key: char);
|
|||
begin
|
|||
key:=#0;
|
|||
end;
|
|||
procedure TfrmGruposServidores.btAnadirEquipoDominioClick(Sender: TObject);
|
|||
var
|
|||
ne,ng,numGrupo:integer;
|
|||
begin
|
|||
if (sgED.RowCount > 1) and (f_fila>0) then
|
|||
begin
|
|||
numGrupo:= sgEquiposGrupo.RowCount;
|
|||
sgEquiposGrupo.RowCount:=sgEquiposGrupo.RowCount+1;
|
|||
sgEquiposGrupo.Cells[0,numGrupo]:=inttostr(numGrupo-1);
|
|||
sgEquiposGrupo.Cells[1,numGrupo]:=sgED.Cells[1,f_fila];
|
|||
sgEquiposGrupo.Cells[2,numGrupo]:=sgED.Cells[2,f_fila];
|
|||
sgEquiposGrupo.Cells[3,numGrupo]:=sgED.Cells[3,f_fila];
|
|||
sgEquiposGrupo.Cells[4,numGrupo]:=sgED.Cells[4,f_fila];
|
|||
sgEquiposGrupo.Cells[5,numGrupo]:=sgED.Cells[5,f_fila];
|
|||
////writeln('mi fila es ', numGrupo-1);
|
|||
end;
|
|||
if ltsGrupos.ItemIndex<>-1 then
|
|||
begin
|
|||
ng:=ltsGrupos.ItemIndex;
|
|||
ne:=f_gruposEquipos[ng].NumeroEquipos;
|
|||
f_gruposEquipos[ng].NumeroEquipos:= f_gruposEquipos[ng].NumeroEquipos+1;
|
|||
SetLength(f_gruposEquipos[ng].Host,f_gruposEquipos[ng].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[ng].MAC,f_gruposEquipos[ng].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[ng].IP,f_gruposEquipos[ng].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[ng].curso,f_gruposEquipos[ng].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[ng].Dominio,f_gruposEquipos[ng].NumeroEquipos);
|
|||
f_gruposEquipos[ng].Host[ne]:=sgED.Cells[1,f_fila];
|
|||
f_gruposEquipos[ng].IP[ne]:=sgED.Cells[2,f_fila];
|
|||
f_gruposEquipos[ng].MAC[ne]:=sgED.Cells[3,f_fila];
|
|||
f_gruposEquipos[ng].Dominio[ne]:=sgED.Cells[4,f_fila];
|
|||
f_gruposEquipos[ng].Curso[ne]:=sgED.Cells[5,f_fila];
|
|||
end;
|
|||
end;
|
|||
procedure TfrmGruposServidores.btAnadirEquipoClick(Sender: TObject);
|
|||
begin
|
|||
sgEquiposGrupo.RowCount:=sgEquiposGrupo.RowCount+1;
|
|||
if ltsGrupos.ItemIndex=-1 then exit;
|
|||
f_grupo:=ltsGrupos.ItemIndex;
|
|||
f_gruposEquipos[f_grupo].NumeroEquipos:=sgEquiposGrupo.RowCount-1;
|
|||
SetLength(f_gruposEquipos[f_grupo].Host,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[f_grupo].MAC,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[f_grupo].IP,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[f_grupo].curso,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
SetLength(f_gruposEquipos[f_grupo].Dominio,f_gruposEquipos[f_grupo].NumeroEquipos);
|
|||
end;
|
|||
Function TfrmGruposServidores.ValidarDatosGrupo():boolean;
|
|||
var
|
|||
TextoMensaje:string;
|
|||
begin
|
|||
if length(trim(EdGrupo.text)) <1 then
|
|||
TextoMensaje:='Indica un nombre para este grupo'
|
|||
else
|
|||
TextoMensaje:='';
|
|||
result:=TextoMensaje='';
|
|||
if not result then
|
|||
mensaje(TextoMensaje,aceptar);
|
|||
end;
|
|||
procedure TfrmGruposServidores.btAnadirGrupoClick(Sender: TObject);
|
|||
var
|
|||
grupoexiste:boolean;
|
|||
i:integer;
|
|||
begin
|
|||
grupoexiste:=false;
|
|||
if ValidarDatosGrupo() then
|
|||
begin
|
|||
/////writeln(sgEquiposGrupo.RowCount);
|
|||
for i:=0 to High(f_gruposEquipos) do
|
|||
if EdGrupo.text = f_gruposEquipos[i].nombre then
|
|||
grupoexiste:=true;
|
|||
if grupoexiste then
|
|||
mensaje('El grupo ' + EdGrupo.text + ' ya existe. Haz clic en modificar si deseas realizar algún cambio',aceptar)
|
|||
else if sgEquiposGrupo.RowCount<2 then
|
|||
mensaje ('El grupo no contiene ningún equipo',aceptar)
|
|||
else
|
|||
AnadirGrupo();
|
|||
end;
|
|||
end;
|
|||
procedure TfrmGruposServidores.btMoverAbajoClick(Sender: TObject);
|
|||
begin
|
|||
if f_equipo>=sgEquiposGrupo.RowCount-1 then exit;
|
|||
if(f_equipo=-1) then
|
|||
mensaje('Selecciona el equipo que deseas mover',aceptar)
|
|||
else
|
|||
mueveAbajo
|
|||
end;
|
|||
procedure TfrmGruposServidores.btMoverArribaClick(Sender: TObject);
|
|||
begin
|
|||
if sgEquiposGrupo.RowCount<2 then exit;
|
|||
if(f_equipo=-1) then
|
|||
mensaje('Selecciona el equipo que deseas mover',aceptar)
|
|||
else
|
|||
mueveArriba()
|
|||
end;
|
|||
procedure TfrmGruposServidores.btnEliminarEquipoClick(Sender: TObject);
|
|||
begin
|
|||
if sgEquiposGrupo.RowCount<2 then
|
|||
mensaje('Este grupo no contiene ningún equipo',aceptar)
|
|||
else if(f_equipo=-1) then
|
|||
mensaje('Selecciona el equipo que deseas eliminar de este grupo ',aceptar)
|
|||
else
|
|||
EliminarEquipo()
|
|||
end;
|
|||
procedure TfrmGruposServidores.mueveArriba();
|
|||
var
|
|||
destino:integer;
|
|||
host,ip,mac,dominio,curso:String;
|
|||
begin
|
|||
//f_equipo:=-1;
|
|||
destino:=f_equipo-1;
|
|||
//writeln('f_equipo ',f_equipo ,'destino ',destino);
|
|||
if destino<1 then destino:=1;
|
|||
if (destino=f_equipo) or (f_equipo<1) then exit;
|
|||
sgEquiposGrupo.MoveColRow(false,f_equipo,destino);
|
|||
if ltsGrupos.ItemIndex=-1 then exit;
|
|||
f_Grupo:=ltsGrupos.ItemIndex;
|
|||
//writeln('f_equipo ',f_equipo ,'destino ',destino);
|
|||
host:=f_gruposEquipos[f_Grupo].Host[f_equipo-1];
|
|||
ip:=f_gruposEquipos[f_Grupo].ip[f_equipo-1];
|
|||
mac:=f_gruposEquipos[f_Grupo].mac[f_equipo-1];
|
|||
curso:=f_gruposEquipos[f_Grupo].curso[f_equipo-1];
|
|||
dominio:=f_gruposEquipos[f_Grupo].Dominio[f_equipo-1];
|
|||
f_gruposEquipos[f_Grupo].Host[f_equipo-1]:=f_gruposEquipos[f_Grupo].Host[destino-1];
|
|||
f_gruposEquipos[f_Grupo].ip[f_equipo-1]:=f_gruposEquipos[f_Grupo].ip[destino-1];
|
|||
f_gruposEquipos[f_Grupo].mac[f_equipo-1]:=f_gruposEquipos[f_Grupo].mac[destino-1];
|
|||
f_gruposEquipos[f_Grupo].curso[f_equipo-1]:=f_gruposEquipos[f_Grupo].curso[destino-1];
|
|||
f_gruposEquipos[f_Grupo].Dominio[f_equipo-1]:=f_gruposEquipos[f_Grupo].Dominio[destino-1];
|
|||
f_gruposEquipos[f_Grupo].Host[destino-1]:=host;
|
|||
f_gruposEquipos[f_Grupo].IP[destino-1]:=ip;
|
|||
f_gruposEquipos[f_Grupo].mac[destino-1]:=mac;
|
|||
f_gruposEquipos[f_Grupo].curso[destino-1]:=curso;
|
|||
f_gruposEquipos[f_Grupo].Dominio[destino-1]:=dominio;
|
|||
f_equipo:=destino;
|
|||
end;
|
|||
procedure TfrmGruposServidores.mueveAbajo();
|
|||
var
|
|||
destino:integer;
|
|||
host,ip,mac,dominio,curso:String;
|
|||
begin
|
|||
//f_equipo:=-1;
|
|||
destino:=f_equipo+1;
|
|||
//writeln('f_equipo ',f_equipo ,'destino ',destino,'sgEquiposGrupo.RowCount ',sgEquiposGrupo.RowCount);
|
|||
if destino> sgEquiposGrupo.RowCount-1 then destino:=sgEquiposGrupo.RowCount-1;
|
|||
if (destino=f_equipo) or (f_equipo>sgEquiposGrupo.RowCount-1) then exit;
|
|||
sgEquiposGrupo.MoveColRow(false,f_equipo,destino);
|
|||
if ltsGrupos.ItemIndex=-1 then exit;
|
|||
f_Grupo:=ltsGrupos.ItemIndex;
|
|||
host:=f_gruposEquipos[f_Grupo].Host[f_equipo-1];
|
|||
ip:=f_gruposEquipos[f_Grupo].ip[f_equipo-1];
|
|||
mac:=f_gruposEquipos[f_Grupo].mac[f_equipo-1];
|
|||
curso:=f_gruposEquipos[f_Grupo].curso[f_equipo-1];
|
|||
dominio:=f_gruposEquipos[f_Grupo].Dominio[f_equipo-1];
|
|||
f_gruposEquipos[f_Grupo].Host[f_equipo-1]:=f_gruposEquipos[f_Grupo].Host[destino-1];
|
|||
f_gruposEquipos[f_Grupo].ip[f_equipo-1]:=f_gruposEquipos[f_Grupo].ip[destino-1];
|
|||
f_gruposEquipos[f_Grupo].mac[f_equipo-1]:=f_gruposEquipos[f_Grupo].mac[destino-1];
|
|||
f_gruposEquipos[f_Grupo].curso[f_equipo-1]:=f_gruposEquipos[f_Grupo].curso[destino-1];
|
|||
f_gruposEquipos[f_Grupo].Dominio[f_equipo-1]:=f_gruposEquipos[f_Grupo].Dominio[destino-1];
|
|||
f_gruposEquipos[f_Grupo].Host[destino-1]:=host;
|
|||
f_gruposEquipos[f_Grupo].IP[destino-1]:=ip;
|
|||
f_gruposEquipos[f_Grupo].mac[destino-1]:=mac;
|
|||
f_gruposEquipos[f_Grupo].curso[destino-1]:=curso;
|
|||
f_gruposEquipos[f_Grupo].Dominio[destino-1]:=dominio;
|
|||
f_equipo:=destino;
|
|||
end;
|
|||
procedure TfrmGruposServidores.EliminarEquipo();
|
|||
var
|
|||
migrupo:TGruposDeEquipos;
|
|||
ne,numequ,i,j:integer;
|
|||
begin
|
|||
ne:=sgEquiposGrupo.Row;
|
|||
sgEquiposGrupo.DeleteColRow(false,ne);
|
|||
if ltsGrupos.ItemIndex=-1 then exit;
|
|||
f_Grupo:=ltsGrupos.ItemIndex;
|
|||
migrupo.nombre:= f_gruposEquipos[f_Grupo].Nombre;
|
|||
numequ:=f_gruposEquipos[f_Grupo].NumeroEquipos;
|
|||
migrupo.NumeroEquipos:=numequ;
|
|||
setlength(migrupo.Host,numequ);
|
|||
setlength(migrupo.IP,numequ);
|
|||
setlength(migrupo.MAC,numequ);
|
|||
setlength(migrupo.Dominio,numequ);
|
|||
setlength(migrupo.curso,numequ);
|
|||
j:=0;
|
|||
for i:=0 to f_gruposEquipos[f_Grupo].NumeroEquipos-1 do
|
|||
begin
|
|||
if i<>ne then
|
|||
begin
|
|||
migrupo.Host[j]:=f_gruposEquipos[f_Grupo].Host[i];
|
|||
migrupo.IP[j]:=f_gruposEquipos[f_Grupo].ip[i];
|
|||
migrupo.MAC[j]:=f_gruposEquipos[f_Grupo].mac[i];
|
|||
migrupo.Dominio[j]:=f_gruposEquipos[f_Grupo].dominio[i];
|
|||
migrupo.curso[j]:=f_gruposEquipos[f_Grupo].curso[i];
|
|||
inc(j)
|
|||
end;
|
|||
end;
|
|||
numequ:=numequ-1;
|
|||
migrupo.NumeroEquipos:=numequ;
|
|||
setlength(migrupo.Host,numequ);
|
|||
setlength(migrupo.IP,numequ);
|
|||
setlength(migrupo.MAC,numequ);
|
|||
setlength(migrupo.Dominio,numequ);
|
|||
setlength(migrupo.curso,numequ);
|
|||
f_gruposEquipos[f_Grupo]:=migrupo;
|
|||
end;
|
|||
procedure TfrmGruposServidores.btnEliminarGrupoClick(Sender: TObject);
|
|||
begin
|
|||
if ltsGrupos.Items.count=0 then
|
|||
mensaje('No hay ningún grupo para eliminar',aceptar)
|
|||
else if ltsGrupos.ItemIndex=-1 then
|
|||
mensaje('Selecciona un grupo',aceptar)
|
|||
else
|
|||
EliminarGrupo()
|
|||
end;
|
|||
procedure TfrmGruposServidores.btnLimpiarEquiposClick(Sender: TObject);
|
|||
begin
|
|||
LimpiarGrupos();
|
|||
end;
|
|||
procedure TfrmGruposServidores.btnModificarGrupoClick(Sender: TObject);
|
|||
begin
|
|||
if ltsGrupos.ItemIndex=-1 then
|
|||
mensaje('Selecciona un grupo',aceptar)
|
|||
else
|
|||
ModificarGrupo();
|
|||
end;
|
|||
procedure TfrmGruposServidores.btnVolverClick(Sender: TObject);
|
|||
begin
|
|||
Close;
|
|||
end;
|
|||
procedure TfrmGruposServidores.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
|||
begin
|
|||
CloseAction:=caFree;
|
|||
end;
|
|||
procedure TfrmGruposServidores.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|||
begin
|
|||
if mensaje('¿Deseas abandonar esta pantalla?',sino)=2 then
|
|||
canclose:=false
|
|||
else
|
|||
begin
|
|||
if mensaje('¿Deseas guardar los cambios realizados?',sino)=1 then
|
|||
begin
|
|||
g_NumGrupos:=f_numGrupo;
|
|||
g_GruposEquipos:=f_gruposEquipos;
|
|||
EscribirficheroCursos();
|
|||
application.ProcessMessages;
|
|||
frmMain.cargaGruposEquipos();
|
|||
end;
|
|||
frmMain.show;
|
|||
hide;
|
|||
end;
|
|||
end;
|
|||
initialization
|
|||
{$I gruposservidores.lrs}
|
|||
end.
|