Fulltextové hledání - záložka Detail

Záložka zobrazí detailné informácie k aktuálnemu záznamu zo záložky Zoznam.

Položky zadávané ku každému záznamu sú štandardne rozdelené do subzáložiek podľa svojho významu:

Obsiahnuté subzáložky: Hlavné údaje Formuláre

Pokiaľ je v detaile agendy alebo číselníku len jedna aktívna subzáložka na výber, lišta s výberom subsáložiek sa nezobrazuje.

V hornej časti záložky Detail môže byť variantne zobrazený niektorý z Panelov definovateľných údajov detailu pre túto agendu. Zobrazenie panela definovateľných údajov detailu závisí od aktuálneho nastavenia v menu Nastavenie pre danú agendu a prihláseného užívateľa.

Subzáložka Hlavné údaje

V hornej časti subzáložky sú k dispozícii nasledujúce položky:

Názov Popis

Agenda

Agenda, pre ktorú bude fulltextové hľadanie vytvorené. Pri novej definícii agendu vyberiete zo skrytého zoznamu, pri už existujúcej definícii je položka neprístupná, teda nie je ju možné meniť. Ponúkajú sa pritom len tie agendy, pre ktoré doteraz nebolo fulltextové hľadanie nadefinované.
Trieda

Trieda Business objektu (BO), pre ktorý je dané pravidlo definované. Needitovateľná položka zobrazujúca sa len z informatívnych dôvodov.

Reťazec, pod ktorým sa jednotlivé triedy v zozname ponúkajú, zodpovedá položke "Popis" daného Business objektu a môžete podľa neho aj daný Business objekt dohľadať v popise Štruktúr a definícií GenDoc.chm.

Tip pre vás - rýchla cesta, v dokumentácii GenDoc.chm dohľadať popis nejakej ponúkanej triedy zo zoznamu: Chcete napr. získať dokumentáciu k ponúkanej triede Definícia report. Potom v GenDoc.chm si prostredníctvom fulltextového hľadania nechajte vyhľadať reťazec "Popis: Definícia report".

K vybranej triede sa zobrazuje aj CLSID (identifikačný GUID) Business objektu danej triedy.

V dokumentácii GenDoc.chmCLSID Business objektov uvedené ako v nekomprimovanom dlhšom 36-znakovom tvare (32 znakov vr. pomlčiek), resp. v 38-znakovom (vr. pomlčiek, zátvoriek), tak v pakovanom 26-znakovom tvare (viď PackedGUID), v ktorom sa používajú v programe (podľa nich je tiež možné popis v dokumentácii GenDoc.chm rýchlo dohľadať).

Pomocná db. tabuľka Užívateľský názov tabuľky, ktorá v databáze vznikne po uložení novej definície, do ktorej sa ukladajú reťazce pre fulltextové hľadanie. Pri vytváraní nového záznamu je možné položku editovať. U už existujúcej definície je potom položka neprístupná. Zmena názvu tabuľky je nutná napr. v prípade, ak by v databáze už existovala tabuľka s rovnakým menom. K čomu môže dôjsť obvykle ale len vtedy, ak sa definície vytvárajú aj pre definované číselníky. Názov môže obsahovať len alfanumerické znaky.
Názov tabuľky v databáze Názov tabuľky v databáze, ktorý sa preberá z položky Pomocná db. tabuľka a doplnený o prefix FSU$ v prípade, že je tabuľka v kódovaní Unicode alebo FS$ v prípade, že je tabuľka v kódovaní ANSI. Needitovateľná položka zobrazujúca sa len z informatívnych dôvodov. Maximální délka názvu tabulek fulltextu je do 24 znaků.
Unicode

Parameter, ktorý indikuje, či je tabuľka definície fulltextového hľadania v kódovaní Unicode alebo ANSI. Parameter nemá užívateľ možnosť ovplyvniť, pretože definície vznikajú v kódovaní Unicode automaticky a tabuľky v kódovaní ANSI sa môžu v systéme ABRA Gen vyskytnúť len prenesením z verzií, kedy podpora Unicode ešte nebola v systéme implementovaná.

Staré definície v ANSI je možné do Unicode previesť pomocou funkcie Previesť na Unicode.

Stav

Stav aktualizácie fulltextu.

  • OK - fulltext je aktuálny.
  • Aktualizovať - je potrebné vykonať aktualizáciu (ručne funkciou Aktualizovať fulltext alebo naplánovanou úlohou Aktualizácia fulltextového hľadania). Stav po update databázy, vytvorení novej definície fulltextu, prípadne úprave definície súčasnej.

    Stav Aktualizovať na hlavičke dokladu znamená, že sa v stave Aktualizovať nachádza jeden index, ktorý je súčasťou definície daného fulltextu (viď popis položky Stav v tabuľke Indexy).

Používať je možné i fulltext, ktorý sa nachádza v stave Aktualizovať - za predpokladu, že je v stave OK aspoň jedna z jeho súčastí (aspoň jeden index). Vždy sa prehľadávajú len indexy, ktoré sú v stave OK. Užívateľ si naviac priamo v príslušnej agende môže zvoliť, ktoré indexy chce prehľadávať.

Pre zvýšenie prehľadnosti sú záznamy v stave Aktualizovať zvýraznené červeným podfarbením.

Dátum aktualizácie

Dátum a čas poslednej aktualizácie fulltextu. Pokiaľ fulltext doposiaľ nebol aktualizovaný (typicky po vytvorení novej definície), zobrazuje sa miesto časového údaja text "Neprebehla".

Výraz pro omezení zpracovaných záznamů

Výrazem je možné omezit počet zpracovávaných záznamů, které se do aktualizace fulltextu mají zahrnout. Napočtené záznamy nesplňující podmínku se při další aktualizaci odmažou

Budeme-li mít například záznamy napočteny za posledních 5 let, zadáme podmínku na přepočtení záznamů jen za poslední rok. Následně se již přepočtené záznamy nesplňující podmínku vymažou a napočteny a aktualizovány budou jenom ty záznamy, které podmínku splňují.

Výraz môžete zapísať ručne alebo ho môžete zostaviť komfortnejšie pomocou Editora výrazov, ktorý si môžete vyvolať po stlačení funkčného tlačidla (môže sa líšiť podľa verzie a nastaveného vzhľadu). Vo výrazoch sú k dispozícii funkcie a dáta objektov dostupných v danom mieste programu, viď funkcie a dátové položky objektu v editore výrazov.

Pri písaní SQL platí:

  • Bude se doplňovat do Where klauzule na vymazávání/přidávání ID, nad kterými se má fulltext zpracovat.
  • Na sloupce tabulky se odkazujeme pomoci aliasu RT (Reference Table)

Pokiaľ by sme chceli, aby sa fulltext počítal len nad faktúrami za posledný rok, zapíšeme do výrazu nasledujúce: 'RT.DOCDATE$DATE >= ' + NxDateToFloat(Date) – 365

V spodnej časti subzáložky je prvok editovateľný zoznam pre zadanie definícií indexov, ktoré sa budú prehľadávať. V editovateľnom zozname sa zadávajú nasledujúce položky:

Názov Popis
Stav

Položka nadobúdajúca hodnôt OK alebo Aktualizovať s rovnakým významom ako v hlavičke.

Pokiaľ je aspoň jeden index v stave Aktualizovať (napr. po doplnení nového indexu do definície), je v stave Aktualizovať i celá definícia.

Názov

Užívateľský názov indexu pre ľahšiu identifikáciu.

Zadané názvy zároveň slúžia ako popisky funkčných tlačidiel v paneli fulltextového hľadania, pomocou ktorých je možné zapínať a vypínať prehľadávanie jednotlivých indexov.

Popis

Bližší vysvetľujúci popis danej definície indexu. V paneli pre fulltextové hľadanie sa popis zobrazuje formou tooltipu.

Delenie slov

Položka typu skrytý zoznam, z ktorého vyberiete spôsob rozdeľovania znakových reťazcov, tzn. aké časti reťazca budú považované za samostatné slová:

  • Biele znaky - slová sa budú deliť pomocou bielych znakov (medzery, tabulátory).

    Prechod na nový riadok vo viacriadkovom texte je vždy považovaný za oddeľovač.

  • Regulárny výraz - slová sa budú deliť pomocou ľubovoľného reťazca vyhovujúcemu definíciu regulárneho výrazu v poli Regulárny výraz.

    Prechod na nový riadok vo viacriadkovom texte je vždy považovaný za oddeľovač.

  • Nerozdeľovať - slová nebudú nijak rozdeľované (teda ani medzerami - celý zadaný reťazec bude považovaný za jedno slovo).
  • Vlastný - slová sa budú deliť vždy pomocou bielych znakov a ďalej podľa zoznamu voliteľných oddeľovačov, ktoré bude možné zadať do poľa Oddeľovače slov. Jednotlivé oddeľovače pri zadávaní nijak neoddeľujte, každý znak v zadanom reťazci znamená jeden oddeľovač.
  • Inteligentný - za slovo budú považované nasledujúce reťazce:
    • e-mailové adresy
    • URL adresy (niečo://niečo ďalšie)
    • skupiny čísel oddelených jedným z týchto oddeľovačov _-.,\/ (dátumy, čísla verzií a pod.)

      Je potrebné mať na pamäti, že v prípade používania s ostatnými znakmi (nenumerickými) sú tieto oddeľovače chápané ako konce slov a systém bude reťazce na miestach ich výskytu deliť. Ak je teda potrebné vyhľadávať reťazce typu napr. aaa-bbb, je potrebné zvoliť delenie Vlastné, v ktorom nebude znak "-" uvedený medzi oddeľovačmi.

    • číslo dokladu (DisplayName)

      Algoritmus vyhľadá i ďalšie alfanumerické reťazce, ktoré svojou štruktúrou DisplayName pripomínajú.

    • (A-Za-z0-9_) ľubovoľne sa opakujúce, teda v podstate akékoľvek bežné slovo
Oddeľovač slov Tu je možné uskutočniť zoznam znakov, ktoré budú indikovať koniec slova. Znaky sa uvádzajú za seba bez medzier. Položka sa sprístupní, ak je v položke Delenie slov vybraná hodnota Vlastná.
Regulárny výraz

Umožňuje nadefinovať oddeľovanie slov prostredníctvom regulárneho výrazu.

Regulárny výraz je potrebné zadať tak, aby bol zložený z dvoch skupín. Mechanizmus indexovania následne v definovanom výraze postupne vyhľadáva reťazec zodpovedajúci zadanému celému regulárnemu výrazu (dve skupiny). Obsah prvej skupiny považuje za slovo k indexácii, obsah druhej skupiny za oddeľovač.

Majme v databázovej tabuľke stĺpec typu poznámka a v jednotlivých záznamoch uložené texty, ktoré vyzerajú nasledovne:

Lorem **ipsum** _dolor_ sit **amet**,
consectetuer ~adipiscing~ elit.

Chceme vyhľadávanie nadefinovať tak, aby sme mohli do panela fulltextového hľadania zadávať text bez formátovacích značiek.

Použijeme Delenie slov typu Regulárny výraz a do poľa Regulárny výraz vyplníme nasledujúci výraz:

(.*?)(?:[\s*_~.,]+)

Systém ABRA Gen spracuje uvedený ukážkový text nasledovne:

  1. výskyt regulárneho výrazu: Lorem ** - slovo je LOREM, oddeľovač je medzera a dve hviezdičky,.
  2. výskyt regulárneho výrazu: ipsum** _ - slovo je IPSUM, oddeľovač sú dve hviezdičky, medzera a začiarkávacie tlačidlo
  3. výskyt regulárneho výrazu: dolor_ - slovo je DOLOR, oddeľovač je začiarknutý a medzera.
  4. atď.

Podobne ako v prípade metódy Biele znaky sa koniec riadkov vždy považuje za oddeľovač a nie je potrebné ho v regulárnom výraze špecifikovať.

Položka sa sprístupní len v prípade, že je v položke Delenie slov vybraná voľba Regulárny výraz.

Min. dĺžka slova Minimálna dĺžka slov, ktoré budú zahrnuté do množiny záznamov, ktoré sa budú prehľadávať. Hodnota môže byť v intervale 0 - 100. Ak bude táto hodnota prekročená, systém záznam nepovolí uložiť. Štandardná min. dĺžka slova je nastavená na 3 znaky.
Max. dĺžka slova

Maximálna dĺžka slov, ktoré budú zahrnuté do množiny záznamov, ktoré sa budú prehľadávať. Hodnota môže byť v intervale 0 - 100. Ak bude táto hodnota prekročená, systém záznam nepovolí uložiť.

Ak je indexované slovo dlhšie ako jeho nastavená maximálna dĺžka, tak sa do tabuľky uloží počet jeho prvých znakov stanovený maximálnou dĺžkou.

Typ

Typ výrazu určuje, čo bude obsahom nasledujúcej položky Výraz (akým spôsobom sa nadefinuje, čo bude daný index prehľadávať). V aktuálnej verzii sú k dispozícii dve možnosti:

  • QR výraz - na definíciu výrazu sa použijú vstavané funkcie (ktorých parametre môžu byť položky business objektov z dátového modelu) a podporované operátory; QR výrazy sa spravidla zostavujú interaktivne pomocou Editora výrazov
  • SQL - alternatívne je možné výraz zapísať tiež pomocou dopytovacieho jazyka SQL; táto možnosť je určená pre pokročilejších užívateľov a využíva sa v špecifických prípadoch, kedy sa možnosť definície pomocou QR výrazu ukáže ako príliš obmedzujúca; SQL dopyty sa zapisujú ručne (k čomu je potrebná primeraná znalosť databázových štruktúr ABRA Gen)
Výraz

Položka na zadanie vlastného výrazu. Tu je potrebné sa odkázať na patričnú položku, ktorá sa bude pri použití daného indexu prehľadávať. Obsah záleží na tom, či je v položke Typ zvolená možnosť QR výraz alebo SQL:

QR výraz

Výraz môžete zapísať ručne alebo ho môžete zostaviť komfortnejšie pomocou Editora výrazov, ktorý si môžete vyvolať po stlačení funkčného tlačidla (môže sa líšiť podľa verzie a nastaveného vzhľadu).

Ak by bolo potrebné v obsahu e-mailov, ktoré obsahujú HTML tagy (tzn. sú vo formáte HTML), je možné využiť QR funkciu NxHTML2Text, ktorá vykoná HTML do prostého textu (odstráni všetky tagy a zahrnie len textový obsah tagu <body>). Výraz by tak napr. pri odoslanom emaile bol NxHTML2Text(Body) s nastavením delenia slov na Vlastné.

SQL

Výraz sa zapisuje ručne.

Klauzula SELECT musí obsahovať dva stĺpce:

  • ID - zodpovedá ID príslušného business objektu - napr. pokiaľ definujete index pre prehľadávanie skladových kariet, SQL dopyt musí vracať ID jednotlivých skladových kariet, viď príklad nižšie

  • TEXT - výraz (textový reťazec), ktorý sa bude vyhodnocovať (hľadaný reťazec, ktorý zadá užívateľ, sa bude porovnávať s hodnotami vrátenými SQL dopytom v stĺpci TEXT)

Dohľadanie skladových kariet podľa EAN na skladových jednotkách (tento SQL dopyt by sa použil v definícii indexu pre použitie v agende Skladové karty):

SELECT SU.Parent_ID as ID, S.EAN as Text
FROM StoreUnits SU
JOIN StoreEANs S ON S.Parent_ID = SU.ID

Pod editovateľným zoznamom adresátov je k dispozícii lišta navigátora:

Navigátor v tejto subzáložke

Navigátor v tejto záložke obsahuje tlačidlá:

  • Na pohyb kurzora po riadkoch (na začiatok, predchádzajúci riadok, ďalší riadok, na koniec) editovateľného zoznamu, zmenu ich poradia a hľadanie hodnoty v zozname.
  • Vložiť - Na vloženie nového riadka pred aktuálny riadok (na ktorom stojí kurzor).
  • Pridať - Na pridanie nového riadka na koniec.
  • Vymazať - Na vymazanie aktuálneho riadka.

Subzáložka Formuláre

Subzáložka je k dispozícii iba, ak je v menu Nastavenie aktuálne začiarknutá voľba na zobrazenie užívateľských formulárov. Umožňuje vyberať si z nadefinovaných užívateľských vstupných formulárov a zobrazovať a zadávať si prostredníctvom nich potom jednotlivé údaje.

Pravidlá použitia tejto záložky sú pre všetky agendy, v ktorých sa môže vyskytnúť, spoločné a boli podrobne popísané v kap. Záložka Formuláre - všeobecne.

Zobrazenie zoznamu v Detaile

V niektorej časti tejto záložky môže byť zobrazený Zoznam (Panel na zobrazenie zoznamu na iných záložkách), teda záznamy zo záložky zoznam (podrobnejšie viď Spoločné prvky v dokladových agendách - záložka Detail).

Zobrazenie zoznamu závisí od aktuálneho nastavenia v menu Nastavenie pre danú agendu a prihláseného užívateľa.

Funkcia k záložke Detail:

Podmnožina funkcií zo záložky Zoznam.

V editačnom režime platia zásady platné pre editáciu záznamov v knihách. K dispozícii sú štandardné funkcie pre režim editácie, pričom po uložení záznamu v závislosti na jeho údajoch môže dôjsť k vyvolaniu nejakej ďalšej automatickej akcie, viď akcie volané po uložení záznamu.