Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

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.
  • Index
  •  » Migration
  •  » [RESOLU] Après Migration-problème avec Open(window, window)

#1 07-01-2010 09:31:21

freewarefw  
Membre
Date d'inscription: 09-09-2009
Messages: 9
Pépites: 38
Banque: 0

[RESOLU] Après Migration-problème avec Open(window, window)

Bonjour,
nous avons fait la migration d'applications de PB7.03 vers PB11.5 build 2506.
quand je lance l'application, j'ai un message d'erreur :
"Number 22 - unknow object type w_win_e at line 125 in clicked event of object cb_ok"
sur l'Open d'une window. Voici la partie de script.

Code: pb

window cur_win
window w_win
Open(cur_win, Af_fcn_language("w_win"))

Af_fcn_language est une fonction qui recherche le language soit on aura '_e' ou '_f'
en resultat w_win deviendra w_win_e.
en PB7 pas de probleme.

merci pour votre réponse.

Dernière modification par freewarefw (23-02-2010 10:29:24)

Hors ligne

 

#2 07-01-2010 14:50:30

General Protection Fault  
Membre Geek
Lieu: Sophia Antipolis
Date d'inscription: 18-08-2008
Messages: 47
Pépites: 204
Banque: 0

Re: [RESOLU] Après Migration-problème avec Open(window, window)

Salut !

Dans ton code ci-dessous :
Open(cur_win, Af_fcn_language("w_win"))

"w_win" est une chaine de caractères. Comme tu définis une variable w_win de type window, on dirait qu'il y a une confusion quelque part.
Est-ce que ta fonction af_fcn_language()  prend en paramètre une fenetre ou une chaine ?

A+

Hors ligne

 

#3 07-01-2010 15:19:44

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Après Migration-problème avec Open(window, window)

General Protection Fault a écrit:

Salut !

Dans ton code ci-dessous :
Open(cur_win, Af_fcn_language("w_win"))

"w_win" est une chaine de caractères. Comme tu définis une variable w_win de type window, on dirait qu'il y a une confusion quelque part.
Est-ce que ta fonction af_fcn_language()  prend en paramètre une fenetre ou une chaine ?

A+

Exacte, la variable w_win ne sert a rien dans ton exemple Freewarefw.

Code: pb

window cur_win
string ls_win = "w_win"
Open(cur_win, Af_fcn_language(ls_win))

En revanche tu utilises la 2ème syntaxe de l'open pour ouvrir une instance d'une window : open( par1, par2)

par1 = variable de type window
par2 = chaine de caractère contenant le nom d'une window à affecter à la variable (elle même ou une window héritée)

Donc la fonction doit retourner une chaine de caractère. Est-ce le cas Freewarefw ?

Pour conclure, un exemple plus simple pour newbies
Imaginons que w_toto est un objet hérité de la classe PB window

Code: pb

window lw_mawindow
string ls_lawindow_a_ouvrir

ls_lawindow_a_ouvrir = "w_toto"

open(lw_mawindow, ls_lawindow_a _ouvrir)
//la variable lw_mawindow est un pointeur sur l'instance de w_toto que je viens d'ouvrir


Cette méthode permet d'ouvrir plusieurs instances d'une même window (surtout pratique dans le cas du opensheet)


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#4 08-01-2010 08:14:03

freewarefw  
Membre
Date d'inscription: 09-09-2009
Messages: 9
Pépites: 38
Banque: 0

Re: [RESOLU] Après Migration-problème avec Open(window, window)

Bonjour,

voici le code que j'ai dû faire pour que cela passe sans erreur :

Code: pb

String l_st_objectname
l_st_objectname = af_ObjectName("w_main")

l_st_objectname = Right(RightTrim(l_st_objectname), 2)
IF l_st_objectname = "_e" THEN
  Open ( cur_main, "w_main_e")
ELSE
  Open ( cur_main, "w_main_f")
End If


et cela sans erreur.
alors que si je fais le code comme en PB version 7:

Code: pb

/* Open Window */
Open( cur_win, Af_fcn_language("w_win"))
cela ne marche pas.


voici le code de la fonction Af_fcn_language()

Code: pb

// change name of object depending on the user language

object_name = object_name + "_" + Lower(user_int_language)
user_int_language est une Global variable qui contient un code 'E' pour anglais, 'F' pour français.
return object_name

//object_name contiendra la variable : w_main_e


merci pour vos réponses

Hors ligne

 

#5 08-01-2010 08:51:45

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

Re: [RESOLU] Après Migration-problème avec Open(window, window)

Bonjour,

N'oublies pas le [RESOLU] dans le titre de ce topic


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

Hors ligne

 

#6 08-01-2010 09:01:00

freewarefw  
Membre
Date d'inscription: 09-09-2009
Messages: 9
Pépites: 38
Banque: 0

Re: [RESOLU] Après Migration-problème avec Open(window, window)

OK, d'accord pour le [resolu] mais je ne sais toujours pas pourquoi mon script marche en PB7 et pas en PB11.5

Hors ligne

 

#7 08-01-2010 09:26:06

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Après Migration-problème avec Open(window, window)

freewarefw a écrit:

OK, d'accord pour le [resolu] mais je ne sais toujours pas pourquoi mon script marche en PB7 et pas en PB11.5

Peux-tu nous copier le script source de ta fonction Af_fcn_language() pour avoir son entête complète et peut-être pourrons nous t'apporter une réponse. (Dans le Library Painter, click droit sur ta fonction ou ton objet contenant la fonction puis choisi edit source dans le menu contextuel.)


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#8 08-01-2010 09:49:05

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

Re: [RESOLU] Après Migration-problème avec Open(window, window)

my 2 cents : est-ce que ça fonctionne en passant par une variable :

Code: pb

window cur_win
String ls_win

ls_win = Af_fcn_language("w_win")
Open(cur_win, ls_win)

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

Hors ligne

 

#9 08-01-2010 09:53:54

General Protection Fault  
Membre Geek
Lieu: Sophia Antipolis
Date d'inscription: 18-08-2008
Messages: 47
Pépites: 204
Banque: 0

Re: [RESOLU] Après Migration-problème avec Open(window, window)

je pensais aussi à passer par une variable intermédiaire. À mon avis, ça devrait marcher.

Hors ligne

 

#10 08-01-2010 13:32:19

freewarefw  
Membre
Date d'inscription: 09-09-2009
Messages: 9
Pépites: 38
Banque: 0

Re: [RESOLU] Après Migration-problème avec Open(window, window)

Bonjour,
voici le code PB de la fonction Af_fcn_language().
j'en ai fait un export.

Code: pb

$PBExportHeader$af_fcn_language.srf
global type af_fcn_language from function_object
end type

forward prototypes
global function string af_fcn_language (string object_name)
end prototypes

global function string af_fcn_language (string object_name);// change name of object depending on the user language

object_name = object_name + "_" + Lower(user_int_language)

return object_name
end function


et maintenant ci-dessous le détail de la fonction comme je la vois dans PB.

Definition du prototype de la fonction:
description de la fonction :
Access = public                        Return type = String                             Function name = Af_fcn_language
Pass by : value                        Argument type : String                          argument name : object_name

puis vient le script :

Code: pb

// change name of object depending on the user language

object_name = object_name + "_" + Lower(user_int_language)

return object_name


pour General Protection Fault : NON, cela ne marche pas car 'ls_win' est  de type string. j'avais déjà essayé.

merci pour les réponses

Hors ligne

 

#11 08-01-2010 14:24:35

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Après Migration-problème avec Open(window, window)

Bonjour,

J'ai fait une petite application test sur PB 11.5.2506. J'ai réimporté ta fonction, créer une variable globale (string user_int_language = "e") et les fenêtres adéquates.

Je n'ai aucun problème particulier avec :

Code: pb

Open(cur_win, Af_fcn_language("w_win"))


As tu fais un full rebuild à tout hasard ?

Hors ligne

 

#12 11-01-2010 08:29:51

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Après Migration-problème avec Open(window, window)

buck a écrit:

As tu fais un full rebuild à tout hasard ?


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#13 11-01-2010 13:05:45

freewarefw  
Membre
Date d'inscription: 09-09-2009
Messages: 9
Pépites: 38
Banque: 0

Re: [RESOLU] Après Migration-problème avec Open(window, window)

bonjour,

oui, j'ai fait un full rebuild et est toujours le même problème.
par contre quand je crée une autre application, pas de problème.

merci pour les réponses.

Hors ligne

 

#14 11-01-2010 13:47:39

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Après Migration-problème avec Open(window, window)

Bonjour,

Il m'est aussi arrivé d'avoir l'objet en doublon dans une librairie (w_win_e) mais de type différent d'où ton message d'erreur (PB prend le premier objet disponible).

Pour le voir, tu supprimes l'objet dans le browser. Tu fermes et tu rouvres le browser et tu regardes si l'objet est toujours présent (oui => doublon).

Hors ligne

 

#15 13-01-2010 07:43:43

freewarefw  
Membre
Date d'inscription: 09-09-2009
Messages: 9
Pépites: 38
Banque: 0

Re: [RESOLU] Après Migration-problème avec Open(window, window)

Bonjour,
merci pour les réponses.
Après avoir contrôler dans le browser les variables, je n'ai pas trouver de doublon.

Hors ligne

 

#16 23-02-2010 10:20:06

freewarefw  
Membre
Date d'inscription: 09-09-2009
Messages: 9
Pépites: 38
Banque: 0

Re: [RESOLU] Après Migration-problème avec Open(window, window)

Hello all,

problème est réglé.
quand dans ma fonction
object_name = object_name + "_" + Lower(user_int_language)
user_int_language contient la valeur "E ", il y a un blanc et c'est cela que PB11.5 n'aime pas.
j'ai rajouté Lower(TRIM(user_int_language)) et cela marche.

merci à tous ceux qui m'ont aidé.

Hors ligne

 
  • Index
  •  » Migration
  •  » [RESOLU] Après Migration-problème avec Open(window, window)

Pied de page des forums

Propulsé par FluxBB 1.2.22