Re: [de-discuss] Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

2019-07-22 Diskussionsfäden Gerhard Weydt

Hallo Jörg,

Am 22.07.2019 um 11:32 schrieb Jörg Schmidt:

Hallo Gerhard,

Du bist wohl hier Opfer der nicht richtig funktionierenden Mailingliste, oder 
wolltest Du mir tatsächlich persönlich schreiben?
Nein, der Fehler liegt bei mir, ich wollte das an Andreas direkt 
schicken, so wie ich zuvor schon meine Meinung, dass das besser mit 
einer Datenbank zu lösen wäre (wie ja auch Robert Großkopf dann 
schrieb), ihm privat geschickt hatte, weil ich den Calc-Experten nicht 
vorgreifen wollte. Ich wollte ihm nur mein Unverständnis mitteilen, 
damoit er gegebenenfalls bei dir nachfragt, denn die Aufgabenstellung 
ist mir zu unklar, daher wollte ich nicht selbst offiziell in die 
Diskussion eingreifen.


Ich antworte mal per persönlicher Mail plus Antwort an die Liste


Locker dahingesagt!

nein, garnicht, denn ich hatte mir vor meiner Antwort sehr wohl zumindest einen 
funktionierenden Weg überlegt.

Das ich nicht besonders konkret geantwortet habe (das meinst Du wohl mt 
"locker") hängt nur damit zusammen das die Prozesbeschreibung von Andereas 
umfangreich war und icvh zu faul war diese im Detail zu durchdenken, was aber notwendig 
wäre um ein konkretes Ereignis zu identifizieren auf das man ZWECKMÄSSIGERWEISE reagieren 
kann.

z.B. ist bereits Dein Vorschlag nur beim Öffnen der Datei zu reagieen, dann 
zweckmäßig wenn feststünde das während des Geöffnetseins der Datei keine neuen 
Dateien in das Verzeichnis aufgenommen werden. In diesem Falle wäre das 
Öffnen-Ereignis also als Startereignis gfür das Makro geeignet, ob dieser Falkl 
vorliegt weiß ich aber nicht, das könnte/müsste Andreas sagen.
Da du von Ereignis sprachst, habe ich automatisch angenommen, dass du 
von den offiziellen Ereignissen der IDE im engeren Sinn sprichst. Ich 
habe erst durch diese Mail verstanden, was gemeint ist.

Ich sehe kein Ereignis, das auf Berechnung oder
Aktualisieren (wieso eigentlich?) reagiert, auch keinen Listener, den
man selbst definieren müsste (braucht man z. B., wenn man auf
Mausklicks
reagieren will, habe ich mal verwendet).

Wenn Du auf "Berechnung oder Aktualisieren" reagieren willst genügt im Zweifel ("im 
Zweifel" weil es funktioniert, aber nicht besonders elegant ist) eine benutzerdefinierte 
Funktion der Du als Parameter eine der relevanten Zellen übergibt, also der Zellen in denem etwas 
aktualisierend berechnet wird, und die dann ihrerseits das Makro startet, also (sinngemäß):

Function bla(x)
Das_Arbeitsmakro()
End Function


Sub Das_Arbeitsmakro()
'...
End Sub

und in irgendeiner Zelle des Tabellenblattes dann aufrufen mit der Formel:

=BLA(A1)

(A1 ist hier nur ein Beispiel)

(Am Rande: man muss bei dieser Art der Verwendung von benutzerdefinierten 
Funktionen sehr genau darauf achten was direkt in der Funktion geschehen soll, 
denn das direkte Ändern von Zellwerten ist nicht möglich.)


ob alle
Projektdateien
schon verwendet sind, und andernfalls die Daten ergänzen.
Aber wie prüft
man das?

Indem man alle Dateien im Verzeichnis per Makro frisch ausliest und mit den 
bestehenden Angaben in der Datei überprüft.

"bestehenden Angaben" hängen im Konkreten von der gewählten Implementierung ab. Ich hatte 
z.B. vorgeschlagen benannte Bereiche mit Namen "Bla" plus laufende Nummer zu nutzen.


Ich denke, dass mehrere Tabellenblätter dann doch die bessere Lösung
sind,

Ich habe darüber garnicht speziell nachgedacht, weil ich rein mechanisch die 
indirekt aufgeworfene Frage des Makros beantwortet habe.



Gruß
Jörg



Gruß

Gerhard

--
Liste abmelden mit E-Mail an: discuss+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


RE: [de-discuss] Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

2019-07-22 Diskussionsfäden Jörg Schmidt
Hallo Gerhard,

Du bist wohl hier Opfer der nicht richtig funktionierenden Mailingliste, oder 
wolltest Du mir tatsächlich persönlich schreiben?

Ich antworte mal per persönlicher Mail plus Antwort an die Liste 

> Locker dahingesagt! 

nein, garnicht, denn ich hatte mir vor meiner Antwort sehr wohl zumindest einen 
funktionierenden Weg überlegt.

Das ich nicht besonders konkret geantwortet habe (das meinst Du wohl mt 
"locker") hängt nur damit zusammen das die Prozesbeschreibung von Andereas 
umfangreich war und icvh zu faul war diese im Detail zu durchdenken, was aber 
notwendig wäre um ein konkretes Ereignis zu identifizieren auf das man 
ZWECKMÄSSIGERWEISE reagieren kann.

z.B. ist bereits Dein Vorschlag nur beim Öffnen der Datei zu reagieen, dann 
zweckmäßig wenn feststünde das während des Geöffnetseins der Datei keine neuen 
Dateien in das Verzeichnis aufgenommen werden. In diesem Falle wäre das 
Öffnen-Ereignis also als Startereignis gfür das Makro geeignet, ob dieser Falkl 
vorliegt weiß ich aber nicht, das könnte/müsste Andreas sagen.

> Ich sehe kein Ereignis, das auf Berechnung oder 
> Aktualisieren (wieso eigentlich?) reagiert, auch keinen Listener, den 
> man selbst definieren müsste (braucht man z. B., wenn man auf 
> Mausklicks 
> reagieren will, habe ich mal verwendet).

Wenn Du auf "Berechnung oder Aktualisieren" reagieren willst genügt im Zweifel 
("im Zweifel" weil es funktioniert, aber nicht besonders elegant ist) eine 
benutzerdefinierte Funktion der Du als Parameter eine der relevanten Zellen 
übergibt, also der Zellen in denem etwas aktualisierend berechnet wird, und die 
dann ihrerseits das Makro startet, also (sinngemäß):

Function bla(x)
Das_Arbeitsmakro()
End Function


Sub Das_Arbeitsmakro()
'...
End Sub

und in irgendeiner Zelle des Tabellenblattes dann aufrufen mit der Formel:

=BLA(A1)

(A1 ist hier nur ein Beispiel)

(Am Rande: man muss bei dieser Art der Verwendung von benutzerdefinierten 
Funktionen sehr genau darauf achten was direkt in der Funktion geschehen soll, 
denn das direkte Ändern von Zellwerten ist nicht möglich.)  

> ob alle 
> Projektdateien 
> schon verwendet sind, und andernfalls die Daten ergänzen. 
> Aber wie prüft 
> man das?

Indem man alle Dateien im Verzeichnis per Makro frisch ausliest und mit den 
bestehenden Angaben in der Datei überprüft.

"bestehenden Angaben" hängen im Konkreten von der gewählten Implementierung ab. 
Ich hatte z.B. vorgeschlagen benannte Bereiche mit Namen "Bla" plus laufende 
Nummer zu nutzen.   

> Ich denke, dass mehrere Tabellenblätter dann doch die bessere Lösung 
> sind, 

Ich habe darüber garnicht speziell nachgedacht, weil ich rein mechanisch die 
indirekt aufgeworfene Frage des Makros beantwortet habe.



Gruß
Jörg


-- 
Liste abmelden mit E-Mail an: discuss+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy


RE: [de-discuss] Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

2019-07-21 Diskussionsfäden Jörg Schmidt
Hallo, 

> From: Andreas Borutta [mailto:boru...@gmx.de] 
> Sent: Sunday, July 21, 2019 12:35 PM
> To: discuss@de.libreoffice.org
> Subject: [de-discuss] Re: [Calc] Warenwirtschaft: Zellwerte 
> aus neu hinzugefuegtem Dokumente beziehen

> Kann denn ein Makro ein Ereignis wie "Im Ordner /~/Documents/Projekte
> wird eine neue Datei angelegt/eine vorhandene gespeichert" überwachen?

Nein. Da aber eine Aktualisierung ohnehin nur dann nötig ist wenn Berechnungen,
die auf der Zelle basieren deren Inhalt das Makro erstellt, neu durchgeführt 
oder
Bestehende aktualisiert werden, reicht es ein Ereignis zu nutzen das dann
stattfindet und daran das Makro zu binden.

> Zur Länge:

> Um wieviele Dokumente würde es gehen? Geschätzt vielleicht bis zu 20,

Dann genügt es die Ausdrücke der Form
"file:///Users/MeinBenutzername/Documents/Projekte/Projekt-1.ods" als Benannte
Bereiche (entsrechend Tabelle-Benannte Bereiche-Festlegen im Calc-Menü), mit
kurzen Namen, per Makro zu erstellen/festzulegen und diese kurzen Namen dann in
der Formel zu verwenden. 

> Mittelfristig will er natürlich auf eine datenbankbasierte Lösung
> setzen.
> 
> Vielleicht https://www.odoo.com/de_DE/page/editions

Wenn das die Option ist, dann zöge ich eine lokale Calc-Tabelle aber einer
Online-Lösung vor, rein aufgrund der Datensicherheit. 

(Aber auf Datensicherheit Wert zu legen ist heutzutage wohl eine aussterbende
Tugend, denn Bequemlichkeit ist der Mehrheit wichtiger, und da das Gehacktwerden
von Online-Daten, ja meist ohne ernstliche Haftungs-Konsequenzen bleibt, ist da
kaum auf Besserung zu rechnen.)

Besser wäre trotzdem auch lokal eine Datenbank, aber wenn die Wahl lautet sicher
oder effizient, ist mir sicher wichtiger.


Gruß
Jörg



-- 
Liste abmelden mit E-Mail an: discuss+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy



[de-discuss] Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

2019-07-21 Diskussionsfäden Andreas Borutta
Jörg Schmidt:

Hallo Jörg.

>> Wäre es möglich den Ordner "file:///~/Documents/Projekte/" so zu
>> "überwachen", dass jede neue Datei, z.B. "Projekt-2.ods" automatisch
>> in Warenbestand.ods passend eingefügt wird?
>> 
>> Ergebnis also:
>> 
>> D2=C2-'file:///~/Documents/Projekte/Projekt-1.ods'#$T_Material
>> .B2-C2-'file:///~/Documents/Projekte/Projekt-2.ods'#$T_Material.B2

Hier hatte sich ein Fehler eingeschlichen, es sollte natürlich heißen:
D2=C2-'file:///~/Documents/Projekte/Projekt-1.ods'#$T_Material.B2-'file:///~/Documents/Projekte/Projekt-2.ods'#$T_Material.B2

>> Vermutlich ist sowas ohne größeren Programmieraufwand nicht zu machen,
>> oder?
> 
> eigentlich genügt:
> 
> Sub Main
>   Dim alle()
>   datei = Dir("~/Documents/Projekte/*.ods", 0)
>   Do 
>   i = UBOUND(alle())
>   Redim Preserve alle(i+1)
>   alle(i+1) = datei
>   datei = Dir
>   Loop While datei <> ""
> End Sub
> 
> plus das Zusammenbauen des Formelstrings.
> 
> Problematisch ist das eine Tabellenformel nur eine begrenzte Länge haben 
> kann, ich
> weiß garnicht wieviel aktuell bei LO. Man müsste also überlegen wie man das 
> löst,
> abhängig von der zu erwartenten Anzahl an Dateien.

Herzlichen Dank erstmal für Dein Makro.

Kann denn ein Makro ein Ereignis wie "Im Ordner /~/Documents/Projekte
wird eine neue Datei angelegt/eine vorhandene gespeichert" überwachen?

Zur Länge:

LO ändert leider automatisch den Platzhalter "~" in den realen Pfad.
Dadurch würde die Formel natürlich sehr lang.

Beispiel:
file:///Users/MeinBenutzername/Documents/Projekte/Projekt-1.ods

Um wieviele Dokumente würde es gehen? Geschätzt vielleicht bis zu 20,
sagt mein Freund.

Den Pfad könnte man durch Kürzen der Ordner und Dateinamen natürlich
eindampfen.
file:///Users/MeinBenutzername/P/P-1.ods

Aber eigentlich kann man eine solche Anzahl von aktiven Projekten auch
einfach als Tabellenblätter neben dem Tabellenblatt "T_Warenbestand"
anlegen.

Das scheint mir vernünftiger.

Mittelfristig will er natürlich auf eine datenbankbasierte Lösung
setzen.

Vielleicht https://www.odoo.com/de_DE/page/editions

(OpenSource, webbasiert)

Damit kenne ich mich nicht aus.




Andreas
-- 
http://fahrradzukunft.de


-- 
Liste abmelden mit E-Mail an: discuss+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy



[de-discuss] Re: [Calc] Warenwirtschaft: Zellwerte aus neu hinzugefuegtem Dokumente beziehen

2019-07-20 Diskussionsfäden Andreas Borutta
Robert Großkopf:

>> Ich wollte durch meine Nachfrage sicherstellen, dass ich nicht
>> vielleicht eine elegante einfache Lösung übersehe.
> 
> CALC ist ein Tabellenkalkulationsprogramm, keine Datenbank. Das, was da
> gemacht werden soll, riecht an allen Ecken und Enden nach Datenbank -
> aber eine andere Antwort hast Du wahrscheinlich von mir dazu sowieso
> nicht erwartet. Und das hilft Dir nicht weiter, weil es eben doch wohl
> die komplizierte Calc-Lösung sein soll.

Du hast natürlich ohne Frage Recht damit, dass es eigentlich eine
Aufgabe für eine Datenbank ist. Das ist mir auch klar.

Aber der Freund ist mit Datenbanken völlig unerfahren, kann jedoch mit
Tabellen gut umgehen.

Mich interessierte schlicht, was mit Calc in Bezug auf
dokumentenübergreifende Formeln so geht. Denn nicht selten kommt es ja
vor, dass Calc weit mehr kann als man zunächst vermutet hat.



Andreas
-- 
http://fahrradzukunft.de


-- 
Liste abmelden mit E-Mail an: discuss+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy