Skapa en datumtabell i LuckyTemplates
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
För dagens handledning kommer jag att visa hur du kan automatisera processen att sortera en kolumn efter en annan kolumn inuti LuckyTemplates och SSAS- eller SQL-serveranalystjänster. Du kan se hela videon av denna handledning längst ner på den här bloggen.
I det här exemplet har vi tabellen Datum med flera kolumner. Vissa kolumner är heltalsdelen, som vi ska dölja; och några kolumner är strängdelen, som vi kommer att visa för slutanvändaren.
Så vi har kolumnerna Kalenderår, Kalenderår Månad och Månad. Vad vi vill göra är att automatisera sorteringen av dessa tre kolumner efter deras heltalsdel. Jag sorterar kalenderåret efter kalenderårsnummer, kalenderårsmånad efter kalenderårsmånadsnummer, samt månad efter månadsnummer.
Men vi kommer inte att göra det en efter en. Vi kör ett skript som automatiskt sorterar det för just den här tabellen. Om du har flera kolumner för flera tabeller kan du använda det skriptet på dessa tabelluppsättningar.
Vi ska användaför att skriva den C#-koden, men för närvarande har Tabular Editor ingen IntelliSense för C#-språket. För att göra det enklare kommer vi att använda Visual Studio (VS), där vi har IntelliSense for C#-språket och du kan även använda VS-kod.
Innehållsförteckning
Sortera kolumner i LuckyTemplates och SSAS med C#
Först måste vi skapa ett nytt projekt i Visual Studio, som kommer att vara konsolappen (.Net Framework) för C#-språket. Låt oss välja att klicka på Nästa.
Sedan kan vi ge projektet vilket namn som helst. Jag ska kalla detta för SortBy och klicka på Skapa.
Nu kan du se att vi har koden. När koden fungerar kommer vi helt enkelt att kopiera och klistra in den i Tabular Editor.
Men för att koden ska fungera i Visual Studio måste vi ställa in en referens till ett bibliotek. Och för det kan vi helt enkelt klicka på referenserna och välja alternativet Hantera NuGet-paket i webbläsaralternativet.
Inuti bläddringsalternativet måste vi skriva. Och sedan, i alternativen som är tillgängliga, måste vi välja det andra och klicka på Installera. Det kommer att påbörja installationen och det tar några sekunder för installationen att slutföras.
Därefter måste vi skriva i koden med hjälp av Microsoft.AnalysisServices.Tabular och sedan skriva ett semikolon. Vi kommer att skapa ett serverobjekt, så vi kan helt enkelt skriva Server , och namnet på serverobjektet kommer att vara Server själv, och vi kommer att skriva New Server .
Så i princip skapar vi ett nytt objekt inuti minnet. Och för att ansluta den servern till LuckyTemplates-filen kommer vi att använda en metod för serverobjektet. Så låt oss skriva server.Connect , och här ger vi portnumret som AnalysisServices inuti LuckyTemplates lyssnar på.
För att hitta det portnumret går vi till Externa verktyg, klickar på , och längst ner hittar vi den lokala värden. Det är kodnumret på vilket SQL-serveranalystjänster som vi har inuti LuckyTemplates lyssnar på ändringarna som vi skickar via LuckyTemplates eller något annat externt verktyg.
Servern är en sak, men en server kan ha flera modeller också i fallet med SSAS. Men just nu, i LuckyTemplates, har vi bara en modell. Så vi kommer att förklara den modellen. Vi skriver här Modell är lika med (=) server.Databaser , och vi kommer åt den allra första databasen inuti den servern så vi skriver .Model .
Låt oss nu testa om den delen av koden fungerar eller inte. För att göra det skriver vi helt enkelt ut listan över alla tabeller som vi har i den datamodellen. Så vi skriver in här, för varje (Tabell t i model.Tables), öppna parentes och tryck på enter.
Efter det skriver vi in Console.WriteLine (t.Name) . För att se till att fönstret inte stängs automatiskt när det väl har skrivit ut namnet på tabellerna, skriver vi Console.ReadLine , öppna och stänger parentes och ett semikolon. Nu behöver vi bara klicka på Start- alternativet och vänta på att det ska köras.
Du kan se att vi kan skriva ut namnet på de tabeller som vi har inuti datamodellen. Vi har datum, produkt, kund och butik. Det bekräftar att inställningen vi har skapat fungerar.
Så nu kan vi faktiskt komma in i kodens kött och börja skapa koden som hjälper oss att sortera den kolumnen efter heltalsmotsvarigheten.
Låt oss bli av med allt som vi har skapat från ForEach -delen. Vi kommer att behålla servern och modellen som den är. Låt oss deklarera en variabel som kommer att innehålla namnet på tabellen som vi vill iterera på. Jag kommer att namnge den som DatesTable , och namnet på tabellen kommer i princip att vara Dates .
Därefter kommer vi att ha för varje var t i model.Tables , sedan ska vi använda en where- sats, så att vi kan säga var T går till t.Name ska vara lika med DatesTable . Om vi för närvarande itererar på DateTable, kommer vi att initiera en annan loop över alla kolumner i den DatesTable. Så för det kan vi skriva för varje var c i t.Columns .
För att testa om vi bara itererar över DateTable och vi har tillgång till alla kolumner i DatesTable, kan vi helt enkelt skriva ut Console.WriteLine , och vi kommer att säga c.Name .
Om jag trycker på F5 kan du se att vi får tillgång till kolumnerna.
Nu kan vi gå vidare och skriva mer kod.
Vi kommer att skapa en lista med tupler som kommer att innehålla ytterligare tre kolumner. En av kolumnerna kommer att vara målkolumnen. Den andra kolumnen kommer att vara kolumnen genom vilken vi vill sortera målkolumnen, och den tredje kolumnen kommer helt enkelt att hålla sant eller falskt, oavsett om vi vill dölja kolumnen som vi faktiskt sorterar genom.
Låt oss säga att vi vill sortera kolumnen Kalenderår efter kalenderårsnummer. Den första kolumnen kommer att innehålla kalenderåret, den andra kolumnen kommer att vara för kalenderårsnumret, och den tredje kolumnen kommer att avgöra om vi vill dölja kolumnen Kalenderårsnummer efter att vi har slutfört sorteringen eller inte.
Och för det, låt oss gå tillbaka till Visual Studio, där vi ska skapa en ny variabel. Du kan namnge det vad du vill. I det här exemplet kallar jag det colOperations . Därefter kommer vi att skriva new , och sedan ska vi skapa en lista och vi skriver typen av kolumner (sträng, sträng och bool). Efter det skapar vi tuplarna.
Så i grund och botten skapar vi helt enkelt en lista med tre kolumner, och för tre kolumner har vi tillhandahållit två rader. Nu inuti vår foreach loop kommer vi att initiera en for loop . Så i grund och botten, vad vi säger är att deklarera en variabel som börjar med i i varje iteration. Om i är mindre än colOperations.Count ökar du helt enkelt det .
Därefter ska vi skriva ett IF- uttalande. c.Name tillhör namnet på kolumnen som vi för närvarande befinner oss i. Sedan har vi colOperations i . I:et låter oss i princip komma åt en viss rad. Och när vi skriver .Item1 kan vi komma åt den första kolumnen, andra kolumnen eller tredje kolumnen.
Så först ska vi använda kolumnen Artikel 1 . Om det är sant skriver vi helt enkelt att c.SortByColumn ska vara lika med t.Columns . Kom ihåg att t är tabellobjektet. Sedan kommer vi åt kolumnerna från den specifika tabellen. Vi vill ha colOperations , raden som vi för närvarande är på kolumnoperationerna, och kolumnen är i princip objektet Item2 .
Slutligen, för att dölja den specifika kolumnen genom vilken vi tillämpar sorteringen, skriver vi en sista rad med kod.
Så nu när vi har skrivit huvudkoden som vi ska köra mot vår tabellmodell kan vi helt enkelt kopiera koden från var colOperations och ta den till Tabular Editor, och sedan kör vi samma kod.
Sortera kolumner i LuckyTemplates och SSAS med hjälp av tabellredigerare
Vi kommer inte att använda servern eller modellobjektet eftersom Tabular Editor bakom scenen automatiskt kommer att veta vilken LuckyTemplates-modell eller analystjänstmodellen den måste ansluta till. Så vi behöver inte använda dessa variabler eftersom det redan är uppgiften att identifiera hur den vill ansluta till dessa modeller.
Tillbaka i LuckyTemplates kommer vi att lansera antingen Tabular Editor 3 eller Tabular Editor 2. Du kan använda vilken du vill. I det här fallet, låt oss gå med Tabular Editor 3.
Vi går till fliken Arkiv, klickar på Ny C#-kod och stänger alternativet Egenskaper. Sedan kan vi klistra in koden här. Det enda vi behöver försäkra oss om är att istället för att använda modellvariabeln är att använda modellobjektet . Så låt oss använda den stora M och köra den koden.
Nu när skriptet har körts framgångsrikt och det också säger visar tre modelländringar, kommer vi att återföra ändringarna till datamodellen. Vi sparar allt vi har använt på dessa kolumner.
Tillbaka i LuckyTemplates kan du se att månadsnumret är dolt. Om jag klickar på kolumnen Månad och går till kolumnverktygen och till kolumnen Sortera efter kan du se att just den kolumnen har sorterats efter månadsnummer. Detsamma gäller för kalenderårsmånadsnummer.
Kalenderåret sorteras av sig själv eftersom vi inte hade den kolumnen i den C#-koden. Så vad vi kan göra är att starta tillbaka tabellredigeraren och skapa en annan tuppel. Och sedan kör vi det skriptet igen.
Slutsats
Så enkelt är det att automatisera processen att sortera en kolumn efter en annan kolumnoch SSAS. Detta var ett mycket grundläggande exempel på hur du kan göra den operationen i tabellen Datum. Men du kan berika den här listan genom att lägga till fler kolumner och sedan leta efter en annan tabell.
På så sätt kan du minska den tid du måste lägga på att sortera dessa kolumner för samma modeller som du kommer att skapa om och om igen.
Jag hoppas att du har funnit detta till hjälp. Om du har några frågor, låt mig bara veta i kommentarsfältet.
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.
I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.
Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.
Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.
I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.
I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.
I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.
I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.
Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.