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.


Power Automate si applica a ogni azione nei flussi di lavoro

Power Automate si applica a ogni azione nei flussi di lavoro

Scopri l

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare meglio le misure DAX per un flusso di lavoro più efficiente.

Filtro Power Apps: cosè e come si usa?

Filtro Power Apps: cosè e come si usa?

Scopri come utilizzare la funzione di filtro in Power Apps e come incorporarla nelle formule esistenti all

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Connettori Power Automate: numero, testo e data e ora

Connettori Power Automate: numero, testo e data e ora

Acquisisci familiarità con i connettori Power Automate per la manipolazione di numeri, testo e date/ore.

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Ora, è molto facile studiare il budget rispetto all

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 articolo tratta anche come importare oggetti da R a LuckyTemplates.

Che cosè Power Query e M Language: una panoramica dettagliata

Che cosè Power Query e M Language: una panoramica dettagliata

Scopri tutto su Power Query e il linguaggio M per la trasformazione e la preparazione dei dati nel desktop di LuckyTemplates.

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

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.