Zo af en toe treedt er in Profit een probleem op, welke diep in het geheugen wel ergens een belletje doet rinkelen. Een probleem welke onoplosbaar leek, maar, waar nu, voor sommige situaties, toch een oplossing voor is gevonden.
In het huidige voorbeeld is een klant aan het Inventariseren m.b.v. het Scanterminalscherm Inventariseren (LOTSSTIV). Op dit Scanterminalscherm scant ze op het 1e Tabblad de Lokatie welke geïnventariseerd wordt, om op het 2e scherm vervolgens de Barcode van een Voorraaditem te scannen. Het Chargenummer bevat de letter 'U', en hierop loopt e.e.a. nu drastisch fout.
Het probleem is tweeledig. Ten eerste keert de scan terug naar het voorliggende Tabblad, ten tweede wordt de daar getoonde inhoud veranderd en loopt het scherm fout omdat opnieuw het initialisatie deel van het scherm wordt uitgevoerd.
We hebben te maken met een Visual FoxPro bug, waarbij de toetswaarden van de toetskombinaties Shift+t t/m Shift+z overeenkomen met de toetswaarden van de Funktietoetsen Shift+F1 t/m Shift+F7. Voor de meeste Profit schermen zou dus gelden dat als we ergens bij een selektie iets met Shift+u invullen, dit "F1" (het opstarten van de funktie) triggert.
Het probleem is op zich sinds 2000 bekend, en een echte oplossing is er niet voor gevonden immers, als VFP dezelfde keywaarde teruggeeft voor verschillende toetsen, dan weten wij niet welke er echt gebruikt is.
Toch is er m.i.v. heden iets verbeterd in deze situatie, immers, 'Shift-u' mag dan wel worden vertaald naar 'Shift-F1', maar nergens in het pakket gebruiken we een Shift-F1 toets. Ok, we vragen 'F1' uit en dus wordt de print of funktie opgestart als we shift-u typen. Per heden kontroleren we derhalve bij het omzetten van een toetswaarde naar een Funktietoets, of hier überhaupt die Funktietoets mee bedoeld kan worden. Immers, als onze Funktie geen 'Shift-F1' heeft, dan zullen we die toets vast niet kunnen bedoelen.
Op eenzelfde manier geldt dat als we op een Scanterminalscherm of een TouchScreenscherm bezig zijn, we nergens 'een Funktietoets' kunnen scannen. Derhalve kunnen we op een Scanterminal-/TS scherm nooit de Funktietoets Shift-F1 t/m Shift-F7 bedoelen. De vraag of we dus 'Shift-u' of 'Shift-F2' bedoelen laat zich wat dat betreft makkelijk raden, immers, als we een Funktietoets niet kunnen scannen, blijft enkel 'Shift-u' over.
Na oplossing van bovenstaande, start het gebruik van 'Shift-u' niet meer de Funktie-/Print op waar we op dat moment in zitten. Op de Scanner wordt echter nog wel het vorige Tabblad geaktiveerd, maar, verknald daar niet meer het scherm.
Uiteindelijk blijkt er ooit voor een Casio scanner iets te zijn ontwikkeld waarmee we op een Scanner met toets F2 naar het volgende Tabblad kunnen, en met Shift-F2 weer terug naar het vorige Tabblad. Bij deze funktionaliteit (we wisten niet eens meer dat deze bestond, en ze staat ook nergens beschreven) is nu de Shift-F2 optie komen te vervallen.
Per saldo is het probleem nu verholpen en reageert het Scanterminal scherm Inventariseren weer als bedoeld.
Nb: Overigens is nog niet verklaard waarom dit niet eerder is gekonstateerd. Tevens is frappant dat als het Chargenummer gewoon 'met de hand wordt ingevuld' zonder Shift-u te gebruiken, er niets fout ging. Het moet er dus op neerkomen dat het enkel fout ging op scanners waarbij de 'U' waarde door de scanner expliciet werd gekeyboard als 'Shift-U' waarde.
Funktie | Omschrijving | Dtm.Vl.Wyz | Dtm.L.Wyz |
LOSS | Omschrijving (nog) niet bekend | 24-09-2014 | 27-06-2018 |