Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: krzychu2078 w Kwiecień 30, 2012, 15:42:25
-
Przeszukalem forum i nie mogę znaleźć kontrolki wyboru kontrahenta z pola multiwyboru - tzn pojawia sie lista kontrahentów i wybieramy z listy kilku z nich klikając w przycisk zaznacz. W pomocy są przykłady wyboru jednokrotnego.
Czy ktoś mógłby podzielić sie taka definicja pola?
Chodzi mi o taki wybór jak jest w przypadku wbudowanego zestawienia przyjęcia towarów wg kontrahentów, asortymentu...
-
To nie jest kontrolka dostępna w zestawieniach własnych SQL, nie masz więcej mozilwości niż opisuje to pomoc. Jak chcesz więcej to pozostaje własna aplikacja, opcjonalnie w formie zestawienia COM.
-
Kawałek kodu do multiwyboru kontrahenta na zestawieniach własnych SQL (nie polecam używać jak ktoś ma kontrahentów parę tysięcy, bo wtedy taki sposób pracy mija się z celem):
(-1 IN ({CHL_DB:SELECT -1 As kh_Id,'(dowolny)' As Kontrahent UNION ALL SELECT kh_Id,kh_Symbol+' '+adr_Nazwa+' '+ adr_NIP as Kontrahent FROM kh__Kontrahent INNER JOIN adr__Ewid ON adr_IdObiektu = kh_Id And adr_TypAdresu = 1 ORDER BY Kontrahent:Kontrahent:-1:(dowolny)})
OR kh_Id IN ({CHL_DB:SELECT -1 As kh_Id,'(dowolny)' As Kontrahent UNION ALL SELECT kh_Id,kh_Symbol+' '+adr_Nazwa+' '+ adr_NIP as Kontrahent FROM kh__Kontrahent INNER JOIN adr__Ewid ON adr_IdObiektu = kh_Id And adr_TypAdresu = 1 ORDER BY Kontrahent:Kontrahent:-1:(dowolny)}))
przykład użycia
SELECT kh_Email from kh__Kontrahent where
(-1 IN ({CHL_DB:SELECT -1 As kh_Id,'(dowolny)' As Kontrahent UNION ALL SELECT kh_Id,kh_Symbol+' '+adr_Nazwa+' '+ adr_NIP as Kontrahent FROM kh__Kontrahent INNER JOIN adr__Ewid ON adr_IdObiektu = kh_Id And adr_TypAdresu = 1 ORDER BY Kontrahent:Kontrahent:-1:(dowolny)})
OR kh_Id IN ({CHL_DB:SELECT -1 As kh_Id,'(dowolny)' As Kontrahent UNION ALL SELECT kh_Id,kh_Symbol+' '+adr_Nazwa+' '+ adr_NIP as Kontrahent FROM kh__Kontrahent INNER JOIN adr__Ewid ON adr_IdObiektu = kh_Id And adr_TypAdresu = 1 ORDER BY Kontrahent:Kontrahent:-1:(dowolny)}))
-
@krzychu2078 chyba pytał o coś innego niż opisana w pomocy kontrolka CHL_DB.
-
Ta kontrolka mi wystarczy...
zrobiłem zestawienie (z pomocą - dziękuje za nią :) ), którą liczy opakowania z dokumentów PZ I WZ u konkretnego punktu dostawy (Nie płatnika ogółem). Wszytko działa ok. Ale jak dodam opcje multiwyboru to składnia zapytania jest ok, ale zapytanie nie jest wykonywane. W czym mam błąd ??
A oto zapytanie SQL:
select
adr_Nazwa as "Dostawca",
adr_Adres as "ul. dostawy",
adr_Kod as "kod",
adr_Miejscowosc as "miejscowość",
tw_Nazwa as "Nazwa opakowania",
sum(case when dok_typ=11 then ob_Ilosc else 0 end) as "Wydania",
sum(case when dok_typ=10 then ob_Ilosc else 0 end) as "Przyjęcia",
sum(case when dok_typ=11 then ob_Ilosc else 0 end)- sum(case when dok_typ=10 then ob_Ilosc else 0 end) as "Stan",
tw_JednMiary as "J.M."
from
dok__dokument join dok_pozycja on dok_Id=ob_DokMagId and ob_TowRodzaj=4
join tw__Towar on ob_TowId=tw_Id
join dbo.vwKlienci on dok_OdbiorcaId=kh_Id
where
dok_typ in(10,11)
and dok_OdbiorcaId = {CHL_DB:select kh_id, adr_Nazwapelna as ODBIORCA from dbo.vwKlienci where kh_Typ = 1 ORDER BY adr_nazwapelna: Nazwa odbiorcy (gdzie dostarczono)}
group by
adr_Nazwa,
adr_Adres,
adr_Kod,
adr_Miejscowosc,
tw_Nazwa,
tw_JednMiary
-
Cytat z pomocy programu:
Dla zaznaczonych na liście kategorii do zapytania zostanie przekazany zbiór identyfikatorów wybranych kategorii. Z tych względów parametr ten powinien występować z takimi słowami kluczowymi języka T-SQL jak: IN, EXISTS, ANY.
czyli fragment:
and dok_OdbiorcaId = {CHL_DB:select kh_id, adr_Nazwapelna as ODBIORCA from dbo.vwKlienci where kh_Typ = 1 ORDER BY adr_nazwapelna: Nazwa odbiorcy (gdzie dostarczono)}
zamień na:
and dok_OdbiorcaId in {CHL_DB:select kh_id, adr_Nazwapelna as ODBIORCA from dbo.vwKlienci where kh_Typ = 1 ORDER BY adr_nazwapelna: Nazwa odbiorcy (gdzie dostarczono)}
-
Wgrałem najnowszą wersję subiekta i chciałbym zamienić część zestawienia w której jest lista przewijana na okno w którym kontrahenta się szuka z listę wyszukiwania bardziej zaawansowaną funcja LM: Czy ktoś podpowie jak przekształcić tą część zestawienia ?
and dok_OdbiorcaId in ({CHL_DB:select kh_id, adr_Nazwapelna as ODBIORCA from dbo.vwKlienci where kh_Typ = 1 ORDER BY adr_nazwapelna: Nazwa odbiorcy (gdzie dostarczono)})
-
Na prawdę nie zaglądałeś do pomocy do programu, są przykłady...
-
Na prawdę nie zaglądałeś do pomocy do programu, są przykłady...
Zaglądałem - czy coś takiego jest ok ?
and dok_OdbiorcaId IN ({LM:KH:Kontrahent: Nazwa odbiorcy (gdzie dostarczono)})
-
czy coś takiego jest ok ?
and dok_OdbiorcaId IN ({LM:KH:Kontrahent: Nazwa odbiorcy (gdzie dostarczono)})
OMG! Nie potrafisz sam spróbować?
Miałbyś odpowiedź szybciej niż trwało napisanie tego postu.
-
Bez komentarza... Cytat z pomocy do programu:
Zestawienia z parametrami przekazywanymi przez kontrolkę wyboru elementu kartotekowego {X}
W zestawieniach własnych SQL można wybierać elementy kartotekowe:
kontrahent
towar
konto w planie kont
pracownik
Służy do tego kontrolka z wyszukiwaniem instynktowym. W definicji zapytania SQL przyjmuje ona następujące parametry:
typ instynktu: TW dla towaru, KH dla kontrahenta, PK dla konta księgowego, PR dla pracownika
nazwę wyświetlaną w zestawieniu
identyfikator domyślnego elementu (opcjonalny)
nazwa domyślnego elementu (opcjonalna).
Kontrolki wyboru elementu kartotekowego mogą być używane w tych programach, w których jest odpowiedni kontekst. Kontrolka:
X:KH - działa we wszystkich programach
X:TW - działa tam, gdzie jest kontekst magazynu (wszystkie programy oprócz Gratyfikanta i mikroGratyfikanta)
X:PK - wymaga kontekstu roku obrachunkowego (Rewizor)
X:PR - działa we wszystkich programach oprócz mikroGratyfikanta.
Poniższe przykłady pokazują, w jaki sposób można korzystać z kontrolek wyboru elementów kartotekowych:
SELECT tw_Id, tw_Symbol, tw_Nazwa FROM tw__Towar WHERE tw_Id = {X:TW:Towar}
SELECT dok_Id, dok_DataWyst, dok_nrPelny
FROM dok__Dokument WHERE dok_PlatnikId = {X:KH:Kontrahent:6:Hurtownia ALA}
Zestawienia z parametrami przekazywanymi przez kontrolkę wyboru zbioru elementów kartotekowych {LM}
W zestawieniach własnych SQL można wybierać zbiór elementów kartotekowych dla następujących kartotek:
kontrahenci
towary
pracownicy
Służy do tego kontrolka listy z wyszukiwaniem instynktowym. W definicji zapytania SQL przyjmuje ona następujące parametry:
typ instynktu: TW dla towaru, KH dla kontrahenta, PR dla pracownika
nazwę wyświetlaną w zestawieniu
zbiór identyfikatorów dla elementów domyślnych (opcjonalny)
nazwa dla elementów domyślnych (opcjonalna).
Kontrolki wyboru elementu kartotekowego mogą być używane w tych programach, w których jest odpowiedni kontekst. Kontrolka:
X:KH - działa we wszystkich programach
X:TW - działa tam, gdzie jest kontekst magazynu (wszystkie programy oprócz Gratyfikanta i mikroGratyfikanta)
X:PR - działa we wszystkich programach oprócz mikroGratyfikanta.
Poniższe przykłady pokazują, w jaki sposób można korzystać z kontrolek {LM}:
SELECT tw_Id, tw_Symbol, tw_Nazwa FROM tw__Towar
WHERE tw_Id IN ({LM:TW:Towar})
SELECT dok_Id, dok_DataWyst, dok_nrPelny
FROM dok__Dokument
WHERE dok_PlatnikId IN ({LM:KH:Kontrahent:6,18:Hurtownie ALA i ERIE})
-
Czyli, że dobrze ? ;D
-
Czyli że sprawdź sam.
-
Czyli, że źle po sprawdzeniu...
-
Według mnie dobrze.
-
o jedna spacja za dużo ...
zamiast
:Kontrahent: Nazwa
zadziało mi:
:Kontrahent:Nazwa