
RSS © www.atoutfox.org - Forum
Re: lenteurs applicatifBonjour,
Il vous vérifier:
1 - que les fichiers TMP de vos applications VFP soient créés sur la mchine locale et non sur le disque partagé (à voir dans config.fpw TMPFILES = "chemin local sur ma machine")
2 - que l'indexation des fichiers ne soient pas effectuée sur le dossier partagé de vos datas sur le serveur de fichier et sur vos postes de travail)
3 - exclure de vos anti-virus les dossiers TMP de VFP, les dossiers de vos applications VFP et surtout le dossier partagé de vos datas
4 - le fonctionnement des services SMBx à la fois sur la machine serveur de fichiers et sur vos postes de travail.
https://docs.microsoft.com/fr-fr/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3
Vous pouvez peut être trouver la solution dans ce lien:
https://www.gerjon.com/citrix/xenappxendesktop/windows-2012r2-slow-and-slow-vfp-visual-foxpro-databases/
Le bas de la page me parait être une piste à creuser:
Disable Digitally sign communications (always)
When running Foxpro databases over the network you can experience poor performance. When disabling this settings the speed of copying files between server and workstation can increase dramatically. I've tested this (in a testenvironment on a domain controller) and difference in speed was obvious - even folder listings were visibly faster, and copying a 15 MB file from a share to a client desktop went from taking 20+ seconds to being almost instantaneous.
you can change these setttings via Group policy editor on the Windows 2012 R2 server
Open up Group Policy Editor, and right-click-and-edit Default Domain Controller Policy.
Go to Computer Configuration/Policies/Windows Settings/Security Settings/Local Policies/Security Options,
and set Domain member: Digitally encrypt or sign secure channel data (always) and Microsoft network server: Digitally sign communications (always) to Disabled.
After changing the setting reboot the server just to be sure it works and test it thoroughly! Beware that this setting is changed for all domain members when it is changed in the default domain policy!
Worth noting: this problem is for Domain controllers and shouldn't be a problem on a non-domain-controller 2012 server. Beware on Windows Server Essentials 2012 these settings are also not set correctly! Full article can be found here: http://jrs-s.net/2013/04/15/windows-server-2012-slow-networksmbcifs-problem/
Disable "Secure Negotiate" on the Windows Server 2012
When running a Windows 2012 server and Windows 8 clients and and Foxpro applications run slow this can be caused by the "Secure Negotiate" feature that was added to SMB 3.0 for Windows Server 2012 and Windows 8. This feature depends upon the correct signing of error responses by all SMBv2 servers, including servers that support only protocol versions 2.0 and 2.1. Some third-party file servers do not return a signed error response. Therefore, the connection fails (intermittently).
you can disable this by running the following command on the Windows 2012 server and/or the Windows 8 clients:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" RequireSecureNegotiate -Value 0 -Force
The full Microsoft KB article can be found here:: http://support.microsoft.com/kb/2686098
En conclusion:
Pour éviter le problème des lenteurs réseau introduit à partir de Vista, il est préférable de modifier son application pour :
- soit opter pour une base SQL externe à VFP (MS-SQL, PostGreSQL, etc..) en lieu et place du moteur de base de VFP
- soit opter pour un fonctionnement en bureau à distance de son application VFP.. une seule installation sur un serveur de bureau à distance avec accès aux datas directement sur le disque de la machine serveur.. (ex de serveur TSE Windows 10-PRO + Myriad connect, ou des CAL TSE avec Windows Serveur R12-R19)
Cordialement
Fri, 19 Feb 2021 10:17:52 GMTRe: lenteurs applicatifLa base est en DBF et oui, la base est bien partagée
Thu, 18 Feb 2021 10:17:52 GMTRe: Vfp v.10 64bitHello Mike,
J'espère que tu vas bien.
Moi je suis de retour dans le forum après plusieurs années de recul pour des raisons professionnelles, mais le renardo m'appelle encore :)
Ils sont sérieux ces gens de baiyujia ?
J'ai essayé de télécharger la package VPA 64 mais mon proxy me dit qu'il est infecté.
Tu l'as testé toi ?
Merci d'avance pour ton retour et/ou à celui des autres membres.
Bien à vous les amis.
Wed, 17 Feb 2021 10:17:52 GMTRe: lenteurs applicatifBonjour,
La base de données est-elle un DBC + DBF ou s'agit-il d'un serveur de bases SQL ?
Si base VFP, vos données sont -elles partagées sur le disque d'un serveur de fichiers ?
Cordialement
Mon, 15 Feb 2021 10:17:52 GMTRe: c'est tellement vieux que je ne m'en souviens plus !merci Gregory,
cela fonctionne impeccable !
Bonne journée
Jean
Mon, 15 Feb 2021 10:17:52 GMTlenteurs applicatifBonjour,
Nous rencontrons de plus en plus de lenteurs au fur et à mesure de l'évolution des versions Windows.
Il semblerait que des paramètres systèmes créent des lenteurs sur notre applicatif.
Quelqu'un a t'il également constaté ce phénomène et surtout y a t-il une solution...
Merci pour votre aide
Françoise
Mon, 15 Feb 2021 10:17:52 GMTRe: c'est tellement vieux que je ne m'en souviens plus !Bonjour Jean,
vfp9 sp2 https://www.microsoft.com/en-us/download/details.aspx?id=13959
vfp9 sp2 Security Update https://www.microsoft.com/en-us/download/details.aspx?id=30504
cdlt,
Sun, 14 Feb 2021 10:17:52 GMTc'est tellement vieux que je ne m'en souviens plus !Bonjour à tous,
mon 'vieux' PC ayant rendu l'âme brusquement, je suis en train de reinstaller
VFP sur mon nouveau portable en partant du DVD.
J'ai donc, a priori, une version américaine sans service pack. Sur le site de
Microsoft, il est indiqué que le produit n'est plus maintenu ...
Comment puis-je faire pour installer le SP2 ?
J'ai plein de sauvegardes :
Puis-je utiliser l'executable My VFP up to date 2.5.exe de Francis Faure ?
Puis-je récupérer les fichiers VFP9.exe et VFP9_sp2.exe de la dernière
sauvegarde ?
D'avance merci pour vos souvenirs !!
Jean à Grenoble
Fri, 12 Feb 2021 10:17:52 GMTRe: Affichage localisation via google mapBonsoir António,
Ok.
Je comprends.
Encore Merci pour ton travail mis à disposition de tous et en open source !
Cordialement
Francis
Le dim. 31 janvier 2021, 02h21 Atlopes a écrit :
> Bonsoir, Francis, merci pour tes mots.
>
> La plateforme Here.com a bien des autres ressources que ne sont pas encore couverts par la librairie overHere.
>
> Je retourne au projet quand il est nécessaire de développer quelque fonctionnalité de plus pour mon travail. J'ai fait des experiences avec les services de méteo et de mapes, mais surtout pour comprendre comme la plateforme les fournisse.
>
> C'est a dire, les travaux sont en cours mais pour les temps proches il n'aura pas de developments majeures. De quelque façon, le code est ouvert. Donc...
>
>
> António
>
>
> .
>
Sun, 31 Jan 2021 10:17:52 GMTRe: Affichage localisation via google mapBonsoir, Francis, merci pour tes mots.
La plateforme Here.com a bien des autres ressources que ne sont pas encore couverts par la librairie overHere.
Je retourne au projet quand il est nécessaire de développer quelque fonctionnalité de plus pour mon travail. J'ai fait des experiences avec les services de méteo et de mapes, mais surtout pour comprendre comme la plateforme les fournisse.
C'est a dire, les travaux sont en cours mais pour les temps proches il n'aura pas de developments majeures. De quelque façon, le code est ouvert. Donc...
António
Sun, 31 Jan 2021 10:17:52 GMTRe: Affichage localisation via google mapBonsoir António,
Je ne connaissais pas les services de "here.com"
Et je découvre ta classe sur github : bravo à toi !!
- Je vois la mention en bas de page "In development. Unsuited for production, unless thoroughly tested on site."
et le dernier commit au 14/06/2020 : cela veut dire que les travaux sont toujours en cours ?
Cordialement
Francis
Sat, 30 Jan 2021 10:17:52 GMTRe: Affichage localisation via google mapFrançoise,
Vous pouvez essayer la librairie overHere, a https://github.com/atlopes/overHere.
Les classes qui composent la librairie communiquent directement avec les services Web de la plateforme de localisation Here.com et n'utilisent pas un contrôle WebBrowser pour afficher les résultats graphiques, ou autres, que la plateforme retourne.
Un exemple à partir de l'adresse inclut dans votre message,
https://ibb.co/b2Nkrry
António
Sat, 30 Jan 2021 10:17:52 GMTreport label en reseaubonjour
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 10:17:52 GMTRe: Affichage localisation via google mapBonjour 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 10:17:52 GMTRe: Affichage localisation via google mapBonjour 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 10:17:52 GMTRe: lettres en chiffresBonne 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 10:17:52 GMTRibbon headerhttps://doughennig.blogspot.com/2020/12/microsoft-office-365-like-ribbon-control.html
Wed, 30 Dec 2020 10:17:52 GMTRe: 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 10:17:52 GMTRe: lettres en chiffresAh 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 10:17:52 GMTRe: lettres en chiffresSans 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 10:17:52 GMTRe: 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 10:17:52 GMTRe: lettres en chiffresVincent,
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 10:17:52 GMTRe: VFPWINSOCK encore ..Bonjour Jan
Merci pour votre réponse
J'essayerai cette solution as soon
Bonne fêtes
Thu, 24 Dec 2020 10:17:52 GMTRe: 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 GMT
Re: WEB SERVICE
Bonjour,
Please delete the ; on line 1 ( lcUrl = "https://api.whatsapp.com/send/"; )
Stay healthy,
Koen
Thu, 03 Dec 2020 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 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 10:17:52 GMT