ATOUTFOX
    COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO

Forum AtoutFox

Le forum AtoutFox

Forum

RSS © www.atoutfox.org - Forum

report label en reseau
bonjour

quelqu'un peut me dire pourquoi sur vfp8 en réseau si j'affiche a l'écran une étiquette (par label form) un autre poste qui veut l'afficher a un message d'erreur (accès au fichier refusé) alors qu'avec un etat (report form ) ca ne le fait pas ?

merci


Wed, 20 Jan 2021 01:12:51 GMT

Re: Affichage localisation via google map
Bonjour Francis,
La solution de Mike a le même problème que moi aujourd'hui. Voir copie écran ci-dessous :
https://ibb.co/y4gDvzC
Je pense que le site de maps.google a modifié son interface qui n'est plus compatible avec l'accès comme on l'utilise.

Françoise


Thu, 07 Jan 2021 01:12:51 GMT

Re: Affichage localisation via google map
Bonjour et merci pour votre réponse.
Tout d'abord meilleurs voeux pour cette nouvelle année!
Le but de mon programme est d'avoir la carte en interactif dans mon formulaire, mais si je ne trouve pas d'autre solution, j'ouvrirai la page web comme vous me l'avez indiqué.
Merci!


Thu, 07 Jan 2021 01:12:51 GMT

Re: lettres en chiffres
Bonne année à tous.

Merci Francis, mais Marc avait vu juste ...

Il s'agit en pratique de récupérer la date d'un document (officiel) qui est écrite en lettres.

Ne m'intéressant qu'à 19xx et 20xx, il n'est pas difficile d'extraire le millésime.

Par la suite, je n'ai besoin que des 99 premiers nombres. Je les récupère dans un fichier texte sous la forme:
Un
Deux
Trois ...

Et la fonction ATCLINE() me founit la valeur en chiffres.

Pas très élégant mais efficace.


Mon, 04 Jan 2021 01:12:51 GMT

Ribbon header
https://doughennig.blogspot.com/2020/12/microsoft-office-365-like-ribbon-control.html


Wed, 30 Dec 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
Bonjour,

J'ai une solution pour envoyer des e-mails en MAPI32.
[VFP]
LOCAL oSess, oMsg,lcCurdir,lnSessionID
lcCurdir=SYS(5)+CURDIR()
oSess=CREATEOBJECT("MSMAPI.MAPISession")
IF VARTYPE(oSess)="O"
oSess.DownloadMail=.f.
oSess.UserName="username"
oSess.Password="password"
oSess.SignOn()
lnSessionID=oSess.SessionID
IF lnSessionID>0
oMsg=CREATEOBJECT("MSMAPI.MAPIMessages")
IF VARTYPE(oMsg)="O"
oMsg.SessionID=lnSessionID
oMsg.compose()
oMsg.AddressResolveUI = .f.
oMsg.MsgSubject = "Subject"
oMsg.MsgNoteText = "This is so easy they say!"
oMsg.RecipAddress = "info@test.nl"
oMsg.RecipDisplayName = "info@test.nl"
oMsg.ResolveName()
oMsg.RecipDisplayName = "test"
oMsg.Send()
ENDIF
oSess.SignOff()
ENDIF
ENDIF
oSes=null
oMsg=null
SET DEFAULT TO (lcCurdir)
RETURN
[/VFP]

Si cela ne fonctionne pas:

Exécuter le projet à partir d'échantillons, les solutions Activex envoient du courrier.
RUN / N Regsvr32 / s MSMAPI32.ocx.



Fri, 25 Dec 2020 01:12:51 GMT

Re: lettres en chiffres
Ah j'ai mal compris ! ou lu trop vite...
Merci Marc de "ce recadrage"...

dans ce cas : non pas connaissance de l'inverse :
il faut écrire un parseur... en prenant en compte les "fautes" courante sur les nombres...
(je n'en ai jamais eu besoin dans ce sens... je ne vois pas trop dans quel contexte l'utiliser...)

Cordialement

Le jeu. 24 décembre 2020, 14h27 Marc Thivolle a écrit :
> Sans vouloir faire le rabat-joie, il me semble que la question posée est : "comment passer de 24 décembre 2020" à "24/12/2020" ou de "deux mille cent quarante-cinq euros" à "2145 €". Ou, pour nos amis belges et/ou suisses, "septante trois" par "73".
>
>
>
> .
>



Thu, 24 Dec 2020 01:12:51 GMT

Re: lettres en chiffres
Sans vouloir faire le rabat-joie, il me semble que la question posée est : "comment passer de 24 décembre 2020" à "24/12/2020" ou de "deux mille cent quarante-cinq euros" à "2145 €". Ou, pour nos amis belges et/ou suisses, "septante trois" par "73".



Thu, 24 Dec 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
Bonjour,

Cet objet CDO appartient à Microsoft Office 2007. Une autre version d'Office peut avoir un nom d'objet différent.

Sincères salutations,

Jan Flikweert


Thu, 24 Dec 2020 01:12:51 GMT

Re: lettres en chiffres
Vincent,

Oups,
Je vois que je n'ai pas mis de liens,

sur Atoutfox :
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000839

Voir à ce lien si ce n'est pas une version + récente :
http://www.vfp.fr/nombre-en-lettres.asp

Cordialement
Francis




Le mer. 23 décembre 2020, 17h42 Francis Faure a écrit :
> Bonsoir Vincent,
>
> Hé oui, votre serviteur l'a déjà fait depuis un moment...
>
> Cordialement
> Francis
>
>
> .
>



Thu, 24 Dec 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
Bonjour Jan
Merci pour votre réponse
J'essayerai cette solution as soon
Bonne fêtes


Thu, 24 Dec 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
Bonjour,

Ici une solution email:


[VFP]SELECT mllst1_dlnmrs_pst
GO TOP
CALCULATE COUNT() TO nrecords
antwoord=Messagebox("Weet u zeker dat u ook de mail wilt versturen?",4)
If antwoord=6
loMessages = Createobject("CDO.Message")
loConf = Createobject("CDO.Configuration")
Flds = loConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = 'ml.zt.nl'
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 5
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "fl"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "=b9"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = .T.
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Update
Endwith
With loMessages
.Configuration = loConf
.From = "Inwedstrijden"
Endwith
With loMessages
.Subject = "Controle mail en telefoon"
.HTMLBody=" STORE 0 TO _MLINE
IF MEMLINES(tbl_messages.contr_mail_telf)> 0
aantal_regels= MEMLINES(tbl_messages.contr_mail_telf)
FOR teller= 1 TO aantal_regels
.HTMLBody=.HTMLBody+ALLTRIM(MLINE(tbl_messages.contr_mail_telf,1,_MLINE ))+"
"
NEXT teller
ENDIF
SELECT mllst1_dlnmrs_pst
GO TOP
teller=0
IF test_omgeving=1
.to="f3@z.nl"
.Send()
.to="ffl@z1e.nl"
.Send()
.to="in1f@z3e.nl"
.Send()
ELSE
SCAN ALL
.HTMLBody=.HTMLBody+"
"+"
"
.HTMLBody=.HTMLBody+"De bij ons bekende gegevens
"
.HTMLBody=.HTMLBody+"E-mail: "+ALLTRIM(mllst1_dlnmrs_pst.eml)+"
"
.HTMLBody=.HTMLBody+"Telefoon: "+ALLTRIM(mllst1_dlnmrs_pst.tlfn)+"
"
.to=Alltrim(mllst1_dlnmrs_pst.eml)
.Send()
ENDSCAN
ENDIF
Endwith
loMessage = .Null.
loConf = .Null.
Release loMessage,loConf
Messagebox("Het bericht is verzonden.")
ELSE
loMessage = .Null.
loConf = .Null.
Release loMessage,loConf
Messagebox("Het bericht niet verzonden.")
ENDIF
WAIT CLEAR

[/VFP]


Wed, 23 Dec 2020 01:12:51 GMT

Re: HTMLedit avec RTF
Bonsoir Koen,

Ta question est un peu "Floue" :

- tu veux éditer du RTF ?
si oui : il y a pas mal de contribution à ce sujet sur ce site (je pense à celles de Mike et Ludo)
www.atoutfox.org/recherche.asp?tables=ARTICLES&mots=RTF

- Si tu veux "HTMLedit" : cela veut dire que tu veux éditer du code HTML,
ce n'est pas du RTF : pour cela il y a la classe de Frédéric

Si tu veux convertir du RTF en HTML... ou l'inverse ce n'est pas compliqué : mais il te faudra faire un petit parseur à poster ici en contributions ;-)

Cordialement
Francis


Le mer. 02 décembre 2020, 22h54 Koen a écrit :
> Bonjour,
>
> Il semble d'etre possible d'utiliser cette classe avec une table et remplacer le field (M) avec le texte RTF composer avec HTMLEdit, mais comment?
> où dois-je saisir la ControlSource?
> Existe-t-il un exemple de travail avec RTF?
>
> Cordialement,
>
> Koen
>
>
> .
>



Wed, 23 Dec 2020 01:12:51 GMT

Re: Affichage localisation via google map
Bonsoir

à ce sujet,
Voir l'article de Mike Gagnon :
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000714

Cordialement
Francis


Wed, 23 Dec 2020 01:12:51 GMT

Re: lettres en chiffres
Bonsoir Vincent,

Hé oui, votre serviteur l'a déjà fait depuis un moment...

Cordialement
Francis


Wed, 23 Dec 2020 01:12:51 GMT

Re: Affichage localisation via google map
voila la correction de ta procédures VFP
--------------------------------------------------------
* Localisation
LCurl = "https://maps.google.com/maps?q=122-route-des-Puthods,01340,CRAS-SUR-REYSSOUZE,FRANCE";

ShowMap(m.LCurl)

*****
Procedure ShowMap(tcUrl)
Public oForm
oForm = Createobject('form1')
oForm.Show()
Declare ShellExecute In shell32.Dll Integer, String, String, String, String, Integer
* Laisser windows de decider, quelle browser il va appler (le browser par defaukt)
ShellExecute( 0 , [open] , LCurl , [] , [] , 1 )
* undeclare API-function
Clear Dlls [ShellExecute]
* release form
oForm.RELEASE()
Endproc
*****FIN
Function GetHTML
Local myVar
TEXT to myVar noshow
ENDTEXT
Return myVar
Endfunc

Define Class HTMLViewer As OleControl
OleClass = 'Shell.Explorer'

Procedure Refresh
Nodefault
Endproc

Procedure LoadHTML(tcHTML)
With This
.Navigate2("about:blank")
.Document.Write(m.tcHTML)
Endwith
Enddefine

Define Class form1 As Form
Height = 600
Width = 800
Caption = "HTML sample"

Add Object HTMLViewer As HTMLViewer With ;
Top = 10, ;
Left = 10, ;
Height = 580, ;
Width = 780, ;
Anchor = 15,;
Visible = .T., ;
Name = "HTMLViewer"

Procedure Init
Lparameters tcHTML
If !Empty(m.tcHTML)
With Thisform.HTMLViewer
.LoadHTML(m.tcHTML)
Endwith
Endif
Endproc

Procedure HTMLViewer.NavigateError
Lparameters pdisp, url, frame, statuscode, Cancel
Set Step On
Cancel = .T.
Endproc

Procedure HTMLViewer.BeforeNavigate2
Lparameters pdisp, url, Flags, targetframename, postdata, headers, Cancel
Cancel = .T. && prevents actual navigation
Endproc

Procedure HTMLViewer.Refresh
Nodefault
Endproc
Enddefine




Wed, 23 Dec 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
Bonjour,

Le problème est que le courrier est en effet possible avec mapi.

Mais comment envoyer une chaîne via TCP au port localhost 8888?

Je recherche l'équivalent de:

"cat test.txt | netcat localhost 8888".

Dans Windows 10, il n'y a pas de netcat.

Cordialement,

Jan Flikweert


Wed, 23 Dec 2020 01:12:51 GMT

Re: midi message out winmm.dll a externe usb midi device
Bonjour,

Merci pour le conseil. Je l'avais vu aussi, mais j'ai abandonné la vidéo. J'en ai trouvé un autre: https://github.com/ChristianEhlscheid/vfp2c32 et je pense que je le comprends aussi. Dans la préparation, je suis toujours à la recherche de midiconnect dans winmm. L'inconvénient est que cela ne peut pas être séparé par canal MIDI.

Une autre option consiste à trouver l'équivalent du code VB suivant:

Bonjour,

Merci pour le conseil. Je l'avais vu aussi, mais j'ai abandonné la vidéo. J'en ai trouvé un autre: https://github.com/ChristianEhlscheid/vfp2c32 et je pense que je le comprends aussi. Dans la préparation, je suis toujours à la recherche de midiconnect dans winmm. L'inconvénient est que cela ne peut pas être séparé par canal MIDI.

Une autre option consiste à trouver l'équivalent du code VB suivant:

Function MidiInProc(ByVal hMidiIn As Integer, ByVal wMsg As UInteger, ByVal dwInstance As Integer, ByVal dwParam1 As Integer, ByVal dwParam2 As Integer) As Integer
If MonitorActive = True Then
TextBox1.Invoke(New DisplayDataDelegate(AddressOf DisplayData), New Object() {dwParam1})
End If
End Function
Il y a encore quelque chose à faire.

Sincères salutations,


Jan Flikweert
Il y a encore quelque chose à faire.

Sincères salutations,


Jan Flikweert


Wed, 23 Dec 2020 01:12:51 GMT

Re: Affichage localisation via google map
Bonjour


*Voila un moyen très simple d'ouvrir une URL avec le navigateur par défaut (MS IE ou MS Edge ou Google Crome etc.) de Windows:
* que tu peux appeler dans ton application
*************************************************

LCurl= [https://maps.google.com/maps?q=122-route-des-Puthods,01340,CRAS-SUR-REYSSOUZE,FRANCE]
* declare API-function 'ShellExecute'
DECLARE ShellExecute IN shell32.dll Integer, String, String, String, String, Integer

* Laisse windows de decide, quelle app va traiter et afficher URLs
ShellExecute( 0 , [open] , lcUrl , [] , [] , 1 )

* undeclare API-function
CLEAR DLLS [ShellExecute]
************************************

je l ai essayer sur Edge (par défaut sur mon pc) ca marche bien sans erreur



Tue, 22 Dec 2020 01:12:51 GMT

Re: midi message out winmm.dll a externe usb midi device
Bonjour,

https://www.youtube.com/watch?v=JDjHrpdGOWQ

Cordialement,

Koen


Tue, 22 Dec 2020 01:12:51 GMT

Re: midi message out winmm.dll a externe usb midi device
Bonne après-midi,

Ce code est presque correct. Remplacez la 9ème ligne par:

[VFP]FOR nIndex = 1 TO nCount[/VFP]

attribution de la valeur nIndex à hDevice dans playnotes.prg.

La seule chose qui peut être faite est de traiter plusieurs messages MDI simultanément pour plusieurs appareils MIDI.

Autant que je sache, VFP ne peut pas fonctionner avec le multitâche ou le multi-thread?

Un .exe séparé pour chaque appareil et canal MIDI?

Meilleures salutations,

Jan Flikweert


Mon, 21 Dec 2020 01:12:51 GMT

Re: Windows 10 v2004
bonjour,
ok un grand merci pour ce retour d'expérience
je vais pouvoir mettre cela en place plus sereinement !

cordialement
David


Thu, 17 Dec 2020 01:12:51 GMT

Re: Windows 10 v2004
Bonjour

Votre description fichiers tmp fox et fichier tmp de l'application est bien ce que j'ai chez mes clients.
Chacune des sessions bureau à distance à son dossier dans le user..
Chaque tmp généré par VFP pour ses besoins propres est dans un dossier commun pour toutes les sessions. Je n'ai jamais eu à constater des fichiers temporaires VFP comportant le même nom. Cela ne veut pas obligatoirement dire que cela ne pourrait jamais arriver, mais je ne l'ai jamais constaté.

Cordialement
Gilles


Wed, 16 Dec 2020 01:12:51 GMT

Re: Windows 10 v2004
bonjour,
merci de votre réponse,
ok j'ai bien compris la différence entre changer le répertoire temporaire des fichiers générés par Foxpro (via fichier config.fpw)
et changer directement le répertoire temporaire de windows pour toutes les applications (variable système TMP)

en changeant juste dans config.fpw, dans le cas d'un serveur tse avec plusieurs utilisateurs connectés,
cela veut dire que plusieurs personnes sont connectés simultanément sur la même machine (le serveur),
les utilisateurs ont des droits différents, ils n'ont pas accès aux fichiers des uns des autres,
mais via le fpw le répertoire temporaire FOX de ces utilisateurs sera le même.

Du coup je m'interroge sur des conflits potentiels que cela pourrait engendrer,
car je ne contrôle pas le nom des fichiers temporaires générés automatiquement par fox,
ne risque-t-il pas de me faire le même nom de fichier temporaire pour 2 utilisateurs différents ??
(quand je dis fichiers temporaires, j'attends par là des fichiers générés automatiquement par fox lors de certaines commandes,
et non pas des fichiers que je décide de créer moi même)

je m'inquiète peut etre pour rien, mais je préfère valider ce genre de chose avant de mettre en place chez un client

Avez vous déjà mis cela en place dans des situations similaires ?

Cordialement
David


Wed, 16 Dec 2020 01:12:51 GMT

Re: Windows 10 v2004
Bonsoir,
ce sont uniquement les fichiers temp de mon application que je met dans un dossier spécifique, les fichiers temporaires des comptes utilisateurs de chaque bureau à distance restent dans leur répertoire ..users respectifs.
Cordialement
GLS


Tue, 15 Dec 2020 01:12:51 GMT

lettres en chiffres
Bonjour,

On a tous fait l'opération inverse, mais quelqu'un aurait-il une idée ou (mieux) du code pour convertir des nombres en lettres en chiffres.

En l'occurrence, il s'agit d'une date sous la forme: le quinze décembre deux mille vingt.

Merci, portez vous bien.


Tue, 15 Dec 2020 01:12:51 GMT

Re: Windows 10 v2004
Bonjour,
je reviens sur cette réponse de forcer un répertoire temporaire particulier qui me sembles prometteuse pour certains problème que je rencontre chez des clients.

Chez certains de nos clients, l'application est hébergée dans un répertoire du serveur et plusieurs utilisateurs se connectent sur celui ci en bureau à distance pour lancer l'application.
Mettre un répertoire C:\vfptemp\ implique que le répertoire temporaire devient le même pour tous les utilisateurs, j'ai peur que cela engendre d'autres soucis.

Avez vous déjà mis en place ce paramétrage dans ce genre de situation ?

merci
David


Tue, 15 Dec 2020 01:12:51 GMT

Affichage localisation via google map
Bonjour à tous,
Nous utilisons dans notre appli l'affichage de la localisation à partir d'une adresse postale en utilisant google maps.
Depuis quelques semaines, la carte s'affiche partiellement et on a une erreur de script.
Pour mieux comprendre, vous pouvez exécuter le code ci-dessous qui est sensé localiser l'adresse "122-route-des-Puthods,01340,CRAS-SUR-REYSSOUZE,FRANCE"
Rq: Celle-ci s'affiche correctement depuis une page web
Local lcUrl

* Localisation
lcURL = "https://maps.google.com/maps?q=122-route-des-Puthods,01340,CRAS-SUR-REYSSOUZE,FRANCE"
ShowMap(m.lcUrl)

Procedure ShowMap(tcUrl)
Public oForm
oForm = Createobject('form1')
oForm.Show()
oForm.HTMLViewer.Navigate2(m.tcUrl)
Endproc

Function GetHTML
Local myVar
TEXT to myVar noshow
ENDTEXT
Return myVar
Endfunc

Define Class HTMLViewer As OleControl
OleClass = 'Shell.Explorer'

Procedure Refresh
Nodefault
Endproc

Procedure LoadHTML(tcHTML)
With This
.Navigate2("about:blank")
.Document.Write(m.tcHTML)
Endwith
Enddefine

Define Class form1 As Form
Height = 600
Width = 800
Caption = "HTML sample"

Add Object HTMLViewer As HTMLViewer With ;
Top = 10, ;
Left = 10, ;
Height = 580, ;
Width = 780, ;
Anchor = 15,;
Visible = .T., ;
Name = "HTMLViewer"

Procedure Init
Lparameters tcHTML
If !Empty(m.tcHTML)
With Thisform.HTMLViewer
.LoadHTML(m.tcHTML)
Endwith
Endif
Endproc

Procedure HTMLViewer.NavigateError
Lparameters pdisp, url, frame, statuscode, Cancel
Set Step On
Cancel = .T.
Endproc

Procedure HTMLViewer.BeforeNavigate2
Lparameters pdisp, url, Flags, targetframename, postdata, headers, Cancel
Cancel = .T. && prevents actual navigation
Endproc

Procedure HTMLViewer.Refresh
Nodefault
Endproc
Enddefine

Si quelqu'un a une idée...
Merci.
Françoise


Thu, 10 Dec 2020 01:12:51 GMT

fichier mdecom32.ocx
Bonjour
je cherche un le fichier mdecom32.ocx comment je peut l'avoir merci de vous conseils.


Sun, 06 Dec 2020 01:12:51 GMT

Re: WEB SERVICE
Bonjour,

Please delete the ; on line 1 ( lcUrl = "https://api.whatsapp.com/send/"; )

Stay healthy,

Koen


Thu, 03 Dec 2020 01:12:51 GMT

Re: Champs mémo
Olivier,
Ai une problemème de passer un object RTF dans cette classe: J'ai une table 'monTable.information' Information est Memo. Où, dans quelle propriety, dois-je indiquer ceci?
Et comment saver les changements dans cette table?
Cordialement,
Koen



Wed, 02 Dec 2020 01:12:51 GMT

Re: WEB SERVICE

Cher ami Bonjour

1) l exemple ci-dessus comporte des erreurs syntaxiques
la syntaxe de js ou jason en brut n'est pas valable en foxpro

2) Regarde Chilkat ActiveX pour foxpro :
pour l usage de "https://api.whatsapp.com/send/" en foxpro
réfères toi aux api :

https://www.example-code.com/foxpro/whatsapp.asp

ci-dessus l exemple de send de message vers un nmero wathsapp
*----------------------------------------------------------------------------------------
* (Visual FoxPro) WhatsApp - Send a Text Message
*--------------------------------------------------------------------
LOCAL loHttp
LOCAL lnSuccess
LOCAL loJson
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lcId
LOCAL i
LOCAL lnCount_i

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat_9_5_0.Http')

* Implements the following CURL command:

* curl -X POST https://example.com/v1/messages \
* -H "Authorization: Bearer your-auth-token" \
* -d '
* {
* "preview_url": false,
* "recipient_type": "individual",
* "to": "whatsapp-id-or-group-id",
* "type": "text",
* "text": {
* "body": "your-text-message-content"
* }
* }'

* Use the following online tool to generate HTTP code from a CURL command
* Convert a cURL Command to HTTP Source Code

* Use this online tool to generate code from sample JSON:
* Generate Code to Create JSON

* The following JSON is sent in the request body.

* {
* "preview_url": false,
* "recipient_type": "individual",
* "to": "whatsapp-id-or-group-id",
* "type": "text",
* "text": {
* "body": "your-text-message-content"
* }
* }

loJson = CreateObject('Chilkat_9_5_0.JsonObject')
loJson.UpdateBool("preview_url",0)
loJson.UpdateString("recipient_type","individual")
loJson.UpdateString("to","whatsapp-id-or-group-id")
loJson.UpdateString("type","text")
loJson.UpdateString("text.body","your-text-message-content")

* Adds the "Authorization: Bearer your-auth-token" header.
loHttp.AuthToken = "your-auth-token"

loResp = loHttp.PostJson3("https://example.com/v1/messages","application/json",loJson)
IF (loHttp.LastMethodSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loJson
CANCEL
ENDIF

loSbResponseBody = CreateObject('Chilkat_9_5_0.StringBuilder')
loResp.GetBodySb(loSbResponseBody)
loJResp = CreateObject('Chilkat_9_5_0.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
? "Response Header:"
? loResp.Header
? "Failed."
RELEASE loResp
RELEASE loHttp
RELEASE loJson
RELEASE loSbResponseBody
RELEASE loJResp
CANCEL
ENDIF

RELEASE loResp

* Sample JSON response:
* (Sample code for parsing the JSON response is shown below)

* {
* "messages": [
* {
* "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU"
* }
* ]
* }

* Sample code for parsing the JSON response...
* Use the following online tool to generate parsing code from sample JSON:
* Generate Parsing Code from JSON

i = 0
lnCount_i = loJResp.SizeOfArray("messages")
DO WHILE i < lnCount_i
loJResp.I = i
lcId = loJResp.StringOf("messages[i].id")
i = i + 1
ENDDO

RELEASE loHttp
RELEASE loJson
RELEASE loSbResponseBody
RELEASE loJResp

* bon courage




Wed, 02 Dec 2020 01:12:51 GMT

HTMLedit avec RTF
Bonjour,

Il semble d'etre possible d'utiliser cette classe avec une table et remplacer le field (M) avec le texte RTF composer avec HTMLEdit, mais comment?
où dois-je saisir la ControlSource?
Existe-t-il un exemple de travail avec RTF?

Cordialement,

Koen


Wed, 02 Dec 2020 01:12:51 GMT

Re: Unicode en _cliptext
c'est en espagnol mais vous pouvez utiliser le traducteur du google: https://vfpimaging.blogspot.com/




Wed, 25 Nov 2020 01:12:51 GMT

Re: Unicode en _cliptext
Bonjour,

Est ce un Problème de 'propriété de la font' utilisée'

A.MAHALLA


Tue, 24 Nov 2020 01:12:51 GMT

WEB SERVICE


Chers aînés, veuillez expliquer pourquoi ces codes ne fonctionnent pas

[vfp]

lcUrl = "https://api.whatsapp.com/send/"
lcWp__Phone = [923000000000]
lcWp__Body = [This is a new test at ] + TRANSFORM(DATETIME())
TEXT TO lcPost TEXTMERGE NOSHOW
{
"phone": "<>",
"text": "<>"
}
ENDTEXT

MESSAGEBOX(lcPost)
llErr = .F.

lo = CREATEOBJECT([Msxml2.ServerXMLHTTP.6.0])
lo.OPEN([POST], lcUrl, .F.)
lo.setRequestHeader([Content-Type], [application/json])
TRY
lo.SEND(lcPost)
CATCH TO loError
? [Err - ] + loError.MESSAGE
STRTOFILE(loError.MESSAGE,'D:\e.txt',0)
llErr = .T.
ENDTRY

IF NOT llErr

IF lo.readyState = 4 && Descarga completa
IF lo.STATUS = 200 && Ok
? [Ok - ] + lo.responseText
ELSE && IF loHTTP.STATUS = 200 && Ok
? [Err - ] + lo.responseText
ENDIF && IF loHTTP.STATUS = 200 && Ok
ELSE && IF lo.readyState = 4 && Descarga completa
? [Err - Timeout en la conexión]
ENDIF && IF lo.readyState = 4 && Descarga completa
ENDIF && IF NOT llErr
lo = NULL

[/vfp]


Tue, 24 Nov 2020 01:12:51 GMT

Re: Unicode en _cliptext
Bonjour,

Est ce que vous avez essayé de copier dans un bloc notre?
Pourquoi vous voulez copier dans MS-WORD ?


Mon, 23 Nov 2020 01:12:51 GMT

Re: Unicode en _cliptext
Bonjour,

je ne connais pas la réponse à la question mais quelque chose me chiffonne ! Au
lieu d'utiliser cette fonction compliquée, avez-vous essayé de faire :
_cliptext = tcUnicodeText
?


Jean à Grenoble
Mon, 23 Nov 2020 01:12:51 GMT

Unicode en _cliptext
Monsieur, c'est mon premier message sur votre forum, j'espère que tous les membres iront bien.
Ma question concerne le texte Unicode.

Supposons que j'ai ce texte unicode

tcUnicodeText=[اسلام علیکم]
[vfp]tcUnicodeText=[اسلام علیکم][/vfp]


Je veux copier cette chaîne dans _cliptext

Pour cela, j'ai trouvé ce lien utile
https://www.berezniker.com/content/pages/visual-foxpro/copy-unicode-text-clipboard


J'ai utilisé ma chaîne avec ce code comme suit

[vfp]
DO CopyUnicodeText2Clipboard WITH tcUnicodeText

&& Copy Unicode text into Clipboard
FUNCTION CopyUnicodeText2Clipboard(tcUnicodeText)
LOCAL lnDataLen, lcDropFiles, llOk, i, lhMem, lnPtr, lcUnicodeText

#DEFINE CF_UNICODETEXT 13
&& Global Memory Variables with Compile Time Constants
#DEFINE GMEM_MOVABLE 0x0002
#DEFINE GMEM_ZEROINIT 0x0040
#DEFINE GMEM_SHARE 0x2000

&& Load required Windows API functions
=LoadApiDlls()

llOk = .T.
lcUnicodeText = tcUnicodeText + CHR(0)+CHR(0)
lnDataLen = LEN(lcUnicodeText)
&& Copy Unicode text into the allocated memory
lhMem = GlobalAlloc(GMEM_MOVABLE+GMEM_ZEROINIT+GMEM_SHARE, lnDataLen)
lnPtr = GlobalLock(lhMem)
=CopyFromStr(lnPtr, @lcUnicodeText, lnDataLen)
=GlobalUnlock(lhMem)
&& Open clipboard and store Unicode text into it
llOk = (OpenClipboard(0) <> 0)
IF llOk
=EmptyClipboard()
llOk = (SetClipboardData(CF_UNICODETEXT, lhMem) <> 0)
&& If call to SetClipboardData() is successful, the system will take ownership of the memory
&& otherwise we have to free it
IF NOT llOk
=GlobalFree(lhMem)
ENDIF
&& Close clipboard
=CloseClipboard()
ENDIF
RETURN llOk

FUNCTION LoadApiDlls
&& Clipboard Functions
DECLARE LONG OpenClipboard IN WIN32API LONG HWND
DECLARE LONG CloseClipboard IN WIN32API
DECLARE LONG EmptyClipboard IN WIN32API
DECLARE LONG SetClipboardData IN WIN32API LONG uFormat, LONG hMem
&& Memory Management Functions
DECLARE LONG GlobalAlloc IN WIN32API LONG wFlags, LONG dwBytes
DECLARE LONG GlobalFree IN WIN32API LONG HMEM
DECLARE LONG GlobalLock IN WIN32API LONG HMEM
DECLARE LONG GlobalUnlock IN WIN32API LONG HMEM
DECLARE LONG RtlMoveMemory IN WIN32API As CopyFromStr LONG lpDest, String @lpSrc, LONG iLen
RETURN
[/vfp]


Les codes fonctionnent avec succès, mais lorsque je colle les données du presse-papiers dans MS.Word, ces données apparaissent comme ceci
폇쟡 ⃣ 飭 ⃣਍ 臂 頠 폭 ⃿Y＀ 炙? 뷑 ᄐ 芖 g﹌ 䛦 覒 蠀

[vfp]폇쟡 ⃣ 飭 ⃣਍ 臂 頠 폭 ⃿Y＀ 炙? 뷑 ᄐ 芖 g﹌ 䛦 覒 蠀[/vfp]

au lieu de [vfp]اسلام علیکم[/vfp]

Comment est-il possible de copier des données Unicode dans _clipboard.

S'il vous plaît



Sun, 22 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
si un patient a un seul test, c'est celui que l'on doit afficher
Si un patient a plusieurs tests le même jour, on veut afficher le seul test
positif ou si tous les tests sont négatifs ou tous les tests positifs on affiche
(par exemple) que le test salivaire

L'astuce est que la lettre P est après la lettre N dans le code ASCII et que
'PCR' est avant 'SAL'

SELECT tp.cNom, tp.itelephoneId, tp.ddate, tp.ddateResult, tp.cresult, ;
tp.ctype, tp.iid, tp.labo FROM tp_Tri tp ;
INNER JOIN (SELECT iid, MAX(ddate) AS maxdate, MAX(cresult) AS maxres, ;
MIN(ctype) AS typtest FROM tp_tri GROUP BY iid) AS ma ;
ON tp.iid = ma.iid AND tp.ddate = ma.maxdate AND tp.cresult = ma.maxres ;
AND tp.ctype = ma.typtest ;
INTO CURSOR derniers_tests

Peux-tu essayer ?


Jean à Grenoble
Mon, 16 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
dans ce cas une légère amélioration fera l'affaire :

SELECT distinct cNom , itelephoneId , ddate , ddateResult , cresult , ctype , tp_Tri.iid , labo FROM tp_Tri ;
INNER JOIN Teleph T ON tp_Tri.itelephoneId = T.iid WHERE ALLTRIM(R_E) == 'E' AND tp_tri.iid > m.nValueEmpl ;
AND tp_tri.ddate = ( SELECT MAX(T.ddate) as ddate FROM tp_Tri T WHERE T.itelephoneId = tp_Tri.itelephoneId );
WHERE cresult="P" Order BY cNom , itelephoneId INTO CURSOR tc_empl


Mon, 16 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
Bonjour jean,

ta solution marcherait égalment mais 2 requetes.
On a aussi le problème des 2 tests réalisés le même jour.


Cordialement


Mon, 16 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
Bonjour OMARI,

Merci pour cette aide.

On se rapproche fortement de la solution.

SELECT cNom , itelephoneId , ddate , ddateResult , cresult , ctype , tp_Tri.iid , labo FROM tp_Tri ;
INNER JOIN Teleph T ON tp_Tri.itelephoneId = T.iid WHERE ALLTRIM(R_E) == 'E' AND tp_tri.iid > m.nValueEmpl ;
AND tp_tri.ddate = ( SELECT MAX(T.ddate) as ddate FROM tp_Tri T WHERE T.itelephoneId = tp_Tri.itelephoneId );
Order BY cNom , itelephoneId INTO CURSOR tc_empl


MAIS on a un gros problème si 2 tests sont réalisés le même jour .
Dans le cas sur la photo on a 1 travailleur avec 2 tests réalisés le 22 octobre ( salivaire et PCR )

le salivaire donne un résultat négatif et le PCR positif.( salivaire moins sensible ). cresult = 'P' ou 'N'

Evidemment on voudrait uniquement le résultat positif.

https://ljda-my.sharepoint.com/:i:/g/personal/bernhart_milcent_ljda_onmicrosoft_com/EcyaxyN_r1FMorXI1w3HKPgBDNvv5QJZYOn8VPA1pM-rVQ?e=1pTfsL


une idée ?




Mon, 16 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
Bonjour Bernhart,

je ne peux pas tester mais tu peux essayer :
si tu ne veux que le id et la date :
SELECT Itelephoneid, MAX(ddate) AS recente ;
FROM Tp_tri ;
GROUP BY Itelephoneid ;
ORDER BY MAX(ddate) DESCENDING ;
INTO CURSOR plus_recentes

Si tu veux toute la ligne de Tp_tri qui correspond à la date la plus récente !
SELECT tp.Itelephoneid, tp.Cresult, tp.Cdate, tp.Ctype, tp.lieu, ;
tp.labo, tp.cert, tp.Crern, tp.ddate, to.ddateresult ;
FROM Tp_tri tp ;
WHERE tp.ddate IN ;
(SELECT MAX(ddate) FROM tp_tri ma WHERE ma.Itelephoneid = tp.Itelephoneid) ;
ORDER BY ddate DESCENDING ;
INTO CURSOR plus_recentes

Peux-tu essayer ?

A+

Jean à Grenoble
Mon, 16 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
Bonjour,

Si j'ai bien compris, voici une proposition de requête qui vous donne la liste des analyses du dernier jour :

select * from tp_tri inner join (SELECT MAX(ddate) as lastdate FROM tp_tri) cursor_datej ontp_tri.ddate= cursor_datej.lastdate into cursor liste_dernieres_analyses


Mon, 16 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
Ok. Me voilà rassurer.

Je n'ai pas programmé du SQL depuis une une dizaine d'années. Dans mon souvenir, pour résoudre ton problème je te conseille de l'attaquer en deux phases :
- la première pour récupérer la liste des identifiants du personnel (une requête avec un GROUP BY)
- une seconde passe qui pour chaque ligne du résultat de la requête précédente récupére la donnée la plus récente avec un ORDER BY DESC.

Je suis sûr qu'il est possible de faire le tout en une seule passe. Je laisse la formulation de cette hypothèse à des spécialistes plus jeunes ou plus acharnés que moi à la pratique du SQL.

Cordialement,

Marc



Sun, 15 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
Bonsoir,

il n'y a aucune données personnelles sur la photo que j'ai mise en lien.
ce ne sont que des primary ket et des dates
Ou avez vous une entorse au RGPT ?

condialement


Sun, 15 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
Je n'ose pas cliquer sur le lien. Si je comprends bien la question il s'agit de faire une requête sur un fichier de données personnelles. Et la protection des données !


Sun, 15 Nov 2020 01:12:51 GMT

Re: Requete SQL sur travailleur Covid
désolé je me suis trompé de lien

https://ljda-my.sharepoint.com/:i:/g/personal/bernhart_milcent_ljda_onmicrosoft_com/EWatDPczIF9DlcYjRJjvE9MBPPzFOYiijBqiIpqi3ohJVA?e=mAguEF


Sun, 15 Nov 2020 01:12:51 GMT

Requete SQL sur travailleur Covid
Bonjour à tous,

les travailleurs ont eu plusieurs tests PCR.
Nous avons une Liste classée ci joint.

Je Voudrais en une simple requête récupérer le test le plus recent ( ddate ).

https://ljda-my.sharepoint.com/:x:/g/personal/bernhart_milcent_ljda_onmicrosoft_com/EfnHekjeQPVLlYIVNqwbpEQBZG0VSOtxDJyx_ZpoiRwZrg?e=3A7H1E

merci d'avance pour l'aide.


Sun, 15 Nov 2020 01:12:51 GMT

Re: compression et decompression de fichier avec une application VFP

Bonsoir et merci pour votre réponse.

Alain


Sun, 08 Nov 2020 01:12:51 GMT

Re: compression et decompression de fichier avec une application VFP
http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000190


Sun, 08 Nov 2020 01:12:51 GMT

compression et decompression de fichier avec une application VFP

Bonjour,

Il me semblait qu'il y avait une application (?) faite avec VFP pour compresser et décompresser des fichiers.

Merci et bonne journée.

Alain


Sun, 08 Nov 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
ok!


Thu, 05 Nov 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
Merci bien Mike,
j'essaye de faire le tour de la question !
Et puisque j'y sui, comme je te lis depuis les années 90, merci pour tout !


Thu, 05 Nov 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
JM
Si tu as des questions je suis là.


Thu, 05 Nov 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
Merci Gilles
J'avais essayé les librairies de notre ami argentin mais cela n'avait pas fonctionné correctement !
Je vais revoir l'article de Mike
Cordialement
JMA



Wed, 04 Nov 2020 01:12:51 GMT

Re: VFPWINSOCK encore ..
Bonjour,
De mon expérience, hormis VFPWinsock, je n'ai pas trouvé d'autres solutions pour envoyer des emails qui répondent en même temps à vos deux critères!
Soit c'est assez complexe à mettre en service en passant par exemple par MAPI ( voir http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000120 de Mike Gagnon) soit c'est payant comme ChildKat..

Si une autre solution existe, simple et entièrement en VFP je suis aussi preneur..

Cordialement
Gls


Wed, 04 Nov 2020 01:12:51 GMT

VFPWINSOCK encore ..
Bonjour aux confinés et aux autres,

Je n'avais pas encore été touché par le pb de blocage des ports par Orange, mais là c'est fait.
J'ai lu les derniers messages d'avril de Koen et le sujet évoqué en 2016.
Quelle solution de remplacement (simple et gratuite) utiliser avec VFP, mes adhérents ne voulant pas changer d'opérateur.?
Merci d'avance
Jean-Michel André



Wed, 04 Nov 2020 01:12:51 GMT

Re: Window 10 probleme d'accent
Bonjour,

Je viens de tester, et effectivement en décochant l'option, les accents reviennent.

Merci à tous pour votre aide.


Tue, 27 Oct 2020 01:12:51 GMT

Reproduction totale ou partielle strictement interdite • Propulsé par KitWeb • Hébergement Wan AgainValid XHTML 1.0 Transitional