Escludere i dati durante il caricamento dei dati con uno script<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao comunità,
Quando apro una tabella con un database con il seguente script salvato nel datatable funziona. Quando salgo lo script in una voce di menu in un addin, esso semplicemente estrae i dati e non esclude. Che cosa succede?
Apri database (
"DSN = PI SQL Connection Lab; Descrizione = PI SQL Connection Lab; UID =; Trusted_Connection = Sì; APP = JMP; WSID = SFX-5GCN2M1; DATABASE = LabData",
"SELECT * FROM dbo.NSI_Discovered_Factors_Lab_Data",
"NSI_Discovered_Factors_Lab_Data",
"Database NSI"
);
dt = CurrentDataTable ();
dt << Seleziona dove (Escludi == "Escludi") << nascondi << Escludi;
Ri: Escludere i dati durante il caricamento dei dati con uno scriptGrazie per l'idea che funzioni quando viene eseguito da un editor di script ma non come un componente aggiuntivo.
Questo di solito indica un problema di scoping per i riferimenti variabili nel tuo JSL. Per impostazione predefinita, i componenti aggiuntivi vengono eseguiti con l'opzione "Nomi predefiniti per qui (1)", in modo che i riferimenti senza ambito passino allo spazio dei nomi "Qui".
Il tuo Seleziona dove () ha una variabile senza ambito in esso sotto forma di Escludere .
Se includi a: prima di portarlo a una colonna della tabella di dati, funziona in entrambi i casi (editor di script e componente aggiuntivo).
dt<<Select Where(:Exclude=="Exclude")<<hide<<Exclude;
-Jeff
Ri: Escludere i dati durante il caricamento dei dati con uno scriptCiao Byron,
Quando copio e incollo la query in uno script che è esattamente il seguente:
dt = CurrentDataTable ();
dt << Seleziona dove (Escludi == "Escludi") << nascondi << Escludi;
Funziona. Ma quando salvo lo script su un add-in jsl, non è strano. Il nome della colonna e la cassa e gli spazi corrispondono. Così fa per le file. È molto strano che funzioni in jsl non-addin ma non in addin. Non ho generato questo modulo jsl il filtro dati.
Ri: Escludere i dati durante il caricamento dei dati con uno scriptCi possono essere un paio di altre piccole cose da controllare, e mi scuso in anticipo per essere così semplice.
La tabella dei dati importati ha una colonna denominata "Escludi"
-segue il nome della colonna attuale avere spazi iniziali?
-segue la corrispondenza del nome della colonna effettiva? ad es. titolo e ortografia.
I valori da filtrare nella colonna denominata "Escludi"
-do i valori nella colonna hanno spazi iniziali o finali?
-è l'ortografia e la didascalia esatta per il livello "Escludi"?
Lo script nella tabella dati funziona, proviene dal filtro dati?
Ri: Escludere i dati durante il caricamento dei dati con uno scriptQuesta è un'opzione di PMroz, ma preferirei estrarre tutti i dati e lasciare alla gente l'opzione di non escludere.
Ri: Escludere i dati durante il caricamento dei dati con uno scriptEcco un pensiero. Dato che stai tracciando i dati con SQL, perché non escludi le righe in SQL? Inoltre penso che tu abbia un parametro extra per aprire il database (database NSI).
dt = Apri database (
"DSN = PI SQL Connection Lab; Descrizione = PI SQL Connection Lab; UID =; Trusted_Connection = Sì; APP = JMP; WSID = SFX-5GCN2M1; DATABASE = LabData" ,
"SELECT * FROM dbo.NSI_Discovered_Factors_Lab_Data WHERE exclude! = 'Escludi'" ,
"NSI_Discovered_Factors_Lab_Data" ,
"Database NSI" ) ;
Ri: Escludere i dati durante il caricamento dei dati con uno scriptStesso problema PMroz. Stranamente non funziona ancora.
Ri: Escludere i dati durante il caricamento dei dati con uno scriptProva a utilizzare wait (0) invece di eseguire le formule. Sono d'accordo con Byron: rimuovi la tabella dei dati corrente dt = e imposta dt = sui risultati del database aperto. Come questo:
dt = Apri database (
"DSN = PI SQL Connection Lab; Descrizione = PI SQL Connection Lab; UID =; Trusted_Connection = Sì; APP = JMP; WSID = SFX-5GCN2M1; DATABASE = LabData" ,
"SELECT * FROM dbo.NSI_Discovered_Factors_Lab_Data" ,
"NSI_Discovered_Factors_Lab_Data" ,
"Database NSI" ) ;
aspettare ( 0 ) ;
dt << Seleziona dove ( Escludere == "Escludere" ) << nascondere << Escludere ;
Ri: Escludere i dati durante il caricamento dei dati con uno scriptCiao Byron,
Questo non l'ha risolto Ho anche fatto un addin separato che dovrebbe funzionare dato quello che hai detto è vero che eseguo dopo il caricamento del set di dati che è solo il seguente.
dt = CurrentDataTable ();
dt << Seleziona dove (Escludi == "Escludi") << nascondi << Escludi;
Questo stranamente non funziona neanche.
Ri: Escludere i dati durante il caricamento dei dati con uno scriptÈ possibile che l'Open non sia completo quando viene eseguito il Select?
Non ho visto questo problema esatto, ma qualcosa di simile quando lavoro con tabelle che hanno un sacco di righe.
Due suggerimenti:
Innanzitutto, assegna la tabella di dati a una variabile quando è aperta. In questo modo dt = current data table (); non finisce accidentalmente a puntare sulla tabella corrente, mentre la tabella del database si sta aprendo.
dt = open database ("DNS ....
Lasciare fuori dt = current data table ();
Secondo, forzare dt per essere valutato prima di selezionare le righe. Non può essere valutato prima che termini l'apertura
dt << Esegui formule; // includi questo prima
dt << Seleziona dove (Escludi == "Escludi") << nascondi << Escludi;