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 25-04-2007 08:26:11

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

[RESOLU] Rowscopy DW composite

Bonjour à tous,

Existe-t-il un moyen rapide de faire un rowscopy d'une dw composite à part copier chaque dw une à une ?

Hors ligne

 

#2 25-04-2007 08:57:31

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

j'ai une composite avec 6 dw report a l'interieur et je voudrais faire un rowscopy de ces dw dans une autre dw c'est plus clair?

Hors ligne

 

#3 25-04-2007 09:00:22

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Rowscopy DW composite

Un moyen rapide, je ne crois pas.

A moins de créer une fonction générique qui boucle sur toutes les dw présentes dans la composite.

C'est un peu lourd, mais une fois qu'elle est écrite, tu peux la réutiliser...


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#4 25-04-2007 09:00:28

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

Re: [RESOLU] Rowscopy DW composite

thezerg a écrit:

Existe-t-il un moyen rapide de faire un rowscopy d'une dw composite à part copier chaque dw une à une ?

non pas à ma connaissance, à moins peut-être de faire un export PSR puis un import PSR


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

Hors ligne

 

#5 25-04-2007 09:05:16

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

je vais étudier tous ca merci à vous

Hors ligne

 

#6 25-04-2007 11:35:53

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

foon a écrit:

Un moyen rapide, je ne crois pas.

A moins de créer une fonction générique qui boucle sur toutes les dw présentes dans la composite.

C'est un peu lourd, mais une fois qu'elle est écrite, tu peux la réutiliser...

Il faut spécifier quoi dans le describe pour récupérer le nombre de dw ainsi que son nom?

Hors ligne

 

#7 25-04-2007 11:56:25

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Rowscopy DW composite

Normalement, l'expression suivante te retourne sous forme d'une string la liste des objets dans la datawindow séparés par des tabulations:

Code: pb

dw_1.Describe("DataWindow.Objects")

Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#8 25-04-2007 11:56:39

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

Code: pb

describe("DataWindow.Objects")


  me permet de connaitre tous les objet de la dw mais est-ce que je peux avoir le nombre d'objet?

Hors ligne

 

#9 25-04-2007 11:57:30

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

à peu de secondes près je t'évitais une réponse

Hors ligne

 

#10 25-04-2007 11:59:58

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Rowscopy DW composite

Directement, non, mais tu peux compter ce que tu as dans ta string résultante en prenant en compte les caractères séparateurs tab...


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#11 25-04-2007 12:00:48

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

oui c'est ce que je craignais lol
thx to all

Hors ligne

 

#12 25-04-2007 12:03:33

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

Re: [RESOLU] Rowscopy DW composite

Code: pb

String ls_list, ls_control[], ls_type
Int i

//liste des controls séparés par tab
ls_list = dw_1.Describe("DataWindow.Objects")

// à parser dans un tableau
f_string_to_tab( ls_list, '~t', ls_control )

// boucle sur le tableau et test du type pour chaque control
For i = 1 To UpperBound( ls_control )

    ls_type = dw_1.Describe( ls_control[ i ] + ".Type") 

    If ls_type = 'report' Then
  
        // traitement

    End If 

Next

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

Hors ligne

 

#13 25-04-2007 12:09:43

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

ah merci j'étais en train de le faire

merci beaucoup

Hors ligne

 

#14 25-04-2007 12:11:16

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

Re: [RESOLU] Rowscopy DW composite

il y a une petite fonction à écrire : f_string_to_tab
allez 15 lignes de code et elle te reservira certainement


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

Hors ligne

 

#15 25-04-2007 12:12:35

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

oui je pense merci encore

Hors ligne

 

#16 25-04-2007 12:20:10

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Rowscopy DW composite

eRaSorZ a écrit:

il y a une petite fonction à écrire : f_string_to_tab

Dans les PFC, et la classe n_cst_string je pioche les fonctions of_ArrayToString et of_ParseToArray


never let people work on more than one thing at once.

Hors ligne

 

#17 25-04-2007 12:30:57

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Rowscopy DW composite




HS

Et pour ceux qui n'ont pas la chance de bosser sur les PFC?


Fin HS



Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#18 25-04-2007 12:41:12

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

c'est mon cas lol mais j'ai fait une fonction qui retourne le tableau bien rempli et voila

Hors ligne

 

#19 25-04-2007 12:43:52

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Rowscopy DW composite

Pas tout à fait HS ta question, Foon.
Tu ouvres la classe qui va bien dans les PFC et CTRL-C + CTRL-Tab + CTRL-V


Cependant, je suis victime du not invented here syndrome. C'est à dire, que bien que connaissant l'existence de cette fonction, je l'avait réécrite moi-même (en effet, comment un employé de Sybase pourrait faire aussi bien que moi ? Impossible !)

Code: pb

public function string of_arraytostring (readonly string as_array[], readonly string as_separator);
//=of_arraytostring(as_array[], as_separator)
Long    ll_taille, ll_indice
String  ls_concatene
Boolean  lb_separe = False

//Verification prealable
IF IsNull(as_separator) THEN RETURN ""

ll_taille = upperBound(as_array)
FOR ll_indice = 1 TO ll_taille
  IF ( Not IsNull (as_array[ll_indice]) ) &
  AND as_array[ll_indice] <> "" THEN
    IF lb_separe THEN
      ls_concatene += as_separator + as_array[ll_indice]
    ELSE
      //première chaine concaténée
      ls_concatene =  as_array[ll_indice]
      lb_separe = TRUE
    END IF
  END IF
NEXT


return ls_concatene
end function

never let people work on more than one thing at once.

Hors ligne

 

#20 25-04-2007 12:49:40

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Rowscopy DW composite

Shahin pour la fonction. Il se trouve que je n'ai jamais eu l'occasion de bosser
sur les PFC (Je n'ai fait que des missions sur Powerlib ou frameworks dérivés des Powertools).
J'espère que je vais bientôt pouvoir m'y mettre.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#21 25-04-2007 12:55:18

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Rowscopy DW composite

Ah là là. Je suis vraiment  le . Je vous ait mis la fonction réciproque c'est à dire pas la bonne !

Code: pb

public function long of_stringtoarray (readonly string as_text &
, readonly string as_separator, ref string as_array[]);
//of_stringToArray(mle.text, "~n", ls_lignes)
//Renvoie le nombre d'elements du tableau (nbre de sous-chaine) ou -1 si erreur
long  ll_pos=0, ll_indice=1, ll_nbChaine=0
long  ll_start = 1    //position du premier caractère d'une sous-chaine
long  ll_sepLen

ll_sepLen = Len(as_separator)

//Récupérer le nombre d'élts du tableau (une seule allocation dynamique de mémoire)
ll_pos = Pos(as_text, as_separator)
DO WHILE ll_pos > 0
  ll_nbChaine ++
  ll_pos = Pos(as_text, as_separator, ll_pos + ll_sepLen)
LOOP
//Le nombre d'élts du tableau est : nbre de séparateurs  + 1
ll_nbChaine ++

//Allocation dynamique du tableau
as_array[ll_nbChaine] = ""

ll_pos = Pos(as_text, as_separator)
DO WHILE ll_pos > 0
  as_array[ll_indice] = Mid(as_text, ll_start, ll_pos - ll_start)
  //incrémentation des indices
  ll_indice ++
  ll_start = ll_pos + ll_sepLen
  ll_pos = Pos(as_text, as_separator, ll_start)
LOOP
//Ajouter le dernier
as_array[ll_indice] = Mid(as_text, ll_start)

RETURN ll_nbChaine
end function

never let people work on more than one thing at once.

Hors ligne

 

#22 25-04-2007 13:00:22

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Rowscopy DW composite

foon a écrit:

Shahin pour la fonction.

De rien. Ce fut un plaisir.

foon a écrit:

Il se trouve que je n'ai jamais eu l'occasion de bosser sur les PFC

Moi non plus

foon a écrit:

J'espère que je vais bientôt pouvoir m'y mettre.

Moi aussi j'espère que tu vas t'y mettre


never let people work on more than one thing at once.

Hors ligne

 

#23 25-04-2007 13:01:41

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

Merci à tous les 3 je mets le sujet en résolu.

Hors ligne

 

#24 25-04-2007 14:30:42

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Rowscopy DW composite

pour info ca peut servir :


Code: pb

       blob lblb_data

       ids_source.getfullstate(lblb_data)
       dw_1.setfullstate(lblb_data)


permet de recopier une dw a l'identique meme si celle-ci est une composite

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22