Gambas France BETA


Pas de compte ? Incription

DataView

Ce sujet est résolu.

1
AuteurMessages
valaquarus#1 Posté le 14/4/2024 à 13:40:46
-- Unus Ex Altera --Bonjour à tous,
une question :
comment effacer des enregistrements d'un dataView à partir d'une sélection multiple.
Le dataView.remove() semble ne rien faire.
Système d'exploitation : KDE neon 6.0.2 ~ Version Gambas : 3.19.90
linuxos#2 Posté le 14/4/2024 à 15:05:06
Un peu de sel, de poivre et la crevette sera... Bonjour,

D'après la documentation, tous les enregistrements sélectionnés seront supprimés lors de l'exécution de DataView1.Remove()

----------
DataView.Remove (gb.db.form)
Function Remove ( ) As Boolean

Delete the selected records, and return TRUE if is has not been possible.
----------

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
valaquarus#3 Posté le 14/4/2024 à 15:27:47
-- Unus Ex Altera --Bonjour Linuxos,
c'est bien ce que j'avais lu avant de poser ma question.
Et bien sûr ça ne fonctionne pas et j'essaye de contourner mais pas réussi pour le moment.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PUBLIC SUB btnErase3_Click() 'supprime les lignes sélectionnées

DIM i AS INTEGER

FOR i = 0 TO DataView1.View.Rows.Selection.Max
' DataSource1.MoveTo(DataView1.View.Rows.Selection[i])
DataView1.MoveTo(DataView1.View.Rows.Selection[i])
DataView1.View.Rows.Remove(DataView1.View.Rows.Selection[i])
' DataView1.Remove()
NEXT

DataView1.Save
DataView1.Update
' DataSource1.Remove()

DataSource1.Save()
DataSource1.Update
Affich()

END

Normalement pas besoin d'une boucle puisque toutes les lignes (rows) sélectionnées devraient être détruites mais il ne se passe rien.
Le problème vient de la mise à jour de l'index qui provoque une erreur puisque quand efface des lignes le "Count" n'est plus bon et l'index change.

1
2
PRINT DataView1.Remove()
PRINT DataView1.Index

Les réponses sont False et le bon numéro de ligne quand je ne sélectionne qu'une ligne mais la mise à jour de la base ni du DataView ne se fait.

Système d'exploitation : KDE neon 6.0.2 ~ Version Gambas : 3.19.90
valaquarus#4 Posté le 15/4/2024 à 16:08:53
-- Unus Ex Altera --Bug confirmé :

Confirmed with 3.19.1.

It doesn't work with single selection mode either. With DataView.Editable = False, it just silently fails (ie. it does not
return True). With .Editable set to True, I get, "Unable to delete record\n Null object".


[System]
Gambas=3.19.1 38fb2444 (stable)

Je passe en résolu en attendant un correctif de Benoît.
Système d'exploitation : KDE neon 6.0.2 ~ Version Gambas : 3.19.90
linuxos#5 Posté le 16/4/2024 à 03:32:39
Un peu de sel, de poivre et la crevette sera... Oui j'ai vu passé ton email a ce sujet.
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
valaquarus#6 Posté le 19/4/2024 à 07:22:53
-- Unus Ex Altera --Bonjour Linuxos,
juste pour un retour d'info, je confirme que Benoît à corrigé le souci dans la dernière version développement. En plaçant, simplement la propriété "Editable" à True, DataView1.Remove() fonctionne correctement comme énoncé dans la documentation ce qui n'était pas le cas, auparavant.
Système d'exploitation : KDE neon 6.0.2 ~ Version Gambas : 3.19.90
1