2010-03-29 13 views
5

मैं वर्ड दस्तावेज़ में तालिका के प्रत्येक सेल के साथ मेटाडेटा (मूल रूप से एक अद्वितीय आईडी) स्टोर करने की कोशिश कर रहा हूं। वर्तमान में, ऐड-इन के लिए मैं विकास कर रहा हूं, मैं डेटाबेस से पूछताछ कर रहा हूं, और पुनर्प्राप्त किए गए डेटा का उपयोग करके वर्ड दस्तावेज़ के अंदर एक टेबल बना रहा हूं।क्या वर्ड दस्तावेज़ में किसी विशिष्ट तालिका या कक्ष से जुड़ा हुआ छुपा मेटाडेटा जानकारी संग्रहीत करना संभव है?

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

object t1 = Word.WdFieldType.wdFieldEmpty; 
object val = "myValue: " + counter; 
object preserveFormatting = true; 
tbl.Cell(i, j).Range.Fields.Add(tbl.Cell(i, j).Range, ref t1, ref val, ref preserveFormatting); 

यह ठीक संकलित करता है, लेकिन यह रनटाइम त्रुटि फेंकता है "यह आदेश उपलब्ध नहीं है"।

तो, क्या यह संभव है? या मैं गलत दिशा में नेतृत्व कर रहा हूँ?

अग्रिम धन्यवाद।

+0

शब्द का कौन सा संस्करण आप लक्षित कर रहे हैं? क्या यह एक एक्सएमएल दस्तावेज़, वर्ड 2007 दस्तावेज़, रिच टेक्स्ट फॉर्मेट है? – AMissico

+0

क्षमा करें, पहले उल्लेख किया जाना चाहिए था। लक्ष्यीकरण संस्करण 2007, और यह एक वर्ड 2007 दस्तावेज़ है। – leftend

उत्तर

1

मुझे आवश्यक जानकारी संग्रहीत करने के लिए "ContentControls" का उपयोग करके घायल हो गया। मैंने अद्वितीय आईडी और "टैग" फ़ील्ड को स्टोर करने के लिए "शीर्षक" फ़ील्ड का उपयोग किया ताकि यह ट्रैक किया जा सके कि फ़ील्ड बदल गया है या नहीं। अधिक जानकारी के लिए यह लिंक देखें: http://blogs.technet.com/gray_knowlton/archive/2010/01/15/associating-data-with-content-controls.aspx

+0

मैं इन नियंत्रणों के बारे में पूरी तरह से भूल गया। माफ़ कीजिये। – AMissico

+1

कोई माफी मांगना नहीं - जितना अधिक मैं एड-इन विकास में खोदता हूं, उतना ही मुझे एहसास होता है कि यह कितना जटिल है! आपकी प्रतिक्रिया के लिए धन्यवाद, जैसा कि मैंने कहा, यह वास्तव में मुझे सही दिशा में इंगित करता था। – leftend

+0

दुर्भाग्य से, यह "पुराना" .doc-format के लिए काम नहीं करता है, 'Word.Table.Title' के साथ-साथ' Word.Table.Descr' गुण भी हैं जिन्हें ओपनएक्सएमएल प्रारूप के परिचय के साथ जोड़ा गया है। .doc-files के लिए, मुझे अभी तक एक संतोषजनक समाधान नहीं मिला है, क्योंकि 'Word.Table.Range' पर टिप्पणियां जोड़ने से हमेशा उप-प्रोग्राम में .doc खोला जाता है जब किक करने के लिए संशोधन-दृश्य को ट्रिगर किया जाएगा शब्द-दर्शक की तरह। – M463

1

चूंकि "वर्ड 2007 दस्तावेज़" एक्सएमएल है, इसलिए आप दस्तावेज़ में नामस्थान जोड़ सकते हैं और फिर अपने नामस्थान से गुणों वाले तत्वों को मान सकते हैं। लोडिंग और सहेजते समय शब्द को आपके नेमस्पेस को अनदेखा करना चाहिए। इसके अलावा, आप किसी भी जानकारी (मेटाडाटा) को स्टोर करने के लिए नए एल्मेंट्स जोड़ सकते हैं।

इसके साथ ही कहा, मैं पद के साथ इस तकनीक का उपयोग नहीं किया है, लेकिन मैं सफलतापूर्वक एक्सेल 2003

पहली बात का उपयोग कर की कोशिश करने का यह किया है, एक नंगे "Word 2007 दस्तावेज़" पैदा करते हैं। अपने मामले में, दो टेबल से एक साधारण दो जोड़ें। इसे टेक्स्ट या एक्सएमएल एडिटर के साथ खोलें और अपना नेमस्पेस जोड़ें, और एक एट्रिब्यूट करें और एक तत्व जोड़ें। शब्द के साथ खोलें एक बदलाव करें और फिर इसे सहेजें। संपादक के साथ खोलें और सुनिश्चित करें कि आपका नेमस्पेस विशेषता और तत्व बदला नहीं गया है।

+0

मदद के लिए धन्यवाद! मैं यह काम करने में सक्षम नहीं था, लेकिन यह निश्चित रूप से मुझे सही दिशा में जा रहा था। – leftend

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^