Colorare una Grid in AX 4

Guida alla realizzazione di un metodo per colorare una grid all’interno di Microsoft Dynamics AX.

Tra le tante opportunità di personalizzazione presenti in Microsoft Dynamics AX vi è anche quella che ci permette di colorare un record o un singolo campo all’interno di una grid . La domanda che adesso sorge spontanea è: ma quali sono le righe di codice da implementare? Beh, sei capitato nel posto giusto al momento giusto. In questo articolo, infatti, ti mostrerò quali sono le righe di codice da scrivere per:

  • colorare una grid
  • colorare un singolo campo all’interno di una grid

Bene, cominciamo!!!

Come colorare un’intero record all’interno di una grid:

Per colorare un’intero record all’interno di una grid occorre come prima cosa aprire il client Microsoft Dynamics AX e successivamente aprire l’AOT(Ctrl+D).

colorare una grid - AOT

Espandere il nodo Forms e dall’elenco proposto ricercare la form nella quale vogliamo aggiungere la colorazione(nel nostra caso CustTable). Aprire il nodo Data Sources, della form, ed espandere il Data Source desiderato(CustTable). Creare, se non già presente, il metodo DisplayOption.

colorare una grid - Display Option

Modificare il codice standard proposto con le seguenti righe di codice:

//Metodo creato da Faion Andrea il 06/07/2017 per la colorazione dell'interno record
//quando il nome del cliente contiene il test prova
public void displayOption(Common _record, FormRowDisplayOption _options)
{
    CustTable   _CustTable;
    ;
    _CustTable.data(_record);

    if (_CustTable.AccountName like '*prova*')
        _options.backColor(WinAPI::RGB2int( 249, 167, 157 )); //colore Rosso chiaro
    
    super(_record, _options);
}

Salvare il metodo e riaprire la form. Se tutto è stato fatto correttamente tutti i record che rispecchiamo le condizioni specificate verranno colorate di rosso chairo.

Come colorare un singolo campo all’interno di una grid:

Nell’ipotesi di avere la necessità di colorare un singolo campo all’interno della grid i passaggi da fare sono pressapoco gli stessi. In più occorre solamente:

  • Impostare a Yes, nelle proprietà del campo, il valore AutoDeclaration. Questo accorgimento ci permette di usare le proprietà del campo all’interno del metodo DisplayOption.
  • Modificare leggermente il codice del metodo displayOption.

Modificare il codice standard del metodo displayOption come segue:

//Metodo creato da Faion Andrea il 06/07/2017 per la colorazione di un singolo campo all'interno 
//di una grid quando il nome del cliente contiene la parola prova
public void displayOption(Common _record, FormRowDisplayOption _options)
{
    CustTable   _CustTable;
    ;
    _CustTable.data(_record);

    //Faccio il controllo sul nome
    if(_CustTable.AccountName like '*prova*'))
    {
        _options.backColor(WinAPI::RGB2int(249, 167, 157));
        _options.affectedElementsByControl(CustTable_AccountName.id());
    }
    super(_record, _options);
}

Salvare e lanciare l’esecuzione della form. Se tutto è stato fatto correttamente per tutti i clienti contenenti nella descrizione la parola prova il campo descrizione dovrebbe apparire di colore rosso chiaro.

Si può tranquillamente applicare tale metodo per colorare anche campi che non appartengono ad una grid.

Se sei arrivato a leggere sino a qua vuol dire che sei riuscito a colorare un record o un campo all’interno di una grid. Complimenti!!

Ti potrebbe interessare anche:


 

Condividi con i tuoi amici

Articoli Correlati

Informazioni su Andrea Faion 408 Articoli
FAION ANDREA. Ho 35 anni e sono diplomato in informatica presso l'ITIS Kennedy di Pordenone. Da sempre appassionato a tutto ciò che concerne il mondo dell'informatica.

Commenta per primo

Lascia un commento