2013 word dosyalarını üretmek için OpenXml SDK kullanıyorum. Bir sunucuda çalışıyorum (sunucu çözümünün bir parçası), bu nedenle otomasyon bir seçenek değildir.Word OpenXml Bölümünde isteğe bağlı verilere eşlendiğinde isteğe bağlı bölüm nasıl oluşturulur?
Temel olarak bir arka uç sisteminden çıkarılan bir xml dosyası var. Ben sadece word dosyası çoğaltmak ve yeni XML verilerini zaman yazma
:
<my:Data
xmlns:my="https://schemas.mycorp.com">
<my:Customer>
<my:Details>
<my:Name>Customer Template</my:Name>
</my:Details>
<my:Orders>
<my:Count>2</my:Count>
<my:OrderList>
<my:Order>
<my:Id>1</my:Id>
<my:Date>19/04/2017 10:16:04</my:Date>
</my:Order>
<my:Order>
<my:Id>2</my:Id>
<my:Date>20/04/2017 10:16:04</my:Date>
</my:Order>
</my:OrderList>
</my:Orders>
</my:Customer>
</my:Data>
Sonra içerik kontrolü için bu verileri eşleştirmek için Word'ün XML Haritalama bölmesini kullanın: Burada çok basitleştirilmiş bir örnek yeni dosyalar oluşturuluyor.
Bu, beklendiği gibi çalışıyor. Xml bölümünü güncellediğimde, arka tarafımdaki verileri yansıtır.
Düşünce, işe yaramayan bir durum var. Bir müşterisinin siparişi yoksa, şablon içeriği belgesinde saklanır. Xml verisi: (boş sipariş listesine bakınız):
<my:Data
xmlns:my="https://schemas.mycorp.com">
<my:Customer>
<my:Details>
<my:Name>Some customer</my:Name>
</my:Details>
<my:Orders>
<my:Count>0</my:Count>
<my:OrderList>
</my:OrderList>
</my:Orders>
</my:Customer>
</my:Data>
.
Word'de, xml bölmesi (hayır Sipariş düğüm anlamına gelir) doğru verileri yansıtır:
Ama gördüğünüz gibi, şablon içeriği hâlâ burada.
Temelde, sipariş yokken (veya en azından boş bir tablo) sipariş listesini gizlemek istiyorum.
Bunu nasıl yapabilirim?
Not: size daha iyi yardımcı olabilir böylece dosya paylaşımı için repro.zip
Elbette - belgeleri yükleyin, lütfen. – Taterhead
@Taterhead: voilà, o yüklendi –