newgame
Messages postés52Date d'inscriptionlundi 2 février 2009StatutMembreDernière intervention24 juillet 2013
-
17 juil. 2013 à 13:03
newgame
Messages postés52Date d'inscriptionlundi 2 février 2009StatutMembreDernière intervention24 juillet 2013
-
24 juil. 2013 à 15:16
Bonjour,
Je suis en train de créer une application avec 2 dbgrid
Quand on sélectionne une ligne dans le premier dbgrid le 2eme dbgrid (relation entre les deux tables via masterfield et mastertable)
Maintenant je veux compter les lignes du 2eme dbgrid
Alors si je fais un recordcount il m'affiche le nombre de ligne de la table entière mais pas ceux affiché seulement dans le dbgrid
Que faire dans ce cas????
svp aidez moi!
merci d'avance
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 18 juil. 2013 à 15:11
Bonjour,
Regarde l'exemple que j'ai crée dans un de mes sources.
si tu ajoutes dans le OnDataChange :
[code=pas]
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if Sender nil then exit; {sender nil pas de changement d'enregistrement !}
if Field <> nil then exit; {Field = Nil pas de champ donc on sort]
if Self = nil then exit; {la forme n'est pas créée alors on sort}
Edit1.Text := ''; {on vide la zone de texte}
if (Query1SaleDate.Text <> '') and (Query1ShipDate.Text <> '') then {on transtype les dates en texte en DateTime}
if StrToDateTime(Query1SaleDate.Text) < {afin de pouvoir les comparer}
StrToDateTime(Query1ShipDate.Text) then
Edit1.Text := 'SaleDate Inférieure à Shipdate'; {on affiche un message dans Edit1 si le test est vrai}
// ajout
if not query2.active then exit;
ShowMessage('table2' + ' ' + IntToStr(Query2.RecordCount));
end;
/code
ces deux lignes, tu peux constater que le showmessage affiche
le nombre d'enregistrements filtrés de la table 2 et non le total
de toutes les données de cette table.
beckerich
Messages postés302Date d'inscriptionjeudi 29 septembre 2005StatutMembreDernière intervention17 septembre 20132 19 juil. 2013 à 08:39
Bonjour,
@cantador
if Self = nil then exit; {la forme n'est pas créée alors on sort}
comment cela peut-il être possible ?
Une méthode d'objet ne peut pas être appelée si l'instance de cet objet est nul, non ?
ou je n'ai rien compris ;-))
(enfin, cela ne bloque en rien le code).
newgame
Messages postés52Date d'inscriptionlundi 2 février 2009StatutMembreDernière intervention24 juillet 2013 22 juil. 2013 à 10:06
Re,
@ cantador
Bon j'ai plus au moins compris ton code et ce que je peux en résumer c'est que pour connaitre le nombre de lignes d'un DBGrid qui affiche le contenu d'une table lié avec une autre il faut faire un count sur le résultat d'une requête.
c'est ça
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 24 juil. 2013 à 11:39
@newgame:
tu as noté comme moi
le query2.Recordcount donne le bon chiffre..
@beckerich
if Sender = nil then exit;
oui, je sais cette ligne fait couler beaucoup d'encre et pourtant
elle est nécessaire dans un cas bien particulier mais dont je ne me souviens pas !
mais elle ne gène pas..