Wie man den Benutzer auffordert, Spalten auszuwählen und dann mit der Verteilung fortzufahrenHallo zusammen, ich versuche gerade, das Tableau-Skript zu lernen und möchte ein Feature veröffentlichen.
Fragen Sie den Benutzer, wählen Sie 1 oder viele Spalten aus --> fahren Sie mit der Verteilung fort
Darf ich wissen, wie man das relaized?
Danke.
Betreff: Wie man den Benutzer auffordert, Spalten auszuwählen und dann mit der Verteilung fortzufahrenDieses erweiterte Skript sollte Ihnen zeigen, wie Sie vorgehen müssen. Es ermöglicht dem Benutzer, zwei Auswahlen in derselben Dialogbox zu treffen.
Names Default To Here( 1 );
dt = Current Data Table();
dialog = New Window( "Select Columns", << Modal,
Panel Box( "Column Selection",
Lineup Box( N Col( 2 ),
Text Box( "Select column for munging" ),
m col list = Col List Box( All ),
Text Box( "Select columns for distribution" ),
y col list = Col List Box( All )
)
),
H List Box(
Button Box( "OK",
m col = m col list << Get Selected;
y col = y col list << Get Selected;
),
Button Box( "Cancel" )
)
);
If( dialog["Button"] == -1,
Throw( "User cancelled" )
);
Show( m col, y col );
dt << Select Duplicate Rows( Match( :SerialNumber ) );
xx = dt << Get Selected Rows;
If( N Rows( xx ) > 0,
dt << Delete Dows
);
dt << New Column( "Date Code", Numeric, Continuous, Formula( Munger( :Name( "Serial Number" ), 4, 3 ) ) )
<< New Column( "Vendor", Numeric, Continuous, Formula( Munger( :Name( "Serial Number" ), 1, 3 ) ) )
<< New Column( “Config”, Numeric, Continuous, Formula( Munger( :Name( "Serial Number" ), 12, 5 ) ) );
If( N Items( y col ) > 0,
y expr = Expr( Y() );
For( i = 1, i <= N Items( y col ), i++,
Insert Into( y expr, Column( y col[i] ) )
);
Eval( Substitute( Expr( dt << Distribution( yyy ) ), Expr( yyy ), Name Expr( y expr ) ) );
);
Ich sehe in dem von Ihnen angegebenen Beispiel keinen Grund, den Spaltennamen in "Seriennummer des Akkus" zu ändern.
Betreff: Wie man den Benutzer auffordert, Spalten auszuwählen und dann mit der Verteilung fortzufahrenHallo Markus, vielen Dank für deine Hilfe.
Ich stand auch vor einer Frage, die ich stellen möchte. Normalerweise muss ich mit einer Tabelle fortfahren, die das folgende Skript verwendet und zuerst die Seriennummer dekodiert, um den Datumscode / die Konfiguration und so weiter zu erhalten. Aus irgendeinem Grund ändert sich der Name „Seriennummer“ in „Seriennummer der Batterie“ oder etwas anderes. Wenn es auch möglich ist, den Benutzer auswählen zu lassen, welche Spalte zuerst "Munger" ist, dann bitten Sie den Benutzer, Spalten auszuwählen, um die Verteilung vorzunehmen.
dt = currentdatatable();
dt <<
Select duplicate rows( Match( :SerialNumber ) );
xx=dt<<GET selected="" rows="">0,
dt<<DELETE rows=""></DELETE></GET>
Betreff: Wie man den Benutzer auffordert, Spalten auszuwählen und dann mit der Verteilung fortzufahrenBei Tableau kann ich dir nicht helfen.
Ein JMP-Skript, das möglicherweise funktioniert, ist das folgende:
Names Default to Here( 1 );
dt = Current Data Table();
dialog = New Window( "Select Columns", << Modal,
y col list = Col List Box(
All
),
H List Box(
Button Box( "OK",
y col = y col list << Get Selected;
),
Button Box( "Cancel" )
)
);
If( dialog["Button"] == -1,
Throw( "User cancelled" );
);
Show( y col );
If( N Items( y col ) > 0,
y expr = Expr( Y() );
For( i = 1, i <= N Items( y col ), i++,
Insert Into( y expr, Column( y col[i] ) );
);
Eval(
Substitute(
Expr( dt << Distribution( yyy) ),
Expr( yyy ), Name Expr( y expr )
)
);
);