الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤالين .. جملة sql و ارسال بيانات من اوراكل الى الاكسل

مغلق
بدأه dream_land_78 في 1 ديسمبر 2002 · 11 رد · 1,355 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اولا كل عام و انتو بخير

ثانيا عندي سؤالين ...

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

اي انني اريد عمل تقرير يظهر على الاكسل

كيف يمكن ان احدد له الملف اللذي يرحل البيانات اليه

و ابتداء من اي خلية في الاكسل سيظر البيانات

ارجو ان اكون اوضحت ما اريد

.. هل يمكن ذلك ... ارجو الافادة

السؤال التاني بسيط و هو اني اريد مساعدة بجملة sql

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

الحالة يتم تحديد حالة الموظف سواء حضور = 1

او انصراف = 2

و حالات اخرى

المهم انا اريد جملة توضح الموظفين الذين لم يسجلو حضور في تاريخ معين

اي الموظفين الغياب

و كذلك جملة لتوضيح الموظف الذي سجل حضور و لم يسجل انصراف

و لكم جزيل الشكر

#2

نسيت ان اوضح ان الجدول في السؤال الثاني يحدد حركات الموظف من حضور او انصراف او خروج شخصي .. الخ

و فيه كذلك يوجد الوقت لهذه الحركات

اي انه يحتوي على الرقم و الحالة و اليوم و الشهر و السنة و الساعة و الدقائق

لم انشئ انا هذا الجدول و لكني مجبرة على التعامل معه بهذه التركيبة

#3

اخي dream_land

ساحلول باذن الله ان اجتهد في سؤالك الثاني و ارجو من الله التوفيق

اولا نفترض انك قمت بانشاء الاتي في الجدول الخاص بالموظفين في ال database الخاصة بك emp

رقم الموظف emp_no

الحالة emp_type

التاريخ jop_date

و تكون انشات جدول خاص بحالة الحضور و الانصراف فيه الاتي e_type

الحالة emp_type

الكود الخاص emp_code

و هذا سيفيد نا فيما تريده

الان

في الجدول الثاني الخاص بالحالة ستغذيه بالاتي

في خانة ال emp_type

حضور

انصراف

و في الكود مع الحضور الكود ( 1 ) و الانصراف ( 2 )

و نعود للجدول الاول الخاص بالموظفين

ستقوم بعمل lov على الحقل الخاص بحالة الموظف من الحضور و الانصراف بمعنى انك تختار من القائمة اذا حضر الموظف تقوم باختيار حضور فتقوم ال lov باضافة كلمة حضور في االخانة الخاصة بها و اضافة الكود ( 1 ) في الخانة الخاصة بها

و جملة sql الخاصة بال lov هي

select * from e_type

و الان الكود الخاص بالموظفين الذين حضروا في يوم معين او الذي لم يحضروا

فهي ( الحضور )

select emp_no,emp_type,job_date from emp where emp_type = 1;

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

ارجو من الله ان اكون قد وفقت في الاجابة

و اذا كنت قد اسات الفهم في سؤالك او لم تكن اجابتي شاملة ارجو ان تكتب لي لاجتهد اكثر في الاجابة عن سؤالك باذن الله تعالى

#4

شكرا يا اخي لمحاولتك الرد

لكن الواضح انك ما فهمت سؤالي

راح اوضحو اكتر ..

هلوقت انا عندي ساعة حضور و انصراف هاي الساعة بتفرغ بياناتها في ملف text

هذا الملف بياناتو بتنتقل لجدول بالاوراكل كما هي في الملف

و حكيت تقريبا مكونات الملف و الجدول

و ممكن اعيدها

رقم البطاقة .. و يتم ربط هذا الحقل مع جدول تاني بيحتوي على بيانات اكثر عن الموظف

السنة , الشهر , اليوم و اذا دمجت كل هاي الحقو بيتضح التاريخ اللذي تتم فيه الحركة

الساعة , الدقائق كذلك اذا دمجت نحصل على التوقيت للحركة

مع ملاحظة انها حقول منفصلة

و بعد هيك عندي الحالة .. و كل حالة الها رقم خاص فيها .. الرقم بتاخدو من الساعة

مثلا اذا واحد تكون حضور او اتنين تكون انصراف ,, و هكذا

اي انه من خلال هذا الجدول اريد الحصول على الموظفين الذين لم يسجلو حضور من خلال الساعة و لكنهم سجلو انصرف على فرض نسيان الموظف

او لم يسجلو انصراف و تم تسجيل دخول لهم

و كذلك المظفين اللذين لم يحضرو اساسا .. اي الغياب

ارجو ان اكون قد وضحت الفكرة

و شكرا

#5

فلنتعامل مع الحالتين كل على حده،، أولا تسجيل الخروج، ثم تقرير الغياب.

فلتسجيل سجل الحضور نفسه، يجب الملاحظة ان الموظف يجب ان يكون موجود اصلا حسب سجل الكمبيوتر، أي عند ادخال هذا القيد يجب التأكد ان الموظف تم تسجيل دخوله، ولعمل ذلك، يمكن ابتداع عدد من الطرق، قد تكون فكرة وجود سجل الحالة in or out من ابسط وأسهل الحلول، فإذا لم يكن هناك سجل للدخول اساسا، فلا يقبل النظام سجل الخروج.

اما الغياب، فمن select statement بسيطة يمكن معرفة الموظفين الغائبين في يوم محدد مثلا

SELECT <employee name> FROM <employee table> 

   WHERE <emp_no> NOT IN 

     (SELECT <emp_name> FROM <attendance table> 

        WHERE <record_date> = TO_DATE('&memory_field','DD/MM/YYYY'))

هذه العبارة ستقوم باستخراج الموظفين المسجلين في سجل الموظفين، ولايوجد لديهم سجل حضور في اليوم المعين

#6

ممكن كمات تساعدني بالجملة التي اريد فيها تحديد الموظفين الذين سجلو حضور و لم يسجلو انصراف ... من الجدول الذي شكله كالتالي ..

card_no , date , time , state

سبق و ان شرحت كل حقل مع العلم انه اذا كانت الحالة حضور يكون الحقل state = 1

, تساوي 2 اذا كان انصراف

و انا اريد الحصول على رقم البطاقة و التوقيت للموظف الذي سجل حضور و لم يسجل انصراف(من خلال البيانات الموجودة في هذا الجدول)

#7

ممكن كمات تساعدني بالجملة التي اريد فيها تحديد الموظفين الذين سجلو حضور و لم يسجلو انصراف ... من الجدول الذي شكله كالتالي ..

card_no , date , time , state

سبق و ان شرحت كل حقل مع العلم انه اذا كانت الحالة حضور يكون الحقل state = 1

, تساوي 2 اذا كان انصراف

و انا اريد الحصول على رقم البطاقة و التوقيت للموظف الذي سجل حضور و لم يسجل انصراف(من خلال البيانات الموجودة في هذا الجدول)

#8

بالنسبة لموضوع الاكسل يوجد ديمو مع DEVLOPER2000 ممتاز واحد لنقل البياناتا للاكسل والثاني لنقلها الى ورد في جهازك على الامتداد التالي

C:ORAWIN95FORMS45DEMOSOLEEXCEL

اما السؤال الثاني فممكن استخدام OUTERJOIN (+)

#9

عفوا يا ابو خلف .. انا بحثت عن

C:ORAWIN95FORMS45DEMOSOLEEXCEL

بس ما لقيتو

و بالنسبة لل outerjoin ممكن تشرحا لي و توضحلي كيف ممكن تفيدني

#10

هذا مثال

example.zip

#11

اول شي شكرا كتييير الك للرد

بس معلش انا بأغلبك دايما طلعلي error

عند الجمل

spreadsheet.getcell

spreadsheet.setcell

انو

this variable must be declare

هل انا كان مفروض اعمل اشي قبل ما افتح البرنامج

و كمان هو ما فتح معي مباشرة و طلعلي error في البداية لكن بعد ما قلتلو موافق فتح عادي بس انا ما فهمت رسالة الخطا و فكرت انو راح يمشيها

رسالة الخطأ هي

frm-10102 : cannot attach pl/sql library excel . this library

attatchment will be lost if the module saved .

frm-10102 : cannot attach pl/sql library hint . this library

attatchment will be lost if the module saved .

هذا الخطا يظهر في البداية

هل المفروض اني ارفق هذه المكتبات في البداية

او المفروض انها تفتح لوحدها

و اسفة للازعاج لاني ارجو الاستفادة فعلا

#12

يجب ارفاق PLL قبل بدء تشغيل البرنامج وعند الربط تظهر رسالة YES OR NO

اختار NO

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…