Forum Italiano sui Prodotti NI

cancel
Showing results for 
Search instead for 
Did you mean: 

Operazioni con gli array

Solved!
Go to solution

Ciao,

ho importato un file excel e vorrei filtrarlo ed aggiungere delle note a seconda del rendimento.

Ho selezionato dal file solo le colonne necessarie e non essendo in grado di aggiungerne una nella 32 sostituisco il contenuto, anche se mi piacerebbe capire come fare ad aggiungerla.

Dopo il filtraggio in funzione del setup o della lavorazione l'array ho delle righe vuote e quando vado ad assemblare tutto insieme queste rimangono.

Potreste spiegarmi come faccio ad aggiungere una colonna e come eliminare le righe vuote.

Grazie.

Download All
0 Kudos
Message 1 of 5
(158 Views)

Il tuo codice è piuttosto farraginoso e contiene diversi elementi inutili. Ti consiglio di mantenere il Block Diagram il più compatto e ordinato possibile e usare abbondantemente Clean Up Wire in modo che si veda bene da dove partono e dove arrivano i fili.

Detto questo, il tutto funziona benino (righe vuote a parte) fino al Build Array finale. Qui otteniamo in output un array 3D (!), le cui centinaia di "fette" a 2D sono quasi identiche tra di loro. Non penso sia questo di cui hai bisogno.

Immagina di non avere le righe vuote - ti dirò poi come evitarle. Fino a quel punto hai ottenuto:

- un array 1D di intestazione

- un array 2D con rendimento basso

- un array 2D con rendimento OK

- un array 2D con rendimento eccessivo

- un array 2D con le righe di Setup

Immagino che tu voglia semplicemente "incollare" gli array 2D verticalmente in modo da ottenere un'unica tabellona? O mi sbaglio?

Paolo
-------------------
LV 7.1, 2011, 2017, 2019
0 Kudos
Message 2 of 5
(113 Views)

Il tuo codice è piuttosto farraginoso e contiene diversi elementi inutili. Ti consiglio di mantenere il Block Diagram il più compatto e ordinato possibile e usare abbondantemente Clean Up Wire in modo che si veda bene da dove partono e dove arrivano i fili.

 

Effettivamente ho fatto il clean dopo aver postato, ti ringrazio per avermelo fatto notare. 

 

 

Immagino che tu voglia semplicemente "incollare" gli array 2D verticalmente in modo da ottenere un'unica tabellona? O mi sbaglio?

 

Esattamente, in realtà una volta capito come si fa inizierò a controllare anche i setup e fare una distinzione anche in quelli ma penso che sia, in linea di principio, la stessa cosa. 

 

 

 

 

0 Kudos
Message 3 of 5
(109 Views)
Solution
Accepted by topic author franbecks

Ecco la mia versione del codice che spero faccia quello che chiedi.

Per evitare di avere righe vuote, bisogna semplicemente controllare che la riga (array 1D) che si sta aggiungendo non sia vuota, un po' come hai fatto nel loop di Filtro lavorazione. Una possibilità abbastanza recente - ma c'è già da alcuni anni - è usare le impostazioni del tunnel di uscita dal loop (fai right-click sul tunnel per vederle). Nel tuo caso è comodo usare il tunnel indexing e conditional: l'elemento viene aggiunto solo se nel terminale conditional arriva un True. Ho applicato la tecnica anche al loop di Filtro lavorazione per mostrare come il codice sia più compatto, ma anche più leggibile, per il fatto che non ci sono parti nascoste.

Per quanto riguarda la colonna "Rendimento", essendo l'ultima va semplicemente aggiunta in fondo alla riga con un Build Array banale (naturalmente evito di leggere la colonna 32 che non serve più).

Nota anche che le tue costanti in ingresso al loop ("Basso rendimento" e le altre due) non cambiano durante l'esecuzione del loop, quindi è inutile metterle in uno shift register.

Per finire, non ho bisogno di un loop aggiuntivo per creare la tabella finale: mi basta un unico Build Array in cui attacco i vari pezzi insieme.

 

tabella.png

Paolo
-------------------
LV 7.1, 2011, 2017, 2019
0 Kudos
Message 4 of 5
(93 Views)

Ciao,

ti ringrazio infinitamente.

Il tuo metodo è decisamente più snello ed intelligente che da oggi utilizzerò per lavorare sulle estrazioni excel.

0 Kudos
Message 5 of 5
(83 Views)