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

C++Builder Discussion :

QReport, pas de mise à jour dans les TQRMemo


Sujet :

C++Builder

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut QReport, pas de mise à jour dans les TQRMemo
    Bonsoir,

    Mon TQRMemo est utilisé comme un composant QRDB, c'est à dire lié à une table. C'est parceque je veux écrire du texte en vertical que je dois passer par ce composant, donc effectué un traitement pour chaque enregistrement dans ma table (sinon j'aurai directement utilisé un QRLabel). Lorsque je veux imprimer les docs, il n'y a pas de mise à jour dans les Mémos, ils contienent tous la même valeurs correspondant au premier enregistrement de ma table.

    Du coup, ou mettre le code permettant le traitement d'un Memo correspondant pour chaque enregistrement dans ma table ????

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 28
    Points : 32
    Points
    32
    Par défaut
    salut ,

    tu le place ou ton QRMemo ??

    Tu le mets bien ans une bande détail ??

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Dans un Détail. Je vais essayer de positionner dans un autre composant pour voir.

    Mais sur le principe, c'est possible d'utiliser un TQRMemo comme un champ TQRDB ?

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    ça n'imprime pas. J'ai fait plein de test, mais je ne suis pas parvenu à imprimer un TQRMemo différent pour chaque enregistrement. Si qq'un sait ocmment faire

  5. #5
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,

    A mon humble avis, il te faut coder l'affichage dans l'évènement OnBeforePrint de la bande de détail qui contient le TQRMemo.
    (Si ce n'est pas déja fait, évidemment)
    Le TQRMemo n'est pas un composant fait pour afficher directement la valeur d'un champ d'une table, il ne 'suit' donc pas le 'déroulement' de la table au moment de l'affichage.
    (A chaque fois qu'une nouvelle DetailBand est affichée, tu es sur que tu es sur un autre enregsitrement, non ?)
    C'est donc peut être pour ça que c'est toujour la même valeur affichée....
    Ca vaudrais donc le coup de pouvoir jeter un oeil sur ton code.

    @ +

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    En fait, mon code est basique, le voici
    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
        AnsiString str = QRDBText6->DataSet->FieldByName(QRDBText6->DataField)->AsString; //-- Récupère la valeur du DBText --//
     
        //-- Premier Memo -//
        LOGFONT lgfont;
        QRMemo1->Font->Size = 10;
        QRMemo1->Font->Name = "Times New Roman";
     
        if(GetObject(QRMemo1->Font->Handle, sizeof(LOGFONT), &lgfont))
        {
            lgfont.lfHeight = 12;
            lgfont.lfEscapement = 900;
            lgfont.lfOrientation = 900;
            lgfont.lfWeight = FW_BOLD;
            StrPCopy(lgfont.lfFaceName, "Times New Roman");
            lgfont.lfOutPrecision = OUT_TT_ONLY_PRECIS;
            QRMemo1->Font->Handle = CreateFontIndirect(&lgfont);
            SetGraphicsMode(QRMemo1->Handle, GM_ADVANCED);
            QRMemo1->Lines->Text= str;
        }
    Il permet d'afficher un texte d'un QRDBxxx en verticale. Je passe par un QMemo car on ne peut pas le faire directement avec un DBxxx. Donc voici le code, je ne sais pas ou le mettre pour l'afficher à chaque fois. J'ai essayé tous les évènements associés au QReport, BeforePreview, BeforePrint... Rien à faire.

  7. #7
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,

    J'ai mis le même code dans l'évènement OnPrint du TQRBDText qui contient les valeurs a afficher dans le TQRMemo et .... ben ça semble fonctionner.
    Petite modif :
    tu n'as plus besoin dans ce cas de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AnsiString str = QRDBText1->DataSet->FieldByName(QRDBText1->DataField)->AsString; //-- Récupère la valeur du DBText --//
    puisque la fonction a dans ses parametres la valeur du texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void __fastcall TForm::QRDBTextPrint(TObject *sender, AnsiString &Value)

    Cela ne marche pas chez toi ?

    @ +

Discussions similaires

  1. [AC-2010] pas de mise à jour dans la requête facturation
    Par chermiti10 dans le forum Modélisation
    Réponses: 2
    Dernier message: 18/03/2015, 08h24
  2. [FAQ] Les formulaires (partie 1 et 2) questions nécessitant pas de mise à jour
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 1
    Dernier message: 27/04/2013, 15h11
  3. Mise à jour dans les tables détails
    Par tunis71187 dans le forum Administration
    Réponses: 6
    Dernier message: 20/09/2011, 15h32
  4. Réponses: 6
    Dernier message: 06/02/2008, 17h16
  5. QReport, pas de mise à jour dans les TQRMemo
    Par kurkaine dans le forum Delphi
    Réponses: 4
    Dernier message: 18/09/2006, 19h40

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