Sur l'objet standard (compte), j'ai un bouton appelé SAD. Le bouton est ajouté là-bas par la page Visual force.

Maintenant, ma question est sur la page Compte, pour la valeur de la liste de sélection de champ particulier (par exemple. Type de société = '' Z001 ') comment désactiver la visibilité du bouton SAD pour tous les utilisateurs?

0
madhu donkana 1 mars 2021 à 10:19

3 réponses

Meilleure réponse

J'ai trouvé la solution pour ce code en ajoutant une propriété dans Controller et en la récupérant du contrôleur à la page VF. Voici le code.

Code dans la classe Extn

Public Account AccName{get;set;}
Public Account Acnt{get;set;}

Public user userid;

public boolean stagesDisabled {
get {

     userid =[SELECT Id, Country FROM User where Id =:UserInfo.getUserId()];

     Acnt = [Select id, Company_Type__c from account where id =: Acc.id];                

     return( Acnt.Company_Type__c =='Z008' && userid.Country =='XYZ' );
    }
}

Code dans la page VF

<apex:commandButton action="{!SAD}" value="New Sales Area Data"   disabled="{!stagesDisabled}" />
0
madhu donkana 13 mars 2021 à 06:02

Pourquoi ne pas le faire avec un LWC à la place?

Vous pouvez utiliser le décorateur @wire avec la méthode getRecord de uiRecordApi pour récupérer les données de l'objet en fonction de l'ID de l'enregistrement actuel.

Le fichier JS ressemblerait à ceci:

@wire(getRecord, { recordId: '$recordId', fields:['Company_Type__c'] })
Account;
visible = false;

if (Account.Company_Type__c == 'Z001'){
    visible = true;
}

handleClick(){
    // use @wire to access Controller class you used for your vf page.
}

Vous placez le bouton dans le modèle LWC. Utilisez simplement la balise.

Le fichier HTML ressemblerait à ceci:

<template>
    <template if:true={visible}>
        <lightning-button
        variant="normal"
        label="SAD"
        title="SAD Button"
        onclick={handleClick}>
        </lightning-button>
    </template>
</template>
0
Jonathan Yaniv Ben Avraham 10 mars 2021 à 22:16

Il semble que vous utilisiez la balise apex: detail pour afficher les détails de l'enregistrement sur la page visualforce.

Pour masquer n'importe quel bouton, vous pouvez utiliser l'extrait de code ci-dessous ainsi que les conditions pour masquer ou ne pas le faire.

<apex:page standardController="Account" >
<apex:detail />
<apex:includeScript value="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" />

<script>
    $(document).ready(function() {
        if({!Account.Company_Type__c == 'Z001'}){
            $('[name="REPLACE_BUTTON_NAME_HERE"]').hide();
        }
    });
</script>

</apex:page>

Obtenez le nom de votre bouton en inspectant le bouton sur la page visualforce et remplacez-le dans le code à la place de REPLACE_BUTTON_NAME_HERE

0
Jasneet Dua 11 mars 2021 à 05:11