مشاركة عبر


الإرشادات التفصيلية: ربط بيانات بسيط في مشروع على مستوى التطبيق

ينطبق على

تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع.

نوع المشروع

  • مشروعات على مستوى التطبيق

إصدار Microsoft Office

  • Word 2007

  • Word 2010

يمكنك ربط بيانات لعناصر تحكم المضيفة و عناصر تحكم Windows Forms في المشاريع التي علي مستوي التطبيق. توضح هذه الإرشادات التفصيلية كيفية إضافة عناصر تحكم إلى مستند Microsoft Office Word ثم ربط عناصر التحكم للبيانات عند وقت التشغيل.

توضح هذه الإرشادات التفصيلية المهام التالية:

  • إضافة ContentControl الي مستند في وقت التشغيل.

  • إنشاء BindingSource التي توصل عنصر التحكم بمثيل من مجموعة بيانات.

  • تمكين المستخدم من التمرير خلال السجلات وعرضها في عنصر التحكم.

ملاحظة

قد يعرض جهاز الكمبيوتر الخاص بك أسماء أو مواقع مختلفة لبعض عناصر واجهة مستخدم Visual Studio في الإرشادات التالية. يحدد كل من إصدار Visual Studio لديك والإعدادات المستخدمة هذه العناصر. لمزيد من المعلومات، راجع العمل مع إعدادات.

المتطلبات الأساسية

تحتاج إلى المكونات التالية لاستكمال هذه الإرشادات التفصيلية:

-

إصدار لـ Visual Studio 2010 يشمل أدوات مطوري Microsoft Office. لمزيد من المعلومات، راجع [تكوين كمبيوتر لتطوير حلول Office](bb398242\(v=vs.100\).md).

إنشاء مشروع جديد

الخطوة الأولى هي إنشاء مشروع وظيفة Word إضافية.

لإنشاء أحد المشروعات الجديدة

  1. يمكنك العمل مع أجزاء XML مخصص باستخدام تخصيص المستوى المستندات أو المستوى تطبيق إضافة-في.

    لمزيد من المعلومات، راجع كيفية القيام بما يلي: إنشاء مشاريع Office في Visual Studio.

    Visual Studio opens the ThisAddIn.vb or ThisAddIn.cs file and adds the Populating Documents from a Database project to Solution Explorer.

  2. إذا كان مشروعك يستهدف .NET Framework 4 ، اضف مرجعاً لتجميع Microsoft.Office.Tools.Word.v4.0.Utilities.dll. هذا المرجع مطلوب لاضافة عناصر تحكم Windows Forms إلى المستند المستخدم فيما بعد في هذه الإرشادات التفصيلية.

إنشاء مصدر بيانات

قم باستخدام النافذة مصادر البيانات لتضيف مجموعة بيانات مكتوبة إلى مشروعك.

لاضافة مجموعة بيانات مكتوبة إلى المشروع

  1. في قائمة البيانات ,انقر فوق إضافة مصدر بيانات جديد.

    يتم فتح معالج تكوين مصدر البيانات.

  2. انقر فوق قاعدة البيانات، ثم انقر فوق التالي‏‎.

  3. إذا كان لديك اتصال موجود إلى AdventureWorksLT ،اختر هذا الاتصال وانقر فوق التالي.

    وإلا فانقر فوق اتصال جديد، واستخدم مربع الحوار إضافة اتصال لإنشاء الاتصال الجديد. لمزيد من المعلومات، راجع كيفية القيام بما يلي: يعيّن إلى البيانات في قاعدة بيانات.

  4. في صفحة جفظ سلسلة الاتصال إلى ملف تكوين التطبيق، انقر فوق التالي.

  5. في صفحة اختر كائنات قاعدة البيانات الخاصة بك، قم بتوسيع الجداول وحدد العميل (SalesLT).

  6. انقر فوق Finish.

    يتم إضافة ملف AdventureWorksLTDataSet.xsd الي مستكشف الحلول. يحدد هذا الملف العناصر التالية:

    • مجموعة بيانات مكتوبة تسمى AdventureWorksLTDataSet. مجموعة البيانات هذه تمثل محتويات الجدول العميل (‎ (SalesLT في قاعدة بيانات AdventureWorksLT.

    • TableAdapter يسمى CustomerTableAdapter. TableAdapter هذا يمكن استخدامه لقراءة وكتابة البيانات في AdventureWorksLTDataSet. لمزيد من المعلومات، راجع نظرة عامة حول محول الجدول.

    ستستخدم كل من هذه الكائنات لاحقًا في هذه الإرشادات التفصيلية.

إنشاء عناصر التحكم و ربط عناصر تحكم إلى البيانات

واجهة عرض سجلات قاعدة البيانات في هذه الإرشادات التفصيلية أساسية جدا ويتم إنشاؤها داخل المستند. واحد من ContentControl يعرض سجل قاعدة بيانات واحدة في كل لحظة ، اثنين من عناصر التحكم Button يتيحان لك التمرير ذهاباً وإياباً خلال السجلات. يستخدم عنصر تحكم المحتوى BindingSource للاتصال بقاعدة البيانات.

لمزيد من المعلومات حول ربط عناصر التحكم بالبيانات، راجع ربط بيانات إلى عناصر تحكم في حلول Office.

لإنشاء الواجهة في المستند

  1. في الفئة ThisAddIn ، قم بالتصريح بعناصر التحكم التالية للتمرير خلال جدول Customer لقاعدة البيانات AdventureWorksLTDataSet .

    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private customerTableAdapter As AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter
    Private customerBindingSource As System.Windows.Forms.BindingSource
    Private customerContentControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Private WithEvents button1 As Microsoft.Office.Tools.Word.Controls.Button
    Private WithEvents button2 As Microsoft.Office.Tools.Word.Controls.Button
    
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter;
    private System.Windows.Forms.BindingSource customerBindingSource;
    private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl;
    private Microsoft.Office.Tools.Word.Controls.Button button1;
    private Microsoft.Office.Tools.Word.Controls.Button button2;
    
  2. في الأسلوب ThisAddIn_Startupقم بإضافة التعليمة البرمجية التالية لتهيئة ورقة العمل, قم بتعبئة ورقة العمل بمعلومات من قاعدة البيانات AdventureWorksLTDataSet.

    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.customerTableAdapter = New AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter()
    Me.customerTableAdapter.Fill(Me.adventureWorksDataSet.Customer)
    Me.customerBindingSource = New System.Windows.Forms.BindingSource()
    
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. قم بإضافة التعليمات البرمجية التالية للأسلوب ThisAddIn_Startup . ينشئ هذا عنصراً مضيفاً يوسع المستند. لمزيد من المعلومات، راجع توسيع مستندات Word ومصنفات Excel في وظائف إضافية على مستوى التطبيق في وقت التشغيل.

    Dim currentDocument As Word.Document = Me.Application.ActiveDocument
    
    ' Use the following line of code in projects that target the .NET Framework 4.
    Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
    ' In projects that target the .NET Framework 3.5, use the following line of code instead.
    ' Dim extendedDocument As Document = currentDocument.GetVstoObject()
    
    Word.Document currentDocument = this.Application.ActiveDocument;
    
    // Use the following line of code in projects that target the .NET Framework 4.
    Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
    // In projects that target the .NET Framework 3.5, use the following line of code instead.
    // Document extendedDocument = currentDocument.GetVstoObject();
    
  4. قم بتعريف نطاقات متعددة في بداية المستند. هذه النطاقات تقوم بتعريف مكان إدراج النص و وضع عناصر التحكم.

    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.Text = "The companies listed in the AdventureWorksLT database:   "
    extendedDocument.Paragraphs(2).Range.Text = "  "
    
    Dim range1 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.First
    Dim range2 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.Last
    Dim range3 As Word.Range = extendedDocument.Paragraphs(1).Range.Characters.Last
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.Text = 
        "The companies listed in the AdventureWorksLT database:   \n";
    extendedDocument.Paragraphs[2].Range.Text = "  "; 
    
    Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First;
    Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last;
    Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
    
  5. قم باضافة عناصر الواجهة إلى نطاقات معرّفة مسبقاً.

    Me.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1")
    Me.button1.Text = "Previous"
    Me.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2")
    Me.button2.Text = "Next"
    
    Me.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(range3, _
        "richTextContentControl1")
    
    this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1");
    this.button1.Text = "Previous";
    this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2");
    this.button2.Text = "Next";
    
    this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(
        range3, "richTextContentControl1");
    
  6. قم بربط عنصر تحكم المحتوى ل AdventureWorksLTDataSet باستخدام BindingSource. لمطوري C # ، قم باضافة جهازي معالجات الأحداث لعناصر التحكم Button.

    Me.customerBindingSource.DataSource = Me.adventureWorksDataSet.Customer
    Me.customerContentControl.DataBindings.Add("Text", Me.customerBindingSource, _
        "CompanyName", True, Me.customerContentControl.DataBindings.DefaultDataSourceUpdateMode)
    
    this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer;
    this.customerContentControl.DataBindings.Add("Text", this.customerBindingSource, 
        "CompanyName", true, this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode);
    
    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    
  7. قم باضافة التعليمة البرمجية التالية للتنقل بين سجلات قاعدة البيانات.

    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button1.Click
        Me.customerBindingSource.MovePrevious()
    End Sub
    
    Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button2.Click
        Me.customerBindingSource.MoveNext()
    End Sub
    
    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

اختبار الوظائف الإضافية

عند فتحك لـ Word، عنصر تحكم المحتوى يعرض بيانات من مجموعة البيانات AdventureWorksLTDataSet . قم بالتمرير عبر سجلات قاعدة البيانات بواسطة النقر فوق الأزرار التالي و السابق .

لاختبار الوظيفة الإضافية

  1. اضغط المفتاح F5.

    محتوى التحكم باسم customerContentControl تم إنشاؤه و تعبئته بالبيانات. في نفس الوقت، تتم إضافة كائن مجموعة بيانات يسمى adventureWorksLTDataSet وBindingSource يسمى customerBindingSource إلى المشروع. ContentControl مرتبط بـ BindingSource الذي بدوره مرتبط بكائن مجموعة البيانات.

  2. قم بالتمرير عبر سجلات قاعدة البيانات بواسطة النقر فوق الأزرار التالي و السابقة .

راجع أيضًا:

المهام

كيفية القيام بما يلي: تعبئة أوراق العمل بالبيانات من قاعدة البيانات

كيفية القيام بما يلي: نشر المستندات بالبيانات من قاعدة بيانات

كيفية القيام بما يلي: نشر مستندات مع بيانات من خدمات

كيفية القيام بما يلي: نشر مستندات مع بيانات من كائنات

كيفية القيام بما يلي: التمرير عبر سجلات البيانات في ورقة عمل

كيفية القيام بما يلي: تحديث مصدر بيانات ببيانات من عنصر تحكم مضيف

الإرشادات التفصيلية: ربط بيانات بسيطة في مشروع على مستوى المستند

الإرشادات التفصيلية: ربط بيانات بشكل معقد في مشروع على مستوى المستند

كيفية القيام بما يلي: نشر مستندات مع بيانات من كائنات

كيفية القيام بما يلي: تحديث مصدر بيانات ببيانات من عنصر تحكم مضيف

المرجع

نظرة عامة حول مكوّن BindingSource

المبادئ

نظرة عامة عن استخدام ملفات قاعدة بيانات محلية في حلول Office

نظرة عامة حول المصادر بيانات

ربط عناصر تحكم النماذج Windows إلى بيانات في ‏‫Visual Studio

نظرة عامة عن استخدام ملفات قاعدة بيانات محلية في حلول Office

الاتصال إلى البيانات في تطبيقات نماذج Windows

موارد أخرى

البيانات في حلول Office

ربط بيانات إلى عناصر تحكم في حلول Office