Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Tworzenie pliku tekstowego

Podsumowanie:

Akcja tworzenia pliku tekstowego umożliwia wygenerowanie pliku tekstowego o dowolnej strukturze na podstawie danych zwróconych przez zapytanie SQL oraz wartości zmiennych typu {@nazwa}. Akcja wymaga określenia szablonu generującego dane tekstowe z wykorzystaniem składni języka Razor (patrz opis w www.w3schools.com) oraz zapytania zwracającego dane źródłowe. Wygenerowany plik jest automatycznie zapisywany w folderze pobierania przeglądarki.

AdminSPA > NARZĘDZIA > Akcje > Tworzenie pliku tekstowego

Tworzenie pliku tekstowego
Tworzenie pliku tekstowego

Oprócz właściwości wspólnych dla wszystkich akcji, w akcji tworzenia pliku tekstowego należy określić następujące właściwości:

  • Format pliku: wpisz rozszerzenie nazwy pliku lub wybierz je z listy.
  • Szablon razor: okno edycji szablonu razor; w szablonie można używać danych zwracanych przez SQl poprzez odwołania do tablicy Model.SqlContext oraz wartosci z kontekstu formularza poprzez odwołania do tablicy Model.FormContext; w oknie szablonu jest dostępna asysta wprowadzania wyświetlana po wprowadzeniu znaku < z listą znaczników HTML.
  • SQL modelu danych: zapytanie SQL zwracające dane, które zostaną wyrenderowane w szablonie Razor jak plik tekstowy; zapytanie musi zwrócić dane w formacie JSON.

Przykład

Przykład akcji generującej plik XML na podstawie danych zwróconych przez zapytanie.

Zapytanie SQL:

SELECT UP.UserName,
JSON_QUERY(
    (SELECT Roles.Id, Roles.Name FROM [core].[Roles]
    JOIN [core].[UserProfileRoles] UR ON Roles.Id = UR.RoleId
    WHERE UR.UserProfileId = UP.Id
    FOR JSON AUTO)) AS Roles
FROM [core].[UserProfiles] UP 
FOR JSON AUTO, INCLUDE_NULL_VALUES

Wynik zapytania:

[
   {
      "UserName":"system",
      "Roles":null
   },
   {
      "UserName":"admin",
      "Roles":[
         {
            "Id":3,
            "Name":"Klient"
         }
      ]
   },
   {
      "UserName":"consultant",
      "Roles":[
         {
            "Id":2,
            "Name":"Konsultant"
         }
      ]
   },
   {
      "UserName":"jtester",
      "Roles":[
         {
            "Id":3,
            "Name":"Klient"
         },
         {
            "Id":6,
            "Name":"Kontrola jakości"
         }
      ]
   },
   {
      "UserName":"akajot",
      "Roles":[
         {
            "Id":3,
            "Name":"Klient"
         },
         {
            "Id":7,
            "Name":"Kierownik KJ"
         }
      ]
   },
   {
      "UserName":"stechniczny",
      "Roles":[
         {
            "Id":3,
            "Name":"Klient"
         },
         {
            "Id":8,
            "Name":"Pracownik DT"
         }
      ]
   },
   {
      "UserName":"rfinan",
      "Roles":[
         {
            "Id":3,
            "Name":"Klient"
         },
         {
            "Id":10,
            "Name":"Finanse"
         }
      ]
   },
   {
      "UserName":"msciprzy",
      "Roles":[
         {
            "Id":3,
            "Name":"Klient"
         },
         {
            "Id":11,
            "Name":"Pracownik"
         }
      ]
   },
   {
      "UserName":"teopol",
      "Roles":[
         {
            "Id":3,
            "Name":"Klient"
         },
         {
            "Id":11,
            "Name":"Pracownik"
         }
      ]
   },
   {
      "UserName":"euneu",
      "Roles":[
         {
            "Id":1,
            "Name":"Administrator"
         },
         {
            "Id":5,
            "Name":"Administrator użytkowników PublicAPI"
         },
         {
            "Id":11,
            "Name":"Pracownik"
         },
         {
            "Id":12,
            "Name":"Kierownik"
         }
      ]
   },
   {
      "UserName":"jenglish",
      "Roles":[
         {
            "Id":3,
            "Name":"Klient"
         },
         {
            "Id":6,
            "Name":"Kontrola jakości"
         }
      ]
   }
]

Szablon Razor:

<?xml version="1.0" encoding="UTF-8"?>

<document code="@Model.FormContext.Code"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<
xsi:noNamespaceSchemaLocation="usersroles.xsd">
    @if(Model.SqlContext != null)
    {
    <Users>
        @foreach(var user in Model.SqlContext)
        {
        <User>
            <Name>@user.UserName</Name>
            @if(user.Roles != null)
            {
            <Roles>
                @foreach(var role in user.Roles)
                {
                <Role>
                    <Id>@role.Id</Id>
                    <Name>@role.Name</Name>
                </Role>
                }
            </Roles>
            }
        </User>
        }
    </Users>
    }
</document>

Wynikowy plik XML:

<?xml version="1.0" encoding="UTF-8"?>
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="usersroles.xsd">
   <Users>
      <User>
         <Name>system</Name>
      </User>
      <User>
         <Name>admin</Name>
         <Roles>
            <Role>
               <Id>1</Id>
               <Name>Administrator</Name>
            </Role>
         </Roles>
      </User>
      <User>
         <Name>consultant</Name>
         <Roles>
            <Role>
               <Id>2</Id>
               <Name>Konsultant</Name>
            </Role>
         </Roles>
      </User>
      <User>
         <Name>jtester</Name>
         <Roles>
            <Role>
               <Id>3</Id>
               <Name>Klient</Name>
            </Role>
            <Role>
               <Id>6</Id>
               <Name>Kontrola jakości</Name>
            </Role>
         </Roles>
      </User>
      <User>
         <Name>akajot</Name>
         <Roles>
            <Role>
               <Id>3</Id>
               <Name>Klient</Name>
            </Role>
            <Role>
               <Id>7</Id>
               <Name>Kierownik KJ</Name>
            </Role>
         </Roles>
      </User>
      <User>
         <Name>stechniczny</Name>
         <Roles>
            <Role>
               <Id>3</Id>
               <Name>Klient</Name>
            </Role>
            <Role>
               <Id>8</Id>
               <Name>Pracownik DT</Name>
            </Role>
         </Roles>
      </User>
      <User>
         <Name>rfinan</Name>
         <Roles>
            <Role>
               <Id>3</Id>
               <Name>Klient</Name>
            </Role>
            <Role>
               <Id>10</Id>
               <Name>Finanse</Name>
            </Role>
         </Roles>
      </User>
      <User>
         <Name>msciprzy</Name>
         <Roles>
            <Role>
               <Id>3</Id>
               <Name>Klient</Name>
            </Role>
            <Role>
               <Id>11</Id>
               <Name>Pracownik</Name>
            </Role>
         </Roles>
      </User>
      <User>
         <Name>teopol</Name>
         <Roles>
            <Role>
               <Id>3</Id>
               <Name>Klient</Name>
            </Role>
            <Role>
               <Id>11</Id>
               <Name>Pracownik</Name>
            </Role>
         </Roles>
      </User>
      <User>
         <Name>euneu</Name>
         <Roles>
            <Role>
               <Id>1</Id>
               <Name>Administrator</Name>
            </Role>
            <Role>
               <Id>5</Id>
               <Name>Administrator użytkowników PublicAPI</Name>
            </Role>
            <Role>
               <Id>11</Id>
               <Name>Pracownik</Name>
            </Role>
            <Role>
               <Id>12</Id>
               <Name>Kierownik</Name>
            </Role>
         </Roles>
      </User>
      <User>
         <Name>jenglish</Name>
         <Roles>
            <Role>
               <Id>3</Id>
               <Name>Klient</Name>
            </Role>
            <Role>
               <Id>6</Id>
               <Name>Kontrola jakości</Name>
            </Role>
         </Roles>
      </User>
   </Users>
</document>
|← Generowanie elementów aplikacji |↑ Do góry |→ Otwieranie linku zewnętrznego |

Copyright © 2025 OPTEAM SA. Theme Copyright © 2017-2020 Patrick Marsceill. Distributed by an MIT license.