2009-06-22 14 views
5

में एक टेक्स्ट फ़ाइल की सामग्री दिखाना संभव है मेरे पास एक क्रिस्टल रिपोर्ट है जिसमें पूरी तरह से संदर्भित टेक्स्ट फ़ाइलों की एक सूची है। प्रत्येक शरीर रेखा में संदर्भित एक पाठ फ़ाइल है।क्या क्रिस्टल रिपोर्ट्स

उदा।

line1 c:\file1.txt 
line2 c:\file2.txt 

क्या क्रिस्टल में इन फ़ाइलों की सामग्री को प्रदर्शित करने का कोई तरीका है?

यानी मैं प्रत्येक क्रिस्टल बॉडी लाइन को संदर्भित टेक्स्ट फ़ाइल से टेक्स्ट दिखाने के लिए चाहूंगा।

मैं गैर-मानक डेटाबेस कनेक्टर (डेटाफ्लेक्स) के साथ क्रिस्टल रिपोर्ट 11 का उपयोग कर रहा हूं।

उत्तर

0

मुझे लगता है कि यदि आपके पास कोई ऐसा फ़ंक्शन है जो फ़ाइल नाम को तर्क के रूप में लेता है और उस फ़ाइल की सामग्री देता है - तो आप क्रिस्टल रिपोर्ट फ़ॉर्मूला में उस फ़ंक्शन का उपयोग कर सकते हैं।

मैं वर्तमान सीआर से परिचित नहीं हूं, पिछले कुछ वर्षों से मैंने इसका उपयोग किया है (मैंने पिछली बार संस्करण 8 का उपयोग किया था)। मेरे द्वारा उपयोग किए जाने वाले संस्करणों में, इस तरह का एक फ़ंक्शन नहीं बनाया गया था। आपको फिर से क्या करना होगा, एक यूएफएल (उपयोगकर्ता फ़ंक्शन लाइब्रेरी) बनाना था जिसमें आपको आवश्यक फ़ंक्शन शामिल थे। अगर मुझे सही याद है, तो आपको COM का उपयोग करके ऐसा करना होगा।

इस दिन और उम्र में, मुझे लगता है कि आप कुछ अन्य तंत्र का उपयोग कर सीआर का विस्तार कर सकते हैं, शायद .NET कोड लिख रहे हैं?

मेरा सुझाव है कि आप यूएफएल शब्द के लिए सीआर दस्तावेज खोज लें।

+0

ऐसा करने से टेक्स्ट फ़ाइल के शीर्ष 256 वर्ण वापस आते हैं। – seanyboy

+0

नहीं - दो बार चेक किया गया और यह निश्चित रूप से काम नहीं करता है। वेब से कुछ सुझाव है कि क्रिस्टल रिपोर्टों के सूत्रों के परिणामों के लिए 255 वर्ण सीमा है। – seanyboy

0

एक और सुझाव है, तो:

  • एक नई तालिका FILECONTENTS (फ़ाइल नाम varchar प्राथमिक कुंजी, सामग्री ब्लॉब) बनाएं
  • एक स्क्रिप्ट है कि एक समय पर फ़ाइल नाम और सभी की सामग्री के साथ इस तालिका भरता बनाएं फाइलें (मान लीजिए कि फाइलों की एक सीमित संख्या है, और आपके पास उनके बारे में जानने का कोई तरीका है)
  • रिपोर्ट डेटासेट क्वेरी को फ़ाइल में फ़ाइल में शामिल करने के लिए संशोधित करें, और रिपोर्ट फ़ील्ड को रिपोर्ट में जोड़ें।
+0

दुर्भाग्यवश, हमारा डेटाबेस 17K से बड़े ब्लॉब्स की अनुमति नहीं देता है। (मत पूछो।) मैं खोज को जारी रखूंगा। – seanyboy

+0

आप हमेशा टेक्स्ट वाले डेटासेट को दबा सकते हैं। – dotjoe

0

आप एक फ़ाइल डीएसएन सेट कर सकते हैं। लेकिन यह टैबुलर फ़ाइल डेटा की ओर तैयार है, पाठ नहीं।

ये टेक्स्ट फ़ाइलें कितनी बड़ी हैं? आप प्रत्येक फाइल की पूरी सामग्री प्रदर्शित करना चाहते हैं?

शायद क्रिस्टल के भीतर से फ़ाइल में गतिशील रूप से पढ़ने का कोई आसान तरीका नहीं है। आपको संभवतः रिपोर्ट में डेटासेट को धक्का देना होगा जिसमें फ़ाइल सामग्री शामिल है।

4

आपको एक फ़ाइल डीएसएन (XP में यह नियंत्रण कक्ष/प्रशासनिक उपकरण/डेटासोडर्स (ओडीबीसी) के तहत) स्थापित करने की आवश्यकता होगी और फिर डेटा स्रोत के लिए फ़ाइल डीएसएन (माइक्रोसॉफ्ट टेक्स्ट ड्राइवर) का उपयोग ओडीबीसी (आरडीओ) कनेक्शन के रूप में करें ।

मैं इस परीक्षण परिदृश्य की तरह मेरा पर स्थापित निम्नलिखित:

**File 1** 
column1 
1row1 
1row2 
1row3 

**File 2** 
column1 
2row1 
2row2 
2row3 

मैं फ़ाइल DSN सी ड्राइव करने के लिए और डेटा स्रोत स्क्रीन मैं करने के लिए file1.txt और file2.txt जोड़ा में बात करने के लिए की स्थापना की चयनित टेबल फिर सबसे आसान काम टेबल के लिंक साफ़ कर देता है ताकि यह हर पंक्ति खींच सके। यह आपको चेतावनी देगा कि कई शुरुआती बिंदु हैं।मैं आम तौर पर इसकी सिफारिश नहीं करता हूं, लेकिन यह इस मामले में काम करेगा और चूंकि यह डेटाबेस से रिपोर्ट नहीं कर रहा है, यह शायद दुनिया का अंत नहीं है। आप तो प्रारंभिक बिंदु संदेश को अनदेखा कर रिपोर्ट करने के लिए खेतों में जोड़ते हैं, जब आप इसे चलाते आप निम्नलिखित उत्पादन मिलना चाहिए:

1row1  2row1 
1row1  2row2 
1row1  2row3 
1row2  2row1 
1row2  2row2 
1row2  2row3 
1row3  2row1 
1row3  2row2 
1row3  2row3 

इस से आप उत्पादन है कि आप की जरूरत है पाने के लिए अपने समूह बदल सकते हैं।

आप इस लिंकिंग के बजाय सबरेपोर्ट्स के खिलाफ भी इसी कनेक्ट का उपयोग कर सकते हैं जहां आपके पास मुख्य रिपोर्ट file1.txt से जानकारी खींचती है और फिर फ़ाइल 2.txt से खींचने वाले रिपोर्ट फ़ूटर में एक सबरेपोर्ट डाल दें। इस विकल्प में पाठ को संकुचित नहीं किया जाएगा, लेकिन आपके पास अभी भी एक ही रिपोर्ट में होगा।

उम्मीद है कि इससे कुछ मदद मिलती है।

+0

इस प्रश्न के लिए बक्षीस कहाँ गए? – Dusty

+0

लॉल - यह गायब हो गया, मैं आपको एक +1 दूंगा हालांकि – dotjoe

+0

हाहा, धन्यवाद आदमी। – Dusty

1

यह आपके विचार से आसान है। यह सुनिश्चित करने के लिए कि मैंने आपको सही कदम दे रहे हैं, मैंने इसे लिखने से पहले ही एक सेट अप किया था।

  1. आप, आयात अपनी रिपोर्ट (अर्थात DetailsA, DetailsB, आदि) में एक उपधारा बनाना चाहते प्रत्येक पाठ फ़ाइल के लिए: सीआर संस्करण इलेवन और एक .txt फ़ाइल का उपयोग करना, मैं इन चरणों का पालन किया। यदि आपकी टेक्स्ट फ़ाइलों की सूची लगातार बदल रही है (और मुझे नहीं लगता कि यह आपके विवरण के आधार पर है), तो आपको एक और विधि की आवश्यकता होगी।
  2. सुनिश्चित करें कि आपकी टेक्स्ट फ़ाइल अल्पविराम सीमित है और पहली पंक्ति में फ़ील्ड नाम हैं। यदि ये टेक्स्ट फ़ाइलें वास्तव में पाठ (यानी टेबल नहीं हैं), तो केवल पहली पंक्ति में एक डमी चर नाम डालें ताकि क्रिस्टल टेक्स्ट को केवल 1 पंक्ति के साथ डेटा की तालिका के रूप में देख सके।
  3. आप प्रदर्शित करने के लिए, एक नया Subreport (Insert-> Subreport)
  4. डेटाबेस चयन मेनू में, "नया कनेक्शन बनाएँ" के लिए जाना बनाने चाहते प्रत्येक पाठ फ़ाइल के लिए -> "प्रवेश/एक्सेल (डीएओ)"
  5. 'डेटाबेस प्रकार' के तहत, आपको स्क्रीन के नीचे एक 'टेक्स्ट' विकल्प दिखाई देगा।
  6. अपनी फ़ाइल चुनें।
  7. आराम करें! (मैं आज सुबह एक अच्छी मनोदशा में हूं, पता नहीं क्यों)
संबंधित मुद्दे