เมื่อใดควรใช้ RDLC กับรายงาน RDL


117

ฉันได้ศึกษา SSRS 2005/2008 ในช่วงหลายสัปดาห์ที่ผ่านมาและได้สร้างรายงานฝั่งเซิร์ฟเวอร์ สำหรับแอปพลิเคชันบางอย่างเพื่อนร่วมงานแนะนำให้ฉันดู RDLC สำหรับสถานการณ์นั้น ๆ ตอนนี้ฉันพยายามเข้าใจความแตกต่างหลักระหว่าง RDL และ RDLC

การค้นหาข้อมูลนี้ให้ข้อมูลที่แยกส่วนได้ดีที่สุด ฉันได้เรียนรู้ว่า:

  • รายงาน RDLC ไม่ได้จัดเก็บข้อมูลเกี่ยวกับวิธีรับข้อมูล
  • รายงาน RDLC สามารถดำเนินการได้โดยตรงโดยตัวควบคุม ReportViewer

แต่ฉันยังไม่เข้าใจความสัมพันธ์ระหว่างไฟล์ RDLC กับระบบอื่น ๆ ที่เกี่ยวข้อง (เซิร์ฟเวอร์รายงาน, ฐานข้อมูลต้นทาง, ไคลเอนต์)

เพื่อให้เข้าใจไฟล์ RDLC ได้ดีฉันต้องการทราบว่าการใช้งานแตกต่างจากไฟล์ RDL อย่างไรและจะเลือกใช้ RDLC กับ RDL ในสถานการณ์ใด ยินดีต้อนรับลิงก์ไปยังแหล่งข้อมูล

ปรับปรุง:

กระทู้ในเว็บบอร์ดของ ASP.NETกล่าวถึงปัญหานี้เหมือนกัน จากนั้นฉันได้รับความเข้าใจที่ดีขึ้นเกี่ยวกับปัญหานี้

คุณลักษณะของ RDLC คือสามารถรันฝั่งไคลเอ็นต์ได้อย่างสมบูรณ์ในตัวควบคุม ReportViewer

  • สิ่งนี้จะขจัดความจำเป็นในการใช้อินสแตนซ์ Reporting Services และยังขจัดความจำเป็นในการเชื่อมต่อฐานข้อมูลใด ๆ ก็ตาม แต่:
  • จะเพิ่มข้อกำหนดที่ว่าจะต้องให้ข้อมูลที่จำเป็นในรายงานด้วยตนเอง

ไม่ว่าจะเป็นข้อดีหรือข้อเสียขึ้นอยู่กับแอปพลิเคชันนั้น ๆ

ในแอปพลิเคชันของฉันมีอินสแตนซ์ของ Reporting Services อยู่แล้วและสามารถดึงข้อมูลที่จำเป็นสำหรับรายงานจากฐานข้อมูลได้อย่างง่ายดาย มีเหตุผลอะไรที่ฉันต้องพิจารณา RDLC หรือฉันควรจะยึดติดกับ RDL?

คำตอบ:


84

จากประสบการณ์ของฉันมีบางสิ่งที่ต้องคิดเกี่ยวกับทั้งสองสิ่ง:

I. รายงาน RDL เป็นรายงานแบบ HOSTED โดยทั่วไป ซึ่งหมายความว่าคุณต้องติดตั้ง SSRS Server เป็นส่วนขยายที่สร้างขึ้นใน Visual Studio จาก SQL Server สำหรับภาษารายงาน เมื่อคุณติดตั้ง SSRS คุณควรมีส่วนเสริมที่เรียกว่า 'Business Intelligence Development Studio' ซึ่งจะทำงานกับรายงานได้ง่ายกว่าการไม่มีมันมาก

R eport

D efinition

แองเกจL

ประโยชน์ของรายงาน RDL:

  1. คุณสามารถโฮสต์รายงานในสภาพแวดล้อมที่มีบริการที่เรียกใช้สำหรับคุณ
  2. คุณสามารถกำหนดค่าความปลอดภัยในรายการหรือระดับที่สืบทอดเพื่อจัดการความปลอดภัยเป็นแนวคิดแบบสแตนด์อโลน
  3. คุณสามารถกำหนดค่าบริการเพื่อส่งอีเมล (หากคุณมีเซิร์ฟเวอร์ SMTP ที่คุณสามารถเข้าถึงได้) และบันทึกไฟล์ตามกำหนดเวลา
  4. คุณมีฐานข้อมูลโดยทั่วไปเรียกว่า 'ReportServer' ซึ่งคุณสามารถสอบถามข้อมูลเกี่ยวกับรายงานเมื่อเผยแพร่แล้ว
  5. คุณสามารถเข้าถึงรายงานเหล่านี้ผ่าน 'ReportViewer' ในแอปพลิเคชันไคลเอนต์ที่เขียนใน ASP.NET, WPF (ด้วยการควบคุม winform bleh!) หรือ Winforms ใน. NET โดยใช้ 'ProcessingMode.Remote'
  6. คุณสามารถตั้งค่าพารามิเตอร์ที่ผู้ใช้สามารถมองเห็นและใช้เพื่อเพิ่มความยืดหยุ่นได้
  7. คุณสามารถกำหนดค่าบางส่วนของรายงานที่จะใช้สำหรับสตริงการเชื่อมต่อเป็น "แหล่งข้อมูล" เช่นเดียวกับคิวรี sql, xml หรือชุดข้อมูลอื่น ๆ เป็น "ชุดข้อมูล" ชิ้นส่วนเหล่านี้และอื่น ๆ สามารถจัดเก็บและกำหนดค่าเพื่อแคชข้อมูลได้เป็นประจำ
  8. คุณสามารถเขียนคลาสพร็อกซี. NET ของบริการ http: // / ReportServer / ReportingService2010 หรือ / ReportExecution2005 จากนั้นคุณสามารถสร้างวิธีการของคุณเองใน. NET สำหรับการส่งอีเมลบันทึกหรือจัดการข้อมูล SSRS จากบริการโดยตรงของเซิร์ฟเวอร์ที่โฮสต์รายงาน SSRS ในรหัส ส่งออกรายงาน SSRS แบบเป็นโปรแกรมจาก SharePoint โดยใช้ ReportService2010.asmx

ข้อเสีย:

  1. SSRS เป็นวอนคีย์เมื่อเทียบกับสิ่งอื่น ๆ ในการทำให้เร็วขึ้น คนส่วนใหญ่สับสนกับนโยบายความปลอดภัยและการออกแบบรายงานเป็นส่วนเสริมใน VS SQL 2005 = VS BIDS 2005, SQL 2008 = VS BIDS 2008, SQL 2012 = VS BIDS 2010 (LOL)
  2. ดำเนินการต่อในวันที่ 1 นโยบายสำหรับการตั้งค่าความปลอดภัย IMHO นั้นซับซ้อนเกินเหตุ มีความปลอดภัยของเซิร์ฟเวอร์การรักษาความปลอดภัยฐานข้อมูลและบทบาทการตั้งค่าความปลอดภัยสองรายการบนเพจที่โฮสต์สำหรับบริการ คนส่วนใหญ่ตั้งค่าแอดมินเท่านั้น แต่ไม่สามารถเข้าได้และสงสัยว่าทำไมผู้ใช้รายอื่นไม่สามารถทำได้ การร้องเรียนหรือคำถามที่พบบ่อยที่สุดเกี่ยวกับ SSRS เกี่ยวข้องกับการเข้ามาโดยทั่วไปจากประสบการณ์ของฉัน
  3. คุณสามารถใช้ 'นิพจน์' ที่จะ 'ปรับปรุง' รายงานของคุณ บ่อยครั้งที่คุณทำมากกว่าสองสามอย่างและรายงานของคุณไปสู่การรวบรวมข้อมูลในประสิทธิภาพ
  4. คุณมีสิ่งที่คุณสามารถทำได้และส่งออกไปจำนวนหนึ่ง SSRS ไม่มีการวางเมาส์เหนือการรายงานที่ฉันรู้จักโดยไม่ต้องแฮ็คจาวาสคริปต์
  5. ความเร็วและประสิทธิภาพอาจได้รับผลกระทบเนื่องจากการกำหนดค่า SSRS ที่โง่เขลาจะรีไซเคิลระบบและการรายงานครั้งแรกอาจใช้เวลาสักครู่ในการโหลดไซต์ คุณสามารถแก้ไขปัญหานี้ได้โดยการปรับเปลี่ยน แต่ฉันพบว่าการให้บริการที่มีชีวิตอยู่เพื่อให้ได้ผลดีขึ้น

ครั้งที่สอง รายงาน RDLC เป็นรายงานของไคลเอ็นต์ที่ไม่ได้โฮสต์ไว้ที่ใดก็ได้ c พิเศษในชื่อหมายถึง 'ลูกค้า' โดยทั่วไปนี่เป็นส่วนขยายของภาษา RDL ที่มีไว้สำหรับใช้ในแอปพลิเคชันไคลเอ็นต์ Visual Studio เท่านั้น มีอยู่ใน Visual Studio เมื่อคุณเพิ่มรายการ 'การรายงาน'

ประโยชน์ของรายงาน RDLC:

  1. คุณสามารถเชื่อมต่อบริการ wcf เข้ากับชุดข้อมูลได้ง่ายขึ้นมาก
  2. คุณสามารถควบคุมชุดข้อมูลได้มากขึ้นและสามารถใช้คลาส POCO ที่เต็มไปด้วยวัตถุเฟรมเวิร์กเอนทิตีหรือ ADO.NET ได้โดยตรงเช่นเดียวกับตาราง คุณสามารถลิงกับข้อมูลเพื่อเพิ่มประสิทธิภาพก่อนที่จะเชื่อมโยงกับรายงาน
  3. คุณสามารถปรับแต่งรูปลักษณ์ได้มากขึ้นโดยใช้ Add on โดยตรงในโค้ดด้านหลัง

ข้อเสีย:

  1. คุณต้องจัดการพารามิเตอร์ด้วยตัวคุณเองและในขณะที่คุณสามารถใช้วิธีการห่อหุ้มเพื่อช่วยให้การวางขานั้นเกินคาดและโชคร้ายเล็กน้อย
  2. ผู้ใช้ไม่สามารถดูพารามิเตอร์ในการควบคุม 'ReportViewer' เว้นแต่จะอยู่ในโหมดระยะไกลและเข้าถึงรายงาน RLD ดังนั้นคุณต้องสร้างกล่องข้อความแบบหล่นลงปุ่มตัวเลือกด้วยตัวคุณเองนอกการควบคุมเพื่อส่งผ่านไป บางคนชอบการควบคุมที่เพิ่มขึ้นนี้ฉันไม่ได้เป็นการส่วนตัว
  3. สิ่งที่คุณต้องการทำกับการให้บริการรายงานสำหรับการแจกจ่ายคุณต้องสร้างเอง การส่งอีเมลการสมัครสมาชิกการบันทึก ขออภัยที่คุณต้องสร้างสิ่งนั้นใน. NET มิฉะนั้นจะใช้พร็อกซีที่ทำเช่นนั้นจากด้านบนแล้วคุณก็สามารถใช้รายงานที่โฮสต์ได้

สุจริตฉันชอบทั้งสองเพื่อวัตถุประสงค์ที่แตกต่างกัน ถ้าฉันต้องการให้นักวิเคราะห์ใช้งานตลอดเวลาและปรับแต่งกราฟแผนภูมิเจาะลึกและส่งออกไปยัง Excel ฉันใช้ RDL และเพียงแค่ให้ไซต์ของ SSRS ทำตามขั้นตอนทั้งหมดในการจัดการการกระจายอีเมล หากฉันต้องการแอปพลิเคชันที่มีส่วนรายงานและฉันรู้ว่าแอปพลิเคชันเป็นโมดูลของตัวเองที่มีกฎและการกำกับดูแลฉันใช้ RDLC และมีพารามิเตอร์ที่เล็กลงและได้รับแรงผลักดันจากการตัดสินใจของผู้ใช้ก่อนที่จะไปยังส่วนของรายงาน ลูกค้าที่พวกเขาอยู่และไซต์จากนั้นพวกเขามักจะเลือกกรอบเวลาหรือประเภทและไม่มีอะไรเพิ่มเติม โดยทั่วไปแล้วรายงานที่ซับซ้อนฉันจะใช้ RDL และสำหรับสิ่งง่ายๆฉันจะใช้ RDLC IMHO

ฉันหวังว่าจะช่วยได้


57

ถาม: รูปแบบ RDL และ RDLC แตกต่างกันอย่างไร

ตอบ: ไฟล์ RDL ถูกสร้างขึ้นโดย Report Designer เวอร์ชัน SQL Server 2005 ไฟล์ RDLC ถูกสร้างโดย Report Designer เวอร์ชัน Visual Studio 2008

รูปแบบ RDL และ RDLC มีสคีมา XML เหมือนกัน อย่างไรก็ตามในไฟล์ RDLC ค่าบางค่า (เช่นข้อความค้นหา) ได้รับอนุญาตให้ว่างซึ่งหมายความว่ายังไม่พร้อมที่จะเผยแพร่ไปยังเซิร์ฟเวอร์รายงานในทันที คุณสามารถป้อนค่าที่ขาดหายไปได้โดยการเปิดไฟล์ RDLC โดยใช้ Report Designer เวอร์ชัน SQL Server 2005 (คุณต้องเปลี่ยนชื่อ. rdlc เป็น. rdl ก่อน)

ไฟล์ RDL เข้ากันได้กับรันไทม์ควบคุม ReportViewer อย่างสมบูรณ์ อย่างไรก็ตามไฟล์ RDL ไม่มีข้อมูลบางอย่างที่เวลาออกแบบของตัวควบคุม ReportViewer ขึ้นอยู่กับการสร้างรหัสการผูกข้อมูลโดยอัตโนมัติ ด้วยการรวมข้อมูลด้วยตนเองไฟล์ RDL สามารถใช้ในตัวควบคุม ReportViewer ใหม่! ดูโปรแกรมตัวอย่าง RDL Viewer

โปรดสังเกตว่าตัวควบคุม ReportViewer ไม่มีตรรกะใด ๆ สำหรับการเชื่อมต่อกับฐานข้อมูลหรือเรียกใช้แบบสอบถาม ด้วยการแยกตรรกะดังกล่าว ReportViewer ได้รับการทำให้เข้ากันได้กับแหล่งข้อมูลทั้งหมดรวมถึงแหล่งข้อมูลที่ไม่ใช่ฐานข้อมูล อย่างไรก็ตามหมายความว่าเมื่อใช้ไฟล์ RDL โดยตัวควบคุม ReportViewer ข้อมูลที่เกี่ยวข้องกับ SQL ในไฟล์ RDL จะถูกละเว้นโดยตัวควบคุม เป็นความรับผิดชอบของแอปพลิเคชันโฮสต์ในการเชื่อมต่อกับฐานข้อมูลดำเนินการสืบค้นและจัดหาข้อมูลไปยังตัวควบคุม ReportViewer ในรูปแบบของ ADO.NET DataTables

http://www.gotreportviewer.com/


ฉันสามารถใช้ออบเจ็กต์แบบกำหนดเอง ( List<T>จากMyEntity) เป็นแหล่งที่มาสำหรับรายงานระยะไกล ( RDL ) ไม่ใช่ RDLC ได้หรือไม่
Kiquenet

21

ฉันคิดเสมอว่าความแตกต่างระหว่าง RDL และ RDLC คือ RDL ใช้สำหรับ SQL Server Reporting Services และ RDLC ถูกใช้ใน Visual Studio สำหรับการรายงานฝั่งไคลเอ็นต์ การใช้งานและตัวแก้ไขเกือบจะเหมือนกัน RDLย่อมาReport Defintion LanguageและRDLC Report Definition Language Client-side

ฉันหวังว่าจะช่วยได้


3
ฉันไม่สามารถเข้าใจส่วน 'ฝั่งไคลเอ็นต์' ได้จนกว่าฉันจะรู้ว่าด้วย RDLC เป็นไปได้ (จำเป็นด้วยซ้ำ) ที่จะให้ข้อมูลในรายงานด้วยตนเองโดยไม่ต้องบังคับให้เชื่อมต่อกับฐานข้อมูลบางส่วน
Daan

16

จากประสบการณ์ของฉันหากคุณต้องการประสิทธิภาพสูง (ขึ้นอยู่กับข้อกำหนดลูกค้าของคุณเล็กน้อย) ในรายงานขนาดใหญ่ให้ไปที่ rdlc นอกจากนี้รายงาน rdlc ยังช่วยให้คุณสามารถควบคุมข้อมูลของคุณได้อย่างเต็มรูปแบบคุณอาจสามารถบันทึกการเดินทางฐานข้อมูลที่เสียไปได้ ฯลฯ โดยใช้รายงานฝั่งไคลเอ็นต์ ในโครงการที่ฉันกำลังดำเนินการอยู่รายงานสำคัญต้องใช้เวลาประมาณ 2 นาทีในการแสดงผลบนฝั่งเซิร์ฟเวอร์และค่อนข้างจะใช้เวลาไม่ว่าเซิร์ฟเวอร์การรายงานใดจะเข้าชมในช่วงเวลานั้น เมื่อเปลี่ยนไปใช้การแสดงผลฝั่งไคลเอ็นต์เราจะเห็นประสิทธิภาพที่ใกล้เคียงกับ 20-40 วินาทีโดยไม่มีการโหลดบนเซิร์ฟเวอร์รายงานและใช้แบนด์วิดท์น้อยลงเนื่องจากมีการดาวน์โหลดเฉพาะชุดข้อมูลเท่านั้น

ระยะทางของคุณอาจแตกต่างกันไปและฉันพบว่า rdlc เพิ่มความซับซ้อนในการพัฒนาและการบำรุงรักษาโดยเฉพาะอย่างยิ่งเมื่อรายงานของคุณได้รับการออกแบบเป็นรายงานฝั่งเซิร์ฟเวอร์


ฉันคิดว่าที่นี่จะดีที่สุดเกี่ยวกับประสิทธิภาพในการวางรายงาน RDL ในเซิร์ฟเวอร์ระยะไกลที่มีบริการรายงานทำงานอยู่ คุณไม่จำเป็นต้องอัปเดตเวิร์กสเตชันของลูกค้าแต่ละราย (คุณต้องอัปเดตรายงานเดียวในไซต์เดียวเท่านั้น) มีหน่วยความจำรั่วไหลในเวอร์ชันปี 2548 และข้อบกพร่องเล็กน้อยบางอย่างที่ดูเหมือนว่าจะหลีกเลี่ยงได้เมื่อใช้บริการรายงาน
Junior Mayhé

1
ฉันไม่มั่นใจในสิ่งที่คุณพยายามจะพูด เราพบประสิทธิภาพที่ดีที่สุดแล้วโดยใช้การรายงานฝั่งไคลเอ็นต์ RDL บนเซิร์ฟเวอร์ระยะไกลเป็นปัญหาใหญ่สำหรับเรา
marr75

2
สิ่งนี้ขึ้นอยู่กับ a) ความสามารถในการประมวลผลสัมพัทธ์ของเซิร์ฟเวอร์รายงานและ b) ว่าการควบคุมโปรแกรมดูรายงานของคุณได้รับการกำหนดค่าสำหรับการประมวลผลภายในหรือระยะไกล ด้วยการใช้ตัวควบคุมโปรแกรมดูรายงานในโหมดการประมวลผลแบบโลคัลคุณกำลังถ่ายโอนงานการประมวลผลรายงานไปยังไคลเอนต์ซึ่งอาจเป็นประโยชน์ในสถานการณ์ที่เซิร์ฟเวอร์รายงานไม่มีความสามารถในการจัดการกับปริมาณงาน (เช่นในกรณีที่มีไคลเอนต์จำนวนมาก) อย่างไรก็ตามเซิร์ฟเวอร์รายงานที่มีข้อมูลจำเพาะที่ดีพอสมควรควรสามารถรองรับปริมาณงานรายงานส่วนใหญ่ได้ ปัญหาคอขวดอื่น ๆ อาจเป็นการออกแบบรายงาน / แบบสอบถามและแหล่งข้อมูล
Nathan Griffiths

1
ในขณะที่ฉันตอบคำถามนี้รายงานฝั่งเซิร์ฟเวอร์ไม่สามารถจัดการผู้ใช้พร้อมกันได้ดีนักโดยพื้นฐานแล้วเพียงแค่จัดการคำขอครั้งละหนึ่งรายการ (ฉันจะแปลกใจมากถ้าสิ่งนี้ได้รับการปรับปรุงเลย) นอกจากนี้ในสภาพแวดล้อมของเรา (และอื่น ๆ อีกมากมายที่ฉันต้องถือว่า) การแสดงผลรายงานเป็นรายละเอียดเล็กน้อยมากเมื่อเทียบกับงานที่ทำโดยเซิร์ฟเวอร์ฐานข้อมูล รายงานฝั่งไคลเอ็นต์ช่วยให้เราสามารถควบคุมลักษณะการทำงานพร้อมกันของแอปพลิเคชันได้มากขึ้น อย่างไรก็ตามมันเพิ่มความซับซ้อนเพิ่มเติมให้กับระบบ ดังนั้นจึงเป็นการตัดสินใจทางวิศวกรรมที่จะทำ
มี.ค. 75

@ marr75 - เซิร์ฟเวอร์เทียบกับขนาดไคลเอนต์ต่างกัน ในด้านเซิร์ฟเวอร์คุณมีแนวโน้มที่จะชนกำแพงอิฐมากขึ้นเมื่อคุณจ้างพนักงาน 25 คนและพวกเขาทั้งหมดก็เข้าสู่เซิร์ฟเวอร์พร้อมกัน ในฝั่งไคลเอ็นต์ทั้ง 25 คนจะได้รับพีซีของตัวเองเพื่อช่วยแบกรับภาระดังนั้นคุณจึงไม่สามารถชนกำแพงอิฐใด ๆ ได้เลย - เมื่อ บริษัท ของคุณเติบโตขึ้นโซลูชันฝั่งเซิร์ฟเวอร์ต้องมีพี่เลี้ยงเด็กมากขึ้น ที่กล่าวว่าคุณสามารถเพิ่มประสิทธิภาพเซิร์ฟเวอร์ได้มากขึ้นและต้องทำในที่เดียวเท่านั้น - ฉันกำลังคิดว่าจะสร้างดัชนีที่เหมาะสม - เกี่ยวข้องกับ DBA ของคุณ ความชอบของฉันคือใช้ฝั่งไคลเอ็นต์ แต่เพิ่มประสิทธิภาพทั้งสูงสุดประสิทธิภาพ!
MicroservicesOnDDD

11

ประเด็นเหล่านี้บางส่วนได้รับการกล่าวถึงข้างต้น แต่นี่คือ 2 เซนต์ของฉันสำหรับสภาพแวดล้อม VS2008

RDL (รายงานระยะไกล): ประสบการณ์การพัฒนาที่ดีขึ้นมากมีความยืดหยุ่นมากขึ้นหากคุณต้องการใช้คุณสมบัติขั้นสูงบางอย่างเช่นการตั้งเวลาการรายงานเฉพาะกิจ ฯลฯ ...

RDLC (รายงานในพื้นที่): ควบคุมข้อมูลได้ดีขึ้นก่อนส่งไปยังรายงาน (ตรวจสอบความถูกต้องหรือจัดการข้อมูลก่อนส่งไปยังรายงานได้ง่ายขึ้น) การปรับใช้ที่ง่ายกว่ามากไม่จำเป็นต้องมีตัวอย่างของ Reporting Services

ข้อแม้ที่ยิ่งใหญ่อย่างหนึ่งของรายงานในพื้นที่คือการรั่วไหลของหน่วยความจำซึ่งอาจส่งผลกระทบอย่างรุนแรงต่อประสิทธิภาพหากลูกค้าของคุณจะเรียกใช้รายงานขนาดใหญ่จำนวนมาก สิ่งนี้ควรได้รับการแก้ไขด้วยโปรแกรมดูรายงานเวอร์ชัน VS2010 ใหม่

ในกรณีของฉันเนื่องจากเรามีตัวอย่างของ Reporting Services ฉันจึงพัฒนารายงานใหม่เป็น RDL จากนั้นจึงแปลงเป็นรายงานท้องถิ่น (ซึ่งง่ายมาก) และปรับใช้เป็นรายงานในพื้นที่


7

หากคุณมีโครงสร้างพื้นฐานของบริการการรายงานให้ใช้งาน คุณจะพบว่าการพัฒนา RDL ให้น่าอยู่ขึ้นอีกนิด คุณสามารถดูรายงานตั้งค่าพารามิเตอร์ ฯลฯ ได้อย่างง่ายดาย


7

ในขณะที่ฉันปัจจุบันโอนเอียง RDL เพราะดูเหมือนว่ามีความยืดหยุ่นมากขึ้นและง่ายต่อการจัดการ RDLC มีความได้เปรียบในการที่ดูเหมือนว่าจะลดความซับซ้อนของการออกใบอนุญาตของคุณ เนื่องจาก RDLC ไม่ต้องการอินสแตนซ์ Reporting Services คุณจึงไม่จำเป็นต้องมี Reporting Services License เพื่อใช้งาน

ฉันไม่แน่ใจว่าสิ่งนี้ยังใช้ได้กับ SQL Server เวอร์ชันที่ใหม่กว่าหรือไม่ แต่ในคราวเดียวถ้าคุณเลือกที่จะใส่อินสแตนซ์ฐานข้อมูล SQL Server และ Reporting Services ในเครื่องสองเครื่องแยกกันคุณจะต้องมีสิทธิ์การใช้งาน SQL Server สองใบแยกกัน:
http://social.msdn.microsoft.com/forums/en-US/sqlgetstarted/thread/82dd5acd-9427-4f64-aea6-511f09aac406/

คุณสามารถBingสำหรับบล็อกและโพสต์อื่น ๆ ที่คล้ายกันเกี่ยวกับการให้สิทธิ์การใช้งาน Reporting Services


3
การให้สิทธิ์การใช้งาน SQL Server ยังคงกำหนดให้คุณต้องมีใบอนุญาตสำหรับทุกเครื่องที่ติดตั้งส่วนประกอบใด ๆ ของ SQL Server ดังนั้นการปรับใช้แบบปรับขนาดออกโดยที่ฐานข้อมูลเซิร์ฟเวอร์รายงานอยู่บนเซิร์ฟเวอร์อื่นไปยังบริการเซิร์ฟเวอร์รายงานจึงจำเป็นต้องมีสิทธิ์การใช้งานแยกกันสำหรับแต่ละเซิร์ฟเวอร์
Nathan Griffiths

2

สำหรับ VS2008 ฉันเชื่อว่า RDL ให้คุณสมบัติการแก้ไขที่ดีกว่า RDLC ตัวอย่างเช่นฉันสามารถเปลี่ยนตัวหนาสำหรับจำนวนข้อความที่เลือกในกล่องข้อความด้วย RDL ในขณะที่ใน RDLC ไม่สามารถทำได้

RDL: abcd efgh ijklmnop

RDLC: abcd efgh ijklmnop -or- abcd efgh ijklmnop (เป็นตัวเลือกเดียวของคุณ)

เนื่องจาก RDLC ใช้เนมสเปซ / การจัดรูปแบบก่อนหน้านี้จากปี 2005 ในขณะที่ RDL ใช้ 2008 อย่างไรก็ตามสิ่งนี้จะเปลี่ยนไปด้วย VS2010


4
นี่ไม่ใช่เพราะความแตกต่างระหว่าง rdl และ rdlc นี่คือความแตกต่างระหว่างบริการรายงานเซิร์ฟเวอร์ sql ปี 2548 และ 2551 โปรแกรมดูรายงานที่แจกจ่ายต่อได้ซึ่งล้าหลังการพัฒนาเซิร์ฟเวอร์ sql สนับสนุนการรายงานฝั่งไคลเอ็นต์ความล่าช้านี้เป็นสาเหตุของความแตกต่าง คุณกำลังอธิบาย
marr75

1
เนื่องจากมีข้อบกพร่องจำนวนมากฉันจึงย้ายจาก 2005 (RDLC) เป็น 2008 Reporting Services (RDL)
Junior Mayhé

1

หากเรามีรายงานจำนวนน้อยกว่าซึ่งมีความซับซ้อนน้อยกว่าและใช้งานโดยหน้าเว็บ asp.net จะดีกว่าถ้าใช้ rdlc เหตุผลก็คือเราสามารถหลีกเลี่ยงรายงานการบำรุงรักษาบนอินสแตนซ์ RS ได้ แต่เราต้องดึงข้อมูลจาก DB ด้วยตนเองและผูกเข้ากับ rdlc

จุดด้อย: การออกแบบ rdlc ใน Visual Studio นั้นยากเล็กน้อยเมื่อเทียบกับนักออกแบบ SSrs

Pro: การดูแลรักษาทำได้ง่าย ในขณะที่ส่งออกรายงานจากหน้าเราพบว่าประสิทธิภาพที่เพิ่มขึ้นเมื่อเทียบกับรายงานฝั่งเซิร์ฟเวอร์


-3

หากคุณต้องการใช้รายงานใน asp.net ให้ใช้. rdl หากคุณต้องการใช้ / ดูในตัวสร้างรายงาน / เซิร์ฟเวอร์รายงานจากนั้นใช้. rdlc เพียงแค่แปลงรูปแบบด้วยตนเองก็ใช้งานได้


สิ่งนี้ดูเหมือนว่าจะมีการสลับ RDL และ RDLC ในแง่ของตำแหน่งที่รัน - และแม้ว่าจะไม่เป็นเช่นนั้น แต่ก็จะไม่เพิ่มอะไรที่เป็นประโยชน์กับคำตอบที่มีอยู่นับสิบคำตอบ
underscore_d

rdlc เป็นส่วนขยายสำหรับการรายงานในเครื่องคุณสามารถใช้ใน aspnet, winforms หรือ wpf msdn.microsoft.com/es-es/library/ms252104.aspx คุณไม่สามารถใช้ไฟล์. rdlc ในโหมดการประมวลผลระยะไกล
dgzornoza
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.