Dlaczego RaveReport nie działa?

0

Cześć, jest taka sytuacja.
Mam na formie:
BaseQuery: TIBQuery;
BaseTrans: TIBTransaction;
BaseRVDataSet: TRVDatasetConnection;
BaseRVProject: TRVProject;
BaseRVSystem: TRVSystem;

Wszystko ładnie ze sobą połączone.

Fragment kodu:

BaseQuery.Sql.Text:=myQuery;
BaseRVProject.Execute;
BaseRVProject.Close;

myQuery to zmienna przechowująca zapytanie SQL, które zwraca wyniki.
I raz pokazuje się raport, a raz wyskakuje komunikat: "Empty SQL Statement" z ogromną przewagą tego drugiego. BaseQuery.SQL.Text ZAWSZE zawiera jakieś zapytanie.

Czemu tak się dzieje?

0

a testowales baseQuery.Open przed odpaleniem wydruku ??

0
guzial napisał(a)

a testowales baseQuery.Open przed odpaleniem wydruku ??

Nie.
Dzisiaj odpaliłem właśnie środowisko i raport jeden działał. Natomiast drugi pokazuje zupełnie pustą stronę.

Czy możliwe jest, że ma na to wpływ, że raporty są dziedziczone?

Tzn. mam bazową formę BaseReportForm, która obsługuje mi filtry i ustawienia, i ma na sobie te komponenty. A potem wszystkie formy raportowe się wywodzą z niej.

No i na każdej formie dziecku w onShow mam:

LoadReportFile(reportFile);

Gdzie reportFile to wpisywana na sztywno nazwa pliku odpowiedniego raportu. Ciało tej metody wygląda tak:

BaseRVProject.ProjectFile:=GetProgramDir+'Reports/'+ReportFileName;

Ścieżka jest poprawna.

0
Juhas napisał(a)

I raz pokazuje się raport, a raz wyskakuje komunikat: "Empty SQL Statement" z ogromną przewagą tego drugiego.

czego to jest komunikat? Delphi, Rave, IBXów?

jeśli Rave to najprawdopodobniej zapytanie nie zwróciło żadnych rekordów, jeśli IBXów to "BaseQuery.SQL.Text ZAWSZE zawiera jakieś zapytanie" jednak nie jest prawdą. Sprawdz też do którego Query podpięty masz BaseRVDataSet
Możesz sprecyzować "I raz pokazuje się raport, a raz wyskakuje komunikat" od czego to +- zależy?

0
Misiekd napisał(a)

czego to jest komunikat? Delphi, Rave, IBXów?

Wydaje się, że Delphi, ale ręki nie dam se uciąć. Nic nie dam se uciąć.

jeśli Rave to najprawdopodobniej zapytanie nie zwróciło żadnych rekordów, jeśli IBXów to  "BaseQuery.SQL.Text ZAWSZE zawiera jakieś zapytanie" jednak nie jest prawdą.

Chodzi o to, że zawsze zwraca(testowałem zapytanie na bazie) i zawsze ma to zapytanie.

Sprawdz też do którego Query podpięty masz BaseRVDataSet

Mam tylko jedno, więc...

Możesz sprecyzować "I raz pokazuje się raport, a raz wyskakuje komunikat" od czego to +- zależy?

Nie mam pojęcia. Jak dla mnie wygląda to na zwykłą losowość :|

Poza tym podczas projektowania, jak tworzę sobie simple table wizardem, to się okazuje, że wybrany przeze mnie DataView nie ma żadnych pól(chociaż jest dobrze podłączony). Czasami po kilkukrotnym włączeniu i wyłączeniu pola się pojawiają.

Ponadto podczas tworzenia obiektu DataView pojawiają się komunikaty:
"Warning! Duplicate Design-Time Data Connections found with name BaseRVDataset".

0
Juhas napisał(a)

Wydaje się, że Delphi, ale ręki nie dam se uciąć. Nic nie dam se uciąć.

no to podaj cały komunikat a najlepiej daj screen z nim

Mam tylko jedno, więc...

co nie znaczy, że jest podpięte :)

jak możesz to wyślij mi projekt i raport na misiek(at)mieszka(dot)net

0

Pozwolę sobie podłączyć się pod wątek bo mam podobny problem tylko u mnie po wykonaniu raportu "dodaje" do SQLa.
Ale po kolei.
Część zapytania, konkretnie polecenie SELECT mam przypisane do StringListy, klauzule WHERE i ORDER BY są dodawane do zapytania na podstawie wyboru użyszkodnika.
Procedura, w dużym skrócie wygląda mniej więcej tak:

Query.SQL.Clear;
Query.SQL.AddStrings(StringList);
Case RadioGroup.ItemIndex of
  0: Query.SQL.Appened('where... order by...');
  1: Query.SQL.Appened('where... order by...');
  ....
end;

Procedura śmiga więcej niż dobrze do momentu wykonania raportu.
Raport generuje się oczywiście poprawnie ale przy próbie ponownego wykonania zapytania wszystko się sypie ponieważ SQL wygląda tak:

select...
where...
order by...
where...
order by...

Wygląda to tak jakby wykonywała się tylko instrukcja CASE i nic przed nią.
Nie pomaga również przeniesienie Query.SQL.Clear; do instrukcji CASE.
Rave jest podpięty za pomocą RvDataSetConnection do DataSet Query.
Może ktoś wie dlaczego Rave tak dziwnie wpływa na zapytanie?

0

teles40 jedyne co mogę Ci poradzić to debuger i zobaczyć, co się wykonuje i co masz w Query.SQL.Text.
Jakisz czas używałem RR i nie miałem z nim takich problemów

0
Misiekd napisał(a)
Juhas napisał(a)

Wydaje się, że Delphi, ale ręki nie dam se uciąć. Nic nie dam se uciąć.

no to podaj cały komunikat a najlepiej daj screen z nim

Komunikat jest taki, jaki podałem. Poważnie :)

Mam tylko jedno, więc...

co nie znaczy, że jest podpięte :)

Za to mogę dać sobie uciąć rękę :)

jak możesz to wyślij mi projekt i raport na misiek(at)mieszka(dot)net

Niestety, nie mogę... :(

0

no to debuger i sprawdzanie co jest w SQL.Text, co zwraca zapytania i co dostaje RR. Nic więcej Ci nie powiem

0
Misiekd napisał(a)

no to debuger i sprawdzanie co jest w SQL.Text, co zwraca zapytania i co dostaje RR. Nic więcej Ci nie powiem

No to ja już to robię od dawna. Wkurzyłem się i oprogramowałem dynamiczne tworzenie z kodu - jedna linia kodu to jedna kolumna. Śmiga aż miło :)

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