JMAM Ответов: 1

Кнопка Обновления Crystal Report Не Работает


хороший день,

Проблема № 1
Я попытался заполнить свой crystalreport программно, используя приведенный ниже код.
Imports MySql.Data.MySqlClient

DIM obj_masterfile As New rpt_masterfile

public sub populate_data()

Dim da As New MySqlDataAdapter
                da = New MySqlDataAdapter("select * from v_masterfile", cn)
                Dim tbl_new As New DataTable
                da.Fill(tbl_new)
                obj_masterfile.SetDataSource(tbl_new)
                frm_reports.Show()
                frm_reports.CrystalReportViewer1.ReportSource = obj_masterfile

end sub

Имя таблицы: v_masterfile
Emp_name          Emp_age
Jay                 21
John                23
Jayson              21
Jonny               24

Это отлично работает, однако, когда я нажимаю кнопку обновления в crystalreportviewer, она не показывает никаких изменений при редактировании данных в бэкэнде.


Проблема № 2
По некоторым причинам я не хочу заполнять свой crystalreport через ODBC (RDO), поэтому я использовал ADO.NET вместо этого, основываясь на источнике данных, который я инициализировал (shft + alt + D).

На доклад дизайн &ГТ; специалист базы данных > По данным проекта&ГТ; наборы ADO.NET &ГТ; v_masterfile

Затем перетаскивание emp_ name и emp_age о моем дизайнере отчетов

Проблема здесь в том, что при запуске программы отчеты не показывают никаких записей.


Примечание: Я пробовал использовать ODBC, и он работает, но мне не нужно использовать ODBC, потому что это будет клиентское программное обеспечение, которое будет использовать динамические строки подключения.

Спасибо, что прочитали.

1 Ответов

Рейтинг:
1

Ezra Neil

Проблема 1

Данные не обновляются, поскольку отчет по-прежнему использует старый источник данных, который не был обновлен. Вы должны быть в состоянии получить его, сделав выбор снова в событии обновления отчета.

Private Sub CRViewer_ReportRefresh(ByVal source As Object, ByVal e As CrystalDecisions.Windows.Forms.ViewerEventArgs) Handles CRViewer.ReportRefresh
        populate_data()
End Sub

Public Sub populate_data()
        Dim da As New MySqlDataAdapter("select * from v_masterfile", cn)
        Dim tbl_new As New DataTable
        da.Fill(tbl_new)
        obj_masterfile.SetDataSource(tbl_new)
End Sub


Я сам не пробовал код, так что подстраивайтесь соответственно.

Задача 2

Ну, так как вы получаете данные программно, то если вы хотите использовать другое соединение, то вы должны делать это при инициализации соединения, а не при самом отчете (перед запросом базы данных для получения данных).

Важно то, что отчет получил необходимый ему источник данных, и он будет работать так, как вы его разработали.


JMAM

В задаче № 2 я не получал данные программно,

Примечание: Я создал источник данных во время разработки(shft + alt + D).

Затем на кристалл доклад время разработки, я использую экспертов база данных > По данным проекта&ГТ; наборы ADO.NET &ГТ; v_masterfile


Проблема в том, что при запуске программы отчет не показывает никакой записи.

Кроме того, я создал еще один источник данных с помощью ODBC, задаваясь вопросом, будут ли у меня другие результаты. Затем на кристалл доклад время разработки, я использую экспертов база данных > По данным проекта&ГТ; наборы ADO.NET &ГТ; v_masterfile

Когда я запускаю свою программу на этот раз с помощью ODBC, она показывает хорошие записи по сравнению с ADO.NET в расчетное время это вообще не показывает никаких записей.

Ezra Neil

Что я могу сделать из вашего кода и объяснения, вы используете MySQL .Net connector, подключающийся к базе данных MySQL, верно?

Если ваша сетка правильно отображает данные из набора данных, то нет никаких проблем с источником данных.

Используйте типизированный набор данных для создания отчета. Перейдите в Проводник полей > Добавить / удалить набор данных > ADO.NET (XML) перейдите к файлу набора данных и закончите.Теперь все таблицы, которые вы создали в типизированном наборе данных, будут видны в отчете, Теперь создайте отчет с их помощью.

Убедитесь, что набор данных, который вы устанавливаете в datasouce, имеет то же имя набора данных, что и имя вашего типизированного набора данных, а также ту же структуру.

Если это все еще не заставляет его работать, то опубликуйте больше своего кода. Может быть, мы сможем найти что-нибудь оттуда.

JMAM

Привет,

На самом деле я только что заново установил свою Visual Studio 2008, MySQL .Net Connector & MySQL v5. 1. 53
Думая,что это может быть конфигурация. Таким образом

Я создал новый проект, с помощью form1 я добавил crystal report viewer, из crystal report viewer я выбираю создать пустой файл отчета. Таким образом, я добавил новый Datasoure, выбрал MySQL, ввел необходимые данные подключения, такие как server host = Localhost, User ID= root, Password = 3, а затем

Наконец, в Проводнике полей crystal report file я нажимаю кнопку database Expert и выбираю ADO.NET из данных проекта затем перетащите любую таблицу базы данных, а затем перетащите несколько полей, идущих к деталям строки отчета. затем я выполнил программу. Тогда по-прежнему никаких данных не показывается. Однако, когда я использовать средство просмотра отчетов Microsoft, а затем создать отчет, а затем получить данные из ado.net также, то я вижу, когда я запустить приложение.

теперь я так опустошен этой ошибкой. Я впервые сталкиваюсь с этим. Прежде чем я смогу сделать это без каких-либо ошибок.


Кроме того, вы можете скачать мой пример проекта, включая БД, коннектор и другие детали, чтобы вы могли понять, почему на самом деле происходит ошибка и я не могу ее отследить.

https://dl.dropboxusercontent.com/u/65392916/SAMPLE.rar

JMAM

Кстати, я хотел бы поблагодарить вас за помощь