IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

État d'une table remplie par une procédure locale


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 75
    Points : 44
    Points
    44
    Par défaut État d'une table remplie par une procédure locale
    Salut à tous!
    J'ai une table qui affiche les données d'une procédure locale, cette procédure crée une requête croisée avec une colonne dynamique (colonne des devises qui varie en fonction des devises disponible).

    Pour apercevoir ou imprimer les données de ma table dans un état j'utilise les fonctions iAperçu(i100) et TableImprime(MaProcédureLocale).

    Ma préoccupation est la suivante:
    Avec la fonction TableImprime je ne sais que voir un État prédéfini, or moi je veux avoir la possibilité d'éditer mon état pour par exemple modifier son apparence, ajouter des titres, des images et tout.

    Comme pour dire je veux créer un état avec l'assistant de création mais dont la source de données dépendra des données que ma table aura afficher.

    Merci d'avance de votre aide!

  2. #2
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    Bonjour

    Un état Windev est statique (à par le type Tableau croisé)

    Si ton état est basé sur une table, cette table doit toujours avoir la même structure

    Il y a bien la FAA qui permet d'imprimer un table (en fait qui génère un état) mais ça n'est pas du tout personnalisable, tu vas te retrouver avec des tableaux coupés etc ...
    Moi je désactive systématiquement cette FAA au niveau du projet (la plupart des FAA d'ailleurs)

    Sinon il te reste la possibilité de générer ton état par programmation (iImprime, iCadre ...)

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Merci de ton intervention hpascal!
    C'est ça justement ma préoccupation, je cherche comment créer un état par programmation dont les rubriques à afficher dépendra des données de la table.
    C'est possible?
    Merci d'avance à tous ceux qui vont réagir à ma préoccupation!

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Oui c'est tout à fait possible, l'idée est de se baser sur les champs clones.

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Merci de ton intervention cladoo!
    Mais comment le faire, je n'ai aucune idée sur le champ clone, j'entend souvent parler mais je sais pas trop de quoi s'agit-il!
    Merci d'avance!

  6. #6
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    Citation Envoyé par cladoo Voir le message
    Oui c'est tout à fait possible, l'idée est de se baser sur les champs clones.
    Non pas du tout

    L'idée est de générer une impression par programmation sans passer par l'éditeur d'état

    Boucle sur les lignes et les colonnes de ta table
    Utilisation des fonctions iCadre, iImprime ou iImprimeZone etc ....
    Il faut juste déterminer la largeur des cadres à imprimer au prorata de la largeur des colonnes de la table, gérer les sauts de page etc ...

    Les fonctions d'impression permettent de faire ce qu'on veut

    Un exemple très simple d'impression d'un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    nNbLignes est un entier
    nNbColonnes est un entier
    nHauteurLigne est un entier
    nX, nY sont des entiers
    nLargeurCellule est un entier
    tabValeurs est un tableau de 5 chaînes = ["aaaa", "bbbbb", "ccccc", "ddddd", "eeeee"]
     
    iAperçu(iapZoomPage)
    nY = 25		// Coordonnée verticale de départ du tableau, correspondant à ma marge haute, par exemple pour imprimer un en-tête au dessus
    nHauteurLigne = 10; nNbColonnes = 7; nNbLignes = 35
    nLargeurCellule = (iLargeurPage()-10) / nNbColonnes
     
    // Je vais imprimer un tableau {nNbLignes] lignes et [nNbColonnes] colonnes avec des valeurs au hasard que je pioche dans tabValeurs
     
    POUR nLigne = 1 A nNbLignes
    	nX = 5	// on commence à 5 mm du bord gauche (marge gauche)
    	POUR nCol = 1 A nNbColonnes
    		iCadre(nX, nY, nX+nLargeurCellule, nY+nHauteurLigne, 0.2, 0, GrisFoncé)
    		iImprimeZone(tabValeurs[Hasard(5)], nX, nY, nX+nLargeurCellule, nY+nHauteurLigne,iCentreV+iCentreH)
    		nX += nLargeurCellule
    	FIN
    	nY += nHauteurLigne
    	SI nY > (iHauteurPage()-nHauteurLigne-10) ALORS		// je garde 10mm de marge en bas
    		iSautePage()
    		nY = 25
    	FIN
    FIN
    iFinImprime()

    Certes, on se prend un peu la tête, mais quand c'est fait c'est utilisable pour toutes les tables (on peut en faire un classe par exemple)
    C'est ce que j'ai fait dans mes applis et pour pratiquement toutes les éditions de table je fais comme ça
    Petit à petit j'ajoute des fonctionnalités, impression des images, des cases à cocher, des couleurs de fond des cellules etc ....

  7. #7
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 75
    Points : 44
    Points
    44
    Par défaut
    Merci de ta réaction hpascal!
    Au fait ma préoccupation première est d'avoir un état que je peux modifier les design, parce que j'ai un modèle d'état que je dois respecter, mais cet état doit avoir comme source de données ma table qui est remplie par une procédure locale lors de l'exécution.
    Je ne sais pas où mettre tes codes, si tu peux m'éclairer sur ça.
    MERCI

Discussions similaires

  1. [WD18] Selectionner une ligne d'une table remplie par une requête
    Par MAYKEI dans le forum WinDev
    Réponses: 2
    Dernier message: 26/06/2015, 19h54
  2. Réponses: 10
    Dernier message: 21/05/2013, 13h29
  3. requete sur une table rempli par menu déroulant
    Par tony3 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/03/2009, 10h01
  4. non prise en compte d'une formule remplie par une macro
    Par mardona dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/06/2007, 15h08
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo