2009-12-23 21 views
5

Raporlama konusunda gelişim sürecinizdeki acıyı nasıl en aza indiriyorsunuz?Yazdırılabilir raporları uygulamadaki acıyı en aza indirgeme

Web çerçeveleri için, hem içerik üretmek hem de grafiksel olarak tasarlamak için oldukça basit bir yol vardır; içerik HTML aracılığıyla semantik olarak temsil edilir ve tasarım CSS ile ayrı ayrı belirtilir. Ve tarayıcılar çıktıyı nasıl oluşturdukları ile oldukça tutarlıdır (ve tutarsızlıklar iyi bilinir ve planlanabilir). Daha az CSS meraklı grafik tasarımcılarına yardımcı olacak WYSIWYG editörleri bile var.

Peki, yazdırma içeriği hakkında ne yaparız?

Bir şirkette, bu gibi çalışan bir işlem oluşturdum: Bir komut dosyası, XML aracılığıyla semantik bir gösterim oluşturdu. XML, bir XML-FO belgesi oluşturmak için XSLT'den geçirildi. Daha sonra bu, bir PDF oluşturmak için başka bir araca (Apache FOP, inanıyorum) geçti. Bu şirket için iyi çalıştı.

Ancak bu şirkette, çıktı görüntüsü yönetim açısından önemlidir ve grafik tasarımcılarımız var. Şu anda bir raporlama aracı kullanıyoruz (Developer Express, sürüm 8.1'den XtraReports). Kötü değil; çeşitli biçimlerde çıktılar, bir WYSIWYG tasarımcısı vardır, raporlar C# sınıfları aracılığıyla uygulanır ve veri kümelerine veri bağlamayı destekler (ne yazık ki, POCO'lar değil). Ancak, bu kurulum ile bazı büyük sorunlara sahiptir:

  • raporlama çerçevesi, sen
  • Presentable unsurları, özellikle grafikleri hazırlamak ve grup raporlama bantları nasıl üzerinde önemli sınırlamaları vardır ihtiyacımız yetenekleri için yoksun ince ayar yapın ve maketlerimizin görünümünü elde edin.
  • Stilleri ve düzenleri CSS ile elde edebileceğimiz şeylere benzer raporlar arasında paylaşmanın iyi bir yolu yoktur. Yeniden kullanılabilir parçaların iyi bir bileşiminin uygulanması çok zordur. Bu nedenle, çok sayıda kopya & yapıştırıcı işlev kalıtımıyla sonuçlanıyoruz; Tüm raporlarda geniş kapsamlı değişiklikler yapmamız gerektiğinde bu kötü bir haber.

Şimdi, belki raporlama çerçeveler ağrıları ortadan kaldırabilir orada bazı kick-ass çerçevesi var, ama hepsi zayıflıklarını olduğunu varsayalım. Sizin için iyi çalışan bir çerçeve veya süreç var mı ve raporlamada ortaya çıkan acı noktaları azaltıyor mu?

cevap

1

Prince XML, HTML veya XML ile CSS (yazdırma için CSS paged media dahil) kullanmanıza ve PDF'leri oluşturmanıza olanak veren gerçekten harika bir araçtır.

+0

Aman Tanrım, bu harika görünüyor. Bununla deney yapmalıyım. Bu ürünü şahsen kullandınız mı? Eğer öyleyse, bunu kullanma deneyiminizi ayrıntılandırırsanız iyi olur. – Jacob

+0

Çok büyük bir proje için kullandım ve bununla çok iyi bir deneyime sahip oldum. İstediğiniz HTML/CSS'yi oluşturabilir ve bir PDF dosyası haline getirebilirsiniz. CSS'yi ve kullandığım tüm tarayıcıları destekler. Belgenin disk belleği olan ortamı nasıl desteklediği konusunda bazı iyi bilgiler vardır: http://princexml.com/doc/7.0/ – Annie

+0

Dang, bir site lisansı için 3800 USD. Geliştirme sürecimizi hızlandırabilirse buna değer olabilir, ama phew! – Jacob

1

Seçenek # 1: Adobe Acrobat gerçekten çok hoş. Form etkin PDF'leri tasarlayabilir ve daha sonra PDF belgesini değiştirmek için PDFSharp gibi bir şey kullanabilirsiniz. Oluşturulan malzemelerinizi içine döktüğünüz şablon PDF'leri oluşturabilirsiniz. Bunu daha önce yaptım ve oldukça başarılıydı. Ayrıca POCO nesnelerini güzelce kullandım.

Seçenek # 2: XML tabanlı olan XPS belgelerini oluşturmaya başlayabilirsiniz. Gerekirse kolayca PDF'ye dönüştürülebilir.

Seçenek # 3:. Yaşam için çalıştırın

+0

Seçenek 3 en akla yatkın seçenek gibi görünüyor. Bununla birlikte, 1 numaralı seçeneği de beğeniyorum. Ancak, bir PDF'yi şablon olarak etkin bir şekilde kullanmak için nasıl değiştireceğime emin değilim. Bu konuda ayrıntılı bilgi verirseniz veya iyi bir makaleye link verirseniz, bu genellikle bir şey yapılıyor mu? – Jacob

0

i-net Clear Reports güzel bir ürün (bir seçenek olmayabilir). Java'ya dayanıyor, ancak ASP.NET ile de çalışabilirsiniz. Bir köprü var. POCO ile çalışmak istiyorsanız, .NET sürümü çalışır. Java sürümü POJO ile çalışabileceğinden, gelecek .NET sürümü de POCO ile çalışacaktır.