Csv Makro Parameter

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

abuayyoub
***
Beiträge: 51
Registriert: So, 22.12.2013 18:44

Re: Csv Makro Parameter

Beitrag von abuayyoub »

nichts ende der diskussion
das dokument zu schliessen habe ich gelöst in dem ich in das Makro am Ende vor

Code: Alles auswählen

end sub
das eingefügt habe

Code: Alles auswählen

document.close(true)
jetzt fehlt mir nur noch der start ohne auswahlfenster, wenn mir jemand da einen hinweis geben könnte wie ich das letzte hinderniss lösen könnte, wäre nett.

Danke
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Csv Makro Parameter

Beitrag von Stephan »

nichts ende der diskussion
Du bist es doch der sich weigert das zu tun was nötig ist indem Du die nötigen Parameter übergibst und solange Du das nicht tust wird es nicht funktionieren. ES gibt keine andere LÖsung.
jetzt fehlt mir nur noch der start ohne auswahlfenster, wenn mir jemand da einen hinweis geben könnte wie > ich das letzte hinderniss lösen könnte, wäre nett.
Es ist dir mehrfach per ausführlichem Code gezeigt worden, das Auswahlfenster erscheint automatisch dann nicht wenn Du die richtigen Parameter angibst und einen anderen Weg gibt es nicht
(auch logisch weil ohne Parameter das Programm ja nicht wissen kann wie es die csv öffnen sollte, weswegen ein Parameter wie 'zeige kein Auswahlfenster schlicht redundant wäre [1] und deshalb nicht existiert)

[1]
erläutere ich auch gerne, falls du es ohnehin verstehtst (dann verstehe ich aber DEine 'Weigerung' nicht es zu benutzen) überlies es einfach:

gäbe es sowas wie einen Parameter wie 'zeige Auswahlfenster: ja/nein' hieße das im Nein-Fall, das das Makro nicht laufen kann wenn bei einem "nein" keine Parameter da sind, folglich ist die Angabe von Parametern das automatische "nein" für OpenOffice das Auswahlfenster zu zeigen und die Nichtangabe von Parametern das automatische "ja"


Gruß
Stephan
abuayyoub
***
Beiträge: 51
Registriert: So, 22.12.2013 18:44

Re: Csv Makro Parameter

Beitrag von abuayyoub »

wer sagt das ich mich weigere. was redest du da? :(
wenn ich mich weigere, woher kommen da die parameter die ich da oben gepostet habe, sagt mir einfach mit welchem code ich das makro mit den geposteten parameter starten kann, fertig.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Csv Makro Parameter

Beitrag von Stephan »

was redest du da?


wie sonst sollte ich die Aussage "sorry das ist mir zu kompiziert" verstehen?
sagt mir einfach mit welchem code ich das makro mit den geposteten parameter starten kann
in einer Batch-Datei mittels:

Code: Alles auswählen

start soffice macro:///standard.module1.mein_makro
Wenn es gewünscht ist einzelne Parameter des Filters als Parameter dem Makros zu übergeben, dann mußt Du die gewünschten Dinge in den Kopf des Makros aufnehmen, also z.B.:

Code: Alles auswählen

Sub mein_makro(dateipfad As String)
...
dim args11(2) as new com.sun.star.beans.PropertyValue
...
args11(0).Name = "URL"
args11(0).Value = ConvertToURL(dateipfad)
...
End Sub
und dann aufrufen mittels:

Code: Alles auswählen

start soffice macro:///standard.module1.mein_makro("D:\meineDatei.csv")
Gruß
Stephan
abuayyoub
***
Beiträge: 51
Registriert: So, 22.12.2013 18:44

Re: Csv Makro Parameter

Beitrag von abuayyoub »

Hallo,
wir versuchen es mal so:
hier ist mein derzeitiges makro:

Code: Alles auswählen

REM  *****  BASIC  *****


sub mein makro
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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$U$1"

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "EK"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$U$2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "StringName"
args4(0).Value = "=h2+i2"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args4())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "$U$2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "ToPoint"
args8(0).Value = "U2:U12000"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args8())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())

rem ----------------------------------------------------------------------
dim args10(0) as new com.sun.star.beans.PropertyValue
args10(0).Name = "ToPoint"
args10(0).Value = "$V$2"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args10())

rem ----------------------------------------------------------------------
dim args11(2) as new com.sun.star.beans.PropertyValue
args11(0).Name = "URL"
args11(0).Value = "file:///C:/mein file.csv"
args11(1).Name = "FilterName"
args11(1).Value = "Text - txt - csv (StarCalc)"
args11(2).Name = "FilterOptions"
args11(2).Value = "59,34,76,1,,0,false,true,true"

dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args11())
document.close(true)


end sub
und hier meine batch:

Code: Alles auswählen

start soffice macro:///standard.module1.mein makro
wenn ich die batch ausführe bekomme ich folgenden fehler:

BASIC-Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden: currentcontroller

verweist dabei auf folgenden zeile:
document = ThisComponent.CurrentController.Frame

wenn mir jemand sagen könnte was wo ich falsch mache wäre ich euch sehr Dankbar
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Csv Makro Parameter

Beitrag von Stephan »

wir versuchen es mal so:
nö, danke denn da waren wir ja schon und von F3K Total gab es ein komplett überarbeitetes Makro nebst dem Kommentar: "Ich habe es komplett umgeschrieben, da das aufgenommene im Hintergrund nicht funktioniert"

wenn mir jemand sagen könnte was wo ich falsch mache wäre ich euch sehr Dankbar
Du verwendest ein aufgezeichnetes Makro, welches hier untauglich ist weil das Makro keinen Bezug zum aktuellen Dokument herstellen kann, da es per batch nicht in dessen Kontext gestartet wurde.
Der Bezug müsste also z.B. so hergestellt werden wie es F3K Total in seinem Makro gezeigt hat, denn dort entspricht odoc dem ThisComponent in Deinem Makro und folglich die Zeile:

Code: Alles auswählen

document = odoc.CurrentController.Frame
der Zeile:

Code: Alles auswählen

document = ThisComponent.CurrentController.Frame
womit wir dann wieder beim Thema wären das Dir das ja alles zu kompliziert ist ... worauf ich nur antworten kann "OpenOffice kann es nicht nicht anders" und beginne mich zu wiederholen.


Gruß
Stephan
abuayyoub
***
Beiträge: 51
Registriert: So, 22.12.2013 18:44

Re: Csv Makro Parameter

Beitrag von abuayyoub »

nö, danke denn da waren wir ja schon
dann halt dich raus
abuayyoub
***
Beiträge: 51
Registriert: So, 22.12.2013 18:44

Re: Csv Makro Parameter

Beitrag von abuayyoub »

es ist mir schon klar das es mit einem aufgezeichneten makro nicht geht, deshalb habe ich gefragt, was im obigen makro ändern muss.
ich bin die ganze woche am lesen und ausprobieren, das makro von fsk total weist fehler auf. verfluchte sch....
abuayyoub
***
Beiträge: 51
Registriert: So, 22.12.2013 18:44

Re: Csv Makro Parameter

Beitrag von abuayyoub »

von welchem modul reden wir von fsk total erste oder zweite?
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Csv Makro Parameter

Beitrag von pmoegenb »

abuayyoub hat geschrieben:von welchem modul reden wir von fsk total erste oder zweite?
Du bist vielleicht eine Marke.

- F3K Total hat Dir am Do, 26.12.13 1:36 eine Lösung aufgezeigt, die Du noch geringfügig anpassen musstest (Pfade). Diese Lösung war Dir zu Kompliziert.
- Stephan hat darauf aufmerksam gemacht, dass dies nicht anders geht
- gast freedom hat am Do, 26.12.13 15:43 erneut auf die Lösung von F3K Total vom Do, 26.12.13 1:36 aufmerksam gemacht

Und nun weißt Du angeblich nicht was gemeint ist ?
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
abuayyoub
***
Beiträge: 51
Registriert: So, 22.12.2013 18:44

Re: Csv Makro Parameter

Beitrag von abuayyoub »

Du bist vielleicht eine Marke.
bin eigentlich eine ruhige Marke, solange man mich nicht reizt.
wer hier keine lösung parat hat, braucht hier nicht seine Zeit zu verschwenden.
Braucht mich nicht immer auf andere lösungen hinzuweisen, wenn es lösungen wären, dann würde ich hier nicht mehr sitzen.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Csv Makro Parameter

Beitrag von F3K Total »

abuayyoub
abuayyoub hat geschrieben:wenn es lösungen wären, dann würde ich hier nicht mehr sitzen.
Weißt Du eigentlich, dass alle, die Dir hier helfen wollen, dies freiwillig und in ihrer Freizeit tun? Ohne Geld?
Ich habe zum Beispiel in der letzten Nacht drei Stunden an der Lösung von 01:36 Uhr gearbeitet.
Statt dich für die aufgezeigten Lösungswege zu bedanken, und daran zu arbeiten, sie zu verstehen, ist es DIR zu kompliziert, es muß doch einfacher gehen?
Der hier schon oft zitierte Weg von mir, funktioniert einwandfrei und ist eine Lösung. Ich habe sie komplett durchgetestet. Ein Doppelklick auf die .vbs-Datei und im Nu wird die modifizierte .csv-Datei mit dem ausgerechneten EK in Spalte U auf die Festplatte geschrieben.
Allein du verstehst die Lösung nicht?
Was verstehst Du nicht?
So langsam habe ich den Eindruck, du willst sie gar nicht verstehen.
R
abuayyoub
***
Beiträge: 51
Registriert: So, 22.12.2013 18:44

Re: Csv Makro Parameter

Beitrag von abuayyoub »

Hallo,
ich habe mich immer wieder Bedankt, ich verstehe es ebenhalt nicht, was ist ein vbs? ich kann mit den codes nichts anfangen. ich brauche batch und kein vbs, ich muss später in meinen aufgabenplaner einfügen.
Tut mir leid, wenn ich etwas aus der fasssung komme, bin so nah und doch weit entfernt.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Csv Makro Parameter

Beitrag von F3K Total »

Dann lass doch einfach die .vbs Datei weg und verwende die Batch-Datei ModifyCSV.bat direkt.
Das Visual-Basic-Script (.vbs) dient nur dazu, die Datei ModifyCSV.bat im Hintergrund auszuführen.
R
abuayyoub
***
Beiträge: 51
Registriert: So, 22.12.2013 18:44

Re: Csv Makro Parameter

Beitrag von abuayyoub »

Hallo,
ja habe ich, es erscheint folgender fehler:

Basic laufzeitfehler.
Es ist eine Exception aufgetreten
Type: com.sun.stark.task.ErrorCodelOException
Message

verweist auf folgende zeile:
odoc.storeToURL(sURLnew,Args)

Danke
Antworten