Descriptor (TQueryExecuteTask)

De Wiki1000
(Différences entre les versions)
Ligne 139 : Ligne 139 :
 
===output===
 
===output===
 
Cette section décrit la destination de l'export
 
Cette section décrit la destination de l'export
 +
 +
{|class="wikitable"
 +
|-
 +
!Item
 +
!Type
 +
!O/F
 +
!Valeur
 +
|-
 +
|BooksheetName
 +
|string
 +
|F
 +
|Nom de l'onglet si le document est un classeur
 +
|-
 +
|BooksheetInfo
 +
|string
 +
|F
 +
|Titre de l'onglet si le document est un claseur
 +
|-
 +
|OutputContainerName
 +
|string
 +
|F
 +
|Nom du containeur de sortie
 +
|-
 +
|OutputFileName
 +
|string
 +
|F
 +
|Nom du fichier de sortie
 +
|-
 +
|OutputDocumentName
 +
|string
 +
|F
 +
|Nom du document de sortie
 +
|-
 +
|OutputMailTo
 +
|string
 +
|F
 +
|Adresse(s) messagerie de sortie
 +
|-
 +
|OutputMailSubject
 +
|string
 +
|F
 +
|Sujet du mail
 +
|-
 +
|OutputMailBody
 +
|string
 +
|F
 +
|Corps du mail
 +
|-
 +
|OutputQueueName
 +
|string
 +
|F
 +
|Nom de la file d'attente de sortie
 +
|-
 +
|OutputEncoding
 +
|string
 +
|F
 +
|Encodage du fichier de sortie
 +
|-
 +
|OutputContentType
 +
|string
 +
|F
 +
|Type de contenu du fichier de sortie
 +
|-
 +
|ExportColumns
 +
|boolean
 +
|F
 +
|Exporter les entêtes de colonne
 +
|-
 +
|Compressed
 +
|boolean
 +
|F
 +
|Compresser le fichier de sortie
 +
|-
 +
|columns
 +
|Liste de column
 +
|O
 +
|Liste des colonnes à exporter
 +
|}
 +
 +
'''column :'''
 +
 +
{|class="wikitable"
 +
|-
 +
!Item
 +
!Type
 +
!O/F
 +
!Valeur
 +
|-
 +
|PropName
 +
|string
 +
|O
 +
|Nom de l'attribut de la classe de la requête
 +
|-
 +
|Title
 +
|string
 +
|O
 +
|Titre de la colonne
 +
|-
 +
|Offset
 +
|integer
 +
|F
 +
|Offset dans le fichier de sortie (format fixe)
 +
|-
 +
|Length
 +
|integer
 +
|F
 +
|Longueur dans le fichier de sortie (format fixe)
 +
|}
  
 
===exporter===
 
===exporter===
 
Cette section décrit le formatage des données exportées.
 
Cette section décrit le formatage des données exportées.
 +
 +
Les propriétés de l'exporteur dépendent du type de l'exporteur.
 +
 +
{|class="wikitable"
 +
|-
 +
!Item
 +
!Type
 +
!O/F
 +
!Valeur
 +
|-
 +
|ClassName
 +
|string
 +
|O
 +
|Nom de la classe de l'exporteur
 +
|-
 +
|NumberFormat
 +
|string
 +
|F
 +
|Format de nombre
 +
|-
 +
|WordWrap
 +
|string
 +
|F
 +
|WordWrap
 +
|-
 +
|Landscape
 +
|string
 +
|F
 +
|Landscape
 +
|-
 +
|AsCube
 +
|string
 +
|F
 +
|AsCube
 +
|-
 +
|PrintColors
 +
|string
 +
|F
 +
|PrintColors
 +
|-
 +
|ExportColors
 +
|string
 +
|F
 +
|ExportColors
 +
|-
 +
|Borderaround
 +
|string
 +
|F
 +
|BorderAround
 +
|-
 +
|GridMode
 +
|string
 +
|F
 +
|GridMode
 +
|-
 +
|FitToWidth
 +
|string
 +
|F
 +
|FitToWidth
 +
|-
 +
|ScaleFactor
 +
|string
 +
|F
 +
|ScaleFactor
 +
|-
 +
|PageOrder
 +
|string
 +
|F
 +
|PageOrder
 +
|-
 +
|Title
 +
|string
 +
|F
 +
|Title
 +
|-
 +
|Title2
 +
|string
 +
|F
 +
|Title2
 +
|-
 +
|HeaderPage
 +
|string
 +
|F
 +
|HeaderPage
 +
|-
 +
|HeaderText
 +
|string
 +
|F
 +
|HeaderText
 +
|-
 +
|FooterText
 +
|string
 +
|F
 +
|FooterText
 +
|}
 +
 +
'''Classe d'exporteur'''
 +
 +
{|class="wikitable"
 +
|-
 +
|TCSVExporter
 +
|Export au format CSV (.csv)
 +
|-
 +
|TPdfExporter
 +
|Acrobat Reader (.pdf)
 +
|-
 +
|TXMLExporter
 +
|Export au format xml (.xml)
 +
|-
 +
|TOpenXmlExporter
 +
|Microsoft Excel 2007 (.xlsx)
 +
|-
 +
|TOpenDocumentExporter
 +
|Open Office 1.2 (.ods)
 +
|}
  
 
===interface===
 
===interface===
 
Cette section indique que la classe principale du descriptif est une interface.
 
Cette section indique que la classe principale du descriptif est une interface.
 +
 +
{|class="wikitable"
 +
|-
 +
!Item
 +
!Type
 +
!O/F
 +
!Valeur
 +
|-
 +
|ClassName
 +
|string
 +
|O
 +
|Nom de l'interface
 +
|-
 +
|OrderBy
 +
|string
 +
|F
 +
|Ordre de tri du résultat (membre de l'interface)
 +
|-
 +
|OrderByDesc
 +
|boolean
 +
|F
 +
|Ordre de tri descendant
 +
|-
 +
|UnionAll
 +
|boolean
 +
|F
 +
|Utiliser "UNION ALL" au lieu de "UNION"
 +
|}
 +
 +
Lorsqu'une interface est utilisée toutes les requêtes dont la classe supporte l'interface sont jointe dans une UNION :
 +
 +
<pre>
 +
  Statements "Before"
 +
  (
 +
  Code SQL généré par la requête 1 si sa classe supporte l'interface
 +
  )
 +
  UNION
 +
  (
 +
  Code SQL généré par la requête 2 si sa classe supporte l'interface
 +
  )
 +
  UNION
 +
  ....
 +
  Order By défini dans la section Interface
 +
  Statements "After"
 +
</pre>
 +
  
 
===parameters===
 
===parameters===
 
Cette section décrit des paramètres communs à toutes les requêtes.
 
Cette section décrit des paramètres communs à toutes les requêtes.
  
====parametre====
+
====parameter====
 +
 
 +
{|class="wikitable"
 +
|-
 +
!Item
 +
!Type
 +
!O/F
 +
!Valeur
 +
|-
 +
|Name
 +
|string
 +
|O
 +
|Nom du paramètre
 +
|-
 +
|dataType
 +
|string
 +
|F
 +
|Type de donnée attendu
 +
|-
 +
|value
 +
|string
 +
|O
 +
|Valeur sérialisée du paramètre
 +
|}
  
 
===statements===
 
===statements===
Ligne 155 : Ligne 447 :
 
   
 
   
 
====statement====
 
====statement====
 +
 +
{|class="wikitable"
 +
|-
 +
!Item
 +
!Type
 +
!O/F
 +
!Valeur
 +
|-
 +
|Provider
 +
|string
 +
|F
 +
|Nom du provider auquel s'applique l'ordre
 +
|-
 +
|SQL
 +
|string
 +
|O
 +
|Code SQL généré
 +
|-
 +
|mode
 +
|string
 +
|O
 +
|Mode de génération (Before,After)
 +
|}
  
 
Exemple :
 
Exemple :

Version du 22 janvier 2020 à 11:09

Sommaire

property Descriptor:TfwxmlDocument;

Cette propriété contient le descriptif d'exportation.

La structure d'un descripteur d'exportation est la suivante :

Tip-20px.png Tip : Toutes les valeurs sont définies dans le texte des éléments, sauf spécifié
<root>
  <title>...</title>
 
  <queries>
    <query>...</query>
    ...
  </queries>
 
  <output>...</output>
 
  <exporter>...</exporter>
 
  <interface>...</interface>
 
  <parameters>
    <parameter>...</parameter>
    ...
  </parameters>
 
  <statements>
    <statement>...</statement>
    ...
  </statements>
<root>

Title

Titre du descriptif

queries

Cette section est une collection de requêtes (query)

query

Cette section décrit une requête

Item Type O/F Valeur
ClassName string O Nom de la classe de la requête
navMode string F Mode de navigation
Filter string F Expression objet de filtre
Descendants boolean F Inclure les classes descendantes
ClassFilter string F Filtre sur les classes
OrderBy string F Ordre de tri
NoOrderBy boolean F Pas de tri
NoOrderByOID boolean F Pas de tri par OID
Distinct boolean F Ajout de la clause distinct
ShareRestrictions string F Restrictions de partage
NoInCommitCache boolean F ignorer le cache
Args Liste de Arg F Liste d'arguments par index
parameters Liste de parameter F Liste de paramètres par nom

Arg

Text de l'élément Arg Valeur sérialisée du paramètre

Parameter

Name Nom du paramètre
Value Valeur sérialisée du paramètre

output

Cette section décrit la destination de l'export

Item Type O/F Valeur
BooksheetName string F Nom de l'onglet si le document est un classeur
BooksheetInfo string F Titre de l'onglet si le document est un claseur
OutputContainerName string F Nom du containeur de sortie
OutputFileName string F Nom du fichier de sortie
OutputDocumentName string F Nom du document de sortie
OutputMailTo string F Adresse(s) messagerie de sortie
OutputMailSubject string F Sujet du mail
OutputMailBody string F Corps du mail
OutputQueueName string F Nom de la file d'attente de sortie
OutputEncoding string F Encodage du fichier de sortie
OutputContentType string F Type de contenu du fichier de sortie
ExportColumns boolean F Exporter les entêtes de colonne
Compressed boolean F Compresser le fichier de sortie
columns Liste de column O Liste des colonnes à exporter

column :

Item Type O/F Valeur
PropName string O Nom de l'attribut de la classe de la requête
Title string O Titre de la colonne
Offset integer F Offset dans le fichier de sortie (format fixe)
Length integer F Longueur dans le fichier de sortie (format fixe)

exporter

Cette section décrit le formatage des données exportées.

Les propriétés de l'exporteur dépendent du type de l'exporteur.

Item Type O/F Valeur
ClassName string O Nom de la classe de l'exporteur
NumberFormat string F Format de nombre
WordWrap string F WordWrap
Landscape string F Landscape
AsCube string F AsCube
PrintColors string F PrintColors
ExportColors string F ExportColors
Borderaround string F BorderAround
GridMode string F GridMode
FitToWidth string F FitToWidth
ScaleFactor string F ScaleFactor
PageOrder string F PageOrder
Title string F Title
Title2 string F Title2
HeaderPage string F HeaderPage
HeaderText string F HeaderText
FooterText string F FooterText

Classe d'exporteur

TCSVExporter Export au format CSV (.csv)
TPdfExporter Acrobat Reader (.pdf)
TXMLExporter Export au format xml (.xml)
TOpenXmlExporter Microsoft Excel 2007 (.xlsx)
TOpenDocumentExporter Open Office 1.2 (.ods)

interface

Cette section indique que la classe principale du descriptif est une interface.

Item Type O/F Valeur
ClassName string O Nom de l'interface
OrderBy string F Ordre de tri du résultat (membre de l'interface)
OrderByDesc boolean F Ordre de tri descendant
UnionAll boolean F Utiliser "UNION ALL" au lieu de "UNION"

Lorsqu'une interface est utilisée toutes les requêtes dont la classe supporte l'interface sont jointe dans une UNION :

  Statements "Before"
  (
  Code SQL généré par la requête 1 si sa classe supporte l'interface 
  )
  UNION
  (
  Code SQL généré par la requête 2 si sa classe supporte l'interface 
  )
  UNION
  ....
  Order By défini dans la section Interface
  Statements "After"


parameters

Cette section décrit des paramètres communs à toutes les requêtes.

parameter

Item Type O/F Valeur
Name string O Nom du paramètre
dataType string F Type de donnée attendu
value string O Valeur sérialisée du paramètre

statements

Cette section décrit des ajouts SQL générés lors de la création du code sql

statement

Item Type O/F Valeur
Provider string F Nom du provider auquel s'applique l'ordre
SQL string O Code SQL généré
mode string O Mode de génération (Before,After)

Exemple :

Création dynamique de descriptif d'exportation :

//Function CreateDescriptor():TxmlDocument;
var itr,itqs,itq,itt,itcs,itc,itu,itvs,itv,itas:TxmlItem;
begin
  Result := TxmlDocument.Create(nil); 
  itr  := TxmlItem.Create(Result); 
  itr.ItemName := 'root';
 
  // Add a main query
  // main is the default query name
  //
  itqs := itr.AddItem('queries');
  itq  := itqs.AddItem('query'); 
  itq.AddItems(['QueryName','ClassName'],['main','WfClasseA']); 
 
  // Filtering 
  //
  itq.AddItemText('Filter','(unBool=%1)'); 
  itas := itq.AddItem('Args');
  itas.AddItemSerializedVariant('Arg',True); // serializedValue for boolean true
 
  // Output
  // 
  itt := itr.addItem('output');  
  itt.AddItemText('ExportColumns','true'); 
 
  // Columns 
  //
  itcs := itt.AddItem('columns');
  // 
  itc := itcs.AddItem('column');
  itc.AddItems(['PropName','Title'],['unCode','Code']); 
  // 
  itc := itcs.AddItem('column');
  itc.AddItems(['PropName','Title'],['unBool','Boolean']); 
 
  // Translate value list
  //
  itvs := itc.AddItem('values');
 
  itv := itvs.AddItem('value');
  itv.AddAttribute('oldValue','N');
  itv.AddAttribute('newValue','false');
  // 
  itv := itvs.AddItem('value');
  itv.AddAttribute('oldValue','O');
  itv.AddAttribute('newValue','true');
 
  itc := itcs.AddItem('column');
  itc.AddItems(['PropName','Title'],['unCompteur','Compteur']); 
 
  itc := itcs.AddItem('column');
  itc.AddItems(['PropName','Title'],['unEntier','Entier']); 
 
  itc := itcs.AddItem('column');
  itc.AddItems(['PropName','Title'],['unEtat','Enuméré']); 
 
  itc := itcs.AddItem('column');
  itc.AddItems(['PropName','Title'],['unDouble','Double']); 
 
  // Define which exporter to used
  // CSV for excel csv format
  //
  itu := itr.AddItem('exporter'); 
  itu.AddItems(['ClassName'],['TCSVExporter']);
end;

Affectation du descriptif à l'instance :

//Procedure Test;
var qbe:TQueryExecuteTask; doc:TxmlDocument;
begin
  qbe := TQueryExecuteTask.Create;
 
  doc := CreateDescriptor();
  AStr := doc.SaveToString;
 
  // Do not create the descriptor directly inside the Descriptor.document
  // instead, use an intermediate document.
  // This will recreate the document with the correct internal item classes
  //
  qbe.Descriptor.Document.LoadFromString(AStr);
 
  ...
end;


Voir aussi:

TQueryExecuteTask_(class)Développement DSM

Outils personnels