Referenzieren von Spalten, die aus dem Parsen von Datafilter extrahiert wurden, wählen Sie wo ausIch möchte eine Datenfilterschnittstelle für einen anderen Zweck verwenden.
Dann muss ich die Klausel "select where" analysieren und die darin enthaltenen Informationen verwenden.
Ich kann die Where-Klausel analysieren und die andere Spalte im Ausdruck identifizieren
aber nicht darauf verweisen
DFClause=Currentdatafilter << get where clause();<BR />SelectInnerExpr=Arg(parse(DFClause),1);<BR />// let assume for a second this will always return an expression of this type to simplify the example <BR />SelectInnerExpr= expr(:study_owner == "name" & :Is Electr. == 1);<BR /><BR />//so i can parse it with a simple for loop
for(iA=1,iA<=NArg(SelectInnerExpr),iA++,
TestColExp=Arg(Arg(SelectInnerExpr,iA),1); // here i can get the column as i need but as :ColumName
TestCol=eval(TestColExp); // so this does not really retun the column reference<BR /> colname= TestCol<< Get Name;
);
jedoch bekomme ich die Spalte als: ColumName
Wie bekomme ich jetzt die Spaltenreferenz, um dann mit dem Skript fortzufahren?
Spaltenname= TestSpalte << Namen erhalten
FensterBetreff: Referenzieren von Spalten, die aus dem Analysieren von Datafilter extrahiert wurden, wählen Sie aus, woIst es das, wonach Sie suchen? Ich habe Ihre For()-Schleife modifiziert, um das erste Bit in ein Zeichen zu setzen, dann das erste Wort herausgezogen und geparst. Vollständiges Skript beigefügt. Es gibt wahrscheinlich auch elegantere Möglichkeiten, dies zu tun, die andere hinzufügen können.
For( iA = 1, iA <= N Arg( SelectInnerExpr ), iA++,
TestColExp = Char( Arg( Arg( SelectInnerExpr, iA ), 1 ) ); // put all into a char()
TestCol = Parse( Word( 1, TestColExp ) ); //now returns test col
);
Betreff: Referenzieren von Spalten, die aus der Analyse des Datenfilters extrahiert wurden, wählen Sie aus, woDies scheint auch zu funktionieren, schlägt aber im nicht ganz so ungewöhnlichen Fall einer öffnenden Klammer im Spaltennamen fehl. Sie müssen dies abfangen, wenn dies ein Problem darstellt.
Names Default To Here( 1 );
dt = open("$Sample_Data\Car Physical Data.jmp");
gb = dt << Graph Builder(
Size( 526, 668 ),
Show Control Panel( 0 ),
Variables( X( :Turning Circle ), Y( :Horsepower ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) ),
Local Data Filter(
Show Histograms and Bars( 0 ),
Add Filter( columns( :Country, :Type ), Display( :Type, N Items( 5 ) ) ),
Add Filter( columns( :Weight ), Display( :Weight, Height( 20 ) ) )
)
);
<BR /><BR /><BR /><BR />//////////// processing here
ob = (report(gb) << parent)[outlinebox(1)];
lis = (ob << xpath( "//TabPageBox" )) << get title;
colnames = Transform Each( {v, i}, lis[2 :: (N Items( lis ) - 1)],
Trim Whitespace( Items( [1 1], v, "(" )[1] )
);