Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: krzychu2078 w Kwiecień 30, 2012, 15:42:25

Tytuł: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana 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...
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: dkozlowski w Kwiecień 30, 2012, 15:52:07
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.
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: Tworkin w Kwiecień 30, 2012, 16:41:23
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)}))

Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: dkozlowski w Kwiecień 30, 2012, 18:47:38
@krzychu2078 chyba pytał o coś innego niż opisana w pomocy kontrolka CHL_DB.
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: krzychu2078 w Maj 01, 2012, 20:24:00
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:
Cytuj
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
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: dkozlowski w Maj 01, 2012, 22:50:44
Cytat z pomocy programu:

Cytuj
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:

Cytuj
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:

Cytuj
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)}
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: krzychu2078 w Październik 16, 2017, 09:33:34
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 ?


Cytuj
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)})
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: dkozlowski w Październik 16, 2017, 09:35:05
Na prawdę nie zaglądałeś do pomocy do programu, są przykłady...
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: krzychu2078 w Październik 16, 2017, 09:46:51
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)})
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: candy w Październik 16, 2017, 09:50:19
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.
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: dkozlowski w Październik 16, 2017, 09:55:49
Bez komentarza... Cytat z pomocy do programu:

Cytuj
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}

Cytuj
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}
)
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: krzychu2078 w Październik 16, 2017, 10:00:55
Czyli, że dobrze ?  ;D
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: candy w Październik 16, 2017, 10:03:53
Czyli że sprawdź sam.
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: krzychu2078 w Październik 16, 2017, 21:52:27
Czyli, że źle po sprawdzeniu...
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: dkozlowski w Październik 16, 2017, 22:32:55
Według mnie dobrze.
Tytuł: Odp: Kontrolka wyboru kontrahenta - lista wielokrotnego wyboru
Wiadomość wysłana przez: krzychu2078 w Październik 16, 2017, 22:57:05
o jedna spacja za dużo ...
zamiast
Cytuj
:Kontrahent: Nazwa
zadziało mi:
Cytuj
:Kontrahent:Nazwa