WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

uitable filtern / sortieren

 

Kai_K
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 22:18     Titel: uitable filtern / sortieren
  Antworten mit Zitat      
Hallo Zusammen,

weiß jemand von euch, ob es (mittlerweile - Matlab 2013b) die Möglichkeit gibt, eine uitable in einer GUI zu filtern und zu sortieren?

Dazu habe ich bisher die Möglichkeit der jtable [url] http://undocumentedmatlab.com/blog/uitable-sorting/ [/url] gefunden, jedoch muss ich zugeben, dass ich damit nicht ganz zurecht komme.
Die erste Spalte der Tabelle besteht aus Checkboxen.

Mit der Version 2013b wurde das Format "table" eingeführt. Dieses kann alles, was ich gern hätte. Kann man sich solch eine table anstelle einer uitable anzeigen lassen?

Oder hat jemand noch einen anderen Vorschlag?

Besten Dank mal wieder im Vorras,

Viele Grüße,
Kai
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.10.2013, 09:44     Titel: Re: uitable filtern / sortieren
  Antworten mit Zitat      
Hallo Kai_K,

Yair's Tool ist meiner Ansicht nach die beste Lösung. Deswegen schlage ich vor, Du erklärst, womit Du da genau "nicht ganz zurecht kommst". Wenn es offene Fragen gibt, kann man ihn auch direkt kontaktieren.

Du könntest auch ein "Enhancement Request" an MathWorks schreiben und bitten, Yair's Code zu kaufen und in Matlab einzubinden. Ich habe keine Ahnung, ob er das verkaufen kann oder will, aber eine Vorschlag kostet ja nichts und es wäre zum vorteil von Dir, der anderen Matlab-User, damit auch TMW selbst und auch Yair käme wohl gut dabei weg.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Kai_K
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2013, 10:25     Titel:
  Antworten mit Zitat      
Hallo Jan,

entschuldige, dass ich so lange nicht geantwortet habe, mir ist leider etwas dazwischen gekommen...

Hier mein bisheriger Code:
Code:

%Tabelle mit Tabs erstellen
hTabGroup = uitabgroup; drawnow;
tab1 = uitab(hTabGroup, 'title','Tab1');
%sobald eine Zelle editirt wird, wird die Funktion CellSelection aufgerufen
uitable('parent', tab1,'Data',dat1,'Units','normalized','Position',[0 0 1 0.6], 'CellSelectionCallback',{@CellSelection});

jTabGroup = findjobj(tab1);
jtable = jTabGroup.getViewport.getView;

%Now turn the JIDE sorting on
jTabGroup.setSortable(true);      % or: set(jtable,'Sortable','on');
jTabGroup.setAutoResort(true);
jTabGroup.setMultiColumnSortable(true);
jTabGroup.setPreserveSelectionsAfterSorting(true);


tab2 = uitab(hTabGroup, 'title','Tab2');
%sobald eine Zelle editirt wird, wird die Funktion CallBack aufgerufen
uitable('parent', tab2,'Data',dat2,'Units','normalized','Position',[0 0 1 0.6], 'CellSelectionCallback',{@CellSelection});

tab3 = uitab(hTabGroup, 'title','Tab3');
%sobald eine Zelle editirt wird, wird die Funktion CallBack aufgerufen
uitable('parent', tab3,'Data',dat3,'Units','normalized','Position',[0 0 1 0.6], 'CellSelectionCallback',{@CellSelection});

set(hTabGroup,'TabLocation','bottom')
% Get the underlying Java reference (use hidden property)
jTabGroup = getappdata(handle(hTabGroup),'JTabbedPane');




% Funktion wird ausgeführt, wenn Uitable editirt wird
    function CellSelection(hObj,evt)
       
      dat1 = dat1_new
      dat2 = dat2_new
      dat3 = dat3_new
     
        set(hObj,'Data',dat1)
       
        set(tab2,'Data',dat2)
        set(tab3,'Data',dat3)
       
       
 



Dabei kommt ein Fehler bei "jtable = jTabGroup.getViewport.getView;" Hat dazu jemand eine Idee?

Außerdem funktioniert die Wert zuweisung bei tab2 und tab3 nicht.
Kann mir da jemand sagen, wie ich die set Funktion hier aufrufen muss, damit es funktioniert?

Besten Dank schon mal!

Viele Grüße,

Kai
Private Nachricht senden Benutzer-Profile anzeigen
 
Kai_K
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2013, 13:28     Titel:
  Antworten mit Zitat      
okay,
was die set funktion habe ich hilfe von Yair persönlich erhalten.

Für die die es interessiert:

http://undocumentedmatlab.com/blog/.....relatives/#comment-296536
(im Moment ganz unten (Datum von heute))

Grüße,
Kai
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 18.11.2013, 17:33     Titel:
  Antworten mit Zitat      
Hey,

Code:

jTabGroup = findjobj(tab1);
 


Was soll das? Warum wendest du findjobj auf das uitab an? Ich dachte du willst die Tabelle ändern. Also solltest du es auch auf die uitable anwenden... Zudem funktioniert das glaube ich nur, wenn die figure sichtbar ist. Wobei ich nicht genau weiß, was bei dir für ne Fehlermeldung kommt. Ist jTabGroup zufällig leer (beim Debuggen)?

Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
Kai_K
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 09.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2013, 17:41     Titel:
  Antworten mit Zitat      
Hallo Marco,

ich habe es jetzt dahingehend geändert:

handles.Table1 = uitable(...)

und dann

jTabGroup = findjobj(handles.Table1);

aber auch hier behälst du recht und die jTabGroup ist leer.

(Fehlermeldung: Attempt to reference field of non-structure array.)
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 18.11.2013, 17:46     Titel:
  Antworten mit Zitat      
Hey,

also ich habe das mal wie folgt gemacht:

Code:

set(hObject,'Visible','on')% figure visible on schalten
j3 = findjobj('property',{'UIClassID','CellSpanTableUI'});

if isempty(j3)% Anpassung R2013a (uitable ist wohle keine CellSpanTableUI mehr)
    j3 = findjobj('property',{'nonContiguousCellSelection',true});
end
 


Ist nicht elegant aber sollte gehen... Wobei j3 die Tabelle ist...

Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.