import: viele extra cols. Benutzer wählen die gewünschten aus?Guten Morgen,
Ich bin also neu in jsl und versuche das herauszufinden. Die Datensätze, die ich von unseren Servern bekomme, haben eine Menge zusätzlicher Spalten, oft sind die Spalten leer. Ich hoffe, dass ich die meisten meiner Skripts mit einem vom Benutzer ausgewählten Dialogfeld starten kann, in dem sie die Spalten ihrer Wahl auswählen / hinzufügen / löschen und möglicherweise in eine bevorzugte Reihenfolge bringen können. Irgendeine Hilfe?
Nehmen wir an, die Cols sind:
| Col # | ColName | |
| 1 | date_export | |
| 2 | Produktart | |
| 3 | Artikelnummer | |
| 4 | Rezept | |
| 5 | date_run | |
| 6 | messungstyp | |
| 7 | Wert | |
| 8 | Werkzeug | |
| 9 | Ziel | |
Okay, einige dieser Cols werden nicht benötigt und sie sind definitiv nicht in Ordnung, nur aus menschlicher Sicht. Im Idealfall würde ich mir wünschen, dass das Skript automatisch eine Auswahl vornimmt und Folgendes anordnet:
Col #: 2, 8, 4, 5, 6, 7, 9
und dann möglicherweise über ein Benutzerdialogfeld, in dem der Benutzer jede andere Spalte auswählen kann, um sie der neu formatierten Ausgabe hinzuzufügen, wenn dies gewünscht wird.
was denkst du?
Re: import: viele zusätzliche Cols. Benutzer wählen die gewünschten aus?Vorausgesetzt, ich verstehe Ihre Frage:
// Open Sample Data Table
dt = Open( "$SAMPLE_DATA\Air Traffic.jmp" );
// Define list of columns to delete
DelList = {"Carrier Code","Flight Number"};
// Delete Columns
dt << Delete Columns(DelList); Re: import: viele zusätzliche Cols. Benutzer wählen die gewünschten aus?genial! Wie sieht es mit einer vorgegebenen Liste von Spaltennamen aus? Wie meine Datentabellen kommen Dutzende oder zusätzliche Spalten (oft nicht leer).
Wählen Sie Colname (crap1, crap2, crap3 ...)
ausgewählte Spalten löschen
Fahren Sie dann fort, um eine Benutzerauswahl des abgeschnittenen Restes zu ermöglichen.
Re: import: viele zusätzliche Cols. Benutzer wählen die gewünschten aus?Hier ist ein Teil des Codes, den ich zum Erstellen eines Tabellenskripts verwende, das beim Lesen von Daten leere Spalten zapft:
// add a table script that will remove empty columns
dt << Set Property( "Remove Empty Columns",
dt = Current Data Table();
lstToDelete = {};
For (i=1,i<=NCols(dt),i++,
col = Column(dt,i);
If (Col Number(col)==0,
InsertInto(lstToDelete,i)
)
);
If (NItems(lstToDelete)>0,
dt << Delete Columns(lstToDelete)
);
);Re: import: viele zusätzliche Cols. Benutzer wählen die gewünschten aus?Ich mag das sehr, indem ich die gewünschten Cols auswähle, dann invertiere und die unerwünschten Cols lösche.
Haben Sie einen Rat, wenn Sie einen Vorschritt ausführen, in dem ich ein Massenlöschen von vordefinierten Spalten ausführen kann, um die Benutzerauswahl zu reduzieren?
Leider enthalten meine Datendateien ein paar Dutzend unnötiger Spalten für Dinge, die nicht benötigt werden.
Vielleicht könnte ich etwas am Anfang jedes dt = open () einschreiben, um die bekannten "nicht benötigten Cols" zu löschen?
Re: import: viele zusätzliche Cols. Benutzer wählen die gewünschten aus?dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// Get Column Names
ColNames = dt << Get Column Names("String");
// Open a window for user selection
NW1 = New Window("User Selection",
<< Modal,
V List Box(
Lineup Box(
Lb1 = List Box(ColNames);
)
),
H List Box(
Button Box("OK",
// Unload User Inputs
Rb1Val = Lb1 << Get Selected();
)
)
);
// Select Columns
for(i = 1, i <= N Items(ColNames), i ++,
If(Contains(Rb1Val,ColNames[i]),
Col = Column(dt,i); ;
Col << Set Selected(1);
);
);
// Delete Unwanted Columns
dt << Invert Column Selection ;
dt << Delete Columns ;Re: import: viele zusätzliche Cols. Benutzer wählen die gewünschten aus?Hoffentlich ist das fremde Dateiformat stabil. Sie können versuchen, dieses Argument für die Open () - Funktion zum Importieren zu verwenden:
Select Columns( "col", ... )
Wenn Sie die Datenreferenz beim Öffnen in einer Variablen (z. B. dt) gespeichert haben, können Sie die Spalten anschließend nach diesem Muster iterativ neu anordnen:
dt << Go to Column( col ref ) // select column to move
<< Move Selected Columns( ... ) // move column to new location
<< Clear Column Selection; //
Hoffe, diese Antwort bringt dich auf deinen Weg.
Re: import: viele zusätzliche Cols. Benutzer wählen die gewünschten aus?Hey Mark,
Alle guten Fragen. Ich wünschte, ich könnte nur eine Abfrage im Frontend schreiben, aber die Datenbank meines Unternehmens ist gesperrt. Wir müssen Anfragen einreichen und erhalten eine flache Excel-CSV-Datei, die alle diese unnötigen Spalten und schlecht benannten Header in einer nicht übereinstimmenden Reihenfolge enthält (wie 35 Spalten). Ich arbeite daran, schreibgeschützt zu sein, aber das ist ein anderes Problem.
Re: import: viele zusätzliche Cols. Benutzer wählen die gewünschten aus?Sind die Quelldateien flach oder relational? Was ist der Quelldateityp? Welche Art von Dateien importierst du? Müssen Sie die gesamte Datei importieren?
Können Sie eine Datenbank nach dem Ergebnis abfragen? Wenn ja, können Sie eine Abfrage erstellen, um Ihnen das zu geben, was Sie möchten.