Verhaltensänderung von Accounts(-1).Names

Fragen zum Thema InterRun
Antworten
Christian Hönnicke
Profi
Beiträge: 105
Registriert: Sa, 10 Feb, 2007 19:31

Verhaltensänderung von Accounts(-1).Names

Beitrag von Christian Hönnicke » Mi, 06 Jan, 2010 21:57

Hallo,

nachdem ich EuroKass zur Seite gelegt hatte, habe ich mich daran gemacht, einen Vorsatz für das neue Jahr anzupacken. Dabei ist mir aufgefallen, das mein Prognosebericht nicht mehr korrekt funktioniert. Ich arbeite mit Version 7.9.

Folgendes Skript wird in "OnAfterOpenWindow" ausgeführt:

Code: Alles auswählen

|Erstellt am Sonntag, 8 Juli 2007 - 16:57

Procedure Vorhersage_OnAfterOpenWindow

  m1 = 0
  m2 = 0

  n1 = 0
  n2 = 0

  Eingabefeld2.Text = " g1(x) = 0 x + 0"
  EingabeFeld2.color = Rgb(255,100,100)

  Eingabefeld4.Text = " g2(x) = 0 x + 0"
  EingabeFeld4.color = Rgb(110,255,100)

  |Auswahlliste1.Clear
  If Auswahlliste1.ItemCount <= 0
    Auswahlliste1.Add&#40; Accounts&#40;-1&#41;.Names &#41;
    Auswahlliste1.Sort
    Auswahlliste1.Refresh
  EndIf

  |Auswahlliste2.Clear
  If Auswahlliste2.ItemCount <= 0
    Auswahlliste2.Add&#40; Accounts&#40;-1&#41;.Names &#41;
    Auswahlliste2.Sort
    Auswahlliste2.Refresh
  EndIf

EndProcedure
Ursprünglich wurden alle Konten (inkl. Unterkonten) sortiert in der Auswahlbox angezeigt. Im Moment passt weder die Sortierung, noch werden mir alle Konten angezeigt. Ich bekomme sogar Konten zu Gesicht, die ich unter "Konten" gar nicht mehr angezeigt bekomme. Die Auswahl dieser "Altlasten" führt zu einer Fehlermeldung, dass das entsprechende Konto garnicht existiert.


Mit freundlichen Grüßen
Christian Hönnicke

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » Fr, 08 Jan, 2010 7:38

Hallo Christian,

verwende statt

Auswahlliste1.Add( Accounts(-1).Names )

besser

Auswahlliste1.Text = Accounts(-1).Names

da die Methode Add bei einer Auswahlliste nur eine Zeile anlegt und in diesem Fall wird die erste Zeile mit allen Konten zuzüglich Zeilenumbruch (#13#10) gefüllt.

Viele Grüße,
Dirk Schauries
Team Schauries

Christian Hönnicke
Profi
Beiträge: 105
Registriert: Sa, 10 Feb, 2007 19:31

Beitrag von Christian Hönnicke » Fr, 08 Jan, 2010 11:52

Hallo Dirk,

okay, da hab ich mir wohl selbst ins Bein geschossen. Der Code tut einfach nicht das, was er sollte :roll:.

Ich versuche aber trotzdem mal meinen alten Bericht ans Laufen zu bringen.

1. Kann es sein, dass die "Methodenvorschlagsliste" nicht mehr funktioniert, oder hab ich da was falsch in Erinnerung? Wenn ich "Auswahlliste1." tippe und warte, passiert nichts. Ich hätte jetzt erwartet, dass er mir die möglichen Methodennamen der Komponente auflistet.

2. Nun habe ich meine globale Prozedur von EuroKass/Modul nach MeinBericht/Modul verschoben. Gleichzeitig der Code eine globale Variable. Seit dem Umstieg von 8.0 auf 8.1 bekomme ich einen Fehler, dass die globale Variable unbekannt ist.

3. Ich würde ja sehr gerne auf die globalen Variablen verzichten. Gibt es die Möglichkeit Parameter per Referenz zu übergeben oder Klassen/Strukturen als Rückgabeparameter zu verwenden?

Mit freundlichen Grüßen
Christian Hönnicke

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » So, 10 Jan, 2010 8:19

Hallo Christian,

1.
Die Methodenvorschlagsliste funktioniert nach wie vor. Lediglich in Modulen von Berichten fehlt diese Funktionalität. Das muss noch korrigiert werden.

2.
Hier kann ich leider kein Fehlverhalten entdecken. Wurde das Modul denn neu gestartet (Rechtsklick im Editor oder Toolbar-Symbol)?

3.
Wenn Parameter im Methodenkopf als Var deklariert werden, referenzieren sie auf die Originalvariable.

Ein Beispiel:
Procedure ZweiteMethode (Var L : Integer)
l = l + 1
EndProcedure

Procedure ErsteMethode(Var K : Integer)
k = k + 1
ZweiteMethode (k)
EndProcedure

Procedure Schalter1_OnClick
Var B : Integer
b = 6
ErsteMethode (b)
Sm(LnT(b))
EndProcedure

Klassen bzw. Strukturen können leider nicht übergeben werden.

Viele Grüße,
Dirk Schauries
Team Schauries

Antworten