Wypowiedzi
-
Piotr D.:
...odnosiłem się do zapytania które zaproponowałem Dorocie. Distinct czy Group By niewiele by tam pomógł.
Tak. Nie pomógł. Próbowałam jeszcze przed ukrywaniem sekcji ;-) Lubię SQLa od pierwszego wejrzenia :-) -
Tak. To już mam, ale nie wystarczy. Kazałam mu ukryć dane i ukrył prawidłowo, tylko teraz tam są puste miejsca, a ja chcę, żeby nie było pustych miejsc, tylko kolejne dane,
czyli zamiast np.
1
2
3
było
1
2
3
Uprzedzając ewentualne inne pytania od razu informuję, że w innych kolumnach też nie ma żadnych widocznych informacji. Wszystko jest ukryte wg zadanego warunku.
edit:
Marcin. Miałeś rację. Miałam supress na polach, a do sekcji raportu nie zajrzałam. zaznaczyłam ukrywanie pustych sekcji i teraz działa. Bardzo dziękuję.Ten post został edytowany przez Autora dnia 28.11.13 o godzinie 13:11 -
A jak zrobić, żeby pusty wiersz są nie drukował. Pusty, czyli taki, w którym informacje są ukryte dla określonego warunku lub są ukryte, bo powielone?
-
Problem samoczynnie zniknął po kompilacji tą samą wersją VS i CR, ale na Windows 8.
-
Wynik zapytania pojawia się bardzo szybko, jednak mimo wszystko nie potrafię teraz posortować niezależnie danych z kontenery i danych z zakłady.
Jakie jest na to rozwiązanie?
edit:
Sortuję wg danych z tabeli zakłady, więc one drukują się unikanie, natomiast dane z kontenery powtarzają się dla każdego kolejnego rekordu z zakłady.
Jak mogę przechwycić informację, że jeden zestaw danych z kontenery już się wydrukował?
edit:
Ostatecznie wyczytałam informacje o pierwszym rekordzie z zakłady i dla następnych ukrywam pole z danymi z kontenery.
Mam nadzieję, że już teraz będzie ok.Ten post został edytowany przez Autora dnia 27.11.13 o godzinie 14:20 -
Tak. O to mi chodzi. Nie zdawałam sobie sprawy, że tak można zrobić. Fakt, pojawiają się wszelkie możliwe kombinacje danych z zaklady i z kontener, ale to jest już do ogarnięcia. A myślałam, ze znam się na SQLu ;-).
Bardzo dziękuję. -
Ale nie bardzo sobie wyobrażam jak mogę dołączyć kontenery do tego zapytania.
Możemy pominąć decyzje i operatora, a skupić się tylko na wnioski, zakłady i kontenery.
W każdej z tabel jest pole idwn, które je łączy, a wnioski to tabela nadrzędna, kontenery i zakłady - podrzędne w relacji 1 do wielu.
Czy możecie mi ułożyć JEDNO zapytanie, które pobierze wszystkie dane z tych tabel? -
Fakt, że trochę niezrozumiale się wyraziłam. Wcześniej w podraportach miałam dane z dwóch tabel: zakład i kontenery
Zrobiłam kwerendę, z której uzyskuję dane z: zakład (przeniosłam go z podraportu do kwerendy i złączyłam przez right outer z główną tabelą, czyli wnioski), wnioski, decyzje, operator (jeden zestaw nazwisk w kwerendzie, drugi rozwiązałam relacją), no i nie wiem co innego, niż podraport mogę zastosować, aby drukować kontenery (relacja 1 do wielu z tabelą wnioski).
Ten sam wydruk bez kontenerów wykonuje się w ciągu sekundy, z kontenerami w podraporcie kilka minut i nie ma znaczenia, czy dane z tabeli kontenery, z których potrzebuję tylko jedno pole, są wyczytywane w podraporcie kwerendą, czy w Field Explorer dołączam po prostu tabelę kontenery. Wierszy tabeli wnioski jest tylko ok. 2000.
Czy teraz opisałam problem dość jasno? -
Miałam 2 podraporty, więc poradziłam sobie z jednym z nich za pomocą kwerendy, ale nie wiem już co zrobić z tą drugą tabelą. Możesz mi coś podpowiedzieć. Z samym SQL mam trochę doświadczenia, mniej z CR.
-
Mam raport, który trudno mi zoptymalizować w CR.
Opiszę problem bez własnego rozwiązania.
Jest tabela główna wnioski (ok. 2000 rekordów, dość długich), do niej dobieram kilka informacji z tabeli decyzje (relacja 1-1, left outer).
Każdy rekord w tabeli wnioski i w tabeli decyzje stemplowany jest identyfikatorem użytkownika, więc muszę jeszcze dobrać 2 zestawy nazwisko+imie z wnioski i decyzje, każdy zestaw z tej samej tabeli operator.
Do tego 2 podraporty, prezentujące zestaw informacji dla danego rekordu z wnioski (relacja 1 do wielu).
Nie wydaje mi się, żeby to był jakiś szczególnie skomplikowany raport, jednak jego przygotowanie zajmuje CR przynajmniej 3 minuty, u użytkownika spodziewam się ponad 10.
Teraz zastosowane rozwiązania. Połączenie wnioski i decyzja oraz operator dla jednego z zestawów nazwisko+imie zrobiłam w SQL Query. Samo zapytanie zajmuje 2 sekundy. Sprawę spowolniły podraporty oraz konieczność ponownego przeszukiwania zbioru operator dla drugiego zestawu nazwisko+imie. Zbiory do podraportów i operator po raz drugi połączyłam relacją poprzez id rekordu wnioski.
Jak to można zopytmalizować w CR?
Zbiory w podraportach zazwyczaj zawierają jeden rekord dla danego rekordu z tabeli wnioski, czasem zdarza się kilka. Ten post został edytowany przez Autora dnia 22.11.13 o godzinie 13:34 -
Rzeczywiście. Mam zapytanie. Nie będę zaśmiecać wątku, stworzę nowy związany z optymalizacją. Bardzo dziękuję.
-
A ja mam pytanie troszkę prostszej natury. Na niektórych raportach mam opcję SQL Expression Fields w Fields Explorer, a w innych nie. Jak można to włączyć? W tej chwili bardzo i pilnie tego potrzebuję, aby poprawić wydajność raportu z relacjami, więc proszę o pilną podpowiedź.
-
Dzięki ci, Marcin, za chęć pomocy i podsyłanie rozwiązań :-).
Temat muszę jakoś rozpracować i na pewno będę starała się sugerować tym, co napisałeś, a potem zdać z tego relację.
Pozdrawiam
Dorota -
Marcin S.:
Jeśli twój raport korzysta z połączenia ODBC to wystarczy w Windowsie, w panelu sterowania zdefiniować źródło o takiej samej nazwie i raport będzie działać. Nie musisz nic oprogramowywać.
To rozumiem i tak robię. Wytłumaczę dokładniej. Mam 2 bazy - jedną prawdziwą, klienta, drugą testową o tej samej strukturze. Nie chcę za każdym razem, gdy sprawdzam działanie programu z bazą klienta, a potem przełączam się na testową robić tego w panelu sterowania, tylko wolałabym jakoś inaczej, szczególnie że teraz mam 2 klientów z takimi samymi bazami, do tego 2 testowe. Szczególny problem jest z tymi testowymi jeśli są na tym samym serwerze. Muszą mieć inne nazwy. Ze źródłem danych do ogólnej obsługi bazy w aplikacji nie mam problemu - jest zapisana w connectionstring i w razie potrzeby podmieniam nazwę bazy, W CR musiałabym nazwę bazy podmienić we wszystkich raportach.
Dalsza część twojego postu jest dla mnie niestety niezrozumiała. Może powinnam się douczyć, ale naprawdę nie wiem dokładnie z czego. -
Szczerze mówiąc, to nie bardzo rozumiem, a podchodzę do tematu już nie po raz pierwszy, bo tamten wątek też już wcześniej czytałam, ale nie umiem go zastosować.
Co mam wpisać w connectionstringu i co dalej? Mogę prosić o prostsze wyjaśnienie? -
Mam aplikację w ADO.NET, która przetworzone dane prezentuje w CR for VS 2010. Nazwa źródła danych ODBC jest na sztywno zaszyta we właściwościach raportu.
Chciałabym zapisać je w app.config aplikacji. Jak to zrobić? -
Przepraszam za chwilowe milczenie.
Używam parametrów dynamicznych.
Wersja runtime to SAP Crystal Reports runtime engine for .Net Framework 4 (64 bit).
Wartość domyślna nie jest i nie powinna być ustawiona. -
Aplikacja z użyciem CR działa poprawnie na komputerach z XP, a w przypadku Windows 7 trzeba parametr wpisać, nie pokazuje się lista wartości. Jednakże po wpisaniu właściwej wartości ręcznie raport wykonuje się poprawnie. Co może być tego przyczyną? Nie przetestowałam na Windows 7 w przypadku 32 bit.
Co może być przyczyną tego problemu? -
Sebastian K.:
Witam.
Dodałem pole parametrów, ustawiłem na pobieranie dynamicznych parametrów...
Po uruchomieniu raportu w aplikacji ciągle otrzymują komunikat z pytaniem o nazwę użytkownika i hasło...
Jak się tego pozbyć?
A czy weryfikacja nie jest wymagana? "Verify on every print" zaznaczone czy nie? -
Tam właśnie jest left outer join, ale pole z którym jest problem pochodzi z tabeli głównej . Czy to jest reguła, że w podpowiedzi nie pojawiają się wszystkie wartości jeśli tworzona jest ona na podstawie danych z raportowanego zbioru? Nawet jeśli te wartości w zbiorze występują?
Z mojego punktu widzenia to było lepsze rozwiązanie, niż słownik, bo (jeśli wszystko działałoby ok) nie są podpowiadane wartości, które w bazie nie zostały zarejestrowane.