مشاركة عبر


الإرشادات التفصيلية: ربط بيانات إلى عناصر تحكم في جزء إجراءات Word

ينطبق على

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

نوع المشروع

  • مشروعات على مستوى المستند

إصدار Microsoft Office

  • Word 2007

  • Word 2010

توضح هذه الإرشادات التفصيلية ربط البيانات إلى عناصر تحكم على جزء إجراءات في Microsoft Office Word. عناصر التحكم توضح علاقة رئيسي/تفصيلي بين الجداول في قاعدة بيانات SQL Server.

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

  • إنشاء جزء إجراءات مع عناصر تحكم Windows Forms التي ترتبط بالبيانات.

  • استخدام علاقة رئيسي/تفصيلي لعرض بيانات في عناصر التحكم.

  • إظهار جزء الإجراءات عند فتح التطبيق.

ملاحظة

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

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

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

-

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

  • الاتصال بخادم قاعدة بيانات نموذج Northwind SQL Server.

  • أذونات القراءة من والكتابة إلى قاعدة بيانات SQL Server.

إنشاء المشروع

الخطوة الأولى هي إنشاء مشروع مستند Word.

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

  • في ، قم بإنشاء Excel إضافة-في مشروع يحمل الاسم ExcelDynamicControls. في المعالج، حدد إنشاء مستند جديد .

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

    Visual Studio يفتح مستند Word الجديد في المصمم ويقوم بإضافة المشروع جزء إجراءات Word إلى مستكشف الحلول.

إضافة عناصر تحكم إلى جزء الإجراءات

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

لإضافة عنصر تحكم جزء إجراءات

  1. حدد المشروع جزء إجراءات Word في مستكشف الحلول.

  2. في مشروع قائمة ، انقر فوق إضافة عنصر جديد .

  3. في مربع الحوار إضافة عنصر جديد، حدد عنصر تحكم جزء الإجراءات، قم بتسميته ActionsControlثم انقر فوق إضافة .

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

  1. إذا كانت نافذة مصادر البيانات غير مرئية، انقر فوق إظهار مصادر البيانات من القائمة بيانات.

    ملاحظة

    إذا كان إظهار مصادر بياناتغير متوفرة، انقر فوق مستند Word ثم تحقق مرة أخرى.

  2. انقر فوق إضافة مصدر بيانات جديد لتبدأ معالج تكوين مصدر البيانات.

  3. حدد قاعدة البيانات ثم انقر فوق التالي .

  4. حدد اتصال بيانات بنموذج قاعدة بيانات SQL Server Northwind أو أضف اتصال جديد باستخدام الزر اتصال جديد.

  5. انقر فوق Next.

  6. قم بإلغاء تحديد خيار حفظ الاتصال في حالة تحديده، ثم انقر فوق التالي.

  7. قم بتوسيع العقدة جداول في النافذة كائنات قاعدة البيانات.

  8. حدد خانة الاختيار بجانب الجداول موردون ومنتجات .

  9. انقر فوق Finish.

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

لإضافة عناصر تحكم Windows Form مرتبطة البيانات إلى عنصر تحكم جزء إجراءات

  1. في نافذة مصادر البيانات، قم بتوسيع الجدول موردون.

  2. انقر فوق السهم المنسدل على عقدة اسم الشركة ثم حدد مربع تحرير وسرد .

  3. اسحب اسم الشركة من نافذة مصادر البيانات إلى عنصر تحكم جزء الإجراءات.

    عنصر تحكم ComboBox يتم إنشاؤه على عنصر تحكم جزء الإجراءات. في الوقت نفسه,يتم إضافة BindingSource باسم SuppliersBindingSource,و محول جدول, وDataSet إلى المشروع في علبة المكوّن.

  4. حدد SuppliersBindingNavigator في علبة مكوّن ثم اضغط DELETE. لن تستخدم SuppliersBindingNavigator في هذه الإرشادات التفصيلية.

    ملاحظة

    حذف SuppliersBindingNavigator لا يحذف كافة التعليمات البرمجية التي أنشئت لها. يمكنك إزالة هذه التعليمات البرمجية.

  5. Move the combo box so that it is under the label and change the Size property to 171, 21.

  6. في نافذة مصادر البيانات قم بتوسيع الجدول منتجات المتفرع من جدول الموردون.

  7. انقر فوق السهم المنسدل في عقدة ProductName، وحدد ListBox.

  8. اسحب ProductName إلى عنصر تحكم جزء الإجراءات.

    عنصر تحكم ListBox يتم إنشاؤه على عنصر تحكم جزء الإجراءات. في الوقت نفسه يتم إضافة BindingSource باسم ProductBindingSource ومحول جدول إلى المشروع في علبة المكوّن.

  9. نوع هذا هو مصنف CreateNewFile في خلية من A1.

  10. اسحب Button من Toolbox إلى عنصر تحكم جزء الإجراءات وضعه أدنى مربع القائمة.

  11. انقر بزر الماوس الأيمن فوق Button، انقر فوق خصائص من القائمة المختصرة، وقم بتغيير الخصائص التالية.

    الخصائص

    Value

    الاسم

    إدراج

    Text

    إدراج

  12. قم بتغيير حجم عنصر تحكم المستخدم لاحتواء عناصر التحكم.

إعداد مصدر البيانات

لإعداد مصدر البيانات، قم بإضافة تعليمات برمجية إلى الحدث Load الخاص بعنصر تحكم جزء الإجراءات لملء عنصر التحكم بالبيانات من DataTable، وقم بتعيين خصائص DataSource وDataMember لكل عنصر تحكم.

لتحميل عنصر التحكم بالبيانات

  1. في معالج الحدث Load من فئة ActionsControl، أضف التعليمات البرمجية التالية.

    Private Sub ActionsControl_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Load
    
        Me.SuppliersTableAdapter.Fill(Me.NorthwindDataSet.Suppliers)
        Me.ProductsTableAdapter.Fill(Me.NorthwindDataSet.Products)
    End Sub
    
    private void ActionsControl_Load(object sender, EventArgs e)
    {
        this.suppliersTableAdapter.Fill(this.northwindDataSet.Suppliers);
        this.productsTableAdapter.Fill(this.northwindDataSet.Products);
    }
    
  2. في C#، يجب إرفاق معالج الأحداث إلى الحدث Load. يمكنك وضع هذه التعليمات البرمجية في منشئ ActionsControl، بعد استدعاء InitializeComponent. لمزيد من المعلومات حول كيفية إنشاء معالجات أحداث، راجع كيفية القيام بما يلي: إنشاء معالجات أحداث في مشاريع Office.

    this.Load += new EventHandler(ActionsControl_Load);
    

لتعيين خصائص ربط البيانات لعناصر التحكم

  1. حدد عنصر التحكم CompanyNameComboBox.

  2. في نافذة الخصائص، انقر فوق الزر أيمن الخاصية DataSource وحدد suppliersBindingSource.

  3. انقر فوق الزر أيمن الخاصية DisplayMember وحدد CompanyName.

  4. قم بتوسيع الخاصية DataBindings، انقر فوق الزر أيمن الخاصية Text، وحدد None.

  5. حدد عنصر التحكم ProductNameListBox.

  6. في نافذة الخصائص، انقر فوق الزر أيمن الخاصية DataSource وحدد suppliersBindingSource.

  7. انقر فوق الزر أيمن الخاصية DisplayMember وحدد CompanyName.

  8. قم بتوسيع الخاصية DataBindings، انقر فوق الزر أيمن الخاصية Text، وحدد None.

إضافة أسلوب لإدراج بيانات إلى جدول

المهمة التالية تقرأ البيانات من عناصر التحكم المحدودة وتملأ جدول في مستند Word الخاص بك. أولاً، قم بإنشاء إجراء لتنسيق العناوين في الجدول، ثم أضف السلوب AddData لإنشاء وتنسيق جدول Word.

لتنسيق عناوين الجدول

  • في الفئة ActionsControl، قم بإنشاء أسلوب لتنسيق عناوين الجدول.

    Shared Sub SetHeadings(ByVal tblCell As Word.Cell, ByVal text As String)
    
        With tblCell.Range
            .Text = text
            .Font.Bold = True
            .ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter
        End With
    End Sub
    
    static void SetHeadings(Microsoft.Office.Interop.Word.Cell tblCell, string text)
    {
        tblCell.Range.Text = text;
        tblCell.Range.Font.Bold = 1;
        tblCell.Range.ParagraphFormat.Alignment = 
            Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
    }
    

لإنشاء الجدول

  • في الفئة ActionsControl، اكتب أسلوباً ينشئ جدولاً إذا كان غير موجود مسبقاً، وأضف البيانات من جزء الإجراءات إلى الجدول.

    Private Sub AddData(ByVal row As System.Data.DataRow, ByVal companyName As String)
    
        ' Create a table if it doesn't already exist.
        If Globals.ThisDocument.Tables.Count = 0 Then
    
            Try
                ' Create a table. 
                Dim tbl As Word.Table = Globals.ThisDocument.Tables.Add( _
                    Globals.ThisDocument.Application.Selection.Range, 1, 4)
    
                ' Insert headings.
                SetHeadings(tbl.Cell(1, 1), "Company Name")
                SetHeadings(tbl.Cell(1, 2), "Product Name")
                SetHeadings(tbl.Cell(1, 3), "Quantity")
                SetHeadings(tbl.Cell(1, 4), "Unit Price")
    
            Catch ex As Exception
                MessageBox.Show("Problem creating Products table: " & ex.Message, _
                    "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End If
    
        ' Add data from data row to the table.
        Dim selection As Word.Selection = Globals.ThisDocument.Application.Selection
    
        If selection.Tables.Count > 0 Then
    
            Dim newRow As Word.Row = Globals.ThisDocument.Tables(1).Rows.Add()
            With newRow
                .Range.Font.Bold = False
                .Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft
                .Cells(4).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight
                .Cells(1).Range.Text = companyName
                .Cells(2).Range.Text = row.Item("ProductName").ToString
                .Cells(3).Range.Text = row.Item("QuantityPerUnit").ToString
                .Cells(4).Range.Text = Math.Round(row.Item("UnitPrice"), 2)
            End With
    
        Else
            MessageBox.Show("Cursor must be within a table.", _
                "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub
    
    private void AddData(System.Data.DataRow row, string companyName)
    {
        object missing = System.Type.Missing;
    
        // Create a table if it doesn't already exist.
        if (Globals.ThisDocument.Tables.Count == 0)
        {
            try
            {
                // Create a table.
                Microsoft.Office.Interop.Word.Table tbl = Globals.ThisDocument.Tables.Add
                    (Globals.ThisDocument.Application.Selection.Range, 1, 4, ref missing, ref missing);
    
                // Insert headings.
                SetHeadings(tbl.Cell(1, 1), "Company Name");
                SetHeadings(tbl.Cell(1, 2), "Product Name");
                SetHeadings(tbl.Cell(1, 3), "Quantity");
                SetHeadings(tbl.Cell(1, 4), "Unit Price");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Problem creating Products table: " + ex.Message, 
                    "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    
        // Add data from data row to the table.
        Microsoft.Office.Interop.Word.Selection selection = Globals.ThisDocument.Application.Selection;
    
        if (selection.Tables.Count > 0)
        {
            Microsoft.Office.Interop.Word.Row newRow = Globals.ThisDocument.Tables[1].Rows.Add(ref missing);
    
            newRow.Range.Font.Bold = 0;
    
            newRow.Range.ParagraphFormat.Alignment = 
                Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
    
            newRow.Cells[4].Range.ParagraphFormat.Alignment =
                Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
    
            newRow.Cells[1].Range.Text = companyName;
            newRow.Cells[2].Range.Text = row["ProductName"].ToString();
            newRow.Cells[3].Range.Text = row["QuantityPerUnit"].ToString();
            newRow.Cells[4].Range.Text = Math.Round(Convert.ToDouble(row["UnitPrice"])).ToString("#,##0.00");
        }
        else
        {
            MessageBox.Show("Cursor must be within a table.", 
                "Actions Pane", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
    

لإدراج نص في جدول Word

  1. قم بإضافة التعليمات البرمجية التالية إلى معالج الحدث Click الخاص بزر إدراج.

    Private Sub Insert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Insert.Click
    
        Dim tbl As System.Data.DataTable = NorthwindDataSet.Products
        Dim rows() As System.Data.DataRow
    
        ' Check if a product is selected.
        If Not Me.ProductNameListBox.SelectedIndex < 0 Then
    
            Dim product As String = Me.ProductNameListBox.SelectedItem.Row.Item("ProductName")
            Dim company As String = Me.CompanyNameComboBox.Text
    
            ' Return the data row from the selected Product in the list box.
            rows = tbl.Select("[ProductName] = '" & product.Replace("'", "''") & "'")
    
            AddData(rows(0), company)
    
        Else
            MessageBox.Show("Please select a product.", "Actions Pane", MessageBoxButtons.OK)
        End If
    End Sub
    
    private void Insert_Click(object sender, System.EventArgs e)
    {
        System.Data.DataTable tbl = northwindDataSet.Products;
        System.Data.DataRow[] rows;
    
        // Check if a product is selected.
        if (this.productNameListBox.SelectedIndex >= 0)
        {
            System.Data.DataRowView productRow = (System.Data.DataRowView)this.productNameListBox.SelectedItem;
    
            string product = productRow.Row["ProductName"].ToString();
            string company = this.companyNameComboBox.Text;
    
            // Return the data row from the selected product.
            rows = tbl.Select("[ProductName] = '" + product.Replace("'", "''") + "'");
    
            this.AddData(rows[0], company);
        }
        else
        {
            MessageBox.Show("Please select a product.", "Actions Pane", MessageBoxButtons.OK);
        }
    }
    
  2. في C#، يجب أن تقوم بإنشاء معالج حدث للحدث Click الخاص بالزر. يمكنك وضع هذه التعليمة البرمجية في معالج الحدث Load الخاص بالفئة ActionsControl.

    this.Insert.Click += new EventHandler(Insert_Click);
    

إظهار جزء الإجراءات

يصبح جزء الإجراءات مرئيًا بعد إضافة عناصر تحكم إليه.

لإظهار جزء الإجراءات

  1. في مستكشف الحلول، انقر بزر الماوس الأيمن فوق ThisDocument.vb أو ThisDocument.cs، ومن ثم انقر فوق عرض التعليمات البرمجية بالقائمة المختصرة.

  2. قم بإنشاء مثيل جديد من عنصر التحكم في أعلى الفئة ThisDocument بحيث تبدو مثل المثال التالي.

    Dim actions As New ActionsControl
    
    private ActionsControl actions = new ActionsControl();
    
  3. قم بإضافة تعليمات برمجية إلى معالج الحدث Startup من ThisDocument بحيث تبدو مثل المثال التالي.

    Me.ActionsPane.Controls.Add(actions)
    
    this.ActionsPane.Controls.Add(actions);
    

اختبار التطبيق

الآن يمكنك اختبار مستندك لتتحقق من ظهور جزء الإجراءات عند فتح المستند. قم باختبار العلاقة رئيسي/تفصيلي في عناصر التحكم على جزء الإجراءات، ثم تأكد من أن البينات يتم ملأها في جدول Word عند النقر فوق الزر إدراج.

لاختبار مستندك

  1. اضغط F5 لتشغيل مشروعك.

  2. تأكد أن جزء الإجراءات مرئي.

  3. حدد شركة في مربع التحرير والسرد وتحقق من أن العناصر في مربع قائمة المنتجات تتغير.

  4. قم بتحديد منتج، انقر فوق إدراج على جزء الإجراءات، ثم تحقق من أنه تتم إضافة تفاصيل المنتج إلى الجدول في Word.

  5. قم بإدراج منتجات إضافية من شركات متعددة.

الخطوات التالية

تُظهر هذه الإرشادات التفصيلية أساسيات ربط البيانات إلى عناصر التحكم على جزء إجراءات في Word. هذه بعض المهام التي قد تأتي فيما بعد:

راجع أيضًا:

المهام

كيفية القيام بما يلي: إضافة جزء إجراءات إلى مستندات Word

موارد أخرى

نظرة عامة على جزء الإجراءات

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