Comment utiliser l'Internet Explorer pour pre-visualiser vos états
# 0000000032
ajouté le 25/10/2004 14:14:59 et modifié le 19/11/2004
consulté 10069 fois
Niveau
expert
Version(s) Foxpro : VFP 9.0 VFP 8.0 VFP 7.0
Description
La fonction SET TEXTMERGE TO memvar a été introduite avec VFP7.0. Pour VFP6. voir la suggestion d'Aumeric.
Il est possible que un inkey() soit requis, dépendant de la vitesse de l'ordinateur
*Constants for ExecWB second parameter
#DEFINE OLECMDEXECOPT_DODEFAULT 0
#DEFINE OLECMDEXECOPT_PROMPTUSER 1
#DEFINE LECMDEXECOPT_DONTPROMPTUSER 2
#DEFINE OLECMDEXECOPT_SHOWHELP 3
*Constants for QueryStatusWB return values
#DEFINE OLECMDF_SUPPORTED 1 &&Command is supported by this object.
#DEFINE OLECMDF_ENABLED 2 &&Command is available and enabled.
#DEFINE OLECMDF_LATCHED 4 &&Command is an on-off toggle and is currently on.
#DEFINE OLECMDF_NINCHED 8 &&Reserved for future use.
*Constants for ShowWindow second paramter
#DEFINE SW_NORMAL 1
#DEFINE SW_MAXIMIZE 3
#DEFINE SW_MINIMIZE 6
*Constants for SendMessage second parameter
#DEFINE WM_GETICON 0x7F
#DEFINE WM_SETICON 0x80
*Constants for SendMessage third parameter
#DEFINE ICON_SMALL 0
#DEFINE ICON_BIG 1
DECLARELong FindWindow in Win32API String, String DECLARELong BringWindowToTop in Win32API Long DECLARELongShowWindowin Win32API Long, Long DECLAREINTEGER SetWindowText IN user32 INTEGERhWnd, STRING lpString DECLAREINTEGER ExtractIcon IN shell32 INTEGER hInst, STRING lpszExeFileName, INTEGER lpiIcon DECLAREINTEGER SendMessage IN user32 INTEGERhWnd, INTEGER Msg, INTEGER wParam, INTEGER lParam
Public oBrowser Local sTempPath, lnHWND, lcTitle, lnIcon
PUSHKey
ONKEYLABELALT+X Cancel&& Just in case we get stuck in Do Loop
lcTitle = "Print Preview"
lnHWND = 0 DOWHILE lnHWND = 0 &&Seems to take ExecWB a second to create the window so we wait DOEVENTS
lnHWND = FindWindow(null,lcTitle) enddo
lnIcon = ExtractIcon (0,HOME()+"GRAPHICS\ICONS\WRITING\NOTE11.ICO",0) && I am assuming this icon exists on your system
SetWindowText(lnHWND, "FISCAL STATISTICS REPORT")
SendMessage(lnHWND, WM_SETICON, ICON_SMALL, lnIcon) *!* SendMessage(lnHWND, WM_SETICON, ICON_BIG, lnIcon)
BringWindowToTop(lnHWND) ShowWindow(lnHWND, SW_MAXIMIZE) CLEARDLLS"FindWindow", "BringWindowToTop", "ShowWindow", "SetWindowText", "ExtractIcon", "SendMessage" POPKEYAll
Commentaires
le 30/10/2004, Francis Faure a écrit : Mike, c'est génial...
mais une petite correction pour que cela fonctionne sur nos internet explorer francophone : il faut modifier
lcTitle = "Print Preview" par lcTitle = "Aperçu avant impression"
sinon la boucle d'attente de la fenêtre "Print Preview" tourne sans fin.
Cordialement Francis FAURE
le 02/11/2004, Mike Gagnon a écrit : Merci de la précision, et tu as raision, et la meme situation pour les autres Windows (comme Allemand, Espagnol etc)
le 19/11/2004, eric leissler a écrit : Bonjour le set textmerge to memvar lcHTML ne fonctionne pas sous vpf 6 pour vfp6 au lieu de :********************************************************************
IF !FILE(sTempPath + "someSheet.htm") SET TEXTMERGE TO memvar lcHTML noshow SET TEXTMERGE on \\<HTML><BODY><TABLE> SCAN \<tr> FOr lnField = 1 to AFIELDS(laFields) \\<td><<EVALUATE(FIELD(m.lnField))>><td> ENDFOR \</tr> ENDSCAN \</table></body></html> SET TEXTMERGE OFF SET TEXTMERGE TO STRTOFILE(lcHTML,sTempPath + "someSheet.htm") ENDIF
****************************************************** lire --------------------------- IF !FILE(sTempPath + "someSheet.htm") SET TEXTMERGE TO sTempPath + "someSheet.htm" SET TEXTMERGE on \\<HTML><BODY><TABLE> SCAN \<tr> FOr lnField = 1 to AFIELDS(laFields) \\<td><<EVALUATE(FIELD(m.lnField))>><td> ENDFOR \</tr> ENDSCAN \</table></body></html> SET TEXTMERGE OFF SET TEXTMERGE TO *!* STRTOFILE(lcHTML,sTempPath + "someSheet.htm") ENDIF
Francis à raison, Mike, c'est génial. Cordialement Eric LEISSLER
Mike,
c'est génial...
mais une petite correction pour que cela fonctionne sur nos internet explorer francophone : il faut modifier
lcTitle = "Print Preview"
par
lcTitle = "Aperçu avant impression"
sinon la boucle d'attente de la fenêtre "Print Preview" tourne sans fin.
Cordialement
Francis FAURE