Buchungen aus Tabelle löschen

Fragen zum Thema Berichte
Antworten
Kuschel1234
Profi
Beiträge: 43
Registriert: So, 24 Okt, 2010 14:26

Buchungen aus Tabelle löschen

Beitrag von Kuschel1234 » Sa, 01 Jan, 2011 19:39

Hallo,

erstmal herzlichen Dank für die vielen bisherigen Antworten.
Ich habe dadurch schon eine ganze Menge mit dem Programm umsetzen können. :D

Aber nun zu meiner Frage:

Ich habe mir in einem Bericht eine Tabelle angelegt in der mir (durch einen Buchungsfilter) ein Teil meiner Buchungen angezeigt wird. Jetzt habe ich gesehen das wenn ich die Buchungen in der Tabelle lösche sie auch in der Buchungsliste gelöscht werden.
Gibt es eine Formel mit der ich alle Buchungen die in der Tabelle angezeigt werden löschen kann?
Damit ich z.B. eine Schaltfläche "Löschen" anlegen könnte um all diese Buchungen komplett zu entfernen?

Vielen Dank
Kuschel1234

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

Beitrag von Team Schauries » Do, 06 Jan, 2011 6:13

Hallo Kuschel1234,

eine fertige Löschfunktion für Filter gibt es nicht aber über untenstehende Methode erreicht man denselben Effekt.
Nur bitte Vorsicht! Durch Unachtsamkeit kann so mal eben schnell die gesamte Buchungsliste gelöscht werden!

Hinweis:
Die Begriffe "Lebensmittel" und "Tabelle1" sind Beispielnamen und müssen noch durch Deine Begriffe ausgetauscht werden!

Procedure Schalter1_OnClick

Var T : Object
Var I : Integer
Var S : String
Var B : Integer

T.FillObject("ITextFile")

|Hier den Namen des Filters noch austauschen !!!
T.Text = Filter("Lebensmittel").Rows

|Den einzelnen Buchungsindex einer jeweiligen Buchung herausfiltern
|und in einem String sammeln
For i = 1 To T.Count - 1
s = s + Token(T.String(i),';',1) + ';'
Next

|In einer Schleife absteigend alle zuvor gesammelten Buchungen
|über deren Index löschen
For i = TokenCount(s,";") DownTo 1
B = StrToInt(Token(s,";",i))
Booking(B).Delete
Next

T.Nothing

|Hier den Namen der Tabelle im Bericht noch austauschen !!!
Tabelle1.UpdateAutoFunction

EndProcedure

Viele Grüße,
Dirk Schauries
Team Schauries

Kuschel1234
Profi
Beiträge: 43
Registriert: So, 24 Okt, 2010 14:26

Beitrag von Kuschel1234 » Sa, 08 Jan, 2011 21:03

Vielen Dank für die schnelle Antwort.

Aber ich mache wahrscheinlich beim einbauen des Scriptes einen Fehler.
Denn wie bekomme ich den Namen des Filters heraus?

Ich habe ja in der Tabelle einen Manuellen Buchungsfilter. Dieser wird ja erstehlt aus dem Konto das ich in einer Auswahlliste auswähle (also Auswahlliste1.SelectText). Wie muss ich dann den Namen des Filters in das Script eingeben? Weil ich ja kein festes Konto im Buchungsfilter stehen habe.

Bei meinen Versuchen erhielt ich immer bloß die Mitteilung das der Index außerhalb des gültigen Bereiches liegt.

Vielen Dank nochmal

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

Beitrag von Team Schauries » Mo, 10 Jan, 2011 5:54

Hallo Kuschel1234,

sorry, ich ging von einem fertigen Buchungsfilter aus.

Bei einem manuellen Buchungsfilter kannst Du die Filterbedingungen direkt in das Script übernehmen.

Statt

T.Text = Filter("Lebensmittel").Rows

solltest Du dann

T.Text = ManualFilterRows("","","Gesamter Zeitraum",0.00,0.00,"","und","","","und","",Nein,Nein,Nein,Nein,Nein,Nein)

verwenden und die Parameter innerhalb der Klammern durch Deine bereits definierten Parameter ersetzen.

Der Nachteil dieser Technik ist, dass sich eine Änderung des manuellen Buchungsfilters über den Auto-Funktions-Assistenten hier nicht bemerkbar macht. Du musst also immer zwei Stellen im Programm berücksichtigen.

Viele Grüße,
Dirk Schauries
Team Schauries

Kuschel1234
Profi
Beiträge: 43
Registriert: So, 24 Okt, 2010 14:26

Beitrag von Kuschel1234 » Sa, 26 Mär, 2011 20:43

Hallo,

ich weiß dieses Thema liegt schon eine Weile zurück aber mir ist gerade in dem Bericht (in dem ich diese Löschfunktion in der Tabelle anwende) etwas aufgefallen.

Wenn in der Tabelle 2 oder mehr Buchungen angezeigt werden löscht die Funktion alle Buchungen einwandfrei. Wenn in der Tabelle aber nur 1 Buchung angezeigt wird löscht die Funktion diese eine Buchung nicht.

Woran liegt das? Kann man dies in der Funktion abändern?

Vielen Dank
Kuschel1234

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

Beitrag von Team Schauries » So, 27 Mär, 2011 12:05

Hallo Kuschel1234,

vielen Dank für den Hinweis!

Im heutigen Update Version 9.5 ist der Fehler behoben.

Viele Grüße,
Dirk Schauries
Team Schauries

Antworten