كيفية توسيط صورة بشكل ديناميكي في تقارير خدمات تقارير مايكروسوفت

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

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

التحدي

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

  • المشكلة: الصور المثبتة في الزاوية العليا اليسرى.
  • الحاجة: توسيط الصور ذات الأبعاد غير المعروفة في وقت التصميم.

الحل

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

1. ضبط حجم الصورة

أولاً، تأكد من أن عنصر الصورة بحجم الأبعاد المرغوبة، على الرغم من أن الحجم الفعلي للصورة قد يختلف. في حالتنا، سنضبط الأبعاد إلى 4.625 بوصة عرضًا و 1.125 بوصة ارتفاعًا.

  • خاصية الحجم: غيّر خاصية “الحجم” لعنصر الصورة إلى “قص.” هذا يسمح بعرض الصورة بدون تشويه.

2. ضبط الحشو الأيسر ديناميكيًا

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

=CStr(Round((4.625 - System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Width / 96) / 2, 2)) & "in"

3. ضبط الحشو العلوي ديناميكيًا

بالمثل، ستحتاج أيضًا إلى ضبط الحشو العلوي ديناميكيًا باستخدام هذا التعبير:

=CStr(Round((1.125 - System.Drawing.Image.FromStream(System.Net.WebRequest.Create(Parameters!LogoURL.Value).GetResponse().GetResponseStream()).Height / 96) / 2, 2)) & "in"

التعديلات والتحسينات

أثناء تنفيذ الحل أعلاه، تم إجراء بعض التعديلات الأساسية:

  • تم تعديل أبعاد عنصر الصورة لتناسب متطلباتي الخاصة 4.625 بوصة عرضًا و 1.125 بوصة ارتفاعًا.
  • تم تعديل الكود لاسترجاع تدفق الصورة من عنوان URL بدلاً من قاعدة بيانات. لهذا، استخدمت WebRequest.Create.GetResponse، والذي يعتبر ملائمًا لاسترجاع الموارد عبر الإنترنت.

الخلاصة

من خلال تنفيذ هذه الخطوات، يمكنك توسيط الصور بشكل فعال في تقارير خدمات تقارير مايكروسوفت، مما يضمن مظهرًا احترافيًا ونظيفًا لعروضك. تسلط الطريقة الموضحة الضوء على قوة التعبيرات الديناميكية وكيف يمكنها توفير المرونة في تصميم التقارير.

لذا في المرة القادمة التي تواجه فيها تحدي توسيط صورة ديناميكيًا، تذكر هذا الدليل واجعل تقاريرك أكثر جاذبية بصريًا!