Documentation générateur d’états KWISATZ

Générateur d’états FastReport

FastReport permet de personnaliser les factures, listes, étiquettes, statistiques, Tickets Z, courriers et états libres de KWISATZ. Un modèle associe une famille fonctionnelle, des sources de données, des variables de sélection, une mise en page et éventuellement des requêtes ou scripts.

Fiche : ETAT-FRX-001 Module : Outils / Générateur d’états Public : intégrateur ou technicien confirmé Risque : élevé Catégorie : Paramétrage, modèles et personnalisationMise à jour : 6 août 2026

Réponse directe

Ouvrez Outils > Générateur d’états, choisissez le type correspondant à l’impression réelle, puis dupliquez un modèle FastReport standard fonctionnel. Contrôlez ses datasets, champs et variables avant de modifier les pages, bandes, groupes ou requêtes. Testez toujours sur une période courte et comparez les totaux avec KWISATZ avant d’affecter le modèle aux utilisateurs.
Ne modifiez jamais directement l’unique modèle actif d’une facture, d’un Ticket Z ou d’un document fiscal. Conservez l’original, travaillez sur une copie et contrôlez les totaux avant déploiement.

Conseil technicien général

1. Licence et disponibilité

La dépendance de licence mentionnée dans ce document provient des sources. Sa disponibilité peut varier selon la version, la sérialisation, le partenaire ou l’installation ; faites-la valider techniquement avant de modifier l’environnement.

2. Protection des données

3. Comprendre les deux moteurs d’états

Moteur Nom utilisé dans KWISATZ Usage
QuickReport / QRDesign QRD, QRReport ou ancien générateur Compatibilité avec les anciens modèles historiques.
FastReport FRX, FR ou nouvelle génération Nouveaux modèles, scripts, exports et prévisualisation moderne.
Pour un nouveau développement, privilégiez FastReport. Conservez QRD uniquement lorsqu’un ancien modèle complexe fonctionne et qu’aucune migration n’est justifiée.

Droits et licence

L’accès à FastReport a historiquement dépendu du Pack caisse (fonctions avancées), puis a été étendu aux Pack caisse (fonctions avancées) et Pack caisse (fonctions avancées). Le module Producteur peut également l’autoriser automatiquement dans les versions documentées. Vérifiez la sérialisation réelle du poste.

Un menu visible ne garantit pas que tous les types d’états ou toutes les fonctions d’export soient inclus dans la licence installée.

4. Extensions des modèles KWISATZ

Les modèles KWISATZ ne sont pas identifiés uniquement par une extension générique FastReport telle que .fr3. Le logiciel utilise des extensions numériques métier correspondant à chaque famille d’impression.

Double générateur

Famille Principe
Ancien moteur QRD Extension numérique historique propre au type, souvent dans la série .0xx.
FastReport / FRX Modèles distingués dans la plage documentée .501 à .998.

Exemples documentés

Type QRD FastReport
Vente directe — Ticket / Note A4 .088 .588
Vente directe — Réservation A4 .086 .586

Autres extensions historiques citées

  • .011 : étiquette de pesage / produit frais ;
  • .071 : journal des tickets DataCollect ;
  • .087 : étiquette de tare ;
  • .089 : talon de ticket ;
  • .032 : courriers clients ;
  • .042 : courriers fournisseurs ;
  • .037 : remises en banque clients ;
  • .047 : remises en banque fournisseurs.
L’extension détermine le contexte de données chargé par KWISATZ. Renommer un modèle avec l’extension d’un autre type ne transforme pas correctement ses tables, variables ou présélections.
Ne changez pas une extension à l’aveugle. Créez le modèle depuis le bon type dans le générateur, ou dupliquez un modèle de la même famille fonctionnelle.

5. Principaux types d’états

Le menu exact évolue selon la version et les modules. Les familles usuelles comprennent :

Famille Exemples Sources typiques
Produits Listes, fiches, étiquettes, inventaires, stocks, tarifs. ARTICLE, grilles annexes, magasins, ARTICLE_ETIQUETTE.
Clients Listes, courriers, étiquettes, relevés, relances. CLIENT, financier client, échéances, règlements.
Fournisseurs Listes, courriers, relevés et remises en banque. FOURNISSEUR, financier fournisseur.
Documents de vente Devis, commandes, BL, factures, avoirs. DEV_*, BCV_*, BLV_*, FAV_*.
Documents d’achat Commandes, réceptions, factures et retours fournisseurs. BCA_*, BRA_*, FAA_*.
Vente directe Facturette, note A4, réservation, étiquettes, talons, chèques cadeaux. Tickets, tables temporaires, préférences de centre et dossier.
Analyses Historiques achats, ventes, entrées/sorties, statistiques générales. Requêtes préparées et tables temporaires de calcul.
Ticket Z Statistique de caisse, TVA, règlements, tranches horaires. Tables temporaires Z_* et variables de présélection.
État libre Édition personnalisée non rattachée à un menu métier standard. Tables et requêtes autorisées dans ce contexte.
La fonction Édition d’un état libre imprime les modèles préalablement configurés dans la famille correspondante.
Un état libre n’accorde pas un accès universel et sûr à toutes les données. Les sources disponibles et les droits restent ceux du contexte KWISATZ.

6. Méthode de personnalisation recommandée

  1. Identifiez l’écran exact depuis lequel le document sera imprimé.
  2. Notez le type d’état et son extension.
  3. Lancez une impression standard avec des données réelles.
  4. Ouvrez le générateur sur le même type.
  5. Dupliquez le modèle standard fonctionnel.
  6. Donnez un nom clair, par exemple FAV_CLIENT_LOGO_2026.
  7. Enregistrez une copie externe avant modification.
  8. Modifiez d’abord un seul élément.
  9. Testez l’aperçu et l’impression.
  10. Contrôlez les données, les pages et les totaux.
  11. Ajoutez les autres adaptations progressivement.
  12. Affectez le modèle dans les préférences ou la fenêtre d’impression.
  13. Archivez la version déployée et sa documentation.
La méthode la plus sûre consiste à repartir du standard récent et à réappliquer uniquement les personnalisations nécessaires, plutôt qu’à réparer indéfiniment un modèle très ancien.
Ne testez pas un modèle de facture uniquement avec un document vide ou un document d’une seule ligne. Utilisez aussi plusieurs pages, plusieurs taux de TVA, remises, acomptes et transformations.

7. Structure d’un état FastReport

Pages

Un modèle peut contenir plusieurs pages : document principal, conditions générales, duplicata, annexe ou page technique.

Bandes usuelles

Bande Fonction
ReportTitle Imprimée une fois au début de l’état.
PageHeader Répétée en tête de page.
GroupHeader Ouvre un groupe défini par une expression ou un champ.
MasterData / DetailData Répète les objets pour chaque ligne du dataset.
GroupFooter Imprime les sous-totaux et la fermeture d’un groupe.
ReportSummary Imprime les totaux généraux à la fin.
PageFooter Répété en pied de page.
Child Complète une autre bande et facilite certaines hauteurs variables.

Objets

  • Memo ou texte ;
  • champ de données ;
  • image ou logo ;
  • code-barres ou QR code ;
  • ligne, rectangle et forme ;
  • RichText / RTF ;
  • tableau, sous-rapport ou graphique selon la version ;
  • variables, expressions et fonctions.

Propriétés importantes

  • DataSet : source de la bande ou du champ ;
  • DataField : colonne utilisée ;
  • Visible : affichage conditionnel ;
  • PrintIfEmpty : impression lorsque la source est vide ;
  • CanGrow : augmentation automatique de la hauteur ;
  • CanShrink : réduction lorsque le contenu est court ;
  • StretchMode : comportement avec les lignes multi-lignes ;
  • KeepTogether : limitation des coupures ;
  • StartNewPage : saut à chaque groupe ;
  • RepeatHeaders : répétition des entêtes.
Depuis 2020, KWISATZ ne force plus systématiquement PrintIfEmpty=False pour les états FastReport. Contrôlez cette propriété dans chaque modèle concerné.

8. Tables, datasets et champs

Un état n’accède pas automatiquement à toute la base. KWISATZ met à disposition les tables ou datasets adaptés au type d’impression sélectionné.

Référentiels usuels

Table ou famille Contenu
DOSSIER Coordonnées, société, paramètres et informations du dossier.
ARTICLE Référence, libellés, tarifs, TVA, familles, fournisseurs et paramètres produit.
CLIENT Identité, adresses, coordonnées, tarifs et données client.
FOURNISSEUR Identité, coordonnées, comptes et informations fournisseur.
Grilles annexes Rayons, familles, lignes, marques, catégories et magasins.

Documents commerciaux

Type Entête Détail
Devis venteDEV_ENTETEDEV_DETAIL
Commande venteBCV_ENTETEBCV_DETAIL
Livraison venteBLV_ENTETEBLV_DETAIL
Facture venteFAV_ENTETEFAV_DETAIL
Commande achatBCA_ENTETEBCA_DETAIL
Réception achatBRA_ENTETEBRA_DETAIL
Facture achatFAA_ENTETEFAA_DETAIL

Vente directe

  • TICKET_ENTETE : informations générales du ticket ;
  • TICKET_VENTE : lignes d’articles ;
  • TICKET_REGLEMENT : moyens de paiement ;
  • TICKET_ENTETE_TMP, TICKET_VENTE_TMP, TICKET_REGLEMENT_TMP : ticket en cours pour certaines impressions A4 ;
  • ARTICLE_ETIQUETTE : file et données d’étiquetage ;
  • tables temporaires statistiques ou fiscales, souvent préfixées Z_.

Ajouter un champ

Dans FastReport, les nouveaux champs exposés par KWISATZ apparaissent généralement dans le dictionnaire du dataset. Dans les anciens modèles QRD :

  1. Ouvrez État > Ensemble de données.
  2. Sélectionnez la table.
  3. Cliquez sur Champs.
  4. Cliquez sur Ajouter.
  5. Sélectionnez les nouveaux champs.
Un nom de table ou de champ peut changer selon la famille, la version ou une table temporaire. N’inventez pas un nom : utilisez uniquement ceux visibles dans le dictionnaire du modèle exécuté.
Les identifiants techniques conservés dans cette section sont uniquement des repères de diagnostic ou de modèle. Ne modifiez jamais directement une table, un index ou un fichier interne.

9. Lier plusieurs tables

Pour enrichir un état, il faut souvent joindre le dataset principal à une table complémentaire.

Exemples de liaisons

  • ARTICLE.CODE_RAYON vers la table des rayons ;
  • ARTICLE.CODE_FAMILLE vers la table des familles ;
  • FAV_ENTETE.CODE_CLIENT vers CLIENT.CODE ;
  • FAV_DETAIL.REFERENCE vers ARTICLE.CODE ;
  • liaisons de documents par tables de liens, lorsque disponibles ;
  • mouvements financiers vers leur document d’origine.

Choix de méthode

Méthode Usage
Dataset déjà fourni Solution la plus sûre ; utilisez les champs préparés par KWISATZ.
Relation maître/détail Document avec une entête et plusieurs lignes.
Lookup Recherche d’un libellé dans une petite table de référence.
Requête SQL paramétrée Jointure, agrégation ou sélection non fournie par le dataset standard.
Script Présentation conditionnelle ; à éviter pour remplacer une vraie jointure volumineuse.
Charger une fiche article pour chaque ligne peut ralentir fortement un état. Préférez une jointure ou un dataset préparé lorsque le volume est important.
Les identifiants techniques conservés dans cette section sont uniquement des repères de diagnostic ou de modèle. Ne modifiez jamais directement une table, un index ou un fichier interne.

10. Variables et paramètres

KWISATZ transmet au modèle des variables issues de la fenêtre de présélection, du document courant, du dossier et de l’environnement. La liste dépend du type d’état.

Catégories usuelles

Catégorie Exemples
Période Date de début, date de fin, périodes comparatives.
Sélection magasin Type de sélection, code magasin choisi.
Filtres métier Client, fournisseur, produit, rayon, famille, vendeur, caisse ou centre.
Document courant Numéro, type, date, client ou fournisseur.
Dossier Nom de société, adresse, SIRET et informations visibles dans DOSSIER.
Système FastReport Numéro de page, total de pages, date et heure d’impression.
Variables calculées Totaux, compteurs, texte conditionnel ou paramètres créés dans le modèle.

Exemple d’expression

[FAV_ENTETE."NUMERO"]
[CLIENT."NOM"]
[Page]
[TotalPages]

Variables de présélection

Les noms exacts sont visibles dans le dictionnaire ou dans le modèle standard. Des états récents exposent par exemple des informations relatives à la source de données, aux livraisons, au magasin sélectionné ou au type de période.

Respectez le type de chaque variable. Comparer une variable texte comme un entier peut provoquer une erreur SQL ou une sélection vide.
Ne copiez pas une variable depuis une autre famille d’état sans vérifier qu’elle est réellement transmise dans le contexte courant.
Les identifiants techniques conservés dans cette section sont uniquement des repères de diagnostic ou de modèle. Ne modifiez jamais directement une table, un index ou un fichier interne.

11. Requêtes SQL

Une requête personnalisée permet d’ajouter des jointures, regroupements, filtres ou calculs. Elle doit rester une requête de lecture et respecter les paramètres transmis par KWISATZ.

Structure recommandée

Exemple de requête interne retiré. Les sources de données et les champs d’un état doivent être sélectionnés dans le générateur prévu et validés par un technicien ; ne modifiez pas les tables ou index directement.

Cet exemple est volontairement générique. Les noms de paramètres et de champs doivent être repris dans le modèle standard et le dictionnaire réel.

Requête paramétrée

  • utilisez les dates et sélections reçues de KWISATZ ;
  • typez correctement les paramètres texte, entier, date ou booléen ;
  • filtrez le magasin, le centre ou la caisse lorsque l’état le demande ;
  • limitez le volume pendant la mise au point ;
  • triez explicitement avec ORDER BY ;
  • ajoutez les champs utilisés par les groupes et totaux ;
  • contrôlez le nombre de lignes obtenu.

Onglet Résultats

Après l’exécution d’un état, l’onglet Résultats de la fenêtre d’édition affiche :

  • la requête SQL finale envoyée au générateur ;
  • le nombre de lignes renvoyé ;
  • le temps d’exécution.

Une barre de progression apparaît pendant la requête. Le bouton Annuler ou la touche Échap permettent d’interrompre le traitement.

N’utilisez jamais UPDATE, DELETE, INSERT, ALTER ou une procédure modifiant les données dans un modèle d’impression.

Performance

  • évitez les sous-requêtes exécutées ligne par ligne ;
  • filtrez le plus tôt possible ;
  • utilisez les index existants ;
  • évitez les conversions sur les champs filtrés ;
  • n’utilisez pas SELECT * sur de grosses tables ;
  • testez avec les volumes réels ;
  • comparez le temps dans l’onglet Résultats.
Certaines requêtes moteur de données complexes peuvent bénéficier d’optimisations propres au moteur. Leur usage doit rester réservé au support ou à un développeur connaissant la version installée.

12. Totaux, arrondis et regroupements

Utiliser les montants stockés

Pour une facture ou un ticket, utilisez en priorité les champs de total calculés et stockés par KWISATZ.

Risque d’un recalcul SQL

SUM(Quantité × Prix × (1 − Remise / 100))

Cette formule peut conserver plus de décimales que le document. KWISATZ arrondit les lignes selon les règles du dossier, puis totalise les montants arrondis. Une requête qui agrège les valeurs brutes peut donc différer de quelques centimes.

Ne remplacez pas un total légal de facture par un total SQL recalculé sans reproduire exactement les règles d’arrondi du document.

Sommes FastReport

Vérifiez le périmètre d’une somme :

  • dataset utilisé ;
  • bande de données concernée ;
  • réinitialisation à chaque groupe ;
  • lignes masquées incluses ou non ;
  • sous-total déjà calculé ajouté une deuxième fois ;
  • retours et lignes négatives ;
  • duplication provoquée par une jointure un-à-plusieurs.

Groupes

Une requête avec GROUP BY et un groupe FastReport ne répondent pas au même besoin. Le premier réduit les lignes ; le second organise leur impression.

Si le détail doit rester disponible, conservez les lignes et utilisez des bandes de groupe. N’agrégez pas prématurément les données dans SQL.

13. Expressions, scripts et événements

FastReport permet de piloter la présentation avec des expressions et des événements, notamment OnBeforePrint.

Cas d’usage

  • masquer une ligne selon un type de ticket ;
  • afficher une mention uniquement pour un client ou une TVA ;
  • changer la police d’une ligne d’annulation ;
  • imprimer une page de CGV sous condition ;
  • calculer un texte ou une date ;
  • répéter ou supprimer une entête ;
  • adapter l’affichage à un champ vide.

Exemple conceptuel

procedure DetailOnBeforePrint(Sender: TfrxComponent);
begin
  Detail.Visible := <condition métier>;
end;

Utilisez le nom réel de la bande et une condition fondée sur les champs disponibles dans le modèle.

Bonnes pratiques

  • nommer les objets de façon explicite ;
  • commenter les scripts importants ;
  • éviter les calculs métier complexes dans le script ;
  • ne pas modifier les données ;
  • tester les valeurs nulles et les divisions par zéro ;
  • tester les documents de plusieurs pages ;
  • documenter toute variable créée.
Un script incorrect peut masquer des lignes sans avertissement. Contrôlez le nombre d’enregistrements attendu et le total imprimé.

14. Mise en page, images et texte variable

Texte multi-lignes

Pour un libellé étendu, une adresse ou une observation :

  • activez le retour automatique à la ligne ;
  • activez l’augmentation automatique de hauteur ;
  • placez le champ dans une bande pouvant s’étirer ;
  • vérifiez les objets placés en dessous ;
  • testez les champs vides et très longs.

Images et logos

  • privilégiez une image locale stable ou intégrée au modèle ;
  • respectez les proportions ;
  • testez l’impression noir et blanc ;
  • évitez les images très lourdes ;
  • contrôlez l’envoi par email et l’export PDF.

Codes-barres

  • choisissez la symbologie adaptée ;
  • conservez une zone blanche autour du code ;
  • testez avec le lecteur réel ;
  • ne réduisez pas excessivement la hauteur ;
  • contrôlez le texte lisible sous le code.

Conditions générales

Pour ajouter une page de CGV :

  1. dupliquez le modèle ;
  2. ajoutez une page finale ;
  3. insérez le texte ou un objet RTF ;
  4. gérez la visibilité selon le type de document ;
  5. testez recto/verso et PDF ;
  6. contrôlez que la page ne s’imprime pas en double.
Une page apparemment vide peut contenir une bande ou un objet invisible. Supprimez une page seulement après avoir contrôlé tous ses objets et scripts.

15. Prévisualisation, impression et exports

Prévisualisation

La fenêtre FastReport permet la navigation, le zoom, l’impression, l’export et l’envoi par email selon le contexte. KWISATZ mémorise la taille de cette fenêtre dans les versions récentes.

Exports

  • PDF ;
  • Excel ;
  • HTML ;
  • texte ou CSV selon le filtre disponible ;
  • formats graphiques ou autres filtres installés.

PDF

L’export PDF peut produire un PDF autonome de type PDF/A dans les versions documentées. Dans :

Outils > Préférences > Divers > Autres, les zones récentes permettent de définir :

  • Générateur FRX — Export PDF — Chemin par défaut ;
  • Générateur FRX — Export PDF — Afficher dialogue.

Fichiers temporaires

Les sous-dossiers FR_TMP et QR_TMP du dossier de travail sont destinés aux fichiers générés pendant les exports.

Excel

Pour un export exploitable :

  • alignez les colonnes sur une grille régulière ;
  • évitez les objets superposés ;
  • limitez les cellules fusionnées ;
  • utilisez une bande de titre pour les informations uniques ;
  • placez les données répétées dans la bande de détail ;
  • testez les champs longs, notamment email et adresse.
Un modèle parfait à l’impression peut produire un Excel peu exploitable. Créez au besoin un modèle dédié à l’export tabulaire.

Email

L’envoi depuis la prévisualisation FastReport utilise la fenêtre générique d’email de KWISATZ dans les versions récentes. Contrôlez le destinataire, l’objet, le PDF joint et les images.

16. Gérer les modèles personnalisés

Nommage conseillé

TYPE_CLIENT_OBJET_VERSION
FAV_DUPONT_LOGO_RIB_V3
Z_CAISSE_MAGASINS_2026
ETQ_PRODUIT_RAYON_50X30

Informations à documenter

  • nom et extension du fichier ;
  • type d’état KWISATZ ;
  • modèle standard d’origine ;
  • date et auteur de la modification ;
  • tables et requêtes ajoutées ;
  • variables utilisées ;
  • scripts et conditions ;
  • imprimante, format et marges ;
  • préférences ou centres qui utilisent le modèle ;
  • jeu de recette et totaux attendus.

Avant une mise à jour KWISATZ

  1. Recensez les modèles personnalisés.
  2. Copiez-les hors du dossier de production.
  3. Conservez une capture ou un PDF de référence.
  4. Effectuez la mise à jour.
  5. Comparez les modèles standards livrés.
  6. Testez les modèles clients sur une copie de données.
  7. Réintégrez les nouvelles tables ou variables nécessaires.
  8. Validez les totaux avant remise en service.
Une mise à jour peut retirer une table temporaire obsolète ou ajouter de nouveaux champs. Un modèle ancien conservé peut alors produire une erreur de dataset ou un résultat incomplet.

17. Migrer un modèle QRD vers FastReport

Une conversion automatique ou manuelle ne garantit pas un rendu identique. Les deux moteurs ne calculent pas toujours les hauteurs, marges, bandes, colonnes et zones imprimables de la même manière.

Procédure sûre

  1. Conservez le modèle QRD d’origine.
  2. Imprimez et exportez un document de référence.
  3. Créez un modèle FastReport natif du même type.
  4. Reproduisez les données et la mise en page progressivement.
  5. Testez d’abord sans logo, code-barres ni script.
  6. Ajoutez ensuite les objets complexes.
  7. Comparez les dimensions et totaux page par page.
  8. Testez sur l’imprimante réelle.

Cas des étiquettes

Les étiquettes sont particulièrement sensibles :

  • marge non imprimable du pilote ;
  • hauteur de bande ;
  • espacement entre colonnes ;
  • nombre d’étiquettes par page ;
  • décalage progressif ;
  • texte du code-barres ;
  • format papier réellement déclaré dans Windows.
Si le modèle converti reste instable, recréez un état FastReport natif minimal plutôt que d’empiler des corrections sur la conversion.

18. États fiscaux, comptables et contractuels

Une modification graphique peut avoir un impact métier :

  • suppression d’un taux de TVA ;
  • total calculé deux fois ;
  • remise ou acompte absent ;
  • RIB incorrect ;
  • mentions légales manquantes ;
  • CGV non applicables au document ;
  • Ticket Z incomplet ;
  • différence entre document et comptabilité.

Contrôles obligatoires

  • total HT ;
  • TVA par taux ;
  • total TTC ;
  • acomptes et règlements ;
  • reste à payer ;
  • quantités et unités ;
  • numéro, date et identité du document ;
  • mentions fiscales ou commerciales requises.
Le générateur d’états ne doit jamais servir à modifier les données fiscales. Il présente les données calculées par KWISATZ ; il ne remplace pas les procédures de correction, d’avoir ou de contre-passation.

19. Recette d’un modèle

  1. Un document d’une seule ligne.
  2. Un document de plusieurs pages.
  3. Une ligne avec libellé très long.
  4. Une adresse complète et une adresse vide.
  5. Plusieurs taux de TVA.
  6. Une remise de ligne et une remise globale.
  7. Un acompte et plusieurs règlements.
  8. Une ligne négative ou un avoir.
  9. Un client particulier et un professionnel.
  10. Un document transformé depuis une commande ou un BL.
  11. Une impression directe.
  12. Une impression vers une autre imprimante.
  13. Un export PDF.
  14. Un export Excel.
  15. Un envoi par email.
  16. Une période sans donnée.
  17. Une période volumineuse.
  18. Une comparaison avec le modèle standard.
Le modèle est validé lorsque les données, totaux, pages et exports correspondent au standard, que les cas vides sont maîtrisés et que l’imprimante réelle produit un résultat stable.

20. Diagnostic rapide

Le modèle n’apparaît pas dans la liste
Vérifiez son extension numérique, son emplacement, le type d’état sélectionné, la licence et le nom du fichier. Un modèle .588 ne sera pas proposé dans une famille .586.
Message « ensemble de données non présent »
Le modèle référence un dataset absent de la version ou du contexte. Comparez-le au modèle standard récent et recherchez les sources historiques supprimées, notamment les anciens jeux de données de caisses obsolètes.
Message « un champ de données n’a pas de source »
Recherchez les objets dont DataField est renseigné mais DataSet vide ou incorrect. Contrôlez également les sommes, bandes et champs hérités d’un ancien modèle.
Un nouveau champ n’est pas visible
Dans FastReport, vérifiez le dictionnaire et la version. Dans QRD, ouvrez État, Ensemble de données, sélectionnez la table, puis Champs et Ajouter.
L’état est vide alors que des données existent
Contrôlez la période, le magasin, la caisse, la source, les filtres, la requête finale et le nombre de lignes dans Résultats. Vérifiez aussi PrintIfEmpty et les conditions OnBeforePrint.
L’état est très lent
Réduisez la période, consultez le temps SQL dans Résultats, supprimez les recherches ligne par ligne, filtrez plus tôt et contrôlez les jointures qui multiplient les lignes.
La requête semble bloquée
Utilisez Annuler ou Échap, puis testez sur un petit périmètre. Ne fermez pas brutalement KWISATZ pendant une requête sans avoir tenté l’annulation normale.
Le total est doublé
Recherchez une jointure un-à-plusieurs, un sous-total ajouté au détail, une bande imprimée deux fois ou une somme liée au mauvais dataset.
Le total diffère de quelques centimes
La requête recalcule probablement les lignes avec une précision différente. Utilisez les montants stockés par KWISATZ ou reproduisez exactement les arrondis appliqués à chaque ligne.
Une bande Résumé n’apparaît pas
Vérifiez sa visibilité, PrintIfEmpty, la présence d’une autre bande de résumé réduite ou superposée et son ordre. Testez temporairement la bande comme pied de page pour isoler le problème.
Une page blanche s’imprime
Contrôlez les pages supplémentaires, les bandes vides, les sauts forcés, les objets hors page et les scripts de visibilité.
Le libellé long est tronqué
Activez CanGrow, le retour automatique à la ligne et une bande extensible. Vérifiez les objets situés en dessous.
Le modèle est réduit ou déformé à l’écran
Vérifiez la mise à l’échelle Windows. Pour les anciens modèles QRD, le zoom Windows à 125 % peut perturber l’aperçu. Testez la compatibilité PPP élevée en mode Application.
Les étiquettes se décalent progressivement
Vérifiez le format papier du pilote, les marges physiques, la hauteur de bande, l’espacement, le nombre de colonnes et le modèle FastReport minimal natif.
La dernière valeur RTF se répète
Ce comportement a fait l’objet d’un correctif historique. Mettez KWISATZ à jour et recréez le test avec un modèle propre.
L’export PDF ne demande plus de chemin
Vérifiez Générateur FRX — Export PDF — Chemin par défaut et Afficher dialogue dans Outils, Préférences, Divers, Autres.
Le fichier exporté est introuvable
Contrôlez le chemin PDF par défaut, les sous-dossiers FR_TMP et QR_TMP, les droits Windows, le nom du fichier et l’éventuel dossier EXPORT.
L’export Excel contient des cellules fusionnées inutilisables
Créez un modèle tabulaire dédié : colonnes alignées, objets non superposés, peu de fusions, titres séparés et données répétées dans une seule bande.
L’email contient un PDF mais les images du corps manquent
Vérifiez la version, le modèle d’email et la stratégie CID des images. Ne placez pas une image encodée en base64 directement dans le corps si la messagerie la refuse.
Un ancien état QRD ne trouve plus ses tables
Les modèles très anciens peuvent encore contenir des noms de tables avec une extension .DB. Utilisez un modèle standard récent ou corrigez les liaisons avec le support.
Le modèle fonctionne en aperçu mais pas sur l’imprimante
Contrôlez le pilote, le format papier, les marges non imprimables, le recto/verso, le bac et la résolution. Testez sur une imprimante PDF puis sur le périphérique réel.
Le modèle ne fonctionne plus après mise à jour
Comparez-le au standard de la nouvelle version, vérifiez les datasets, champs, tables temporaires et scripts, puis réappliquez les personnalisations sur un modèle propre.

21. Actions à éviter

  • modifier l’unique modèle standard actif ;
  • changer une extension pour convertir un type d’état ;
  • utiliser une requête d’écriture dans un rapport ;
  • recalculer les totaux fiscaux sans reproduire les arrondis ;
  • supprimer une bande ou une page sans contrôler ses scripts ;
  • copier des variables entre types sans vérifier leur présence ;
  • déployer sans test multi-pages et multi-TVA ;
  • modifier un modèle de production sans sauvegarde ;
  • laisser un modèle de Ticket Z non comparé au standard ;
  • considérer une conversion QRD comme fidèle sans test imprimante ;
  • tester une requête volumineuse sans filtre ;
  • utiliser le générateur pour corriger directement les données.

22. Liste de contrôle

  • Le type d’état et l’extension sont corrects.
  • Le modèle standard d’origine est conservé.
  • Une copie externe du modèle existe.
  • Les datasets et champs sont disponibles.
  • Les variables sont présentes et correctement typées.
  • Les requêtes sont en lecture seule.
  • Les filtres magasin, caisse et période sont appliqués.
  • Le nombre de lignes renvoyé est cohérent.
  • Les totaux utilisent les valeurs KWISATZ appropriées.
  • Les scripts gèrent les champs vides et divisions par zéro.
  • Les documents multi-pages sont testés.
  • Le PDF et l’Excel sont testés.
  • L’impression réelle est contrôlée.
  • Les mentions légales sont présentes.
  • Le modèle est nommé, versionné et documenté.
  • Les préférences utilisant ce modèle sont recensées.

23. Évolutions KWISATZ documentées

Période Évolution
2016–2017 Développement et intégration de FastReport, puis mise en place du double générateur.
Mars 2017 Les modèles FRX sont distingués par des extensions numériques de .501 à .998.
2018 Ajout de types FastReport pour les documents A4 de vente directe et harmonisation des impressions.
Mars 2019 Harmonisation des exports FastReport et QRReport, création de FR_TMP et QR_TMP, PDF autonome.
Juin 2019 Ajout de la barre de progression SQL et de l’onglet Résultats avec requête finale, nombre de lignes et durée.
Mars 2020 Les nouveaux champs sont visibles directement dans les modèles FastReport ; les anciens QRD nécessitent encore l’ajout manuel des champs.
Mai 2020 Accès FastReport commun aux Pack caisse (fonctions avancées) et Pack caisse (fonctions avancées), amélioration de la prévisualisation et de l’envoi par email.
Février 2025 Ajout du chemin PDF par défaut et de l’option d’affichage du dialogue d’export FRX.
Octobre 2024 et après Ajout de nouveaux types et extensions, notamment réservation A4 et journaux techniques.

24. Sources documentaires

  • MENUS_KWISATZ — Outils, Générateur d’états et fenêtres d’impression.
  • MENUS_KWISATZ — analyses, historiques, statistiques, produits, clients et documents.
  • Suivi de développement KWISATZ — double générateur, extensions FRX et nouveaux types d’états.
  • Suivi de développement KWISATZ — requêtes SQL, onglet Résultats, exports et prévisualisation.
  • Suivi de développement KWISATZ — champs FastReport, compatibilité QRD et propriétés d’impression.
  • Base support téléphonique — modèles personnalisés, datasets, requêtes, arrondis, migrations et dépannage.