PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Basculement application winCE vers android
Basculement application winCE vers android
Débuté par Vianney, 03 aoû. 2022 12:50 - 4 réponses
Posté le 03 août 2022 - 12:50
Bonjour,
Nous avions développé une application pour la gestion logistique avec des mc9090 tournant qous winCE.

Vu que cet os est voué à disparaître, nous allons devoir racheter des terminaux fonctionnant sous android.

Quel est la meilleur façon à opérer.

Autre chose quel est le composant qui remplace PocketSymbol ?

D'avance merci de votre aide
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 03 août 2022 - 14:57
Salut
Il vaut mieux recommencer le 0
Quant à la lecture de code barre
Il y a trois façons de faire
- La fonction CBCapture
- le champ caméra avec la fonction CaméraDémarreDécodage
- utiliser un champ de saisie avec validation touche entrée (qu'à partir de windev mobile 26)
Membre enregistré
322 messages
Posté le 05 août 2022 - 10:11
Bonjour,

Commencer de 0 ... je serais plus nuancé que Popoy. Si le code "métier" est bien séparé il sera ré-utilisable.

Pour ma part il y a 2 grands sujets qui ont demandé du travail :
- principalement le type de fenêtre (modale/non modale) qui diffère entre WinCE et Android
- et au niveau données, l'impossibilité d'utiliser les VUES sous Android

Pour préciser au sujet de l'articulation des fenêtres : sous WinCE, tu ouvres une fenêtre fille, ce qui "bloque" la mère (elle attend que ça se termine). Une fois que la fille est "finie", la mère reprend où elle était. C'est un comportement totalement exclu sous Android où la mère continue son exécution après l'ouverture de la fille. La fermeture de la fille doit être gérée si besoin dans l'événement "Fermeture d'une fenêtre fille" de la mère.
DONC, selon la complexité ton appli actuelle, ça peut demander pas mal de travail.
Enfin, il faut compiler directement en version Android et lister les procédures non supportées sur cette plateforme.

J'oubliais aussi les fenêtres en elles-même, sur la plan purement graphique : je ne sais pas comment elles supportent la migration.

C'est tout ça qui te dira s'il vaut mieux adapter ou "tout recommencer".

Bon courage.
Posté le 05 août 2022 - 10:43
merci de ces informations.

point de vue données, nous avons créé un webservice vue que notre db est en oracle et qu'il n'existe pas d'acces natif oracle pour windev mobile.

Par rapport aux ouverture mère-fille, nous en avons pas tellement, nous jouons essentiellement avec différents plans. Donc les modifications devraient ne pas être trop importantes.

par rapport à la fonction cbcapture elle peut être utilisée n'importe comment?
J'essaye de préciser un peu la chose.
avec le composant poscketsymbol, nous utilisions la notion suivante : voir le code utilisé
---
gnumevenement = Evénement("CallBackScan","*.*",5103)


PROCÉDURE CallBackScan()
sCodebarre est une chaîne
sLongueur est un entier
bCode est un booléen = Faux
sProduittempo est une chaîne
slocalisationtempo est une chaîne


pScanner.ValeurCodeBarreEvenement(sCodebarre,sLongueur)

SELON Gauche(pScanner.stResultatScan.sCodeBarre,1)

CAS "S" // traitement du numéro de produit
sProduittempo = pScanner.stResultatScan.sCodeBarre
sProduittempo = Milieu(Replace(sProduittempo," ",""),2,Taille(sProduittempo)-1)
SAI_Produit = sProduittempo
ExécuteTraitement(SAI_Produit,trtSortie)

CAS "L" // traitement de la localisation
//On vérifie d'abord si le code barre scanné est différents que celui précédement scanné

slocalisationtempo = pScanner.stResultatScan.sCodeBarre
slocalisationtempo = Milieu(Replace(slocalisationtempo," ",""),2,Taille(slocalisationtempo)-1)
SI SAI_Localisation <> Gauche(pScanner.stResultatScan.sCodeBarre,2) ALORS
SI TABLE_CoilsSurLoc..Occurrence >0 ALORS
//1 : oui
//2 : Non
SELON Dialogue("Attention, il reste des bobines scannées non mise à jour. Voulez-vous continuer et perdre vos modif")
// oui
CAS 1
TableSupprimeTout(TABLE_CoilsSurLoc)
SAI_Localisation = slocalisationtempo
ExécuteTraitement(SAI_Localisation,trtSortie)

// Non
CAS 2
FIN
SINON
SAI_Localisation = slocalisationtempo
ExécuteTraitement(SAI_Localisation,trtSortie)
FIN
SINON

FIN

SAI_Localisation = slocalisationtempo
ExécuteTraitement(SAI_Localisation,trtSortie)

AUTRE CAS
Info("le code barre scanné n'est pas bon")
FIN

pScanner.bOuvrirAccesScanner()
pScanner.bActiverScanner()
SI PAS pScanner.bLectureAvecEvenement(Handle(MaFenêtre..Nom)) = Vrai ALORS
Erreur("Une erreur est survenue pendant la mise en place du mécanisme de lecture par événement",pScanner.sErreurInfo())
FIN
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 06 août 2022 - 14:49
Personnellement, je ne comprends pas ta dernière question.
Je te conseille de regarder ce que te revoi
CbCapture(qui nécessite un autre logiciel Android)
ou CaméraDémarreDécodage.
Avec tes codes barres ensuite tu pourras adapté ton code
En conséquence pour modifier la chaîne pour obtenir la chaîne voulue si besoin.
Tu remplira alors ton champ de saisie
Etc