use strict;
use warnings;
use Tk;
use Tk::HList;
use utf8;
system ("cls");
my ($directorio, @archivos);
#############Elementos que conforman las ventanas#########################################################################
my $FormaPrincipal = MainWindow->new(-title=>"Interfaz Gráfica");
my $FrameIzquierda = $FormaPrincipal->Frame(-borderwidth => 3, -relief => 'raised');
my $FrameCentro = $FormaPrincipal ->Frame(-borderwidth => 3, -relief => 'raised');
my $FrameDerecha = $FormaPrincipal ->Frame(-borderwidth => 3, -relief => 'raised');
$FrameIzquierda ->pack(-side => 'left', -expand => 1, -fill => 'both');
$FrameCentro ->pack(-side =>'left', -expand => 1, -fill => 'both');
$FrameDerecha ->pack(-side => 'left', -expand => 1, -fill => 'both');
$FrameIzquierda -> Button(
-text => "SELECIONA\nDIRECTORIO",
-command => sub{
$directorio =$FormaPrincipal->chooseDirectory(
-initialdir => 'P:\Gerencia de Mercado\Restringido\MONITOREO DEL MM',
-title => 'Elija Driectorio'
);
if (defined($directorio)){
opendir(DIR, $directorio);
undef(@archivos);
foreach(readdir(DIR)){
if ($_=~ m/\.xls+$/ or $_ =~ m/\.xlsx+$/){
push (@archivos,$_);
}
}
close(DIR);
}
},
-width => 10,
-height => 5,
-foreground => "red",
-background => "blue",
)->pack(-expand=> 1, -fill=> "both", -side => "top" );
my $Listbox = $FrameIzquierda->Scrolled("Listbox",
-background => "white",
-scrollbars => "se",
-height => "20",
-selectmode => "extended",
-listvariable => \@archivos
)->pack(-side => "top", -expand=> 1, -fill=> "both");
$FrameIzquierda -> Button(
-text => "Analiza\nArchivos",
-command => \&Analisis,
-height => 5
)->pack(-side => "left" );
my $FrameBotones = $FrameDerecha -> Frame(
-borderwidth => 3,
-relief => 'sunken'
)->pack(-side => 'top', -fill=> 'both');
$FrameBotones -> Button(
-text => "Salir",
-command => sub{exit()},
-height => 5,
-width => 40
)->grid(-column => 0, -row=> 7, -sticky=>'nsew',-columnspan=>'3');
MainLoop;
#################################################################################################################
sub Analisis{
my @indices = $Listbox-> curselection;
if (scalar(@indices)!=0){
foreach my $indice(@indices){
my $archivo = $archivos[$indice];
my $rutacompleta = $directorio.'/'.$archivo;
print "$rutacompleta\n";
}
}
else{
$FormaPrincipal->messageBox(-title => 'Error',
-message => 'Seleccione Archivo',
-type => 'Ok');
}
}