Почему не работает мой ReportViewer? - PullRequest
0 голосов
/ 20 января 2012

Я начинаю новый проект. Затем я добавляю пустую форму, а затем добавляю элемент управления ReportViewer в форму. Затем я прикрепляю элемент управления к форме.

Затем я добавляю новый набор данных (DataSet1.xsd) в проект. Затем я открываю обозреватель серверов и перетаскиваю конкретное представление (не таблицу) в форму DataSet1. Затем я вижу все поля в представлении, отображаемом в форме набора данных. Если я решу, я могу просмотреть данные и проверить, работают ли функции Fill, GetData () (и они работают. Я вижу все данные). Затем я возвращаюсь к своей основной форме (Form1) и выбираю дизайн нового отчета. Я сообщаю мастеру отчетов, какой источник данных использовать, а затем перетаскиваю нужные поля в поля группировки строк и значения. Я нажимаю «Далее» и выбираю макет моего отчета и стиль.

Наконец, я возвращаюсь к Form1 и выбираю отчет, который я хочу, в этом элементе управления ReportViewer. Я строю, а затем запускаю проект. Форма отображается, но в элементе управления Viewer не отображается отчет. Что касается жизни, я не могу понять, почему. Я где-то пропустил шаг? Я мог бы поклясться, что это то, что я делал раньше, чтобы сделать простой отчет, но, похоже, он не работает.

Я даже попытался выполнить отладку по методу Fill TableAdapter набора данных, и, похоже, именно здесь он застрял. Тем не менее, я могу использовать ту же самую процедуру заполнения адаптера таблицы для предварительного просмотра данных. Я не внес никаких изменений в любой код, поэтому я в растерянности. Есть идеи?

FILL код:

private void Form1_Load(object sender, EventArgs e)
    {
        // TODO: This line of code loads data into the 'DataSet1.CAV_MBRHISTDETL' table. You can move, or remove it, as needed.
        this.CAV_MBRHISTDETLTableAdapter.Fill(this.DataSet1.CAV_MBRHISTDETL);

        this.reportViewer1.RefreshReport();
    }

SQL для заполнения набора данных:

SELECT 
          MBRSEP, 
          LOCATION, 
          BILLDATE, 
          READDATE, 
          DUEDATE, 
          READTYPE, 
          BILLTYPE, 
          CREDITCODE, 
          BILLMOYR, 
          METERREAD, 
          KWH 
FROM      CAR1.CAV_MBRHISTDETL
WHERE     BILLTYPE = '09' AND 
          BILLMOYR <> '9999' 
          AND ROWNUM <= 100

Строка подключения:

connectionString="Dsn=UPN2;uid=car1;dbq=SEDC;dba=W;apa=T;exc=F;fen=T;qto=T;frc=10;fdl=10;lob=T;rst=T;btd=F;bnf=F;bam=IfAllSuccessful;num=NLS;dpm=F;mts=T;mdi=F;csr=F;fwc=F;fbs=64000;tlo=O;mld=0;oda=F"

1 Ответ

1 голос
/ 20 января 2012

Я думаю, что нашел свою проблему. В Visual Studio 2010 я нажал «Отладка», затем «Исключения» и проверил каждое исключение в появившемся окне. Каким-то образом, я подумал, что произошла ошибка, и я не узнал об этом.

Конечно, когда я снова запустил программу отчетов, я получил сообщение об ошибке, в котором говорилось, что мой пароль был нулевым. Представь это! Мне пришлось ввести свой идентификатор пользователя и пароль при предварительном просмотре данных на экране dataset.xsd, но программа ни разу не запросила мой пароль при запуске. Мне также интересно, почему программа не просто остановилась с ошибкой, а просто не сидела там. В любом случае, когда я ввел пароль в строку подключения и перезапустил, все заработало. Уф!

...