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) | + | |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 : 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;
— Code métier — Développement DSM —
| Whos here now: Members 0 Guests 0 Bots & Crawlers 1 |