ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Comment utiliser l'Internet Explorer pour pre-visualiser vos états   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pte Claire Quebec - Canada
de la société MCRG Software
Fiche personnelle


Note des membres
18/20
1 vote


Contributions > 03 - FRX : Etat, impression, Report

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é 7018 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

Code source :
*Constants for ExecWB first parameter
#DEFINE OLECMDID_OPEN 1
#DEFINE OLECMDID_NEW 2
#DEFINE OLECMDID_SAVE 3
#DEFINE OLECMDID_SAVEAS 4
#DEFINE OLECMDID_SAVECOPYAS 5
#DEFINE OLECMDID_PRINT 6
#DEFINE OLECMDID_PRINTPREVIEW 7
#DEFINE OLECMDID_PAGESETUP 8
#DEFINE OLECMDID_SPELL 9
#DEFINE OLECMDID_PROPERTIES 10
#DEFINE OLECMDID_CUT 11
#DEFINE OLECMDID_COPY 12
#DEFINE OLECMDID_PASTE 13
#DEFINE OLECMDID_PASTESPECIAL 14
#DEFINE OLECMDID_UNDO 15
#DEFINE OLECMDID_REDO 16
#DEFINE OLECMDID_SELECTALL 17
#DEFINE OLECMDID_CLEARSELECTION 18
#DEFINE OLECMDID_ZOOM 19
#DEFINE OLECMDID_GETZOOMRANGE 20
#DEFINE OLECMDID_UPDATECOMMANDS 21
#DEFINE OLECMDID_REFRESH 22
#DEFINE OLECMDID_STOP 23
#DEFINE OLECMDID_HIDETOOLBARS 24
#DEFINE OLECMDID_SETPROGRESSMAX 25
#DEFINE OLECMDID_SETPROGRESSPOS 26
#DEFINE OLECMDID_SETPROGRESSTEXT 27
#DEFINE OLECMDID_SETTITLE 28
#DEFINE OLECMDID_SETDOWNLOADSTATE 29
#DEFINE OLECMDID_STOPDOWNLOAD 30

*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

DECLARE Long FindWindow in Win32API StringString
DECLARE Long BringWindowToTop in Win32API Long
DECLARE Long ShowWindow in Win32API LongLong
DECLARE INTEGER SetWindowText IN user32 INTEGER hWndSTRING lpString
DECLARE INTEGER ExtractIcon IN shell32 INTEGER hInst, STRING  lpszExeFileName, INTEGER lpiIcon
DECLARE INTEGER SendMessage IN user32 INTEGER hWndINTEGER Msg, INTEGER wParam, INTEGER lParam

Public oBrowser
Local sTempPath, lnHWND, lcTitle, lnIcon

PUSH Key

ON KEY LABEL ALT+X Cancel && Just in case we get stuck in Do Loop

CREATE CURSOR myCursor (name c(20),address c(20))
INSERT INTO myCursor (name, address) VALUES ("Mike","123")
INSERT INTO myCursor (name, address) VALUES ("Paul","321")
INSERT INTO myCursor (name, address) VALUES ("John","345")
INSERT INTO myCursor (name, address) VALUES ("Ringo","567")
INSERT INTO myCursor (name, address) VALUES ("Georges","987")
GO top
sTempPath = ADDBS(SYS(2023))
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

oBrowser=CREATEOBJECT("internetexplorer.application")
oBrowser.navigate(sTempPath+"someSheet.htm")

DO WHILE oBrowser.QueryStatusWB(OLECMDID_PRINTPREVIEW) != (OLECMDF_SUPPORTED + OLECMDF_ENABLED)
    DOEVENTS
ENDDO
oBrowser.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER)

lcTitle = "Print Preview"
lnHWND = 0
DO WHILE 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)
CLEAR DLLS "FindWindow""BringWindowToTop""ShowWindow""SetWindowText""ExtractIcon""SendMessage"
POP KEY All


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

le 19/11/2004, Mike Gagnon a écrit :
Aumeric

Merci de la précision. J'ai modifier 'sur quelle version ce code fonctionne' et ajouté un mise-en-grade.

le 24/12/2004, Hamdi a écrit :
Je t'ai donné 18 et c'est peu!
le 26/12/2004, Mike Gagnon a écrit :
Hamdi

Merci beacoup.


Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2019.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3