Wdrożyłem u siebie rozwiązanie umożliwiające filtrowanie listy ŚT wg bieżącego miejsca. Jest ono właściwie identyczne z opisanym w moim poprzednim poście http://cdn.3lance.pl/viewtopic.php?f=12&t=16.
Przydało się to przy inwentaryzacji ŚT.
Do dzieła!
1. Funkcja SQL BiezaceMPK (u Was też miejsca to "empeki"?). Pobiera miejsce ustalone na najnowszym dokumencie ZM (zmiana miejsca), a jeśli takowego nie ma - bezpośrednio z karty środka.
Kod: Zaznacz cały
--
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'BiezaceMPK' AND type = 'FN')
DROP FUNCTION CDN.BiezaceMPK
GO
CREATE FUNCTION CDN.BiezaceMPK( @GIDNumer INT )
RETURNS VARCHAR(30)
AS
BEGIN
DECLARE @MPK VARCHAR(30);
SELECT @MPK = (SELECT TOP 1 SHE_MiejsceUzyw FROM CDN.SrtHistElem
WHERE SHE_GIDTyp=2160 AND SHE_SRTNumer = @GIDNumer
ORDER BY SHE_Data DESC, SHE_GIDNumer DESC)
IF @MPK IS NULL
SELECT @MPK = SRT_MiejsceUzyw FROM CDN.SrtKarty WHERE SRT_GIDNumer = @GIDNumer
RETURN @MPK
END
GO
--
Kod: Zaznacz cały
ALTER TABLE CDN.SrtKarty ADD MiejsceBiezace AS CDN.BiezaceMPK( SRT_GIDNumer )
Kod: Zaznacz cały
@PAR ?@S30|MPK|Podaj MPK:'' @? PAR@
MiejsceBiezace LIKE ??MPK
Lista zostanie odfiltrowana do środków, których bieżące miejsce pokrywa się z podanym w formatce filtra. Wydruki Crystala można łatwo uzbroić w wyświetlanie dodatkowego pola po prostu wrzucając je na wydruk (wcześniej trzeba uruchomić opcję "Verify Database").
Życzę bezproblemowego używania!
Testowane na wersjach 5 i 6, na 7 nie powinno być problemów.
P.S.
Tym samym sposobem co opisany powyżej i we wspomnianym już poście http://cdn.3lance.pl/viewtopic.php?f=12&t=16 zrobiłem także dodatkowe pola w tabeli SrtKarty o nazwach WartoscBiezacaNetto i WartoscBiezacaBrutto. Co zawierają - chyba jasne. Jeżeli kogoś interesują szczegóły, proszę dać znać.