For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltIch versuche, eine variable Liste von Werkzeugen (ChamberTool oder Cham) zu durchlaufen, um eine Liste zu erstellen.Mithilfe dieser Liste erstelle ich dann eine Kontur der Daten nach Datum, wobei jede Kammer eine separate Registerkarte in einem Registerkartenfenster darstellt.Ich habe jedes dieser Dinge unabhängig voneinander erledigt, aber mein besonderes Problem besteht darin, für jedes Werkzeug aus dieser Variablenliste eine Registerkarte zu erstellen.Vielleicht ist mein Ansatz weit daneben, aber hier ist mein Skript.
Hier sind zunächst die beiden Skriptteile, die ich habe und die funktionieren.Ich übergebe die Skripterstellung der Teile, die ich bereits ausführen kann, um diesen Beitrag kürzer zu halten und nicht von meiner Hauptproblemstellung abzulenken.
ContourG = dt << Contour stuff here;
Graph = new window("Contours", tab box(
"Tab Name Here", (vlistbox(ContourG)),
));Aber wenn ich versuche, eine for-Schleife auszuführen, bin ich völlig kaputt.
Cham = Associative Array(Column(dt_stacked, "Chamber") << Get Values) << Get Keys;Associative Array(Column(dt_stacked, "Chamber")<< Get Values)<<GET keys=""></GET>
Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltHier ist ein Skript, das vorgefertigte Analysen in einem Fenster generiert und ein zweites Fenster die Anzeigen dynamisch in Echtzeit generiert.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Create the default lists
namesList = {};
objList = {};
// Generate the output names
For( i = 1, i <= 10, i++,
Insert Into( namesList, "Analysis " || Char( i ) )
);
//Pre run the reports
For( i = 1, i <= 10, i++,
objList[i] = V List Box( Oneway( x( :Site ), y( Column( i + 4 ) ) ) )
);
// Create the display window for to display the prebuilt reports upon a user's reques
nw = New Window( "Output PreBuilt",
theHLB = H List Box(
lB = List Box(
namesList,
maxselected( 1 ),
Try( myObj << delete );
theHLB << append( myObj = objList[Contains( namesList, (lB << get selected)[1] )] << clone box );
)
)
);
// Create the display window for the displaying of the dynamically created reports
nw2 = New Window( "Output Dynamic Creation",
theHLB2 = H List Box(
lB2 = List Box(
namesList,
maxselected( 1 ),
Try( myObj2 << delete );
theHLB2 << append(
myObj2 = V List Box(
Oneway( x( :Site ), y( Column( Contains( namesList, (lB2 << get selected)[1] )+4 ) ) )
)
);
)
)
);Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltDanke für die Eingabe. Mein Bericht generiert etwa 8–10 Diagramme pro Feature, der Diagrammtyp unterscheidet sich je nach Feature-Typ, es gibt 3–8 Features pro Ebene und bis zu 10 Ebenen pro Produkt. Die Produkte können je nach Datenabruftag variieren.Ist es möglich, alle Plots/Diagramme in einer Liste oder einem Array zu speichern, um den Zugriff über FOR LOOP zu erleichtern?
Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltNatürlich gibt es viele Möglichkeiten, eine Benutzeroberfläche zu entwerfen. Aber bei einer vierstufigen Hierarchie würde ich die Verwendung eines lokalen Datenfilters mit der Option „bedingt“ in Betracht ziehen:
// Conditional (hierarchical) local data filter
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 529, 563 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
Local Data Filter(
Conditional,
Add Filter(
columns( :sex, :age, :name ),
Display( :sex, Size( 149, 28 ), List Display ),
Display( :age, Size( 149, 84 ), List Display ),
Display( :name, Size( 149, 210 ), List Display )
)
)
);Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstellt
-->
Text Box( tabListFirst[i] ||"->"|| tabListSecond[ii][iii] ||"->"|| tabListThird[ii][iii] ||"->"|| tabListForth[iii][iiii]) )
Text Box( tabListFirst[i] ||"->"|| tabListSecond[i][ii] ||"->"|| tabListThird[ii][iii] ||"->"|| tabListForth[iii][iiii]) )
kleines Update......
Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltBeispiel für ein Tab-Feld mit 4 Ebenen:
Names Default To Here( 1 );
// Make multiple lists that will define the multi-level hierarchical tab structure
nFirst = 5;
nSecondMax = 5;
nThirdMax = 5;
nForthMax = 5;
tabListFirst = {}; // first lists
tabListSecond = {}; // second lists
tabListThird = {}; // third lists
tabListForth = {}; // forth lists
For( i = 1, i <= nFirst, i++, //first level
Insert Into( tabListFirst, " L1 Tab " || Char( i ) );
secondList = {};
For( ii = 1, ii <= nSecondMax, ii++, //second level
Insert Into( secondList, "L2 Tab " || Char( ii ) );
thirdList = {};
For( iii = 1, iii <= nThirdMax, iii++,//third level
Insert Into( thirdList, "L3 Tab " || Char( iii ) );
forthList = {};
For( iiii = 1, iiii <= nForthMax, iiii++,//forth level
Insert Into( forthList, "L4 Tab " || Char( iiii ) )
);
Insert Into( tabListForth, Eval List( List( forthList ) ) );
);
Insert Into( tabListThird, Eval List( List( ThirdList ) ) );
);
Insert Into( tabListSecond, Eval List( List( secondList ) ) );
);
/*
Show( tabListFirst );
Show( tabListSecond );
Show( tabListThird );
Show( tabListForth );
*/
// Use these lists to build the UI
tb = Tab Box(); //first level of Tab Box
For( i = 1, i <= N Items( tabListFirst ), i++,
tb2 = Tab Box(); //second level of Tab Box
For( ii = 1, ii <= N Items( tabListSecond[i] ), ii++,
tb3 = Tab Box(); //third level of Tab Box
For (iii = 1, iii <= NItems ( tabListThird[ii]), iii++,
tb4 = Tab Box();
For (iiii = 1, iiii <= NItems ( tabListForth[iii]), iiii++,
tb4 << Add( tabListForth[iii][iiii] || " Tab",
Text Box( tabListFirst[i] ||"->"|| tabListSecond[ii][iii] ||"->"|| tabListThird[ii][iii] ||"->"|| tabListForth[iii][iiii]) )
);
tb3 << Add(tabListThird[ii][iii] || " Tab", tb4);
);
tb2 << Add ( tabListSecond[i][ii] || " Tab", tb3);
);
tb << Add( tabListFirst[i] || " Tab", tb2 );
);
New Window( "Example", tb );
Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltVielen Dank, das ist genau das, was ich suche, meine Daten haben 4 Ebenen und die Anzahl der Tabulatoren auf der nächsten Ebene basiert auf dem Tabulatorwert der vorherigen Ebene.Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltAufbauend auf Jims Beispiel:
NamesDefaultToHere(1);
// Make two lists that will define the two-level hierarchical tab structure
nFirst = 4;
nSecondMax = 5;
tabListFirst = {}; // A List
tabListSecond = {}; // A list of lists
for(i=1, i<=nFirst, i++,
InsertInto(tabListFirst, "Tab "|| Char(i));
secondList = {};
for(ii=1, ii<=randomInteger(1, nSecondMax), ii++,
InsertInto(secondList, "Tab "|| Char(ii))
);
InsertInto(tabListSecond, evalList(List(secondList)));
);
// Use these lists to build the UI
tb = Tab Box();
For( i = 1, i <= N Items( tabListFirst ), i++,
tb2 = TabBox();
for(ii = 1, ii <= NItems(tabListSecond[i]), ii++,
tb2 << add(
tabListSecond[i][ii] || " Tab",
Button Box( "Press " || tabListSecond[i][ii] )
);
);
tb << Add(tabListFirst[i] || " Tab", tb2);
);
New Window( "Example", tb );Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltIst es möglich, dynamisch eine zweite Ebene von Tabboxen zu erstellen? Meine Daten bestehen aus mehreren Datenebenen, danke.
<SPAN class="token function">Names Default To Here</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token number">1</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
tabList <SPAN class="token operator">=</SPAN> <SPAN class="token punctuation">{</SPAN><SPAN class="token string">"First"</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Second"</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Third"</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Fourth"</SPAN><SPAN class="token punctuation">}</SPAN><SPAN class="token punctuation">;<BR /></SPAN>
<SPAN class="token function">New Window</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Example"</SPAN><SPAN class="token punctuation">,</SPAN> tb <SPAN class="token operator">=</SPAN> <SPAN class="token function">Tab Box</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token function">For</SPAN><SPAN class="token punctuation">(</SPAN> i <SPAN class="token operator">=</SPAN> <SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> i <SPAN class="token operator"><=</SPAN> <SPAN class="token function">N Items</SPAN><SPAN class="token punctuation">(</SPAN> tabList <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> i<SPAN class="token operator">++</SPAN><SPAN class="token punctuation">,</SPAN>
tb <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Add</SPAN><SPAN class="token punctuation">(</SPAN>
tabList<SPAN class="token punctuation">[</SPAN>i<SPAN class="token punctuation">]</SPAN> <SPAN class="token operator">||</SPAN> <SPAN class="token string">" Tab"</SPAN><SPAN class="token punctuation">,<BR /></SPAN> //another layer of tabs goes here<BR />
<SPAN class="token function">Button Box</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"Press "</SPAN> <SPAN class="token operator">||</SPAN> tabList<SPAN class="token punctuation">[</SPAN>i<SPAN class="token punctuation">]</SPAN> <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltMein vorheriger Beitrag war nicht ganz konkret.Es zeigte sowohl eine fest codierte Methode als auch eine Methode, mit der Sie bei Bedarf jederzeit Tabs hinzufügen können.Aber um es direkter zu machen, ist hier ein überarbeitetes Skript, das eine JSL-Liste verwendet, um die Registerkarten zu bestimmen, die hinzugefügt werden müssen
Names Default To Here( 1 );
tabList = {"First", "Second", "Third", "Fourth"};
New Window( "Example", tb = Tab Box() );
For( i = 1, i <= N Items( tabList ), i++,
tb << Add(
tabList[i] || " Tab",
Button Box( "Press " || tabList[i] )
)
);Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstellt@txnelson , mein Code war mein Versuch, eine Schleife basierend auf einer Variablenliste zu erstellen, damit jedes einzelne Element in der Liste eine eigene Registerkarte hat.Das von Ihnen angegebene Beispiel scheint eine Möglichkeit zu sein, eine bestimmte Anzahl von Registerkarten fest zu codieren, aber in meinem Fall würde sich die Anzahl der Registerkarten ändern.Wenn mein Datensatz beispielsweise eines Tages fünf verschiedene Entitäten in meiner Liste enthält, sollte mein Code fünf Registerkarten generieren, eine für jede Entität.Aber am nächsten Tag könnte mein Datensatz 8 Entitäten umfassen.
Und eine unabhängige Frage: Haben Sie eine Idee, wie ich meine E-Mail-Adresse in meinem Konto aktualisieren kann?Mir wurde klar, dass mein Konto an eine Adresse gebunden ist, auf die ich keinen Zugriff mehr habe, und ich werde beim besten Willen nicht herausfinden, wie ich sie aktualisieren kann.
Betreff: For-Schleife in einem Tab-Feld, wobei jede Schleife eine andere Registerkarte im Fenster erstelltDie Syntax, die Sie zum Erstellen der neuen Registerkarten verwenden, ist nicht korrekt; Unten finden Sie ein direkt aus dem Scripting Index entnommenes Beispiel zum Hinzufügen einer neuen Registerkarte.Tatsächlich zeigt das Beispiel zwei Möglichkeiten, dies zu tun.Ihr Code generiert nur eine Registerkarte.
Names Default To Here( 1 );
New Window( "Example",
tb = Tab Box(
Tab Page Box(
"First Tab",
Tip( "First Tab Tooltip" ),
Button Box( "Press One" )
),
Tab Page Box(
"Second Tab",
Closeable( 1 ),
Button Box( "Press Two" )
),
Tab Page Box(
"Third Tab",
Icon( "Nominal" ),
Button Box( "Press Three" )
)
)
);
Wait( 1 );
tb << Add(
"Fourth Tab",
Button Box( "Press Four" )
);