Таможенная сборка для SSRS 2008 - PullRequest
0 голосов
/ 09 мая 2011

Я пытаюсь объединить встроенный код в нескольких отчетах в специальную сборку. Я создал проект библиотеки C # в VS 2008 под названием BalancingReportsLibrary. Вот код в моей библиотеке:

с использованием системы; using System.Collections.Generic; использование System.Linq; используя System.Text;

namespace BalancingReportsLibrary { балансировка общественного класса { открытая строка ComingledPounds (строка CoPounds) { if (CoPounds == null || CoPounds == "") { вернуть ""; }

        //Column One
        int index = CoPounds.IndexOf(";");
        int length = CoPounds.Length;

        if (index > 0)
        {
            string CoPounds1 = CoPounds.Substring(0, index);
            return CoPounds1;
        }

        //There was just one comingled pound, so just return the value that was passed in
        return CoPounds;

    }

Я построил это решение и поместил DLL в этот путь: C: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ PrivateAssemblies

Я создал проект отчета с отчетом. Под Отчетом> Свойства> Ссылки я выбрал мою DLL под сборками. У меня есть текстовое поле в форме, которая ссылается на класс следующим образом: = BalancingReportsLibrary.Balancing.ComingledPounds (LAST (Fields! ComingledGroup.Value))

При попытке предварительного просмотра отчета появляется следующая ошибка: «Значение выражения не выполнено. Ссылка на элемент без общего доступа требует ссылки на объект.»

Как мне решить эту проблему?

1 Ответ

1 голос
/ 09 мая 2011

Если вам на самом деле не нужно создавать экземпляр своего класса Balancing, а просто хотите вызвать метод ComingledPounds, то сделайте его статическим, как это:

namespace BalancingReportsLibrary 
{ 
    public class Balancing 
    {
        public static string ComingledPounds(string CoPounds) 
        {
            if (CoPounds == null || CoPounds == "") 
                return "";

            //Column One
            int index = CoPounds.IndexOf(";");
            int length = CoPounds.Length;

            if (index > 0) {
                string CoPounds1 = CoPounds.Substring(0, index);
                return CoPounds1;
            }

            //There was just one comingled pound, so just return the value that was passed in
            return CoPounds;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...