XAML Editor


Potrebná verzia ERPIO App – 3.15 alebo novšia

Je možné vytvoriť vlastný editor pomocou zápisu XAML-u

Vytvára sa rovnako ako akcia typu Edit, navyše sa v záložke MetaData prídáva hodnota LTWDAction s názvom LoadFromXaml, kde to Value sa dáva príslušný XAML kód.

Príklad:

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
    xmlns:views="clr-namespace:E1C.Views;assembly=E1C"
xmlns:app="clr-namespace:E1C"
xmlns:resources="clr-namespace:E1C.Resx"
             x:Class="E1C.Pages.EditPageCustom">
    <ContentView.Content>
        <Grid RowSpacing="10">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="1"/>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="1"/>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <!-- prvy riadok -->
            <Label x:Name="lPrihlaseny" Grid.Column="0" Grid.Row="0" />
            <Label x:Name="ePrihlaseny" Grid.Column="1" Grid.Row="0" />

            <!-- ciara za riadkom -->
            <BoxView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" BackgroundColor="Silver" HeightRequest="1" VerticalOptions="End"  HorizontalOptions="FillAndExpand"/>

            <!-- druhy riadok -->
            <Label x:Name="lMnozstvo" Grid.Column="0" Grid.Row="2" />
            <Label x:Name="lMJ" Grid.Column="1" Grid.Row="2" />
            <!-- treti riadok -->
            <views:EditNumericUpDownButtons x:Name="eMnozstvo" Grid.Column="0" Grid.Row="3" ></views:EditNumericUpDownButtons>
            <views:EditSetView x:Name="eMJ" Grid.Column="1" Grid.Row="3" ></views:EditSetView>
            <!-- kvoli moznosti prace s hodnotou parametra musit existovat toto Entry, ale kedze ho nechcem zobrazit, tak je nastavene na IsVisible = False -->
            <views:EditEntry IsVisible="False" x:Name="eMJNazov" ></views:EditEntry>

            <!-- ciara za riadkom -->
            <BoxView Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" BackgroundColor="Silver" HeightRequest="1" VerticalOptions="End"  HorizontalOptions="FillAndExpand"/>

            <!-- stvrty riadok -->
            <Label x:Name="lDatum" Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="2" />
            <views:EditDateTimeView x:Name="eDatum" Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="2"></views:EditDateTimeView>
        </Grid>
    </ContentView.Content>
</ContentView>

Štandardné prvky XAML-u je možné použiť na grafickú úpravu zobrazeného editora. Na prácu s hodnotami parametrov je potrebné použiť predpripravené typy polí v ERPIO App v namespace E1C.Views (pozri spôsob použitia v príklade), ktoré reagujú na nastavenia parametrov:

  • EditEntry – v štandardnom editore Input type cText – jednoriadkové textové pole
  • EditEditor – v štandardnom editore Input type cText – viacriadkové textové pole
  • EditDateTimeView- v štandardnom editore Input type cDate alebo cDateTime – podľa nastavenia parametra buď pole s možnosťou výberu dátumu alebo dátum a času
  • EditBarCode
  • EditFileView
  • EditGPSView
  • EditCheckBox
  • EditNumericUpDownButtons
  • EditSetView

Napĺňanie hodnôt

Predpokladá sa, že názvy parametrov začínajú “@” prípadne iným jednoznakovým prefixom, ktorý sa pri spracovaní odstraňuje. Hodnoty z parametrov je možné používať pomocou prefixov:

  • “e” – hodnota parametra
  • “l” – popisok parametra

Tieto hodnoty sa získavajú použitím e[NazovParametraBezPrefixu] alebo l[NazovParametraBezPrefixu] v XAML, napr. lMnozstvo je nahradene popiskom z parametra nazvaneho @Mnozstvo.