Thread [TK] MListBox - Aktualisierung der Inhalte (3 answers)
Opened by YAPD at 2016-09-27 18:19

YAPD
 2016-09-27 18:19
#185443 #185443
User since
2015-09-20
146 Artikel
BenutzerIn

user image
Hallo Zusammen,

ich habe mal eine Frage zu dem Modul MListBox.
Und zwar habe ich in meiner TK Anwendung ein
normales Datei - Menu, über das man Datensätze
per .csv Datei importieren kann :

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
my $Fenster_Benutzer_Verwaltung = MainWindow -> new( -title => 'Benutzer - Verwaltung' );

my $Breite = 1184;
my $Hoehe = 318;

$Fenster_Benutzer_Verwaltung -> geometry( $Breite . 'x' . $Hoehe );

my $Leiste = $Top_Level -> Menu( -type => 'menubar' );
$Top_Level -> configure( -menu => $Leiste );

my $Datei_Befehle = $Leiste -> cascade( -label => '~Datei' , -tearoff => 0 );

#-----------------------------------------------------------------------------

my $Auflistung_Benutzer_Inhalte = $Fenster_Benutzer_Verwaltung -> MListbox( );

my $Importierung_Details = $Datei_Befehle -> cget( -menu ) -> Menu( -tearoff => 0 );

$Datei_Befehle -> cascade( -label => "Importierung " , -menu => $Importierung_Details );

$Importierung_Details -> command( -label => "CSV" , -command => [ \&CSV_Importierung , $Fenster_Benutzer_Verwaltung , $Auflistung_Benutzer_Inhalte ] );
$Importierung_Details -> command( -label => "XML" , -command => [ \&Importierung , "XML" ] );

#----------------------------------------------------------------------------


In der Sub - Routine &CSV_Importierung rufe ich in meinem
Modul Parser.pm die Sub - Routine "Parser_CSV_Importierung"
auf, die die Inhalte der ausgewählten Datei per SQL importiert.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sub CSV_Importierung [

my $Fenster_Benutzer_Verwaltung = $_[ 0 ];
my $Auflistung_Benutzer_Inhalte = $_[ 1 ];

print "GUI : $Fenster_Benutzer_Verwaltung" , "\n";
print "ML : $Auflistung_Benutzer_Inhalte" , "\n";

my @ext = ( [ "CSV Files" , [ qw/.csv/ ] ] ,
[ "All Files" , [ '*' ] ] ,

);

my $Rueckmeldung_CSV_Importierung = $Fenster_Benutzer_Verwaltung -> getOpenFile( -filetypes => \@ext , );

&Parser_CSV_Importierung( $Rueckmeldung_CSV_Importierung );
}


Hier ist nun der Knackpunkt. Wenn die Importierung der .CSV erfolgreich
war, gebe ich per return Befehl den Wert "Erfolgreich" zurück.

In diesem Fall soll die Anwendung nun die aktuellen Inhalte der MListBox
löschen, neu einlesen und die MListBox aktuallisieren, so dass die aktuellen ( neuen ) Inhalte auch angezeigt werden ( ohne, dass ich die
Anwendung neu starten muss.

Ich habe es folgendermaßen probiert :

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
my $Rueckmeldung_CSV_Importierung = &Parser_CSV_Importierung( $Aufruf_CSV_Importierung );

if( $Rueckmeldung_CSV_Importierung eq "Erfolgreich" )
{
$Auflistung_Benutzer_Inhalte -> deleteEntry( 0 , end );

# Sub - Routine für die Füllung der MListbox Einträge
&ML_Fuellung_Eintraege( $Auflistung_Benutzer_Inhalte );

$Auflistung_Benutzer_Inhalte -> update( );
}


Allerdings ohne Erfolg. Ich habe mir auch schon das Modul
Tk::After angeschaut, komme da aber nicht weiter.

Ich hoffe, ich habe es Euch verständlich erklärt und hoffe,
dass ihr einen Tipp für mich habt, wie ich meine Vorstellung
realisieren kann.

Vielen Dank & Viele Grüße
YAPD
Yet Another Perl Developer

View full thread [TK] MListBox - Aktualisierung der Inhalte