Skocz do zawartości

Wzorzec wydruku - widoczność pól

Polecane posty

Stimulsoft pozwala na ukrycie poszczególnych elementów. Warunki można definiować na poziomie poszczególnych kontrolek, paneli, grup (ang. "band") lub całych stron. Na wzorcu wydruku ZK istnieje warunek nałożony na całą stronę, który ukrywa ją, gdy we wzorcu wydruku wyłączono parametr "Pokaż materiały".

59b1aca1be3e5_ZKstandard.thumb.png.384f51f6314c2e3838ca84738b2b838b.png

 

Jednak przykład, który Pan podał obsługiwany jest nieco inaczej. Stimulsoft nie drukuje grupy prezentującej dane ("Data band") oraz skojarzonego z nią nagłówka ("Header band") oraz stopki ("Footer band"), gdy podłączone pod grupę źródło danych jest puste. To dlatego tabela z materiałami drukowana jest jedynie wtedy, gdy na ZK są materiały.

Link to postu
  • 6 lat później...

To ja się podepnę pod wątek, bo dotyczy tematu, ale innego obiektu.

 

Proszę o podpowiedź jak poprawnie korzystać z warunków w polu Expression dla obiektu Conditions w Stimulsoft Designer.

 

Poniższa formuła nie działa, to znaczy nie wpływa na drukowanie obiektu, ale też nie zwraca żadnego błędu przy generowaniu wydruku:

 

Dokument.Pozycje.AsortymentWybrany.Nazwa.StartsWith("węgiel")

image.png.8d6d4934089a602ca13b3efe91bd4268.png

 

Oczywiście można tutaj zastosować drugą metodę, jak poniżej, ale uparłem się na pierwszym i nie potrafię przebrnąć dalej.

 

image.png.6c6abd1609a011917725b927a33fa6bf.png

Link to postu

Pierwsza metoda, którą Pan przedstawił będzie uwzględniać pierwszy element z kolekcji Pozycje. Oznacza to, że zwróci prawdę, jeżeli pierwsza pozycja będzie zaczynać się od ciągu znaków "węgiel" (resztę pozycji pominie). 


Druga w zasadzie zachowa się podobnie.


I tutaj wyjątek: Powyższe Warunki będą działać, jeżeli zostaną utworzone w grupie "Data band", którego źródłem jest: "Dokument.Pozycje".


Żeby warunek działał także poza tą grupą, należałoby przeszukać całą kolekcję Pozycje i w każdym elemencie sprawdzić, czy dane pole zawiera ciąg znaków. Można to osiągnąć dodając metodę w sekcji Code i wywołać ją w polu Expression dla warunku (Condition). 


Poniżej przykładowa metoda:

public bool CzyKtorasPozycjaZaczynaSieOd(string szukanyCiag)
{
  bool zaczynaSieOdSzukanego = false;

  Dokument.Pozycje.Connect();
  Dokument.Pozycje.First();
  while (!Dokument.Pozycje.IsEof && !zaczynaSieOdSzukanego)
  {
    zaczynaSieOdSzukanego = Dokument.Pozycje.AsortymentWybrany.Nazwa.StartsWith(szukanyCiag);
    Dokument.Pozycje.Next();
  }
  return zaczynaSieOdSzukanego;
}

I wywołanie w polu Expession:

CzyKtorasPozycjaZaczynaSieOd("węgiel")
  • Dziękuję 1
Link to postu
×
×
  • Dodaj nową pozycję...