Lieferschein aus Datentabelle erstellen

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: Lieferschein aus Datentabelle erstellen

Re: Lieferschein aus Datentabelle erstellen

von BluescreenX » Fr, 16.01.2009 13:46

Vielen Dank Charly! Das ist genau die Lösung die ich mir vorgestellt habe.

Gruß
Bluescreen

Re: Lieferschein aus Datentabelle erstellen

von Charly » Mi, 14.01.2009 17:48

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
Dateianhänge
Lieferschein.ods
(17.14 KiB) 167-mal heruntergeladen

Re: Lieferschein aus Datentabelle erstellen

von BluescreenX » Mi, 14.01.2009 14:44

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

Re: Lieferschein aus Datentabelle erstellen

von Gert Seler » Mi, 14.01.2009 12:02

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

Re: Lieferschein aus Datentabelle erstellen

von Charly » Mi, 14.01.2009 09:12

Hallo Bluescreen!

Code: Alles auswählen

selection    =  ThisComponent.getCurrentSelection() 
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.

Code: Alles auswählen

if sourceTable <> NULL then
Ob eine Tabelle vorhanden ist, frägt man ab mit

Code: Alles auswählen

ThisComponent.getSheets().hasByName(table)
Beim Befehl

Code: Alles auswählen

sourceTable.getCellRangebyName(column & row).getValue()
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
Dateianhänge
Lieferschein.ods
(8.62 KiB) 99-mal heruntergeladen

Re: Lieferschein aus Datentabelle erstellen

von BluescreenX » Di, 13.01.2009 16:43

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 ?

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

Gruß
Bluescreen

Re: Lieferschein aus Datentabelle erstellen

von Charly » Di, 13.01.2009 07:59

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

Nach oben