[gelöst] Writer-Tabelle abfragen und mit Textbaustein bes.
Moderator: Moderatoren
[gelöst] Writer-Tabelle abfragen und mit Textbaustein bes.
Hallo zusamen,
in einem Wirterdokument habe ich eine Tabelle und je nach Inhalt der Tabellenzelle soll in der Nachbarzelle ein Textbaustein eingefügt werden, den ich aus einer Autotextvorlage einlesen möchte.
Ich habe schon mal im Forum gesucht, aber nichts dergleichen gefunden.
Kann mir da jemand weiterhelfen?
Diese gleiche Frage hatte ich auch schon ins Writer-Forum gestellt. Vielleicht war das der falsche Ort.
mit freundlichem Gruß
Werner
in einem Wirterdokument habe ich eine Tabelle und je nach Inhalt der Tabellenzelle soll in der Nachbarzelle ein Textbaustein eingefügt werden, den ich aus einer Autotextvorlage einlesen möchte.
Ich habe schon mal im Forum gesucht, aber nichts dergleichen gefunden.
Kann mir da jemand weiterhelfen?
Diese gleiche Frage hatte ich auch schon ins Writer-Forum gestellt. Vielleicht war das der falsche Ort.
mit freundlichem Gruß
Werner
Zuletzt geändert von wega am Fr, 24.07.2009 22:46, insgesamt 1-mal geändert.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Writer-Tabelle abfragen und mit Textbaustein besetzen?
Hallo Werner,
Code zum Zugriff auf Autotext-Einträge findest Du in meiner Extension OOoATL2 - AutoTextListe2 - eine Erweiterung des mitgelieferten Standard-Makros AutoText aus der Bibliothek Gimmicks.
Hilft Dir das weiter?
Code zum Zugriff auf Autotext-Einträge findest Du in meiner Extension OOoATL2 - AutoTextListe2 - eine Erweiterung des mitgelieferten Standard-Makros AutoText aus der Bibliothek Gimmicks.
Hilft Dir das weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Writer-Tabelle abfragen und mit Textbaustein besetzen?
Hallo Winfried,
recht vielen Dank für Deine Antwort.
Damit ich das ganze verstehe frage ich einmal zuerst so:
In meinem Textdokument habe ich 3 Tabellen. Im Navigator werden diese auch mit Tabelle1 bis Tabelle3 angezeigt.
Mit Klick des Cursors auf eine der drei Tabellen wird auch die entsprechende Tabelle angesprungen, d.h., der Cursor steht dann in der entsprechenden Tabelle in der ersten Zelle.
Wie spreche ich eine der Tabellen inklusive Sprung zu einer beliebiegen Zelle mit Basic her?
mit freundlichem Gruß
Werner
recht vielen Dank für Deine Antwort.
Damit ich das ganze verstehe frage ich einmal zuerst so:
In meinem Textdokument habe ich 3 Tabellen. Im Navigator werden diese auch mit Tabelle1 bis Tabelle3 angezeigt.
Mit Klick des Cursors auf eine der drei Tabellen wird auch die entsprechende Tabelle angesprungen, d.h., der Cursor steht dann in der entsprechenden Tabelle in der ersten Zelle.
Wie spreche ich eine der Tabellen inklusive Sprung zu einer beliebiegen Zelle mit Basic her?
mit freundlichem Gruß
Werner
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Writer-Tabelle abfragen und mit Textbaustein besetzen?
Alles im Beispiel drinne...
Du hast -natürlich- auch X-Ray im Einsatz?
Hilft Dir das weiter?
Code: Alles auswählen
' Tabelle
oTT = ThisComponent.getTextTables().getByName( "Tabelle1" )
' Zelle ( Spalte, Zeile )
oTT_Zelle = oTT.getCellByPosition( 1 , 2 )
Hilft Dir das weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Writer-Tabelle abfragen und mit Textbaustein besetzen?
Hallo Winfried,
Danke für Deine schneller Reaktion.
Diese Zeilen bringen mich ein gutes Stück weiter, DANKE.
Nein, X-Ray habe ich nicht im Einsatz, da ich bei einem vorherigen Installationsversuch enorme Schwiergkeiten hatte.
Nochmals Dank und freundlichen Gruß
Werner
Danke für Deine schneller Reaktion.
Diese Zeilen bringen mich ein gutes Stück weiter, DANKE.
Nein, X-Ray habe ich nicht im Einsatz, da ich bei einem vorherigen Installationsversuch enorme Schwiergkeiten hatte.
Nochmals Dank und freundlichen Gruß
Werner
Re: Writer-Tabelle abfragen und mit Textbaustein besetzen?
Ich noch mal,
Ja gut, die Tabelle wird erkannt, da ich von da jetzt keine Fehlermeldung mehr bekomme.
Auch die Spalte und Zeile wir wohl richtig sein, auch von dort keine Fehlermeldung.
Aber wieso steht der Cursor denn nicht in der angegebenen Zelle?
Und wie lese ich den Inhalt einer solchen Zelle aus?
Und wie schreibe ich in diese Zelle einen neuen Ihalt rein?
Ich weiß, eine Reihe dummer Fragen, aber irgendwie scheine ich ein Brett vor dem Kopf zu haben.
Bedanke mich schon jetzt für eure Hilfe
mit Gruß
Werner
Ja gut, die Tabelle wird erkannt, da ich von da jetzt keine Fehlermeldung mehr bekomme.
Auch die Spalte und Zeile wir wohl richtig sein, auch von dort keine Fehlermeldung.
Aber wieso steht der Cursor denn nicht in der angegebenen Zelle?
Und wie lese ich den Inhalt einer solchen Zelle aus?
Und wie schreibe ich in diese Zelle einen neuen Ihalt rein?
Ich weiß, eine Reihe dummer Fragen, aber irgendwie scheine ich ein Brett vor dem Kopf zu haben.
Bedanke mich schon jetzt für eure Hilfe
mit Gruß
Werner
Re: Writer-Tabelle abfragen und mit Textbaustein besetzen?
Hallo zusammen,
mit einem Codeschnipsel von Turtle47 aus dem englischen Forum
bin ich nun schon mal auf die Zelle der Tabelle gekommen.
Jetzt geht geht es noch darum, Je nach Inhalt der Zelle einen dazugehörigen Textbaustein auszulesen.
mit Gruß
Werner
mit einem Codeschnipsel von Turtle47 aus dem englischen Forum
Code: Alles auswählen
Sub Rotate_Text1
odoc=thiscomponent
oTables = oDoc.getTextTables
oTable = oTables.getByIndex(0)
oCell=oTable.getCellByPosition(0,0)
myViewCursor=oDoc.GetCurrentController.ViewCursor
myViewCursor.gotoRange(oCell,false)
myViewCursor.CharRotation = 900
End Sub
Jetzt geht geht es noch darum, Je nach Inhalt der Zelle einen dazugehörigen Textbaustein auszulesen.
mit Gruß
Werner
Re: Writer-Tabelle abfragen und mit Textbaustein besetzen?
Hallo zusammen,
also nach langem hin und her habe ich für mich folgende Lösung erarbeitet.
Freuen würde ich mich, wenn irgendwer seinen Kommentar dazu abgeben würde in Bezug auf:
a) Vereinfachung
b) besserer Programmierung
c) und was sonst noch so an Kritik möglich ist.
mit Gruß
Werner
also nach langem hin und her habe ich für mich folgende Lösung erarbeitet.
Code: Alles auswählen
REM ***** BASIC *****
' automatisches Ausfüllen
' der Kommentarspalten bei
' ausgefülltem Merkmal
' Werner Gatzweiler, Juli 2009
Private oDocument as Object
Private oTable as Object
Private oCell as Object
Private oViewCursor as Object
Private oAutoTextContainer as Object
Private oAutoGroup as Object
Private sATKategorie as Object
Private sBaustein as Object
Private oAutoGroupIndex as Integer
Private i, m, n as Integer
Private oAntwort as String
Private oName as String
sub tabelle_anspringen
oDocument = ThisComponent
oTable = oDocument.getTextTables().getByName( "Tabelle2" )
oAntwort = "Textbausteine zur Kompetenzbeurteilung liegen noch nicht vor!!"
'Prüfen, ob die Textbausteine vorhanden sind
oAutoTextContainer = CreateUnoService("com.sun.star.text.AutoTextContainer")
for i= 0 to oAutoTextContainer.count-1
If oAutoTextContainer.GetByIndex(i).Title ="Kompetenz-Beurteilung" then
oAntwort = ""
oAutoGroupIndex = i
end if
next i
'Wenn die oben gestzte Programmantwort nicht gelöscht worden ist,
'dann liegt die <Textbausteindatei.bau> nicht vor und das Programm wird
'beendet.
if oAntwort <> "" then
msgbox oAntwort
exit sub
end if
'Bausteingruppe definieren und nachschauen, wieviele Bausteine es in der Gruppe gibt
oAutoGroup = oAutoTextContainer.GetByIndex(oAutoGroupIndex)
'msgbox oAutoGroup.count
for i = 0 to oAutoGroup.count-1
'Textbausteinname auslesen
oName = oAutoGroup.Titles(i)
'Der Textbausteinname ist bewußt nach der Tabellenzelle benannt, in der das Merkmal
'gesucht wird. Z.B. B3 oder C11 usw.
oCell = oTable.getCellByName(oName)
'Nachschauen, ob Merkmal gestzt ist
if uCase(oCell.String) = "X" then
'Der Kommentar, also der Textbaustein selber, soll immer in der Spalte "F" stehen.
'Die Zeile wird aus der Zellenbeschreibung ermittelt.
oTable.getCellByName("F" & right(trim(oName),len(oName)-1)).String = oAutoGroup.GetByIndex(i).String
end if
next i
end sub
a) Vereinfachung
b) besserer Programmierung
c) und was sonst noch so an Kritik möglich ist.
mit Gruß
Werner