LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Per il tutorial di oggi, mostrerò come automatizzare il processo di ordinamento di una colonna per un'altra colonna all'interno dei servizi di analisi di LuckyTemplates e SSAS o SQL Server. Puoi guardare il video completo di questo tutorial in fondo a questo blog.

In questo esempio, abbiamo la tabella Date con diverse colonne. Alcune colonne sono la parte intera, che andremo a nascondere; e alcune colonne sono la parte stringa, che mostreremo all'utente finale.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Quindi, abbiamo le colonne Calendar Year, Calendar Year Month e Month. Quello che vogliamo fare è automatizzare l'ordinamento di queste tre colonne in base alla loro parte intera. Ordinerò l'anno del calendario in base al numero dell'anno del calendario, il mese dell'anno del calendario in base al numero del mese dell'anno del calendario e il mese in base al numero del mese.

Ma non lo faremo uno per uno. Eseguiremo uno script che lo ordinerà automaticamente per questa particolare tabella. Nel caso in cui tu abbia più colonne per più tabelle, puoi usare quello script su quei set di tabelle.

Utilizzeremo Tabular Editor per scrivere quel codice C#, ma per ora Tabular Editor non ha un IntelliSense per il linguaggio C#. Per semplificare, useremo Visual Studio (VS), dove abbiamo il linguaggio IntelliSense per C# e puoi anche usare il codice VS.

Sommario

Ordinamento delle colonne in LuckyTemplates e SSAS tramite C#

Innanzitutto, dobbiamo creare un nuovo progetto all'interno di Visual Studio, che sarà l' app console (.Net Framework) per il linguaggio C#. Selezioniamo quel clic su Avanti.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Quindi, possiamo fornire qualsiasi nome al progetto. Lo chiamerò SortBy e farò clic su Crea.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Ora puoi vedere che abbiamo il codice. Una volta che il codice funziona, lo copieremo e incolleremo semplicemente all'interno dell'editor tabulare.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Tuttavia, affinché il codice funzioni all'interno di Visual Studio, è necessario impostare un riferimento a una libreria. E per questo, possiamo semplicemente fare clic su Riferimenti e scegliere l'opzione Gestisci pacchetti NuGet all'interno dell'opzione del browser.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

All'interno dell'opzione browse, dobbiamo scrivere analysis services . E poi, nelle opzioni disponibili, dobbiamo selezionare la seconda e fare clic su Installa. Inizierà l'installazione e ci vorranno alcuni secondi per il completamento dell'installazione.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Successivamente, dobbiamo scrivere all'interno del codice, Using Microsoft.AnalysisServices.Tabular e quindi scrivere un punto e virgola. Creeremo un oggetto server, quindi possiamo semplicemente scrivere Server , e il nome dell'oggetto server sarà Server stesso, e scriveremo New Server .

Quindi, in sostanza, stiamo creando un nuovo oggetto all'interno della memoria. E per connettere quel server al file LuckyTemplates, useremo un metodo dell'oggetto server. Scriviamo quindi server.Connect e qui forniremo il numero di porta su cui è in ascolto AnalysisServices all'interno di LuckyTemplates.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Per trovare quel numero di porta, andiamo su Strumenti esterni, facciamo clic su DAX Studio e nella parte inferiore troveremo l'host locale. Questo è il numero di codice su cui i servizi di analisi del server SQL che abbiamo all'interno di LuckyTemplates stanno ascoltando le modifiche che stiamo inviando tramite LuckyTemplates o qualsiasi altro strumento esterno.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Il server è una cosa, ma un server può avere anche più modelli nel caso di SSAS. Ma al momento, in LuckyTemplates, abbiamo un solo modello. Quindi, dichiareremo quel modello. Scriviamo qui Model è uguale a (=) server.Databases e accederemo al primissimo database all'interno di quel server quindi scriveremo .Model .

Ora testiamo se quella parte del codice funziona o meno. Per fare ciò, stamperemo semplicemente l'elenco di tutte le tabelle che abbiamo all'interno di quel modello di dati. Quindi, digiteremo qui, per ogni (Table t in model.Tables) , parentesi aperta e premiamo invio.

Successivamente, digitiamo Console.WriteLine (t.Name) . Per assicurarci che la finestra non si chiuda automaticamente una volta stampato il nome delle tabelle, scriveremo Console.ReadLine , parentesi di apertura e chiusura e un punto e virgola. Ora, tutto ciò che dobbiamo fare è fare clic sull'opzione Avvia e attendere che venga eseguita.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Puoi vedere che siamo in grado di stampare il nome delle tabelle che abbiamo all'interno del modello di dati. Abbiamo le date, il prodotto, il cliente e il negozio. Ciò conferma che la configurazione che abbiamo creato funziona.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Quindi ora possiamo effettivamente entrare nel cuore del codice e iniziare a creare il codice che ci aiuterà a ordinare quella colonna in base alla controparte intera.

Eliminiamo tutto ciò che abbiamo creato dalla parte ForEach . Manterremo il server e il modello così com'è. Dichiariamo una variabile che conterrà il nome della tabella su cui vogliamo iterare. Lo chiamerò DatesTable e il nome della tabella sarà fondamentalmente Dates .

Successivamente, avremo foreach var t in model.Tables , quindi useremo una clausola where , quindi possiamo dire dove T va a t.Name dovrebbe essere uguale a DatesTable . Se attualmente stiamo iterando su DatesTable, avvieremo un altro ciclo su tutte le colonne di tale DatesTable. Quindi, per questo, possiamo scrivere foreach var c in t.Columns .

Per verificare se stiamo iterando solo su DatesTable e abbiamo accesso a tutte le colonne di DatesTable, possiamo semplicemente stampare Console.WriteLine , e diremo c.Name .

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Se premo F5, puoi vedere che otteniamo l'accesso alle colonne.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Ora possiamo procedere oltre e scrivere altro codice.

Creeremo un elenco di tuple che conterrà altre tre colonne. Una delle colonne sarà la colonna di destinazione. La seconda colonna sarà la colonna attraverso la quale vogliamo ordinare la colonna di destinazione, e la terza colonna conterrà semplicemente vero o falso, sia che vogliamo nascondere la colonna attraverso la quale stiamo effettivamente ordinando.

Supponiamo di voler ordinare la colonna Anno di calendario in base al numero dell'anno di calendario. La prima colonna conterrà l'anno solare, la seconda colonna sarà per il numero dell'anno solare e la terza colonna deciderà se nascondere o meno la colonna del numero dell'anno solare dopo aver completato l'ordinamento.

E per questo, torniamo a Visual Studio, dove creeremo una nuova variabile. Puoi chiamarlo come vuoi. In questo esempio, lo chiamerò colOperations . Successivamente, scriveremo new , quindi creeremo un elenco e scriveremo il tipo di colonne (stringa, stringa e bool). Successivamente, creiamo le tuple.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Quindi, in sostanza, stiamo semplicemente creando un elenco di tre colonne e per tre colonne abbiamo fornito due righe. Ora all'interno del nostro ciclo foreach , avvieremo un ciclo for . Quindi, in sostanza, quello che stiamo dicendo è che dichiarare una variabile inizia con i in ogni iterazione. Se i è minore di colOperations.Count, incrementalo semplicemente .

Successivamente, scriveremo un'istruzione IF . Il c.Name appartiene al nome della colonna in cui ci troviamo attualmente. Quindi, abbiamo colOperations i . La i fondamentalmente ci consente di accedere a una particolare riga. E quando scriviamo .Item1 , siamo in grado di accedere alla prima colonna, seconda colonna o terza colonna.

Quindi per prima cosa useremo la colonna Item1 . Se questo è vero, scriviamo semplicemente c.SortByColumn dovrebbe essere uguale a t.Columns . Ricorda che t è l'oggetto table. Quindi, stiamo accedendo alle colonne da quella particolare tabella. Vogliamo il colOperations , la riga in cui siamo attualmente sulle operazioni di colonna e la colonna è fondamentalmente l' oggetto Item2 .

Infine, per nascondere quella particolare colonna attraverso la quale stiamo applicando l'ordinamento, scriviamo un'ultima riga di codice.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Quindi, ora che abbiamo scritto il codice principale che eseguiremo rispetto al nostro modello tabulare, possiamo semplicemente copiare il codice da var colOperations e portarlo in Tabular Editor, quindi eseguiremo lo stesso codice.

Ordinamento delle colonne in LuckyTemplates e SSAS tramite l'editor tabulare

Non useremo il server o l'oggetto modello perché dietro le quinte l'editor tabulare saprà automaticamente a quale modello di LuckyTemplates o modello di servizi di analisi deve connettersi. Pertanto, non è necessario utilizzare tali variabili perché è già compito dell'editor tabulare identificare come desidera connettersi a tali modelli.

Di nuovo in LuckyTemplates, avvieremo Tabular Editor 3 o Tabular Editor 2. Puoi utilizzare quello che preferisci. In questo caso, andiamo con Tabular Editor 3.

Andiamo alla scheda File, facciamo clic su Nuovo codice C# e chiudiamo l'opzione Proprietà. Quindi, possiamo incollare il codice qui. L'unica cosa di cui dobbiamo assicurarci è che invece di usare la variabile del modello è usare l'oggetto del modello . Quindi, usiamo la M maiuscola ed eseguiamo quel codice.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

Ora che lo script è stato eseguito correttamente e dice anche che mostra tre modifiche al modello, riporteremo le modifiche al modello di dati. Salveremo tutto ciò che abbiamo applicato a quelle colonne.

Di nuovo in LuckyTemplates, puoi vedere che il numero del mese è nascosto. Se clicco sulla colonna Mese e vado su Strumenti colonna e su Ordina per colonna , puoi vedere che quella particolare colonna è stata ordinata in base al numero del mese. Lo stesso vale per il numero del mese dell'anno del calendario.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#

L'anno solare è ordinato da solo perché non avevamo quella colonna all'interno di quel codice C#. Quindi, quello che possiamo fare è riavviare l'editor tabulare e creare un'altra tupla. E poi, ancora una volta eseguiamo quello script.

LuckyTemplates e SSAS: ordinamento delle colonne tramite TE3 e C#


Editor tabulare LuckyTemplates: revisione ed esercitazione della versione 3
Editor tabulare di LuckyTemplates 3: automazione con uno script
Codifica DAX all'interno dell'editor tabulare 3

Conclusione

È così facile automatizzare il processo di ordinamento di una colonna per un'altra colonna in e SSAS. Questo è stato un esempio molto semplice di come puoi eseguire quell'operazione all'interno della tabella Date. Ma puoi arricchire questo elenco aggiungendo più colonne e quindi controllando un'altra tabella.

In questo modo, puoi ridurre la quantità di tempo che devi dedicare all'ordinamento di queste colonne per gli stessi modelli che creerai più e più volte.

Spero che tu l'abbia trovato utile. Se avete domande, fatemelo sapere nella sezione commenti.


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere