2011-05-24 15 views
6

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

मैं लिंक नहीं मिला:

1.) How to work in Crystal Report with Object Data Source?

2.) Use .net object as data source in Crystal Report 2008

3.) Binding object with List<> to Crystal Report

4.) How to assign Custom class as datasource in crystal report

वे काफी मददगार थे, लेकिन मैं अपने कस्टम वर्ग की संपत्ति के रूप में रिपोर्ट तैयार करते समय पहले चरण में फंस गया हूं i क्रिस्टल रिपोर्ट डिजाइन दृश्य की फ़ील्ड सूची में सूचीबद्ध नहीं है।

मेरी कस्टम वर्ग का नमूना:

class UserType 
    public property UIN as integer... 
    public property Title as string... 
end class 
class User 
    public property UIN as Integer... 
    public property Name as string... 
    public property Password as String... 
    public property Type as UserType... 
end class 

जब मैं क्रिस्टल रिपोर्ट के मेरी कक्षा वस्तुओं को जोड़ने मैं क्षेत्र सूची में उपयोगकर्ताओं वर्ग से प्रयोक्ता प्रकार क्षेत्र नहीं मिलता है।

तो मैं अपनी फ़ील्ड सूची में usertype फ़ील्ड कैसे जोड़ सकता हूं? या मुझे एक और दृष्टिकोण लेना है?

संपादित करें:

कारण मैं इसे उपयोग करने के लिए के रूप में मैं कर रहा हूँ चाहता था:
1.) एक रूप जहाँ उपयोगकर्ता कीवर्ड
2.) कार्यक्रम टाइप कर सकते हैं दिखा प्रति कीवर्ड LINQ का उपयोग कर के रूप में फिल्टर रिकॉर्ड
3.) जब उपयोगकर्ता प्रिंट बटन क्लिक करता है, मैं अपनी रिपोर्ट के डेटा स्रोत के रूप में फ़िल्टर रिकॉर्ड स्थापित करना चाहते हैं

उत्तर

0

आप एक्सएमएल के लिए वस्तु serializing की कोशिश कर सकते हैं, एक XSD की आपूर्ति, तो क्रिस्टल रिपोर्ट के XML ड्राइवर का उपयोग करने के लिए कनेक्ट करने के लिए यह। रिपोर्ट ऑब्जेक्ट को दो टेबल के रूप में 'देखें': उपयोगकर्ता के लिए एक और उपयोगकर्ता टाइप के लिए एक। आप रिपोर्ट में 'टेबल' दोनों शामिल करेंगे और internal_id फ़ील्ड का उपयोग कर तालिकाओं को लिंक करेंगे।

+0

हम कैसे करने के लिए वस्तुओं को क्रमानुसार है डिजाइन समय में एक्सएमएल? या हम इसे रनटाइम में करते हैं? – KoolKabin

+0

रिपोर्ट तैयार करने के लिए, आप 'स्थैतिक' एक्सएमएल और एक्सएसडी दस्तावेज़ों का उपयोग कर सकते हैं। रन टाइम पर, आप इसे एक यूआरएल पर इंगित कर सकते हैं जो दो दस्तावेज़ लौटाता है या इस दृष्टिकोण का उपयोग करता है: http://dotnetslackers.com/articles/xml/ReportingXMLDataUsingCrystalReportsAndWindowsForms.aspx – craig

0

आप अपनी रिपोर्ट में दृढ़ता से टाइप किए गए डेटासेट को असाइन क्यों नहीं करते हैं और स्वयं को बहुत सारी परेशानी बचाते हैं?

+0

क्या यह मेरे कामकाजी क्रेटरिया से मेल खाता है ... क्या आप कुछ प्रदान कर सकते हैं संपर्क? – KoolKabin

1
  • अपनी कक्षा से मेल खाने वाले कॉलम के साथ अपना डेटासेट बनाएं, और सामान्य रूप से डेटासेट को अपनी रिपोर्ट में असाइन करें।
  • आप अपनी वस्तु वर्ग डेटा के साथ भरी हुई जब है, और/या उपयोगकर्ताओं द्वारा दर्ज मूल्यों के साथ फ़िल्टर्ड (LINQ आदि के साथ फ़िल्टर किया ..) ऐसा करते हैं:

    dim yourDataset as dataset ' this is your typed dataset 
    Dim dr As datarow 
    For n As Integer = 0 To yourClass.Count - 1 
        dr = yourDataset.tables("TableName").NewRow 
        dr("ColumnNameOne") = yourClass(n).PropertyName 
        dr("ColumnNameTwo") = yourClass(n).PropertyName 
    
        yourDataset.tables("TableName").Rows.Add(dr) 
    Next 
    
    ' bind the datasource 
    crystalreport.SetDatasource(ds) 
    
संबंधित मुद्दे