[solved] StatusIndicator und ThisComponent.store()

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [solved] StatusIndicator und ThisComponent.store()

Re: StatusIndicator und ThisComponent.store()

von Stephan » Do, 13.06.2013 12:53

Jemand eine Idee, wofür die genau sind?
Ist das eine Scherzfrage?

URL ist der Speicherpfad plus Name der Datei in URL-Schreibweise, was OO auch automatisch umwwandeln kann z.B.:

Code: Alles auswählen

args1(0).Value = ConvertToURL("D:\blabla\abc\meineDatei.ods")
und Filtername ist der zu verwendende Filter für dass gewünsche Speicherformat, hier also *.ods (=calc8)

Alle verfügbaren Filternamen lassen sich auch mit einem Makro ausgeben:

Code: Alles auswählen

Sub Main 
oFF = createUnoService( "com.sun.star.document.FilterFactory" ) 
oFilterNames = oFF.getElementNames() 

' Now print the filter names. 
' For i = LBound( oFilterNames ) To UBound( oFilterNames ) 
' Print oFilterNames(i) 
' Next 

' Create a Writer doc and save the filter names to it. 
oDoc = StarDesktop.loadComponentFromURL( "private:factory/swriter", "_blank", 0, Array() ) 
oText = oDoc.getText() 
oCursor = oText.createTextCursor() 
oCursor.gotoEnd( False ) 

' Print the filter names into a Writer document. 
For i = LBound( oFilterNames ) To UBound( oFilterNames ) 
oText.insertString( oCursor, oFilterNames(i), False ) 
oText.insertControlCharacter( oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False ) 
Next 
End Sub
und sind für OOo 3.3.0 z.B.:

draw_png_Export
StarCalc 3.0 Vorlage/Template
StarWriter 4.0
writer_globaldocument_pdf_Export
MathML XML (Math)
draw_jpg_Export
StarWriter 5.0 (StarWriter/GlobalDocument)
StarOffice XML (Math)
Text (encoded) (StarWriter/GlobalDocument)
SVM - StarView Metafile
calc_pdf_addstream_import
DIF
BMP - MS Windows
HTML
draw_ppm_Export
writer_pdf_addstream_import
XHTML Impress File
draw8
HTML (StarCalc)
draw_PCD_Photo_CD_Base4
chart8
draw_wmf_Export
MS Excel 95 (StarWriter)
StarMath 3.0
XPM
TGA - Truevision TARGA
writerglobal8_writer
MET - OS/2 Metafile
StarChart 4.0
writer8
draw_pgm_Export
calc_HTML_WebQuery
writer_pdf_Export
StarMath 5.0
impress_gif_Export
StarImpress 5.0 (packed)
StarOffice XML (Draw)
impress_pdf_Export
draw_tif_Export
MS Excel 5.0/95
draw_pbm_Export
UOF spreadsheet
AportisDoc Palm DB
EMF - MS Windows Metafile
impress_ras_Export
PNG - Portable Network Graphic
Lotus 1-2-3 1.0 (WIN) (StarWriter)
Rich Text Format
MS Excel 95
StarCalc 4.0
MS Excel 97
draw_emf_Export
StarDraw 5.0 Vorlage
StarImpress 5.0
MS Word 2007 XML Template
Calc MS Excel 2007 XML Template
SGV - StarDraw 2.0
writer_web_StarOffice_XML_Writer
draw_PCD_Photo_CD_Base16
StarOffice XML (Chart)
WordPerfect
draw_pdf_import
StarOffice XML (Writer)
Impress MS PowerPoint 2007 XML Template
Rich Text Format (StarCalc)
MS PowerPoint 97 Vorlage
XBM - X-Consortium
StarDraw 3.0 Vorlage
JPG - JPEG
PocketWord File
writer_StarOffice_XML_Writer_Template
draw_xpm_Export
MS Excel 4.0 (StarWriter)
StarOffice XML (Impress)
draw8_template
StarImpress 5.0 Vorlage
impress_pct_Export
MS Word 2007 XML
impress_met_Export
calc8_template
draw_bmp_Export
calc8
impress_StarOffice_XML_Draw
StarWriter 4.0 (StarWriter/GlobalDocument)
StarOffice XML (Base)
impress_html_Export
MathType 3.x
writerweb8_writer_template
writerglobal8
impress_flash_Export
writer_web_StarOffice_XML_Writer_Web_Template
GIF - Graphics Interchange
impress_eps_Export
StarWriter 1.0
writerglobal8_HTML
StarDraw 5.0 (StarImpress)
StarOffice XML (Calc)
writerweb8_writer
StarWriter 5.0 (StarWriter/Web)
impress8
StarWriter 3.0
writer_MIZI_Hwp_97
impress8_draw
PBM - Portable Bitmap
impress_svg_Export
StarWriter 5.0
MS WinWord 6.0
WMF - MS Windows Metafile
Pocket Excel
StarWriter DOS
Text (encoded)
UOF text
draw_flash_Export
MS Word 95
MS Excel 2003 XML
MS Word 97
Lotus 1-2-3 1.0 (DOS) (StarWriter)
draw_pdf_Export
impress_svm_Export
PGM - Portable Graymap
impress_png_Export
EPS - Encapsulated PostScript
MS Word 95 Vorlage
MS Word 97 Vorlage
draw_gif_Export
writer_web_HTML_help
dBase
draw_ras_Export
impress_jpg_Export
StarMath 2.0
Impress MS PowerPoint 2007 XML
StarWriter 4.0 (StarWriter/Web)
StarChart 3.0
MS Excel 5.0 (StarWriter)
SGF - StarOffice Writer SGF
writer_web_pdf_Export
StarMath 4.0
DXF - AutoCAD Interchange
impress_ppm_Export
Text
XHTML Calc File
XHTML Writer File
StarChart 5.0
math_pdf_Export
StarWriter 5.0 Vorlage/Template
PSD - Adobe Photoshop
MS Excel 97 Vorlage/Template
StarCalc 1.0
UOF presentation
StarWriter 5.0/GlobalDocument
writer8_template
StarDraw 3.0 (StarImpress)
writer_globaldocument_StarOffice_XML_Writer
CGM - Computer Graphics Metafile
StarCalc 3.0
MS PowerPoint 97
writer_globaldocument_StarOffice_XML_Writer_GlobalDocument
impress_wmf_Export
impress_pgm_Export
StarWriter 3.0 (StarWriter/GlobalDocument)
StarImpress 4.0
StarCalc 5.0 Vorlage/Template
StarWriter 3.0 (StarWriter/Web)
MS Excel 95 Vorlage/Template
Quattro Pro 6.0
StarDraw 3.0
calc_StarOffice_XML_Calc_Template
StarWriter/Web 5.0 Vorlage/Template
StarWriter 4.0/GlobalDocument
StarCalc 5.0
placeware_Export
impress_tif_Export
PCX - Zsoft Paintbrush
draw_pct_Export
PCT - Mac Pict
draw_met_Export
MS Excel 4.0
T602Document
StarDraw 5.0
MS Word 2003 XML
XHTML Draw File
impress_pbm_Export
StarWriter 4.0 Vorlage/Template
MS Excel 4.0 Vorlage/Template
Text (StarWriter/Web)
MS Excel 5.0/95 Vorlage/Template
impress_emf_Export
Lotus
StarDraw 3.0 Vorlage (StarImpress)
Text (encoded) (StarWriter/Web)
DocBook File
impress_pdf_addstream_import
Calc MS Excel 2007 XML
TIF - Tag Image File
StarWriter/Web 4.0 Vorlage/Template
draw_pdf_addstream_import
RAS - Sun Rasterfile
PPM - Portable Pixelmap
draw_PCD_Photo_CD_Base
StarCalc 4.0 Vorlage/Template
StarDraw 5.0 Vorlage (StarImpress)
draw_eps_Export
Calc MS Excel 2007 Binary
HTML (StarWriter)
calc_pdf_Export
MS WinWord 5
draw_html_Export
draw_svg_Export
SYLK
StarImpress 4.0 Vorlage
draw_StarOffice_XML_Draw_Template
impress_pdf_import
writer_pdf_import
impress8_template
StarWriter 3.0 Vorlage/Template
impress_xpm_Export
impress_bmp_Export
Text - txt - csv (StarCalc)
impress_StarOffice_XML_Impress_Template
math8
draw_svm_Export
StarWriter 2.


Variablen/Arrays der allgemeinen Form:

Code: Alles auswählen

abc(0).Name =
abc(0).Value =
abc(1). ...
...
nennen sich in OO/LO PropertyValue-Variablen.



Gruß
Stephan

Re: StatusIndicator und ThisComponent.store()

von RasmusV » Do, 13.06.2013 12:16

Ausgezeichnet! Das funktioniert!

Auf den ".uno:SaveAs" Trichter war ich gerade auch schon gekommen. Die Idee das ganze aufzuzeichnen ist natürlich mehr als schlau und doch eine so simple Problemlösung! Vielen Dank dafür!

Die Unterschiede von storeAsURL und storeToURL habe ich mir in Andrew Pitonyak "Meisterwerk" angesehen. Ich hatte mich deswegen schon bewusst für storeAsURL entschieden.

In dem von dir gegebenen Code sind folgende Argumente:

Code: Alles auswählen

args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/Internet/AppData/Local/Microsoft/Windows/Temporary%20Internet%20Files/Content.IE5/CX0L1ODH/Speichern-Info-Dialog.ods"
args1(1).Name = "FilterName"
args1(1).Value = "calc8"
Das Speichern funktioniert auch ohne die Argumente von args1(1). Jemand eine Idee, wofür die genau sind?

Beste Grüße und vielen Dank für die wahnsinnig schnelle Hilfe!

Re: StatusIndicator und ThisComponent.store()

von Stephan » Do, 13.06.2013 12:05

Allerdings benutzte ich bisher storeAsURL(sURL, arg), damit ich dem Dokument einen neuen Namen bzw. Pfad geben kann.
Vorsicht, die Existenz von storeAsURL und storeToURL hat noch andere Gründe, als nur die Angabe des Speicherorts und Filters zu ermöglichen.
An welcher Stellte müsste ich beim Nutzen des Dispatchers Pfad und weitere Optionen angeben?
Es gibt keine Doku dafür, am Einfachsten findest Du das raus wenn Du den dispatcher-Code durch Aufzeichnen des Makros (Extras-Makros-aufzeichnen) selbst erzeugst, z.B. gibt das:

Code: Alles auswählen

sub Main2
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/Internet/AppData/Local/Microsoft/Windows/Temporary%20Internet%20Files/Content.IE5/CX0L1ODH/Speichern-Info-Dialog.ods"
args1(1).Name = "FilterName"
args1(1).Value = "calc8"

dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())


end sub

Gruß
Stephan

Re: StatusIndicator und ThisComponent.store()

von RasmusV » Do, 13.06.2013 11:40

Hallo und vielen Dank!

Über den Dispatcher wird der Fortschritt des Speicherns in der StatusIndicator Bar angezeigt. Das ist also schon fast die Lösung meines Problems.

Allerdings benutzte ich bisher storeAsURL(sURL, arg), damit ich dem Dokument einen neuen Namen bzw. Pfad geben kann. An welcher Stellte müsste ich beim Nutzen des Dispatchers Pfad und weitere Optionen angeben? Im englisch sprachigen Forum habe ich nur den Verweis von Dispatcher zum Speichern auf storeAsURL bekommen, da hier ein User beim Nutzen des Dispatchers keine Pfad übergeben konnte.

Beste Grüße und vielen Dank im Voraus!

Re: StatusIndicator und ThisComponent.store()

von balu » Do, 13.06.2013 11:14

Hallo Rasmus,
In deinem Makro verwendest du noch isvisible(true). Ist das redundant oder zwangsweise benötigt?
Der Code ist aus einem anderen Makro von mir, hatte ihn nur etwas angepasst. Das dortige Makro ist bedeutend umfangreicher und durch etliche Experimente hatte ich dann das wohl vergessen rauszunehmen. Wenn es bei dir ohne *isvisible(true)* funktioniert, dann lass es einfach raus.



Gruß
balu

Re: StatusIndicator und ThisComponent.store()

von Stephan » Do, 13.06.2013 10:40

ich suche eine Möglichkeit, den Fortschritt des Speicherns mittels des StatusIndicators darzustellen.
ist mir kein Weg bekannt, weil ich nicht weiss wie man den Speicherfortschritt auslesen könnte, was aber Vorausetzung wäre um diesen anzeigen zu können.
Verwendet man nun aber in einem Makro den Befehl ThisComponent.store(), wird nichts weiter angezeigt.


versuche einmal dispatcher-Code zu nutzen, es könnte sein das dabei automatisch der Speicherstatus angezeigt wird (bin nicht sicher):

Code: Alles auswählen

dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())

Gruß
Stephan

Re: StatusIndicator und ThisComponent.store()

von RasmusV » Do, 13.06.2013 10:39

Vielen Dank für deine Antwort!

Dass das nicht geht, begründet zumindest, warum ich so gut wie keine Informationen zu StatusIndicator und Speichern von Dokumenten gefunden habe. Hier im Forum hatte ich schon ein Thema durchforstet, welches sich mit parallel ablaufenden Makros bzw. Prozeduren beschäftigt und zum Schluss kommt, dass das nicht geht :?

Meine derzeitige Lösung ist auch ein Dialog, welcher über dlg.setvisible(true) so lange angezeigt wird, wie gespeichert wird. Das zeigt zumindest, dass etwas passiert. Alle meine selbstgeschriebenen Funktionen geben über eine ProgressBar den Fortschritt an den Benutzer weiter.

In deinem Makro verwendest du noch isvisible(true). Ist das redundant oder zwangsweise benötigt?

Viele Grüße,

Rasmus

Re: StatusIndicator und ThisComponent.store()

von balu » Mi, 12.06.2013 23:30

Hallo RasmusV,
ich suche eine Möglichkeit, den Fortschritt des Speicherns mittels des StatusIndicators darzustellen.
Geht nicht.

Könnt ihr mir helfen?
Nein :-(
Zumindest nicht so wie Du es dir vorstellst.

Denn während OOo/AOO/LO speichert, kann während dessen nichts anderes gemacht werden und es lässt auch keine anderen Makro Aktionen zu. Da gibt es keine Tricks und Hintertüren um dies irgendwie zu umgehen.

Aber, es gäbe da eine Möglichkeit zumindest eine statische Information auszugeben. Das was Du dir so vorstellst wäre dynamisch. Also die statische Variante wäre, Du gibst ein kleines Hinweisfenster aus in dem darauf hingewiesen wird, das gespeichert wird.

Und komm ja nicht auf die Gloreiche Idee :wink: in den Dialog eine Animierte Grafik einzubinden die das Speichern optische simuliert, denn das haut leider auch nicht hin, ich sprech da aus meiner eigenen gemachten Erfahrung.


Schau dir mal das kleine simpel gehaltene Beispiel an. Bei klick auf den Button in der Calc-Datei wird ein Dialog eingeblendet, der nach 5 Sekunden wieder von alleine verschwindet. Der Dialog kann nicht weggeklickt werden.



Gruß
balu
Dateianhänge
Speichern-Info-Dialog.ods
(11.03 KiB) 154-mal heruntergeladen

[solved] StatusIndicator und ThisComponent.store()

von RasmusV » Mi, 12.06.2013 20:45

Hallo liebe Forengemeinde,

ich suche eine Möglichkeit, den Fortschritt des Speicherns mittels des StatusIndicators darzustellen.

Das Probelm ist, dass das zu speichernde Dokument sehr groß ist und der Vorgang entsprechend dauert. Damit der Nutzer aber nun weiß, dass etwas passiert, würde ich ihm gerne den Status des Speichervorgangs anzeigen. So wie als wenn man das Dokument auf herkömmliche Art und Weise speichert. Dann erscheint ja auch: "Dokument Speichern" und der Fortschrittbalken.

Verwendet man nun aber in einem Makro den Befehl ThisComponent.store(), wird nichts weiter angezeigt. Mittels des StatusIndicators weiß ich aber nicht, wie ich den Fortschritt anzeigen könnte. Bei Internetrecherchen habe ich leider auch nichts weiter dazu gefunden.

Könnt ihr mir helfen?

Nach oben