ınfopath içinde bir ana/ayrıntı ilişkisi olan tablolardaki basamaklama silme için komut dosyası nasıl kullanılır

Makale çevirileri Makale çevirileri
Makale numarası: 892952 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Giriş

Bu makalede, Microsoft Office ınfopath içinde bir ana/ayrıntı ilişkisi olan tablolardaki basamaklama silme işlemleri için komut dosyası nasıl kullanılır. Ana öğeyi sildiğinizde, bir anahtar alanını kullanarak bir ana maddeye bağlı ayrıntı öğeleri silmek için bu kodu kullanabilirsiniz.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna satılabilirlik veya belirli bir amaca uygunluk zımni garantileri de dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler. Ayrıntı ve öğelerin ana maddenin silindiğinde silinir, bir ana/ayrıntı ilişkisi olan bir tablo oluşturmak için <a0></a0>, aşağıdaki adımları izleyin:
  1. Infopath başlatma ve yeni, boş bir form açın. Bunu yapmak için şu adımları izleyin:

    Infopath 2007
    1. <a0>Form Doldur</a0> iletişim kutusunun sol bölmede, <a1>Tasarım</a1> bir form şablonu tıklatın.
    2. Bir form şablonu penceresinde, tasarım boş ' u tıklatın ve sonra Tamam ' ı tıklatın.
    Infopath 2003
    1. <a0>Form Doldur</a0> iletişim kutusunun sol bölmesinde, <a1>Tasarım</a1> formu tıklatın.
    2. Sağ bölmede, Yeni boş form ' u tıklatın.
  2. Iki yinelenen tablo ekleyin. Bunu yapmak için şu adımları izleyin:

    Infopath 2007
    1. Ekle menüsünde Yinelenen tablo ' ı tıklatın.
    2. Sütun sayısı 2 ' ye ayarlayın ve Tamam ' ı tıklatın.
    3. Adımını bir ve başka bir yinelenen tablo eklemek için b adım.
    Infopath 2003
    1. Diğer denetimler, Ekle menüsünden'ı tıklatın.
    2. Eklenecek denetimler'in altında <a0>denetimler</a0> görev bölmesinde, Yinelenen tablo ' ı tıklatın.
    3. Sütun sayısı 2 ' ye ayarlayın ve Tamam ' ı tıklatın.
    4. B adımı yineleyin ve adım c. başka bir yinelenen tabloyu eklemek.
  3. Daha fazla iki yinelenen tablo oluşturun ve iki yeni tablo, ilk iki yinelenen tablo aynı verilere bağlayabilirsiniz. Bunu yapmak için şu adımları izleyin:
    1. Görünüm menüsünde, Veri kaynağı ' nı tıklatın.
    2. Veri kaynağı görev bölmesinde, grup1 ' i genişletin.
    3. Grup2 ' ı sağ tıklatın ve Yinelenen tablo</a1>'ı tıklatın.
    4. Veri kaynağı görev bölmesinde grup3 adını genişletin.
    5. Group4 ' ı sağ tıklatın ve Yinelenen tablo</a1>'ı tıklatın.
  4. 3. Adımda oluşturduğunuz iki tablo arasında bir ana/ayrıntı ilişkisi oluşturun. Bunu yapmak için şu adımları izleyin:
    1. Ilk tabloyu sağ tıklatın ve sonra da Yinelenen Tablo özellikleri ' ni tıklatın.

      Not Bu tablo formunun üstten üçüncü tablodur.
    2. Yinelenen Tablo özellikleri iletişim kutusunda Ana/ayrıntı sekmesini tıklatın.
    3. Ana/ayrıntı ayarları altında ana yap ' ı tıklatın.
    4. Ana KIMLIK kutusuna Master1 yazın ve Tamam ' ı tıklatın.
    5. Bir sonraki tabloyu sağ tıklatın ve sonra da Yinelenen Tablo özellikleri ' ni tıklatın.

      Not Bu tablo formunun üstten dördüncü bir tablodur.
    6. Yinelenen Tablo özellikleri iletişim kutusunda Ana/ayrıntı sekmesini tıklatın.
    7. Ana/ayrıntı ayarları altında ayrıntı olarak ayarla ' yı tıklatın.
    8. Ilişkilendirilecek ana öğe KIMLIĞI</a0> kutusunda, Master1 seçin.
    9. Bağlantı Yöneticisi'ni ve ayrıntı altında anahtar alanına göre ' yi tıklatın.
    10. <a0>Anahtar alanı (ana)</a0> kutusunun sağındaki <a2>XPath Seç</a2> simgesini tıklatın ve sonra da alan1</a1>'ı tıklatın.
    11. Alan3 ' ı tıklatın <a0>anahtar alanı (ayrıntı)</a0> kutusunun sağındaki <a2>XPath Seç</a2> simgesini tıklatın ve sonra Tamam ' ı tıklatın.
  5. Anahtar alanın <a0>Ayrıntılar</a0> tablosundaki <a2>OnAfterChange</a2> olay basamaklama siler zorlamak için kodu ekleyin. Bunu yapmak için şu adımları izleyin:

    Infopath 2007
    1. Veri kaynağı görev bölmesinde, alan1grup2 içinde sağ tıklatın, programı tıklatın ve Açık sonra değiştirme olayı</a1>'ı tıklatın.
    2. Aşağıdaki kod komut dosyası düzenleme penceresinin ekleyin.

      Not Alanı yer tutucuları ve grubun yer tutucular, grupları ve kullanmak istediğiniz alanların adlarını ile değiştirin.
      function msoxd_my_field1::OnAfterChange(eventObj)
      {
       // Write code here to restore the global state.
       
       if (eventObj.IsUndoRedo)
       {
        // An undo operation or a redo operation has occurred, and the DOM is read-only.
        return;
       }
       
       //Delete corresponding details if a delete operation has occurred on source group2.
       if(eventObj.Operation == "Delete" && eventObj.Source.nodeName == "my:group2")
       {
        //Block the view update feature to improve performance.
        thisXDocument.View.DisableAutoUpdate();
        
        //Obtain the  value of the keyfield of that row that you want to delete (set as field1 in Designer).
        var nodeKeyFieldMaster = eventObj.Source.selectSingleNode("my:field1");
                
        //Set the selection on all nodes in Detail.
        var nodesDetail = XDocument.DOM.selectNodes("/my:myFields/my:group3/my:group4");
       
        //View each row in Detail, and then delete the row if the key field in the detail matches the key field in the master.
        for (i=0; i< nodesDetail.length; i++)
        {
         //Obtain the row.
         var row = nodesDetail.item(i);
         
         //Obtain the  value of the keyfield for the current row  (set as field3 in Designer).
         var nodeKeyFieldDetail = row.selectSingleNode("my:field3");
       
         //Delete the row if the keyfield in the detail matches the keyfield of the deleted row in the master.
         if(nodeKeyFieldDetail.text == nodeKeyFieldMaster.text)
         {
          row.parentNode.removeChild(row); 
         }
      
        //Re-enable the view update.
        thisXDocument.View.EnableAutoUpdate();
      
        }
       } 
      }
      
    3. Dosya menüsünde Kaydet ' i tıklatın.
    4. Dosya menüsünden Çıkış ' ı tıklatın.
    Infopath 2003
    1. Veri kaynağı görev bölmesinde, alan1grup2 içinde sağ tıklatın ve sonra da Properties ' i tıklatın.
    2. Alan veya grup özellikleri iletişim kutusunda doğrulama ve olay işleyicileri sekmesini tıklatın.
    3. Olaylar listesinde OnAfterChange ' ı tıklatın ve sonra da <a2>Düzenle</a2>'yi tıklatın.
    4. Aşağıdaki kod komut dosyası düzenleme penceresinin ekleyin.

      Not Alanı yer tutucuları ve grubun yer tutucular, grupları ve kullanmak istediğiniz alanların adlarını ile değiştirin.
      function msoxd_my_field1::OnAfterChange(eventObj)
      {
       // Write code here to restore the global state.
       
       if (eventObj.IsUndoRedo)
       {
        // An undo operation or a redo operation has occurred, and the DOM is read-only.
        return;
       }
       
       //Delete corresponding details if a delete operation has occurred on source group2.
       if(eventObj.Operation == "Delete" && eventObj.Source.nodeName == "my:group2")
       {
        //Block the view update feature to improve performance.
        thisXDocument.View.DisableAutoUpdate();
        
        //Obtain the  value of the keyfield of that row that you want to delete (set as field1 in Designer).
        var nodeKeyFieldMaster = eventObj.Source.selectSingleNode("my:field1");
                
        //Set the selection on all nodes in Detail.
        var nodesDetail = XDocument.DOM.selectNodes("/my:myFields/my:group3/my:group4");
       
        //View each row in Detail, and then delete the row if the key field in the detail matches the key field in the master.
        for (i=0; i< nodesDetail.length; i++)
        {
         //Obtain the row.
         var row = nodesDetail.item(i);
         
         //Obtain the  value of the keyfield for the current row  (set as field3 in Designer).
         var nodeKeyFieldDetail = row.selectSingleNode("my:field3");
       
         //Delete the row if the keyfield in the detail matches the keyfield of the deleted row in the master.
         if(nodeKeyFieldDetail.text == nodeKeyFieldMaster.text)
         {
          row.parentNode.removeChild(row); 
         }
      
        //Re-enable the view update.
        thisXDocument.View.EnableAutoUpdate();
      
        }
       } 
      }
      
    5. Dosya menüsünde düzenleme penceresini kapatmak için Çıkış ' ı tıklatın.
    6. Alan veya grup özellikleri iletişim kutusunu kapatmak için Tamam ' ı tıklatın.

Nasıl kod works.To bunu göstermek için bu adımları formu önizlemesi:
  1. Infopath 2007

    Dosya menüsünde, Önizleme ' ye gelin ve formu</a1>'ı tıklatın.

    Infopath 2003

    Dosya menüsünde Form Önizleme'nun üzerine gelin ve sonra da <a2>Varsayılan</a2>'ı tıklatın
  2. Formdaki ilk tabloya bazı sınama değerleri ekleyin. Bu tablo, asıl olduğu tablo. Bunu yapmak için şu adımları izleyin:
    1. Ilk satırın ilk sütuna, Test1 yazın.
    2. Ilk satır ikinci sütundaki Master1 yazın.
    3. Verileri yalnızca yazdığınız satırın altında ilk tablonun yeni bir satır eklemek için Öğe Ekle ' yi tıklatın.
    4. Ikinci satırdaki ilk sütuna Test2 yazın.
    5. Ikinci satır ikinci sütundaki Master2 yazın.
    6. Daha fazla satır eklemek istiyorsanız, 2 c ile 2e yineleyin.
  3. Form üzerindeki ikinci tabloya bazı sınama değerleri ekleyin. Bu tablo ayrıntıları tablodur. Bunu yapmak için şu adımları izleyin:
    1. Ilk satırın ilk sütuna, Test1 yazın.
    2. Ilk satır ikinci sütundaki Detail1 yazın.
    3. Verileri yalnızca yazdığınız satırın altında yeni bir satır ikinci tabloya eklemek için Öğe Ekle ' yi tıklatın.
    4. Ikinci satırdaki ilk sütuna Test2 yazın.
    5. Ikinci satır ikinci sütundaki Detail2 yazın.
    6. Daha fazla satır eklemek istiyorsanız, 2 c ile 2e yineleyin.
  4. Ana/ayrıntı tabloları sınayın. Her satır, üçüncü tablosunda, birer birer seçin. Dördüncü tablo yalnızca aynı değeri, üçüncü bir tablo içindeki seçili satırı olarak ilk sütuna sahip satır ikinci tablodan gösterir.
  5. Bir satır asıl slayttan silme tablosu. Bunu yapmak için şu adımları izleyin:
    1. Üçüncü tablosunda ilk sütunda "Test2" içerdiği yerlerde ikinci satıra seçin.
    2. Seçili satırın yanındaki oku tıklatın ve sonra da <a2>grup2 Kaldır</a2>'ı tıklatın.

      Not Ilk sütunda aynı metni içeren satırlar, örnek kodun dördüncü tablosundan otomatik olarak silinir. Örneğin, "Test2" silinir.

Özellikler

Makale numarası: 892952 - Last Review: 30 Ocak 2007 Salı - Gözden geçirme: 2.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office InfoPath 2003
  • Microsoft Office InfoPath 2003, Service Pack 1 (SP1)
  • Microsoft Office InfoPath 2007
Anahtar Kelimeler: 
kbmt kbxml kbcodesnippet kbcode kbprogramming kbhowto KB892952 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:892952

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com