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

Beheer van meervoudige categorie├źn in informatiebestanden

0000002984     -      10-12-2021

Met Mercator 10.8 of hoger kan u meervoudige categorieën op de informatiebestanden beheren. Dit is een uitbreiding van de dropdowns waardoor u nu meerdere elementen kan selecteren.

cat_combo_nl        multi_cat_list_nl

Zoals bij de dropdowns kunnen de categorieën aangepast worden via 'Tools > Setup > Categorieën'.

Om deze functionaliteit te installeren moet u ervoor zorgen dat Mercator in de laatste beschikbare versie zit. U moet dan één of meer veld(en) van het type varchar(max) toevoegen in de tabel van het informatiebestand (CLI, FOU, STOCK, ...). De naam van dit nieuwe veld moet het volgende zijn :

  • de eerste letter van het informatiebestand
  • "_CAT"
  • het categorienummer
  • "_MULTI"

Bijvoorbeeld S_CAT1_MULTI, C_CAT2_MULTI, ...

alter table STOCK add S_CAT1_MULTI varchar(max) not null default ''

alter table CLI add C_CAT2_MULTI varchar(max) not null default ''

Bij het herstarten zal Mercator automatisch een tabel aanmaken waarmee u geïndexeerde zoekopdrachten kan uitvoeren op basis van de waarden die in deze lijsten zijn aangevinkt :

  • CAT_STCK_MULTI
  • CAT_CLI_MULTI
  • ...

Deze tabellen mogen nooit handmatig aangemaakt worden. Hun inhoud wordt automatisch beheerd door een trigger die de wijzigingen kopieert van de varchar(max) -velden.

De ComboBox in het informatiebestand dient vervangen te worden door een ListBox met daaraan het overeenkomend veld (bijv .: C_CAT2_MULTI)

Bij het filteren kan opgemerkt worden dat Mercator deze tabellen gebruikt om het zoeken te optimaliseren. In aangepaste zoekopdrachten wordt aanbevolen om dezelfde wijze te gebruiken. Bv. in plaats van %...% in de varchar(max) kolom:

where ... and exists(select * from CAT_STCK_MULTI where (id_sig=stock.s_id) and (type=1) and (id_cat='C0NB0MU7X8'))

Wanneer het informatiebestand zich in filtermodus bevindt, worden volgende elementen toegevoegd aan het contextmenu :

cat_combo_filtrer_nl

Deze extra items laten ons toe om te kiezen hoe de aangevinkte velden gecombineerd moeten worden:

  • En: we zoeken naar de fiches waarin alle velden gelijk zijn aan de filter
  • Of: we zoeken naar de fiches waarin minimaal één van de geselecteerde velden is aangevinkt.

Opmerkingen

  • Wat betreft de databasestructuur is er geen conflict tussen de dropdown voor categorieën (bijvoorbeeld S_CAT1) en de lijst (S_CAT1_MULTI). Het zijn verschillende velden die hoogstens een lijst van selecteerbare elementen gemeen hebben. De dropdown verwijderen bij de installatie van de lijst kan handig zijn maar is niet nodig.
  • Deze informatie wordt niet in aanmerking genomen bij categorieën voor acties of bij "Tools > Kortingen". 

Import

Bij het importeren met een bestand (Excel, XML, ...) is het mogelijk om de varchar(max) velden te importeren. Om dit te doen moet u de verschillende categorie-ID's in dezelfde kolom zetten maar scheiden door een pipe |.

Bijvoorbeeld: C0NB0MU7X8|D0NB0MU7X9|6623EA6D78|8CF37D03D7

Sinds versie 10.10 is het ook mogelijk om deze gegevens te importeren door de omschrijvingen van categorieën samen te stellen, gescheiden door een pipe |. In dat geval moet de naam van de kolom CAT1_MULTI, CAT2_MULTI, ... zijn (zonder S_, C_, ...). Bij een grote import is dit type echter niet toegestaan.

Bijvoorbeeld: Accessoires|Widgets|Eindproducten|Halffabrikaten


Initialisatie

Hieronder vindt u de query waarmee u de waardes in de lijst met categorieën kan overnemen uit de categorieën in de dropdowns. Dit moet uitgevoerd worden na volledige installatie en herstart van Mercator.

update zzz set x_catn_multi = CAT_yyy.ID
	from zzz
	inner join CAT_yyy on (CAT_yyy.nom = zzz.x_catn) and (CAT_yyy.type = n)
of :
  • zzz geeft de tabel aan (bijvoorbeeld: CLI, STOCK)
  • yyy geeft de tabel aan (bijvoorbeeld: CLI; uitzondering voor de STOCK-tabel: STCK)
  • x geeft de letter aan van de tabel (bijvoorbeeld: c, s)
  • n geeft het categorienummer aan (bijvoorbeeld: 2).

In MercatorPenguin

Meerdere categorieën kunnen ook gebruikt worden in de MercatorPenguin informatiebestanden (minimale versie = 2.9.9). Hiervoor moet je een EditMultiPicker gebruiken.

<m:EditMultiPicker Source="s_cat1_multi" Placeholder="Cat. 1" Margin="25,0,25,0" HorizontalOptions="FillAndExpand" />

In het scherm verschijnt het als een lijst met  de geselecteerde categorieën, gescheiden door een verticale balk.

EditMultiPicker_n

De selectie van categorieën wordt gemaakt door de bovenstaande lijst te gebruiken. Dit levert de weergave van dit dialoogvenster op, waarin de gewenste categorieën kunnen geselecteerd worden :

EditMultiPicker_nl

De EditMultiPicker bevat de optionele eigenschap DialogText waarmee u de titel van dit dialoogvenster kunt bepalen. Standaard is deze titel de PlaceHolder, als deze gedefinieerd is in Source.