Skip to main content
Skip table of contents

Dodawanie własnych atrybutów do protokołów (FastReport)

Dodawanie własnych atrybutów do protokołu zasobu

Aby dodać do protokołu zasobu samodzielnie zdefiniowane atrybuty, należy w wybranym protokole dodać sekcję oraz pola tekstowe, które będą odpowiadały za wyświetlanie szczegółów atrybutu.

image-20260331-125954.png

WAŻNE: Po dodaniu pola tekstowego należy zamienić go w placeholder, dodając klamry:
W tym przypadku, z Text43 na [Text43]

Następnie należy zaznaczyć nowo utworzoną sekcję oraz dodać do niej zdarzenie, za pomocą ikony błyskawicy po prawej stronie programu:

image-20260331-130438.png

Po kliknięciu program przeniesie nas do zakładki “Kod”. Konieczne jest wklejenie poniższego kodu do metody, która została utworzona.

C#
        DataSourceBase ds = Report.GetDataSource("Assets.AttributeValues");
        ds.Init();
        
        string NazwaZmiennej = null;
        
        while(ds.HasMoreRows)
        {
            var name = ds["Name"] as string;
            var v = ds["Value"] as string;
        
            if(name == "NazwaNaszegoAtrybutu" && !string.IsNullOrEmpty(v))
            {
                NazwaZmiennej = v;
            }
            ds.Next();
        }
        
        if(!string.IsNullOrEmpty(NazwaZmiennej))
          Text38.Text = NazwaZmiennej;

Docelowo, kod źródłowy powinien wyglądać następująco:

image-20260331-131254.png
  • Kolorem żółtym oznaczona jest nazwa zmiennej. Może ona być nazwana dowolnie, ważne natomiast jest, aby była ona identyczna we wszystkich oznaczonych miejscach.

  • Kolorem czarnym oznaczona jest nazwa metody powiązana z sekcją formularza (Data2)

  • "NazwaNaszegoAtrybutu" → nazwa musi być identyczna jak nazwa atrybutu w systemie

  • Text38.Text → nazwa musi odpowiadać placeholderowi z formularza ([Text43])

Koniecznym jest zapisanie protokołu:

image-20260331-131448.png

Aby dodać kolejne atrybuty do protokołu, trzeba dodać kolejne pola tekstowe, zmienne, warunki oraz zmodyfikować ich nazwy - analogicznie jak wyżej.

C#
//nowa zmienna
string zmienna = null;

//kolejny warunek
if(name == "Nazwa_Kolejnego_Atrybutu" && !string.IsNullOrEmpty(v))
{
    zmienna = v;
}

//przypisanie zawartości zmiennej do pola tekstowego/placeholdera
if(!string.IsNullOrEmpty(zmienna))
Nazwa_Kolejnego_Pola_Tekstowego.Text = zmienna;

image-20260331-132110.png

image-20260331-132152.png

Dodawanie własnych atrybutów do protokołu zgłoszenia

W celu dodania własnego atrybutu do protokołu zgłoszenia, należy przejść do szczegółów protokołu, dodać wybraną sekcję do strony, oraz pole tekstowe, które będzie odpowiadało za wyświetlanie szczegółów atrybutu:

image-20260331-122302.png

Uwaga: Pole tekstowe, które odpowiadać ma za wyświetlanie szczegółów atrybutu musi zostać zmodyfikowane w placeholder:
W tym przypadku Text51 na [Text51]

Następnie należy zaznaczyć nowo dodaną sekcję oraz dodać do niej zdarzenie za pomocą Ikony błyskawicy po prawej stronie Online Designera.

image-20260331-125506.png

Program przeniesie nas po kliknięciu w ikonę do zakładki “Kod”. W tej zakładce, do metody która została utworzona należy wkleić poniższy kod:

C#
			DataSourceBase ds = Report.GetDataSource("Issues.AttributeValues");
            ds.Init();

            string NazwaZmiennej = null;

            while(ds.HasMoreRows)
            {
                var name = ds["Name"] as string;
                var v = ds["Value"] as string;

                if(name == "Nazwa_Atrybutu" && !string.IsNullOrEmpty(v))
                {
                    NazwaZmiennej = v;
                }
                ds.Next();
            }

            if(!string.IsNullOrEmpty(NazwaZmiennej))
              Nazwa_Pola_Tekstowego.Text = NazwaZmiennej;

W kodzie należy podmienić dwie wartości:
"NazwaAtrybutu" oraz Nazwa_Pola_Tekstowego.Text

Docelowo, kod powinien wyglądać w następujący sposób:

image-20260331-123737.png

Oraz zapisać raport, przechodząc do zakładki “Raport” oraz “Zapisz”

image-20260331-123909.png

Aby dodać kolejne atrybuty do protokołu, trzeba zdublować dodać kolejną zmienną, warunek oraz przypisanie zawartości zmiennej do pola tekstowego w kodzie:

C#
//nowa zmienna
string zmienna = null;

//kolejny warunek
if(name == "Nazwa_Kolejnego_Atrybutu" && !string.IsNullOrEmpty(v))
{
    zmienna = v;
}

//przypisanie zawartości zmiennej do pola tekstowego/placeholdera
if(!string.IsNullOrEmpty(zmienna))
Nazwa_Kolejnego_Pola_Tekstowego.Text = zmienna;

Analogicznie jak wcześniej należy dodać kolejne pola tekstowe do protokołu oraz podmienić w kodzie nazwę atrybutu oraz pola tekstowego.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.