https://frp.sage.fr/wiki1000/index.php?title=Sp%C3%A9cial:Nouvelles_pages&feed=atom&hideliu=&hidepatrolled=&hidebots=&hideredirs=1&limit=50&namespace=0
Wiki1000 - Nouvelles pages [fr]
2024-03-28T11:26:31Z
De Wiki1000
MediaWiki 1.18.6
https://frp.sage.fr/wiki1000/index.php/SetCounter_(QueryExporter)
SetCounter (QueryExporter)
2023-11-28T10:46:40Z
<p>Syfre : Page créée avec « {{version11}} <source lang='delphi'>procedure SetCounter(const iName:string; value:Integer);</source> Cette méthode positionne la valeur d'un compteur. {|class="wikita... »</p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>procedure SetCounter(const iName:string; value:Integer);</source><br />
<br />
Cette méthode positionne la valeur d'un compteur.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|iName<br />
|Le nom du compteur<br />
|-<br />
|Value<br />
|Valeur du compteur<br />
|}<br />
<br />
{{tip|La prochaine valeur tirée sera cette valeur+1}}<br />
<br />
Exemple :<br />
<br />
<source lang="delphi"><br />
</source><br />
<br />
Voir aussi :<br />
<br />
* [[GetCounter (QueryExporter)|GetCounter]]<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueyExporter]]<br />
[[Category:version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/GetCounter_(QueryExporter)
GetCounter (QueryExporter)
2023-11-28T10:45:19Z
<p>Syfre : </p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>function GetCounter(const iName:string):Integer;</source><br />
<br />
Cette méthode retourne la valeur d'un compteur.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|Result<br />
|La valeur du compteur<br />
|-<br />
|iName<br />
|Le nom du compteur<br />
|}<br />
<br />
Exemple :<br />
<br />
'''Utilisation des compteurs:'''<br />
<br />
<source lang="delphi"><br />
<br />
//procedure TVueExport.RegleDerivation_EcritureNum;<br />
begin<br />
Result := 'Counter(P,'+PieceRef+')';<br />
end;<br />
<br />
procedure TExportVue.doExport;<br />
begin<br />
inst := TQueryExporter.Create;<br />
...<br />
inst.SetCounter('P',0);<br />
...<br />
ctn := inst.GetCounter('P');<br />
inst.Export(TVueExport.CreateSelector(....));<br />
ctn := inst.GetCounter('P') - ctn;<br />
...<br />
end;<br />
</source><br />
<br />
<pre><br />
Vue :<br />
DatePiece PieceRef EcritureNum<br />
01-01-2023 1230 1 <br />
01-01-2023 1230 1<br />
01-01-2023 1230 1<br />
<br />
01-02-2023 1232 2<br />
01-02-2023 1232 2 <br />
01-02-2023 1232 2<br />
<br />
01-03-2023 1231 3<br />
01-03-2023 1231 3<br />
... <br />
</pre><br />
<br />
Voir aussi :<br />
<br />
* [[SetCounter (QueryExporter)|SetCounter]]<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueyExporter]]<br />
[[Category:version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/ExportTime_(TQueryExporter)
ExportTime (TQueryExporter)
2023-11-28T10:34:47Z
<p>Syfre : Page créée avec « <source lang='delphi'>property ExportTime:string;</source> '''Lecture seule''' Cette propriété retourne la durée de l'export. Exemple <source lang='delphi'> </sourc... »</p>
<hr />
<div><source lang='delphi'>property ExportTime:string;</source><br />
<br />
'''Lecture seule'''<br />
<br />
Cette propriété retourne la durée de l'export.<br />
<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueryExporter]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/ExportCount_(TQueryExporter)
ExportCount (TQueryExporter)
2023-11-28T10:34:19Z
<p>Syfre : Page créée avec « <source lang='delphi'>property ExportCount:Integer;</source> '''Lecture seule''' Cette propriété retourne le nombre de ligne exporté. Exemple <source lang='delphi'>... »</p>
<hr />
<div><source lang='delphi'>property ExportCount:Integer;</source><br />
<br />
'''Lecture seule'''<br />
<br />
Cette propriété retourne le nombre de ligne exporté.<br />
<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueryExporter]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/EstimateCount_(TQueryExporter)
EstimateCount (TQueryExporter)
2023-11-28T10:32:41Z
<p>Syfre : Page créée avec « <source lang='delphi'>property EstimateCount:Integer;</source> '''Lecture/Ecriture''' Cette propriété détermine le nombre de ligne estimé. {|class="wikitable" |Esti... »</p>
<hr />
<div><source lang='delphi'>property EstimateCount:Integer;</source><br />
<br />
'''Lecture/Ecriture'''<br />
<br />
Cette propriété détermine le nombre de ligne estimé.<br />
<br />
{|class="wikitable"<br />
|EstimateCount<br />
|Action<br />
|-<br />
|0<br />
|Le nombre de ligne est estimé en réalisant un "count" de la requête d'export<br />
|-<br />
| -1<br />
|Le nombre de ligne n'est pas estimé<br />
Utilisez -1 si la requête ne permet de faire un count<br />
|}<br />
<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueryExporter]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/ExportPropertyNames_(TQueryExporter)
ExportPropertyNames (TQueryExporter)
2023-11-28T10:27:06Z
<p>Syfre : Page créée avec « <source lang='delphi'>property ExportPropertyNames:string;</source> '''Lecture/Ecriture''' Cette propriété détermine les propriétés de la requête a exporter. Les ... »</p>
<hr />
<div><source lang='delphi'>property ExportPropertyNames:string;</source><br />
<br />
'''Lecture/Ecriture'''<br />
<br />
Cette propriété détermine les propriétés de la requête a exporter.<br />
<br />
Les propriétés exportées sont définies par :<br />
<br />
* La propriété ExportPropertyNames<br />
* La méthode de classe GetExportPropertyNames de la classe exportée<br />
* Toutes les propriétés exportables de la classe exportée.<br />
<br />
{{tip|L'utilisation de ExportPropertyNames ou de la méthode de classe GetExportPropertyNames permet aussi de définir l'ordre des colonnes dans le fichier d'export.}}<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueryExporter]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/ExportEncoding_(TQueryExporter)
ExportEncoding (TQueryExporter)
2023-11-28T10:22:36Z
<p>Syfre : Page créée avec « <source lang='delphi'>property ExportEncoding:Integer;</source> '''Lecture/Ecriture''' Cette propriété détermine l'encodage du fichier d'export. {|class="wikitable" ... »</p>
<hr />
<div><source lang='delphi'>property ExportEncoding:Integer;</source><br />
<br />
'''Lecture/Ecriture'''<br />
<br />
Cette propriété détermine l'encodage du fichier d'export.<br />
<br />
{|class="wikitable"<br />
!Format<br />
!Usage<br />
|-<br />
|EXPORT_ENCODING_UTF8<br />
|Encodage UTF8 (défault)<br />
|-<br />
|EXPORT_ENCODING_ANSI<br />
|Encodage ANSI<br />
|}<br />
<br />
{{tip|Le format FEC est toujours encodé en ANSI}}<br />
<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueryExporter]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/ExportFormat_(TQueryExporter)
ExportFormat (TQueryExporter)
2023-11-28T10:20:16Z
<p>Syfre : Page créée avec « <source lang='delphi'>property ExportFormat:Integer;</source> '''Lecture/Ecriture''' Cette propriété détermine le format du fichier d'export. {|class="wikitable" !Fo... »</p>
<hr />
<div><source lang='delphi'>property ExportFormat:Integer;</source><br />
<br />
'''Lecture/Ecriture'''<br />
<br />
Cette propriété détermine le format du fichier d'export.<br />
<br />
{|class="wikitable"<br />
!Format<br />
!Usage<br />
|-<br />
|EXPORT_FORMAT_CSV<br />
|Fichier csv (défault)<br />
|-<br />
|EXPORT_FORMAT_FEC<br />
|Fichier FEC<br />
|}<br />
<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueryExporter]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/ExportTitle_(TQueryExporter)
ExportTitle (TQueryExporter)
2023-11-28T10:18:15Z
<p>Syfre : Page créée avec « <source lang='delphi'>property ExportTitle:string;</source> '''Lecture/Ecriture''' Cette propriété détermine le titre du fichier d'export. Exemple <source lang='del... »</p>
<hr />
<div><source lang='delphi'>property ExportTitle:string;</source><br />
<br />
'''Lecture/Ecriture'''<br />
<br />
Cette propriété détermine le titre du fichier d'export.<br />
<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueryExporter]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/ExportName_(TQueryExporter)
ExportName (TQueryExporter)
2023-11-28T10:16:57Z
<p>Syfre : </p>
<hr />
<div><source lang='delphi'>property ExportName:string;</source><br />
<br />
'''Lecture/Ecriture'''<br />
<br />
Cette propriété détermine le nom du fichier d'export.<br />
<br />
Le nom du fichier est déterminé par :<br />
<br />
*La propriété ExportName<br />
*La propriété ExportTitle, proposée comme nom de fichier (1)<br />
*Le nom de la classe exportée<br />
<br />
{{tip|(1) En desktop le nom du fichier sera demandé à l'utilisateur}}<br />
{{tip|Si beginExport/endExport le nom du fichier doit être déterminé indépendamment du nom de la classe exportée }}<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueryExporter]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/EndExport_(QueryExporter)
EndExport (QueryExporter)
2023-11-28T10:14:18Z
<p>Syfre : Page créée avec « {{version11}} <source lang='delphi'>procedure EndExport;</source> Cette méthode termine un export. {|class="wikitable" |- !Paramètre !Usage |} Voir aussi : * [[Beg... »</p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>procedure EndExport;</source><br />
<br />
Cette méthode termine un export.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|}<br />
<br />
<br />
Voir aussi :<br />
<br />
* [[BeginExport (QueryExporter)|BeginExport]]<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:Sélecteur]]<br />
[[Category:version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/BeginExport_(QueryBuilder)
BeginExport (QueryBuilder)
2023-11-28T10:11:13Z
<p>Syfre : a déplacé BeginExport (QueryBuilder) vers BeginExport (QueryExporter)</p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>procedure BeginExport;</source><br />
<br />
Cette méthode démarre un export.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|}<br />
<br />
Utilisez BeginExport / EndExport lorsque vous souhaitez exporter plusieurs requêtes dans le même fichier.<br />
<br />
Exemple :<br />
<br />
<source lang="delphi"><br />
procedure Export;<br />
var inst:TQueryExport; sel:TSelector;<br />
begin<br />
inst := TQueryExport.Create;<br />
inst.ExportName := 'my export file name.csv';<br />
inst.ExportTitle := 'my export title'<br />
inst.ExportFormat := EXPORT_FORMAT_CSV;<br />
//<br />
inst.beginExport;<br />
try<br />
sel := Vue1.CreateSelector(...);<br />
inst.Export(sel);<br />
<br />
sel := Vue2.CreateSelector(...);<br />
inst.Export(sel);<br />
finally<br />
inst.endExport;<br />
end;<br />
end;<br />
</source><br />
<br />
Voir aussi :<br />
<br />
* [[EndExport (QueryExporter)|EndExport]]<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:Sélecteur]]<br />
[[Category:version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Export_(QueryBuilder)
Export (QueryBuilder)
2023-11-28T10:03:51Z
<p>Syfre : </p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>function Export(sel:TSelector):Integer;</source><br />
<br />
Cette méthode exporte les objets du sélecteur.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|Result<br />
|Nombre d'objets exportés<br />
|-<br />
|sel<br />
|Sélecteur à exporter<br />
|}<br />
<br />
Cette fonction retourne le nombre d'objets affectés par l'opération.<br />
<br />
Exemple :<br />
<br />
<source lang="delphi"><br />
<br />
procedure Export;<br />
var sel:TSelector; aWhere,aTitle:string; inst:TQueryExporter;<br />
begin<br />
aWhere := ...; <br />
aTitle := ...;<br />
<br />
sel := ClassManager.CreateSelectorWhere(GetVueClass,aWhere,'',True,[<br />
...<br />
]);<br />
//<br />
inst := TQueryExporter.Create;<br />
inst.ExportName := ''; <br />
inst.ExportTitle := aTitle;<br />
inst.ExportFormat := EXPORT_FORMAT_CSV; <br />
inst.EstimateCount := -1; // Can't estimate <br />
inst.Export(sel); <br />
end;<br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|QueryExporter (tech)}}<br />
[[category:QueyExporter]]<br />
[[Category:version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/QueryExporter_(tech)
QueryExporter (tech)
2023-11-28T09:56:12Z
<p>Syfre : /* Attributs */</p>
<hr />
<div>__TOC__<br />
{{version11}}<br />
<br />
TQueryExporter est une classe technique permettant d'exporter des résultats de requête<br />
<br />
===Attributs===<br />
<br />
{|class="wikitable"<br />
|-<br />
!Attribut<br />
!Usage<br />
|-<br />
|[[ExportName (TQueryExporter)|ExportName]]<br />
|Nom du fichier d'export<br />
|-<br />
|[[ExportTitle (TQueryExporter)|ExportTitle]]<br />
|Titre du fichier d'export<br />
|-<br />
|[[ExportFormat (TQueryExporter)|ExportFormat]]<br />
|Format du fichier d'export<br />
|-<br />
|[[ExportEncoding (TQueryExporter)|ExportEncoding]]<br />
|Encodage du fichier d'export<br />
|-<br />
|[[ExportPropertyNames (TQueryExporter)|ExportPropertyNames]]<br />
|Nom des propriétés à exporter<br />
|-<br />
|[[EstimateCount (TQueryExporter)|EstimateCount]]<br />
|Nombre de ligne estimé<br />
|-<br />
|[[ExportCount (TQueryExporter)|ExportCount]]<br />
|Nombre de ligne exportées<br />
|-<br />
|[[ExportTime (TQueryExporter)|ExportTime]]<br />
|Durée de l'export<br />
|}<br />
<br />
===Méthodes d'instance===<br />
<br />
{|class="wikitable"<br />
|-<br />
!Méthode<br />
!Usage<br />
|-<br />
|[[Export (QueryExporter)|Export]]<br />
|Exporte un sélecteur<br />
|-<br />
|[[BeginExport (QueryExporter)|BeginExport]]<br />
|Démarre un export<br />
|-<br />
|[[EndExport (QueryExporter)|EndExport]]<br />
|Termine un export<br />
|-<br />
|[[GetCounter (QueryExporter)|GetCounter]]<br />
|Retourne la valeur d'un compteur<br />
|-<br />
|[[SetCounter (QueryExporter)|SetCounter]]<br />
|Positionne la valeur d'un compteur<br />
|}<br />
<br />
Voir aussi :<br />
<br />
* [[Selecteur (tech)|Sélecteur]]<br />
<br />
[[Category:Objets techniques]]<br />
[[Category:Sélecteur]]<br />
[[Category:QueryExporter]]<br />
[[Category:version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/UseCTE_(selector)
UseCTE (selector)
2023-11-28T08:32:55Z
<p>Syfre : Page créée avec « {{version11}} <source lang='delphi'>property useCTE:boolean;</source> '''Lecture/Ecriture''' Cette propriété force l'utilisation d'une requête "common table expressi... »</p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>property useCTE:boolean;</source><br />
<br />
'''Lecture/Ecriture'''<br />
<br />
Cette propriété force l'utilisation d'une requête "common table expression".<br />
<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
* [[Vue_locale_(langage)|Vue locale]]<br />
<br />
{{Footer|Selecteur (tech)}}<br />
[[category:Sélecteur]]<br />
[[Category:version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/ApplyRights_(selector)
ApplyRights (selector)
2023-11-28T08:31:00Z
<p>Syfre : Page créée avec « <source lang='delphi'>property ApplyRights:boolean;</source> '''Lecture/Ecriture''' Cette propriété détermine si les droits sont appliqués. Exemple <source lang='d... »</p>
<hr />
<div><source lang='delphi'>property ApplyRights:boolean;</source><br />
<br />
'''Lecture/Ecriture'''<br />
<br />
Cette propriété détermine si les droits sont appliqués.<br />
<br />
<br />
Exemple<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi :<br />
<br />
{{Footer|Selecteur (tech)}}<br />
[[category:Sélecteur]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Export_(selector)
Export (selector)
2023-11-28T08:27:29Z
<p>Syfre : </p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>function Export(const iName:string; const iTitle:string; iFormat:Integer):Integer;</source><br />
<br />
Cette méthode exporte les objets de la sélection.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|Result<br />
|Nombre d'objets exportés<br />
|-<br />
|iName<br />
|Nom du fichier exporté<br />
|-<br />
|iTitle<br />
|Titre du document<br />
|-<br />
|iFormat<br />
|Format du fichier d'export<br />
|}<br />
<br />
Cette fonction retourne le nombre d'objets affectés par l'opération.<br />
<br />
{{tip|Cette fonction utilise [[QueryExporter (tech)|un export de requête]] }}<br />
<br />
Exemple :<br />
<br />
<source lang="delphi"><br />
</source><br />
<br />
Voir aussi :<br />
<br />
* [[QueryExporter (tech)|Export de requête]]<br />
<br />
{{Footer|Selecteur (tech)}}<br />
[[category:Sélecteur]]<br />
[[Category:version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/AddParameter_(selector)
AddParameter (selector)
2023-11-28T08:22:36Z
<p>Syfre : </p>
<hr />
<div>{{Version11}}<br />
<br />
<source lang='delphi'>procedure AddParameter(const iName:string; iValue:variant);</source><br />
<br />
Cette méthode permet d'ajouter un paramètre nommée à la requête qui sera exécutée.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|iParameterName<br />
|Le nom du paramètre<br />
|-<br />
|iValue<br />
|La valeur du paramètre.<br />
|}<br />
<br />
Les paramètres nommés peuvent être utilisé dans les expression de requêtes.<br />
<br />
Exemple :<br />
<br />
<source lang="delphi"><br />
<br />
TVueCompteBalanceAux.GetSelector:TSelector;<br />
Type<br />
VueRoleTiers = viewOf(TCumulPeriodeAuxiliaire) <br />
<br />
....<br />
<br />
[(typeLot>=%ArgTypeDeLot) and (Periode.dateFin<=%ArgDateFinPeriode) and (oidApprocheComptable=%ArgApprocheComptable)] <br />
end;<br />
<br />
begin<br />
Result := VueRoleTiers.CreateSelector('','',True,[]);<br />
Result.useCTE := True; <br />
end;<br />
<br />
<br />
TProcessusBalance.GetSelector:TSelector;<br />
var aWhere:string;<br />
begin<br />
aWhere := ...<br />
...<br />
<br />
Result := TVueCompteBalanceAux.CreateSelector(aWhere,'codeTiers,libelleRoleTiers',True,[<br />
dateDebutPeriode,<br />
dateFinPeriode, <br />
aTypeLot, <br />
tiersDebut,<br />
tiersFin, <br />
aOTP,<br />
oidApprocheComptable, <br />
etablissementDebut,<br />
etablissementFin,<br />
perimetre<br />
]); <br />
<br />
// TVueCompteBalanceAux use implicit named parameters which must be defined<br />
<br />
Result.AddParameter('ArgDateDebutPeriode',dateDebutPeriode);<br />
Result.AddParameter('ArgDateFinPeriode',dateFinPeriode);<br />
Result.AddParameter('ArgTypeDeLot',aTypeLot);<br />
Result.AddParameter('ArgApprocheComptable',oidApprocheComptable);<br />
<br />
Result.ApplyRights := True<br />
end;<br />
</source><br />
<br />
Voir aussi :<br />
<br />
* [[Vue_locale_(langage)|Vue locale]]<br />
<br />
{{Footer|Selecteur (tech)}}<br />
[[category:Sélecteur]]<br />
[[Category:version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Scripts_sql_(maintenance)
Scripts sql (maintenance)
2023-11-27T08:26:08Z
<p>Syfre : /* RootOID */</p>
<hr />
<div>===RootOID===<br />
<br />
Retourne le max des racines d'OID d'une base de données avec OID caractères.<br />
<br />
<pre><br />
DECLARE @SQL nvarchar(max)<br />
DECLARE @TableName sysname<br />
DECLARE @TableUID int<br />
DECLARE @RootOID int<br />
<br />
DECLARE @MaxUID int<br />
DECLARE @MaxTableName sysname<br />
<br />
SELECT @MaxUID = 0<br />
SELECT @RootOID = cValue from sysCounter where cName='RootOID'<br />
<br />
DECLARE tables_cursor CURSOR FAST_FORWARD<br />
FOR<br />
select t.name from sys.all_columns c<br />
join sys.tables t on t.object_id = c.object_id<br />
where c.name='oid'<br />
<br />
OPEN tables_cursor<br />
<br />
FETCH NEXT FROM tables_cursor INTO @TableName<br />
<br />
WHILE @@FETCH_STATUS = 0<br />
BEGIN <br />
SELECT @SQL = 'select @TableUID = MAX(convert(INT, CONVERT(VARBINARY,''0x''+SUBSTRING(oid,21,8),1) )) from '+ @TableName<br />
EXEC sp_executesql @SQL, N'@TableUID int OUTPUT, @TableName varchar', @TableUID OUTPUT, @TableName = @TableName<br />
<br />
IF (@TableUID > @MaxUID ) <br />
BEGIN <br />
SELECT @MaxUID=@TableUID<br />
SELECT @MaxTableName = @TableName<br />
END<br />
<br />
FETCH NEXT FROM tables_cursor INTO @TableName<br />
<br />
END<br />
<br />
SELECT @MaxTableName, @MaxUID, @RootOID<br />
<br />
CLOSE tables_cursor<br />
DEALLOCATE tables_cursor<br />
</pre><br />
<br />
{{tip|La valeur de RootOID est stockée dans la séquence "RootOID" de la base}}<br />
<br />
[[Category:Base de données]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/EncodeURL_(http)
EncodeURL (http)
2023-11-07T18:23:03Z
<p>Flfay : Page créée avec « <source lang='delphi'>property EncodeURL:boolean;</source> '''Lecture/Ecriture''' Cette propriété indique si l'url doit être encodée, la valeur par défaut est vrai.... »</p>
<hr />
<div><source lang='delphi'>property EncodeURL:boolean;</source><br />
<br />
'''Lecture/Ecriture'''<br />
<br />
Cette propriété indique si l'url doit être encodée, la valeur par défaut est vrai.<br />
<br />
{{info|Positionner cette valeur peut être utile si l'encodage de l'url est géré dans le code}} <br />
<br />
Exemple:<br />
<source lang='delphi'><br />
begin<br />
end;<br />
</source><br />
<br />
Voir aussi:<br />
<br />
{{Footer|Requêtes HTTP (tech)}}<br />
[[category:Requêtes HTTP]]</div>
Flfay
https://frp.sage.fr/wiki1000/index.php/RelativeDateToString_(rtl)
RelativeDateToString (rtl)
2023-10-17T09:35:59Z
<p>Syfre : Page créée avec « <source lang='delphi'>Function RelativeDateToString(dt:TDatetime; iUseTranslation:boolean):string;</source> Cette fonction retourne la date relative d'une representation ... »</p>
<hr />
<div><source lang='delphi'>Function RelativeDateToString(dt:TDatetime; iUseTranslation:boolean):string;</source><br />
<br />
Cette fonction retourne la date relative d'une representation de [[Dates relatives (code)|date relative]].<br />
<br />
{|class="wikitable"<br />
|-<br />
|Result<br />
|La représentation en chaine de la date relative.<br />
|-<br />
|dt<br />
|la date relative à convertir.<br />
|-<br />
|iUseTranslation<br />
|<br />
* False: Utilise des abréviations <br />
* True : Utilise des traductions <br />
|}<br />
<br />
Exemple<br />
<br />
<source lang='delphi'><br />
//Procedure TestRelativeDate;<br />
var dt1,dt2:TDatetime; AStr1,Astr2:string;<br />
begin<br />
AStr1 := '-3 mois, la fin de l''année'; <br />
dt1 := StringToRelativeDate(AStr1); <br />
AStr2 := RelativeDateToString(dt1,false{iUseTransaltion}); <br />
ShowMessage(Format('%s - %s',[AStr1,AStr2])); <br />
dt2 := StringToRelativeDate(AStr2);<br />
if dt1=dt2 then SHowMessage('Ok') else showMessage('Failed'); <br />
end;<br />
</source><br />
<br />
Voir aussi:<br />
<br />
*[[GetAbsoluteDate (rtl)|GetAbsoluteDate]]<br />
*[[StringToRelativeDate (rtl)|StringToRelativeDate]]<br />
<br />
{{Footer|Développement DSM}}<br />
[[category:RTL Date et heure]]<br />
[[category:Date relative]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/SumSens_(ope)
SumSens (ope)
2023-09-03T08:51:34Z
<p>Syfre : Page créée avec « '''Exemple:''' <source lang="delphi"> procedure TTestFrameworkView.Test_view_ope_sumSens; var rg:TregClass; Args:Array[0..3] of Variant; ARslt,AExp:Currency; begin doCl... »</p>
<hr />
<div>'''Exemple:'''<br />
<br />
<source lang="delphi"><br />
procedure TTestFrameworkView.Test_view_ope_sumSens;<br />
var rg:TregClass; Args:Array[0..3] of Variant; ARslt,AExp:Currency;<br />
begin<br />
doCleanAll;<br />
// E A B<br />
CreateInstanceD('D1','D1.1',Date,1,'EUR',2.0,'EUR',1.0); //1: B-A = -1<br />
CreateInstanceD('D1','D1.2',Date,1,'EUR',1.0,'EUR',2.0); //1: B-A = 1<br />
<br />
CreateInstanceD('D1','D1.3',Date,0,'EUR',1.0,'EUR',2.0); //0: A-B = -1<br />
CreateInstanceD('D1','D1.4',Date,0,'EUR',2.0,'EUR',1.0); //0: A-B = 1<br />
//<br />
rg := ModelManager.FindRegClass('ProcessusA',false);<br />
Check(Assigned(rg),'ProcessusA not found');<br />
try<br />
//case C=1 then B-A else A-B)<br />
doCreateOperation(rg,'function ViewTypeDef(const iCode:string; iEntier:Integer):Currency;',<br />
'Type'+<br />
' MyView = viewof(ClassD)'+<br />
' unCode:string = unCodeA primary;'+<br />
' unEntier:Integer = unEntierA;'+ // needed in group by<br />
' sumMontant:TMoneyDT = sumSens(unMontantDT,unMontantDT_2,unEntierA);'+<br />
' end;'+<br />
''+<br />
'var inst:MyView;'+<br />
'begin'#13+<br />
' inst := MyView.Find(''(unCode=%1) and (unEntier=%2)'','''',true,[iCode,iEntier]);'+<br />
' if Assigned(inst)'+<br />
' then Result := inst.sumMontant.Value'+<br />
' else Result := 0;'+<br />
'end;');<br />
<br />
Args[0] := 'D1';<br />
Args[1] := 1;<br />
AExp := 0.0;<br />
ARslt := doExecuteMethod(rg, 'ViewTypeDef', Args);<br />
Check(ARslt=AExp,Format('Find in view failed (1), rslt:%0.2f expected:%0.2f',[ARslt,AExp]));<br />
<br />
Args[0] := 'D1';<br />
Args[1] := 0;<br />
AExp := 0.0;<br />
ARslt := doExecuteMethod(rg, 'ViewTypeDef', Args);<br />
Check(ARslt=AExp,Format('Find in view failed (0), rslt:%0.2f expected:%0.2f',[ARslt,AExp]));<br />
finally<br />
ModelManager.DestroyPackage(sTypeDefPackage);<br />
doDeleteOperation(rg,'ViewTypeDef');<br />
end;<br />
end;<br />
</source><br />
<br />
'''Requête:'''<br />
<br />
<pre><br />
select <br />
case when ISNULL(t0.unEntierA, 0)=1 then sum(ISNULL(t0.unMontantDT_2, 0)-ISNULL(t0.unMontantDT, 0)) else sum(ISNULL(t0.unMontantDT, 0)-ISNULL(t0.unMontantDT_2, 0)) end as "sumMontant",<br />
t0.unMontantDT_CodeDevise as "sumMontant_CodeDevise",<br />
Convert(DateTime,'2023-09-03 00:00:00',120) as "sumMontant_Date",<br />
NULL as "sumMontant_RPConv",<br />
case when ISNULL(t0.unEntierA, 0)=1 then sum(ISNULL(t0.unMontantDT_2_RPValue, 0)-ISNULL(t0.unMontantDT_RPValue, 0)) else sum(ISNULL(t0.unMontantDT_RPValue, 0)-ISNULL(t0.unMontantDT_2_RPValue, 0)) end as "sumMontant_RPValue",<br />
NULL as "sumMontant_TCConv",<br />
case when ISNULL(t0.unEntierA, 0)=1 then sum(ISNULL(t0.unMontantDT_2_TCValue, 0)-ISNULL(t0.unMontantDT_TCValue, 0)) else sum(ISNULL(t0.unMontantDT_TCValue, 0)-ISNULL(t0.unMontantDT_2_TCValue, 0)) end as "sumMontant_TCValue",t0.unCodeA as "unCode"<br />
from dbo.CLASSD t0<br />
where (t0.unCodeA = 'D1') and (t0.unEntierA=1)<br />
group by t0.unMontantDT_CodeDevise,t0.unCodeA,t0.unEntierA<br />
</pre><br />
<br />
'''Résultat :'''<br />
<br />
<pre><br />
unCodeA unEntierA unMontantDT unMontantDT_2<br />
================================================================================<br />
D1 1 2.00 1.00<br />
D1 1 1.00 2.00<br />
D1 0 1.00 2.00<br />
D1 0 2.00 1.00<br />
<br />
(4 rows affected)<br />
<br />
sumMontant sumMontant_CodeDevise sumMontant_Date sumMontant_RPConv sumMontant_RPValue sumMontant_TCConv sumMontant_TCValue unCode<br />
==========================================================================================================================================================<br />
0.00 EUR 2023-09-03 00:00:00.000 NULL 0.00 NULL 0.00 D1<br />
<br />
(1 row affected)<br />
<br />
<br />
Completion time: 2023-09-03T10:46:38.3932410+02:00<br />
</pre></div>
Syfre
https://frp.sage.fr/wiki1000/index.php/GetValue_(exp)
GetValue (exp)
2023-08-28T11:58:47Z
<p>Syfre : </p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>function GetValue(iExpression:string):Variant;</source><br />
<br />
Retourne le résultat de l'évaluation d'une expression <br />
<br />
{{tip|Cette fonction doit être utilisée dans les expressions comme valeur littérale}}<br />
<br />
{|class="wikitable"<br />
|-<br />
|iExpression<br />
|Expression objet évaluée<br />
|}<br />
<br />
Exemple :<br />
<br />
<source lang="delphi"><br />
Type<br />
VueSoldeEcriture = viewOf(TEcriture,VueSoldeComptePeriode)<br />
credit:Currency = credit:TCValue;<br />
debit:Currency = debit:TCValue;<br />
typeLot:Integer = piece.lot.typeLot; <br />
codeCompte:string = compteGeneral.codeCompte;<br />
captionCompte:string = compteGeneral.Caption; <br />
sensCompte:Integer = compteGeneral.sensPrivilegie; <br />
norme:string = piece.normeComptable.code; <br />
eDate:Tdatetime = eDate notInSelect; <br />
[eDate >= GetValue('begin Result := TFacadeInitGeneral.GetPreviousPeriodEndDate(Date); end;')] <br />
end;<br />
</source><br />
<br />
Voir aussi:<br />
<br />
* [[GetDate (exp)|GetDate]]<br />
<br />
<br />
{{Footer|Expressions objets (code)}}<br />
[[Category:Version11]]<br />
[[Category:Expressions]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/GetDate_(exp)
GetDate (exp)
2023-08-28T11:52:58Z
<p>Syfre : </p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>function GetDate():TDatetime;</source><br />
<br />
Retourne la date courante <br />
<br />
{{tip|Cette fonction doit être utilisée dans les expressions comme valeur littérale}}<br />
<br />
{|class="wikitable"<br />
|}<br />
<br />
Exemple :<br />
<source lang="delphi"><br />
Type<br />
VueSoldeComptePeriode = viewOf(TCumulPeriodeCompte,ISoldeCompte)<br />
//solde:Currency = sumDiff(creditTenue,debitTenue);<br />
credit:Currency = creditTenue;<br />
debit:Currency = debitTenue;<br />
typeLot:Integer = typeLot; <br />
codeCompte:string = compteGeneral.codeCompte;<br />
captionCompte:string = compteGeneral.Caption;<br />
sensCompte:Integer = compteGeneral.sensPrivilegie; <br />
norme:string = normeComptable.code; <br />
dateFin:Tdatetime = Periode.dateFin notInSelect;<br />
[dateFin < GetDate] <br />
end;<br />
</source><br />
<br />
Voir aussi:<br />
<br />
*[[GetValue (exp)|GetValue]]<br />
<br />
<br />
{{Footer|Expressions objets (code)}}<br />
[[Category:Version11]]<br />
[[Category:Expressions]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/DateAdd_(exp)
DateAdd (exp)
2023-08-28T11:51:38Z
<p>Syfre : Page créée avec « {{version11}} <source lang='delphi'>function DateAdd(partOfDate:TPartOfDate; iAttribute:string; iValue:Variant):TDatetime;</source> Retourne la valeur de l'attribut date... »</p>
<hr />
<div>{{version11}}<br />
<br />
<source lang='delphi'>function DateAdd(partOfDate:TPartOfDate; iAttribute:string; iValue:Variant):TDatetime;</source><br />
<br />
Retourne la valeur de l'attribut date ajouté de la partie de date définie par partOfDate <br />
<br />
{|class="wikitable"<br />
|-<br />
|PartOfDate<br />
|Constante de l'énumération TPartOfDate<br />
|-<br />
|Attribute<br />
|Référence à un attribut de type date.<br />
|-<br />
|iValue<br />
|Valeur à ajouter à la date<br />
|}<br />
<br />
Voir la fonction dbOutDateAdd du [[Translateur SQL (tech)|translateur SQL]].<br />
<br />
Exemple :<br />
<source lang="delphi"><br />
</source><br />
<br />
Voir aussi:<br />
<br />
<br />
{{Footer|Expressions objets (code)}}<br />
[[Category:Expressions]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Importer_une_r%C3%A9f%C3%A9rence_sur_une_interface_(import)
Importer une référence sur une interface (import)
2023-08-23T07:30:04Z
<p>Syfre : </p>
<hr />
<div>Pour importer des données comportant une référence vers une interface vous devez spécifier la classe implémentant l'interface avec une colonne "Définir le type du rôle"<br />
<br />
'''Exemple'''<br />
<br />
Modèle :<br />
<br />
[[image:model-ref-interface.png]]<br />
<br />
Fichier source :<br />
<br />
<pre><br />
C1;A1;WFClasseA<br />
C2;A2;<br />
C3;B1;WFClasseB<br />
</pre><br />
<br />
Descriptif d'importation:<br />
<br />
[[image:Import-ref-interface.png|1024px]]<br />
<br />
Dans cet exemple la classe du rôle est définie par la colonne 3 du fichier ou par la valeur par défaut WFClasseA si la valeur n'est pas renseignée dans le fichier.<br />
<br />
[[Category:Import]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/D%C3%A9veloppement_de_mod%C3%A8le_de_processus_m%C3%A9tiers_(FAQ)
Développement de modèle de processus métiers (FAQ)
2023-07-13T08:01:06Z
<p>Syfre : </p>
<hr />
<div>__TOC__<br />
===Comment ajouter un modèle de processus métiers===<br />
<br />
Un modèle de processus métier est une structure json enregistrée dans la class AutomationManager.<br />
<br />
La solution préconisée pour ajouter un modèle de processus est d'utiliser la méthode Initialize de la classe TRegisterXXX d'un paquet métier.<br />
<br />
* Créez un paquet métier<br />
* Ajoutez une classe TRegister<Nom du paquet métier><br />
* Ajoutez une méthode Initialize<br />
* Dans la méthode Initialize enregistrez le modèle de processus <br />
* Pour la définition du modèle s'inspirez d'un modèle existant.<br />
<br />
<source lang="delphi"><br />
//procedure TRegisterMyPackage;<br />
<br />
procedure _RegisterTemplateGenerationMyProcess;<br />
begin<br />
AutomationManager.RegisterTemplate(RegClass.Domain,<br />
'{'<br />
structure json définissant le processus<br />
'}'<br />
); <br />
end; <br />
<br />
begin<br />
_RegisterTemplateMyProcess;<br />
end;<br />
</source><br />
<br />
===Comment ajouter un modèle de mail===<br />
<br />
Les modèles de mail sont liés à une classe métier<br />
<br />
Pour ajouter un modèle de mail :<br />
<br />
* En tant qu'administrateur, dans le menu Administration<br />
: Menu Personnalisation / Gestion des modèles de mail<br />
<br />
===Comment définir les attributs signifiants d'une classe===<br />
<br />
Les attributs signifiants d'une classe, quand ils sont définis, permettent :<br />
<br />
:de définir les attributs contenant les adresses mail des destinataires<br />
:d'alimenter les champs paramètres proposés dans l'éditeur de mail.<br />
<br />
Pour définir ces attributs il faut ajouter une méthode de classe GetMailProperties qui retourne une structure json.<br />
<br />
Cette méthode peut être ajouter dans une extension de la classe.<br />
<br />
Exemple : Voir TRelance<br />
<br />
<source lang="delphi"><br />
//class function GetMailProperties:TJson;<br />
begin<br />
Result := TJson.Create('{emails:[],props:[],templates:[]}');<br />
// <br />
Result.emails.AddStruct('{title:"Adresse du tiers facturé", name:"emailTiersFacture", value:"roleTiers.sitePrivilegie.interlocuteurPrivilegie.email"}'); <br />
Result.emails.AddStruct('{title:"Adresse du tiers payeurs", name:"emailTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.interlocuteurPrivilegie.email"}');<br />
// <br />
Result.props.AddStruct('{title:"Raison sociale du tiers facturé", name:"raisonSocialeTiersFacture", value:"roleTiers.tiers.raisonSociale"}'); <br />
Result.props.AddStruct('{title:"Interlocuteur du tiers facturé", name:"interlocuteurTiersFacture", value:"roleTiers.sitePrivilegie.interlocuteurPrivilegie.nomPrenom"}'); <br />
Result.props.AddStruct('{title:"Adresse principale du tiers facturé", name:"adresseTiersFacture", value:"roleTiers.sitePrivilegie.Adresse.adresseNormalisee"}'); <br />
<br />
Result.props.AddStruct('{title:"Raison sociale du tiers payeur", name:"raisonSocialeTiersPayeur", value:"roleTiers.roleTiersPayeur.tiers.raisonSociale"}'); <br />
Result.props.AddStruct('{title:"Interlocuteur du tiers payeur", name:"interlocuteurTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.interlocuteurPrivilegie.nomPrenom"}'); <br />
Result.props.AddStruct('{title:"Adresse principale du tiers payeur", name:"adresseTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.Adresse.adresseNormalisee"}'); <br />
<br />
Result.props.AddStruct('{title:"Date de relance", name:"date", value:"dateRelance"}'); <br />
Result.props.AddStruct('{title:"Solde de relance", name:"solde", value:"solde"}');<br />
Result.props.AddStruct('{title:"Devise de relance", name:"devise", value:"devise.codeISO"}');<br />
Result.props.AddStruct('{title:"Numéro d''édition", name:"numeroEdition", value:"numeroEdition"}'); <br />
Result.props.AddStruct('{title:"Numéro de relance", name:"numeroRelance", value:"numeroRelance"}'); <br />
Result.props.AddStruct('{title:"Liste des échéances", name:"echeanceList", value:"detailEcheances"}'); <br />
end;<br />
</source><br />
<br />
===Comment définir un processus métiers===<br />
<br />
Voici les exemples à utiliser :<br />
<br />
{|class="wikitable"<br />
|-<br />
!Besoin<br />
!Exemple<br />
!Classe<br />
|-<br />
|Exécution d'un traitement planifié<br />
|[[Génération des commande_d'achat (bp template)|Génération des commandes d'achat]]<br />
|<br />
|-<br />
|Notification lorsque un objet à changé<br />
|[[Alerte sur dépassement de seuil de commande d'achat (bp)|Alerte sur dépassement de seuil de commande d'achat]]<br />
|<br />
|-<br />
|Notification lorsque un objet à changé<br />
|[[Alerte sur modification d'un compte société (bp)|Alerte sur modification d'un compte bancaire société]]<br />
|TCompteBancaire<br />
|-<br />
|Notification lorsque un objet à été créé et si une condition<br />
|[[Alerte sur solde compte bancaire débiteur (bp)|Alerte sur solde compte bancaire débiteur]]<br />
|TSolde<br />
|-<br />
|Notification à partir des résultats d'une vue<br />
|[[Notification de commande d'achat à valider (bp)|Notification de pièce d'achat à valider]]<br />
|TaskPieceTaxableValidatorNotifications<br />
|-<br />
|Notification à partir des résultats d'une vue<br />
|[[Contrôle des soldes de comptes généraux (bp)|Contrôle des soldes de comptes généraux]]<br />
|TaskAccountBalanceAtDate<br />
|-<br />
|Notification à partir des résultats d'une vue<br />
|[[Contrôle des postes budgétaires (bp)|Contrôle des postes budgétaires]]<br />
|<br />
|-<br />
|Envoi d'un mail client<br />
|[[Envoi de relance client (bp)|Envoi de relance client]]<br />
|TRelance<br />
|-<br />
|Exécution lorsqu'une condition se réalise (par planification)<br />
|[[Alerte sur échéance échue (bp)|Alerte sur échéance échue]]<br />
|TEcheance<br />
|}<br />
<br />
[[Category:Modèle de processus]]<br />
[[Category:Version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/SetClassImportant_(MM)
SetClassImportant (MM)
2023-07-07T06:16:23Z
<p>Syfre : </p>
<hr />
<div>{{Version1100}}<br />
<source lang='delphi'>procedure SetClassImportant(const iClassName:string);</source><br />
<br />
Cette méthode qualifie la classe comme classe importante.<br />
<br />
Les classes importantes apparaissent dans l'interface de certaine configuration.<br />
<br />
{|class="wikitable"<br />
|-<br />
|iClassName<br />
|Nom de la classe à protégée.<br />
|}<br />
<br />
<br />
Exemple :<br />
<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi<br />
<br />
{{Footer|ModelManager_(code)}}<br />
[[category:ModelManager]]<br />
[[Category:Configuration]]<br />
[[Category:Version1100]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/AddLineBreak_(htmlBody)
AddLineBreak (htmlBody)
2023-07-05T12:54:14Z
<p>Syfre : Page créée avec « <source lang='delphi'>procedure AddLineBreak()</source> Cette fonction ajoute un saut de ligne. {| class="wikitable" |- !Paramètre !Usage |} Exemple: <source lang='del... »</p>
<hr />
<div><source lang='delphi'>procedure AddLineBreak()</source><br />
<br />
Cette fonction ajoute un saut de ligne.<br />
<br />
{| class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|}<br />
<br />
Exemple:<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi:<br />
<br />
* [[TxmlHtmlDocument (tech)|Document HTML]]<br />
* [[htmlBody (TxmlHtmlDocument)|htmlBody]]<br />
<br />
{{Footer|HtmlBody_(TxmlHtmlDocument)}}<br />
[[category:Document XML]]<br />
[[Category:Document HTML]]<br />
[[Category:Version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/AddParagraph_(htmlBody)
AddParagraph (htmlBody)
2023-07-05T12:53:22Z
<p>Syfre : Page créée avec « <source lang='delphi'>procedure AddParagraph(const iText:string)</source> Cette fonction ajoute un paragraphe. {| class="wikitable" |- !Paramètre !Usage |- |iText |Text... »</p>
<hr />
<div><source lang='delphi'>procedure AddParagraph(const iText:string)</source><br />
<br />
Cette fonction ajoute un paragraphe.<br />
<br />
{| class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|iText<br />
|Texte du paragraphe<br />
|}<br />
<br />
Exemple:<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi:<br />
<br />
* [[TxmlHtmlDocument (tech)|Document HTML]]<br />
* [[htmlBody (TxmlHtmlDocument)|htmlBody]]<br />
<br />
{{Footer|HtmlBody_(TxmlHtmlDocument)}}<br />
[[category:Document XML]]<br />
[[Category:Document HTML]]<br />
[[Category:Version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/AddHeader_(htmlBody)
AddHeader (htmlBody)
2023-07-05T12:52:03Z
<p>Syfre : </p>
<hr />
<div><source lang='delphi'>procedure AddHeader(const iText:string; const iLevel:string)</source><br />
<br />
Cette fonction ajoute un titre à un document html.<br />
<br />
{| class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|iText<br />
|Texte du titre<br />
|-<br />
|iLevel<br />
|Niveau du titre<br />
|}<br />
<br />
Exemple:<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi:<br />
<br />
* [[TxmlHtmlDocument (tech)|Document HTML]]<br />
* [[htmlBody (TxmlHtmlDocument)|htmlBody]]<br />
<br />
{{Footer|HtmlBody_(TxmlHtmlDocument)}}<br />
[[category:Document XML]]<br />
[[Category:Document HTML]]<br />
[[Category:Version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/AddRow_(htmlTable)
AddRow (htmlTable)
2023-07-05T12:49:22Z
<p>Syfre : Page créée avec « <source lang='delphi'>procedure AddRow(const iCells:Array of variant)</source> Cette fonction ajoute une ligne à une table html. {| class="wikitable" |- !Paramètre !Us... »</p>
<hr />
<div><source lang='delphi'>procedure AddRow(const iCells:Array of variant)</source><br />
<br />
Cette fonction ajoute une ligne à une table html.<br />
<br />
{| class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|iCells<br />
|Cellules de la ligne<br />
|}<br />
<br />
Exemple:<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi:<br />
<br />
* [[TxmlHtmlDocument (tech)|Document HTML]]<br />
* [[htmlTable (TxmlHtmlDocument)|htmlTable]]<br />
<br />
{{Footer|HtmlBody_(TxmlHtmlDocument)}}<br />
[[category:Document XML]]<br />
[[Category:Document HTML]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/HtmlTable_(TxmlHtmlDocument)
HtmlTable (TxmlHtmlDocument)
2023-07-05T12:45:47Z
<p>Syfre : </p>
<hr />
<div><br />
Cette classe modélise une table d'un document Html<br />
<br />
===Opérations===<br />
{|class="wikitable"<br />
|-<br />
!Méthode<br />
!Usage<br />
|-<br />
|[[AddRow (htmlTable)|AddRow]]<br />
|Ajout d'une ligne<br />
|}<br />
<br />
Voir aussi:<br />
<br />
* [[TxmlHtmlDocument_(tech)|Document xml html]]<br />
* [[htmlBody (TxmlHtmlDocument)|htmlBody]]<br />
<br />
{{Footer|TxmlHtmlDocument_(tech)}}<br />
[[category:Objets techniques]]<br />
[[Category:Document XML]]<br />
[[Category:Document HTML]]<br />
[[Category:Version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/AddTable_(htmlBody)
AddTable (htmlBody)
2023-07-05T12:42:59Z
<p>Syfre : </p>
<hr />
<div><source lang='delphi'>function AddTable(const iColumns:Array of string):ThtmlTable</source><br />
<br />
Cette fonction ajoute une table html.<br />
<br />
{| class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|iColumns<br />
|Tableau de column<br />
|-<br />
|Result<br />
|Un object [[htmlTable (TxmlHtmlDocument)|hmlTable]]<br />
|}<br />
<br />
Exemple:<br />
<source lang='delphi'><br />
</source><br />
<br />
Voir aussi:<br />
<br />
* [[TxmlHtmlDocument (tech)|Document HTML]]<br />
* [[htmlTable (TxmlHtmlDocument)|htmlTable]]<br />
<br />
{{Footer|HtmlBody_(TxmlHtmlDocument)}}<br />
[[category:Document XML]]<br />
[[Category:Document HTML]]<br />
[[Category:Version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/HtmlBody_(TxmlHtmlDocument)
HtmlBody (TxmlHtmlDocument)
2023-07-05T12:37:11Z
<p>Syfre : </p>
<hr />
<div><br />
Cette classe modélise le corps d'un document Html<br />
<br />
===Opérations===<br />
{|class="wikitable"<br />
|-<br />
!Méthode<br />
!Usage<br />
|-<br />
|[[AddTable (htmlBody)|AddTable]]<br />
|Ajout d'une table (table)<br />
|-<br />
|[[AddHeader (htmlBody)|AddHeader]]<br />
|Ajout d'un titre (h)<br />
|-<br />
|[[AddParagraph (htmlBody)|AddParagrap]]<br />
|Ajout d'un paragraphe (p)<br />
|-<br />
|[[AddLineBreak (htmlBody)|AddLineBreak]]<br />
|Ajout d'un saut de ligne (br)<br />
|}<br />
<br />
Voir aussi:<br />
<br />
* [[TxmlHtmlDocument_(tech)|Document xml html]]<br />
<br />
{{Footer|TxmlHtmlDocument_(tech)}}<br />
[[category:Objets techniques]]<br />
[[Category:Document XML]]<br />
[[Category:Document HTML]]<br />
[[Category:Version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/TxmlHtmlDocument_(tech)
TxmlHtmlDocument (tech)
2023-07-05T12:25:59Z
<p>Syfre : </p>
<hr />
<div>===Introduction===<br />
<br />
Les objets TxmlHtmlDocument sont des descendants de TxmlDocument permettant de construire des documents xml html.<br />
<br />
TxmlHtmlMailDocument est un descendants de TxmlHtmlDocument permettant de construire un document html compatible avec les lecteurs de messagerie.<br />
<br />
{{tip|Dans un mail destiné à une messagerie il n'est pas possible d'utiliser certaines fonctionnalités, en particulier il n'est pas possible d'inclure du script}}<br />
<br />
===Propriétés===<br />
{|class="wikitable"<br />
|-<br />
!Propriété<br />
!Usage<br />
|-<br />
|htmlHead<br />
|Entête du document html (head)<br />
|-<br />
|[[htmlBody (TxmlHtmlDocument)|htmlBody]]<br />
|Corps du document html (body)<br />
|-<br />
|htmlContent<br />
|Contenu généré du document html <br />
|}<br />
<br />
===Opérations===<br />
{|class="wikitable"<br />
|-<br />
!Méthode<br />
!Usage<br />
|}<br />
<br />
'''Exemple:'''<br />
<br />
<source lang='delphi'><br />
//function Execute(var aReason:string):boolean;<br />
Type<br />
VueValideur = viewOf(TPieceTaxable)<br />
vp1: TValideurPossible = join(ValidationEtat.EtatPossible.EtatMetier,EtatMetier);<br />
vp2: TValideurPossible = join(ValidationEtat.RegleValidation,RegleValidation);<br />
gcv: TGroupeContactValidation = leftjoin(TGroupeValidation,vp2.ContactEtablissement); <br />
aId1:TOID = vp1.oid;<br />
aId2:TOID = vp2.oid; <br />
aIdVP:TOID = vp2.oidValideurPrecedent;<br />
aIdDV:TOID = oiddernierValideur; <br />
aIdCV:TOID = vp2.oidContactEtablissement; <br />
aIdCE:TOID = ISNULL(gcv.oidTContactEtablissement,vp2.oidContactEtablissement); <br />
// personne <br />
Mail:string = ISNULL(gcv.TContactEtablissement+eMail,vp2.ContactEtablissement.eMail); <br />
FirstName:string = ISNULL(gcv.TContactEtablissement+prenom,vp2.ContactEtablissement.prenom); <br />
LastName:string = ISNULL(gcv.TContactEtablissement+nom,vp2.ContactEtablissement.nom); <br />
Civility:string = ISNULL(gcv.TContactEtablissement+Civilite+Caption,vp2.ContactEtablissement+Civilite+Caption); <br />
// pièce <br />
estVomplet:boolean = estComplet; <br />
noPiece:string = noPiece; <br />
datePiece:Tdatetime = datePiece;<br />
totalHT: Tmoney = totalHT;<br />
typePieceCode:string = TypePieceGC.code; <br />
typePieceLibelle:string = TypePieceGC+Caption;<br />
tiersFactureCode:string = RoleTiersFacture.Tiers.code;<br />
tiersFactureLibelle:string = RoleTiersFacture.Tiers.Caption;<br />
affaireCode:string = Affaire+code;<br />
affaireLibelle:string = Affaire+Caption; <br />
// <br />
[ (estComplet=True) and (aId1=aId2) and (aIdDV<>aIdCV) and ((aIdVP='') or (aIdVP=aIdDV)) ] <br />
end;<br />
<br />
function _SendEmail(eMail,Subject:string; doc:TxmlHtmlMailDocument):boolean;<br />
begin<br />
Result := True; <br />
if (eMail<>'') and (doc<>nil) then<br />
begin<br />
Result := MailTo(eMail,Subject,doc.htmlContent); <br />
end; <br />
end; <br />
<br />
function _Subject(inst:VueValideur):string;<br />
begin<br />
Result := _TP('(No reply) (Sage FRP 1000) Commande(s) en attente de validation') <br />
end; <br />
<br />
procedure _BodyHeader(doc:TxmlHtmlMailDocument; inst:VueValideur);<br />
begin<br />
end; <br />
<br />
procedure _Body(table:ThtmlTable; inst:VueValideur);<br />
begin<br />
table.AddRow([<br />
inst.TranslateMsg(_TP('La pièce @noPiece@ en date du @datePiece@ d''un montant de @totalHT@ doit être validée'))<br />
]); <br />
end; <br />
<br />
var ls:TSelector; eMail,Subject:string; doc:TxmlhtmlMailDocument; table:ThmlTable; inst:VueValideur;<br />
begin<br />
aReason := ''; <br />
Result := True;<br />
// <br />
ls := VueValideur.CreateSelector('','Mail,typePieceCode,datePiece',true,[]);<br />
<br />
eMail := ''; Subject := ''; doc := nil;<br />
foreach inst in ls.AsCursor do<br />
begin<br />
if inst.Mail<>eMail then<br />
begin<br />
if not _sendEMail(email,Subject,doc) then<br />
begin<br />
// do not continue if send mail failed <br />
Result := False;<br />
aReason := _TP('Echec d''envoi de mail, vérifiez le paramétrage du service de messagerie'); <br />
Exit; <br />
end; <br />
// <br />
doc := TxmlHtmlMailDocument.Create(nil);<br />
doc.htmlbody.AddHeader(inst.TranslateMsg(_TP('A l''attention de @Civility@ @FirstName@ @LastName@')),'section');<br />
doc.htmlbody.AddHeader(_TP('A ce jour les pièces suivantes sont en attente de validation de votre part :'),'subsection'); <br />
// <br />
table := doc.htmlbody.AddTable([<br />
_TP('Type de pièce'),<br />
_TP('Tiers'),<br />
_TP('Affaire'),<br />
_TP('Pièce'),<br />
_TP('Date de pièce'), <br />
_TP('Montant')<br />
]);<br />
<br />
eMail := inst.Mail; <br />
Subject := _Subject(inst);<br />
end; <br />
//<br />
if Assigned(Table) then <br />
begin <br />
table.AddRow([<br />
inst.typePieceLibelle, <br />
inst.tiersFactureLibelle,<br />
inst.affaireLibelle, <br />
Format('%s#%s',[inst.noPiece,TFacadeModel.GetLinkUrlOfObject(inst.oid)]), <br />
inst.TranslateMsg('@datePiece@'),<br />
inst.TranslateMsg('@totalHT@')<br />
]); <br />
end; <br />
end;<br />
// <br />
Result := _SendEmail(eMail,Subject,doc); <br />
end;<br />
</source><br />
<br />
Voir aussi :<br />
<br />
* [[Documents_XML_(tech)|TxmlDocument]]<br />
<br />
{{Footer|Code métier}}<br />
[[category:Objets techniques]]<br />
[[Category:Document XML]]<br />
[[Category:Document HTML]]<br />
[[Category:Version11]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/GetMailProperties_(class)
GetMailProperties (class)
2023-07-05T12:11:31Z
<p>Syfre : Page créée avec « <source lang='delphi'>class function GetMailProperties:TJson</source> Définition des propriétés de mail utilisable dans les modèles de mail et les corps de mail des p... »</p>
<hr />
<div><source lang='delphi'>class function GetMailProperties:TJson</source><br />
<br />
Définition des propriétés de mail utilisable dans les modèles de mail et les corps de mail des processus métiers.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|Return<br />
|Une structure json définissant les variables de cette classe.<br />
|}<br />
<br />
<br />
'''Exemple'''<br />
<br />
<source lang='delphi'><br />
//class function TRelance.GetMailProperties:TJson;<br />
begin<br />
Result := TJson.Create('{emails:[],props:[],templates:[]}');<br />
// <br />
Result.emails.AddStruct('{title:"Adresse du tiers facturé", name:"emailTiersFacture", value:"roleTiers.sitePrivilegie.interlocuteurPrivilegie.email"}'); <br />
Result.emails.AddStruct('{title:"Adresse du tiers payeurs", name:"emailTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.interlocuteurPrivilegie.email"}');<br />
// <br />
Result.props.AddStruct('{title:"Raison sociale du tiers facturé", name:"raisonSocialeTiersFacture", value:"roleTiers.tiers.raisonSociale"}'); <br />
Result.props.AddStruct('{title:"Interlocuteur du tiers facturé", name:"interlocuteurTiersFacture", value:"roleTiers.sitePrivilegie.interlocuteurPrivilegie.nomPrenom"}'); <br />
Result.props.AddStruct('{title:"Adresse principale du tiers facturé", name:"adresseTiersFacture", value:"roleTiers.sitePrivilegie.Adresse.adresseNormalisee"}'); <br />
<br />
Result.props.AddStruct('{title:"Raison sociale du tiers payeur", name:"raisonSocialeTiersPayeur", value:"roleTiers.roleTiersPayeur.tiers.raisonSociale"}'); <br />
Result.props.AddStruct('{title:"Interlocuteur du tiers payeur", name:"interlocuteurTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.interlocuteurPrivilegie.nomPrenom"}'); <br />
Result.props.AddStruct('{title:"Adresse principale du tiers payeur", name:"adresseTiersPayeur", value:"roleTiers.roleTiersPayeur.sitePrivilegie.Adresse.adresseNormalisee"}'); <br />
<br />
Result.props.AddStruct('{title:"Date de relance", name:"date", value:"dateRelance"}'); <br />
Result.props.AddStruct('{title:"Solde de relance", name:"solde", value:"solde"}');<br />
Result.props.AddStruct('{title:"Devise de relance", name:"devise", value:"devise.codeISO"}');<br />
Result.props.AddStruct('{title:"Numéro d''édition", name:"numeroEdition", value:"numeroEdition"}'); <br />
Result.props.AddStruct('{title:"Numéro de relance", name:"numeroRelance", value:"numeroRelance"}'); <br />
Result.props.AddStruct('{title:"Liste des échéances", name:"echeanceList", value:"detailEcheances"}'); <br />
end;<br />
</source><br />
<br />
Voir aussi:<br />
<br />
*[[CreateTemplate_(TdbfMailtemplate)|Création d'un modèle de mail]]<br />
<br />
<br />
{{Footer|Modèle de mail (bp)}}<br />
[[Category:Version11]]<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/CreateTemplate_(TdbfMailtemplate)
CreateTemplate (TdbfMailtemplate)
2023-07-05T12:07:46Z
<p>Syfre : Page créée avec « <source lang='delphi'>procedure TdbfMailtemplate.CreateTemplate(const iTitle:string; const iClassName:string; const iSubject:string; const iBody:String; iLang:string; iRea... »</p>
<hr />
<div><source lang='delphi'>procedure TdbfMailtemplate.CreateTemplate(const iTitle:string; const iClassName:string; const iSubject:string; const iBody:String; iLang:string; iReadOnly:boolean)</source><br />
<br />
Enregistrement d'un modèle de mail.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|iTitle<br />
|La libellé du modèle de mail<br />
|-<br />
|iClassName<br />
|La classe associée au mail<br />
|-<br />
|iSubject<br />
|Sujet du mail<br />
|-<br />
|iBody<br />
|Le corps du mail<br />
|-<br />
|iLang<br />
|Language du mail<br />
|-<br />
|iReadOnly<br />
|Ce modèle est en lecture seule<br />
|}<br />
<br />
A l'intérieur du corps du mail il est possible d'introduire des variables [xx] qui seront substituées lors de la génération du mail, ces variables peuvent être :<br />
<br />
* Des références à d'autre modèle de mail qui seront alors inclus lors de la génération.<br />
* Des références à des attributs de la classe associée au modèle.<br />
<br />
Pour une classe associée à un mail il est possible de définir des variables en utilisant la méthode de classe [[GetMailProperties (class)|GetMailProperties]]<br />
<br />
'''Exemple'''<br />
<br />
<source lang='delphi'><br />
//procedure RegisterMailTemplates;<br />
begin<br />
{$SETLINEBREAK}<br />
// <br />
TdbfMailtemplate.CreateTemplate('Mail de relance au tiers payeur','TRelance',<br />
<br />
// subject <br />
'(No reply) (Sage FRP 1000) Relance de facture(s) en attente de réglement',<br />
<br />
// body <br />
'[mailTemplate(MailHeader)]'<br />
'<div role="content">' <br />
'<h3>A l''attention de [interlocuteurTiersPayeur]</h3>'<br />
<br />
'<p>En date du [date]<br></p>'<br />
'<p>Sauf erreur ou omission de notre part, les éléments présentés ci-après restent impayés à ce jour,<br></p>'<br />
<br />
'[echeanceList]' <br />
<br />
'<p>'<br />
' Montant total à régler : [solde]<br>' <br />
'<br>'<br />
'Pour le compte de la société :<br>'<br />
'[raisonSocialeTiersFacture]<br>' <br />
'[adresseTiersFacture]<br>' <br />
'</p>'<br />
<br />
'<p>Veuillez agréer, Madame, Monsieur, nos salutations les meilleures.</p>' <br />
'</div>' <br />
'[mailTemplate(MailFooter)]'<br />
<br />
,'fr',True{readOnly}); <br />
<br />
end;<br />
</source><br />
<br />
Voir aussi:<br />
<br />
* [[GetMailProperties (class)|GetMailProperties]]<br />
<br />
<br />
{{Footer|Modèle de mail (bp)}}<br />
[[Category:Version11]]<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Mod%C3%A8le_de_mail_(bp)
Modèle de mail (bp)
2023-07-05T09:12:56Z
<p>Syfre : </p>
<hr />
<div><br />
Les modèles de mail permette d'enregistrer des modèle de corps de mail utilisable ensuite dans les processus métiers.<br />
<br />
==Enregistrement d'un modèle de mail==<br />
<br />
La méthode préconisée pour enregistrer un modèle de mail est d'utiliser la méthode Initialize de la classe TRegisterXXX d'un paquet métier<br />
<br />
{|class="wikitable"<br />
|-<br />
!Méthode<br />
!Usage<br />
|-<br />
|[[CreateTemplate (TdbfMailtemplate) |CreateTemplate]]<br />
|Création et enregistrement d'un modèle de mail<br />
|}<br />
<br />
==Définition des propriétés de mail associées à une classe métier==<br />
<br />
Pour une classe associée à un mail il est possible de définir des variables en utilisant la méthode de classe [[GetMailProperties_(class)|GetMailProperties]]<br />
<br />
<br />
[[Category:Version11]]<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/RegisterTemplate_(AutomationManager)
RegisterTemplate (AutomationManager)
2023-07-05T08:21:37Z
<p>Syfre : </p>
<hr />
<div><source lang='delphi'>procedure RegisterTemplate(const iDomain:string; const iJson:String)</source><br />
<br />
Enregistrement d'un modèle de processus métier.<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Usage<br />
|-<br />
|iDomain<br />
|Le domaine métier du processus<br />
|-<br />
|iJson<br />
|Une expression structure json définissant le processus.<br />
|}<br />
<br />
Exemple<br />
<source lang='delphi'><br />
procedure _RegisterTemplateGenerationCommandeAchat();<br />
begin<br />
AutomationManager.RegisterTemplate(RegClass.Domain,<br />
'{'<br />
' "status":"ok",' <br />
' "categories":[' <br />
' {"t":[{"l":"en","t":"Event"},{"l":"fr","t":"Evènement"}]},'<br />
' {"t":[{"l":"en","t":"Purchase orders"},{"l":"fr","t":"Commandes d''achat"}]}'<br />
' ],'<br />
' "icon":"'+cAutomationIcon_Schedule+'",'<br />
' "t":[{"l":"en","t":"Every days generate purchase orders"},{"l":"fr","t":"Tous les jours générer les commandes d''achat"}],'<br />
' "sentence":'<br />
' {'<br />
' "words":['<br />
' {"t":[{"l":"en","t":"Every days at"},{"l":"fr","t":"Toutes les jours à"}]},'<br />
' {"t":[{"l":"en","t":"time"},{"l":"fr","t":"heure"}],'<br />
' "tid":"TBpEventInitializationClock",'<br />
' "pid":"timeOfDay",'<br />
' "action":{"n":"'+cAutomationAction_Time+'", "default":"01:00"}'<br />
' },'<br />
<br />
' {"t":[{"l":"en","t":"Then"},{"l":"fr","t":"Alors"}], "stepBreak":true},'<br />
<br />
' {"t":[{"l":"en","t":"generate purchase orders with these"},{"l":"fr","t":"générer les commandes d''achat avec ces"}]},'<br />
' {"t":[{"l":"en","t":"parameters"},{"l":"fr","t":"paramètres"}],'<br />
' "tid":"TProcessTaskActivity",'<br />
' "pid":"config",'<br />
' "cid":"name",'<br />
' "action":{"n":"'+cAutomationAction_Configure+'"}'<br />
' }'<br />
' ]'<br />
' },'<br />
' "tasks":['<br />
' {"name":"TBpEventInitializationClock", "params":['<br />
' {"n":"timeOfDay","v":"01:00:00"},'<br />
' {"n":"planification","v":"RV:DD,RI:1,DT:[timeOfDay]"},'<br />
' ]},'<br />
<br />
' {"name":"TProcessTaskActivity", "params":['<br />
' {"n":"name","v":{'<br />
' "id":"TProcessusPropositionAchat",'<br />
' "title":"Traitement des propositions d''achat",'<br />
' "name":"TProcessusPropositionAchat",'<br />
' "form":"egescom_genpropachat.dfm",'<br />
' },"mid":1},'<br />
' {"n":"config","sid":1}'<br />
' ]}'<br />
' ]'<br />
'}'<br />
); <br />
end; <br />
</source><br />
<br />
Voir aussi<br />
<br />
<br />
{{Footer|Modèle de processus métiers (bp)}}<br />
[[Category:Version11]]<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Am%C3%A9liorations_des_contr%C3%B4les_d%27interface_(Version_11.00)
Améliorations des contrôles d'interface (Version 11.00)
2023-07-05T06:26:59Z
<p>Syfre : /* Evènement attribut a changé */</p>
<hr />
<div>__TOC__<br />
<br />
==Navigation vers une URL externe==<br />
<br />
Utilisez un contrôle de type TDragLabel associé à un contrôle d'édition simple.<br />
<br />
*Contrôle d'édition<br />
:Visible: false<br />
:Text: url vers laquelle naviguer<br />
<br />
*Contrôle drag label<br />
:Caption: libellé associée à l'url<br />
:LinkControl: contrôle d'édition<br />
:Visible: true<br />
<br />
==Lien vers un écran==<br />
<br />
Le nom de l'écran peut être défini par un attribut de la source de données associée au lien.<br />
<br />
==Grille==<br />
<br />
===Colonne de type bouton===<br />
<br />
Les colonnes de type bouton supportent un nouveau mode d'affichage "lien"<br />
<br />
Dans ce mode, la valeur du champs associé à la colonne est affiché (comme une colonne de type chaîne) sous forme de lien. <br />
<br />
===Format des montants===<br />
<br />
Le champ format d'une colonne de grille affichant des montants supporte les paramètres suivant :<br />
<br />
{|class="wikitable"<br />
|-<br />
|#TC#<br />
|Code ISO de la devise de tenu de compte<br />
|-<br />
|#RP#<br />
|Code ISO de la devise de reporting<br />
|-<br />
|#TR#<br />
|Code ISO de la devise de transaction<br />
|-<br />
|!<br />
|Affiche le sens du montant correspondant à (Débit-Credit)<br />
* (C) : Valeur négative<br />
* (D) : Valeur positive<br />
|}<br />
<br />
Exemple :<br />
<br />
<pre><br />
Valeur : -1000<br />
Devise TC : Euro<br />
format : ,0.00 #TC# !<br />
Affiche : 1 000.00 EUR (C)<br />
</pre><br />
<br />
==Dataset==<br />
===Dataset sur une interface===<br />
<br />
Il est possible d'utiliser une interface comme classe d'un dataset.<br />
<br />
* La classe concrète utilisée est alors définie par le paramètre ClassFilter du dataset<br />
* Ce paramètre peut être un argument de l'écran<br />
* Si la classe n'est pas définie la première classe implémentant l'interface est utilisée.<br />
<br />
Exemple :<br />
<br />
Dans une interface utilisant un modèle MVC, vous pouvez afficher une vue dont le calcul varie suivant un paramètre<br />
<br />
Pour cela :<br />
<br />
* Définissez l'interface commune de la vue<br />
* Définissez des classes vue implémentant cette interface<br />
* Utilisez un dataset sur cette interface<br />
* Utilisez un contrôleur pour définir la vue à afficher en fonction du paramétrage à l'aide d'un attribut calculé (GetClassView).<br />
* Définissez un paramètre décran sur cet attribut calculé (ArgClassView)<br />
* Définissez la propriété ClassFilter du dataset de l'interface sur ce paramètre d'écran (ClassFilter=ArgClassView)<br />
<br />
Lorsque le dataset vue est rafraîchi, la classe de l'interface est redéfinie.<br />
<br />
===Evènement un attribut a changé===<br />
<br />
Les datasets émettent un nouvel évènement evsOnDataSetChangeEvent déclenché lorsqu'un attribut de l'objet associé à changé.<br />
<br />
Utilisez GridFieldName du déclencheur pour définir l'attribut pris en compte.<br />
<br />
Exemple :<br />
<br />
Dans une interface utilisant un modèle MVC, vous pouvez contrôler le filtre d'un dataset par un attribut non persistant du contrôleur.<br />
<br />
Pour cela:<br />
* Ajouter un dataset sur la classe contrôleur<br />
* Ajouter un dataset sur la classe vue à afficher.<br />
* Ajouter un datasetRefresh sur le dataset de la classe vue.<br />
* Définissez un attribut non persistent calculant le filtre du dataset (GetFiltre)<br />
* Définissez un argument d'écran sur cet attribut (ArgFiltre)<br />
* Définissez le filtre du dataset sur le paramètre d'écran (filter=%ArgFiltre)<br />
* Déclenchez le datasetRefresh sur l'évènement evsOnDataSetChangeEvent du dataset du contrôleur avec GridFieldName=GetFilter.<br />
<br />
<br />
[[Category:Version1100]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Version_11.00_(release_note)
Version 11.00 (release note)
2023-07-05T06:22:53Z
<p>Syfre : </p>
<hr />
<div><br />
==Administration Web==<br />
* Mise en place de profils de traces sur le modèle des profils de droits.<br />
* Amélioration de la consultation des évènements de traces (Web)<br />
* Amélioration de la consulation du journal de connexion<br />
<br />
==Fournisseurs de service==<br />
* Nouveau fournisseur de service Sage (API SIREN, VIES, Signature des PDF)<br />
<br />
==Service==<br />
* Support de SMTP en mode OAuth2<br />
<br />
==Sécurité==<br />
* [[Mode_d'exécution_(script)|Gestion du mode Internet]]<br />
* [[Mode_d'exécution_(script)|Contrôle de l'exécution d'évaluation d'expression par le script.]]<br />
* Journal d'envois de mail dans le répertoire des logs<br />
* Cryptage des urls de base de données lorsqu'elles sont stockées dans la base.<br />
<br />
==Automatisation==<br />
* [[Modèle_de_processus_métiers_(bp)|Modèle de processus métier]]<br />
* [[Modèle de mail (bp)|Modèle de mail]]<br />
<br />
==Modèle==<br />
* [[Vue_locale_(langage)|Amélioration des vues locales.]]<br />
* Ajout de la qualification des classes essentielles dans le modèle<br />
<br />
==Script==<br />
* Amélioration de la fonction [[MailTo (rtl)|d'envoi de mail]]<br />
* Amélioration de la fonction [[TranslateMsg_(Instance)|TranslateMsg]]<br />
* [[TxmlHtmlDocument (tech)|Ajout d'un composant de génération de xhtml]]<br />
<br />
==Interface utilisateur==<br />
* [[Améliorations des contrôles d'interface (Version 11.00)]]<br />
<br />
<br />
==Gestion des tâches==<br />
* [[Processus métiers (MOM)|Gestion des évènements métiers]]<br />
<br />
[[Category:Version1100]]<br />
[[Category:Release note]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Alerte_sur_solde_des_%C3%A9ch%C3%A9ances_%C3%A9chues_par_tiers_(bp)
Alerte sur solde des échéances échues par tiers (bp)
2023-06-21T08:17:13Z
<p>Syfre : /* Action */</p>
<hr />
<div>==Alerte sur solde par tiers d'échéances échues==<br />
<br />
===Déclenchement===<br />
<br />
Lorsque le solde par tiers des échéances échues d'un certain nombre de jours et supérieur à un certain montant<br />
<br />
===Action===<br />
<br />
Envoie un mail de notification au propriétaire du processus<br />
<br />
'''Exemple de contenu du mail'''<br />
<br />
[[image:wf-soldes-echeances.png|720px]]<br />
<br />
===Paramètres===<br />
<br />
* Nombre de jour de dépassement de l'échéance<br />
* Montant de seuil de l'échéance.<br />
<br />
===Note===<br />
<br />
Lorsque de nombreux soldes sont concernées, le processus envoie un mail par jour contenant une liste triée par montant des soldes et limité à 100 soldes.<br />
<br />
Un solde ne peut être inclu qu'une seule fois dans un mail.<br />
<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Alerte_sur_%C3%A9ch%C3%A9ance_%C3%A9chue_au_d%C3%A9bit_(bp)
Alerte sur échéance échue au débit (bp)
2023-06-20T15:22:15Z
<p>Syfre : /* Action */</p>
<hr />
<div>==Alerte sur échéance échue==<br />
<br />
===Déclenchement===<br />
<br />
Lorsqu'une échéance est échue d'un certain nombre de jours et supérieure à un certain montant<br />
<br />
===Action===<br />
<br />
Envoie un mail de notification au propriétaire du processus<br />
<br />
'''Exemple de contenu du mail'''<br />
<br />
[[image:wf-echeances.png|720px]]<br />
<br />
===Paramètres===<br />
<br />
* Nombre de jour de dépassement de l'échéance<br />
* Montant de seuil de l'échéance.<br />
<br />
===Note===<br />
<br />
Lorsque de nombreuse échéances sont concernées, le processus envoie un mail par jour contenant une liste triée par montant des échéances et limité à 100 échéances.<br />
<br />
Par exemple, si il y a 250 échues de plus de 10 jours en date du 15 Juin et que le processus est démarré le 15 Juin<br />
<br />
* Le 16 Juin<br />
: Envoi d'un mail des 100 premières échéances échues<br />
* Le 17 Juin<br />
: Envoie d'un mail des 100 échéances suivantes<br />
* Le 18 Juin<br />
: Envoie d'un mail des 50 échéances restantes<br />
<br />
Une échéance ne peut être incluse qu'une seule fois dans un mail.<br />
<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Contr%C3%B4le_des_postes_budg%C3%A9taires_(bp)
Contrôle des postes budgétaires (bp)
2023-06-20T15:12:22Z
<p>Syfre : Page créée avec « ==Contrôle des postes budgétaires== Contrôle le réalisé des postes budgétaires ===Déclenchement=== Une fois par mois. ===Action=== Envoie un mail au propriéta... »</p>
<hr />
<div>==Contrôle des postes budgétaires==<br />
<br />
Contrôle le réalisé des postes budgétaires<br />
<br />
===Déclenchement===<br />
<br />
Une fois par mois.<br />
<br />
===Action===<br />
<br />
Envoie un mail au propriétaire du processus contenant la liste des postes budgétaires dont le réalisé plus l'engagé dépasse le montant du poste. <br />
<br />
===Paramètres===<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Valeur par défaut<br />
|-<br />
|Mode de totalisation<br />
|Périodes sélectionnées<br />
|-<br />
|Norme comptable<br />
|Exploitation<br />
|-<br />
|Préfixe de poste budgétaire<br />
|<br />
|-<br />
|Pourcentage de dépassement<br />
|0<br />
|}<br />
<br />
Mode de totalisation<br />
* Périodes sélectionnées<br />
: Réalise le cumul sur la période<br />
<br />
* Périodes cumulées<br />
: Réalise le cumul à partir du début de l'exercice jusqu'à la période en cours<br />
<br />
* Exercice<br />
: Réalise le cumul sur l'exercice<br />
<br />
<br />
<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Alerte_sur_modification_d%27un_compte_soci%C3%A9t%C3%A9_(bp)
Alerte sur modification d'un compte société (bp)
2023-06-20T15:03:38Z
<p>Syfre : Page créée avec « ==Alerte sur modification d'un compte bancaire société== ===Déclenchement=== Quand un compte bancaire d'un tiers société est créé ou modifié. ===Action=== Envo... »</p>
<hr />
<div>==Alerte sur modification d'un compte bancaire société==<br />
<br />
===Déclenchement===<br />
<br />
Quand un compte bancaire d'un tiers société est créé ou modifié.<br />
<br />
===Action===<br />
<br />
Envoie un mail de notification au propriétaire du processus.<br />
<br />
<br />
===Paramètres===<br />
<br />
Aucun<br />
<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Alerte_sur_solde_compte_bancaire_d%C3%A9biteur_(bp)
Alerte sur solde compte bancaire débiteur (bp)
2023-06-20T14:04:30Z
<p>Syfre : Page créée avec « ==Alerte sur solde compte bancaire débiteur== ===Déclenchement=== Quand un solde bancaire débiteur supérieur à un seuil est créé. ===Action=== Envoie un mail au... »</p>
<hr />
<div>==Alerte sur solde compte bancaire débiteur==<br />
<br />
===Déclenchement===<br />
<br />
Quand un solde bancaire débiteur supérieur à un seuil est créé.<br />
<br />
===Action===<br />
<br />
Envoie un mail au propriétaire du processus.<br />
<br />
<br />
===Paramètres===<br />
<br />
Valeur du seuil de déclenchement.<br />
<br />
<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Envoie_de_relance_client_(bp)
Envoie de relance client (bp)
2023-06-20T13:42:31Z
<p>Syfre : a déplacé Envoie de relance client (bp) vers Envoi de relance client (bp)</p>
<hr />
<div>==Envoie de relance au client==<br />
<br />
===Déclenchement===<br />
<br />
Lorsqu'une relance est créée<br />
<br />
===Action===<br />
<br />
Envoie un mail au client contenant le détail des échéances échues.<br />
<br />
'''Exemple de mail de relance'''<br />
<br />
[[image:wf-relance-client.png|75%]]<br />
<br />
===Paramètres===<br />
<br />
Template de mail de relance<br />
<br />
===Notes===<br />
<br />
La classe TRelance expose les propriétés suivantes pour la construction du mail (voir la méthode de classe GetMailProperties) :<br />
<br />
{|class="wikitable"<br />
|-<br />
!Propriété<br />
!Valeur<br />
|-<br />
|emailTiersFacture<br />
|EMail du tiers facturé<br />
|-<br />
|emailTiersPayeur<br />
|Email du tiers payeur<br />
|-<br />
|raisonSocialeTiersFacture<br />
|Raison sociale du tiers facturé<br />
|-<br />
|interlocuteurTiersFacture<br />
|Interlocteur du tiers facturé<br />
|-<br />
|adresseTiersFacturé<br />
|Adresse du tiers facturé<br />
|-<br />
|raisonSocialeTiersPayeur<br />
|Raison sociale du tiers payeur<br />
|-<br />
|interlocuteurTiersPayeur<br />
|Interlocuteur du tiers payeur<br />
|-<br />
|adresseTiersPayeur<br />
|Adresse du tiers payeur<br />
|-<br />
|date<br />
|Date de relance<br />
|-<br />
|solde<br />
|Solde de relance<br />
|-<br />
|devise<br />
|Devise de relance<br />
|-<br />
|numeroEdition<br />
|Numéro de l'édition de la relance<br />
|-<br />
|numeroRelance<br />
|Numéro de relance<br />
|-<br />
|echeanceList<br />
|Liste des échéances dûes<br />
|}<br />
<br />
Il existe un template de mail enregistré pour les relances<br />
<br />
Voir<br />
* Class Function TRelance.GetMailProperties():TJson;<br />
* procedure TRegisterCptMouvement.RegisterMailTemplates();<br />
* procedure TRegisterGenSociete.RegisterMailTemplates();<br />
<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Notification_de_commande_d%27achat_%C3%A0_valider_(bp)
Notification de commande d'achat à valider (bp)
2023-06-20T09:09:23Z
<p>Syfre : /* Notification de commande d'achat à valider */</p>
<hr />
<div>==Notification de pièce d'achat à valider==<br />
<br />
===Déclenchement===<br />
<br />
Tous les jours<br />
<br />
===Action===<br />
<br />
Envoie un mail aux valideurs ayant des commandes d'achat à valider.<br />
<br />
'''Exemple de mail'''<br />
<br />
[[image:wf-validation-commandes-2.png|720px]]<br />
<br />
===Paramètres===<br />
<br />
Aucun<br />
<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Alerte_sur_d%C3%A9passement_de_seuil_de_commande_d%27achat_(bp)
Alerte sur dépassement de seuil de commande d'achat (bp)
2023-06-20T09:04:28Z
<p>Syfre : Page créée avec « ==Alerte sur dépassement de seuil de commandes d'achat== ===Déclenchement=== Lors de la création ou modification d'une commande d'achat ===Action=== Si le montant H... »</p>
<hr />
<div>==Alerte sur dépassement de seuil de commandes d'achat==<br />
<br />
===Déclenchement===<br />
<br />
Lors de la création ou modification d'une commande d'achat<br />
<br />
===Action===<br />
<br />
Si le montant HT de la commande dépasse un certain seuil alors envoyer un mail d'alerte au propriétaire du processus.<br />
<br />
===Paramètres===<br />
<br />
Montant du seuil d'alerte.<br />
<br />
<br />
[[Category:Modèle de processus]]</div>
Syfre
https://frp.sage.fr/wiki1000/index.php/Contr%C3%B4le_des_soldes_de_comptes_g%C3%A9n%C3%A9raux_(bp)
Contrôle des soldes de comptes généraux (bp)
2023-06-20T08:59:52Z
<p>Syfre : /* Note */</p>
<hr />
<div>==Contrôle des soldes de comptes généraux==<br />
<br />
Contrôle le solde des comptes généraux.<br />
<br />
===Déclenchement===<br />
<br />
Une fois par mois.<br />
<br />
===Action===<br />
<br />
Envoie un mail au propriétaire du processus contenant la liste des soldes des comptes sélectionnés, dont la valeur absolue du solde est strictement supérieure au seuil. <br />
<br />
'''Exemple de mail envoyé'''<br />
<br />
[[image:wf-controle-soldes-comptables.png|720px]]<br />
<br />
===Note===<br />
<br />
* Si le seuil est zéro, les comptes de solde null ne seront pas inclus.<br />
* Si le seuil est négatif, les comptes de solde null seront inclus.<br />
<br />
===Paramètres===<br />
<br />
{|class="wikitable"<br />
|-<br />
!Paramètre<br />
!Valeur par défaut<br />
|-<br />
|Préfixe de compte<br />
|47<br />
|-<br />
|Seuil d'alerte<br />
|0<br />
|-<br />
|Norme comptable<br />
|National<br />
|-<br />
|Type de lot<br />
|Réel<br />
|}<br />
<br />
===Note===<br />
<br />
* La norme EXP est incluse dans la requête, par exemple si la norme sélectionnée est Nationale les écritures Nationales ET Exploitation seront prises en compte.<br />
* La requête s'appuie sur les cumuls par période jusqu'à la période courante, puis sur les écritures pour la période en cours.<br />
<br />
<br />
[[Category:Modèle de processus]]</div>
Syfre