Mikołaj Nachtygal 2 Napisano 23 Stycznia 2023 Udostępnij Napisano 23 Stycznia 2023 w Pole własne typu słownik własny dokumentu realizowanego na wydruku PZ (edytowane) Witam, potrzebuję mieć dostęp do pól własnych typu słownik własny dokumentu realizowanego ZD na wydruku dokumentu PZ. Dokumenty Realizowane otrzymuję tak: private void WczytajListeDokumentowRealizowanych() { Dokument.encjaDokumentu.DokumentyRealizowane.Connect(); Dokument.encjaDokumentu.DokumentyRealizowane.First(); while (!Dokument.encjaDokumentu.DokumentyRealizowane.IsEof) { MyDokumentZDList.Add(new MyDokumentZD(Dokument.encjaDokumentu.DokumentyRealizowane)); Dokument.encjaDokumentu.DokumentyRealizowane.Next(); } } W innym przypadku gdy mam pole własne np. dla dostawcy wartość jego pola własnego otrzymuję tak: public string PobierzWartoscSlownikaWlasnego(string nazwaSlownika, int? klucz) { if (klucz == null) return null; var pw2Helper = PolaWlasne2Helper.BusinessObjectValue as IPolaWlasne2HelperWydruku; var slownik = pw2Helper.SlownikiWlasne.PobierzDefinicjeSlownikaWlasnego(nazwaSlownika); if (slownik == null) throw new InvalidOperationException("Nie znaleziono słownika własnego: " + nazwaSlownika); var pozycja = slownik.UtworzZapytanieLinq().FirstOrDefault(p => p.Klucz == klucz); return pozycja != null ? pozycja.Wartosc : null; } PobierzWartoscSlownikaWlasnego("Flaga Dostawcy/Dostawy",Dostawca.Podmiot.PodmiotDlaKtoregoHistoria.PolaWlasneAdv2.I0) I mam problem jak wyciągnąć z dokumentu realizowanego Dokument.encjaDokumentu.DokumentyRealizowane "PoleWlasneAdv2" podobnie jak jest tu: Dostawca.Podmiot.PodmiotDlaKtoregoHistoria.PolaWlasneAdv2.I0 W "Dictionary" nie da się dodać takich pól. Czy mógłby mi ktoś podpowiedzieć jak to ugryźć? Jeśli nie rozwiązaniem to chociaż "marchewką" bo nie wiem gdzie szukać... Z góry dziękuję za podpowiedź. Edytowane 23 Stycznia 2023 przez Mikołaj Nachtygal Link to postu
Kacper Panek 145 Napisano 23 Stycznia 2023 Udostępnij Napisano 23 Stycznia 2023 w Pole własne typu słownik własny dokumentu realizowanego na wydruku PZ Dzień dobry, dodatkowe informacje na temat zastosowania pól własnych na wydrukach są dostępne w poniższym poście: Link to postu
Mikołaj Nachtygal 2 Napisano 23 Stycznia 2023 Autor Udostępnij Napisano 23 Stycznia 2023 w Pole własne typu słownik własny dokumentu realizowanego na wydruku PZ Tak i też je zastosowałem. Problem polega na kroku: "pola własne dla dokumentu realizowanego" nie istnieje child "PolaWłasne" dla dokumentu realizowanego w tej liście. Czy istnieje jakiś sposób, żeby to otrzymać tak jak tu: ? jak wyciągnąć klucz pola własnego dla dokumentu realizowanego? Link to postu
Mikołaj Nachtygal 2 Napisano 24 Stycznia 2023 Autor Udostępnij Napisano 24 Stycznia 2023 w Pole własne typu słownik własny dokumentu realizowanego na wydruku PZ (edytowane) Żeby nie było, że tylko biorę a nic nie daję. Mój "workaround" poniżej: using System.Data.SqlClient; {...} public string GetValueOfPoleWlasneZD(int varZDId){ string returner="b/d"; using (SqlConnection con = new SqlConnection(@"Server=000.000.000.000\***;Database=Nexo_***;User Id=***;Password=***;")) { con.Open(); using (SqlCommand command = new SqlCommand( @"SELECT WartoscPola.Wartosc FROM [Nexo_***].[ModelDanychContainer].[Dokumenty] left join [Nexo_***].[ModelDanychContainer].[Dokumenty_PolaWlasneDokumentZD_Adv2] As PolaWlasne ON (PolaWlasne.Id = [Nexo_***].[ModelDanychContainer].[Dokumenty].Id) left join [Nexo_***].[ModelDanychContainer].[PozycjeSlownikowWlasnych] as WartoscPola ON (wartoscpola.Id=PolaWlasne.I1) where [Nexo_***].[ModelDanychContainer].[Dokumenty].Id="+varZDId.ToString(), con)) returner = (string) command.ExecuteScalar(); } return returner; } Gdzie argument varZDId to Id dokumentu ZD z bazy a funkcja zwraca wartość pola własnego bazując na słowniku. Minus tego rozwiązania jest taki, że ta funkcja trwa względnie długo i jeśli ktoś ją wywoła wielokrotnie to czas generowania raportu może wydłużyć się znacząco. Edytowane 24 Stycznia 2023 przez Mikołaj Nachtygal 1 Link to postu
Polecane posty