Re: Webobjekt mit Dateiamen speichern - wie?
Verfasst: 24.11.2015 16:26
Moin, danke für die Meldungen und Meinungen - ich verstehe jetzt nun nur noch Bahnhof
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
Procedure FormularDrucken(Filename.s)
Protected WebObject.IWebBrowser2
WebObject = GetWindowLong_(GadgetID(#Adresse), #GWL_USERDATA)
Protected filename_Unicode
; convert to unicode
filename_Unicode = AllocateMemory(Len(Filename) * 2 + 2)
MultiByteToWideChar_(#CP_ACP, 0, @Filename, -1, filename_Unicode, Len(Filename) * 2 + 2)
Protected filename_BSTR
; create bstr
filename_BSTR = SysAllocString_(filename_Unicode)
; fill variant
Protected VariantIn.VARIANT
VariantIn\vt = #VT_BSTR
VariantIn\bstrVal = filename_BSTR
If GetGadgetState(Checkbox_1)=#PB_Checkbox_Checked
WebObject\ExecWB(#OLECMDID_PRINT, #OLECMDEXECOPT_DONTPROMPTUSER, 0, 0)
Else
WebObject\ExecWB(#OLECMDID_PRINT, #OLECMDEXECOPT_PROMPTUSER, 0, 0)
EndIf
FreeMemory(filename_Unicode)
SysFreeString_(filename_BSTR)
EndProcedure
Code: Alles auswählen
Procedure FormularDrucken(Filename.s)
Protected WebObject.IWebBrowser2
WebObject = GetWindowLongPtr_(GadgetID(#Adresse), #GWL_USERDATA)
Protected filename_Unicode
; convert to unicode
filename_Unicode = AllocateMemory(Len(Filename) * 2 + 2)
MultiByteToWideChar_(#CP_ACP, 0, @Filename, -1, filename_Unicode, Len(Filename) * 2 + 2)
Protected filename_BSTR
; create bstr
filename_BSTR = SysAllocString_(filename_Unicode)
; fill variant
Protected VariantIn.VARIANT
VariantIn\vt = #VT_BSTR
VariantIn\bstrVal = filename_BSTR
If GetGadgetState(Checkbox_1)=#PB_Checkbox_Checked
WebObject\ExecWB(#OLECMDID_PRINT, #OLECMDEXECOPT_DONTPROMPTUSER, @VariantIn, 0)
Else
WebObject\ExecWB(#OLECMDID_PRINT, #OLECMDEXECOPT_PROMPTUSER, @VariantIn, 0)
EndIf
FreeMemory(filename_Unicode)
SysFreeString_(filename_BSTR)
EndProcedure
Code: Alles auswählen
GetGadgetState(Checkbox_1)
Code: Alles auswählen
GetGadgetState(Checkbox_1)
Code: Alles auswählen
;pb-File
EnableExplicit
IncludeFile "HTML_alt_PBF.pbf"
#OLECMDID_PRINT = 6
#OLECMDEXECOPT_DONTPROMPTUSER = 2
#OLECMDID_PRINTPREVIEW = 7
#OLECMDEXECOPT_PROMPTUSER = 3
#OLECMDID_SAVEAS = 4
#VT_BSTR = 8
OpenWindow_1()
Global Filename.s, SNummer$,txtSeriennummer,string_kname,Filename$
;G$=FormatDate("%yy%mm%dd", Date()) + "001HL" ; muss in pbf
;Global G$; muss in pbf
Procedure FormularErstellen()
Protected SNummer$
SNummer$ = GetGadgetText(txtSeriennummer)
Protected HTML.s
HTML + "</head><body>"
HTML + "<div style='position:absolute; left:10mm; top:10mm; color:#000000;font-weight:bold;font-family:arial; font-size:22px;'>Formular</div>"
HTML + "<div style='position:absolute; left:60mm; top:12mm; color:#000000;font-weight:bold;font-family:arial; font-size:17px;'>Seriennummer:</div>"
HTML + "<div style='position:absolute; left:100mm; top:12mm; color:#000000;font-family:arial; font-size:17px;'>"+SNummer$+"</div>"
HTML + "</body></html>"
SetGadgetItemText(#Adresse, #PB_Web_HtmlCode, HTML)
EndProcedure
Procedure FormularDrucken(Filename.s)
Protected WebObject.IWebBrowser2
WebObject = GetWindowLongPtr_(GadgetID(#Adresse), #GWL_USERDATA)
Protected filename_Unicode
; convert to unicode
filename_Unicode = AllocateMemory(Len(Filename) * 2 + 2)
MultiByteToWideChar_(#CP_ACP, 0, @Filename, -1, filename_Unicode, Len(Filename) * 2 + 2)
Protected filename_BSTR
; create bstr
filename_BSTR = SysAllocString_(filename_Unicode)
; fill variant
Protected VariantIn.VARIANT
VariantIn\vt = #VT_BSTR
VariantIn\bstrVal = filename_BSTR
If GetGadgetState(Checkbox_1)=#PB_Checkbox_Checked
WebObject\ExecWB(#OLECMDID_PRINT, #OLECMDEXECOPT_DONTPROMPTUSER, @VariantIn, 0)
Else
WebObject\ExecWB(#OLECMDID_PRINT, #OLECMDEXECOPT_PROMPTUSER, @VariantIn, 0)
EndIf
FreeMemory(filename_Unicode)
SysFreeString_(filename_BSTR)
EndProcedure
Procedure FormularSpeichern(Filename.s)
Protected WebObject.IWebBrowser2
WebObject = GetWindowLong_(GadgetID(#Adresse), #GWL_USERDATA)
Protected filename_Unicode
filename_Unicode = AllocateMemory(StringByteLength(Filename.s, #PB_Unicode) + 2)
PokeS(filename_Unicode, Filename, -1, #PB_Unicode)
Protected filename_BSTR
; create bstr
filename_BSTR = SysAllocString_(filename_Unicode)
; fill variant
Protected VariantIn.VARIANT
VariantIn\vt = #VT_BSTR
VariantIn\bstrVal = filename_BSTR
If WebObject\ExecWB(#OLECMDID_SAVEAS, #OLECMDEXECOPT_DONTPROMPTUSER, @VariantIn, 0) = #S_OK
MessageRequester("","Formular wurde gespeichert !")
Else
MessageRequester("","Formular wurde nicht gespeichert !")
EndIf
FreeMemory(filename_Unicode)
SysFreeString_(filename_BSTR)
EndProcedure
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case Button_machhtml
Filename.s = SNummer$
FormularErstellen()
Case Button_Speichern
SNummer$ = GetGadgetText(txtSeriennummer)
Filename.s = SNummer$
FormularSpeichern(Filename.s)
Case Button_Drucken
SNummer$ = GetGadgetText(txtSeriennummer)
Filename.s = SNummer$
FormularDrucken(Filename.s)
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case Window_1
Break
EndSelect
EndSelect
ForEver
Code: Alles auswählen
;pbf-file
Global Window_1
Global Button_machhtml, lblSeriennummer, txtSeriennummer, Text_2, Text_3, Button_Drucken, Button_Speichern, Checkbox_1,G$
Enumeration FormGadget
#Adresse
EndEnumeration
Enumeration FormFont
#Font_Window_1_0
EndEnumeration
LoadFont(#Font_Window_1_0,"Arial Narrow", 18)
G$=FormatDate("%yy%mm%dd", Date()) + "001HL"
Procedure OpenWindow_1(x = 0, y = 0, width = 960, height = 200)
Window_1 = OpenWindow(#PB_Any, x, y, width, height, "Formular Erstellung", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
Button_machhtml = ButtonGadget(#PB_Any, 610, 80, 100, 25, "Formular erstellen")
GadgetToolTip(Button_machhtml, "erzeugt eine html-Datei")
lblSeriennummer = TextGadget(#PB_Any, 614, 50, 86, 20, "Seriennummer:")
txtSeriennummer = StringGadget(#PB_Any, 724, 45, 105, 25, G$)
Text_2 = TextGadget(#PB_Any, 630, 10, 340, 30, "Formulareingaben:")
SetGadgetFont(Text_2, FontID(#Font_Window_1_0))
Text_3 = TextGadget(#PB_Any, 10, 10, 300, 30, "Formular:")
SetGadgetFont(Text_3, FontID(#Font_Window_1_0))
Button_Drucken = ButtonGadget(#PB_Any, 725, 80, 100, 25, "Formular drucken")
Button_Speichern = ButtonGadget(#PB_Any, 840, 80, 100, 25, "Formular speichern")
WebGadget(#Adresse, 10, 45, 590, 105, "about:blank")
Checkbox_1 = CheckBoxGadget(#PB_Any, 610, 120, 110, 25, "Standarddrucker")
EndProcedure