Autor Wątek: Formatowanie warunkowe - zamówienia możliwe do realizacji  (Przeczytany 7461 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline gilbert3

  • Aktywny użytkownik
  • ***
  • Wiadomości: 112
  • Reputacja +6/-1
Formatowanie warunkowe - zamówienia możliwe do realizacji
« dnia: Lipiec 18, 2017, 11:07:10 »
Cześć!
Natknąłem się na problem niezrealizowanych zamówień, które pozostawały niezrealizowane mimo iż realizacja jest możliwa ze względu na to, że po ich utworzeniu pojawił się stan magazynowy.
Sprawdzanie wszystkich zamówień przy dużej ich ilości jest niewygodne, więc dobrze by było, że będzie to widoczne od razu.
Rozwiązanie:

Zastosowałem dwa widoki (korzystając z profilera podejrzałem co robi Subiekt gdy korzystamy z opcji "sprawdź dostępność towarów z zamówienia") + formatowanie warunkowe. Być może udałoby się to zrobić prościej - zwłaszcza pierwszy widok, ale przewiduję rozwinięcie funkcjonalności, a już teraz działa całkiem sympatycznie oraz szybko na dość pokaźnej bazie.
Zapytanie tworzące widoki:

CREATE view vw_rk_ZamowieniaDostepnosc AS (
SELECT ob_dokHanId,
case when (((ob_IloscMag + (rezerwacjaBiezacyMagazyn-ZarezerwowaneNaTymDokumencie) - wydano) -  StanBiezacyMagazyn ) <= 0) then 0 else ((ob_IloscMag + (rezerwacjaBiezacyMagazyn-ZarezerwowaneNaTymDokumencie) - wydano) -  StanBiezacyMagazyn ) end as brakujeBiezacy
FROM (
 SELECT MAX(pozHan.ob_DokHanLp) as ob_DokHanLp, MAX(pozHan.ob_TowRodzaj) as ob_TowRodzaj, MAX(tw_Symbol) as tw_Symbol
 , MAX(tw_DostSymbol) as tw_DostSymbol, MAX(tw_Nazwa) as tw_Nazwa, SUM(pozHan.ob_IloscMag) as ob_IloscMag
 , MAX(st_Stan) as StanBiezacyMagazyn
 , (select SUM(st_Stan) from tw_Stan where st_TowId = pozHan.ob_TowId and st_MagId in (1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 13) ) as StanWszystkieMagazyny
 ,COUNT(pozHan.ob_DokHanLp) as liczbaPozycji, MAX(pozHan.ob_TowId) as ob_TowId, MAX(pozHan.ob_DokHanId) as ob_DokHanId 
 , MAX(ISNULL(dbo.fnSub_IloscTowWydanaDoZamowienia(pozHan.ob_DokHanId, pozHan.ob_TowId), 0)) as wydano
 , MAX(st_StanRez) as rezerwacjaBiezacyMagazyn
 , (select Sum(st_StanRez) from tw_Stan where st_TowId = pozHan.ob_TowId and st_MagId in (1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 13)  ) as rezerwacjaWszystkieMagazyny 
 , case when MAX(dok_Status) = 7 then (case when (SUM(pozHan.ob_IloscMag) - MAX(ISNULL(dbo.fnSub_IloscTowWydanaDoZamowienia(pozHan.ob_DokHanId, pozHan.ob_TowId), 0))) > 0   
then (SUM(pozHan.ob_IloscMag) - MAX(ISNULL(dbo.fnSub_IloscTowWydanaDoZamowienia(pozHan.ob_DokHanId, pozHan.ob_TowId), 0)))    
else 0 end )   
else 0 end as ZarezerwowaneNaTymDokumencie   
 
 FROM dok_Pozycja as pozHan 
 LEFT JOIN tw__Towar ON tw_Id = ob_TowId   
 LEFT JOIN tw_Stan ON ob_TowId = st_TowId
 LEFT JOIN dok__Dokument On dok_Id = pozHan.ob_DokHanId
 
 WHERE st_MagId = 1 and ob_TowRodzaj != 2 AND dok_Typ = 16 AND dok_Status = 7
 GROUP BY pozHan.ob_TowId
 ) as widok );

CREATE VIEW vw_rk_ZamowieniaDostepnosc_grupowanie AS (
SELECT ob_dokHanId, sum(brakujeBiezacy) AS brakujeRazem FROM vw_rk_ZamowieniaDostepnosc GROUP BY ob_dokHanId)


Zapytania w formatowaniu warunkowym:

case when brakujeRazem=0 and dok_Typ=16 and dok_status=7  then 1 else 0 end
i dodatkowe w polu poniżej:

left join vw_rk_ZamowieniaDostepnosc_grupowanie ON dok_Id=ob_dokHanId
na końcu proszę pamiętać o pokolorowaniu wiersza :)

Może się komuś przyda. Pozdrawiam.

Offline ironic_

  • Nowy użytkownik
  • *
  • Wiadomości: 16
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.40
Odp: Formatowanie warunkowe - zamówienia możliwe do realizacji
« Odpowiedź #1 dnia: Lipiec 27, 2017, 11:06:45 »
Niestety u mnie przy próbie uruchomienia w SQLdbx pojawia się błąd:

Incorrect syntax near the keyword 'CREATE'.. Error 156. SQLSTATE 42000. Severity 15. MsgState 1. Line 27.

Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4876
  • Reputacja +172/-11
Odp: Formatowanie warunkowe - zamówienia możliwe do realizacji
« Odpowiedź #2 dnia: Lipiec 27, 2017, 11:18:02 »
Jakbyś to uruchomił w Management Studio a nie w SqlDbx to byś miał komunikat bardziej zrozumiały:
"Msg 156, Level 15, State 1, Procedure vw_rk_ZamowieniaDostepnosc, Line 27
Incorrect syntax near the keyword 'CREATE'."

Zamień to:
) as widok );

CREATE VIEW vw_rk_ZamowieniaDostepnosc_grupowanie AS (

Na:
) as widok )
 GO

CREATE VIEW vw_rk_ZamowieniaDostepnosc_grupowanie AS (
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline cacperec

  • Nowy użytkownik
  • *
  • Wiadomości: 1
  • Reputacja +0/-0
  • Wersja programu: SGT 1.73
Odp: Formatowanie warunkowe - zamówienia możliwe do realizacji
« Odpowiedź #3 dnia: Listopad 30, 2022, 15:40:21 »
Dobra robota, ale w widoku jest błąd - mianowicie jeżeli dany towar jest na kilku zamówieniach, to tylko jedno będzie się kolorowało. W celu poprawy w pierwszym widoku zamiast:

GROUP BY pozHan.ob_TowId
powinno być:

GROUP BY pozHan.ob_DokHanId, pozHan.ob_TowId

Offline boltman

  • Nowy użytkownik
  • *
  • Wiadomości: 8
  • Reputacja +0/-0
  • Wersja programu: 1.74
Odp: Formatowanie warunkowe - zamówienia możliwe do realizacji
« Odpowiedź #4 dnia: Luty 15, 2023, 13:01:59 »
Dla mnie rozwiązanie genialne przynajmniej sądząc po jego opisie, ale niestety nie znam się za bardzo za sql. Może byłby ktoś na tyle pomocny i podpowiedział, czy jest to rozwiązanie możliwe do wdrożenia używając samego Subiekta ( mam abonament, sferę i czerwonego plusa), czy wymaga już wiedzy programistycznej? Chodzi mi o to w jaki sposób( gdzie) wkleić kod na zapytanie tworzące widoki?

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17059
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Formatowanie warunkowe - zamówienia możliwe do realizacji
« Odpowiedź #5 dnia: Luty 15, 2023, 19:16:43 »
Dla mnie rozwiązanie genialne przynajmniej sądząc po jego opisie, ale niestety nie znam się za bardzo za sql. Może byłby ktoś na tyle pomocny i podpowiedział, czy jest to rozwiązanie możliwe do wdrożenia używając samego Subiekta ( mam abonament, sferę i czerwonego plusa), czy wymaga już wiedzy programistycznej? Chodzi mi o to w jaki sposób( gdzie) wkleić kod na zapytanie tworzące widoki?

Jedna z możliwości została opisana w tym wątku:

Jakbyś to uruchomił w Management Studio...
Daniel, Białystok.

Offline boltman

  • Nowy użytkownik
  • *
  • Wiadomości: 8
  • Reputacja +0/-0
  • Wersja programu: 1.74
Odp: Formatowanie warunkowe - zamówienia możliwe do realizacji
« Odpowiedź #6 dnia: Luty 16, 2023, 11:05:07 »
Dzięki, działa :) Mam inny dziwny problem, działa to tylko na moim koncie. Na innych użytkownikach (niezależnie od stacji roboczej) wyrzuca błąd E_FAIL przy próbie przejścia w moduł ZK (formatowanie warunkowe włączone było dla wszystkich użytkowników). Usunięcie formatowania naprawia sytuację. Może ktoś z Was miałby pomysł co może być tego przyczyną?

Forum Użytkownikow Subiekt GT

Odp: Formatowanie warunkowe - zamówienia możliwe do realizacji
« Odpowiedź #6 dnia: Luty 16, 2023, 11:05:07 »