Daub Logo
Produkte Downloads Kaufen Company Community mein Daubnet
Anmelden

Community

Diskussionen, Fragen und Zusammenarbeit - hier ist der richtige Platz für den Austausch mit den Entwicklern und mit anderen Usern. Machen Sie mit!
Kostenloses Daubnet-Konto erstellen

Ages! Forum Rechenfelder Index ALL / List Index Out of Bound  


 

Index ALL / List Index Out of Bound

 
 
 
Beitrag6. Sep 2011, 11:10
Hallo,

da habe ich nun schon sehr lange meine Ages Lizenz, hatte mir dann vor Kurzem nur für den Ausdruck noch Stammbaumdrucker gekauft und komme nun für den Ausdruck doch wirder zu Ages zurück, um noch mehr in die Tiefen der weiteren Formatierungsmöglichkeiten abzusteigen. Irgendwie fühle ich mich in alte Programmiererzeiten zurückversetzt (und muss feststellen, dass vor 15 Jahren das Lernen noch leichter war).


1) List Index Out of Bound

(Anm.: riecht irgendwie nach Delphi)

Ich wollte in der Personenbox zwei Zeilen reservieren für die möglichen ersten beiden Berufe mit:
=OCCU[1].TYPE
=OCCU[2].TYPE
jeweils mit fixem Zeilenumbruch dazwischen. Wenn kein Beruf angegeben ist, gehe ich davon aus, dass eine Leerzeile prodziert wird.
Ist das der falsche Weg für mein Ziel? Denn ich erhalte nun immer mal wieder die Fehlermeldung "List Index Out of Bound(0)".

Ich habe versucht, das weiter Einzukreisen mit einer Testdatei mit zwei Personen. Ich konnte noch nicht genau herausfinden, was die Bedingung ist, damit der Fehler auftritt, kann aber sagen, dass der Fehler NICHT mehr auftritt, wenn BEIDE Personen jeweils ZWEI Berufe haben.
Mache ich hier etwas falsch?


2) Index = ALL

Wie wird der Parameter "ALL" als Index in der Personenbox (oder anderswo) abgearbeitet? Ich habe im Manual und der TechRef nichts dazu gefunden. Muss man sich eine Schleife vorstellen, bei der alle möglichen Indexwerte durchlaufen werden, so dass das ich auch hätte schreiben können:
=OCCU[ALL].TYPE
mal abgesehen davon, dass im o.g. Fall nur höchsten 2 Berufe ausgegeben würden?
Wenn ich das aber eingebe, dann wird gar kein Beruf ausgegeben.

Ich freu mich auf Rückmeldung. Gruß

XT-Matz
XT-Matz
Wohnort: Siebengebirge

Seitdem es Flugzeuge gibt, sind die entfernten Verwandten auch nicht mehr das, was sie einmal waren. — Helmut Qualtinger
 
 
 

Re: Index ALL / List Index Out of Bound

Beitrag6. Sep 2011, 17:32
XT-Matz hat geschrieben:1) List Index Out of Bound(Anm.: riecht irgendwie nach Delphi)


Es *ist* Delphi, und dieser Fehler sollte eigentlich nicht auftreten. Ich werde versuchen, das nachzustellen.

XT-Matz hat geschrieben:2) Index = ALL

Ages! nutzt den Index "ALL" intern, um Schleifen um Ausgabefelder herum zu bilden, dies funktioniert derzeit aber nicht in Rechenfeldern.
Site Admin
jcd
 
 
 

Re: Index ALL

Beitrag7. Sep 2011, 10:32
...Out of Bound...Ich werde versuchen, das nachzustellen.
Falls nötig lade ich eine Testdatei und ein Layout hoch.

Index = ALL

Wie gebe ich denn dann ALLE Berufe (oder andere mehrfach Einträge) aus? Etwa so ohne Index:
=OCCU.TYPE

Oder muss ich ein paar explizit auflisten, in der Hoffnung, dass es nicht mehr gibt:
=OCCU[1].TYPE
=OCCU[2].TYPE
=OCCU[3].TYPE

Ich möchte eigentlich überwiegend gleichhohe Personenboxen haben und reserviere zwei Zeilen mit Zeilenumbruch CHAR(13) für zwei Berufe.
Sollte es aber mehr geben, dann sollen die auch angedruckt werden und die Box wird nur dann etwas höher. Hat jemand einen Vorschlag?

Gruß
XT-Matz
XT-Matz
Wohnort: Siebengebirge

Seitdem es Flugzeuge gibt, sind die entfernten Verwandten auch nicht mehr das, was sie einmal waren. — Helmut Qualtinger
 
 
 

Re: Index ALL / List Index Out of Bound

Beitrag7. Sep 2011, 13:02
Es gibt keinen Weg, alle Berufe mittels Rechenfeldern auszugeben, dies geht nur über die normalen Felder. Wenn man mit der Einschränkung leben kann, dass nur die ersten 3 Berufe ausgegeben werden, kann man
XT-Matz hat geschrieben:=OCCU[1].TYPE
=OCCU[2].TYPE
=OCCU[3].TYPE

nutzen.

Wenn nun zwei Zeilen vorgesehen sind, und der Rahmen erst ab der dritten Zeile wachsen soll, geht man am besten wie folgt vor:

Code: Alles auswählen
=OCCU[1].TYPE&" "
<Zeilenumbruch>
=OCCU[2].TYPE&" "
<Zeilenumbruch>
=OCCU[3].TYPE & IF (OCCU[3].TYPE<>"",CHR(13),"")
=OCCU[4].TYPE & IF (OCCU[4].TYPE<>"",CHR(13),"")
=OCCU[5].TYPE & IF (OCCU[5].TYPE<>"",CHR(13),"")


Die Angabe von &" " dient dazu, dass Ages auch in dem Falle einen Zeilenumbruch erzeugt, indem der erste Beruf fehlt. Ansonsten könnte Ages! die Leerzeile unterdrücken.
Site Admin
jcd
 
 
 

Re: Index ALL / List Index Out of Bound

Beitrag7. Sep 2011, 15:03
jcd hat geschrieben:=OCCU[3].TYPE & IF (OCCU[3].TYPE<>"",CHR(13),"")

Ich staune immer wieder über die Möglichkeiten in Rechenfeldern. Nichtprogrammierern (wie mir) fehlt leider meist die Kreativität und Übersicht auf die Möglichkeit mit IF und CHR(13)-Ausgabe zu kommen. Diese Formatiermöglichkeit könnte auch in anderen Anwendungsfällen nützlich sein. Schade ist wohl auch, dass viele Ages-Nutzer die Rechenfelder nicht kennen oder nicht nutzen. Wäre mal interessant eine Statistik zu haben, wieviel % Rechenfelder nutzen. Laut dem Forum sind es wohl nur wenige.

Ages! 2 - Gutes Forschen und viel Erfolg! Prioritäten: Standards (GEDCOM Export/Import), Datensicherheit, Quellen und Publizierbarkeit. Über 18.000 Personen. Win7x64 4 GB RAM. Meine Ages Erfahrungen und Wunschliste - CRα
 
 
 

Re: Index ALL / List Index Out of Bound

Beitrag8. Sep 2011, 09:19
Das wäre spannend, ja. Wir erheben derzeit jedoch keine Nutzungsstatistiken in Ages!. Ich persönlich mag keine Software, die "nach Hause telefoniert". Hinzu kommt, dass es schwierig ist, eine solche Funktion datenschutzrechtlich so abzusichern, dass uns keine rechtlichen Konsequenzen drohen.

Insofern müssen wir damit leben, nur grob einschätzen zu können, welche Funktionen von unseren Anwendern tatsächlich genutzt werden.
Site Admin
jcd
 
 
 

Re: Index ALL / List Index Out of Bound

Beitrag8. Sep 2011, 13:37
jcd:
=OCCU[1].TYPE&" "
<Zeilenumbruch>

Die Angabe von &" " dient dazu, dass Ages auch in dem Falle einen Zeilenumbruch erzeugt, indem der erste Beruf fehlt.


Gute Idee: es wird also immer mindestens ein Leerzeichen ausgegeben.
Taucht aber eine grundsätzliche Frage auf, die ich so im Detail auch nicht dokumentiert gefunden habe:
Wird ein Zeilenumbruch tatsächlich immer nur dann ausgegeben, wenn der vorhergehende Eintrag leer ist? Oder muss der Zeilenumbruch aus der Auswahlliste dann aus der entsprechenden Untergruppe eingefügt werden? (Letzteren gibt es nicht in allen Gruppen). Ich habe Zeilenumbrüche eingefügt, die werden immer ausgeführt. Das passt für mich im Moment nicht ganz zusammen.

Gruß
XT-Matz
XT-Matz
Wohnort: Siebengebirge

Seitdem es Flugzeuge gibt, sind die entfernten Verwandten auch nicht mehr das, was sie einmal waren. — Helmut Qualtinger
 
 
 

Re: Index ALL / List Index Out of Bound

Beitrag8. Sep 2011, 15:55
Zeilenumbrüche werden nur dann erzeugt, wenn die aktuelle Zeile nicht leer ist. Diese Vorgehensweise dient dazu, möglichst keine Leerzeilen zu erhalten, die in aller Regel auch unerwünscht wären. Will man dennoch Leerzeilen erzeugen, muss vor dem Zeilenumbruch mindestens ein Leerzeichen ausgegeben werden.
Site Admin
jcd
 
 
 

Re: Index ALL / List Index Out of Bound

Beitrag11. Sep 2011, 14:03
jcd hat geschrieben:Ich persönlich mag keine Software, die "nach Hause telefoniert". Hinzu kommt, dass es schwierig ist, eine solche Funktion datenschutzrechtlich so abzusichern, dass uns keine rechtlichen Konsequenzen drohen.
Insofern müssen wir damit leben, nur grob einschätzen zu können, welche Funktionen von unseren Anwendern tatsächlich genutzt werden.

Ich bin vollkommen damit einverstanden; Homephone ist besonders bei Genealogiesoftware abschreckend. Wenn dann müsste es eine freiwillige Umfrage hier im Forum oder auf andere Art sein. Diese würde aber wohl ein verfälschtes Bild geben, da aktive Forumnutzer eher die Rechenfelder nutzen werden als andere.

Ages! 2 - Gutes Forschen und viel Erfolg! Prioritäten: Standards (GEDCOM Export/Import), Datensicherheit, Quellen und Publizierbarkeit. Über 18.000 Personen. Win7x64 4 GB RAM. Meine Ages Erfahrungen und Wunschliste - CRα
 
 
 

Re: List Index Out of Bound

Beitrag12. Sep 2011, 23:47
jcd hat geschrieben:...dieser Fehler sollte eigentlich nicht auftreten. Ich werde versuchen, das nachzustellen.
Anbei als Unterstützung dazu noch eine GEDCOM Testdatei (mit zwei Testpersonen) und die Layout Datei, mit der es sich regelmäßig reproduzieren lässt, und zwar folgendermaßen:

1. Ages starten
2. Gedcom Datei test.ged öffenen
3. "Vor- und Nachfahrenbaum" erstellen. "Lieschen Müller" auswählen
4. Layoutdatei "Test(ListIndexError).layout" öffnen
=> Fehlermeldung List Index Out of Bound(0).

Ages lässt sich dann nur noch per Taskmanager abschießen.

Viel Erfolg

Gruß
XT-Matz
Dateianhänge
DemoListIndexError.zip
(5.71 KiB) 420-mal heruntergeladen
XT-Matz
Wohnort: Siebengebirge

Seitdem es Flugzeuge gibt, sind die entfernten Verwandten auch nicht mehr das, was sie einmal waren. — Helmut Qualtinger
 
 
 
 
 
cron