Datenübertagung von Formularfeld in Writer

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Hallo zusammen nun muss ich doch mal ein eigenes Thema auf machen und zwar habe mich mir eine Datenbank zur Erstellung der Dokumentation über durchgeführte Prüfungen von Ausrüstung zur Absturzsicherung erstellt.

Mein Problem das ich nun habe ich kann aus einem Formular heraus ein Writer Dokument öffnen und dort möchte ich das der Aktuelle Datensatz dann dann angezeigt wird.

Mit F4 und Auswahl bekomme ich es hin nur ein Makro für die Übertragung der Daten will mir nicht gelingen da mir da die Ahnung dazu fehlt.
Und ich aus den hier gegebenen Erklärungen nicht schlau werde.
Wäre schön wenn mir jemand helfen könnte.

Meine Datenbank kann ich auch hoch laden wenn das Helfen würde.

Viele Grüße

Abstusi
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Anbei mein Makro
Sub Main
oDoc = thisComponent
oForm = oDoc.Drawpage.Forms(0)
oColumns = oForm.Columns
REM Pfad zur Vorlage zusammensetzen
Globalscope.BasicLibraries.loadLibrary("Tools")
sURL = oDoc.Parent.URL
sURL = DirectoryNameoutofPath(sURL,"/") & "/"
sURL = sURL & "Vorlage_Prüf-Kontrollkarte_Datenbank.odt"
REM Vorlage öffnen
Dim args(0) as new com.sun.star.beans.PropertyValue
args(0).Name = "AsTemplate"
args(0).Value = True
newDoc = StarDesktop.loadComponentFromURL(sURL,"_blank",0,args)
REM Textfelder holen
enumTextfields = newDoc.Textfields.createEnumeration
Do While enumTextfields.hasMoreElements
thisTextfield = enumTextfields.nextElement
If thisTextfield.supportsService("com.sun.star.text.TextField.JumpEdit") Then
sColumnname = thisTextfield.PlaceHolder
If oColumns.hasByName(sColumnname) Then
nIndex = oForm.findColumn(sColumnname)
thisTextfield.Anchor.String = oForm.getString(nIndex)
End If
End If
Loop
End Sub
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Guten Morgen
hier nun meine Datenbank und das Writerdocukemt für die Kontrollkarte.

Mir ist da noch ein Problem aufgefallen einen Datensatz per Button zu kopieren, da wäre ich auch für Hilfe dankbar.

Hoffe ihr könnt mir helfen.

Gruß

Abstusi
Dateianhänge
Vorlage_Prüf-Kontrollkarte_Datenbank.odt
(13.79 KiB) 77-mal heruntergeladen
Prüfdatenbank_Abstusi.odb
(21.1 KiB) 79-mal heruntergeladen
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Danke dir für deine Hilfe werde nun meine Dokumente Anpassen und mich dann um das Kopieren kümmern sollte ich nicht weiter kommen melde ich mich dann noch mal.
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Nun bekomme ich direkt ein neues Problem die Platzhalter wo ein Datum drin steht werden nicht so ausgegeben wie sie in der Tabelle stehen.

Ich glaub das ich noch ganz am Anfang bin mit dem uUmgang um Datenbanken zu erstellen.
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

HalloHarald,
danke sehr für die Hilfe. Bin nun schon um einiges weiter wie du dir im Anhang ja auch ansehen kannst jetzt habe ich aber beim Kopierenbutton etwas komisches es funktioniert aber er erstellt drei falsche Felder. Finde nur keinen Fehler.

Hier mein Makro
Sub Kopieren
oDoc = thisComponent
oForm = oDoc.Drawpage.Forms("Abstusi")

sProdukt = oForm.getString(2)
sTyp = oForm.getString(3)
sHersteller = oForm.getString(4)
sSeriennummer = oForm.getString(5)
sArtikelnummer = oForm.getString(6)
sNorm = oForm.getString(7)
dHerstellungsjahr = oForm.getDate(8)
sBetriebNutzer = oForm.getString(9)
sNameNutzer = oForm.getString(10)
dKaufdatum = oForm.getDate(11)
dDatumErstnutzung = oForm.getDate(12)
sErgaenzungsteile = oForm.getString(13)
sEinsatzbereich = oForm.getString(14)
SBemerkungen = oForm.getString(15)
dAblagereife = oForm.getDate(16)
d1Datum = oForm.getDate(17)
s1Bemerkung = oForm.getString(18)
sVerladen = oForm.getString(19)
dnaechstePruefung = oForm.getDate(20)

oForm.moveToInsertRow

oForm.updateString(2, sProdukt)
oForm.updateString(3, sTyp)
oForm.updateString(4, sHersteller)
oForm.updateString(5, sSeriennummer)
oForm.updateString(6, sArtikelnummer)
oForm.updateString(7, sNorm)
oForm.updateDate(8, dHerstellungsjahr)
oForm.updateString(9, sBetriebNutzer)
oForm.updateString(10, sNameNutzer)
oForm.updateDate(11, dKaufdatum)
oForm.updateDate(12, dDatumErstnutzung)
oForm.updateString(13, sErgaenzungsteile)
oForm.updateString(14, sEinsatzbereich)
oForm.updateString(15, SBemerkungen)
oForm.updateDate(16, dAblagereife)
oForm.updateDate(17, d1Datum)
oForm.updateString(18, s1Bemerkung)
oForm.updateString(19, sVerladen)
oForm.updateDate(20, dnaechstePruefung)
End Sub
Und das mit den Berichten direkt in der Datenbank ist gut nur möchte ich nur genau den aktuellen Datensatz nutzen geht das dort auch?
Dateianhänge
Prüfdatenbank_Abstusi.odb
(47.92 KiB) 64-mal heruntergeladen
2012-06-01_175209.jpg
2012-06-01_175209.jpg (23.74 KiB) 2304 mal betrachtet
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Hallo Harald,
danke für die Erklärung da hätte man drauf kommen können habe es aber am Formular ausgeheckt und nicht mit der Quelle.

Danke Danke.

Gruß
Abstusi
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Hallo,
ich komme da nicht wirklich weiter habe nun einen Bericht erstellt der müsste aber auf zwei Seiten und das ist das erste was nicht klappen will das zweite ist dann der Aufruf im Formular das es nur der Aktuelle Datensatz ist.
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Datenübertagung von Formularfeld in Writer

Beitrag von RobertG »

Hallo Abstusi,
Abstusi hat geschrieben: ich komme da nicht wirklich weiter habe nun einen Bericht erstellt der müsste aber auf zwei Seiten und das ist das erste was nicht klappen will das zweite ist dann der Aufruf im Formular das es nur der Aktuelle Datensatz ist.
Ich habe den Thread jetzt nicht komplett gelesen, da mich die Verbindung von Base zum Writer wenig interessiert. Ich nutze eben diese Berichte, bei denen Du jetzt gelandet bist. Ein Bericht muss natürlich von der Größe her auch mehr Platz einnehmen können als eine Seite. Hast Du aber wirklich so viele Daten in einem Datensatz? Ist im Allgemeinen doch eher ungewöhnlich. So große Datensätze habe ich mit Berichten noch nicht verarbeitet.
Den aktuellen Datensatz könntest Du erreichen, indem Du den Bericht an eine Abfrage koppelst. Mit Deinem Aufrufbutton verbindest Du dann einen Updateaufruf an eine Tabelle, in der z.B. der Primärschlüsselwert des aktuellen Datensatzes gespeichert wird. Dann rufst Du den Bericht auf und es wird nur ein Datensatz tatsächlich ausgegeben.

Gruß

Robert
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Ja ich habe wirklich so viele Datensätze den eine Kontrollkarte hat eines was berücksichtigt werden muss.

Anbei ein Beispiel:
Dateianhänge
Vorlage_Kontrollkarte_Datenbank.ott
(14.35 KiB) 34-mal heruntergeladen
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Datenübertagung von Formularfeld in Writer

Beitrag von RobertG »

hallo Abstusi,

habe das gerade im Reportgenerator getestet. Ich kann einen Bricht locker über mehrere Seiten gehen lassen. Zum Spaß habe ich den Bereich "Details einfach einmal auf 40 cm gestellt um zu sehen, was denn passiert. Anschließend habe ich Felder an diese Position gelegt. Sie erschienen dann auf der 3. Seite ganz oben.

Ich habe mir die Prüfkarte entsprechend angesehen. Das müsste auf diese Art und Weise auch zu erhalten sein. Allerdings würde ich die Gruppierungsfunktion nutzen und die Rückseite dann über einen Seitenumbruch in den Detailbereich schieben.
Da Du ja sowieso nur einen Datensatz im Detailbereich abbildest dürfte die Gruppierung z.B. nach der ID kein Problem darstellen.

Gruß

Robert
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Ok danke dir für das ausprobieren dann muss ich nur noch hin bekommen das ich einen Datensatz dort ausgebe.

Wobei ich jetzt erst schlimmers reparieren muss mir ist Base abgestürzt und nun erscheint die Fehlermeldung!
Dateianhänge
2012-06-02_203324.jpg
2012-06-02_203324.jpg (25.17 KiB) 1557 mal betrachtet
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Datenübertagung von Formularfeld in Writer

Beitrag von RobertG »

Ich hänge einmal die Datenbank mit einem Bericht an, der über 2 Seiten geht, wobei der Detailbereich nach einem Seitenumbruch startet - wie ich es für die Tabellenansicht machen würde.

Gruß

Robert
Dateianhänge
Prüfdatenbank_Abstusi.odb
Bericht über 2 Seiten
(90.22 KiB) 42-mal heruntergeladen
RobertG
********
Beiträge: 2069
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Datenübertagung von Formularfeld in Writer

Beitrag von RobertG »

Hallo Abstusi,
Abstusi hat geschrieben: Wobei ich jetzt erst schlimmers reparieren muss mir ist Base abgestürzt und nun erscheint die Fehlermeldung!
Warum ist in der Meldung von einer externen Datenquelle die Rede? Du hast hier doch eine interne Datenbank gepostet.

Gruß

Robert
Abstusi
**
Beiträge: 29
Registriert: So, 27.05.2012 10:01

Re: Datenübertagung von Formularfeld in Writer

Beitrag von Abstusi »

Wenn ich das wüsste hatte im Report Builder gearbeitet der Ist abgestürzt und nun dies.
Antworten