Descriptor (TQueryExecuteTask)

De Wiki1000

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

exporter

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

interface

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

parameters

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

parametre

statements

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

statement

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