أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية استخدام أحرف البدل في استعلام نموذج InfoPath عند الربط بمصدر بيانات ADO

انتهاء دعم Office 2003

لقد أنهت شركة Microsoft دعم Office 2003 في 8 أبريل، 2014. وقد أثر هذا التغيير على تحديثات البرامج لديك وخيارات الأمان الخاصة بك. تعرف على ما يعنيه ذلك فيما يتعلق بك وكيفية الحفاظ على حمايتك.

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية826992
الموجز
Microsoft Office InfoPath يجعل توثيق Microsoft SQL Server أو Microsoft Access بسيطة. يمكن InfoPath تلقائياً بإنشاء جدول بسيط ومباشر الاستعلامات في قاعدة بيانات SQL أو قاعدة بيانات Access باستخدام كائنات بيانات ActiveX (ADO) ل Microsoft. وبعد ذلك، يقوم InfoPath بتمكين نتائج استعلام يتم عرضها وتحريرها في النموذج.

لاستعلامات أكثر تقدما، InfoPath يجعل برمجة العديد من الطرق المتوفرة للمستخدمين المتقدمين أو المطور. تمكن هذه الطرق البرمجية للمستخدمين المتقدمين أو المطور بإنشاء النماذج التي يمكنك تنفيذ استعلام مخصص يستخدم بناء جملة SQL أكثر تعقيداً. مثال استعلام مخصص عام يستخدم حرف بدل للبحث عن السجلات التي تطابق المعايير المحددة جزئيا.

توضح الخطوات التالية كيفية استخدام التعليمات البرمجية المدارة في InfoPath لإجراء بحث حرف بدل في جدول SQL أو في جدول Access باستخدامأدوادابتيركائن.
معلومات أخرى
يتيح لك إضافة اتصال بيانات خاص بالاستعلام ك InfoPathأدوقويريكونيكتيونكائن. يمنحك هذا أساليب استرداد ولتعيين معلومات حول العناصر التالية:
  • سلسلة الاتصال
  • نص الأمر SQL
  • قيمة المهلة
باستخدامأدوقويريكونيكتيونكائن، يمكنك تغيير عبارة SQL لتنفيذ عمليات أكثر تعقيداً، مثل استعلام الذي يستخدم أحرف البدل.

تنطبق المعلومات الواردة في هذه المقالة لقواعد بيانات SQL وقواعد بيانات Access. تظهر الأمثلة التالية استخدام قاعدة بيانات Northwind المضمنة مع Microsoft Office Access 2007 ومع Microsoft Office Access 2010.

إنشاء قاعدة البيانات

إذا لم بعد استخدام قاعدة بيانات نموذج Northwind من إصدار InfoPath، يمكنك إنشاء قاعدة بيانات محلياً. للقيام بذلك، اتبع الخطوات التالية:

  1. ابدأ تشغيل Microsoft Office Access.
  2. فيالقوالب المتوفرةالمقطع، حددنماذج القوالب.
  3. حددNorthwindقاعدة البيانات، ومن ثم انقر فوقإنشاء.

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

يصف هذا القسم كيفية تصميم نموذج استعلام في InfoPath. يستخدم هذا المثال جدول suppliers "الموردون" من قاعدة بيانات Northwind. لإنشاء نموذج يقوم بالاستعلام عن هذا الجدول، اتبع الخطوات التي تم توفيرها للإصدار الخاص بك من InfoPath.

InfoPath 2010

إنشاء قالب النموذج، ثم قم بتعيين لغة التعليمات البرمجية قالب النموذج إلى C#. للقيام بذلك، اتبع الخطوات التالية:
  1. بدء تشغيل InfoPath مصمم 2010.
  2. فيقوالب نماذج متقدمةالمقطع، حددقاعدة البيانات، ثم انقر فوقتصميم النموذج.
  3. في "معالج اتصال البيانات"، انقر فوقحدد قاعدة البيانات.
  4. حدد موقع المجلد حيث قمت بحفظ قاعدة بيانات Northwind وحدد الملف Northwind.accdb ثم انقر فوقفتح.
  5. فيحدد الجدولحدد إطار، قم بالتمرير إلى أسفل القائمة،الموردينالجدول، ومن ثم انقر فوقموافق.
  6. تأكد من تحديد الحقول التالية فيالموردينجدول:
    • معرف
    • الشركة
    • اسم _ العائلة
    • الاسم _ الأول
    • Job_Title
    • Business_Phone
  7. انقر فوقالتالي.
  8. انقر فوقتاريخ الانتهاءإكمال "معالج اتصال البيانات".
  9. فيالحقولالجزء، قم بتوسيعdataFieldsعقده، واسحب ثم إضافةd:Suppliersعقده إلى المربع الموجود أسفلتشغيل استعلامالزر.
  10. عند مطالبتك، انقر لتحديدجدول مكرر.
  11. فيالحقولالجزء، قم بتوسيعqueryfields الموجودةعقده، واسحب ثم إضافةq: الموردينعقده إلى المربع الموجود أسفلسجل جديدالزر. (هذا تلقائياً بإضافة مقطع الذي يحتوي على عناصر التحكم.)
  12. ضمنالمطور، انقر فوقاللغة.
  13. فيلغة البرمجةالمقطع، تحتلغة التعليمات البرمجية في قالب النموذج، حددC#، ثم انقر فوقموافق.

InfoPath 2007

إنشاء قالب النموذج. للقيام بذلك، اتبع الخطوات التالية:
  1. بدء تشغيل InfoPath 2007.
  2. في جزء التنقل الموجودتعبئة نموذجمربع الحوار، انقر فوقتصميم قالب نموذج.
  3. فيتصميم قالب نموذجالإطار، انقر فوقفارغاً،ثم انقر فوقموافق.
  4. علىأدواتالقائمة، انقر فوقالبيانات اتصالات، ثم انقر فوقإضافة. "البيانات اتصاليتم فتح الإطار.
  5. فياتصال البياناتالإطار، انقر فوق إلى حددإنشاء اتصال جديدمربع الاختيار، انقر حددتلقي البياناتحدد خانة الاختيار، ثم انقر فوقالتالي.
  6. انقر لتحديدقاعدة بيانات ملقم Microsoft SQL ( أو Microsoft Office Access فقط)حدد خانة الاختيار، ثم انقر فوقالتالي.
  7. انقر فوقحدد قاعدة البيانات.
  8. حدد موقع المجلد حيث قمت بحفظ قاعدة بيانات Northwind وحدد المجلد ثم انقر فوقفتح.
  9. فيحدد الجدولمربع الحوار، قم بالتمرير إلى أسفل القائمة، حددالموردينالجدول، ومن ثم انقر فوقموافق.
  10. فيبنية مصدر البياناتالقائمة، تأكد من تحديد رؤوس الأعمدة التالية فقط:
    • معرف
    • الشركة
    • الاسم _ الأول
    • اسم _ العائلة
    • Job_Title
    • Business_Phone
  11. انقر فوقالتالي.
  12. انقر فوقتصميم طريقة عرض البيانات أولاً، وبعد ذلك انقر فوقتاريخ الانتهاءلإنهاء "معالج إعداد مصدر بيانات" وإنشاء النموذج الافتراضي.
  13. فيمصدر البياناتجزء المهام، انقر نقراً مزدوجاً فوقdataFields.
  14. الانتقالd:Suppliersعقدهالبياناتطريقة العرض في النموذج.
  15. عند المطالبة، إضافةd:Suppliersas ماجدول مكرر.
  16. علىطريقة العرضالقائمة، انقر فوقإدارة طرق العرض.
  17. فيطرق العرضجزء المهام، انقر فوقاستعلامطريقة العرض.
  18. علىأدواتالقائمة، انقر فوقخيارات النموذج.
  19. فيالفئة، انقر فوقالبرمجة.
  20. فيلغة التعليمات البرمجية في قالب النموذج، انقر فوقC#، ثم انقر فوقموافق.

تغيير النموذج لتشغيل استعلام مخصص

يصف هذا القسم كيفية البحث عن السجلات التي تحتوي على القيم التي تتشابه مع سلسلة البحث ولكن لا تطابق السلسلة تماما. يمكنك استخدام سلسلة أحرف بدل للبحث عن السجلات التي تحتوي على قيم متشابهة،مثلالعبارة في استعلام SQL. عند الحرف سلسلة أحرف البدلمثليتم استخدام العبارة معا، يمكنك البحث عن سجلات استناداً إلى معايير البحث حرف البدل. ثم يتم إرجاع هذه السجلات إلى InfoPath.

لتغيير النموذج لتشغيل استعلام مخصصالمسمى الوظيفيالحقول في InfoPath 2010 أو في InfoPath 2007، اتبع الخطوات التالية:

  1. في وضع التصميم، انقر بزر الماوستشغيل استعلامزر، ومن ثم انقر فوقخصائص الزر.
  2. إجراء التغييرات التالية:
    • تغييرالإجراءالزر الذيالقواعد والتعليمات البرمجية المخصصة
    • تغييرتسميةإلىتشغيل استعلام
    • تغييرمعرفإلىبتنكويري
  3. انقر فوقتحرير التعليمات البرمجية للنموذجالزر لتطبيق التغييرات، ثم قم بتشغيل Visual Studio Tools لمحرر التطبيقات. يفتح معالج الحدث بتنكويري "كليكيد".
  4. استبدال التعليق "//كتابة التعليمات البرمجية الخاصة بك هنا" مع التعليمات البرمجية التالية:
    //Create an XPathNavigator object for the main data sourceXPathNavigator xnMain = this.MainDataSource.CreateNavigator(); //Create an AdoQueryConnection from the main data source by "casting" the default//data connection to an "AdoQueryConnection"AdoQueryConnection cn = (AdoQueryConnection)this.DataConnections["Main connection"]; //Obtain the default SQL command for the form.string strOrigSQLCommand = cn.Command.ToString();   // Obtain the query node that you want to change.XPathNavigator xnSuppliersQuery = xnMain.SelectSingleNode("/dfs:myFields/dfs:queryFields/q:Suppliers", this.NamespaceManager); //Obtain the text that was entered for the wildcard character search, and then clear the current query parameter so that InfoPath will leave the current query parameter blank.string strJobTitle = xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).SetValue(string.Empty); //Have InfoPath construct an SQL command that is based on all other field values.string strMySQLCommand = cn.BuildSqlFromXmlNodes(xnSuppliersQuery); //Save the other query items, and then clear the other query items before the next query.string strSupplierID = xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).SetValue(string.Empty);string strCompany = xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).SetValue(string.Empty);string strLastName = xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).SetValue(string.Empty);string strFirstName = xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).SetValue(string.Empty);string strBusPhone = xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).SetValue(string.Empty); //Add Job_Title to the query so that Job_Title can support wildcard characters.if (strJobTitle != string.Empty){       if (strMySQLCommand != string.Empty)              strMySQLCommand += " AND ";        //Check whether the user entered the wildcard character (%) as part of the title.if(strJobTitle.Contains("%"))             strMySQLCommand += "[Job Title] LIKE '" + strJobTitle + "'";       else             strMySQLCommand += "[Job Title] LIKE '" + strJobTitle + "%'";               } //Construct the full query string.string strSQLQuery = strOrigSQLCommand;if (strMySQLCommand != string.Empty)strSQLQuery += " WHERE " + strMySQLCommand; //Set the command and run the query.cn.Command = strSQLQuery;cn.Execute(); //Restore all the user entries to the Query fields so that the user entries will //be available if you want to change and to rerun the query.xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).SetValue(strSupplierID);xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).SetValue(strCompany);xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).SetValue(strLastName);xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).SetValue(strFirstName);xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).SetValue(strJobTitle);xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).SetValue(strBusPhone); //Restore the default table command (for the next time).cn.Command = strOrigSQLCommand; //Clean upxnMain = null;cn = null;xnSuppliersQuery = null;
  5. إنشاء المشروع عن طريق النقر فوقإنشاءعنصر القائمة، ثم النقر فوقإنشاءاسم المشروع.
  6. حفظ التغييرات، ومن ثم عد إلى InfoPath.

لاختبار التعليمة البرمجية

يتيح لك القيام ببحث حرف بدل من نموذج التعليمة البرمجية التي يتم توفيرها في الإجراء السابقالمسمى الوظيفيفي الحقلالموردينجدول. عن طريق توفير استعلام بحث مثل% المبيعات، أن كافة السجلات التي يتم إرجاعها إلى جهات الاتصال في وضع مبيعات. جهات الاتصال هذه قد تكون ممثل أو مدير عامل طالما بها سجل متوافق مع معايير البحث% المبيعات. جهات الاتصال التي لها "مبيعات" فيالمسمى الوظيفييتم تصفية الحقل.


للتحقق من وجود كافة السجلات التي يتم إرجاعها جهات اتصال في وضع مبيعات، اتبع الخطوات التالية:
  1. ل InfoPath 2010:علىالصفحة الرئيسيةعلى "الشريط"، انقر فوقمعاينة.
    ل InfoPath 2007:على شريط الأدوات، انقر فوقمعاينة، ثم انقر فوقنموذج.
  2. فيالمسمى الوظيفيحقل الاستعلام، نوع% المبيعات.
  3. انقر فوققم بتشغيل الاستعلام.

السجلات التي يتم إرجاعها بواسطة الاستعلام المخصص الخاص بك هي كافة جهات الاتصال في وضع مبيعات.

IP2007، IP2010

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 826992 - آخر مراجعة: 02/07/2011 18:50:00 - المراجعة: 1.0

Microsoft Office InfoPath 2007, Microsoft Office InfoPath 2003

  • kbhowto kbmt KB826992 KbMtar
تعليقات
Name("head")[0].appendChild(m); y>ex -->
Venezuela - Español
mp;t=">if?DI=4050&did=1&t=">d=1&t=">