سؤال

لقد قمت بإنشاء تقرير محلي على مصدر بيانات يحتوي على حقل يسمى "RelativePath".عندما يعرض تطبيق WinForms التقرير، فإنه يقوم بتصدير الملفات إلى الموقع المحدد في حقل RelativePath.في منشئ التقارير، قمت بتعيين التنقل|إجراء الارتباط التشعبي|الانتقال إلى عنوان URL إلى "=Fields!RelativePath.Value" وقمت بتعيين خاصية EnableHyperlink الخاصة بالتقرير على true.ومع ذلك، عندما يعرض تطبيقي التقرير، يكون الارتباط التشعبي غير نشط.إذا قمت بترميز الانتقال إلى عنوان URL إلى مسار مطلق، فسيعمل بشكل جيد.هل لا يعرض ReportViewer ارتباطًا تشعبيًا بمسار نسبي؟

هل كانت مفيدة؟

المحلول

ولقد كنت تناضل مع نفس المشكلة وبعد ذلك جئت إلى استنتاج مفاده أن reportviewer لا يدعم صلات مع مسار نسبي. لحل هذه المشكلة عن طريق إضافة التعليمات البرمجية المخصصة يقوم باسترداد مسار نسبي ثم concantenate مع قيم الحقول التي قد ترغب في أن تكون جزءا من URL - أتلست أن يعمل بالنسبة لي

وShaddie

نصائح أخرى

لقد واجهت نفس المشكلة.للتغلب على هذه المشكلة، قمت بإنشاء معلمة تقرير تسمى "AbsolutePath".

انتقل إلى طريقة عرض التصميم لملف .rdlc.في علامة التبويب "بيانات التقرير"، سترى عقدة "المعلمات".انقر بزر الماوس الأيمن عليه:

  1. إضافة معلمة...
  2. في علامة التبويب عام، أدخل "AbsolutePath" في خاصية الاسم.
  3. انقر على "القيم الافتراضية"
  4. حدد زر الاختيار "تحديد القيم".
  5. أضف قيمة جديدة "AbsolutePath".

في التعبير الإجراء الخاص بـ TextBox، أضف شيئًا مثل هذا = "javascript:void(window.open('" + المعلمات!AbsolutePath.Value + "/yourpage.aspx?id=" + الحقول!Id.Value + "', '_blank'))"

يمكنك أن ترى أن المعلمة "AbsolutPath" الجديدة متاحة لإضافتها إلى تعبيرك.

الآن، ستحتاج إلى تمرير القيمة إلى معلمة التقرير، هكذا.

    string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
    var param = new ReportParameter("AbsolutePath", baseUrl);
    this.ReportViewer.LocalReport.SetParameters(param);

ومجرد استخدام Globals!ReportServerUrl متغير عالمي في التعبير

= Globals!ReportServerUrl + "yourpath"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top