TSearchKey (MM)

De Wiki1000
(Différences entre les versions)
(Propriétés :)
(Introduction)
Ligne 44 : Ligne 44 :
 
|string
 
|string
 
|Défini le format du détail du résultat de la clé de recherche
 
|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 (TSearchKey)|FormName]]
 
|[[FormName (TSearchKey)|FormName]]
 
|string
 
|string
|Défini l'écran(s) associés à la clé de recherche
+
|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 (TSearchKey)|FormPropName]]
 
|[[FormPropName (TSearchKey)|FormPropName]]
Ligne 73 : Ligne 75 :
 
|Défini le code exécuté sur un résultat de recherche
 
|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 (class)|TSearchAction]]}}
 +
 +
Exemple:
 +
 +
<source lang="delphi">
 +
//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;
 +
</source>
  
 
{{Footer|Code métier}}
 
{{Footer|Code métier}}

Version du 20 juin 2024 à 14:01

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-20px.png Tip : AfterCode peut être utilisé pour enregistrer des actions associées au résultat de la recherche
Tip-20px.png 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;

Code métierDéveloppement DSM

Outils personnels