سؤال

لدي تقرير يدير بروك مخزنة:

EXEC ra_spProjectCalendar @Month, @Year, @ProjectID

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

"Must declare scalar variable "@ProjectID"

يعمل بشكل جيد عندما أقوم بتشغيلها من علامة تبويب البيانات ، ومع ذلك ، عندما أضعها في وضع المعاينة ، فإنني أواجه مشاكل.

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

المحلول

حصلت على شيء مشابه للعمل من خلال بناء الاستعلام كتعبير - في مثالك

="EXEC ra_spProjectCalendar @Month = '" & Parameters!Month.Value & "',@Year='" & Parameters!Year.Value & "',@ProjectID = '" &  Join(Parameters!ProjectID.Value, ",") & "'"

تقوم بعض التعليمات البرمجية في SP الهدف بتقسيم السلسلة المتعددة الخلفية إلى جدول مؤقت يتم استخدامه في الوصلات لإنشاء الإخراج.

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

نصائح أخرى

كان لدي نفس الخطأ يحدث: يجب أن يعلن المتغير القياسي.

أدرك الآن أن أول شيء يجب التحقق منه هو أنه عند إدخال الاستعلام كنص ، أو PROC المخزن كنوع PROC المخزن ، يقوم SSRS تلقائيًا بإنشاء إدخال Paramter في علامة التبويب المعلمات لخصائص مجموعة البيانات. إذا لم ينشئها ، فلن تتمكن من قراءة استعلامك بشكل صحيح.

في حالتي ، كنت أستخدم OpenQuery لاستدعاء مكعب خدمات التحليل والإشارة إلى الأسماء الميدانية التي تحتوي على الكثير من الأقواس المربعة. لسوء الحظ ، يحب SSRS إعادة تنسيق الكود الخاص بك بحيث يتم تشكيله بشكل جيد [التدابير].

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top