2013-01-13 14 views
9

में प्रिंटिंग और रिपोर्टिंग रिपोर्ट मैंने रिपोर्ट बनाने और प्रिंट करने के लिए डेल्फी क्विकरपोर्ट में उपयोग किया था। .NET C# में ऐसा करने के लिए मैं इसका उपयोग कैसे कर सकता हूं?सी # Winform

मैंने अपने प्रोजेक्ट (विनफॉर्म ऐप) में कुछ रिपोर्टिंग तत्व (माइक्रोसॉफ्ट रिपोर्ट्स और क्रिस्टल रिपोर्ट) को जोड़ा, लेकिन मैंने जो देखा, यह है कि मैं केवल डेटाबेस से डेटा डाल सकता हूं। मैं क्या चाहता हूं, रनटाइम में बनाए गए ऑब्जेक्ट्स के मानों का उपयोग करना है। ऐसा इसलिए है क्योंकि मेरी रिपोर्ट में वास्तव में प्राप्तियां और चालान शामिल होते हैं।

मेरी आवश्यकता के लिए उपयोग करने के लिए सबसे अच्छा उपकरण कौन सा है?

उत्तर

14

आप डेटाबेस की आवश्यकता के बिना अच्छी रिपोर्ट जेनरेट करने के लिए अंतर्निहित रिपोर्ट का उपयोग कर सकते हैं।

अपने डेटा के लिए एक कक्षा बनाएं, मेरे मामले में, मैं एक व्यक्ति वर्ग बनाने के लिए जा रहा हूँ:

class Person 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string AddressLine1 { get; set; } 
    public string AddressLine2 { get; set; } 
} 
  • अगला मैं रिपोर्ट विज़ार्ड का उपयोग कर एक रिपोर्ट जोड़ने के लिए जा रहा हूँ (नया आइटम जोड़ें -> रिपोर्टिंग -> विज़ार्ड की रिपोर्ट करें)।

  • डेटास्रोत के लिए, मैं ऑब्जेक्ट का चयन करने जा रहा हूं और फिर इसे अपनी व्यक्तिगत श्रेणी में इंगित करता हूं। Datasource from a class

  • कॉलम आप अपने विवरण के लिए चाहते हैं, मैं सिर्फ सादगी के लिए मूल्यों में उन सभी को खींच रहा हूँ।

Report Wizard Fields

  • जादूगर सिर्फ चूक का चयन के बाकी के माध्यम से वॉक और आप तो अपनी रिपोर्ट देखना चाहिए।

  • अब आप एक फॉर्म में एक रिपोर्ट व्यूअर नियंत्रण जोड़ सकते हैं और रिपोर्ट को आपके द्वारा बनाई गई रिपोर्ट में सेट कर सकते हैं। यह आपके फॉर्म पर एक व्यक्ति बाइंडिंग स्रोत भी बनाना चाहिए।

  • स्मृति में एक सूची में PersonBindingSource के डेटा सेट करें:

    BindingList<Person> myPeople = new BindingList<Person>(); 
    myPeople.Add(new Person() { FirstName = "John" , LastName = "Doe"}); 
    myPeople.Add(new Person() { FirstName = "Jane" , LastName = "Doe"}); 
    myPeople.Add(new Person() { FirstName = "Jerry" , LastName = "Smithers" }); 
    
    PersonBindingSource.DataSource = myPeople; 
    reportViewer1.RefreshReport(); 
    this.reportViewer1.RefreshReport(); 
    
अंतिम इस तरह लग रही रिपोर्ट के माध्यम से

:

Final Report

+0

आपके उत्तर के लिए वास्तव में बहुत बहुत धन्यवाद। यह वास्तव में पूर्ण और सहायक है। मैं आपको बताना चाहता था कि मेरे पास सैप क्रिस्टल रिपोर्ट स्थापित है। आपको लगता है कि क्रिस्टल के बजाय निर्मित रिपोर्ट का उपयोग करना बेहतर है? – Andres

+0

@Andres कोई सही या गलत जवाब नहीं है और कोई "बेहतर" नहीं है। आपको प्रत्येक की क्षमताओं को देखने और यह निर्धारित करने की आवश्यकता है कि आपके आवेदन के लिए सबसे अच्छा क्या काम करता है और केस का उपयोग करें। सीआर और माइक्रोसॉफ्ट दोनों उपकरण लंबे समय से रहे हैं और उनके साथ सुविधाओं का एक बहुत पूरा सेट और कुछ मूर्खतापूर्ण व्यवहार है जो एक पूर्व युग से बचा है। मेरा सुझाव यह है कि आप अपना खुद का शोध करते हैं और अपने निष्कर्ष पर आते हैं। –

+0

ज़रूर! वैसे भी, मुझे चार्ट और बाद में उस तरह की चीजों के साथ रिपोर्ट करने की आवश्यकता होगी। क्या माइक्रोसॉफ्ट रिपोर्ट्स का समर्थन करता है? एक बार फिर धन्यवाद! – Andres

1

क्रिस्टल रिपोर्ट आपके लिए पूरी तरह से काम करेगी। असल में आप डेटाबेस के बिना रिपोर्ट जेनरेट कर सकते हैं। this प्रोजेक्ट देखें और इसे शुरू करना चाहिए और यह वही है जो आप करने की कोशिश कर रहे हैं।

आप यह आपकी मदद करता है!

+0

धन्यवाद! एक उपयोगी उदाहरण है! – Andres