TSearchKey (MM)
Introduction
Cette classe gère la description d'une clé de recherche.
Propriétés :
| Weight | string | Défini le poids de la clé. |
| limits | integer | Défini le nombre d'objets retournés par la clé. |
| Title | string | Défini le libellé de la clé de recherche |
| AClassName | string | Défini la classe de base de la clé de recherche |
| SearchNames | string | Défini la liste des attributs sur lesquels portent la recherche
Ces attributs seront inclus dans le critère de recherche et retournés par la recherche. |
| ExtraNames | string | Défini une liste d'attributs supplémentaires qui seront ajouté au résultat de la requêtes
Ces attributs ne seront pas inclus dans le critère de recherche mais retournés par la recherche. |
| ExtraColumns | string | Défini une liste de colonnes supplémentaires qui seront ajouté au résultat de la requêtes
Ces colonnes ne seront pas incluses dans le critère de recherche mais retournées par la recherche. |
| FormatCaption | string | Défini le format du libellé du résultat de la clé de recherche |
| FormatValue | string | Défini le format du détail du résultat de la clé de recherche
Utilisez @propName@ pour substituer une valeur retournée par la recherche |
| FormName | string | Défini l'écran(s) associé(s) à la clé de recherche
Pour définir plusieurs écrans en fonction de la classe utilisez "className:formName;className:formName;..." |
| FormPropName | string | Défini une colonne contenant le nom de l'écran associé à la clé de recherche |
| FormPropOid | string | Défini la colonne contenant l'identifiant principale de la clé de recherche |
| OrderBy | string | Défini l'ordre de tri de la clé de recherche |
| Filter | string | Défini un terme de filtre supplémentaire ajouté à la requête de la clé de recherche. |
| IsPersonalData | string | Défini si la clé porte sur des données personnelles |
| AfterCode | string | Défini le code exécuté sur un résultat de recherche |
| Tip : AfterCode peut être utilisé pour enregistrer des actions associées au résultat de la recherche |
| Tip : A partir de la version 2024 r1 il est possible d'ajouter des actions simplement en dérivant de la classe TSearchAction |
Exemple:
//procedure Initialize;
var sk:TSearchKey; AStr:string;
function _FormOfClass(const iClass:string):string;
begin
Result := iClass+':'+TFacadeModel.FindFormOfClass(iClass)+';';
end;
begin
sk := ModelManager.RegisterSearchKey(10,'TRoleTiers',
'Caption,Tiers.code,Tiers.caption,Tiers.noSiren,Tiers.raisonsociale,SitePrivilegie.Adresse.codePostal,SitePrivilegie.Adresse.ville,SitePrivilegie.Adresse.telephone1',
_FormOfClass('TClient')+
_FormOfClass('TFournisseur')+
_FormOfClass('TSalarie')+
_FormOfClass('TTiersDivers')+
_FormOfClass('TTransporteur')+
_FormOfClass('TIntraGroupe')
);
sk.Limits := 20;
sk.ExtraNames := 'SitePrivilegie.Adresse.nomRueVoie,oidTiers';
sk.FormatValue := _TP('@Tiers.noSiren@ @Tiers.code@ @Tiers.RaisonSociale@ @SitePrivilegie.Adresse.nomRueVoie@ @SitePrivilegie.Adresse.codePostal@ @SitePrivilegie.Adresse.ville@ @SitePrivilegie.Adresse.telephone1@');
sk.OrderBy := 'Tiers.code';
//
AStr := 'begin ';
if True then
begin
AStr := AStr+
'if Values[''Tiers.noSiren'']='''' then'
' begin'
' AddAction(sapRight,satOpenPanel,_TP(''Rechercher le siren''),''search'',''actionQualifyTiers'');'+
' end'
' else'
' begin'
' AddAction(sapRight,satOpenPanel,_TP(''Qualifier le tiers''),''search'',''actionQualifyTiers'');'+
' end;'
end;
if True then
begin
AStr := AStr+
' AddAction(sapRight,satOpenPanel,_TP(''Voir les sites''),''search'',''actionTiersSites'');'
end;
if TFacadeModel.hasAccounting() then
begin
AStr := AStr+
' AddAction(sapRight,satOpenPanel,_TP(''Voir les pièces comptables''),''search'',''actionTiersPieces'');'+
' AddAction(sapRight,satOpenPanel,_TP(''Voir les soldes par période''),''search'',''actionTiersSolds'');';
end;
if TFacadeModel.hasSales() then
begin
AStr := AStr+
' if ClassName=''TClient'' then'+
' begin '+
' AddAction(sapRight,satOpenPanel,_TP(''Voir les factures de vente''),''search'',''actionCustomerInvoices'');'+
' AddAction(sapRight,satOpenPanel,_TP(''Voir les commandes de vente''),''search'',''actionCustomerOrders'');'+
' end; ';
end;
if TFacadeModel.hasPurchases() then
begin
AStr := AStr+
' if ClassName=''TFournisseur'' then'+
' begin '+
' AddAction(sapRight,satOpenPanel,_TP(''Voir les factures d''''achat''),''search'',''actionCustomerInvoices'');'+
' AddAction(sapRight,satOpenPanel,_TP(''Voir les commandes d''''achat''),''search'',''actionSupplierOrders'');'+
' end; ';
end;
AStr := AStr+' end;';
//
sk.AfterCode := AStr;
end;
Voir aussi :
— Code métier — Développement DSM —