Skocz do zawartości

Paweł Kubacki

InsERT
  • Liczba zawartości

    1 133
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    18

Zawartość dodana przez Paweł Kubacki

  1. Okno parametrów będzie działało dopiero po zalogowaniu do sfery. W tym przypadku trzeba więc posłużyć się własnym oknem.
  2. Instrukcja jest ogólna, ale przedstawiony w pierwszej wiadomości przykład dotyczył dodania pól własnych klienta na wydruk FS. W przypadku asortymentu ścieżka prowadząca do pól własnych będzie inna. Tutaj chciałbym zwrócić uwagę, że jest to instrukcja techniczna. Została stworzona z myślą o osobach zajmujących się wdrażaniem/serwisowaniem aplikacji. Polecam zatem skorzystać z pomocy takiej osoby. Proszę przejrzeć naszą listę serwisantów.
  3. W jaki sposób przystosowuje Pan swoje rozwiązanie sferyczne do nowej wersji nexo? Czy przypadkiem nie wgrywa Pan bibliotek z nowej wersji SDK do katalogu, gdzie wcześniej były biblioteki z poprzedniej wersji?
  4. Proszę zamieścić pełny komunikat błędu, bo niestety brakuje jego najistotniejszej części. Czy w Pańskim rozwiązaniu wykorzystywane są jakieś biblioteki, z których korzysta także nexo?
  5. Problemem jest tutaj przekazywanie encji rozrachunku z załadowanego dokumentu sprzedaży do metody tworzącej obiekt rozrachunku. W zasadzie wystarczy drobna zmiana w Pana kodzie, aby odizolować oba obiekty od siebie i aby ten plugin działał. ... using (var rch = rozrachunki.Znajdz(x => x.Id == rozrachunek.Id)) { ... } Jednak sugeruję nieco większą zmianę ze względu na wydajność. Dokument sprzedaży jest dość złożonym obiektem i bez potrzeby nie warto powoływać go do życia. W tym przypadku dokument ten nie jest zmieniany, pobierane są z niego jedynie uwagi, więc proponuję następującą zmianę. public override void PoZapisieObiektu(IKontekstZdarzeniaPoZapisieObiektu<IDokumentSprzedazy> kontekst) { if (kontekst.StanZapisanegoObiektu == StanZapisanegoObiektu.Dodany) { IDokumentySprzedazy sprzedaz = kontekst.Uchwyt.PodajObiektTypu<IDokumentySprzedazy>(); IRozrachunki rozrachunki = kontekst.Uchwyt.PodajObiektTypu<IRozrachunki>(); int idZapisanegoDokumentu = (int)kontekst.IdDanych; var uwagi = sprzedaz.Dane.Wszystkie() .Where(x => x.Id == idZapisanegoDokumentu) .Select(x => x.Uwagi) .FirstOrDefault(); using (var rch = rozrachunki.Znajdz(x => x.Dokument.Id == idZapisanegoDokumentu)) { if (rch.Zablokuj()) { rch.Odblokuj(); rch.Dane.Tytul = uwagi; if (rch.Zapisz()) { } else rch.WypiszBledy(); } } } } Nadmiarowy wydaje mi się także kod związany z blokowaniem obiektu.
  6. Jeżeli użytkownik jest nowy i nie ma jeszcze spersonalizowanych widoków, to nie trzeba niczego usuwać. W tabeli WidokiSerwisowe nie będzie wówczas dla niego żadnych wpisów. Jeżeli natomiast jakieś widoki już dostosowywał do swoich potrzeb, to może nie warto mu ich zmieniać. Proszę zwrócić uwagę, że podane przez Pana polecenie usuwa wszystkie widoki użytkownika bez względu na to jakie widoki będą potem w drugim kroku kopiowane z wzorcowego użytkownika. Może się więc zdarzyć, że usunięta zostanie zmieniona konfiguracja np. serwisu Asortyment mimo, że użytkownik wzorcowy nie dokonał zmian w tej konfiguracji i nie będzie ona w kroku 2 skopiowana. W rezultacie konfiguracja tego serwisu wróci do ustawień domyślnych. Pola TimeStamp i Naglowek_Id nie powinny być kopiowane.
  7. W programie jest możliwość eksportu/importu ustawień widoku. Gdyby jednak chciał Pan przenieść ustawienia list edycyjnych, np. pozycji faktury, to tam jeszcze nie ma takiego importu/eksportu. Ustawienia widoku przechowywane są w tabeli WidokiSerwisowe, a ustawienia list edycyjnych w tabeli StanyAplikacji.
  8. Obecnie nie ma takiej możliwości w raportach własnych LINQ. Lista bazodanowa wielokrotnego wyboru jest natomiast dostępna w raportach własnych SQL. W przyszłości planujemy dodać taką możliwość także w raportach LINQ.
  9. Nie ma możliwości zmiany poziomu logowania w programie. Natomiast w kolejnej wersji programu rozszerzymy zakres logowanych problemów także o przypadki związane z nieudanym załadowaniem widoku.
  10. Przekonał mnie Pan. Postaramy się ten proces usprawnić w kolejnych wersjach programu.
  11. Planujemy ten problem jakoś zaadresować w przyszłości. Wiemy, że galeria wymaga jeszcze kilku szlifów. Z pewnością będzie jeszcze ulepszana w przyszłości.
  12. Nie ma takiej możliwości. Sfera zdarzeniowa wpływa na zachowanie obiektów nexo, a okno wydruku takim obiektem nie jest.
  13. Zapisałem sugestię, ale z góry uprzedzam, że musi poczekać na spokojniejsze czasy. Jeszcze chciałem dopytać, w jakich obiektach widzi Pan największe zastosowanie takiej funkcji?
  14. W wersji 47 InsERT nexo przebudowana została galeria zdjęć obiektów. W asortymencie na zakładce "Galeria" pojawiła się nowa kontrolka do zarządzania zdjęciami, która umożliwia łączenie asortymentu nie tylko z nowymi zdjęciami dodawanymi z dysku, ale też ze zdjęciami istniejącymi już w galerii. Pozwala ona też w łatwy sposób, za pomocą drag and drop, ustalać kolejność zdjęć. W module "Asortyment" dodaliśmy także możliwą do wyboru nową kolumnę "Zdjęcie domyślne". Kolumna ta prezentuje miniaturę głównego zdjęcia obiektu. W wersji 47 pojawił się także nowy serwis o nazwie "Galeria zdjęć". Prezentowane są w nim wszystkie zdjęcia znajdujące się w systemie nexo. Można je przeglądać w dwóch dostępnych widokach, listy zdjęć oraz galerii zdjęć. Po zainstalowaniu wersji 47.0.0 w serwisie "Galeria zdjęć" oraz w kolumnie "Zdjęcie główne" może pojawić się informacja o braku miniatury zdjęcia. Oznacza to, że nie wykonano jeszcze operacji "Porządkuj galerię" dostępnej w menu "Operacje" w serwisie "Galeria zdjęć". Operacja ta, poza utworzeniem miniatury zdjęcia, generuje też specjalny hash zdjęcia potrzebny do wykrywania duplikatów zdjęć znajdujących się w galerii. Po wykonaniu tej operacji można skorzystać z kreatora usuwania duplikatów także dostępnego w serwisie galerii. Po uporządkowaniu galerii, przy próbie dodania nowego zdjęcia, które już znajduje się w galerii, program wyświetli odpowiedni komunikat.
  15. W wyniku analizy przesłanych przez Pana raportów, wykryliśmy pewien problem. Jego poprawa planowana jest na najbliższą wersję, czyli 47.0.0.
  16. W celu zdiagnozowania tego problemu będę Pana prosił o wykonanie jeszcze co najmniej jednego zapytania na bazie danych. Treść zapytania wyślę zaraz w wiadomości prywatnej.
  17. Dziękuje za zgłoszone sugestie. Postaramy się je uwzględnić w kolejnych wersjach nexo. Przy czym zamiast wystawiania sum kontrolnych raczej pójdziemy w kierunku stworzenia metody pozwalającej sprawdzić, czy dane zdjęcie istnieje w galerii. Rzeczywiście taki błąd może wystąpić, gdyż w trakcie iterowania po kolekcji nie można do niej dodawać, ani z niej usuwać elementów. Można to rozwiązać tak jak Pan napisał lub w pętli foreach po metodzie PobierzZdjecia wywołać ToList lub ToArray, co spowoduje przepisanie elementów do nowej kolekcji.
  18. W pomocy do sfery znajduje się artykuł opisujący sposób odczytu i zapisu pól własnych zaawansowanych.
  19. Proszę najechać wskaźnikiem myszy na wskazany tekst, wcisnąć i przytrzymać przez ok. 2 sekundy lewy przycisk myszy.
  20. Rzeczywiście w momencie reakcji na zdarzenie zmiany właściwości Podmiot, metody ustawiające nabywcę i odbiorcę nie działają najlepiej. Można jednak zareagować na zmianę innej właściwości - PodmiotWybrany. Wówczas osiągnie Pan spodziewany efekt. if (kontekst.RodzajZmiany == RodzajZmianyWartosci.PrzypisanieNowejWartosci && kontekst.SposobEdycji == SposobEdycji.Okno && kontekst.NazwaWlasciwosci == "PodmiotWybrany") { if (kontekst.ObiektBiznesowy.Dane.Odbiorca == null && kontekst.ObiektBiznesowy.Dane.PodmiotWybrany != null && kontekst.ObiektBiznesowy.Dane.PodmiotWybrany.PodmiotDlaKtoregoHistoria != null) { var podmiotId = kontekst.ObiektBiznesowy.Dane.PodmiotWybrany.PodmiotDlaKtoregoHistoria.Id; kontekst.ObiektBiznesowy.PodmiotyDokumentu.SprobujUstawicNabywceWedlugId(podmiotId); kontekst.ObiektBiznesowy.PodmiotyDokumentu.SprobujUstawicOdbiorceWedlugId(podmiotId); } }
×
×
  • Dodaj nową pozycję...