Jak wyświetlić raport wraz z wynikiem zapytania SQL z aplikacji Crystal Report?

0

Dzień dobry,
mam aplikacje, która powinna uruchomić raport za pomocą poniższego kodu:

private void crystalReportViewer1_Load(object sender, EventArgs e)
{
    OdbcConnection Polaczenie_PostgreSQL = new OdbcConnection("DSN=rejestr_pisklat");
    Polaczenie_PostgreSQL.Open();
    OdbcCommand Polecenie_SQL = new OdbcCommand("SELECT * FROM v_rap_szczepienia_vinovo WHERE id = 34");
    OdbcDataAdapter DatabaseAdapter = new OdbcDataAdapter(Polecenie_SQL);
    DataSet ds = new DataSet();
    DatabaseAdapter.Fill(ds, "v_rap_szczepienia_vinovo");
    raport_szczepienia_vinovo rap = new raport_szczepienia_vinovo();
   
    rap.SetDataSource(ds);
  //  rap.SetParameterValue("id", "34");
    raport.ReportSource = rap;
    raport.Refresh();
    Polaczenie_PostgreSQL.Close();

}

i wszystko ładnie bo okno z raportem otwiera się bez problemu, tylko problem polega na tym że nie wyświetla dane z mojego zapytania, tylko wczytuje pierwsze lepsze dane z podłączonej bazy.

screenshot-20231113084210.png

screenshot-20231113095727.png

0

Zacznijmy, że ODBC to już z lekka odchodzące ...

0

Sprawdź co zwraca w debugu, może ten SP/view ci takie wrzuca bo parametr zły czy coś.

0
virusek391 napisał(a):

Dzień dobry,
mam aplikacje, która powinna uruchomić raport za pomocą poniższego kodu:

private void crystalReportViewer1_Load(object sender, EventArgs e)
{
    OdbcConnection Polaczenie_PostgreSQL = new OdbcConnection("DSN=rejestr_pisklat");
    Polaczenie_PostgreSQL.Open();
    OdbcCommand Polecenie_SQL = new OdbcCommand("SELECT * FROM v_rap_szczepienia_vinovo WHERE id = 34");
    OdbcDataAdapter DatabaseAdapter = new OdbcDataAdapter(Polecenie_SQL);
    DataSet ds = new DataSet();
    DatabaseAdapter.Fill(ds, "v_rap_szczepienia_vinovo");
    raport_szczepienia_vinovo rap = new raport_szczepienia_vinovo();
   
    rap.SetDataSource(ds);
  //  rap.SetParameterValue("id", "34");
    raport.ReportSource = rap;
    raport.Refresh();
    Polaczenie_PostgreSQL.Close();

}

i wszystko ładnie bo okno z raportem otwiera się bez problemu, tylko problem polega na tym że nie wyświetla dane z mojego zapytania, tylko wczytuje pierwsze lepsze dane z podłączonej bazy.

screenshot-20231113084210.png

screenshot-20231113095727.png

Rozwiązanie problemu:
Po wykonaniu paru prób okazało się że błąd polegał na tym że cały poniższy kod trzeba było wstawić w sekcje Load, ale nie Crystal Report, tylko komponentu Form, na którym znajduje się kontrolka Crystal Report. W moim przypadku wygląda to tak:

 private void szczepienia_vinovo_Load(object sender, EventArgs e)
        {
    OdbcConnection Polaczenie_PostgreSQL = new OdbcConnection("DSN=rejestr_pisklat");
>     Polaczenie_PostgreSQL.Open();
>     OdbcCommand Polecenie_SQL = new OdbcCommand("SELECT * FROM v_rap_szczepienia_vinovo WHERE id = 34");
>     OdbcDataAdapter DatabaseAdapter = new OdbcDataAdapter(Polecenie_SQL);
>     DataSet ds = new DataSet();
>     DatabaseAdapter.Fill(ds, "v_rap_szczepienia_vinovo");
>     raport_szczepienia_vinovo rap = new raport_szczepienia_vinovo();
>    
>     rap.SetDataSource(ds);
>   //  rap.SetParameterValue("id", "34");
>     raport.ReportSource = rap;
>     raport.Refresh();
>     Polaczenie_PostgreSQL.Close();

        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1