Heart-Profit ERP

Heart-Profit Boards => Heart-Profit ERP Support => Topic started by: Johan on December 09, 2010, 03:29:30 pm



Title: geblokkeerde functies (Record is out of range)
Post by: Johan on December 09, 2010, 03:29:30 pm
Onderstaande geblokkeerde functie treed op na terugkeren uit een door een userbutton getriggerde functie.

Ik weet best dat userbuttons 'voor eigen risico' zijn, maar kan iets dergelijks op 1 of andere wijze ook netter worden afgevangen?
                                                                                   TIJD : 15:07
    DATUM  : 09-12-10    TIJD : 14:13:51          VISUAL FOXPRO         UID : GS     
      KODE : 5        MESSAGE : Record is out of range.                                     
      AREA : 34         ALIAS : LOVR              INDEX : A9            ROW : 265
      LINE : REWRITE = 0 .AND. (PAGECLCK = 0 .OR. SCHERMF = PAGECLCK)               
      STCK : SYERAH  SYER  ON...  LODAFN1  LODARA1  LODARA  LOVPKRMN  LOVPMN  LOVE  LO  SYSA  L
             OIN  PROFIT8
      XST  : =LACO=[LO]Enter[LOVE]1[LOVO]1[LOVORA]Esc[LOVO]Esc[LOVE]Enter[LOVPMN]1[LOVPKRMN]1[L
             ODARA][LORD_RID_S]habde1F1[LODARA1][]F1[LODARA1WX]25244          EnterKE20   Enter
             XXXXXX                              Enter23-11-2010EnterEsc[LODARA1]Esc[LODARA][LO
             RD_RID_S]Esc[LOVPKRMN]Esc[LOVPMN]Esc[LOVE]Enter[LOVEFA]1[LOUFRAKZ]2[LOUFRDRA][]Shi
             ft+F4[LOFRRA]Esc[LOUFRDRA]Shift+F4[LOFRRA]Esc[LOUFRDRA]Shift+F4[LOFRRA]Esc[LOUFRDR
             A]Shift+F4[LOFRRA]Esc[LOUFRDRA]Shift+F4[LOFRRA]Esc[LOUFRDRA]PgUpEsc[LOVEFA]Esc[LOV
             E]Enter[LOVPMN]1[LOVPKRMN]1[LODARA][LORD_RID_S]F1UserButton[LOGDRA]F1[LOGDRA2][]21
             214PgDnEsc[LOGDRA][LORD_RID_S]Esc[LODARA1][]PgDn




Title: Re: geblokkeerde functies (Record is out of range)
Post by: Peter Stordiau on December 09, 2010, 05:16:08 pm
Als je er werkelijk mee zit zouden we kunnen kijken of de van-naar-terug kombinatie hierop kan worden aangepast. Is altijd een nakalkulatieverhaal, maar veelal zal een half uur - uur voldoende zijn. Maar vergeet niet : wel letterlijk die ene kombinatie.


Title: Re: geblokkeerde functies (Record is out of range)
Post by: Johan on December 10, 2010, 08:18:47 am
Ik bedoelde, maar dat zul je ongetwijfeld wel in de gaten hebben gehad, een methode waarbij dit meer generiek opgelost wordt. Dit is natuurlijk niet de enige combinatie van userbutton aangeroepen van uit een functie, en daarna terug keren. Dat doe je op tig verschillende plaatsen , met even zo vaak kans op dit soort geblokkeerde functies.

voor mijn part wordt bij het klikken op een userbutton de huidige situatie 'bevroren', wanneer je met het desbetreffend scherm verder wilt, moet je eerst op een knop "Vrijgeven oude scherm" drukken, die de "bevroren" situatie weer actief maakt. (in dit voorbeeld zou die knop "vrijgeven oude scherm" op LODARA1 van toepassing zijn)


Title: Re: geblokkeerde functies (Record is out of range)
Post by: Wouter Rijnbende on December 10, 2010, 09:13:36 am
Userbuttons zijn "as-is". Niet iedere funktie laat zich als Userbutton aanroepen, c.q. leent zich ervoor om als Userbutton aangeroepen te worden.

Ofwel: als een Funktie problemen oplevert doordat je gebruik maakt van Userbuttons, helaas... dan zul je die Funktie niet meer met een Userbutton moeten aanroepen, omdat je er een funktie gevonden hebt die zich daar niet voor leent. Op nakalkulatorische basis kunnen we dan ieder van die kombinaties best onder handen nemen om ervoor te zorgen dat ze zich ineens wél lenen voor het gebruik van userbuttons, maar ja...

Welke van de 10.000 funkties zich wel/niet leent voor aanroepen met een Userbutton kunnen wij op voorhand niet stellen. Ook niet, omdat e.e.a. te maken kan hebben met kombinaties (zie maar voor je dat je een voorloopscherm hebt waar je een debiteur invult, van die debiteur de Valutakode wordt bepaald, je vervolgens na F1 de verkoopprijzen van die debiteur gaat raadplegen, deze in de valutakode geregistreerd/getoond worden die door het voorloopscherm bepaald zijn, en je vervolgens vanuit raadplegen prijzen een zijstap gaat maken naar een funktie die die Valutakode overschrijft met een andere waarde.

De ellende is echter dat als jij nú bedenkt "ah, die kombinatie die werkt niet, dus ik neem dat niet als userbutton op", een andere gebruiker morgen ook een snelkoppeling opneemt naar die funktie (en niet weet waar jij door schade en schande al achter bent gekomen). Het zou dus een idee kunnen zijn om een database op te bouwen met daarin kombinaties waarvan iemand al een keer bepaald heeft dat ze niet toegestaan zijn (om te voorkomen dat een andere gebruiker die kombinatie opneemt-/uitvoert).

Ik denk dat je daarbij mag denken in termen van :

* een funktie zoals LOVRRA mag je nooit als Userbutton aanroepen, omdat diverse initialiserende zaken in LOVORA geset zullen worden

en

* vanuit een funktie "Tv-/Wy-/Ra Prijs-/Kortingsafspraken" mag je geen zijstap maken naar Raadplegen Valutakodes, omdat deze bijv. de Valutakode van de Prijs-/Kortingsafspraak zou kunnen overschrijven.

óf

* vanuit het boeken van het Bankafschrift moet je niet met een Userbutton naar "Toevoegen Ingekomen Fakturen" gaan.

Een algemenere oplossing die ook al eens is aangedragen, zou zijn dat we een Userbutton alleen maar mogen gebruiken vanuit een Menu. Maar ja... ook dat is niet handig, want er zijn ook vele situaties waarin e.e.a. gewoon wél goed werkt, en die zouden we daarmee ook dichttimmeren... "as-is" dus.


Title: Re: geblokkeerde functies (Record is out of range)
Post by: Wouter Rijnbende on December 10, 2010, 09:22:17 am
voor mijn part wordt bij het klikken op een userbutton de huidige situatie 'bevroren', wanneer je met het desbetreffend scherm verder wilt, moet je eerst op een knop "Vrijgeven oude scherm" drukken, die de "bevroren" situatie weer actief maakt. (in dit voorbeeld zou die knop "vrijgeven oude scherm" op LODARA1 van toepassing zijn)

Iets wat ook in ontwikkeling is / ontwikkeld is, is funktionaliteit waarbij een funktie in een separate taak geopend kan worden (openen in nieuw venster). Dit zou zich in principe als geen ander lenen voor het Userbutton gebeuren, omdat wat je daar feitelijk mee doet, is zeggen "maak maar een kopie van de huidige omgeving, start een 2e Profitsessie op o.b.v. die huidige omgeving, en roep dáár de Userbutton-funktionaliteit aan". Je krijgt dan a.h.w. 2 sessies die los van elkaar opereren.

Toch zal ook zoiets een negatief effekt hebben, immers doel van het gebruik van je Userbutton kán zijn om op een dieper niveau iets te selekteren, wat je juist wil overnemen naar het scherm waarin je de userbutton gebruikte. Je moet bijv. ergens een Identifikatie invullen, en is geen toets "Raadplegen" opgenomen, en je gebruikt de Userbutton om te kunnen raadplegen. "Dat overnemen" van variabelen is in de ene situatie juist handig, terwijl het in de andere situatie tegen je werkt.

Wat de status van die funktionaliteit "openen in nieuw venster" is weet ik niet.


Title: Re: geblokkeerde functies (Record is out of range)
Post by: Peter Stordiau on December 13, 2010, 09:05:55 am
Ik ook niet, haha.

Maar dat "overnemen" zit er wel in hoor.