FOROS PROFESIONALES
WINDEV
,
WEBDEV
y
WINDEV Mobile
Inicio
|
Mensajes recientes
|
Conéctese...
|
Desconectar
|
Español
Inicio
→
WINDEV (versiones precedentes)
→
Champs optionnels dans une structure
Champs optionnels dans une structure
Iniciado por Juju, 14,ene. 2019 10:16 - 4 respuestas
Conéctese…
Juju
#1
Miembro registrado
87 mensajes
Popularité : +4 (4 votes)
Publicado el 14,enero 2019 - 10:16
Bonjour,
Je déclare une structure d'annonce avec tous les champs que cela implique (Titre, descriptif, prix...) que je convertit ensuite en Json pour l'envoyer en webService.
Cependant certains champs de ma structure sont optionnels... et je ne sais pas comment faire pour le gérer correctement.
st
JSONAnnonce
est une structure
mobileAdId
est un entier
// Numéro d'ordre
mobileSellerId
est un entier
// Identifiant vendeur
category
est une chaîne
// Catégorie voiture
make
est une chaîne
// Marque voiture
price
est une
st
Prix
// Utilisation de la structure prix
firstRegistration
est une chaîne
// Date de 1° immatriculation
mileage
est un entier
// Kilométrage
modelDescription
est une chaîne
// Titre annonce
damageUnrepaired
est un booléen
// Véhicule endommagé
model
est une chaîne
// Modèle voiture
vehicleClass
est une chaîne
// Classe du véhicule
...
FIN
// affectation des propriétés à l'annonce
// Champs obligatoires...
st
Annonce
:
mobileAdId
=
s
Lp
// Numéro d'ordre
st
Annonce
:
mobileSellerId
=
gs
MobileSellerId
// ID vendeur mobile.DE
st
Annonce
:
category
=
T_ANNONCE.AN_CATEGORIE
// Catégorie véhicule
st
Annonce
:
vehicleClass
=
T_ANNONCE.AN_SSCATEGORIE
// Classe véhicule
st
Annonce
:
make
=
T_ANNONCE.AN_MARQUE
// Marque
st
Annonce
:
damageUnrepaired
=
T_ANNONCE.AN_ENDOMMAGE
// Véhicule endommagé (Oui / Non)
...
// Sérialisation de l'élément
Sérialise
(
st
Annonce
,
s
ChaineJson
,
psdJSON
)
...
Mon problème est que si j'envoie des champs vides, mon webService le refuse... comment puis je faire pour déclarer des éléments dans ma structure que si mes champs ont une valeur ?
merci d'avance
Informar
0
0
Imarkuze
#2
Publicado el 14,enero 2019 - 11:45
Bonjour,
avez-vous pensé à mettre dans les champs que vous devriez laisser vide un caractère vide qui ensuite, côté serveur, considérez vide? Par exemple "* null *"
Informar
0
0
Juju
#3
Miembro registrado
87 mensajes
Popularité : +4 (4 votes)
Publicado el 14,enero 2019 - 14:19
En fait le problème c'est que mon champ est vide au lieu d'avoir une valeur; Le champ null n'étant pas une des valeurs imposées. Ex : vehicleClass peut recevoir "Car", "Motorbike" mais ne peut pas recevoir "" or le membre VehicleClass s'il n'a pas de valeur affectée apparaît comme égal à vide du coup.
Le mieux ce serait qu'il n'apparaisse pas.
Mensaje modificado, 14,enero 2019 - 14:29
Informar
0
0
Johjo
#4
Miembro registrado
96 mensajes
Popularité : +18 (20 votes)
Publicado el 14,enero 2019 - 17:26
Bonjour,
vous pouvez typer vos champs optionnels en tant que variant.
Ainsi, s'il ne doit pas être utilisé, vous le laissez à null.
Vous n'aurez plus qu'à conditionner sur la valeur null pour utiliser ou non votre champ.
Plus de détail :
http://www.ytreza.org/fr/blog/jour-9-des-booleens-a-3-valeurs
--
Johjo aka Jonathan Laurent
Codez mieux ! Codez plus vite !
Mon blog sur WinDev :
http://www.ytreza.org
Me contacter sur slack (wx-community) :
https://frama.link/BoBD0SY0
Faîtes moi un ping :
http://www.ytreza.org/fr/services/ping-sur-forum
Informar
0
0
Juju
#5
Miembro registrado
87 mensajes
Popularité : +4 (4 votes)
Publicado el 15,enero 2019 - 08:42
Effectivement cela fonctionne ça envoie la valeur null ("radio":null ) et c'est pris par le webservice.
// Création de la structure Annonce
st
JSONAnnonce
est une structure
mobileAdId
est un entier
// Numéro d'ordre
mobileSellerId
est un entier
// Identifiant vendeur
category
est une chaîne
// Catégorie voiture
make
est une chaîne
// Marque voiture
price
est une
st
Prix
// Utilisation de la structure prix
firstRegistration
est une chaîne
// Date de 1° immatriculation
...
radio
est un
Variant
FIN
//Création d'une annonce de type structure Annonce
// affectation des propriétés à l'annonce
st
Annonce
:
mobileAdId
=
s
Lp
// Numéro d'ordre
st
Annonce
:
mobileSellerId
=
gs
MobileSellerId
// ID vendeur sur mobile.DE
st
Annonce
:
category
=
T_ANNONCE.AN_SSCATEGORIE
// Sous Catégorie véhicule
st
Annonce
:
vehicleClass
=
T_ANNONCE.AN_CATEGORIE
// Cétégorie véhicule
st
Annonce
:
make
=
T_ANNONCE.AN_MARQUE
// Marque
st
Annonce
:
damageUnrepaired
=
T_ANNONCE.AN_ENDOMMAGE
// Véhicule endommagé (Oui / Non)
st
Annonce
:
firstRegistration
=
DateVersChaîne
(
T_ANNONCE.AN_MISE_CIRCU
,
"YYYYMM"
)
// Date de 1° mise en circu
SI
T_ANNONCE.AN_RADIO
<
>
""
ET
T_ANNONCE.AN_RADIO
<
>
"0"
ALORS
st
Annonce
:
radio
=
"TUNER"
FIN
Merci bien pour l'aide
Informar
0
0
→ Volver a WINDEV (versiones precedentes)
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (versiones precedentes)
WEBDEV (versiones precedentes)
WINDEV Mobile (versiones precedentes)
Reports & Queries
Irrelevante
Herramientas
Français
English
Español
Portuguesa
Fermer cette fenêtre
Búsqueda Tipo
Sólo temas
Todos los mensajes
Periodo Buscar
Cualquier fecha
Última hora
Última 24 horas
Última semana
Último mes
Último año
Cancelar
Vista previa del mensaje
Añadiendo una imagen
Importar una imagen desde una URL
Enviar una imagen desde un archivo de su disco
Arrastrar un archivo o click en "Examinar..."
o
Cancelar
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Texto