Mamut Maniek 114 Napisano 10 Listopada 2014 Udostępnij Napisano 10 Listopada 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki W edytorze wydruków do mojej listy magazynowej dodałem sobie kolumnę tabeli do której przypisałem taki kod: private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { String a = xtraReport1.GetCurrentColumnValue("Paczka_Notatki").ToString(); a = a.Replace(". wiadomość od klienta:", ":"); xrTableCell3.Text = a; } wypisuje on notatki przypisane do drukowanej paczki Idziemy dalej. Tutaj przykład pewnej paczki z notatką która jest niepotrzebnie zdublowana dwa razy. Jak widać do paczki mam notatkę, która składa się z trzech linijek tego samego tekstu. Ktoś wypełnił 3 razy formularz dostawy allegro i dlatego sello wypisało to 3 razy. Da się to wyłączyć, żeby na mojej liście magazynowej pokazało TYLKO tą notatkę z formularza dostawy allegro którego status jest "Zakończony" a wszystkie notatki z formularzy których status jest "Anulowana" zostały zignorowane/ukryte. Może da się odnieść do takiej notatki która mnie interesuje? Druga metoda to dopisać w kodzie zaprezentowanym powyżej jakaś funkcję, która usunie zduplikowane notatki. Ja już jak widzicie dodałem kod który usuwa z notatki taki tekst " wiadomość od klienta:". Troszkę to uszczupla notatkę ale to nie jest do końca to chcę osiągnąć. Ktoś ma jakiś pomysł? Dodam, że w znalazłem taki kod na internecie który mógłby tutaj pomóc lecz mi nie działa (wywala dużo błędów) foreach (var message in Regex.Split(str, @"\d+\. message: ") .GroupBy(m => m) .Where(m => m.Count() == 1 && m.Key != string.Empty) .Select(m => new { message = m.Key })) { Console.WriteLine(message.message); } tutaj przyklad jak to dziala w C# http://ideone.com/KfbXwL Cytuj Link to postu
Bartosz Rosa 1 775 Napisano 12 Listopada 2014 Udostępnij Napisano 12 Listopada 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Pierwszego rozwiązanie w chwili obecnej nie da się zastosować. Można to jedynie zrealizować poprzez odznaczenie ikonki wydruku przy tych niepotrzebnych notatkach. Wtedy do wydruku trafi tylko jedna. Powyższy kod nie będzie działać, ponieważ korzysta z technologii LINQ, która jest dostępne zdaje się dopiero w .NET Framework 3.5, wydruki w Sello korzystają z 2.0. Trzeba by to zrobić ręcznie, czyli najpierw funkcją Split podzielić notatkę na fragmenty i zapisać je np w liście stringów (lub w słowniku), potem pozbyć się duplikatów (http://stackoverflow.com/a/1335611/1038481) i na koniec wypisać zawartość pozostałej listy (słownika). Cytuj Link to postu
Mamut Maniek 114 Napisano 12 Listopada 2014 Autor Udostępnij Napisano 12 Listopada 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Dzięki za odpowiedź. Gdzieś w internecie ktoś dał mi takie wyrażenie regularne: \d{1,}\.\s wiadomość od klienta::\s(?<Message>[\D\s]+) które zapisywało by tekst następujący po wyrażeniu np: "1. wiadomość od klienta: " Pomógłbyś mi to teraz poskładać w działającą całość? Cytuj Link to postu
Bartosz Rosa 1 775 Napisano 12 Listopada 2014 Udostępnij Napisano 12 Listopada 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Nie mam przy sobie Sello ale machnąłem na szybko w samym C# kod, który powinien zrobić co trzeba. Zmienną text zainicjuj wartością tagu Paczka_Notatki tak jak w pierwszym poście - tu na potrzeby testu wpisałem przykładową zawartość notatek. Możesz na koniec usunąć też napis wiadomość od klienta: string text = "1. wiadomość od klienta: wiadomość taka sama\r\n2. wiadomość od klienta: wiadomość taka sama\r\n3. wiadomość od klienta: wiadomość inna\r\n4. notatka zupełnie inna\r\n"; string finalNote = ""; string[] notes = System.Text.RegularExpressions.Regex.Split(text, @"\d{1,}\.\s(?<Message>[\D\s]+)"); foreach (string note in notes) { if (!String.IsNullOrEmpty(note) && finalNote.IndexOf(note) == -1) finalNote += note; } Cytuj Link to postu
Mamut Maniek 114 Napisano 12 Listopada 2014 Autor Udostępnij Napisano 12 Listopada 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { String text = xtraReport1.GetCurrentColumnValue("Paczka_Notatki").ToString(); string finalNote = ""; string[] notes = System.Text.RegularExpressions.Regex.Split(text, @"\d{1,}\.\s(?<Message>[\D\s]+)"); foreach (string note in notes) { if (!String.IsNullOrEmpty(note) && finalNote.IndexOf(note) == -1) finalNote += note; } xrTableCell3.Text = finalNote; } Powiem Ci, że po wstępnych testach skrypt działa. Będe informować jak coś wyjdzie w praktyce Cytuj Link to postu
Mamut Maniek 114 Napisano 12 Listopada 2014 Autor Udostępnij Napisano 12 Listopada 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki poprawiłem to wyrażenie regularne na @"\d{1,}\.\swiadomość od klienta:(?<Message>[\D\s]+)" i teraz wyłapuje bez "wiadomość od klienta:" dzięki wielkie stary Mam jeszcze jedno zastrzeżenie. Wartość tagu Paczka_Notatki chyba zawiera znaki {ENTER} i nie są one interpretowane jako jakiś odstęp typu {SPACJA} albo {ENTER} tylko są tak jakby ignorowane. Jak można je zamienić w wydrukach na znak "spacji" ? Dodano: Ok już sobie poradziłem text = text.Replace("\r", " "); Cytuj Link to postu
Bartosz Rosa 1 775 Napisano 13 Listopada 2014 Udostępnij Napisano 13 Listopada 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki lepiej zrób \r\n - to jest windowsowy standard znaków nowej linii. \n obowiązuje w Unixach. Cytuj Link to postu
damianus21 1 Napisano 19 Grudnia 2014 Udostępnij Napisano 19 Grudnia 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Panowie, gdzie wkleić ten skrypt? Ja mam dodane NOTATKI KLIENTÓW w komórce xrTableCell w stopce grupy, nie jako kolumnę w tabeli. Dałem u mnie w scripts before print i nie działa. Gdzieś muszę popełniać błąd. Tylko gdzie? Cytuj Link to postu
Bartosz Rosa 1 775 Napisano 19 Grudnia 2014 Udostępnij Napisano 19 Grudnia 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki W obu przypadkach to jest xrTableCell. A co konkretnie nie działa? Nie wyświetlają się notatki w ogóle, pojawia się błąd jakiś? Bez skryptu notatki działają? Cytuj Link to postu
damianus21 1 Napisano 19 Grudnia 2014 Udostępnij Napisano 19 Grudnia 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Nie wyświetlają się notatki wcale. Natomiast bez skryptu wyświetlają się notatki powielone. Mam w xrTableCell wstawiony parametr [paczka_notatki]. Cytuj Link to postu
Mamut Maniek 114 Napisano 19 Grudnia 2014 Autor Udostępnij Napisano 19 Grudnia 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Nie wyświetlają się notatki wcale. Natomiast bez skryptu wyświetlają się notatki powielone. Mam w xrTableCell wstawiony parametr [paczka_notatki]. użyj opcji "Podgląd" w Edytorze wydruków (Projektant raportów) czy nie zwróci jakiegoś błędu. Jeśli zwróci to napisz go nam tutaj. Cytuj Link to postu
damianus21 1 Napisano 19 Grudnia 2014 Udostępnij Napisano 19 Grudnia 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Wyświetlają się normalnie notatki. Zarówno w podglądzie, jak i fizycznie na wydruku. Jednak cały czas są zduplikowane. Cytuj Link to postu
Mamut Maniek 114 Napisano 19 Grudnia 2014 Autor Udostępnij Napisano 19 Grudnia 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Pomóż nam pomóc sobie. Wrzuć jak najwięcej info. Jaki wpisałeś kod i gdzie. Wrzuć też screena. Cytuj Link to postu
damianus21 1 Napisano 19 Grudnia 2014 Udostępnij Napisano 19 Grudnia 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Ok. Już uzupełniam. Moja lista magazynowa: W komórce w Scripts -> Before Print Mam taki kod Cytuj Link to postu
Mamut Maniek 114 Napisano 19 Grudnia 2014 Autor Udostępnij Napisano 19 Grudnia 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki w kodzie linijka: xrTableCell3.Text = finalNote; wyświetli wynik w komórce o nazwie "xrTableCell3" a przecież ty takiej nie masz. To było podane dla przydkładu. Ty musisz tam wstawić nazwę swojej komórki. Nie wiem dokładnie jak to będzie się definiowało w kodzie ale bedzie na zasadzie: [Paczka_Notatki].Text = finalNote; Cytuj Link to postu
damianus21 1 Napisano 19 Grudnia 2014 Udostępnij Napisano 19 Grudnia 2014 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Kurcze. Od tego zmęczenia takiej prostej rzeczy nie zauważyłem. Teraz już działa. Dziękuję za pomoc. Cytuj Link to postu
trebor 0 Napisano 1 Kwietnia 2015 Udostępnij Napisano 1 Kwietnia 2015 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Witam Przy wklejeniu skryptu sello wywala błąd który załączam. Skrypt wklejony w before print private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { String text = xtraReport1.GetCurrentColumnValue("Paczka_Notatki").ToString(); string finalNote = ""; string[] notes = System.Text.RegularExpressions.Regex.Split(text, @"\d{1,}\.\s(?<Message>[\D\s]+)"); foreach (string note in notes) { if (!String.IsNullOrEmpty(note) && finalNote.IndexOf(note) == -1) finalNote += note; } [Paczka_Notatki].Text = finalNote; } Co można w tej kwestii zrobić? Rozumiem, że jedyne co jest potrzebne aby wydruk miał notatki od kupujących to wklejenie tego skryptu? Cytuj Link to postu
gawcio . 21 Napisano 1 Kwietnia 2015 Udostępnij Napisano 1 Kwietnia 2015 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Skrypt musisz wrzucać do właściwości elementu, który ma to wyświetlić, czyli np do tabeli. U mnie wygląda to tak: u siebie musisz zmienić wartość xrTableCell3 na tą do której chcesz żeby wstawiło notatkę po modyfikacjach kod: private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { String text = xtraReport1.GetCurrentColumnValue("Paczka_Notatki").ToString(); text = text.Replace("\r", " "); string finalNote = ""; string[] notes = System.Text.RegularExpressions.Regex.Split(text, @"\d{1,}\.\s(?<Message>[\D\s]+)"); foreach (string note in notes) { if (!String.IsNullOrEmpty(note) && finalNote.IndexOf(note) == -1) finalNote += note; } finalNote = finalNote.Replace("wiadomość od klienta:", ""); xrTableCell3.Text = finalNote; } Cytuj Link to postu
trebor 0 Napisano 1 Kwietnia 2015 Udostępnij Napisano 1 Kwietnia 2015 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Skrypt mam wpisany w before print, to odpowiednie miejsce czy wpisać go gdzieś indziej? Przyznam, że to dla mnie nowość i trochę opornie idzie Na podglądzie wydruku nie wywala błedów i notatki się pokazują, niestety na normalnym wydruku już nie. Załączam zdjęcia jak to u mnie wygląda. Powiedz mi jeszcze czy w skrypcie powinno być [Paczka_Notatki] czy xTableCell29 ? Cytuj Link to postu
PanBanBan Marcin 185 Napisano 1 Kwietnia 2015 Udostępnij Napisano 1 Kwietnia 2015 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Na podglądzie wydruku nie wywala błedów i notatki się pokazują, niestety na normalnym wydruku już nie. A czy na normalnym wydruku masz te notatki oznaczone "do wydruku"? Cytuj Link to postu
trebor 0 Napisano 1 Kwietnia 2015 Udostępnij Napisano 1 Kwietnia 2015 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Co masz dokładnie na myśli? Chodzi ci o ikonkę drukarki przy notatkach której ja nie mam? Cytuj Link to postu
PanBanBan Marcin 185 Napisano 1 Kwietnia 2015 Udostępnij Napisano 1 Kwietnia 2015 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Co masz dokładnie na myśli? Chodzi ci o ikonkę drukarki przy notatkach której ja nie mam? Tak. Jak wejdziesz w każdą notatkę to u góry po lewej masz dwie opcje: -wydruk -dokument Żeby notatka drukowała się na jakichkolwiek wydrukach to musi być w takiej notatce zaznaczony ptaszek na opcji "wydruk". Często się o tym zapomina, a bez tego notatka się nie wydrukuje, mimo iż we wzorcu wydruku wszystko jest prawidłowo. Cytuj Link to postu
trebor 0 Napisano 1 Kwietnia 2015 Udostępnij Napisano 1 Kwietnia 2015 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki A da się to ustawić żeby domyślnie było zaptaszkowane do wszystkich transkacji? Cytuj Link to postu
PanBanBan Marcin 185 Napisano 1 Kwietnia 2015 Udostępnij Napisano 1 Kwietnia 2015 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki A da się to ustawić żeby domyślnie było zaptaszkowane do wszystkich transkacji? W słownikach masz szablony notatek i dla szablonu notatki można to domyślnie zaznaczyć ale tutaj podałeś notatkę z adresem punktu odbioru i nie wiem jak te konkretne notatki działają bo wciąż mam starą wersję Sello Może ktoś inny pomoże. Cytuj Link to postu
trebor 0 Napisano 1 Kwietnia 2015 Udostępnij Napisano 1 Kwietnia 2015 w Notatka na liście magazynowej - jak usunąć zduplikowane notatki Niestety chodzi mi o to żeby drukowały się wszystkie notatki, które się pojawiają, te od klientów i te które tworzę sam. Jeśli ktoś wie jeśli to zrobić to proszę o informację. Dziękuje też za pomoc w kwestii samych ustawień. Cytuj Link to postu
Polecane posty
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.