Comment définir une valeur par defaut dans une cellule d'un DbGrid, lors d'un nouveau enrégistrement ( click sur le "+" du dbNavigator), j'aimerais qu'une colonne donnée ait deja une valeur. Merci.
Comment définir une valeur par defaut dans une cellule d'un DbGrid, lors d'un nouveau enrégistrement ( click sur le "+" du dbNavigator), j'aimerais qu'une colonne donnée ait deja une valeur. Merci.
salut
c'est dans le dataset sous jacent que la valeur doit être inscrite le dbgrid ne fait que de l'affichage
Les colones ou les cellules ne possedent pas de dataset dans propriétés. La meme question est posée précedement et la réponse etait d'implémenter une valeur dans l'evenement OnNewRecord, mais je ne sais pas comment.
Un peu de sérieux, j'ai hésité à mettre unà votre dernier post.
Un dbgrid a bien un dataset (une table ou une query) associé, or une table ou une query a un évènement onnewrecord donc, avec ces informations vous devez pouvoir faire vos initialisations sans soucis
Les colones d'un dbgrid ne possedent pas de dataset dans leurs propriétés. dans dbgrid et datasource dataset existe. Et ma question est comment implémenter la valeur par defaut.
Vous avez TField.DefaultExpression pour une valeur plutôt SQL, je ne crois pas qu'elle s'affiche, elle doit être utilisé lors du Apply Updates \ Commit
Avec l'IDE, dans le DataSet lié au DataSource qui est lié au DbGrid, il y un OnNewRecord, comme vous l'avez vu, suffit de faire un double-clic, cela va créer automatiquement un gestionnaire d'évènement et le code est ensuite très simple :
Mais ce code est tellement simple que je suppose qu'il y a un problème plus complexe dans votre question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TForm1.Table1NewRecord(DataSet: TDataSet); begin DataSet.FieldByName('ChampChaine').AsString := 'toto'; DataSet.FieldByName('ChampDate').AsDateTime := Date(); end;
Je suppose que vous souhaitez utiliser dynamiquement les valeurs par défaut du SGBD, selon votre bibliothèque il faudra lire les méta-data manuellement si vous souhaitez les voir par défaut.
Pour vous aider à récupérer les valeurs par défaut via un équivalent d'un DESCRIBE , USER_TAB_COLUMNS en ORACLE, INFORMATION_SCHEMA.COLUMNS en SQL Server ... il faut nous préciser votre SGBD
A savoir qu'un champ laissé à NULL sera remplacé par une valeur par défaut par le SGBD lors du INSERT sans qu'il soit nécessaire de les afficher.
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Partager