Skocz do zawartości

przeliczanie jednostek - odwołanie bezwględne

Polecane posty

Kochani,

 

Czy jestem w stanie odwolac sie do przelicznikow jednostek poprzez obiekty w sposób bezposredni ?


Przykladowo na raporcie w ten sposob licze ilosc kartonow/zgrzewek i palet.

{Format("{0:N2}", Dokument.Pozycje.encjaPozycji.Ilosc/
Dokument.Pozycje.JednostkaMiaryAs.PrzelicznikJednostkiNadrzednej.LiczbaJednostkiNadrzednej/
Dokument.Pozycje.JednostkaMiaryAs.PrzelicznikJednostkiNadrzednej.JednostkaPodrzedna.PrzelicznikJednostkiNadrzednej.LiczbaJednostkiNadrzednej)}

 

Jednakze gdy wprowadze fakture zakupowa w zgrzewkach to ze wzgledu na odwolanie wzgledne pole kartony przyjmuje wartosci palet.

Czy jestem w stanie wyjsc do przeliczonych jednostek w sposob bezwzgledny (bez hierarchii obiektow)

Nie wiem moze przez jakas funkcje albo parametr ?

 

Problem zaistnieje rowniez jesli wprowadzze jakis dodatkowy przelicznik - dajmy na to ilosc zgrzewek na wartswie palety.

image.thumb.png.99b4aff87cef7cf1fdeffd6b599cbc29.png

image.thumb.png.436b1877dfc1848b5b3709b2b95223ad.png

Edytowane przez Daniel Lubryka
Link to postu

Co dokładnie chce Pan osiągnąć? Przy ustawieniu "na sztywno" kolumn "Ilość w zgrzewkach"/"Ilość w kartonach"/"Ilość w paletach" prawdopodobnie by się udało, ale z Pańskiej treści może wynikać, że chodzi o "dynamiczny" wzorzec, który w zależności od tego, jaką ma jednostkę na pozycji, to pokazuje inne ilości w pozostałych kolumnach.

Link to postu
3 godziny temu, Przemysław Werner napisał:

Przy ustawieniu "na sztywno" kolumn "Ilość w zgrzewkach"/"Ilość w kartonach"/"Ilość w paletach" prawdopodobnie by się udało

Dziala - jesli sprzedaje na sztuki i na produkcie mam na stale ustalone tylko 2 poziomy przelicznikow czyli przykladowo
1 paleta = 100 zgrzewek = 600 sztuk

Jesli zmienie to na 

1 paleta = 10 warstw = 100 zgrzewek = 600 sztuk

to wtedy zmienia sie hierarchia i odwolanie do jednostek 

 

Generlanie czy jest w API jakas funkacj, zeby sie odwolac od dowolnej jednostki do innej dowolnej podajac naprzyklad ich symbole ?

Przykladowo

= insert.jest.super.ale.przelicz(Dokument.Pozycje.encjaPozycji.Ilosc, Dokument.Pozycje.encjaPozycji.Jednostka, symboljednostki("pal"))

Link to postu

Bardzo uprzejmie dziekuje


Jeszcze pytanie : jak sprawic zeby ta funkcja byla dostepna w stronie dodatkowej raportu ?

 

Gdzieś musi być jakieś podłączenie "Namingów" w stimulsofcie którego nie mogę znaleźć

Tam trzebaby podpiąć using InsERT.Moria.ModelDancyh; ?

image.png.00075232c658cb06c64ef2977b2227e4.png

 

Dodanie funkcji własnej w kodzie również nie pomogło

    private decimal Przelicz(string SymbolNaDokumencie, decimal Ilosc, string SymbolDocelowy)
    {   return PrzeliczIloscNaJednostke(SymbolNaDokumencie,Ilosc,SymbolDocelowy);
    }

 

image.thumb.png.d152f668f879bf646ec32712e36404ab.png

Link to postu
W dniu 28.01.2023 o 11:10, Daniel Lubryka napisał:

Tam trzebaby podpiąć using InsERT.Moria.ModelDancyh; ?

Tak przede wszystkim trzeba dodać w zakładce code:

using InsERT.Moria.ModelDanych;
W dniu 28.01.2023 o 11:10, Daniel Lubryka napisał:

Dodanie funkcji własnej w kodzie również nie pomogło

Nie pomogło gdyż próbował Pan jako argumenty funkcji PrzeliczIloscNaJednostke podać symbole jednostek miar (string), a wymaga ona przekazania tam encji jednostek miar asortymentu (JednostkaMiaryAsortymentu). Stimulsoft opakowuje obiekty przekazywane do raportu przez nexo w swoje wewnętrzne struktury danych (obiekty biznesowe), ale można się odwołać do opakowanej "encji" z nexo poprzez własność BusinessObjectValue i jedyne co trzeba zrobić w kodzie to "rzutować" ją na odpowiedni typ. Poniżej przykład przeliczania ilości na pozycji na jednostkę podstawową asortymentu:

private decimal PrzeliczIloscNaJednostkePodstawowa()
{
	JednostkaMiaryAsortymentu jednostkaMiaryPozycji = (JednostkaMiaryAsortymentu)Dokument.Pozycje.JednostkaMiaryAs.BusinessObjectValue;
  	// Wywołanie Connect() powoduje, że Stimulsoft "doładowuje" sobie odpowiednie dane:
	Dokument.Pozycje.encjaPozycji.AsortymentAktualny.PodstawowaJednostkaMiaryAsortymentu.Connect();		
	JednostkaMiaryAsortymentu jednostkaPodstawowa = (JednostkaMiaryAsortymentu)Dokument
      		.Pozycje
      		.encjaPozycji
      		.AsortymentAktualny
      		.PodstawowaJednostkaMiaryAsortymentu
      		.BusinessObjectValue;
	return jednostkaMiaryPozycji.PrzeliczIloscNaJednostke(Dokument.Pozycje.encjaPozycji.Ilosc, jednostkaPodstawowa);
}

 

Link to postu
6 godzin temu, Wojciech Szopiński napisał:
JednostkaMiaryAsortymentu jednostkaPodstawowa = (JednostkaMiaryAsortymentu)Dokument
      		.Pozycje
      		.encjaPozycji
      		.AsortymentAktualny
      		.PodstawowaJednostkaMiaryAsortymentu
      		.BusinessObjectValue;

Ekstra, coraz blizej

a dysponowalby Pan taka linijka kodu, ktora pomoglaby mi wybrac nie jednostke podstawowa, ale dowolna inna z tych zdefiniowanych na przeliczniku  ?

image.thumb.png.a0f1cacc1024dfa3764cc80cd9c74e4e.png

Edytowane przez Daniel Lubryka
Link to postu

Coś takiego powinno pomóc:

private JednostkaMiaryAsortymentu ZnajdzJednostkeMiaryOSymbolu(string szukanySymbol)
{
	Dokument.Pozycje.encjaPozycji.AsortymentAktualny.JednostkiMiar.Connect();
	ICollection<JednostkaMiaryAsortymentu> jednostkiMiar = (ICollection<JednostkaMiaryAsortymentu>)Dokument
		.Pozycje
		.encjaPozycji
		.AsortymentAktualny
		.JednostkiMiar
		.BusinessObjectValue;
  	return jednostkiMiar.FirstOrDefault(jma => jma.JednostkaMiary.Symbol == szukanySymbol);
}

 

Link to postu
×
×
  • Dodaj nową pozycję...