Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
Pour le didacticiel d'aujourd'hui, je vais montrer comment vous pouvez automatiser le processus de tri d'une colonne par une autre colonne dans les services d'analyse LuckyTemplates et SSAS ou SQL Server. Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.
Dans cet exemple, nous avons la table Dates avec plusieurs colonnes. Certaines colonnes sont la partie entière, que nous allons cacher ; et certaines colonnes sont la partie chaîne, que nous allons montrer à l'utilisateur final.
Nous avons donc les colonnes Année civile, Mois de l'année civile et Mois. Ce que nous voulons faire, c'est automatiser le tri de ces trois colonnes par leur partie entière. Je vais trier l'année civile par le numéro de l'année civile, le mois de l'année civile par le numéro du mois de l'année civile, ainsi que le mois par le numéro du mois.
Mais nous ne le ferons pas un par un. Nous allons exécuter un script qui triera automatiquement cela pour cette table particulière. Si vous avez plusieurs colonnes pour plusieurs tables, vous pouvez utiliser ce script sur ces ensembles de tables.
Nous allons utiliser Tabular Editor pour écrire ce code C#, mais pour l'instant, Tabular Editor n'a pas d'IntelliSense pour le langage C#. Pour faciliter les choses, nous utiliserons Visual Studio (VS), où nous avons le langage IntelliSense pour C# et vous pouvez également utiliser le code VS.
Table des matières
Tri des colonnes dans LuckyTemplates et SSAS à l'aide de C#
Tout d'abord, nous devons créer un nouveau projet dans Visual Studio, qui sera l' application console (.Net Framework) pour le langage C#. Sélectionnons cela, cliquez sur Suivant.
Ensuite, nous pouvons donner n'importe quel nom au projet. Je vais l'appeler SortBy et cliquer sur Créer.
Maintenant, vous pouvez voir que nous avons le code. Une fois que le code fonctionne, nous allons simplement le copier et le coller dans l'éditeur tabulaire.
Mais, pour que le code fonctionne dans Visual Studio, nous devons définir une référence à une bibliothèque. Et pour cela, nous pouvons simplement cliquer sur les références et choisir l'option Gérer les packages NuGet dans l'option du navigateur.
Dans l'option de navigation, nous devons écrire des services d'analyse . Et puis, dans les options disponibles, nous devons sélectionner la seconde et cliquer sur Installer. Cela commencera l'installation et cela prendra quelques secondes pour que l'installation se termine.
Ensuite, nous devons écrire dans le code, Utilisation de Microsoft.AnalysisServices.Tabular , puis écrire un point-virgule. Nous allons créer un objet serveur, nous pouvons donc simplement écrire Server , et le nom de l'objet serveur sera Server lui-même, et nous allons écrire New Server .
Donc, fondamentalement, nous créons un nouvel objet à l'intérieur de la mémoire. Et pour connecter ce serveur au fichier LuckyTemplates, nous allons utiliser une méthode de l'objet serveur. Alors, écrivons server.Connect , et ici nous fournirons le numéro de port sur lequel AnalysisServices à l'intérieur de LuckyTemplates écoute.
Pour trouver ce numéro de port, nous allons dans Outils externes, cliquez sur DAX Studio , et en bas, nous trouverons l'hôte local. C'est le numéro de code sur lequel les services d'analyse de serveur SQL que nous avons à l'intérieur de LuckyTemplates écoutent les modifications que nous envoyons via LuckyTemplates ou tout autre outil externe.
Le serveur est une chose, mais un serveur peut également avoir plusieurs modèles dans le cas de SSAS. Mais pour le moment, dans LuckyTemplates, nous n'avons qu'un seul modèle. Donc, nous allons déclarer ce modèle. Nous écrivons ici Model est égal à (=) server.Databases , et nous accéderons à la toute première base de données à l'intérieur de ce serveur, nous écrirons donc .Model .
Testons maintenant si cette partie du code fonctionne ou non. Pour ce faire, nous allons simplement imprimer la liste de toutes les tables que nous avons à l'intérieur de ce modèle de données. Donc, nous allons taper ici, pour chacun (Table t dans model.Tables) , ouvrez le crochet et appuyez sur Entrée.
Après cela, nous tapons Console.WriteLine (t.Name) . Pour vous assurer que la fenêtre ne se ferme pas automatiquement une fois qu'elle a imprimé le nom des tables, nous écrirons que Console.ReadLine , ouvrez et fermez les parenthèses et un point-virgule. Maintenant, tout ce que nous avons à faire est de cliquer sur l' option Démarrer et d'attendre qu'elle s'exécute.
Vous pouvez voir que nous pouvons imprimer le nom des tables que nous avons à l'intérieur du modèle de données. Nous avons les dates, le produit, le client et le magasin. Cela confirme que la configuration que nous avons créée fonctionne.
Alors maintenant, nous pouvons réellement entrer dans le vif du code et commencer à créer le code qui nous aidera à trier cette colonne par la contrepartie entière.
Débarrassons-nous de tout ce que nous avons créé à partir de la partie ForEach . Nous allons garder le serveur et le modèle tels quels. Déclarons une variable qui contiendra le nom de la table sur laquelle nous voulons itérer. Je vais le nommer DatesTable , et le nom de la table sera essentiellement Dates .
Ensuite, nous aurons foreach var t dans model.Tables , puis nous allons utiliser une clause where , afin que nous puissions dire où T va à t.Name doit être égal à DatesTable . Si nous itérons actuellement sur le DatesTable, nous allons initier une autre boucle sur toutes les colonnes de ce DatesTable. Donc pour cela, on peut écrire foreach var c dans t.Columns .
Pour tester si nous itérons uniquement sur le DatesTable et que nous avons accès à toutes les colonnes du DatesTable, nous pouvons simplement imprimer Console.WriteLine , et nous allons dire c.Name .
Si j'appuie sur F5, vous pouvez voir que nous avons accès aux colonnes.
Maintenant, nous pouvons aller plus loin et écrire plus de code.
Nous allons créer une liste de tuples qui contiendra trois colonnes de plus. L'une des colonnes sera la colonne cible. La deuxième colonne sera la colonne à travers laquelle nous voulons trier la colonne cible, et la troisième colonne contiendra simplement vrai ou faux, si nous voulons masquer la colonne à travers laquelle nous trions réellement.
Supposons que nous voulions trier la colonne Année civile par le numéro de l'année civile. La première colonne contiendra l'année civile, la deuxième colonne sera pour le numéro de l'année civile et la troisième colonne décidera si nous voulons masquer la colonne du numéro de l'année civile après avoir terminé le tri ou non.
Et pour cela, revenons à Visual Studio, où nous allons créer une nouvelle variable. Vous pouvez lui donner le nom que vous voulez. Dans cet exemple, je l'appellerai colOperations . Ensuite, nous allons écrire new , puis nous allons créer une liste et nous allons écrire le type des colonnes (string, string et bool). Après cela, nous créons les tuples.
Donc, fondamentalement, nous créons simplement une liste de trois colonnes, et pour trois colonnes, nous avons fourni deux lignes. Maintenant, dans notre boucle foreach , nous allons lancer une boucle for . Donc, fondamentalement, ce que nous disons, c'est que déclarer une variable commence par i à chaque itération. Si i est inférieur à colOperations.Count, incrémentez-le simplement .
Ensuite, nous allons écrire une instruction IF . Le c.Name appartient au nom de la colonne dans laquelle nous nous trouvons actuellement. Ensuite, nous avons le colOperations i . Le i nous permet essentiellement d'accéder à une ligne particulière. Et lorsque nous écrivons .Item1 , nous pouvons accéder à la première colonne, la deuxième colonne ou la troisième colonne.
Nous allons donc d'abord utiliser la colonne Item1 . Si c'est vrai, nous écrivons simplement que c.SortByColumn doit être égal à t.Columns . Rappelez-vous que t est l'objet table. Ensuite, nous accédons aux colonnes de cette table particulière. Nous voulons le colOperations , la ligne sur laquelle nous nous trouvons actuellement sur les opérations de colonne, et la colonne est essentiellement l' objet Item2 .
Enfin, pour masquer cette colonne particulière à travers laquelle nous appliquons le tri, nous écrivons une dernière ligne de code.
Alors maintenant que nous avons écrit le code principal que nous allons exécuter sur notre modèle tabulaire, nous pouvons simplement copier le code de var colOperations et le transférer dans l'éditeur tabulaire, puis nous allons exécuter le même code.
Tri des colonnes dans LuckyTemplates et SSAS à l'aide de l'éditeur tabulaire
Nous n'allons pas utiliser le serveur ou l'objet de modèle, car en arrière-plan, Tabular Editor saura automatiquement à quel modèle LuckyTemplates ou modèle de services d'analyse il doit se connecter. Nous n'avons donc pas besoin d'utiliser ces variables car c'est déjà le travail de l' éditeur tabulaire d'identifier comment il souhaite se connecter à ces modèles.
De retour dans LuckyTemplates, nous allons lancer Tabular Editor 3 ou Tabular Editor 2. Vous pouvez utiliser celui que vous voulez. Dans ce cas, allons-y avec Tabular Editor 3.
Nous allons dans l'onglet Fichier, cliquez sur Nouveau code C# et fermez l'option Propriétés. Ensuite, nous pouvons coller le code ici. La seule chose dont nous devons nous assurer est qu'au lieu d'utiliser la variable de modèle, nous utilisons l'objet de modèle . Alors, utilisons le M majuscule et exécutons ce code.
Maintenant que le script a été exécuté avec succès et qu'il indique également trois modifications de modèle, nous allons valider les modifications dans le modèle de données. Nous enregistrerons tout ce que nous avons appliqué à ces colonnes.
De retour dans LuckyTemplates, vous pouvez voir que le numéro de mois est masqué. Si je clique sur la colonne Mois et que je vais dans les outils de colonne et dans la colonne Trier par , vous pouvez voir que cette colonne particulière a été triée par numéro de mois. Il en va de même pour le numéro de mois de l'année civile.
L'année civile est triée par elle-même car nous n'avions pas cette colonne dans ce code C#. Donc, ce que nous pouvons faire, c'est relancer l'éditeur tabulaire et créer un autre tuple. Et puis, encore une fois, nous exécutons ce script.
Éditeur tabulaire LuckyTemplates : Examen et didacticiel de la version 3
Éditeur tabulaire LuckyTemplates 3 : Automatiser avec un script
Codage DAX dans l'éditeur tabulaire 3
Conclusion
C'est aussi simple qu'il est d'automatiser le processus de tri d'une colonne par une autre colonne dans et SSAS. C'était un exemple très basique de la façon dont vous pouvez effectuer cette opération dans la table Dates. Mais vous pouvez enrichir cette liste en ajoutant plus de colonnes, puis rechercher une autre table.
De cette façon, vous pouvez réduire le temps que vous devez consacrer au tri de ces colonnes pour les mêmes modèles que vous allez créer encore et encore.
J'espère que vous avez trouvé cela utile. Si vous avez des questions, faites-le moi savoir dans la section des commentaires.
Qu'est-ce que le self en Python ? Exemples concrets
Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.
Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.
Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.
Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.
Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.
Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.
Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.
Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.
Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir