Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 24-06-2009 13:38:00

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

[RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

Bonjour,


Encore une question assez simple à première vue mais qui me perturbe complètement en ce moment.

J'ai une datawindow de ce type :

champ_entete_1
champ_entete_2

libellé_1               libellé_2
-------------------------------------------------------------------Header
champ_detail_1    champ_detail_2

-------------------------------------------------------------------Detail
champ_footer_1
champ_footer_2

-------------------------------------------------------------------Footer

Les cases libelle_X sont des objets de type text et tous les autres sont des objets de type column

En supposant que j'ai 10 lignes dans ma datawindow, comment puis-je modifier les champs de mon header et footer avec un SetItem?

Quel est le numéro de ligne que je dois passer en paramètre de la fonction SetItem?

La ligne 1 ou la ligne 10? Ou une autre?


Merci de m'éclairer sur ce sujet

Dernière modification par Nephtis (25-06-2009 09:38:26)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#2 24-06-2009 13:50:09

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

Bonjour, quid de :

Code: pb

dw_1.Modify('libelle_1.text="' + ls_texte + '"')

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 24-06-2009 14:12:48

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

erasorz a écrit:

Bonjour, quid de :

Code: pb

dw_1.Modify('libelle_1.text="' + ls_texte + '"')

Je viens de tester et je tombe tout le temps sur une erreur de syntaxe pile a l'endroit de la première quote

Je précise bien que j'ai vérifie que mon champ est bien de type string


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#4 24-06-2009 14:22:14

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

j'ai peut-être inversé les " et les '

Code: pb

dw_1.Modify("libelle_1.text='" + ls_texte + "'")

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 24-06-2009 14:30:53

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

erasorz a écrit:

j'ai peut-être inversé les " et les '

Code: pb

dw_1.Modify("libelle_1.text='" + ls_texte + "'")

J'avais aussi tester de les inverser pour avoir la chaine entre quote ou entre double quotes mais toujours avec le même message d'erreur


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#6 24-06-2009 14:32:05

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

hum, hum
c'est pas libelle_1_t ton texte ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#7 24-06-2009 14:42:37

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

Je vérifie sans cesse en ce moment si je ne me trompe pas de nom de colonne et malheureusement je ne me trompe pas.

En fait la datawindow a été crée manuellement (type external lors de la conception) et représente une lettre.
Je n'ai mit aucun nom de colonne avec un "_t" a la fin, j'ai juste laissé des nom compréhensibles (adresse, code_postal, nom_editeur, etc...)

Mais ça bloque visiblement avec tous les champs le modify (je les ai pas tous testé).



Au départ j'avais fait comme si la ligne de header représentait la ligne 1 et la ligne de footer représentait la ligne max quand j'utilisais la fonction SetItem. Mais bien sur j'avais pas exactement le résultat voulu.

Je continue a chercher ce qui va pas dans le code ou dans la datawindow


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#8 24-06-2009 14:58:00

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

la dw est elle affectée au control DW ?

Tu peux mettre du code ?


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#9 24-06-2009 15:18:38

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

Le code du script qui va alimenter la datawindow :

Code: pb

//==================================================================================
//         Affectation des données à la datawindow d'envoi de lettre par mail
//==================================================================================

// -- Les données qui constituent la palette
ll_nb_lignes = ldwc_data.RowCount()
FOR ll_iterateur_palette=1 TO ll_nb_lignes
  
  //On traite ligne par lignes donc on insere a chaque fois une nouvelle ligne
  dw_lettre_pour_mail.InsertRow(0)
  
  ls_id_titre = ldwc_data.GetItemString(ll_iterateur_palette,"id_titre")
  ls_libelle_titre = ldwc_data.GetItemString(ll_iterateur_palette,"libelle_titre")
  ll_nb_ex = ldwc_data.GetItemNumber(ll_iterateur_palette,"nb_exemplaires")
  ll_poids = ldwc_data.GetItemNumber(ll_iterateur_palette,"poids")

  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"titre",ls_id_titre)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"libelle",ls_libelle_titre)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"nb_exemplaires",ll_nb_ex)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"poids",ll_poids)
  
  /* Test en dernier recours (j'ai plus d'idées)
  // -- Les données qui constituent l'adresse
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"raison_sociale", ls_raison_sociale)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"raison_sociale_complementaire", ls_raison_sociale_complementaire)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"adresse_1", ls_adresse_1)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"adresse_2", ls_adresse_2)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"localite", ls_localite)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"code_postal", ls_code_postal)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"bureau_distributeur", ls_bureau_distributeur)
  
  // -- Les données qui constituent l'editeur
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"code_societe_messagerie", ls_code_societe_messagerie)
  
  // -- Les données qui constituent la date d'édition
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"date_edition", ld_date_edition)
  
  // -- Les données qui constituent les formules  
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"reediter_1", ls_reediter_1)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"reediter_2", ls_reediter_2)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"reediter_3", ls_reediter_3)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"reediter_4", ls_reediter_4)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"reediter_5", ls_reediter_5)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"reediter_6", ls_reediter_6)
  dw_lettre_pour_mail.SetItem(ll_iterateur_palette,"reediter_7", ls_reediter_7)
*/
  
NEXT

  // -- Les données qui constituent l'adresse
  dw_lettre_pour_mail.SetItem(1,"raison_sociale", ls_raison_sociale)
  dw_lettre_pour_mail.SetItem(1,"raison_sociale_complementaire", ls_raison_sociale_complementaire)
  dw_lettre_pour_mail.SetItem(1,"adresse_1", ls_adresse_1)
  dw_lettre_pour_mail.SetItem(1,"adresse_2", ls_adresse_2)
  dw_lettre_pour_mail.SetItem(1,"localite", ls_localite)
  dw_lettre_pour_mail.SetItem(1,"code_postal", ls_code_postal)
  dw_lettre_pour_mail.SetItem(1,"bureau_distributeur", ls_bureau_distributeur)
  
  // -- Les données qui constituent l'editeur
  dw_lettre_pour_mail.SetItem(1,"code_societe_messagerie", ls_code_societe_messagerie)
  
  // -- Les données qui constituent la date d'édition
  dw_lettre_pour_mail.SetItem(1,"date_edition", ld_date_edition)
  
  // -- Les données qui constituent les formules
  // Test du Modify sur les formules  
  ls_test=dw_lettre_pour_mail.Modify("reediter_1='"+ls_reediter_1+"'")
  MessageBox("Debug1","ls_test = " + ls_test)
  ls_test=dw_lettre_pour_mail.Modify("reediter_2='"+ls_reediter_2+"'")
  MessageBox("Debug2","ls_test = " + ls_test)
  ls_test=dw_lettre_pour_mail.Modify("reediter_3='"+ls_reediter_3+"'")
  MessageBox("Debug3","ls_test = " + ls_test)
  ls_test=dw_lettre_pour_mail.Modify("reediter_4='"+ls_reediter_4+"'")
  MessageBox("Debug4","ls_test = " + ls_test)
  ls_test=dw_lettre_pour_mail.Modify("reediter_5='"+ls_reediter_5+"'")
  MessageBox("Debug5","ls_test = " + ls_test)
  ls_test=dw_lettre_pour_mail.Modify("reediter_6='"+ls_reediter_6+"'")
  MessageBox("Debug6","ls_test = " + ls_test)
  ls_test=dw_lettre_pour_mail.Modify("reediter_7='"+ls_reediter_7+"'")
  MessageBox("Debug7","ls_test = " + ls_test)

Dernière modification par Nephtis (25-06-2009 09:40:58)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#10 24-06-2009 15:48:41

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

c'est cela qui explose ?

Code: pb

 ls_test=dw_lettre_pour_mail.Modify("reediter_1='"+ls_reediter_1+"'")
  MessageBox("Debug1","ls_test = " + ls_test)

reediter_1 est une colonne et pas un champs texte
Il faut le traiter comme les autres champs


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#11 24-06-2009 16:13:19

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

JCZ a écrit:

c'est cela qui explose ?

Code: pb

 ls_test=dw_lettre_pour_mail.Modify("reediter_1='"+ls_reediter_1+"'")
  MessageBox("Debug1","ls_test = " + ls_test)

reediter_1 est une colonne et pas un champs texte
Il faut le traiter comme les autres champs

C'est sur la proposition de erasorz que j'ai traité ces colonne de cette façon.


Mais avant j'avais bien le code de ce genre :

Code: pb

// -- Les données qui constituent les formules
  li_test=dw_lettre_pour_mail.SetItem(1,"reediter_1", ls_reediter_1)
  If(li_test<>1) Then  
    MessageBox("Debug1","Probleme SetItem sur le champ reediter_1 : " + ls_reediter_1)
  End If
  li_test=dw_lettre_pour_mail.SetItem(1,"reediter_2", ls_reediter_2)
  If(li_test<>1) Then  
    MessageBox("Debug2","Probleme SetItem sur le champ reediter_2 : " + ls_reediter_2)
  End If
  li_test=dw_lettre_pour_mail.SetItem(1,"reediter_3", ls_reediter_3)
  If(li_test<>1) Then  
    MessageBox("Debug3","Probleme SetItem sur le champ reediter_3 : " + ls_reediter_3)
  End If
  li_test=dw_lettre_pour_mail.SetItem(1,"reediter_4", ls_reediter_4)
  If(li_test<>1) Then  
    MessageBox("Debug4","Probleme SetItem sur le champ reediter_4 : " + ls_reediter_4)
  End If
  li_test=dw_lettre_pour_mail.SetItem(1,"reediter_5", ls_reediter_5)
  If(li_test<>1) Then  
    MessageBox("Debug5","Probleme SetItem sur le champ reediter_5 : " + ls_reediter_5)
  End If
  li_test=dw_lettre_pour_mail.SetItem(1,"reediter_6", ls_reediter_6)
  If(li_test<>1) Then  
    MessageBox("Debug6","Probleme SetItem sur le champ reediter_6 : " + ls_reediter_6)
  End If
  li_test=dw_lettre_pour_mail.SetItem(1,"reediter_7", ls_reediter_7)
  If(li_test<>1) Then  
    MessageBox("Debug7","Probleme SetItem sur le champ reediter_7 : " + ls_reediter_7)
  End If


Le problème reste de savoir quelle est la ligne a fournir au SetItem sachant que ces colonnes se trouvent dans le header et le footer

Dernière modification par Nephtis (24-06-2009 16:14:59)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#12 24-06-2009 16:14:56

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

tu mets tout avec la meme valeur ...
et erasorz  parlait de libelle et pas de colonne


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#13 24-06-2009 16:20:22

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

JCZ a écrit:

tu mets tout avec la meme valeur ...
et erasorz  parlait de libelle et pas de colonne

Je sais pas si j'ai bien compris ce message mais je t'assures que les variables ls_reediter_X que j'affecte dans chaque SetItem contiennent bien la chaîne de caractères que je veux mettre à jour dans ma datawindow

Pause pour aujourd'hui (commence a avoir mal a la tete avec ce problème )

Dernière modification par Nephtis (24-06-2009 16:21:13)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#14 25-06-2009 09:37:40

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...

Au final j'ai recréé ma datawindow avec seulement 4 champs (les quatres qui sont dans le detail) et tous les autres champs en type text.

J'ai utilisé la fonction modify et désormais tout fonctionne

Merci pour votre aide


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#15 25-06-2009 09:39:12

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Accès au header et footer lorsque detail à plusieurs lignes ...


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22