0.4الاتصال بمصدر بيانات
الأساسي في 30 ثانية
- خبير قاعدة البيانات هو بوابة الدخول : نوع الاتصال (أصلي أو ODBC/OLE DB، ملف Excel/CSV)، والمعاملات، ثم الجداول الضرورية تماما.
- المفاصل تصنع الدقة : جداول متعددة = رابط على حقل مشترك (Clients.ID = Commandes.ClientID) — وإلا تكرارات ومجاميع خاطئة.
- بنية 32/64 بت تعطل كل شيء : برنامج تشغيل ODBC متوافق مع البرنامج، ومعرفات غير مشفرة داخل التقرير، وترشيح في المصدر للأداء.
ملف مصغر متسلسل — فارس يصل مبيعاته دون تضخيم المجاميع
فارس، مراقب التسيير في الجزائر، يصل حالة مبيعاته : عبر خبير قاعدة البيانات، يختار مصدره (قاعدة المؤسسة، برنامج تشغيل أصلي)، ولا يختار سوى الزبائن والطلبات — لا الجداول الـ 40 للقاعدة. وفي مساعد الروابط، يربط Clients.ID = Commandes.ClientID ويراقب نوع المفصل. أول معاينة : يبدو له رقم الأعمال مضاعفا — فيرصد علاقة واحد-للكثير سيئة التسيير، ويصحح، ثم يقاطع المجموع مع الرقم المعروف للمحاسبة. ويدون أيضا ألا يشفر أبدا كلمة مروره داخل التقرير وأن يرشح في المصدر. أساس بياناته موثوق.
ملف مستقل خاص بهذا القسم : يعود في الدرس والمخطط والنص وتحدي 48 ساعة الخاص بالقسم 0.4.
1. اختيار مصدر وجداول
لا يساوي التقرير سوى بياناته : والخطوة الأولى هي الاتصال بمصدر. العائلات : القواعد العلائقية (SQL Server وOracle وMySQL وSAP HANA…) بـ الأصلي (برنامج تشغيل مخصص، غالبا أسرع) أو عبر ODBC/OLE DB (معياران شاملان) ؛ والملفات (Excel وAccess وCSV وXML) ؛ ومصادر SAP. وعبر مساعد الاتصال (Database Expert) : نختار النوع، ونقدم المعاملات (الخادم والقاعدة والمعرفات ؛ أو مسار الملف)، ثم الجداول الواجب استعمالها — والحد الأدنى المفيد فقط. لا يأخذ فارس سوى الزبائن والطلبات لقائمته : جداول أقل = تقرير أبسط وأسرع وأقل خطرا للخطأ.
2. المفاصل : النقطة الحاسمة
حالما يستعمل تقرير جداول متعددة (الزبائن والطلبات)، يجب أن يعرف Crystal Reports كيف يربطها — عبر مفصل على حقل مشترك (Clients.ID = Commandes.ClientID). ويتيح مساعد الروابط (Links) تحديد هذه الروابط والتحقق منها. وهذا حاسم : فمفاصل سيئة التحديد تنتج تقارير خاطئة — تكرارات تضخم المجاميع (علاقة واحد-للكثير : كل زبون يتكرر بكل طلب)، وسطور ناقصة (نوع خاطئ : مفصل داخلي يخفي ما لا مقابل له)، بل جداء ديكارتي (جداول غير مربوطة : انفجار السطور) — غالبا دون رسالة خطأ. لذا يقاطع فارس دائما مجاميعه مع رقم معروف قبل النشر.
3. نقاط اليقظة
الأمن : لا تشفر كلمات المرور داخل التقرير ؛ وقد يطلب الاتصال مصادقة عند التنفيذ. بنية 32/64 بت : فيجب أن يتوافق مصدر ODBC مع بنية البرنامج — فعدم التوافق هو السبب الشائع لـ « مصدر لا يوجد ». الأداء : رشح في المصدر (التحديد (Selection) للسجلات، المستوى 2) بدل تحميل جداول كاملة. ويمكن تغيير المصدر لاحقا (« Set Datasource Location » : قاعدة الاختبار ← الإنتاج) دون إعادة بناء التقرير. يطبق فارس الأربع : معرفات سليمة وبرنامج تشغيل متوافق وترشيح في المصدر وتحكم في التحويل من الاختبار ← الإنتاج.
🔎 مثال ملموس — 🔎 مثال ملموس — مفصل يضخم المجاميع
يربط فارس الزبائن والطلبات ويراقب رقم أعماله.
الزبائن ⨝ الطلبات على Clients.ID = Commandes.ClientID.
يظهر كل زبون مرة بكل طلب (واحد-للكثير).
← دون يقظة : رقم أعمال مجموع على سطور مكررة = خاطئ.
← منعكس فارس : قاطع مع رقم الأعمال المعروف للمحاسبة.
القراءة : يبدو التقرير صحيحا لكن المجاميع خاطئة — فخطأ المفصل صامت.
الدرس : تحقق من نوع المفصل (داخلي مقابل خارجي) واختبر على مجموع معروف.
مفردات القسم
- مصدر البيانات
- ما يتصل به Crystal Reports : قواعد علائقية وملفات (Excel وAccess وCSV وXML) ومصادر SAP.
مثال بسيط: يتصل فارس بقاعدة مبيعات المؤسسة.
ما ليس كذلك: مجلد تكتب فيه الأرقام.
رد فعل: سم المصدر الدقيق قبل كل تقرير.
- ODBC / OLE DB / الأصلي
- أنماط الاتصال : الأصلي (برنامج تشغيل مخصص، غالبا أسرع) ؛ وODBC/OLE DB (معياران شاملان).
مثال بسيط: يختار فارس برنامج التشغيل الأصلي لقاعدته، الأسرع من ODBC العام.
ما ليس كذلك: ثلاثة أسماء لنفس الشيء.
رد فعل: الأصلي إن توفر، وإلا ODBC/OLE DB.
- مساعد الاتصال (Database Expert)
- أداة لاختيار نوع الاتصال وتقديم المعاملات واختيار الجداول.
مثال بسيط: يدخل فارس فيها الخادم والقاعدة والمعرفات، ثم يحدد الزبائن والطلبات.
ما ليس كذلك: مولد تلقائي لتنسيق الصفحة.
رد فعل: الحد الأدنى من الجداول، ومعاملات متحقق منها.
- المفاصل (الروابط بين الجداول)
- علاقات بين الجداول على حقل مشترك ؛ وروابط سيئة تنتج تقارير خاطئة.
مثال بسيط: يربط فارس Clients.ID = Commandes.ClientID ويقاطع المجموع.
ما ليس كذلك: مجرد فرز أبجدي للجداول.
رد فعل: كل جدول مربوط + مجموع متقاطع.
- بنية 32/64 بت
- فيجب أن يتوافق مصدر ODBC مع بنية البرنامج ؛ وإلا « مصدر لا يوجد ».
مثال بسيط: ينشئ فارس DSN في مدير ODBC الصحيح (32 بت عبر SysWOW64).
ما ليس كذلك: تفصيل نسخة دون أثر.
رد فعل: فشل الاتصال ← تحقق من 32/64 بت أولا.
في التطبيق — في الممارسة — اتصل بمصدر
- افتح المساعد (Database Expert) واختر النوع مثل فارس : قاعدة (أصلي أو ODBC/OLE DB) أو ملف (Excel وCSV…).
- قدم المعاملات (الخادم والقاعدة والمعرفات ؛ أو المسار) واختر الجداول اللازمة — الحد الأدنى المفيد.
- إذا تعددت الجداول : حدد/تحقق من المفاصل (الحقل المشترك) عبر مساعد الروابط — خطوة حاسمة.
- عند الفشل، تحقق من برنامج التشغيل وبنية 32/64 بت ؛ ورشح في المصدر للأداء.
سيناريو نقرة بنقرة — صل واربط دون مجاميع خاطئة (5 دقائق)
1) قاعدة البيانات ← Database Expert ← أنشئ اتصالا : اختر الأصلي إذا كانت قاعدتك مدرجة، وإلا ODBC/OLE DB. 2) أدخل الخادم + القاعدة (أو مسار ملف Excel/CSV) ← اختبر : يجب أن تظهر الجداول. 3) أضف الزبائن والطلبات فقط ← لسان الروابط : تحقق من الخط Clients.ID = Commandes.ClientID. 4) المعاينة ← دون المجموع ← قارن مع الرقم المعروف : إذا تضاعف فأعد مثل فارس التحقق من نوع المفصل قبل المواصلة. 5) ملف ← احفظ ؛ ودون المصدر (اختبار أو إنتاج) في اسم الملف.
عند « مصدر لا يوجد »، راقب أولا برنامج التشغيل وبنية 32/64 بت الخاصة بـ DSN.
نموذج للنسخ واللصق — بطاقة اتصالي الموثوقة
المصدر : ___ (أصلي / ODBC / OLE DB / Excel / CSV).
الخادم أو المسار : ___ | القاعدة : ___ | الحساب (للقراءة فقط) : ___.
الجداول (الحد الأدنى المفيد) : ___ + ___.
الروابط : ___.ID = ___.ID | النوع : [ ] داخلي / [ ] خارجي.
المراقبة : مجموع Crystal = ___ | المجموع المعروف = ___ | الفرق : ___.
التحويل للإنتاج : Set Datasource Location من الاختبار ← الإنتاج بتاريخ ___.
قاعدة SQL Server
يتصل فارس بالأصلي بـ SQL Server : الخادم والقاعدة وحساب للقراءة فقط — ثم الزبائن + الطلبات مربوطة بـ ID.
ملف Excel
مصلحة دون قاعدة : يشير فارس إلى مصنف Excel مغلق (مسار ثابت)، ويتحقق من رؤوس الأعمدة كأسماء حقول.
فشل الاتصال
« مصدر لا يوجد » : يقرأ فارس الرسالة الدقيقة، ويراقب برنامج التشغيل + DSN ببنية 32/64 بت، ثم المعاملات والحقوق — بهذا الترتيب.
من الاختبار إلى الإنتاج
التقرير جاهز على قاعدة الاختبار : يحول فارس عبر Set Datasource Location نحو الإنتاج، ثم يقاطع المجاميع.
✓ ممارسات جيدة
- لا تختر سوى الجداول اللازمة (الأقل = الأبسط والأوثق).
- اختر نوع المفصل الصحيح (داخلي مقابل خارجي) حسب ما تريد عرضه.
- اختبر مجاميعك مقابل رقم معروف لكشف التضاعف.
✗ أخطاء شائعة
- ترك جدول غير مربوط (جداء ديكارتي : سطور تنفجر).
- مفصل داخلي يخفي السجلات دون مقابل.
- تشفير كلمات مرور حساسة داخل التقرير.
النقاط الأساسية
- يتصل Crystal Reports بالقواعد (أصلي أو ODBC/OLE DB) وبالملفات، عبر المساعد (Database Expert).
- نقطة حاسمة : المفاصل. فجداول متعددة يجب ربطها بحقل مشترك ؛ وروابط سيئة = تقارير خاطئة.
- يقظة : أمن المعرفات وخاصة بنية 32/64 بت (السبب رقم 1 لـ « مصدر لا يوجد »).
- ممارسات حسنة : رشح في المصدر (الأداء) ؛ وغير المصدر لاحقا (« Set Datasource Location »).
تحدي 48 ساعة — طبق غدا
صل مصدرا حقيقيا مثل فارس (قاعدة أو Excel)، واربط جدولين على حقلهما المشترك، ثم قاطع مجموعا مع رقم معروف — ودون الفرق (الصفر مستهدف).
- وصلت مصدرا عبر Database Expert واخترت الحد الأدنى من الجداول.
- مفاصلي متحقق منها على حقل مشترك، بالنوع الصحيح.
- مجموعي متقاطع مع رقم معروف (فرق مفسر أو معدوم).
أسئلة شائعة
لماذا تعد المفاصل مهمة جدا، وكيف أتجنب التقارير الخاطئة ؟
لأنها تحدد كيف يجمع Crystal Reports بين جداول متعددة — ومفصل غير صحيح ينتج بصمت تقارير خاطئة. النموذجية : تكرارات (واحد-للكثير يضخم المجاميع)، وسطور ناقصة (مفصل داخلي يخفي ما لا مقابل له ← فضل خارجيا إذا أردت الاحتفاظ بالكل)، وجداء ديكارتي (جداول غير مربوطة). للتجنب : تحقق من كل رابط على الحقل المشترك الصحيح، واختر النوع الصحيح، واحذر واحد-للكثير في المجاميع، واختبر مقابل رقم معروف.
ماذا أفعل عند فشل الاتصال ؟
يكاد الفشل يأتي دائما من أسباب قليلة لا من التقرير. (1) عدم توافق 32/64 بت لبرنامج تشغيل ODBC — السبب رقم 1 : أنشئ DSN في المدير الصحيح (32 بت = odbcad32.exe في SysWOW64). (2) برنامج تشغيل ناقص : ثبت الخاص بالقاعدة بالبنية الصحيحة. (3) معاملات غير صحيحة (الخادم والقاعدة والمنفذ والمسار). (4) معرفات/حقوق غير كافية. (5) الشبكة/جدار الحماية (قاعدة بعيدة وVPN). منهجية فارس : اقرأ الرسالة الدقيقة، واختبر المصدر خارج Crystal Reports، وتحقق من برنامج التشغيل والبنية أولا، ثم المعاملات والحقوق والشبكة.
تستعمل حالة فارس الزبائن + الطلبات. ما النقطة الأكثر حسما ؟