Lieferschein aus Datentabelle erstellen
Moderator: Moderatoren
Re: Lieferschein aus Datentabelle erstellen
Hallo Bluescreen!
Mit der Calc-Funktion "sverweis" kannst du Daten von einem anderen Tabellenblatt holen. Die Funktion ist in der OpenOffice-Hilfe beschrieben.
gruß
Charly
Mit der Calc-Funktion "sverweis" kannst du Daten von einem anderen Tabellenblatt holen. Die Funktion ist in der OpenOffice-Hilfe beschrieben.
gruß
Charly
-
- Beiträge: 8
- Registriert: Mo, 12.01.2009 19:01
Re: Lieferschein aus Datentabelle erstellen
Mit dem SVerweis hab ich das nicht so richtig hinbekommen deswegen hab ich eine neue Funktion geschrieben die mir den Wert Tabellen übergreifend rauszieht. Ich krieg allerdings als Rückgabe immer Err: 501. Kann mir einer sagen warum ? Gibt es noch eine Einfachere Möglichkeit ?
Gruß
Bluescreen
Code: Alles auswählen
function GetValue(table as String,column as String)
Dim sourceTable,sheets, selection as Object
selection = ThisComponent.getCurrentSelection()
if selection.supportsService("com.sun.star.sheet.SheetCell") then
row = selection.getCellAddress().Row +1
sourceTable = ThisComponent.getSheets().getByName(table)
if sourceTable <> NULL then
GetValue = sourceTable.getCellRangebyName(column & row).getValue()
else
GetValue = table & " existiert nicht"
end if
end if
end function
Bluescreen
Re: Lieferschein aus Datentabelle erstellen
Hallo Bluescreen!
In einer aus einer Tabelle aufgerufenen Funktion sollte man "getCurrentSelecton" vermeiden, da Calc die Funktionen immer wieder neu berechnet und es nicht sichergestellt ist, dass immer die richtige Zelle ausgewählt ist.
Ob eine Tabelle vorhanden ist, frägt man ab mit
Beim Befehl
musst du den String erst in eigenen Variablen aufbauen: wie Zelle = Column & Cstr(row).
Mir erscheint deine Methode mithilfe einer Funktion die Daten zu überspielen, nicht sehr erfolgversprechend. Da wäre eine SUB, die mit einer Tastenkombination aufgerufen wird wahrscheinlicher besser.
Am besten ist für mich nach wie vor die Methode mit sverweis. Hier brauche ich z.B. nur die Kundennummer eingeben und schon wird die ganze Tabelle mit den gewünschten Daten gefüllt. Ich habe die anbei ein kurzes Beispiel gemacht.
gruß
Charly
Code: Alles auswählen
selection = ThisComponent.getCurrentSelection()
Code: Alles auswählen
if sourceTable <> NULL then
Code: Alles auswählen
ThisComponent.getSheets().hasByName(table)
Code: Alles auswählen
sourceTable.getCellRangebyName(column & row).getValue()
Mir erscheint deine Methode mithilfe einer Funktion die Daten zu überspielen, nicht sehr erfolgversprechend. Da wäre eine SUB, die mit einer Tastenkombination aufgerufen wird wahrscheinlicher besser.
Am besten ist für mich nach wie vor die Methode mit sverweis. Hier brauche ich z.B. nur die Kundennummer eingeben und schon wird die ganze Tabelle mit den gewünschten Daten gefüllt. Ich habe die anbei ein kurzes Beispiel gemacht.
gruß
Charly
- Dateianhänge
-
- Lieferschein.ods
- (8.62 KiB) 98-mal heruntergeladen
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Lieferschein aus Datentabelle erstellen
Hallo bluescreen,
hier findest Du Hilfe zu der Funktion SVERWEIS :
http://www.ooowiki.de/CalcFunktionenTab ... atenFinden
Mit Beispielen läßt sich besser lernen.
mfg
Gert
hier findest Du Hilfe zu der Funktion SVERWEIS :
http://www.ooowiki.de/CalcFunktionenTab ... atenFinden
Mit Beispielen läßt sich besser lernen.
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
-
- Beiträge: 8
- Registriert: Mo, 12.01.2009 19:01
Re: Lieferschein aus Datentabelle erstellen
Ok vielen Dank für das Beispiel. Also das mit dem SVerweis klappt jetzt halbwegs. Allerdings muss ich immer noch manuell die Kunden Nummer eintragen. Ich würde gerne das wenn ich der Kundentabelle eine Zeile auswähle sich alle Verweise automatisch aktualisieren und ich direkt drucken kann.
Eventuell würde das über einen Sheet Change Listener funktionieren der in einer globalen Variable speicher in welcher Zeile sich der Zeiger in der Kundentabelle befindet. Oder geht das wie so vieles in Calc auch einfacher ?
edit: Gibt es eigentlich irgendwelche Event callbacks wie zum Beispiel OnOpenWorkbook die von Calc Automatisch verwendet werden?
Gruß
Bluescreen
Eventuell würde das über einen Sheet Change Listener funktionieren der in einer globalen Variable speicher in welcher Zeile sich der Zeiger in der Kundentabelle befindet. Oder geht das wie so vieles in Calc auch einfacher ?
edit: Gibt es eigentlich irgendwelche Event callbacks wie zum Beispiel OnOpenWorkbook die von Calc Automatisch verwendet werden?
Gruß
Bluescreen
Re: Lieferschein aus Datentabelle erstellen
Hallo Bluescreen!
Ich habe mein Beispiel erweitert und drei Makros hinzugefügt. Wenn du jetzt auf das Tabellenblatt "Kundendatei" gehst, eine Zelle in der gewünschten Kundenzeile anklickst, kannst du das Makro KundeUebertragen starten durch Klicken auf das gleichnamige ICON in der Symbolleiste. Das Makro überträgt die Kundennummer in die Tabelle Lieferschein
Als Zusatz-Beispiel habe ich den Lieferschein noch ergänzt mit Artikeleinträgen. Das ICON ArtikelLoeschen löscht die Einträge des vorherigen Kunden. Bis zu 10 Artikel kannst du dann auf die gleiche Weise wie die Kundenamen übertragen. Also Zelle im Tabellenblatt"Artikeldatei" auswählen und Icon "Artikel eintragen" drücken. Dadurch wird die Artikelnummel übertragen.
Gruß
Charly
Ich habe mein Beispiel erweitert und drei Makros hinzugefügt. Wenn du jetzt auf das Tabellenblatt "Kundendatei" gehst, eine Zelle in der gewünschten Kundenzeile anklickst, kannst du das Makro KundeUebertragen starten durch Klicken auf das gleichnamige ICON in der Symbolleiste. Das Makro überträgt die Kundennummer in die Tabelle Lieferschein
Als Zusatz-Beispiel habe ich den Lieferschein noch ergänzt mit Artikeleinträgen. Das ICON ArtikelLoeschen löscht die Einträge des vorherigen Kunden. Bis zu 10 Artikel kannst du dann auf die gleiche Weise wie die Kundenamen übertragen. Also Zelle im Tabellenblatt"Artikeldatei" auswählen und Icon "Artikel eintragen" drücken. Dadurch wird die Artikelnummel übertragen.
Gruß
Charly
- Dateianhänge
-
- Lieferschein.ods
- (17.14 KiB) 166-mal heruntergeladen
-
- Beiträge: 8
- Registriert: Mo, 12.01.2009 19:01
Re: Lieferschein aus Datentabelle erstellen
Vielen Dank Charly! Das ist genau die Lösung die ich mir vorgestellt habe.
Gruß
Bluescreen
Gruß
Bluescreen