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 bestanden

0000002984     -      12-08-2021

Mercator 10.8 of hoger kan meervoudige categorieën op bestanden beheren. Dit is een uitbreiding van de vervolgkeuzelijsten (drop down) voor categorieën waarmee u meerdere items kunt selecteren.

cat_combo_nl        multi_cat_list_nl

Zoals bij vervolgkeuzelijsten, komen de items uit de categorieën die zijn gedefinieerd in "Tools / Parameters / Categorieën".

Om deze functionaliteit te installeren, moet u er eerst voor zorgen dat deze Mercator in de laatste beschikbare versie is. U moet dan één of meer veld (en) van het type varchar(max) toevoegen in de basistabel van het bestand (CLI, FOU, STOCK, ...). Om herkend te worden, moet de naam van dit nieuwe veld als volgt worden ingesteld:

  • de eerste letter van dit bestand (signaletiek)
  • "_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 de volgende opstart, zal Mercator automatisch een tabel aanmaken waarmee u geïndexeerde zoekopdrachten kunt uitvoeren op basis van de waarden die in deze lijsten zijn aangevinkt:

  • CAT_STCK_MULTI
  • CAT_CLI_MULTI
  • ...

Deze tabellen mogen nooit handmatig worden gemaakt. Evenzo wordt hun inhoud automatisch beheerd door een trigger die de wijzigingen weerspiegelt die zijn aangebracht in de varchar(max) -velden.

Via de configuratie van het scherm van het informatiebestand dient de ComboBox vervangen te worden door een ListBox waaraan de corresponderende bron moet worden gekoppeld (bijv .: C_CAT2_MULTI)

Tijdens een filtering zal worden opgemerkt dat Mercator deze tabellen gebruikt om zijn zoekopdrachten te optimaliseren. In andere aangepaste zoekopdrachten wordt aanbevolen om dezelfde soort benadering te gebruiken in plaats van% ...% in de kolom varchar (max):

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

Wanneer de signaletiek zich in de filtermodus bevindt, worden deze elementen toegevoegd aan het contextmenu:

cat_combo_filtrer_nl

Ze laten je toe om te kiezen hoe de verschillende aangevinkte criteria gecombineerd moeten worden:

  • En: we zoeken naar de bestanden waarin alle criteria die in de filter zijn gekozen, worden gecontroleerd
  • Ofwel: we zoeken naar de bestanden waarin minimaal één van de geselecteerde criteria is aangevinkt.

Opmerkingen

  • Wat betreft de databasestructuur is er geen conflict tussen de vervolgkeuzelijst voor categorieën (bijvoorbeeld S_CAT1) en de bijbehorende lijst (S_CAT1_MULTI). Het zijn inderdaad verschillende velden die hoogstens een lijst van selecteerbare elementen gemeen hebben. Voor de duidelijkheid over de gegevens is het echter waarschijnlijk handig, zo niet nodig, om de vervolgkeuzelijst te verwijderen als de lijst wordt aangeboden.
  • Deze informatie wordt niet in aanmerking genomen als categorieën voor terugroepacties of "Tools / Kortingen" -informatie.

Bij het importeren per bestand (Excel, XML, ...), is het mogelijk om de inhoud van de hierboven beschreven varchar(max) velden te importeren. Om dit te doen, moet u een waarde samenstellen die de aaneenschakeling is van de categorie-ID's gescheiden door een pipe |.

Bijvoorbeeld: C0NB0MU7X8|D0NB0MU7X9|6623EA6D78|8CF37D03D7


Hieronder vindt u de query waarmee u de lijst met categorieën standaard kunt initialiseren met de waarde van de categorie die is geselecteerd in de vervolgkeuzelijst. Dit moet worden uitgevoerd 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 tafel aan (bijvoorbeeld: CLI, STOCK)
  • yyy geeft de tabel aan (bijvoorbeeld: CLI; uitzondering voor de STOCK-tabel: STCK)
  • x geeft de letter aan die de tabel vertegenwoordigt (bijvoorbeeld: c, s)
  • n geeft het categorienummer aan (bijvoorbeeld: 2).