Überspringen Sie die folgenden Zeilen, wenn eine Tabelle innerhalb einer for-Schleife leer istHallo, ich habe das folgende Skript, das sich in einer for-Schleife befindet. Ich möchte die Schleife gerne fortsetzen, wenn die Tabelle mydt leer ist, und Zeilen darunter überspringen.
Ich schätze Ihre Hilfe. Danke
-------------------------------------------
mydt = Datentabelle ( dt5 );
Wenn (( ist leer (mydt)), continue());
mydtsummary = Datentabelle ( dt5 ) << Zusammenfassung (
Gruppe( :BoardNo ),
Max ( :Startzeit ),
Statistikspaltennamensformat( „Statistik der Spalte“ )
);
mydt << Aktualisieren (
Mit( Datentabelle ( mydsummary ) ),
Match Columns( :BoardNo = :BoardNo ),
Spalten aus Aktualisierungstabelle hinzufügen (:Maximale Startzeit)
);
mydt << Wählen Sie wo aus ( :starttime == :Maximale Startzeit ) << Zeilenauswahl umkehren ;
mydt << Zeilen löschen ;
mydt << Spalten löschen ( „Maximale Startzeit“ );
Schließen ( mydtsummary, nosave );
Schließen (mydt,speichern);
Betreff: Überspringen Sie die folgenden Zeilen, wenn eine Tabelle in einer for-Schleife leer istDanke Jim.
Betreff: Überspringen Sie die folgenden Zeilen, wenn eine Tabelle in einer for-Schleife leer istIf( Bedingung == wahr,
Brechen();
);
Betreff: Überspringen Sie die folgenden Zeilen, wenn eine Tabelle in einer for-Schleife leer istDanke Cameron. Die Frage ist nicht, ob die Tabelle leer ist oder keinen Wert hat. Das Problem besteht darin, dass ich, wenn die Bedingung wahr ist, alle Zeilen darunter überspringen und zum nächsten for-Schleifenindex wechseln möchte.
if (Bedingung = True,
....
... überspringen Sie alles unten
...
);
Danke.
Betreff: Überspringen Sie die folgenden Zeilen, wenn eine Tabelle in einer for-Schleife leer istWozu verwenden Sie die Funktion Is Empty()?Wenn Sie prüfen möchten, ob die Tabelle selbst keine Daten enthält, verwenden Sie diese Funktion falsch.Es zeigt Ihnen an, ob die Variable mydt (nicht die Datentabelle, auf die sie verweist) keinen Wert oder einen leeren Wert hat.Wenn Sie überprüfen möchten, ob die Datentabelle nichts enthält, führen Sie als logische Prüfung etwas wie N Row(mydt) == 0 aus.
Betreff: Überspringen Sie die folgenden Zeilen, wenn eine Tabelle in einer for-Schleife leer istVielen Dank für die schnelle Rückmeldung und Lösung. Ich habe es versucht, aber im Update-Bereich wird eine Fehlermeldung angezeigt.
Fehlendes Argument{8} beim Zugriff oder bei der Auswertung von „Datentabelle“, Datentabelle /*###*/ (meine Zusammenfassung)
mydt << Update(
With( Datentabelle /*###*/ (mydsummary) ),
Es sieht so aus, als würde der Update-Abschnitt verarbeitet, wenn mydt leer ist, und das sollte nicht der Fall sein. Danke
Betreff: Überspringen Sie die folgenden Zeilen, wenn eine Tabelle in einer for-Schleife leer istWarum nicht einfach die Logik mit „!“ umkehren? und alle diese Zeilen in Ihre if-Anweisung einfügen?
If( !Is Empty( mydt ),
mydtsummary = Data Table( dt5 ) << Summary(
Group( :BoardNo ),
Max( :starttime ),
statistics column name format( "stat of column" )
);
mydt << Update(
With( Data Table( mydtsummary ) ),
Match Columns( :BoardNo = :BoardNo ),
Add Columns from Update table( :Max of starttime )
);
mydt << select where( :starttime == :Max of starttime ) << invert row selection;
mydt << delete rows;
mydt << delete columns( "Max of starttime" );
Close( mydtsummary, nosave );
Close( mydt, save );
);