Deutsch
Forum

Gelöschte Anzeige

 
Hallo,

gibt es eine Möglichkeit, die Anzeige gelöschter Sätze zu unterbinden?
 
09.11.2004  
 



Hallo H.

Was genau meinst du? Satz = Spalte ?
Möchtest du eine komplette Spalte löschen / ausblenden ?
Das geht mit DeleteColumn(listview&,spaltenindex&). Wenn du nicht die Datei Listview_Funktionen.inc einbindest, dann kannst du die System-Message LVM_DELETECOLUMN verwenden.
Meinst du das ?

Gruß, Frank
 
09.11.2004  
 



Hallo Frank,

war gestern abend etwas in Eile und habe mich dadurch etwas mißverständlich ausgedrückt.

Es geht darum, wenn sich in der dBase-Datei ein bereits gelöschter Satz befindet, wird der trotzdem in der Listview angezeigt, das möchte ich gerne vermeiden.

Wenn wir gerade dabei sind, ist es möglich, eine Spalte in der Listview unsichtbar zu halten und man trotzdem darauf zugreifen kann.

Nach @deletecolumn ist die Spalte ja gelöscht und man kann sie nicht mehr einlesen. Ich habe in der Datenbank ein Feld mit einer fortlaufender Nummer, so daß ich nach einer Auswahl z.B. zum Löschen schnell und eindeutig auf den Satz zugreifen kann. Ich möchte aber, wenn möglich, diese Nr. bei ShowListview() nicht anzeigen.

Gruß Helmut
 
09.11.2004  
 



Hallo Helmut.

> Nach @deletecolumn ist die Spalte ja gelöscht und man kann
> sie nicht mehr einlesen. Ich habe in der Datenbank ein Feld
> mit einer fortlaufender Nummer, so daß ich nach einer
> Auswahl z.B. zum Löschen schnell und eindeutig auf den Satz > zugreifen kann. Ich möchte aber, wenn möglich, diese Nr.
> bei ShowListview() nicht anzeigen.

Das geht einfach. Du setzt die Breite dieser Spalte einfach auf 0. Dann ist sie ganz normal vorhanden, der User kann sie aber nicht sehen. Und du kannst sie sehr einfach wieder anzeigen, indem du die Breite einfach wieder vergrösserst:

SetColumnWidth(listview&,spaltenindex&,breite_in_pixel&)

Der Nachteil: Der User könnte die Spalte manuell mit der Maus wieder verbreitern...
Aber auch das kann leicht verhindert werden, wie du im Beispiel Gebührenverwaltung_Stammtisch.prf testen kannst. Versuch mal die Spaltenbreite zu verändern...

Gruß, Frank
 
09.11.2004  
 



Hallo Frank,

vielen Dank, gute Idee, die Spalte auf 0 setzen.

Muß trotzdem nochmals nerven, was kann ich mit den gelöschten Sätze in der dBase-Datenbank machen.

Gruß

Helmut
 
09.11.2004  
 



Hi,

gibt es in einer Datenbank ein Flag das kennzeichnet, das dieser Satz / Spalte (?) nicht mehr benutzt wird ?
Würdest du mir so eine dbf-Datei zuschicken ? Oder kennst du die Position des Flags.

Gruß, Frank
 
09.11.2004  
 



Hi nochmal,

hab das Deleted Flag gefunden. Laut Referenz dürften hier nur die Werte $20 oder $2a stehen, hab aber schon Datenfiles gesehen, in denen hier andere Werte standen.
Wenn du mir also trotzdem noch eine kurze Datenbank mit teils gelöschten Sätzen zuschickst, könnte ich das Ganze besser testen.
Ein als gelöscht gekennzeichnetes Datenfeld soll im Listview also leer bleiben, richtig? An der Stelle würde dann ein leerer Itemtext stehen.

Gruß, Frank
 
09.11.2004  
 



Nur ein Tipp aus der Praxis: Da ich beruflich viel mit SQL-Datenbanken zu tun habe, ist es absolut wichtig das Datensätze NIEMALS gelöscht werden. Auch dann nicht, wenn sie gar nicht mehr benötigt werden. Deswegen hat jede Tabelle ein True/False Feld, das ich immer Anzeigen nenne. Wenn Anzeigen=0 dann wird diese einfach nicht angezeigt. Und nach einem benutzerdifinierten Zeitraum werden die einfach in einer Backup-Datei ausgelagert damit die Datenbank nicht alzugroß wird. Dann kannst Du Dir auch das mit dem Löschflag sparen.
 
09.11.2004  
 



Hallo Marc,

grundsätzlich ist deine Aussage richtig, aber genau passiert doch hier.

Wenn ich mit Profan @dbDelete() einen Datensatz lösche, ist er noch
immer physisch vorhanden. Ich kann immer noch auf ihn zugreifen
%dbDeleted und kann, wenn ich will, die Löschung wieder aufheben
@dbUndelete(). Erst wenn ich die Datei komprimiere @dbPack(), ist
der Satz endgültig weg.

Es ist jedoch programmtechnisch bei der Listview am einfachsten, wenn
der Satz überhaupt nicht mehr eingelesen wird. Der User soll ihn ja
nicht mehr sehen, weil er ja gelöscht ist.
 
09.11.2004  
 



Hallo,
Ich finde aber, man sollte es dem Nutzer überlassen, ob er einen Satz
wirklich löschen möchte, oder nicht.
Sonst wäre die Dll ja quasi ein dbf-Komprimierungstool und keine Datenbankveraltung.
Vielleicht kann man über einen separaten Bereich auf die als gelöscht markierten
Daten zugreifen und sie bei Bedarf dort auslesen.
Vielleicht DbfDeletedToCSV(...)...
Gruß
Jörg
 
09.11.2004  
 



Hallo,

es ist jetzt eingebaut, das gelöschte Sätze nicht angezeigt werden. Aber ich werde gerne ein Flag einbauen, um dieses Verhalten auszuschalten.
Was haltet ihr davon ?

Gruß, Frank
 
09.11.2004  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.711 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (11x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie