Bonjour
J'utilises la Grid de devexpress, quand je marque plulsieurs ligne pour delete, ca marche
mais s'il y a un regroupement ca marche plus, il ne passe plus dans mon for i
je suis obligé d'interdire la suppression si regroupement, et c'est pas normal
j ai mis mon code : ou est le probleme
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 procedure TFRepertoire.Supprimerlafiche1Click(Sender: TObject); var QueryDeleteIndividu: TIBQuery; sMessage: string; i: integer; begin if (dxDBGridNom.SelectedCount > 0) and (dxDBGridNom.GroupColumnCount > 0) then begin Showmessage('Suppression de fiches interdite, car il y a un regroupement. Enlevez d''abord le regroupement'); exit; end; if dxDBGridNom.SelectedCount > 1 then sMessage := 'Confirmez-vous la suppression des ' + intToStr(dxDBGridNom.SelectedCount) + ' fiches individu ?' else sMessage := 'Confirmez-vous la suppression de cette fiche individu ?'; if MyMessageDlg(sMessage, mtWarning, [mbYes, mbNo], 0) = mrYes then begin try screen.Cursor := crHourglass; for i := 0 to dxDBGridNom.Count - 1 do if dxDBGridNom.items[i].Selected = true then begin //showmessage(dxDBGridNom.Items[i].Values[dxDBPrenom.Index]); //.FocusedNode.Strings[dxDBPrenom.Index],); Application.ProcessMessages; QueryDeleteIndividu := TIBQuery.Create(Self); QueryDeleteIndividu.Close; QueryDeleteIndividu.DataBase := dm.ibd_BASE; QueryDeleteIndividu.Transaction := dm.IBT_BASE; QueryDeleteIndividu.SQL.Clear; QueryDeleteIndividu.SQL.Add('delete from individu where CLE_FICHE=:CLE_FICHE'); QueryDeleteIndividu.ParamByName('CLE_FICHE').AsInteger := StrToInt(dxDBGridNom.Items[i].Values[dxDBCleFiche.Index]); QueryDeleteIndividu.ExecSQL; QueryDeleteIndividu.Close; FreeAndNil(QueryDeleteIndividu); end; dm.IBT_BASE.CommitRetaining; Application.ProcessMessages; InitOngletsActifs; doRefreshRepertoire; FMain.doCompteIndi; screen.Cursor := crDefault; except end; end; dxDBGridNom.ClearSelection; end;
Partager