الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ارسال بيانات الى Ms Word 2007 لملف موجود مسبقا من شاشة ديلفوبر 6i باستدعاء دوال Vba

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاته

اللهم تقبل اعمالنا لوجهك الكريم

المثال عبارة عن شاشة ترسل البيانات وتفتح ملف Ms Word 2007 موجود من سابق ومنسق جاهز وتضع البيانات في مواضع محددة مسبقا اي حيث تريد ويعتبر المثال بصراحة نقلة نوعية في التعامل مع office 2007 وبالذات بجانب الماكرو والتي تكتبه بلغة vba تدعمها Office 2007 اي بمعنى ادق تخاطب مباشر بين form 6i و vba من خلال استدعاء دوال موجودة في ملف Ms Word 2007 كتبة بلغة Vba  حيث ان وظائف الدوال ارسال بينات مربعات نص أو جملة select تنفذ في vba والتي تتصل من خلال احدى الدوال ب أوراكل وتنفيذ جمل الكويري الملف المرفق عبارة عن مجلد مضغوط اسمه OPENWORD  وفيه ملفان ملف ورد وملف شاشة ديفلوبر افتح الضغط وضع المجلد في :C مباشرة

ملاحظات هامة جدا:

لمن يعمل على windows 7 64 bit لتحيقي الاتصال با أوراكل من Office 2007  لازم إتباع الخطوات التي بالرابط في مشاركة سابقة

هل تعاني من مشكلة الاقواس في المسار C:\program Files (x86)

http://www.araboug.org/ib/index.php?showtopic=57597

يجب تفعيل الماكرو في Ms Word 2007

هذه صورة الشاشة :

bk7yE.png

 

وهذه صورة الملف الورد قبل ادخال البيانات:

4sGb0v.png

وهذه صورة الملف بعد ارسال البيانات:

C7KY.png

OPENWORD.rar

  • الردود 34
  • المشاهدات 14.4k
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

Most Popular Posts

  • و الدالة MEEHORAQ  التي تقوم بالاتصال بقاعدة بينات أوراكل في ملف ال Ms Word والتي تستدعيها الدالة التي تمرر جمل الكويري ora ودالة الاتصال MEEHORAQ  لن تحتاجها في حالة انك استدعيت الدالة ora3  التي تمر

  • جزاك الله خير اخي اذا في فكرة جديدة حيا بها وكلامك سليم ليسى بالضرورة ان يكون الملف موجود مسبقا وهناك مثال قبل هذا يفتح ملف جديد هذا رابطه http://www.araboug.org/ib/index.php?showtopic=57492&page

  • الاخوة الاعزاء انا ساقوم لاحقا ان شاء الله بارفاق المثال المذكور على الاوراكل 10 جي حيث انه ليس بالضرورة وجود مسبقا ملف ورود  (الطريقة التي سوف اقوم بارفاقها يقوم بفتح ملف ورود ومن ثم تحويل البيانات

بتاريخ:
  • كاتب الموضوع

طبعا الاسماء في المثال لاعلام العلم والمعرفة من المشرفين ولم يسعني ذكرهم كلهم فقط 5 منهم فيعذروني الذين طرحت اسمائهم ويعذروني من لم اطرح اسمائهم فكلكم رائعين و أفكاركم منهال علم ومعرفة لهذا المنتدى

أخوكم...

بتاريخ:

ما شاء الله ..عمل ممتاز ..جزاك الله خيراً

بتاريخ:
  • كاتب الموضوع

شيئ أخر بالتسبة لادراج صورة كشعار في الملف مع اعطاء المحاذات لها في الاجراء أعطيته مسار موجود عندي فيجب عليكم وضع الشعار اللي تريدوه ووضع مساره كذلك

بتاريخ:
  • كاتب الموضوع

واياك أختي المشرفة الفاضلة 

ميسم الكرام

صاحبة النشاط المتواصل الدؤوب وشكرا لمرورك الكريم

بتاريخ:

السلام عليكم ورحمة الله 

 

الأخ الفاضل / ميهال 

 

بداية : أشكرك على هذا الجهد وهذا العمل المتميز الذي يضاف الى قائمة أعمالك الرائعة التي يحتويها المنتدى 

 

افكار جديدة ..... جاري تحميل المرفقات 

 

جزاك الله خيرا 

بتاريخ:
  • كاتب الموضوع

شكرأ لك أخي الفاضل امجد حلمي على كلامك الطيب وشكرا لمرورك الكريم

بتاريخ:

السلام عليكم و رحمة الله تعالى و بركاته

ما شاء الله عمل رائع بارك الله فيك اخي و جزاك خيرا إن شاء الله

بتاريخ:
  • كاتب الموضوع

وعليكم السلام ورحمة الله وبركاته واياك أخي سلطان وشكرا لمرورك الكريم

بتاريخ:

اخي الفاضل ميهال لا يسعني الا ان اقول لك بارك الله فيك وبارك الله لك وبارك الله عليك انت فعلا رئــــــــــــــع ...

بتاريخ:
  • كاتب الموضوع

شكرا لك أخي العزيز  أنس وانت أكثر من رائع وشكرا لمرورك الكريم

 

اشكرك أخي أحمد , و لا شكر على واجب وانت سباق للبذل والعطاء...

( :ph34r: )

أخوك...

بتاريخ:
  • كاتب الموضوع

السلام عليكم ورحمة الله وبركاته

هناك توضيح بالنسبة للملف Ms Word والذي اسمه OPENWORD.dotm هو عبارة عن ملف من نوع template مفعل فيه ال macro لو تلا حظوا في امتداده ,ينتهي ال template  ب dot ولانه من نوع فيه ماكرو مفعل انتهى زي ما انتم شايفين ب dotm ولفتح هذا النوع لتعديل الكود اللي فيه  لا تفتحه بطريقة النقر المزدوج لانه سياخذ نسخة منه وسيفتح ملف جديد فطريقة فتحه لتعديل محتواه او كود ال vba اعمل الطريقة هذه افتح برنامج ال Ms Woerd ومن ثم افتح الملف من داخله وبعدها عدل زي ماتريد

طبعا الكود الذي ستعدل فيه اسم قاعدة البيانات واسم الكمبيوتر او حتى اسم المستخدم وكلمة السر حسب ما هو موجود عندك في جهازك الدالة التي تمرر جمل الكويري

Public Sub ora(ByVal sqlw As String, ByVal sqlw1 As String, ByVal sqlw2 As String, ByVal sqlw3 As String, ByVal sqlw4 As String, ByVal sqlw5 As String)
ActiveDocument.SelectContentControlsByTitle("namecon1").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw, "SCOTT", "TIGER")
ActiveDocument.SelectContentControlsByTitle("namecon2").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw1, "SCOTT", "TIGER")
ActiveDocument.SelectContentControlsByTitle("namecon3").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw2, "SCOTT", "TIGER")
ActiveDocument.SelectContentControlsByTitle("namecon4").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw3, "SCOTT", "TIGER")
ActiveDocument.SelectContentControlsByTitle("namewith1").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw4, "SCOTT", "TIGER")
ActiveDocument.SelectContentControlsByTitle("namewith2").Item(1).Range.Text = MEEHORAQ("PRGRAMER-ME", "ORACLE", sqlw5, "SCOTT", "TIGER")
End Sub

الاسم PRGRAMER-ME  يمثل اسم الكمبيوتر المنزل فيه قاعدة البيانات 

الاسم ORACLE يمثل اسم قاعدة البيانات

والاسم SCOTT   معروف طبعا اسم المستخدم

الاسم TIGER  كلمة السر

وللتوضيح الاسماء namecon1 و namecon2 و namecon3 و namecon4 و namewith1 و namewith2  وهي الكائنات النصية في صفحة ملف الورد التي تأتيها القيم النصية من جمل الكويري المرر

طبعا الكود أعلاه بلغة VBA فيجوال بسيك ابليكيشن

بتاريخ:
  • كاتب الموضوع

وهذه الدال الثانية التي تمرر القيم مباشرة الاتية من شاشة الديفلوبر الى ملف الورد Ms Word الى نفس الكائنات النصية المذكورة سابقا

Public Sub ora3(ByVal sqlw As String, ByVal sqlw1 As String, ByVal sqlw2 As String, ByVal sqlw3 As String, ByVal sqlw4 As String, ByVal sqlw5 As String)
 ActiveDocument.SelectContentControlsByTitle("namecon1").Item(1).Range.Text = sqlw
 ActiveDocument.SelectContentControlsByTitle("namecon2").Item(1).Range.Text = sqlw1
 ActiveDocument.SelectContentControlsByTitle("namecon3").Item(1).Range.Text = sqlw2
 ActiveDocument.SelectContentControlsByTitle("namecon4").Item(1).Range.Text = sqlw3
 ActiveDocument.SelectContentControlsByTitle("namewith1").Item(1).Range.Text = sqlw4
 ActiveDocument.SelectContentControlsByTitle("namewith2").Item(1).Range.Text = sqlw5
End Sub
بتاريخ:
  • كاتب الموضوع

و الدالة MEEHORAQ  التي تقوم بالاتصال بقاعدة بينات أوراكل في ملف ال Ms Word والتي تستدعيها الدالة التي تمرر جمل الكويري ora ودالة الاتصال MEEHORAQ  لن تحتاجها في حالة انك استدعيت الدالة ora3  التي تمرر قيم نصية مباشرة دون الحاجة للاتصال بقاعدة بيانات

الكود ادناه لدال الاتصال MEEHORAQ الت تقوم بانشاء كائن اتصال ADODB   برمجيا ..

اتركم مع الدالة

Function MEEHORAQ(strHost As String, strDatabase As String, strSQL As String, strUser As String, strPassword As String)
  Dim strConOracle, oConOracle, oRsOracle
  Dim StrResult As String
   StrResult = ""
  strConOracle = "Driver={Microsoft ODBC for Oracle}; " & _
         "CONNECTSTRING=(DESCRIPTION=" & _
         "(ADDRESS=(PROTOCOL=TCP)" & _
         "(HOST=" & strHost & ")(PORT=1521))" & _
         "(CONNECT_DATA=(SERVICE_NAME=" & strDatabase & "))); uid=" & strUser & " ;pwd=" & strPassword & ";"
  Set oConOracle = CreateObject("ADODB.Connection")
  Set oRsOracle = CreateObject("ADODB.Recordset")
  oConOracle.Open strConOracle
  Set oRsOracle = oConOracle.Execute(strSQL)
  Do While Not oRsOracle.EOF
      If StrResult <> "" Then
        StrResult = StrResult & Chr(10) & oRsOracle.Fields(0).Value
      Else
        StrResult = oRsOracle.Fields(0).Value
      End If
    oRsOracle.MoveNext
  Loop
  oConOracle.Close
  Set oRsOracle = Nothing
  Set oConOracle = Nothing
  ORAQUERY = StrResult
End Function

بكذا نكون اكملنا شرح مكوانات ملف ال OPENWORD.dotm البرمجية

بتاريخ:
  • كاتب الموضوع

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

طبعا بامكانكم استخدام مربع النص لكن في شوية  شغلة بالتنسيق فعشان تجعله يمشي مع سطر الفقرة تجعله امام النص بحيث تضبط ارتفاع مربع النص مع السطر لكن عنصر التحكم نص منسق هذا يمشي مع السطر با أريحية وكأنه من السطر اللي يظهر زي ما تشوفوه وهو فارغ انقر هنا لادخال النص

Ktrv.png

بتاريخ:
  • كاتب الموضوع

نأتي الان لاجزاء اكواد شاشة الديفلوبر بالذات  لجزء من الاجراء الذي يتم فيه تمرير جملة ال select  كما ترون الكود ينفذ بعد عمل شيك لمربع الاختيار الخاص بتمرير بجملة select

IF :CHK3 =1 THEN
MEEH_Args := Ole2.Create_Arglist;
Ole2.Add_Arg(MEEH_Args,:S1 );
Ole2.Add_Arg(MEEH_Args,:S2 );
Ole2.Add_Arg(MEEH_Args,:S3 );
Ole2.Add_Arg(MEEH_Args,:S4 );
Ole2.Add_Arg(MEEH_Args,:S5 );
Ole2.Add_Arg(MEEH_Args,:S6 );
Ole2.Invoke(MEEH_Document, 'ORA', MEEH_Args);
END IF ;

وهذا جزاء الكود الخاص بتمرير البينات مباشرة من مربعات النصوص طبعا من شاشة ديفلوبر

IF :CHK2 = 1 THEN
MEEH_Args := Ole2.Create_Arglist;
Ole2.Add_Arg(MEEH_Args,:t2 );
Ole2.Add_Arg(MEEH_Args,:t3 );
Ole2.Add_Arg(MEEH_Args,:t4 );
Ole2.Add_Arg(MEEH_Args,:t5 );
Ole2.Add_Arg(MEEH_Args,:t6 );
Ole2.Add_Arg(MEEH_Args,:t7 );
Ole2.Invoke(MEEH_Document, 'ORA3', MEEH_Args);
END IF;

الاخوة المطلعون اذا كان هناك ملاحظات او اسئلة حول المثال نناقشها ونحلها مع بعض

أخوكم...

بتاريخ:

جزاكم الله خيرا  يامهندس ميهال  .. عمل أكثر من رائع  ومفيد جدا جدا

بتاريخ:
  • كاتب الموضوع

هلا بالغالي والعزيز

ENG_HOSSAM_WALLY واياك اخي المهندس المبدع حسام اشقتنا لمشاركاتك الرائعة في المنتدى أخي حسام

  • بعد 10 شهور...
بتاريخ:

السلام عليكم 

هل يعمل البرنامج المرفق على 11جي

وشكرا مقدما

  • بعد 2 أسابيع...
بتاريخ:
  • كاتب الموضوع

الشاشة تعمل على ديفلوبر 6i ولا يعمل على 11 ولم اجرب تحويلها لاصدار 11 واذا حد اخر يمكن يطور المثال سنتستفيد منه
تحياتي لك aloooshvb

  • بعد 4 أسابيع...
بتاريخ:

جزاك الله خير ونفع بك

بتاريخ:
  • كاتب الموضوع

واياك اخي الكريم وشكرا لمرورك الكريم

  • بعد 3 شهور...
بتاريخ:

مشكور اخي الكريم لكن ماذا عن اوراكل فورم 10 جي

نفس الطريق ام ماذا

بتاريخ:
  • كاتب الموضوع

بصراحة ما جربت على10g

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.