U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Bundelinstellingen van het type “Lijst”

0000002759     -      04-10-2018

Mercator maakt het opzetten van bundles van het type “Lijst” (ListView) mogelijk voor MercatorPenguin. Deze instelling kan verschillende stappen bevatten. Hierdoor kan de gebruiker bijvoorbeeld de details van een record uit de vorige stap verkrijgen. Dit type bundel kan 9 stappen bevatten. Elke stap genereert een lijstweergave.

 

Eerste stappen

In de eerste stap moet de instelling drie elementen bevatten:

  • 1. De XAML-definitie van het formulier voor de selectie van de zoekparameters. Dit formulier wordt bovenaan het scherm weergegeven.
  • 2. Een SQL-query die de parameters gebruikt die in het bovenstaande formulier werden ingegeven.
  • 3. De XAML-definitie van een cel in de ListView die onderaan het formulier wordt weergegeven.

 

1. XAML Opzoeking

Dit veld moet een geldige XAML-code bevatten. Containers en controls die aangeboden worden door Xamarin Forms kunnen vrij gebruikt worden.

Het zoekveld moet een van volgende types zijn:

  • m:SearchEntry: Invoer (tekstvak met één regel) voor de associatie met een SQL-parameter
  • m:SearchDatePicker: idem voor de DatePicker (datum selectie)
  • m:SearchSwitch: idem voor een Switch (True/False)
  • m:SearchPicker: idem voor een picker (equivalent van een dropdown)

Voor alle gebieden hierboven moet de property SqlParam vervolledigd worden met de naam van de SQL-parameter die gebruikt zal worden in de query in stap 2.

De XAML code moet ook één, en slechts één knop van het type m:SearchButton bevatten, de SearchButton die de zoekopdracht activeert.

Speciaal geval: indien de zoekopdracht geen parameters gebruikt (geen SearchEntry, SearchDatePicker,..) kunnen we een onzichtbare SearchButton gebruiken. In dit geval moet de opzoeking direct uitgevoerd worden door MercatorPenguin, zonder tussenkomst van de gebruiker. De XAML-code moet dus als volgt zijn:

<m:SearchButton IsVisible="False" />

 

In dit gebied is het mogelijk om te verwijzen naar een SearchDatesHelper. Net als in Mercator kan u met dit object één enkele datum of een bereik selecteren (gisteren, week, huidige maand,…). Deze controle bevat twee eigenschappen: SqlParamDate1 en SqlParamDate2, waarvan

  • beide ingevuld worden met de naam van de SQL-parameter waarop ze betrekking hebben. In dit geval kan een datumbereik gebruikt worden.
  • Alleen SqlParamDate1 ingevuld is, in dit geval kunt u één datum invoeren.

Voorbeeld van gebruik:

<m:SearchDatesHelper SqlParamDate1="@date_1" SqlParamDate2="@date_2" HorizontalOptions="Center" BackgroundColor="Orange" />

 

Het is ook mogelijk om te verwijzen naar een SearchScanButton. Hiermee kunt u uw mobiele camera gebruiken als barcodelezer. Deze knop moet aan een SearchEntry gekoppeld zijn om het resultaat van de scan weer te geven. Dit wordt gedaan via de property SqlParamKey.

Voorbeeld:

<m:SearchScanButton SqlParamKey="@key" />

 

Betreffende SearchPickers: deze control heeft de bijzonderheid dat een lijst met elementen vereist is. Deze lijst kan gedefinieerd worden in de XAML-code of via Mercator.

Voorbeeld van een lijst in XAML-code:

<m:SearchPicker BackgroundColor="White" TextColor="Black" SqlParam="@n" HorizontalOptions="FillAndExpand">
  <Picker.ItemsSource>
    <x:Array Type="{x:Type x:String}">
      <x:String>1</x:String>
      <x:String>2</x:String>
      <x:String>3</x:String>
    </x:Array>
  </Picker.ItemsSource>
</m:SearchPicker>

 

Voorbeeld waarbij een lijst dynamisch gegenereerd wordt door Mercator.

<m:SearchPicker MercatorItemsSource="Exercices" SqlParam="@num_ex" 
BackgroundColor="White" TextColor="Black" HorizontalOptions="FillAndExpand" />

La propriété MercatorItemsSource peut contenir une de ces valeurs :

  • Exercices: de boekjaren van de boekhouding (visible = Lib, valeur = num tinyint)
  • Periodes: de periodes van de boekhouding (visible = Lib + Lib exercice, valeur = num char(6))
  • Magasins: de depots (visible = Nom, valeur = Id char(10))
  • Reps: de vertegenwoordigers (visible = Nom, valeur = Id char(10))
  • AnaPlans: analytische plannen (visible = Libellé, valeur = numéro du plan tinyint)
  • Rayons: de rayons (visible = Nom, valeur = Id char(10))
  • Familles: de families (visible = Nom, valeur = Id char(10))
  • SsFamilles: de subfamilies  (visible = Nom, valeur = Id char(10))
  • Users: de gebruikers  (visible = Nom, valeur = Id char(10)).

De lijsten worden tijdens het lezen van de bundels in de mobiele telefoon geïmporteerd. Om de nieuwste versie van deze lijsten te verkrijgen, trek je de lijst naar beneden (=PULL DOWN)

Il est également possible de fixer l'élément à afficher par défaut.

 

2. Requête SQL

Dit veld wordt gebruikt om een SQL-query of script bij te houden. De query kan slechts één tabel retourneren. Men moet ervoor zorgen dat de hoeveelheid gegevens die teruggestuurd worden niet te groot is. (Zowel het aantal rijen, als aantal kolommen.)

Zoals vermeld in punt 3, zou deze query een string moeten retourneren. Dit zorgt voor de weergave die uitgevoerd zal worden in punt 3. Vermijd in de applicatie ToString() op de weer te geven gegevens.

Opmerking: om een correct geformatteerd nummer weer te geven, kunnen we dit gebruiken in de SQL-query

ltrim(dbo.transform(g_solde,'999 999 999.99')) as solde

 

De SQL-query moet de SQL-parameters gebruiken die door het formulier zijn doorgegeven (punt 1).

Bovendien wordt de parameter @ID_USER(char10), met hierin het id van de gebruiker, altijd meegegeven aan de query.

De eerste kolom die teruggestuurd wordt, wordt beschouwd als de titel van het record. Deze titel wordt in de volgende stap weergegeven.

 

3. XAML ListViewCell

Dit veld moet geldige XAML-code bevatten. Het moet de inhoud van een enkele cel van de ListView definiëren die door MercatorPenguin zal worden weergegeven. In dit gebied kunnen alle properties van de controls automatisch worden overschreven door de inhoud van de query uit de vorige stap. Hiervoor moet u een @ tussen aanhalingstekens plaatsen, gevolgd door de kolomnaam in HOOFDLETTERS.

Bijvoorbeeld, de property Text:

<Label Text="@S_CLE1" Font="Small" />

 

Afgezien van de standaard controls van Xamarin Forms, is het ook mogelijk om controls van MercatorPenguin te gebruiken.

  PhoneButton

Deze knop laat toe om een telefoonnummer op te bellen vanop je mobiel. De eigenschap tekst wordt gebruikt. Niet strikt numerieke tekens worden genegeerd. Het +-teken wordt automatisch vervangen door 00.

<m:PhoneButton Text="@C_NUM_TEL" Font="Small" />

 

 EmailButton

Deze knop wordt gebruikt om een email te starten via de standaard mailapplicatie. De ontvanger van de inhoud is de tekst-property van het besturingselement. Deze knop is enkel actief indien deze een geldig emailadres bevat.

<m:EmailButton Text="@C_EMAIL" Font="Small" />

 

 MapButton

Deze knop laat toe om de standaard kaarttoepassing op te starten, waarbij het adres uit de property Address wordt weergegeven op de kaart. Dit adres moet zo volledig mogelijk zijn om de geolocatie mogelijk te maken. In de SQL-query zullen we dit als volgt aangeven: rtrim(rtrim(c_adresse)+' '+rtrim(c_adresse2)+' '+rtrim(c_codep) + ' ' + rtrim(c_ville)+ ' '+rtrim(c_pays)) as adresse

<m:MapButton Address="@ADRESSE" Font="Small" />

 

 FileButton

Deze knop wordt gebruikt om een PDF-bestand te bekijken dat is opgeslagen in de Mercator SQL-database. Dit maakt het mogelijk om PDF-bestanden weer te geven uit het commercieel beheer of bestanden die aan een informatiebestand gekoppeld zijn. De property File van de knop moet het pad naar het bestand bevatten. (bijvoorbeeld: <repdata\dir\monfichier.pdf).< p=""> </repdata\dir\monfichier.pdf).<>

<m:FileButton Text="@LIB" File="@PDF" Font="Small" />

 

Het is ook mogelijk om afbeeldingen uit de Mercator-database weer te geven.


Stap 2 en volgende

In deze stappen moet de configuratie 2 elementen bevatten:

  • 1. Een SQL-query die als SQL-Parameter de waarden gebruikt van een record dat eerder geselecteerd werd.
  • 2. De XAML definitie van een cel die in de ListView wordt weergegeven.

 

1. SQL-query

De query is opgebouwd volgens de zelfde principes uit stap 1. Het enige verschil is dat de SQL-parameters waarmee men rekening moet houden overeenkomen met de kolomnamen die geretourneerd worden door de Query die in de vorige stap gedefinieerd werd..

Het is niet mogelijk om te beschikken over SQL-parameters die overeenkomen met een parameter uit een zoekformulier, of een eerdere stap. Indien nodig moet er een SQL-parameter uit een vorige stap toegevoegd worden aan de SQL-query, waarvan de naam gelijk is aan een kolom uit de SELECT. Zodat men over de gewenste informatie kan beschikken.

Bijvoorbeeld om de aanvankelijk ingevoerde datums te kennen:

select ... @date_1 as date_1,@date_2 as date_2

 

2. XAML ListViewCell

Dit gebied moet geldige XAML-code bevatten, die precies is samengesteld zoals in punt 3 van stap 1. De waarden die moeten worden opgegeven in de properties moeten tussen aanhalingstekens geplaatst worden. Voorafgegaan door een @-teken, dat gevolgd wordt door de kolomnaam in hoofdletters, de kolomnaam moet overeenkomen met een veld dat geretourneerd werd door de SQL-query in stap 1.

 


 

Enkele voorbeelden :