Gezintiyi işleme
Gezinti Tabloları (veya gezinti tabloları), bağlayıcınız için kullanıcı dostu bir deneyim sağlamanın temel bir parçasıdır. Power Query deneyimi, veri kaynağı işleviniz için gerekli parametreleri girdikten ve veri kaynağıyla kimlik doğrulaması yaptıktan sonra bunları kullanıcıya görüntüler.
Arka planda gezinti tablosu, türü üzerinde tanımlanan belirli meta veri alanları içeren normal bir M Tablosu değeridir. Veri kaynağı işleviniz bu alanların tanımlandığı bir tablo döndürdüğünde Power Query gezgin iletişim kutusunu görüntüler. Kök düğüme sağ tıklayıp Düzenle'yi seçerek temel alınan verileri tablo değeri olarak görebilirsiniz.
Table.ToNavigationTable
bir gezinti tablosu oluşturmak için gereken tablo türü meta verilerini eklemek için işlevini kullanabilirsiniz Table.ToNavigationTable
.
Not
Şu anda bu işlevi kopyalayıp M uzantınıza yapıştırmanız gerekir. Gelecekte büyük olasılıkla M standart kitaplığına taşınacaktır.
Aşağıdaki tabloda bu işlevin parametreleri açıklanmaktadır:
Parametre | Ayrıntılar |
---|---|
table | Gezinti tablonuz. |
Keycolumns | Gezinti tablonuz için birincil anahtar görevi gören sütun adlarının listesi. |
Namecolumn | Gezginde görünen ad olarak kullanılması gereken sütunun adı. |
Datacolumn | Görüntülenecek Tablo veya İşlevi içeren sütunun adı. |
itemKindColumn | Görüntülenecek simge türünü belirlemek için kullanılacak sütunun adı. Sütun için geçerli değerlerin listesi için aşağıya bakın. |
itemNameColumn | Önizleme davranışını belirlemek için kullanılacak sütunun adı. Bu genellikle itemKind ile aynı değere ayarlanır. |
isLeafColumn | Bunun yaprak düğüm olup olmadığını veya düğümün başka bir gezinti tablosu içerecek şekilde genişletilip genişletilebileceğini belirlemek için kullanılan sütunun adı. |
işlevi aşağıdaki meta verileri tablo türüne ekler:
Alan | Parametre |
---|---|
NavigationTable.NameColumn | Namecolumn |
NavigationTable.DataColumn | Datacolumn |
NavigationTable.ItemKindColumn | itemKindColumn |
NavigationTable.IsLeafColumn | isLeafColumn |
Preview.DelayColumn | itemNameColumn |
ItemKind değerleri
Aşağıdaki öğe türü değerlerinin her biri gezinti tablosunda farklı bir simge sağlar.
- Akış
- Veritabanı
- DatabaseServer
- Boyut
- Tablo
- Klasör
- İşlev
- Görünüm
- Sayfa
- DefinedName
- Kaydet
Örnekler
Düz gezinti tablosu
Aşağıdaki kod örneği, üç tablo ve bir işlev içeren düz bir gezinti tablosu görüntüler.
shared NavigationTable.Simple = () =>
let
objects = #table(
{"Name", "Key", "Data", "ItemKind", "ItemName", "IsLeaf"},{
{"Item1", "item1", #table({"Column1"}, {{"Item1"}}), "Table", "Table", true},
{"Item2", "item2", #table({"Column1"}, {{"Item2"}}), "Table", "Table", true},
{"Item3", "item3", FunctionCallThatReturnsATable(), "Table", "Table", true},
{"MyFunction", "myfunction", AnotherFunction.Contents, "Function", "Function", true}
}),
NavTable = Table.ToNavigationTable(objects, {"Key"}, "Name", "Data", "ItemKind", "ItemName", "IsLeaf")
in
NavTable;
shared FunctionCallThatReturnsATable = () =>
#table({"DynamicColumn"}, {{"Dynamic Value"}});
Bu kod, Power BI Desktop'ta aşağıdaki Gezgin görüntüsüne neden olur:
Çok düzeyli gezinti tablosu
Veri kümeniz üzerinde hiyerarşik bir görünüm oluşturmak için iç içe gezinti tablolarını kullanabilirsiniz. Bunu, bu satırın IsLeaf
false
değerini olarak ayarlayarak (genişletilebilen bir düğüm olarak işaretler) ve sütunu başka bir gezinti tablosu olacak şekilde biçimlendirirsiniz Data
.
shared NavigationTable.Nested = () as table =>
let
objects = #table(
{"Name", "Key", "Data", "ItemKind", "ItemName", "IsLeaf"},{
{"Nested A", "n1", CreateNavTable("AAA"), "Table", "Table", false},
{"Nested B", "n2", CreateNavTable("BBB"), "Table", "Table", false},
{"Nested C", "n3", CreateNavTable("CCC"), "Table", "Table", false}
}),
NavTable = Table.ToNavigationTable(objects, {"Key"}, "Name", "Data", "ItemKind", "ItemName", "IsLeaf")
in
NavTable;
CreateNavTable = (message as text) as table =>
let
objects = #table(
{"Name", "Key", "Data", "ItemKind", "ItemName", "IsLeaf"},{
{"Item1", "item1", #table({"Column1"}, {{message}}), "Table", "Table", true},
{"Item2", "item2", #table({"Column1"}, {{message}}), "Table", "Table", true}
}),
NavTable = Table.ToNavigationTable(objects, {"Key"}, "Name", "Data", "ItemKind", "ItemName", "IsLeaf")
in
NavTable;
Bu kod, Power BI Desktop'ta aşağıdaki Gezgin görüntüsüne neden olur:
Dinamik gezinti tabloları
Bu temel bilgilerle daha karmaşık işlevler oluşturulabilir. Yukarıdaki örneklerin tümü gezinti tablosunda sabit kodlanmış varlıklar gösterse de, gezinti tablosunun belirli bir kullanıcının kullanabileceği varlıklara göre dinamik olarak nasıl oluşturulabileceğini görmek kolaydır. Dinamik gezinti tablolarında dikkat edilmesi gereken birkaç önemli nokta şunlardır:
- Belirli uç noktalara erişimi olmayan kullanıcılar için iyi bir deneyim sağlamak için hata işleme .
- Düğüm değerlendirmesi varsayılan olarak yavaştır; yaprak düğümler üst düğüm genişletilene kadar değerlendirilmez. Çok düzeyli dinamik gezinti tablolarının belirli uygulamaları, tüm ağacın hevesle değerlendirilmesine neden olabilir. Power Query'nin başlangıçta gezinti tablosunu işlerken yaptığı çağrı sayısını izlediğinden emin olun. Örneğin Table.InsertRows, bağımsız değişkenlerini değerlendirmesi gerekmeyen Table.FromRecords'tan 'lazier'dir.