Hallo alle,
Ich habe CSV-Dateien in JMP importiert, um die Datentabelle (zugewiesen als dt0) bzw. die Spezifikationstabelle (zugewiesen als dt1) zu erhalten. Ich frage mich, ob ich die Spezifikation in der Spezifikationstabelle (dt0) abrufen und die Spezifikationsgrenzen der Spalten in der Datentabelle (dt0) festlegen soll.
Das Problem, das ich gefunden habe, dass die Spezifikationen nicht erfolgreich festgelegt werden können:

Hier sind meine Codes:
Namen standardmäßig hierher ( 1 );
Dateien = Datei auswählen (
"CSV-Datei auswählen" ,
"$Downloads" ,
{ "JMP-Dateien|jmp;jsl;jrn" , "Alle Dateien|*" },
1 ,
0 ,
""
);
dt0 = Offen (
Dateien,
Importeinstellungen(
Zeilenende ( CRLF, CR, LF ),
Feldende( Komma, CSV( 0 ) ),
Strip-Zitate ( 1 ),
Verwenden Sie Apostroph als Anführungszeichen ( 0 ),
Regionale Einstellungen verwenden ( 0 ),
Ganze Datei scannen ( 1 ),
Behandle leere Spalten als numerisch ( 0 ),
CompressNumericColumns( 0 ),
Zeichenspalten komprimieren ( 0 ),
CompressAllowListCheck( 0 ),
Etiketten( 1 ),
Spaltennamen Start( 2 ),
Daten beginnen ( 8 ),
Zu lesende Zeilen ( "Alle" ),
Jahresregel( "20xx" )
)
);
dt1 = Offen (
Dateien,
Importeinstellungen(
Zeilenende ( CRLF, CR, LF ),
Feldende( Komma, CSV( 0 ) ),
Strip-Zitate ( 1 ),
Verwenden Sie Apostroph als Anführungszeichen ( 0 ),
Regionale Einstellungen verwenden ( 0 ),
Ganze Datei scannen ( 1 ),
Behandle leere Spalten als numerisch ( 0 ),
CompressNumericColumns( 0 ),
Zeichenspalten komprimieren ( 0 ),
CompressAllowListCheck( 0 ),
Etiketten( 1 ),
Spaltennamen Start( 2 ),
Daten beginnen ( 5 ),
Zu lesende Zeilen ( 2 ),
Jahresregel( "20xx" )
)
);
Für (ich= 13 , ich<= N Spalten (dt0), i++,
Spalte (dt0,i)<< Datentyp (Numerisch);
Spalte (dt0,i)<< Modellierungstyp ( "kontinuierlich" );
);
Für (ich= 13 , ich<= N Spalten (dt1), i++,
Spalte (dt1,i)<< Datentyp (Numerisch);
Spalte (dt1,i)<< Modellierungstyp ( "kontinuierlich" );
);
Für (ich= 13 , ich<= N Spalten (dt1), i++,
tempUSL= Col gespeicherter Wert (dt1, ich, 1 ); // Weisen Sie die Spezifikation aus der dt1-Spezifikationstabelle 'tempUSL' und 'tempLSL' zu
tempLSL= Col gespeicherter Wert (dt1, ich, 2 );
Bewertung (
Bewertungsausdr (
Spalte ( dt0,i ) << Eigenschaft festlegen (
"Spezifikationsgrenzen" ,
{LSL( Ausdruck ( tempLSL ) ), USL( Ausdruck ( tempUSL ) ), Grenzen anzeigen ( 1 )}
)
)
);
);
Irgendwelche Ratschläge, um dieses Problem anzugehen? Danke
Ich sehe, was Sie tun, und ich muss sagen, Ihr Code sieht sehr gut aus. Auch sehr komplex.
Es gibt mehrere andere Möglichkeiten, dasselbe mit Skriptplattformen zu erreichen, die bereits in JMP vorhanden sind.
Hier sind ein paar Beispiele:
Dieser verwendet die Prozess-Screening-Plattform
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
dt2 = Open( "$SAMPLE_DATA/CitySpecLimits.jmp" );
dt1 << Process Screening(
Y( :OZONE, :CO, :SO2, :NO ),
Use Limits Table(
1,
dt2,
Process Variables( :Column 1 ),
LSL( :_LSL ),
USL( :_USL ),
Target( :_Target ),
Go
)
);
Dieser nutzt die Prozessfähigkeitsplattform
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = dt << Process Capability(
Process Variables( :OZONE, :CO, :SO2, :NO ),
Spec Limits(
Import Spec Limits(
"$SAMPLE_DATA/CitySpecLimits.jmp"
)
)
);
In diesem Beispiel wird ein Dialogfeld geöffnet, in dem der Benutzer die Spezifikationsgrenzwerttabelle auswählen kann
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
obj = dt << Manage Spec Limits(
Y( dt << Get Column Group( "Processes" ) )
);
Dieser grundlegende Code, der Plattformfunktionen nutzt, ist auch viel einfacher zu warten.
Hoffe, das war nützlich,
Beifall,
B
Hallo alle,
Ich habe die Lösung mit diesen Codes gefunden:
Eval(
Eval Expr(
tempUSL=Col Stored Value(dt1, Expr(i), 1)
)
);
Eval(
Eval Expr(
tempLSL=Col Stored Value(dt1, Expr(i), 2)
)
);
Danke
Wenn Sie 'tempUSL' und 'tempLSL' direkt eine Nummer zuweisen, könnte es funktionieren.
Aber ich muss die Spezifikationsgrenzen aus der Spezifikationstabelle zuweisen.
Names Default To Here( 1 );
Files = Pick File(
"Select CSV File",
"$Downloads",
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
""
);
dt0 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
dt1 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 5 ),
Lines To Read( 2 ),
Year Rule( "20xx" )
)
);
For(i=13, i<=N Cols(dt0), i++,
Column(dt0,i)<<DATA type=""></DATA>