Łukasz Jarzynka

Łukasz Jarzynka Programista SQL /
Analityk systemów
magazynowych

Temat: Wydruk wielu etykiet z jednej pozycji z różnymi ilościami

Witam mam taki problem :

Mamy dokument z jedną pozycją np. Jajka 1000szt. Teraz muszę rozbić tą jedną pozycję na 6 pozycji. (1000szt / 180szt = ilość kartonów) Tzn.
1) Pozycja 180szt
2) Pozycja 180szt
3) Pozycja 180szt
4) Pozycja 180szt
5) Pozycja 180szt
6) Pozycja reszta z 1000/180

Muszę to rozbić aby mieć z tego wydruk 6 etykiet. Na każdy karton 1 etykieta. Jakiś pomysł?
Zaznaczam że czasem będzie dzielone przez 180 czasem 120 a czasem przez inną wartość.
Krzysztof Wojtal

Krzysztof Wojtal Specjalista ds
systemu ERP, PL/SQL,
Crystal rep., Power
B...

Temat: Wydruk wielu etykiet z jednej pozycji z różnymi ilościami

Cześć,

Czy dane do raportu pobierasz przy pomocy zapytania SQL oraz jaka jest to baza (Oracle, Firebird...)?
Czy zawsze będziesz dzielił przez 6. czy liczba 6 jest wynikiem dzielenia 1000/180 zaokrąglona w górę?
W samym CR nie znam mechanizmu do pączkowania danych.

Pozdrawiam
Krzysiek
Łukasz Jarzynka

Łukasz Jarzynka Programista SQL /
Analityk systemów
magazynowych

Temat: Wydruk wielu etykiet z jednej pozycji z różnymi ilościami

Baza MSSQL. Może to być zapytanie sql, może też być widok.

Dzielić będę raczej przez 120, 160,180 czyli ilość w kartonie, aby uzyskać ilość pozycji.
Łukasz Jarzynka

Łukasz Jarzynka Programista SQL /
Analityk systemów
magazynowych

Temat: Wydruk wielu etykiet z jednej pozycji z różnymi ilościami

Znalazłem rozwiązanie, co prawda nie od strony CR ale SQLa.
Może kiedyś się komuś przyda :

select
t.ID_DOK_MAGAZYNOWEGO,
dm.POLE10 , -- ilosc w kartonie
from POZYCJA_DOKUMENTU_MAGAZYNOWEGO t
join DOKUMENT_MAGAZYNOWY dm on (t.ID_DOK_MAGAZYNOWEGO = dm.ID_DOK_MAGAZYNOWEGO)
left join TABELA_POWIAZAN_POZYCJI tpp on (tpp.ID_POZ_DOK_ROZCH = t.ID_POZ_DOK_MAG)
left join POZYCJA_DOKUMENTU_MAGAZYNOWEGO_V pdmv on (tpp.ID_POZ_DOK_PRZYCH = pdmv.ID_POZ_DOK_MAG)
left join KONTRAHENT k on (k.ID_KONTRAHENTA = dm.ID_KONTRAHENTA)
inner join master.dbo.spt_values v
on v.type = 'p'
and v.number<round(t.ILOSC/dm.POLE10,0)

union all

select
t.ID_DOK_MAGAZYNOWEGO,
t.ilosc%cast(dm.POLE10 as numeric (12,0)) -- reszta w kartonie

from POZYCJA_DOKUMENTU_MAGAZYNOWEGO t
join DOKUMENT_MAGAZYNOWY dm on (t.ID_DOK_MAGAZYNOWEGO = dm.ID_DOK_MAGAZYNOWEGO)
left join TABELA_POWIAZAN_POZYCJI tpp on (tpp.ID_POZ_DOK_ROZCH = t.ID_POZ_DOK_MAG)
left join POZYCJA_DOKUMENTU_MAGAZYNOWEGO_V pdmv on (tpp.ID_POZ_DOK_PRZYCH = pdmv.ID_POZ_DOK_MAG)
left join KONTRAHENT k on (k.ID_KONTRAHENTA = dm.ID_KONTRAHENTA)
inner join master.dbo.spt_values v
on v.type = 'p'
and v.number<1



Wyślij zaproszenie do