Problem z Rave Report

0

Witam!

Po wygenerowaniu raportu w aplikacji występuje problem z poprawnym zamknięciem aplikacji (dopóki użytkownik nie wywoła żadnego raportu program zamyka się poprawnie). Tzn., zamyka się ale wisi proces.... Nie wiem może źle obsługuję raporty Rave. Proszę o pomoc. Poniżej zamieszczam fragment, w którym generuję raport:

  with RvProject2 do
  begin
    Open;
    SelectReport('nazwa_raportu',false);
    SetParam('biezaca_data',DateToStr(Date));
    SetParam('uzytkownik_programu',logowanie.LogID);
    SetParam('jednostka',logowanie.LogJednostka);
    SetParam('tytul_raportu','Jakaś nazwa');
    SetParam('naglowek','Liczba wierszy: '+IntToStr(SMDBGrid1.RowCount-1));
    SetParam('stopka','Raport wygenerowany....');
    Execute;
    Close;
  end;

W RvSystem ustawiam aby wydruk leciał bezpośrednio na drukarkę bez wcześniejszego podglądu...

Z góry dzięki za wszystkie sugestie.

0

Jeszcze jedna sprawa.... Zrobiłem instalke i nie chce się odpalic na innym kompie. Trzeba coś dodać do instalki aby Rave Raport działał na innym kompie?

0

Czeba

[green]

Program powinien działać na innych kompach gdy:

.....(Extractfilepath(application.exename)+'raport.rav');

Ale jak coś to napisz chociaz jaki błąd wyskakiwał.

0

OKI. Jeśli chodzi o uruchamianie na innym kompie to wstrzeliłeś się ;) zdefiniowałem ścieżkę do raportów w kodzie i działa. Niestety dalej występuje problem z zamknięciem aplikacji. Pozostaje proces, który zżera 99% CPU :( Tylko w sytuacji gdy użytkownik wygeneruje jakikolwiek raport. Jeśli chodzi o samą bazę to jest to MySQL a do połączenia wykorzystuję AnyDAC. Wszystko działa wyśmienicie oprócz wspomnianego wyżej problemiku....

0

SetParam('biezaca_data',DateToStr(Date));
SetParam('uzytkownik_programu',logowanie.LogID);
SetParam('jednostka',logowanie.LogJednostka);
SetParam('tytul_raportu','Jakaś nazwa');
SetParam('naglowek','Liczba wierszy: '+IntToStr(SMDBGrid1.RowCount-1));
SetParam('stopka','Raport wygenerowany....');

Spróbuj każdą z tych linijek po kolei skomentować i odpalać raport i obserwuj czy będzie takie przeciążenie.
Komentuj i odpalaj, komentuj i odpalaj....oczywiście poprzednią linijkę odkomentuj ;]

0

Nic z tego... żadna z tych linii... Jedyne co zauważyłem to gdy zamykam aplikację moim buttonem (Application.Terminate) to zabiera 99% CPU a gdy zamknę standardowym przyciskiem formularza to zabiera 0%. Niestety w obu przypadkach proces dalej wisi...

0

Może powinieneś zwolnić raport jakoś przed zamknięciem programiku?

0

To dość dziwne - używam raportów RR nałogowo i nigdy coś takiego mi się nie trafiło...
A czy w samym raporcie nie masz jakiegoś zdarzenia zdefiniowanego (afterreport)? A może wywołujesz raport w pętli która nie ma szansy się zakończyć?? albo kolejno dla zestawu rekordów i nie dałeś 'Next'? Czy raport jest wywoływany z głównej formy programu?

Może to ja robie błąd, ale nie używam w zasadzie sekwencji Open - Close dla raportów - inna sprawa, że kontrolki raportów zwykle umieszczam na dodatkowej formie, która jest tworzona w chwili gdy user wywoła raport, a niszczona po jego wykonaniu - ma to taki cel, że właśnie na tej formie user wybiera wzór wydruku (nie mylić z setup`em) - dostępne raporty są dynamicznie pobierane z bazy i udostępniane do wyboru userowi... wybrałem takie rozwiązanie, bo jednocześnie pracuje kilka(naście) osób i wygodniej mi dodawać raporty do bazy, aplikacja sama sobie aktualizuje pliki z raportami.. ale to już inna sprawa...

0

Dopiero niedawno zacząłem się bawić Rave Report. Jeśli chodzi o aplikację to mam w niej kilka raportów i wywoływane są z różnych form. Zdarzenia mam tylko w jednym raporcie i są to: onbeforereport oraz ongettext. Reszta nie ma żadnych zdarzeń. Petli też nie mam żadnej - powyższy fragment kodu to wszystko co kryje sie pod moim buttonem o nazwie [Drukuj]. Ograniczyłem jak najbardziej ingerencje ze strony użytkownika i wszystko od razu leci na drukarkę bez możliwosci podgladu. Nie mam metody NEXT ponieważ używam Visual Designera i wszystko jest podpięte w nim. Nie odczytuje kolejnych rekordów. Używam TRvDataSetConnection. Mam dość złożony raport i najrozsądniejszym wydawało się zrobienie to w Visualu.... Nie wiem może źle obsługuję raportowanie (sekwencja Open - Close). Jest jakis inny sposób na obsłużenie tego w mojej sytuacji? Może ktoś jeszcze tak generuje raporty? Jak na razie dzięki za sugestie!

0

Mam podobny problem. Błąd jest w raportcie RAVE. W czasie wykonywanie RvProject.Execute aplikacja wisi, nie ma w tym czasie żadnego błędu. Czy da się w jakiś sposób zamknąc , przerwać wykonywanie Execute?

0
Marcin1983 napisał(a)

Mam podobny problem.

I oczywiście nie można było założyć nowego wątku - lepiej odkopać podobny sprzed ponad 5 lat!

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