Aracılığıyla paylaş


Relate ve Unrelate işlevleri

Şunlar için geçerlidir: Tuval uygulamaları Model temelli uygulamalar

Relate ve Unrelate işlevleri, iki tablonun kayıtlarını bir-çok veya çok-çok ilişkisi aracılığıyla ilişkilendirir.

Açıklama

Relate işlevi, Microsoft Dataverse'ta bir-çok veya çok-çok ilişkileri aracılığıyla iki kaydı bağlar. Unrelateişlevi, işlemi tersine çevirir ve bağlantıyı kaldırır.

Bir-çok ilişkileri için, Çok tablosunda, Bir tablosundaki bir kayda işaret eden bir yabancı anahtar alanı vardır. Relate, bu alanı Bir tablosundaki belirli bir kayda işaret edecek şekilde ayarlar; Unrelate ise bu alanı boş olarak ayarlar. Alan Relate çağrıldığında zaten ayarlanmışsa, mevcut bağlantı yeni bağlantı lehine kaybolur. Bu alanı, Patch işlevini veya Edit form denetimini kullanarak da ayarlayabilirsiniz; Relate işlevini kullanmanız gerekmez.

çok-çok ilişkileri için, kayıtları bağlayan sistem bir gizli birleştirme tablosu tutar. Bu birleşim tablosuna doğrudan erişemezsiniz; bu, yalnızca bir-çok projeksiyonla okunabilir ve Relate ve Unrelate işlevleriyle ayarlanabilir. Her iki ilişkili tabloda da yabancı anahtar yoktur.

İlk bağımsız değişkende belirttiğiniz tablonun verileri, değişikliği yansıtacak şekilde yenilenir ancak ikinci bağımsız değişkende belirttiğiniz tablonun verileri yenilenmez. Bu verilerin, işlemin sonucu göstermek üzere Refresh işlevi kullanılarak el ile yenilenmesi gerekir.

Bu işlevler hiçbir zaman bir kayıt oluşturmaz veya silmez. Yalnızca zaten varolan iki kaydı birbirleriyle ilişkilendirebilir veya ilişkilerini kaldırır.

Bu işlevleri yalnızca davranış formüllerinde kullanabilirsiniz.

Not

Bu işlevler önizleme özelliğinin bir parçasıdır ve davranışları yalnızca İlişkisel veriler, seçenek kümeleri ve CDS için diğer yeni özellikler özelliği etkinleştirilmişse kullanılabilir. Bu, yeni uygulamalar için varsayılan olarak etkin olan uygulama düzeyinde bir ayardır. Bu özellik anahtarını bulmak için Ayarlar'ı seçin ve sonra Yaklaşan özellikler'i seçin. Geri bildiriminiz bizim için çok değerli. Lütfen düşüncelerinizi Power Apps topluluk forumları aracılığıyla bize bildirin.

Sözdizimi

Relate( Table1RelatedTable, Table2Record )

  • Table1RelatedTable - Gerekli. Table1 kaydı için, Table2 tablosunun kayıtları bir-çok veya çok-çok ilişkisi üzerinden ilişkilendirilir.
  • Table2Record - Gerekli. İlişkiye eklenecek Table2 kaydı.

Unrelate( Table1RelatedTable, Table2Record )

  • Table1RelatedTable - Gerekli. Table1 kaydı için, Table2 tablosunun kayıtları bir-çok veya çok-çok ilişkisi üzerinden ilişkilendirilir.
  • Table2Record - Gerekli. İlişkiden kaldırılacak Table2 kaydı.

Örnekler

Power Apps portalının tablo görüntüleyicisinde görüldüğü gibi, aşağıdaki ilişkilere sahip olan bir Ürünler tablosunu ele alalım:

İlişki görünen adı İlgili tablo İlişki türü
Product Reservation Reservation Bir-çok
Product ↔ Contact Contact Çok-çok

Products ve Reservations Bir-Çok ilişkisiyle ilişkilendirilmiştir. Rezervasyonlar tablosunun ilk kaydını Ürünler tablosunun ilk kaydıyla ilişkilendirmek için:

Relate( First( Products ).Reservations, First( Reservations ) )

Bu kayıtlar arasındaki ilişkiyi kaldırmak için:

Unrelate( First( Products ).Reservations, First( Reservations ) )

Hiçbir zaman bir kayıt oluşturulmadı veya kaldırılmadı, yalnız kayıtlar arasındaki ilişki değiştirildi.

Products ve Contacts Çok-Çok ilişkisiyle ilişkilendirilmiştir. İlgili Kişiler tablosunun ilk kaydını Ürünler tablosunun ilk kaydıyla ilişkilendirmek için:

Relate( First( Products ).Contacts, First( Contacts ) )

Çok-Çok ilişkileri simetrik olduğundan, bunu karşıt yönde de yapabildik:

Relate( First( Contacts ).Products, First( Products ) )

Bu kayıtlar arasındaki ilişkiyi kaldırmak için:

Unrelate( First( Products ).Contacts, First( Contacts ) )

veya:

Unrelate( First( Contacts ).Products, First( Products ) )

Aşağıdaki adımlar, ilgili kayıtları seçmek için Gallery ve Combo box denetimleriyle birlikte bir uygulama kullanarak bu tablolarda tam olarak bu işlemleri gerçekleştirir.

Bu örnekler, ortamınıza yüklenen örnek verilere bağlıdır. Örnek verileri içeren bir deneme ortamı oluşturun veya örnek verileri mevcut bir ortama ekleyin.

Bir-çok

Relate işlevi

Öncelikle bir ürünle ilişkili rezervasyonları görüntülemek ve yeniden atamak için basit bir uygulama oluşturacaksınız.

  1. Baştan bir tablet uygulaması oluşturun.

  2. Görünüm sekmesinde Veri kaynakları'nı seçin.

  3. Veri bölmesinde, Veri ekle> Ürünler'i seçin.
    Ürünler tablosu, daha önce yüklenen örnek verilerin bir parçasıdır.

  4. Ekle sekmesinde, boş bir dikey Gallery denetimi ekleyin.

  5. Yeni eklediğiniz denetimin Gallery1 olarak adlandırıldığından emin olun ve sonra denetimi taşıyın ve ekranın sol tarafını dolduracak şekilde yeniden boyutlandırın.

  6. Özellikler sekmesinde, Gallery1 öğesinin Items özelliğini Products ve Düzeni Görüntü ve başlık olarak ayarlayın.

    ProductsGallery yapılandırma.

  7. Gallery1'de Label denetiminin Title1 olarak adlandırıldığından emin olun ve Text özelliğini ThisItem.Name olarak ayarlayın.

    Etiketi Gallery1'de yapılandırma.

  8. Sonraki öğenin Gallery1'e eklenmesini önlemek için ekranı seçin. İkinci bir boş dikey Gallery denetimi ekleyin ve Gallery2 olarak adlandırıldığından emin olun.

    Gallery2 kullanıcının Gallery1'de seçtiği herhangi bir ürünle ilgili rezervasyonları gösterir.

  9. Ekranın sağ üst çeyreğini dolduracak şekilde Gallery2'yi taşıyın ve yeniden boyutlandırın.

  10. (isteğe bağlı) Sonraki grafikte gösterildiği şekilde Gallery2'nin üstüne mavi Label denetimini ekleyin.

  11. Formül çubuğunda, Gallery2'nin Items özelliğini Gallery1.Selected.Reservations olarak ayarlayın.

    Gallery2 Öğelerini yapılandırma.

  12. Özellikler bölmesinde, Gallery2'nin Düzenini Başlık olarak ayarlayın.

    Gallery2 Düzenini yapılandırma.

  13. Gallery2'de, Combo box denetimi ekleyin, ComboBox1 olarak adlandırıldığından emin olun ve Gallery2'deki diğer denetimleri engellemesini önlemek için taşıyın ve yeniden boyutlandırın.

  14. Özellikler sekmesinde ComboBox1'in Items özelliğini Products olarak ayarlayın.

    Items özelliğini Products olarak ayarlama.

  15. Özellikler sekmesinde aşağıya gidin ve ComboBox1'in Allow multiple selection özelliğini Kapalı olarak ayarlayın.

    Birden çok seçime izin ver'i Kapalı olarak ayarlama.

  16. Formül çubuğunda, ComboBox1'in DefaultSelectedItems özelliğini ThisItem.'Product Reservation' olarak ayarlayın.

    ReserveCombo için DefaultSelectedItems ayarlama.

  17. Gallery2'de NextArrow2'nin OnSelect özelliğini bu formüle ayarlayın:

    Relate( ComboBox1.Selected.Reservations, ThisItem )
    

    Kullanıcı bu simgeyi seçtiğinde, geçerli rezervasyon kullanıcının ComboBox1'de seçtiği ürüne dönüşür.

    NextArrow2 yapılandırma.

  18. Uygulamayı Önizleme modunda test etmek için F5 tuşuna basın.

Bu uygulamayla kullanıcı, rezervasyonu bir üründen diğerine taşıyabilir. Bir üründeki rezervasyon için, kullanıcı ComboBox1'de farklı bir ürün seçebilir ve ardından rezervasyonu değiştirmek için NextArrow2'yi seçebilir.

Bir-çok uygulamasında Relate işlevini gösterme.

Unrelate işlevi

Bu aşamada, ilişkiyi bir kayıttan diğerine taşıyabilirsiniz ancak ilişkiyi tamamen kaldıramazsınız. Herhangi bir üründen rezervasyon kaydının bağlantısını kaldırmak için Unrelate işlevini kullanabilirsiniz.

  1. Görünüm sekmesinde Veri kaynakları'nı seçin.

  2. Veri bölmesinde Veri kaynağı ekle>Microsoft Dataverse>Rezervasyonlar>Bağla'yı seçin.

  3. Gallery2'de NextArrow2 için OnSelect özelliğini bu formüle ayarlayın:

    If( IsBlank( ComboBox1.Selected ),
        Unrelate( Gallery1.Selected.Reservations, ThisItem ),
        Relate( ComboBox1.Selected.Reservations, ThisItem )
    );
    Refresh( Reservations )
    

    Sağ simgesini yapılandırma.

  4. Gallery2'yi seçip Ctrl-C tuşlarına basarak Panoya kopyalayın.

  5. CTRL-V tuşlarına basarak aynı ekrana Gallery2'nin bir kopyasını yapıştırın ve ardından ekranın alt sağ çeyreğine taşıyın.

  6. (isteğe bağlı) Gallery2'nin üstüne bir etiket eklediyseniz, bu etiket için önceki iki adımı tekrarlayın.

  7. Gallery2'nin kopyasının Gallery2_1 olarak adlandırıldığından emin olun ve Items özelliğini bu formüle ayarlayın:

    Filter( Reservations, IsBlank( 'Product Reservation' ) )
    

    Bir temsilci atama uyarısı görüntülenir, ancak bu örnekteki küçük miktarda veri için gerekli değildir.

    Gallery2_1'in Items özelliğini ayarlama.

Bu değişikliklerle, kullanıcılar ürün rezerve etmemiş olması durumunda bir ilgili kişiye ilişkin seçimi ComboBox1'den silebilirler. Bir ürün rezerve etmemiş olan ilgili kişiler, kullanıcıların her ilgili kişiye bir ürün atayabilecekleri Gallery2_1'de görüntülenir.

Bir-çok uygulamasında Relate ve Unrelate işlevlerini gösterme.

Çok-çok

Çok-çok ilişkisi oluşturma

Örnek veriler çok-çok ilişkisi içermez ancak Ürünler tablosu ile İlgili Kişiler tablosu arasında bu tür bir ilişki oluşturacaksınız. Kullanıcılar, her bir ürünü birden çok ilgili kişi ve her ilgili kişiyi birden çok ürünle ilişkilendirebilir.

  1. Bu sayfada, sol gezinti çubuğundan Veri'yi ve ardından Tablolar'ı seçin.

    Tablo listesini açma.

  2. Tablo filtresini tüm tablolar dahil olacak şekilde değiştirin.

    Varsayılan olarak, örnek tablolar görünmez.

    Tablo filtresini kaldırma.

  3. Aşağı kaydırın, Ürün tablosunu açın ve İlişkiler'i seçin.

  4. İlişki ekle>Çok-çok öğesini seçin.

  5. İlişki için İlgili Kişi tablosunu seçin.

  6. Bitti>Tabloyu kaydet'i seçin.

İlgili kişileri bir veya daha fazla ürünle ilişkilendirme ve ilişkileri kaldırma

Bu konuda daha önceden oluşturduğunuz uygulamaya benzer başka bir uygulama oluşturacaksınız, ancak yeni uygulama çok-çok ilişkisi sunacak. Her ilgili kişi yalnızca bir yerine birden çok ürün rezerve edebilecek.

  1. Tabletler için boş bir uygulamada, bu konudaki ilk yordamda açıklandırğı şekilde Gallery1'i oluşturun.

  2. Başka bir boş dikey Gallery denetimi ekleyin, Gallery2 olarak adlandırıldığından emin olun ve sonra bunu ekranın sağ üst köşesine taşıyın.

    Bu konunun ilerleyen bölümünde Gallery2 altından bir Combo box oluşturacaksınız.

  3. Formül çubuğunda, Gallery2'nin Items özelliğini Gallery1.Selected.Contacts olarak ayarlayın.

    ContactsGallery - Items özelliğini yapılandırma.

  4. Özellikler sekmesinde Düzen öğesini Görüntü ve başlık olarak ayarlayın.

    ContactsGallery - Layout öğesini yapılandırma.

  5. Gallery2'de Label denetiminin Title2 olarak adlandırıldığından emin olun ve Text özelliğini ThisItem.'Full Name' olarak ayarlayın.

    Bu yordamı tamamlayana ve bir ürüne ilgili kişi atayana kadar denetimde metin görüntülenmez.

    İlgili kişi adını gösterme.

  6. NextArrow2 öğesini silin, İptal simgesi ekleyin ve icon1 olarak adlandırıldığından emin olun.

  7. İptal simgesinin OnSelect özelliğini şu formüle ayarlayın:

    Unrelate( Gallery1.Selected.Contacts, ThisItem )
    

    İptal simgesini yapılandırma.

  8. Görünüm sekmesinde Veri kaynakları'nı seçin.

  9. Veri bölmesinde Veri kaynağı ekle>Microsoft Dataverse>İlgili Kişiler>Bağla'yı seçin.

  10. Gallery2 altında, bir Combo box denetimi ekleyin, ComboBox1 olarak adlandırıldığından emin olun ve sonra Items özelliğini Contacts olarak ayarlayın.

    Açılan kutunun Items özelliğini yapılandırma.

  11. Özellikler sekmesinde, Birden çok seçime izin ver'i Kapalı olarak ayarlayın.

    Açılan kutunun Layout özelliğini yapılandırma.

  12. Ekle düğmesi ekleyin ve OnSelect özelliğini şu formül olarak ayarlayın:

    Relate( Gallery1.Selected.Contacts, ComboBox1.Selected )
    

    Ekle simgesi yapılandırma.

Bu uygulamayla, kullanıcılar artık her bir ürün için bir dizi ilgili kişiyi serbestçe ilişkilendirebilir ve ilişkisini kaldırabilir.

  • Bir ürüne ilgili kişi eklemek için, ekranın alt kısmındaki birleşik giriş kutusunda ilgili kişiyi seçin ve sonra Ekle simgesini seçin.

  • Bir ilgili kişiyi üründen kaldırmak için ilgili kişinin İptal simgesini seçin.

    Bir-çok ilişkisinden farklı olarak, çok-çok ilişkisi kullanıcıların aynı ilgili kişiyi birden çok ürünle ilişkilendirilmesine olanak sağlar.

Çok-çok uygulamasında Relate ve Unrelate işlevlerini gösterme.

Tersi: ürünleri birden çok ilgili kişiyle ilişkilendirme ve ilişkileri kaldırma

Çok-çok ilişkileri simetriktir. Örneği bir ilgili kişiye ürünler eklemek üzere genişletebilir ve sonra ilişkinin her iki yönden nasıl göründüğünü göstermek için iki ekran arasında geçiş yapabilirsiniz.

  1. Screen1'in OnVisible özelliğini Refresh( Products ) olarak ayarlayın.

    Bir-çok veya çok-çok ilişkisini güncelleştirdiğinizde, Relate veya Unrelate çağrısının yalnızca ilk bağımsız değişken tablosunun verileri yenilenir. Bu uygulamanın ekranları arasında geçiş yapmak isterseniz ikincisinin el ile yenilenmesi gerekir.

    OnVisible özelliğini Refresh işlevine ayarlama.

  2. Screen1'i çoğaltın.

    Kopya Screen1_1 olarak adlandırılır ve ilişkilere ilgili kişiler tarafından bakmak için temeli oluşturur.

    Bir ekranı çoğaltma.

  3. Tersine görünüm oluşturmak için, bu formülleri Screen1_1 denetimlerinde değiştirin:

    • Screen1_1.OnVisible = Refresh( Contacts )
    • Gallery1_1.Items = Contacts
    • Title1_1.Text = ThisItem.'Full Name'
    • Label1_1.Text = "Selected Contact Products"
    • Gallery2_1.Items = Gallery1_1.Selected.Products
    • Title2_1.Text = ThisItem.Name
    • Icon1_1.OnSelect = Unrelate( Gallery1_1.Selected.Products, ThisItem )
    • ComboBox1_1.Items = Products
    • Icon2_1.OnSelect = Relate( Gallery1_1.Selected.Products, ComboBox1_1.Selected )

    Sonuç önceki ekrana çok benzer, ancak ilişkiye İlgili kişiler tarafından gelir.

    İlgili kişilerle başlayan çok-çok ilişkisini gösterme.

  4. Yukarı aşağı ok simgesi ekleyin ve OnSelect özelliğini Navigate( Screen1, None ) olarak ayarlayın. Navigate( Screen1_1, None ) formülünü kullanarak aynı işlemi Screen1'de yapın.

    Ekranlar arasına gezinti ekleme.

Kullanıcılar bu yeni ekranla, bir ürüne ilgili kişi ekleyip ilgili kişiler görünümüne geçebilir ve ilişkili ürünü görebilir. İlişkiler simetriktir ve iki ekran arasında paylaşılır.

Her iki taraftan çok-çok ilişkisini gösterme.