Results 1 to 12 of 12

Thread: TDBCheckBox default waarde

  1. #1
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127

    TDBCheckBox default waarde

    Goedemorgen / nacht,

    Hierbij een vraag omtrend een dbaware checkbox.

    Stel ik heb in een app, een TDBCheckbox staan, deze is netje via de datasource
    en field property aan de dataset gekoppeld.

    Als ik nu via een button een insert op mijn dataset doe, dan kan ik mijn huidige
    TDBEdit's invullen en na een druk op de button waar de post onderstaat wordt alles
    netjes de tabel in gezet, nu is het zo dat ik na de insert iets doe in de
    trant van
    Code:
     DBCheckbox.Checked := False;
    dit om er voor te zorgen dat
    deze niet gegrayed blijft staan.
    Op het moment dat de checkbox niet wordt aangevinkt wordt deze al NULL
    waarde in de tabel gezet dit is niet de bedoeling, iemand suggetie's om dit te
    voorkomen cq. tegen te gaan.

    PS. ik maak wel gebruik van een OnGetText trigger, zie hieronder.
    Code:
    procedure TDM1.TabelVeldNaamGetText(Sender: TField;
      var Text: string; DisplayText: Boolean);
    begin
      if not DM1.Tabel.IsEmpty then
        begin
          if Sender.Value = 'True' then Text := 'Ja'
          else
            if Sender.Value = 'False' then Text := 'Nee'
            else
              if Sender.Value = null then Text := '???';
        end;
    end;
    Alvast bedankt,

    Richard
    RLD

  2. #2
    Member
    Join Date
    Feb 2002
    Location
    Netherlands
    Posts
    28
    Ik hetzelfde probleem aan de hand gehad en als volgt opgelost :

    In het event OnNewRecord van de Tabel geef ik de DataField, die is gekoppeld aan de DBCheckbox een beginwaarde(default) op de volgende manier

    procedure TDataModule.TabelNewRecord(DataSet: TDataSet);
    begin
    DataSet.FieldByName('Jouw FieldName').AsBoolean := true; // of False
    end

    Het is maar een idee,

    Doei ....... Marco

  3. #3
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127

    Talking

    Marco,

    Bedankt voor het meedenken zo'n soort oplossing had ik inderdaad ook in
    gedachte eigenlijk als laatste redmiddel.
    Het zou uiteraard ook nog in de BeforePost kunnen.
    Ik wacht het nog even af... en zo niets dan gebruiken we em.

    Richard
    RLD

  4. #4
    De oplossing van Marco (OnNewRecord event) is geen laatste redmiddel, maar naar mijn mening gewoon de plaats waar je dit hoort te doen. Als je default waardes wilt zetten v????r je gebruiker de nieuwe regel te zien krijgt die je dat in het OnNewRecord event, als je je gebruiker eerst de kans wil geven iets te wijzigen en daarna alsnog zelf waarden wilt invullen doe je dat in het BeforePost event.

    Als de default waarde een eenvoudige expressie is vul je deze trouwens gewoon bij de DefaultExpression property van het veld in.
    Marcel

  5. #5
    TDelphiDeveloper Baldo's Avatar
    Join Date
    Apr 2002
    Location
    Hellevoetsluis
    Posts
    498
    Nog een reden om OnNewRecord te gebruiken in plaats van andere events: de Modified van de dataset wordt niet op True gezet. Zo kun je ondanks dat je zelf een standaardwaarde in een veld hebt gezet toch nog controleren of de gebruiker iets aan het record gewijzigd heeft.
    Why is it that every time I think I'm holding all the cards, it turns out we're playing chess?
    Download Re-Depend, onmisbaar als je met packages build

  6. #6
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127
    Oke,

    Ik heb het nu inderdaad in het OnNewRecord event gedaan, dit is naar mijn
    inziens inderdaad ook beter als in de BeforePost dit alleen al om het simpele
    feit dat ik dan geen controle hoef uit te voeren of het veld inderdaad leeg is, tevens
    correspondeert dit netjes met het GetText event.

    Om nog even terug te komen op de opmerking van Marcel, wat de Default Expression
    aangaat. Dit heb ik inderdaad ook geprobeert alleen werkt het bij mij niet.
    ik heb diverse expressies ingevult zoals bv: -1, 0, False, 'False' maar hellaas mocht
    niets baten.

    Evengoed bedankt heren.

    Richard
    RLD

  7. #7
    De default expression is een SQL expression. Je zult even moeten zoeken hoe je database een true/false opslaat, die moet je dan tussen quotes in de expression zetten. Dus bijvoorbeeld '1', 'T', of 'TRUE'.
    Marcel

  8. #8
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127
    Nou schiet mij maar in een kadoo'tje ik begrijp het nu even niet meer.

    De data die in de tabel staat is gewoon een True of False, ik heb het volgende
    in de defaultexpression geprobeert en niets werkt
    -1, '-1'
    0, '0'
    1, '1'
    T, 'T'
    F, 'F'
    False, 'False'
    True, 'True'

    Zou het heel mischien er mee te maken kunnen hebben dat mijn DB geen SQL onder-
    steund ? zou wel vreemd zijn dat ik dan evengoed deze property te zien krijg.

    Richard
    RLD

  9. #9
    Ik denk het zelf niet, maar ik weet niet waar de implementatie van die DefaultExpression zit, in de standaard of in de third party. Als je bij een stringveld eens 'test' invuld, wordt dat dan overgenomen?
    Marcel

  10. #10
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127
    mmm, nog vreemder.

    Na dit inderdaad op een TStringfield te hebben uitgevoerd wordt er tijdens het
    posten van mijn record een error geraised.
    "EffDatabaseError with message FlashFiler: A user transaction is allready in progress
    [$2810/10256']"

    Ik zal eens kijken of ik deze melding eventueel kan achterhalen.
    Nader bericht volgt nog.

    Richard
    RLD

  11. #11
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127
    Oke na even een volledige paniek situatie heeft de bovenstaande melding er
    helemaal niets mee te maken.
    (dubbele transactie's en posts etc etc.)

    Na dit inderdaad zoals marcel 'vroeg' te hebben uitgeprobeert is dit nog steeds
    zonder resultaat.

    PS. de impementatie van die Defaultexpression zit naar mijn inziens in de DB unit
    van Borland zelf.

    Richard
    RLD

  12. #12
    Member PieterB's Avatar
    Join Date
    Oct 2002
    Location
    Made (N.Br.)
    Posts
    63
    Richard,

    'k weet, t'is ff geleden, maar ben je hier ooit nog wel eens uitgekomen? 'k Zit namelijk met hetzelfde probleem ...

    Pieter
    een wijs man is niet hij die veel weet, maar hij die beseft dat hij nog veel kan leren

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 2
    Last Post: 23-Jun-04, 23:42
  2. Replies: 6
    Last Post: 22-Feb-04, 15:12
  3. default waarde boolean data type
    By fuchsia in forum Algemeen
    Replies: 9
    Last Post: 18-Dec-03, 00:24
  4. Default waarde van Properties
    By jchompff in forum Algemeen
    Replies: 5
    Last Post: 05-Aug-03, 14:37

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •