Op een scherm van het commercieel beheer, een expressie weergeven die informatie van de actieve regel van de LinesEditor bevat

0000003237     -      30-07-2024

Mercator 11.0 of later kan worden gebruikt om informatie weer te geven van de kolommen van de LinesEditor op de actieve regel in een uitdrukking. Dit betreft 

  • verkopen
  • aankopen
  • transfers tussen depots 
  • inventarissen

Om dit te doen, moet de expressie de methode CurrentRowCellValue gebruiken, die beschikbaar is in de schermen van het type

  • BillingForm
  • TransferForm
  • InventoryForm

Deze methode vereist een stringparameter om de kolom in de LinesEditor te identificeren via een van deze eigenschappen:

  • Source
  • SourceReadOnly
  • Formula

Het is dus noodzakelijk dat deze kolommen in de LinesEditor bestaan. De methode CurrentRowCellValue neemt gewoon de waarde die momenteel wordt weergegeven. Als dit systeem wordt geïmplementeerd vanwege een groot aantal kolommen dat de leesbaarheid van het scherm belemmert, is het mogelijk om de breedte van deze kolommen te verkleinen zodat ze onzichtbaar worden.

Deze methode retourneert altijd een tekenreeks, zelfs als de gebruikte kolom numeriek is. In dat geval wordt de numerieke waarde geformatteerd volgens de eigenschappen van de kolom.

Het is niet nodig om een of meer ID's op te geven in de eigenschap RefreshedBy. Mercator ververst deze expressie automatisch bij celwisselingen in de LinesEditor en bij het opnieuw berekenen van het scherm.

Er is geen limiet aan het aantal expressies dat de methode CurrentRowCellValue kan gebruiken.

 

 Deze methode wordt heel vaak aangeroepen: het is daarom ten strengste af te raden om hem te gebruiken voor code die toegang heeft tot de database (xLookup, Zselect, ...)


Hieronder staat een voorbeeld van code voor een verkoopdocument, dat respectievelijk de volgende elementen bevat:

  • 3 standaardkolommen : id_article, pu et q
  • 1 kolom ReadOnly : DISPO.DISPO
  • 1 kolom Formula : q * 2
  • de sleutel 3 van het artikel, die niet overeenkomt met een kolom in de LinesEditor, maar wordt bepaald door 
    • de identificator van het artikel, gevonden door billingForm.CurrentRowCellValue("id_article")
    • de collectie BillingEngine.StockRecords, waarin het gewenste artikel wordt gevonden via de hierboven bepaalde artikelidentificator
Zoom
public static String Evaluate(MercatorUi.MovableControls.MovableExpression currentExpression)
{
    // enter your customized code here

    MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)currentExpression.Form;

    return "Article = " + billingForm.CurrentRowCellValue("id_article")
        + " | PU = " + billingForm.CurrentRowCellValue("pu")
        + " | Q = " + billingForm.CurrentRowCellValue("q")
        + " | Dispo = " + billingForm.CurrentRowCellValue("DISPO.DISPO")
        + " | Q * 2 = " + billingForm.CurrentRowCellValue("q * 2")
        + " | CLE = " + (billingForm.CurrentRowCellValue("id_article") != "" ? billingForm.BillingEngine.StockRecords[billingForm.CurrentRowCellValue("id_article")]?.S_CLE3 ?? "" : "");
}

 

De weergave van deze expressie ziet er als volgt uit: 



Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)