Skocz do zawartości

LinQ - Własny raport oferty

Polecane posty

Usiłuję stworzyć raport własny dla Ofert który miałby na celu wyświetlenie informacji o cenach wcześniej oferowanego asortymentu.

 

Pytanie brzmi następująco jak powinien wyglądać warunek abym mógł dostać się do danych zawartych w ofertach.

Na chwile obecną mam

var source = nexo.PodajObiektTypu<PozycjaDokumentu>();

ale jedyna na co mi pozwala to zobaczenie jakie kolumny znajdują się w PozycjaDokumentu.

 

Na chwilę obecną zapytania generuję przez LINQPad.

Edytowane przez Adam G
Link to postu

Na chwilę obecną jedyny kod który dał radę wyciągnąć konstrukcję Pozycji Dokumentów wygląda tak:

var danePolaczenia = DanePolaczenia.Jawne("***", "***", false, "sa" ,"**");
var nexo = new MenedzerPolaczen().Polacz(danePolaczenia, ProductId.Subiekt, ProductId.Gestor);
nexo.ZalogujOperatora("***", "***");
var source = nexo.PodajObiektTypu<PozycjaDokumentu>();
sorce.Dump();

A na chwilę obecną próbuję stworzyć raport mający na celu wyciągnąć informacje z Oferty o: Odbiorcy, Nr Dokumentu, Asortyment, Cena

Wiem, że kod powinien wyglądać mniej więcej tak ale niestety nie jestem w stanie znaleźć gdzie jest błąd.

var danePolaczenia = DanePolaczenia.Jawne("***", "***", false, "sa" ,"***");
var nexo = new MenedzerPolaczen().Polacz(danePolaczenia, ProductId.Subiekt, ProductId.Gestor);
nexo.ZalogujOperatora("***", "***");
var source = nexo.PodajObiektTypu<PozycjaDokumentu>();
source
.Select((PozycjaDokumentu dok) => new
{
Id = dok.Id,
odbiorca = dok.Dokument.Odbiorca,
numerDokumentu = dok.Dokument,
asortymentDokument = dok.Asortyment,
cenaAsortyment = dok.CenaAsortyment,
}).Dump();

Jak co na chwilę obecną domyślam się że odbiorca, numerDokumentu, asortymentDokumentu i cenaAsortymentu.

 

Jak co w zupełności powinno mi wystarczyć zapytanie które pokarze wszystkie oferty dalej powinienem być w stanie je rozwinąć aby pokazywało to co potrzebuję.

 

Link to postu

Jeśli to mają być dane na pozycji dokumentu to źródło danych jest nieprawidłowe, ponieważ Pan za źródło przyjmuje typ PozycjaDokumentu. Tymczasem dane, które znajdują się w bazie nexo należy wyciągać przez managera obiektów i jego właściwość Dane. W tym przypadku to może być IOferty. Proponuję więc zmienić zapytanie na takie:

var source = nexo.PodajObiektTypu<InsERT.Moria.Dokumenty.Logistyka.IOferty>().Dane.Wszystkie();
source
	.SelectMany(d => d.Pozycje, (dok, poz) => new {
		Dokument = dok.NumerWewnetrzny.PelnaSygnatura,
		Klient = dok.Podmiot.NazwaSkrocona,
		Symbol = poz.AsortymentAktualny.Symbol,
		Nazwa = poz.AsortymentAktualny.Nazwa,
		Cena = poz.Cena.BruttoPoRabacie,
	})
.Dump();

 

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