
RSS © www.atoutfox.org - Forum
Re: Comment récupérer Foxpro 2.6 ?Il se trouve que JMN a formulé :
> Bonjour à tous et bonne année.
> Je suis à la recherche d'une méthode de récupération du logiciel Foxpro 2.6.
> J'ai les disquettes 5 pouces de Foxbase et les disquettes 3,5 pouces de
> Foxpro.2.6 Le but étant de faire revivre mes anciennes applications de
> gestion de bibliothèque et en développer d'autres. Merci par avance à ceux
> qui pourraient m'aider. Bien cordialement
> Jean-Michel NOLLEAU
Le plus simple installer une machine virtuelle, et une version Dos.
Vous pourrez réinstallet 2.6 et faire tourner vos anciennes
applications. Pour le développement de nouvelles...Les versions
actuelles sont plus appropiées.
--
Guy Bonemme
--
Cet e-mail a été vérifié par le logiciel antivirus d'AVG.
www.avg.com
Wed, 25 Jan 2023 20:55:45 GMTRe: Imprimante sauvegardée dans un état ignorée suite MAJ windows 11 22H2Finalement nous avons fini par trouver une solution : On a modifié la clé de registre pour pouvoir continuer à utiliser l'ancienne boite de dialogue d'impression.
[HKEY_CURRENT_USER\Software\Microsoft\Print\UnifiedPrintDialog]
"PreferLegacyPrintDialog"=dword:00000001
Wed, 18 Jan 2023 20:55:45 GMTComment récupérer Foxpro 2.6 ?Bonjour à tous et bonne année.
Je suis à la recherche d'une méthode de récupération du logiciel Foxpro 2.6.
J'ai les disquettes 5 pouces de Foxbase et les disquettes 3,5 pouces de Foxpro.2.6
Le but étant de faire revivre mes anciennes applications de gestion de bibliothèque et en développer d'autres.
Merci par avance à ceux qui pourraient m'aider.
Bien cordialement
Jean-Michel NOLLEAU
Tue, 17 Jan 2023 20:55:45 GMTImprimante sauvegardée dans un état ignorée suite MAJ windows 11 22H2Bonjour,
Chez plusieurs de nos clients ayant passé la dernière MAJ de windows 11, la dérivation automatique d'une édition vers une imprimante sauvegardée dans le .FRX ne fonctionne plus. Le choix des imprimantes est systématiquement proposé (printdialog.exe) en se positionnant sur l'imprimante par défaut du poste.
Même constat en utilisant Foxypreviewer.
Avez-vous déjà constaté ce problème et si oui y a t'il une parade pour retrouver le comportement attendu?
Merci d'avance pour vos réponses.
Bonne journée,
Françoise
Fri, 13 Jan 2023 20:55:45 GMTRe: plus de fenetre de commandeBonjour,
essayer de supprimer tous les fichiers foxuser.* présents sur votre machine..puis redémarrez VFP8.
Cela devrait permettre de faire revenir la fenêtre de commande.
Cordialement
GLS
Wed, 11 Jan 2023 20:55:45 GMTplus de fenetre de commandeBonjour à tous
Je n'arrive plus à afficher le fenêtre de commande dans vfp8, même en tapant CTR + F2
Ou est elle passée?
Si qq a des lumières!!!
merci
Tue, 10 Jan 2023 20:55:45 GMTPython sous VS Code (presque un hors-sujet).Bonjour tout le monde et bonne année à toutes et à tous.
Je profite du temps libre que me laisse la retraite pour passer sous Python mes programmes VFP automatisant des tâches Excel.
Les données techniques : Windows 10 Professionnel 64 bits version 22H2 (05/11/2020), Python 3.9.0 et Visual Studio Code 1.74.2 avec l'extension Python dernier cri v2022.21.13491005
Jusqu'aux dernières mise à jour de VS Code et de l'extension Python, pas trop de problèmes. Depuis c'est la catastrophe. La vérification et la coloration syntaxique ne fonctionne pas dans certains modules. Je n'arrive pas à déterminer pourquoi certains modules sont touchés et pas d'autres. Résultat : je peux taper n'importe quoi, aucun problème n'est détecté et la mise en forme (si importante sous Python) peut rester chaotique.
J'ai essayé de revenir à la version précédente de VS Code. L'extension Python n'était pas compatible et je n'ai pas trouvé comment charger une ancienne version. En plus VS Code s'est automatiquement mis à jour pour revenir dans sa dernière version.
Toute idée sur la manière de résoudre ces problèmes serait la bienvenue.
Fri, 06 Jan 2023 20:55:45 GMTChatgpt et foxproBonjour à tous,
Je vous souhaite une excellente année 2023,
Je m'amusais à tester l'implémentation de code sur chatgpt en c# ,
et je lui ai demandé de le convertir de c# en Visual Fox pro, ce qu'il a fait très facilement,
L'intelligence artificielle va aider les développer à coder ou à traduire des morceaux de code pour aller beaucoup plus rapidement.
Avez vous testé https://chat.openai.com/chat ?
A très bientôt
Olivier
Mon, 02 Jan 2023 20:55:45 GMTRe: Calendrierbonjour à tous,
j'aime bien le calendrier présent dans _datetime.vcx ...
Jean à Grenoble
--
Cet e-mail a été vérifié par le logiciel antivirus d'AVG.
www.avg.com
Thu, 29 Dec 2022 20:55:45 GMTRe: CalendrierBonjour,
une recherche sur les contributions de ce forum te donne au moins 2 solutions..
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000204
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000136
Il y a aussi un OCX de Microsoft qui pourrait faire l'affaire..
Cordialement
GLS
Wed, 28 Dec 2022 20:55:45 GMTCalendrierBonjour chers tous! VFP 9 permet -il de sélectionner les dates affichées sous forme de calendrier dans un champ? Si oui, je voudrais savoir comment? Merci d'avance
Wed, 28 Dec 2022 20:55:45 GMTRe: Changer la couleur d'un trait fait avec .LineAuto-réponse,
Je me suis trompé entre FillColor et ForeColor.
c'est bien ForeColor qu'il faut utiliser...
Sun, 25 Dec 2022 20:55:45 GMTChanger la couleur d'un trait fait avec .LineBonjour,
je souhaite dessiner un motif par programmation, et j'utilise la méthode Line
ThisForm.Line(x1,y1,x2,y2)
La couleur du trait est noire par défaut, comment changer la couleur de dessin ?
Sun, 25 Dec 2022 20:55:45 GMTRe: ... .dbf n'est pas une tableCe pbs surgit avec les fichier index ouverts ...suite à un arrêt de la machine (coupure de courant) ce fichier index prendra la valeur 0 dans sa taille. dans ce cas supprimer ce fichier index puis lancer sa création de nouveau. Mais le problème que vous soulever avec le fichier .DBF sincèrement je travaille avec VFP depuis 1990 (fox) à ce jour, je n'ai jamais rencontré de problème avec les tables *.dbf
Mon, 19 Dec 2022 20:55:45 GMTRe=3a Objet wzimport exig=c3=a9 pendant la reconstruction ou la compilation d'un projet VFPBonsoir,
les objets wz.... sont des assistants de VFP (wz pour wizard). Il n'est pas trop
étonnant qu'à un moment où l'autre il soit inclus dans le projet. Il suffit d'un
clic mal placé ...
Bonne soirée et bon courage
Jean à Grenoble
--
Cet e-mail a été vérifié par le logiciel antivirus d'AVG.
www.avg.com
Tue, 13 Dec 2022 20:55:45 GMTRe: Objet wzimport exigé pendant la reconstruction ou la compilation d'un projet VFPChers collègues, j'ai trouvé une solution à mon problème. J'ai reconstitué le projet classe par classe, et à chaque fois je lançais le build. Ainsi j'ai décelé le problème au moment où j'ai ajouté les reports, j'ai alors récupéré une ancienne sauvegarde qui n'était pas contaminée. Mais je ne sais pas comment cet intrus s'est retrouvé dans mon projet. Merci à vous tous.
Damonzon.
Tue, 13 Dec 2022 20:55:45 GMTRe: Ou trouver les fichiers d'installation de VisualFoxPro9?Bonjour,
Si le problème n'est pas déjà réglé, je vous pose la question suivante : Est ce que l'application existe en format .EXE ? Si oui je crois qu'il vous suffit d'installer le moteur VFP9 sur la nouvelle machine.
Damonzon.
Tue, 13 Dec 2022 20:55:45 GMTObjet wzimport exigé pendant la reconstruction ou la compilation d'un projet VFPChers Collègues,
Depuis quelques temps je suis confronté à une erreur chauqe fois que je lance le build ou compile de mon projet. L'erreur se produisait par moment, maintenant elle est devenue constante au cours du Build ou du Compile. Le message qui s'affiche est le suivant : "Memo file c:\projet\wzimport\ missing or invalid"
Je me demande comment un tel objet s'est retrouvé dans mon projet. Si quelqu'un d'entre vous a déjà eu à faire à ce genre de situation, ou en a t-il connaissance autrement, je 'sollicite votre concours précieux.
Merci d'avance.
AtoutFoxement vôtre.
Tue, 13 Dec 2022 20:55:45 GMTRe: Codification des articlesBonjour Monsieur Abdelrrazak,
Merci pour votre réponse, enfin j'ai quelqu'un qui a compris ma question, je crois de je vais opter pour la première solution un seul code pour toutes les prestations.
Meilleures salutations.
Sun, 30 Oct 2022 20:55:45 GMTRe: importer um fichier XMLSalut mplaza2
Excusez moi, mais l´ erreur est:
Object OXML is not found
Merci,
Luis
Tue, 25 Oct 2022 20:55:45 GMTRe: importer um fichier XMLSalut Jean,
Merci beaucoup por votre example que je vais essayer.
Luis
Tue, 25 Oct 2022 20:55:45 GMTRe: importer um fichier XMLSalut mplaza2,
Je suis en train d´essayer votre programme, mais le même retourne une erreur sue les ligne qui ont : oxml.
J´ai changer le chemin de l´executable comme ça :
oData = "C:\Users\LG\Downloads\nfXML-master\nfXML-master\nfXmlRead" +( getXml() )
L´erreure est lá suivante :
OXML is not an object.
Pouvez vous m´aider sur cette erreur?
Merci,
Luis Santos
Tue, 25 Oct 2022 20:55:45 GMTRe: Codification des articlesBonjour,
Vous pouvez créer un seul code article pour toutes les prestations des services ou créer autant de code que des prestation qui pourrons vous interesser dans les statistiques ou le calcul des coûts.
Mais l'approche n'est pas la bonne. Vous devez utiliser une des méthodes d'analyse et de conception, genre Merise ou autres.
Wed, 19 Oct 2022 20:55:45 GMTRe: propriétés desktop reste visible après modif d'une FormQuestion inutile désolé, il fallait décliquer droit "ancrable" et "masquer" de la fenêtre proriétés ...
Mon, 17 Oct 2022 20:55:45 GMTpropriétés desktop reste visible après modif d'une FormLe titre de la question résume le sujet !
Je ne retrouve pas comment faire pour que la fenêtre "propriétés" se ferme systématiquement après les modifications apportées à un écran.
Merci à tous
JM André
Sun, 16 Oct 2022 20:55:45 GMTCodification des articlesBonjour les foxeurs,
Je suis confronté actuellement à une problématique de codification des articles.
Je n'ai pas de problème avec la codification articles de stock mais des articles de prestation de service telle que les expertise nettoyage fraisage entretien diagnostique étude etc sachant que nous une entreprise de maintenance d'équipement s.
Ma question est : es ce que je peux m'en passer de la codification avec les prestation toute en gardant la notion de famille et sous famille des prestations?
Si quelqu'un a compris ma question prière me faire part de votre contribution SVP
Sat, 15 Oct 2022 20:55:45 GMTRe: Connection à une BD sqliteVous devez utiliser
[VFP]
SELECT name FROM sqlite_master
[/VFP]
Wed, 12 Oct 2022 20:55:45 GMTRe: Connection à une BD sqliteBonjour et merci pour votre réponse.
C'est la bonne syntaxe.
Çà marche. Je vais pouvoir m'atteler aux formulaire de mon appli dédiée au medical.
Bonne journée.
A.MAHALLA
Mon, 10 Oct 2022 20:55:45 GMTRe: Connection à une BD sqliteBonjour,
je dirais plutôt:
[VFP]SELECT name FROM sqlite_master WHERE type='table';[/VFP]
Mon, 10 Oct 2022 20:55:45 GMTRe: Connection à une BD sqliteBonjour et merci à tous pour vos réponses.
1- la BD SQLITE est sur le même répertoire courant que l'appli.
2- ConSqLite prend une valeur > 0. ce qui me permet d'exécuter 2 requêtes sur main.db.
3- " La table main.db existe-elle bien dans la base de données (de même nom) main.db ?" : Non, il n'y a pas de table 'main' dans la BD.
4- Voila ce que je voulais :
a-Lister les tables qui existe dans main.db avec (Selectsql = SQLEXEC(conSqLite, "SELECT name FROM main.db"), apparemment c'est la mauvaise commande.
Y a t'il une commande qui le permet(Lister les tables d'une BD)?
b-J'ai une table deviceTable dans main.db qui s'ouvre et j'ai un cursor que je liste.
[VFP]
**-- Connection à une base de donnees Sqlite située sur le répertoire courant
conSqLite = SQLSTRINGCONNECT("DRIVER=SQLite3 ODBC Driver;Database=.\main.db;")
IF conSqLite < 0
* Erreur de création de connection
=MESSAGEBOX("ERREUR Connection " + CHR(13) + ;
"1-Code Erreur : "+STR(errcon1[1])+CHR(13)+ ;
"2-" + errcon1[2]+CHR(13)+ ;
"4-Etat courant ODBC SQL : " + errcon1[4]+CHR(13)+ ;
"5-N° Erreur source de données ODBC : " + STR(errcon1[5])+CHR(13)+ ;
"6-Descripteur Con ODBC : " + STR(errcon1[6]))
ELSE
**-- a- Lister les tables de la base de données
Selectsql1 = SQLEXEC(conSqLite, "SELECT name FROM main.db")
IF Selectsql1 < 0
=AERROR(errdel)
=MESSAGEBOX("ERREUR1 Connection " + CHR(13) + ;
"1-Code Erreur : "+STR(errdel[1])+CHR(13)+ ;
"2-" + errdel[2]+CHR(13)+ ;
"4-Etat courant ODBC SQL : " + errdel[4]+CHR(13)+ ;
"5-N° Erreur source de données ODBC : " + STR(errdel[5])+CHR(13)+ ;
"6-Descripteur Con ODBC : " + STR(errdel[6]))
ELSE
BROWSE
ENDIF
**-- b- Ouvrir la table deviceTable de main.db
Selectsql2 = SQLEXEC(conSqLite, "SELECT* FROM deviceTable")
IF Selectsql2 < 0
=AERROR(errdel)
=MESSAGEBOX("ERREUR2 Connection " + CHR(13) + ;
"1-Code Erreur : "+STR(errdel[1])+CHR(13)+ ;
"2-" + errdel[2]+CHR(13)+ ;
"4-Etat courant ODBC SQL : " + errdel[4]+CHR(13)+ ;
"5-N° Erreur source de données ODBC : " + STR(errdel[5])+CHR(13)+ ;
"6-Descripteur Con ODBC : " + STR(errdel[6]))
ELSE
BROWSE
ENDIF
= SQLDISCONNECT(conSqLite)
ENDIF
[/VFP]
Merci pour votre aide et bonne journée.
A.MAHALLA
Mon, 10 Oct 2022 20:55:45 GMTRe: Connection à une BD sqliteBonjour
je mettrais le chemin complet au lieu de .\main.db
\
eg: C:\SQL\main.db
Mon, 10 Oct 2022 20:55:45 GMTRe: Connection à une BD sqliteBonjour,
quelle valeur prend conSqLite avant le SQLEXEC ?
La table main.db existe-elle bien dans la base de données (de même nom) main.db ?
Cordialement
GLS
Mon, 10 Oct 2022 20:55:45 GMTRe: Connection à une BD sqliteRebonjour,
Merci pour toute aide
Bonne journée
A.MAHALLA
Sun, 09 Oct 2022 20:55:45 GMTConnection à une BD sqliteBonjour à tous
Je bloque sur ce sujet :
me connecter à une base de donnée SQLITE (main.db).
Voici mon code :
[vfp]
conSqLite = SQLSTRINGCONNECT("DRIVER=SQLite3 ODBC Driver;Database=.\main.db;")
Selectsql = SQLEXEC(conSqLite, "SELECT name FROM main.db")
[/vfp]
J'ai une erreur:
1-Code erreur 1526
2- Erreur de connectivité; no such table: main.db (1)
Sun, 09 Oct 2022 20:55:45 GMTRe: importer um fichier XMLBonjour Luis,
tu devrais utiliser les syntaxes 'modernes' de VFP. D'une part cela va
simplifier le code d'autre part il devrait y avoir une amélioration de la
vitesse d'execution.
je te donne un exemple :
[vfp]
LOCAL mbi AS object
*!* Etiquetas
Create Cursor mbicursor(ref c(18), Design c(60), qtt N(10,3), edebito N(10,3), ;
debito N(10,3), desconto N(10,2), desc2 N(10,2) ,desc3 N(10,2),desc4 N(10,2), ;
desc5 N(10,2), desc6 N(10,2), tabiva N(4,2) , ttdeb N(10,3), ettdeb N(10,3), ;
stns L, Lote c(30), usalote L, Lordem N(20,0), partes N(10,2) , cativo L , ;
stipo N(2,0) , armazem N(5,0), lobs c(10), litem c(20), dedata c(10), ;
atedata c(10)) &&
SCATTER BLANK NAME mbi
mbi.ref = m.OROOT.selectNodes("Documento/Linhas/referencia").Item(0).Text
mbi.Design = m.OROOT.selectNodes("Documento/Linhas/descricao").Item(0).Text
mbi.qtt = m.OROOT.selectNodes("Documento/Linhas/quantidade").Item(0).Text
mbi.lobs =
Alltrim(m.OROOT.selectNodes("Documento/Linhas/lineordernumber").Item(0).Text)
.....
For Each ONODE As 'MSXML2.IXMLDOMNode' In M.ONODELIST
....
mbi.qtt = Val(m.qttetiqueta)
....
mbi.dedata =
Dtoc(m.OROOT.selectNodes("Documento/Linhas/Etiquetas/datarequeridainicial").Item(0).Text)
mbi.desconto = 0.00
....
INSERT INTO mbicursor FROM NAME mbi && c'est simple et rapide !!
...
Endfor
[\vfp]
Bon courage !
Jean à Grenoble
--
Cet e-mail a été vérifié par le logiciel antivirus d'AVG.
www.avg.com
Sat, 01 Oct 2022 20:55:45 GMTRe: importer um fichier XMLSalut!
Je vous remercie por vos explications. :)
Luis
Wed, 28 Sep 2022 20:55:45 GMTRe: importer um fichier XMLSalut!
le nom de fichier peut être donné directement en paramètre à nfxml (j'ai utilisé text-endtext juste pour rendre l'exemple plus facile)
Vous pouvez oublier les touches {alt+w} {A} Je ne les ai utilisées que pour organiser les fenêtres en invoquant le menu window-> Arrange All
Wed, 28 Sep 2022 20:55:45 GMTRe: importer um fichier XMLMerci pour votre aide,
J´ai 2 questions a vous faire:
Est il possible charger le fichier XML cherchant le même sur l´ordinateur e placer tout danas TEXT TO....ENDTEXT ?
Vou avez utilizer : keyboard "{alt+w}{a}" , pouvez vous m´expliquer quel action vá faire cette commande ?
Merci,
Luis
Wed, 28 Sep 2022 20:55:45 GMTRe: importer um fichier XMLMerci por votre reponse,
Comment placer vou dans TEXT TO ... ENDTEXT le fichier XML, je pense que vous n' avez pas copier le même que je vous ai envoyer ?
Si vous avez copier le même, est il possible de le charger em cherchant le fichier sur l´ordinateur ?
Aussi une curiosité , porquoi :
keyboard "{alt+w}{a}"
Merci por votre aide !
Luis
Wed, 28 Sep 2022 20:55:45 GMTRe: importer um fichier XML[VFP]
*
* en utilisant nfxml
* https://github.com/vfpx/nfxml
*
create cursor LINHAS ( ;
CODLOCALENTREGA V(3),;
DESCRICAO V(28),;
LINEORDERNUMBER V(7),;
LINHA V(1),;
NUMDOC V(17),;
QUANTIDADE V(3),;
REFERENCIA V(11))
create cursor embalagem ( codembalagem v(10), total v(12))
create cursor etiquetas ( ;
DATAREQUERIDAFINAL V(8),;
DATAREQUERIDAINICIAL V(9),;
QUANTIDADEREQUERIDA V(1),;
TIPOREQUISICAO V(1))
oData = nfXmlRead( getXml() )
insert into linhas from name oxml.vfpdataset.documento.linhas
insert into embalagem from name oxml.vfpdataset.documento.linhas.embalagem
for each oEtiqueta in oxml.vfpdataset.documento.linhas.etiquetas
insert into etiquetas from name m.oEtiqueta
endfor
select linhas
edit normal nowait
select etiquetas
go top
browse normal nowait
select embalagem
edit normal nowait
keyboard "{alt+w}{a}"
function getxml()
local xml
text to xml noshow
1
Z3505505000
CASQUILLO ADP AR NATU EVOL J
302
5061850
GOU
20220722327506185
Z20CAR12
3000
4
3
20220831
20220831
4
0
20220905
20220911
4
3
20220926
20221002
4
3
20221010
20221016
4
0
20221017
20221023
4
3
20221107
20221113
ENDTEXT
return m.xml
[/VFP]
Wed, 28 Sep 2022 20:55:45 GMTimporter um fichier XMLBonjour,
j´ai developper une routine em VFP por importer um fichier XML dans mon programme, mais mon probleme cést que je n´arrive pas a créer les 6 lignes por inserer sur ma grid de lignes de mon document.
Je vou envoi mon Code e le fichier XML a importer, ainsi comme le document aprés importer avec mon code.
[vfp]
Local Array MyFiles[1,5]
nFilesFound = Adir( MyFiles, "D:\Trabalho_Clientes\Caimaplas\DELFOR\*.xml" )
If Empty(nFilesFound)
MSG("Não existem encomendas a importar")
Return .F.
Else
For i = 1 To nFilesFound
** Criar Dossiers Programaticamente
fecha("mbocursor")
fecha("mbo2cursor")
fecha("mbicursor")
* usar tabelas de dossiers
Do dbfusebi
Do dbfuseboall
* Utilizar a configuração do tipo de dossier nº1
Do tsread With "",1
* criar os cursores mbocursor, mbo2cursor, mbicursor e mbicursor2 vazios
Create Cursor mbocursor (no N(10), estab N(3), memissao c(10),dataobra d(8),dataopen d(8),datafinal d(10),boano N(4),marca c(20),serie c(20),maquina c(20),obrano N(10),obranome c(30),Nome c(60),morada c(60),Local c(60),codpost c(60),ncont c(60))
u_sqlexec([select * from bo2 (nolock) where 1=0],[mbo2cursor])
u_sqlexec([select * from bi (nolock) where 1=0],[mbicursor])
* CLEAN ALL CURSORS
Select mbocursor
Delete For .T.
Select mbo2cursor
Delete For .T.
Select mbicursor
Delete For .T.
**Inicialização de variáveis locais que irão ser utilizadas mais à frente no código
Local SFILE As String, SDATAXML As String, SSEL As String
**M.sfile é a variável que vai guardar o nome do ficheiro XML a importar. Além do nome também guarda o caminho (path) para o ficheiro.
m.SFILE = "D:\Trabalho_Clientes\Caimaplas\DELFOR\"+MyFiles[i,1]
If Empty(M.SFILE)
Return .F.
Else
**Verifica se o ficheiro é do tipo XML
If .Not. ".XML"$Alltrim(Upper(M.SFILE))
MSG("Tipo de ficheiro inválido!")
Return .F.
Else
**A função Type avalia uma expressão do tipo caracter e retorna o tipo de dados da expressão, e para além disso verificamos aqui se o ficheiro existe ou não
If Type("m.sFile")<>"C" .Or. .Not. File(M.SFILE)
MSG("Ficheiro Não Encontrado!")
Return .F.
Endif
Endif
Endif
**A variável M.sdataxml vai conter o resultado da função Filetostr, esta retorna o conteúdo de um ficheiro como sendo uma string, para ser utilizada em xbase.
m.SDATAXML = Filetostr(M.SFILE)
**Inicialização da variável local que irá conter o XML
Local oXMLDocument As MSXML2.DOMDocument
**Inicialização da variável local que irá conter a lista de Transacções
Local ONODELIST As MSXML2.IXMLDOMNodeList
** Criar o objecto e atribui-lhe o XML
m.oXMLDocument = Createobject("msxml2.domdocument.4.0")
m.oXMLDocument.Load(M.SFILE)
m.oXMLDocument.Async = .F.
m.oXMLDocument.VALIDATEONPARSE = .F.
m.oXMLDocument.PreserveWhiteSpace = .F.
** Define a root do XML (nó principal)
m.OROOT = M.oXMLDocument.DOCUMENTELEMENT
** Lê a tag OrderDate
m.obranome = m.OROOT.selectNodes("Documento/numdoc").Item(0).Text
m.datadoc = m.OROOT.selectNodes("Documento/datadoc").Item(0).Text
m.dataentrega = m.OROOT.selectNodes("Documento/dataentrega").Item(0).Text
m.glnfornecedor = m.OROOT.selectNodes("Documento/glnfornecedor").Item(0).Text
m.idtransporte = m.OROOT.selectNodes("Documento/idtransporte").Item(0).Text
*!* LINES OF DOCUMENT
m.ref = m.OROOT.selectNodes("Documento/Linhas/referencia").Item(0).Text
m.design = m.OROOT.selectNodes("Documento/Linhas/descricao").Item(0).Text
m.qtt = m.OROOT.selectNodes("Documento/Linhas/quantidade").Item(0).Text
m.lineordernumber = m.OROOT.selectNodes("Documento/Linhas/lineordernumber").Item(0).Text
m.boano=Year(Date())
** Embalagem
m.embalagem = m.OROOT.selectNodes("Documento/Linhas/Embalagem/codembalagem").Item(0).Text
m.total = m.OROOT.selectNodes("Documento/Linhas/Embalagem/total").Item(0).Text
*!* Etiquetas
Create Cursor mbicursor( ref c(18), Design c(60), qtt N(10,3), edebito N(10,3), debito N(10,3), desconto N(10,2), desc2 N(10,2) , desc3 N(10,2), desc4 N(10,2), desc5 N(10,2), desc6 N(10,2), tabiva N(4,2) , ttdeb N(10,3), ettdeb N(10,3), stns L, Lote c(30), usalote L, Lordem N(20,0), partes N(10,2) , cativo L , stipo N(2,0) , armazem N(5,0), lobs c(10), litem c(20), dedata c(10), atedata c(10)) &&
m.tiporequisicao = m.OROOT.selectNodes("Documento/Linhas/Etiquetas/tiporequisicao").Item(0).Text
** READ LIST OF ETIQUETAS
m.ONODELIST = M.OROOT.selectNodes("Documento/Linhas/Etiquetas")
For Each ONODE As 'MSXML2.IXMLDOMNode' In M.ONODELIST
m.ONODELISTTRA = M.OROOT.selectNodes("Documento/Linhas/Etiquetas")
** Verifica o nome do elemento e lê o seu valor
Do Case
Case Alltrim(ONODE.NODENAME) == "Etiquetas"
m.qttetiqueta = m.OROOT.selectNodes("Documento/Linhas/Etiquetas/quantidaderequerida").Item(0).Text
If Val(m.qttetiqueta) <> 0
m.qttetiqueta = m.OROOT.selectNodes("Documento/Linhas/Etiquetas/quantidaderequerida").Item(0).Text
m.dedata = m.OROOT.selectNodes("Documento/Linhas/Etiquetas/datarequeridainicial").Item(0).Text
m.atedata = m.OROOT.selectNodes("Documento/Linhas/Etiquetas/datarequeridafinal").Item(0).Text
*!* Date conversion
m.dedata = Ctod(Substr(m.dedata,7,2)+'.'+Substr(m.dedata,5,2)+'.'+Substr(m.dedata,1,4))
m.atedata = Ctod(Substr(m.atedata ,7,2)+'.'+Substr(m.atedata ,5,2)+'.'+Substr(m.atedata,1,4))
Endif
** Percorre a lista de OrderItems
Select mbicursor
Append Blank
Replace mbicursor.ref With m.ref
Replace mbicursor.Design With m.design
Replace mbicursor.qtt With Val(m.qttetiqueta)
Replace mbicursor.edebito With 0.00
Replace mbicursor.debito With 0.00 *200.482
Replace mbicursor.ettdeb With 0.00 * Val(m.qtt)
Replace mbicursor.ttdeb With 0.00 * Val(m.qtt) *200.482
Replace mbicursor.stipo With 4
Replace mbicursor.armazem With 1
Replace mbicursor.desconto With 0.00
Replace mbicursor.desc2 With 0.00
Replace mbicursor.desc3 With 0.00
Replace mbicursor.desc4 With 0.00
Replace mbicursor.desc5 With 0.00
Replace mbicursor.desc6 With 0.00
Replace mbicursor.stns With .F.
Replace mbicursor.Lote With ''
Replace mbicursor.usalote With .F.
Replace mbicursor.lobs With Alltrim(m.lineordernumber)
Replace mbicursor.litem With Alltrim(m.embalagem)
Replace mbicursor.Lordem With 0
Replace mbicursor.partes With 0
Replace mbicursor.cativo With .F.
Replace mbicursor.dedata With Dtoc(m.dedata)
Replace mbicursor.atedata With Dtoc(m.atedata)
If Empty(m.ref)
Select mbicursor
Replace mbicursor.tabiva With 2
Endif
*!* fonction interne pour recalculer les totals por lignes
Do u_bottdeb With 'mbicursor'
Endcase
Endfor
m.eancl= m.OROOT.selectNodes("Documento/eancliente").Item(0).Text
TEXT to m.cSel noshow textmerge
select cl.no,nome,morada,local,codpost,pncont,ncont from cl where cl.eancl='<
>' and cl.estab=0
ENDTEXT
If u_sqlexec(m.cSel,"cliente")
If Reccount("cliente")>0
Select cliente
m.no=cliente.no
m.nome=cliente.Nome
m.morada=cliente.morada
m.local=cliente.Local
m.codpost=cliente.codpost
m.codpais=cliente.pncont
m.ncont=cliente.ncont
Endif
Endif
TEXT to m.cSel noshow textmerge
select isnull(max(bo.obrano),0) as obrano from bo where bo.ndos=1 and bo.boano=year(getdate())
ENDTEXT
If u_sqlexec(m.cSel,"dossier") And Reccount("dossier")>0
Select dossier
m.obrano=dossier.obrano+1
Endif
** DEFINE DOCUMENT TO IMPORT
m.ndos=1
* preencher alguns campos do cabeçalho (mbocursor)
Select mbocursor
Append Blank
Replace mbocursor.no With m.no
Replace mbocursor.estab With 0
Replace mbocursor.memissao With 'EURO'
Replace mbocursor.dataobra With Ctod(m.datadoc)
Replace mbocursor.dataopen With Ctod(m.datadoc)
Replace mbocursor.datafinal With Ctod(m.datadoc)
Replace mbocursor.boano With m.boano
Replace mbocursor.obrano With m.obrano
Replace mbocursor.obranome With m.obranome
Replace mbocursor.Nome With m.nome
Replace mbocursor.morada With m.morada
Replace mbocursor.Local With m.local
Replace mbocursor.codpost With m.codpost
Replace mbocursor.ncont With m.ncont
**Esta função manda uma mensagem ao utilizador enquanto é executada a importação das encomendas
Do ACTFORM With "Estou a importar a encomenda Nº "+m.obranome+" de "+m.nome
If Not criabobi(1,'mbicursor','mbocursor','mbo2cursor',.F.,.F.,,.F.)
mensagem('Erro a gravar dossier','DIRECTA')
Return
Endif
Set Path To "D:\Trabalho_Clientes\Caimaplas\DELFOR\"
Rename MyFiles[i,1] To "D:\Trabalho_Clientes\Caimaplas\DELFOR\"+MyFiles[i,1]+".lido"
Endfor
DEACTFORM()
MSG("Importação de encomendas terminado com sucesso.")
sbo.Refresh
Endif
[/vfp]
mon Fichier XML:
[vfp]
DELFOR
20220722327506185
2022-07-22
2022-08-31
0944502672994
20449
0931344844998
093134484499800155
1
Z3505505000
CASQUILLO ADP AR NATU EVOL J
302
5061850
GOU
20220722327506185
Z20CAR12
3000
4
3
20220831
20220831
4
0
20220905
20220911
4
3
20220926
20221002
4
3
20221010
20221016
4
0
20221017
20221023
4
3
20221107
20221113
Toutes les lignes ont les mêmes valeurs !?
Merci pour vos aides,
Luis
Wed, 28 Sep 2022 20:55:45 GMT
Re: les boutons disparaissent avec le survol de la souris
Bonjour Alain,
dans l'initialisation de ton application, essaie de mettre ce code :
[VFP]
= SYS(2700,0) && désactive les thèmes
_screen.themes = .F.
[\VFP]
Tiens nous au courant !
Bonne journée
Jean
--
Cet e-mail a été vérifié par le logiciel antivirus d'AVG.
www.avg.com
Thu, 15 Sep 2022 20:55:45 GMT
les boutons disparaissent avec le survol de la souris
les boutons de commande disparaissent quand je passe le pointeur puis reapparaissent un par un quand je reviens dessus. Mon Systeme est windows 10 sur mon ordi fixe (ou ce produit ce dysfonctionnement . Cela se fait avec une application et non avec une seconde. En principe ce n'est pas foxpro qui est responsable. Ceci ne se produit pas sur mon portable équipée de windows 7 Pro
Wed, 14 Sep 2022 20:55:45 GMT
Re: Dysfonctionnement ?
OK, merci bien. J'y vais
Mon, 12 Sep 2022 20:55:45 GMT
Re: Dysfonctionnement ?
Bonjour,
Vos fichiers mémo des formulaires (*.sct) (un formulaire c'est un couple *.scx + *.sct) ont été corrompus et sont donc HS.
Il vous faut:
- récupérer une sauvegarde de vos fichiers sources et la remettre en service
- vérifier et exclure de votre anti-virus tous les dossiers et fichiers utilisés par VFP (ceux de vos sources et ceux de VFP)
Bonne journée
Cordialement
GLS
Sun, 11 Sep 2022 20:55:45 GMT
Dysfonctionnement ?
En plein travail, VFP9 cesse de fonctionner et se ferme.
Je redémarre la machine et relance VFP9.
Après exécution de cette application, tous les formulaires sont inaccessibles pour modification. Et le message est le suivant:
Mémo files C:\program files\repertoireapplication\repertoire des formulaires\nom formulaire.SCT is missing or is invalid.
J'ai pensé a des fichiers système de VFP9 endommagés mais les autres applications testés n'ont pas ce problème.
Que faire SVP
Aide
Sat, 10 Sep 2022 20:55:45 GMT
Re: REPORT avec plusieurs pages
Merci beaucoup, je vois bien le principe mais je ne peux pas faire ça, j'ai des titres à mettre et de polices différentes.
Je vais essayer de repenser différemment mon état.
bonne journée,
cordialement
Wed, 07 Sep 2022 20:55:45 GMT
Re: REPORT avec plusieurs pages
Merci beaucoup de votre aide. Mais je vais donc être bloquée ..
Bonne journée,
Cordialement,
Wed, 07 Sep 2022 20:55:45 GMT
Re: Attention avec la fonction MAX(eExpression1, eExpression2 [,eExpression3 ...]) avec des strings...
haha, Jean
C'est ce que j'ai répondu http://www.atoutfox.org/nntp.asp?ID=0000020000
cdlt,
Tue, 06 Sep 2022 20:55:45 GMT
Re: REPORT avec plusieurs pages
Bonjour,
si les textes à imprimer ne font pas appel à des polices différentes, on peut
créer un fichier intermédiaire contenant des champs memo et donc décomposer le
document en plusieurs lignes de ce fichier. Les memos sont imprimés alors dans
la bande détail.
Si le principe te convient, je peux te donner un exemple ...
Cordialement,
Jean à Grenoble
--
Cet e-mail a été vérifié par le logiciel antivirus d'AVG.
www.avg.com
Tue, 06 Sep 2022 20:55:45 GMT
Re: Attention avec la fonction MAX(eExpression1, eExpression2 [,eExpression3 ...]) avec des strings...
Ah ben voilà qu'on a besoin d'un vieux pour résoudre ce problème qui n'en est
pas un !!!!
la comparaison des chaînes se fait caractère par caractère de gauche à droite
mais selon le code ASCII.
Donc "9" ASCII 57 est après "1" ASCII 49
l'espace a pour code ASCII 32 donc bien avant "0" ASCII 48 ou "1" ASCII 49
de même "A" ASCII 65 sera avant "a" ASCII 97
Pour pas compliquer je vous ai indiqué les codes ASCII en décimal mais
normalement on les indique en hexadécimal ;-)
Je sens que je vais avoir un goody aux prochaines rencontres !!
Jean à Grenoble
--
Cet e-mail a été vérifié par le logiciel antivirus d'AVG.
www.avg.com
Tue, 06 Sep 2022 20:55:45 GMT
Re: Ou trouver les fichiers d'installation de VisualFoxPro9?
Bonsoir Sebouille94,
Microsoft ne distribue plus les boites VFP9 depuis de très très nombreuses années...
(j'avais acheté une 15zaines de boites à la fin, toutes vendues).
Ensuite l'iso était téléchargeable avec un abonnement développeur (MSDN) mais plus le cas je crois (à vérifier).
Si tu as l'ancien PC tu peux copier le répertoire VFP9 sur le nouveau PC, ou lancer le VFP9 sur l'ancien PC dans "à propos" noter le code d'activation et installer sur nouveau pc avec ce code. Ou rechercher la boite vfp9 d'origine achetée (c'est une jaquette format DVD)
enfin pour une licence d'occasion : passé un temps on en voyait sur ebay : je ne sais pas si c'est toujours le cas....
Cordialement
Mon, 05 Sep 2022 20:55:45 GMT
Re: REPORT avec plusieurs pages
Un entête d'état peut effectivement faire qu'une seule page... (comme un pied d'état je crois...)
Quand il y a trop de texte (style CGV ou autre) alors effectuer l'état lui même (report) et joindre un document PDF (?)
Perso je ne vois pas comment faire autrement pour un état... ce n'est pas un "traitement de texte" :S
Cordialement
Le ven. 02 septembre 2022, 08h15 shjl a écrit :
> Bonjour, J'ai un report à faire, mais j'ai tellement d'information à y indiquer que ça ne passe pas sur une page. Et VFP9 me bloque en disant que "Pageheader band is too large to fit on page. Quand il y a un détail avec plusieurs lignes, ça c'est bon, ça passe bien sur plusieurs pages et je sais faire.Là c'est que j'ai beaucoup d'info à marquer. Dites moi si je ne suis pas claire, et merci par avance de votre aide.
>
Mon, 05 Sep 2022 20:55:45 GMT
Re: Ou trouver les fichiers d'installation de VisualFoxPro9?
Personne n'a d'idée??
Sébastien
Mon, 05 Sep 2022 20:55:45 GMT
REPORT avec plusieurs pages
Bonjour, J'ai un report à faire, mais j'ai tellement d'information à y indiquer que ça ne passe pas sur une page. Et VFP9 me bloque en disant que "Pageheader band is too large to fit on page. Quand il y a un détail avec plusieurs lignes, ça c'est bon, ça passe bien sur plusieurs pages et je sais faire.Là c'est que j'ai beaucoup d'info à marquer. Dites moi si je ne suis pas claire, et merci par avance de votre aide.
Fri, 02 Sep 2022 20:55:45 GMT
Re: Attention avec la fonction MAX(eExpression1, eExpression2 [, eExpression3 ...]) avec des strings...
Bonjour,
Peut-être, mais pas surprenant
[vfp]
max(padl(ltrim(var1), 16, '0'), padl(ltrim(var2), 16, '0'))
[/vfp]
Wed, 31 Aug 2022 20:55:45 GMT
Re: Attention avec la fonction MAX(eExpression1, eExpression2 [, eExpression3 ...]) avec des strings...
Oui Mike c'est bien ce que je fais et qu'il faudrait faire (je pense) ^^
Wed, 31 Aug 2022 20:55:45 GMT
Re: Attention avec la fonction MAX(eExpression1, eExpression2 [, eExpression3 ...]) avec des strings...
? MAX(VAL("100"),VAL( "99"))
Wed, 31 Aug 2022 20:55:45 GMT
Re: Attention avec la fonction MAX(eExpression1, eExpression2 [, eExpression3 ...]) avec des strings...
Bonjour Gregory,
Possible. mais "problématique"...
Le mer. 31 août 2022, 10h33 Gregory Adam a écrit :
> Bonjour
> > En fait il semble que la longueur de la chaine soit prise en compte ou autre : donc attention.
>
> La longueur n'y est pas pour grand-chose.
> C'est une comparaison caractère par caractère, de gauche à droite.
>
> cdlt
>
Wed, 31 Aug 2022 20:55:45 GMT
Re: Attention avec la fonction MAX(eExpression1, eExpression2 [, eExpression3 ...]) avec des strings...
Bonjour
> En fait il semble que la longueur de la chaine soit prise en compte ou autre : donc attention.
La longueur n'y est pas pour grand-chose.
C'est une comparaison caractère par caractère, de gauche à droite.
cdlt
Wed, 31 Aug 2022 20:55:45 GMT