Results 1 to 6 of 6

Thread: Hoe toon ik alleen de tijd in een DataGrid

  1. #1

    Hoe toon ik alleen de tijd in een DataGrid

    Programma Delphi 2006 prof. voor DotNet.

    In de SQLserver heb ik in een tabel een kolom voor de tijd; datatype 'DateTime'.
    In die kolom wordt de tijd ingevuld als: hh:mm:ss.

    In mijn 'Windows Forms Application' gebruik ik de componenten zoals genoemd op tabblad Data Components, en DataGrid van tabblad Data Controls, van het Tool Palette.

    In de DataGrid wordt de kolom voor de tijd, afgebeeld met datum en tijd, bijv. als volgt: 30-12-1899 12:01:10.
    Ik wil echter alleen de tijd zien, dus: 12:01:10.
    Hoe krijg ik dit voor elkaar?

    Hetzelfde probleem (zie 23 mei 2006) had ik met VCL voor DotNet. Daarvoor kreeg ik de goed werkende oplossing:
    "Voeg aan je TAdoDataSet persistent fields toe. Selecteer je veld van je datum/tijd die je wilt wijzigen en ga naar de events.
    Je hebt hier een OnGetText en OnSetText event."

    Voor de WinForms-situatie heb ik het opgelost in de SQL-string, als volgt:
    CommStr2 = 'SELECT DATUM, '+
    'CAST(DatePart(hour, TIJD) AS VarChar(2)) + '':'' + '+
    'CAST(DatePart(minute, TIJD) AS VarChar(2)) + '':'' + '+
    'CAST(DatePart(second, TIJD) AS VarChar(2)) AS STARTTIJD, '+
    'CAST(DatePart(hour, DUUR) AS VarChar(2)) + '':'' + '+
    'CAST(DatePart(minute, DUUR) AS VarChar(2)) + '':'' + '+
    'CAST(DatePart(second, DUUR) AS VarChar(2)) AS SPREEKTIJD, '+
    'bedrag, gekozennr '+
    'FROM BEL1601 ORDER BY DATUM';
    Dit vind ik echter niet fraai. Temeer omdat deze string nog niet af is. Er moet nog iets in zodat hour, minute en second altijd met twee tekens worden getoond. Dus bijv. 08:13: 02 en niet 8:13:2.

    Ik heb gezocht naar een oplossing naar analogie van die voor VCl voor DotNet. Maar nog niet gevonden. Wie kan mij een oplossing geven.

  2. #2
    In win32 heb je de mogelijkheid om met Persistant Fields te werken waarbij je het format opgeeft in de OnGetText event.
    Ik neem aan dat in .NET zo'n zelfde mogelijkeid aanwezig is.
    De beste manier om te leren is door fouten te maken.
    80 procent van alle leugens die jij en ik vertellen blijft onopgemerkt

  3. #3
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Voeg een DataGridTableStyle toe aan de TableStyles property van je DataGrid.
    Voeg de nodige DataGridColumnStyles toe aan de GridColumnStyles property van de DataGridTableStyle. Zet de property Format van de juiste DataGridColumnStyle op de gewenste waarde (b.v. HH:mm:ss).
    All methodologies are based on fear. -- Kent Beck.

  4. #4
    In DataGridColumnStyle Class vind ik geen property met de naam Format. Daarvoor zoek in de "Help".

  5. #5
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    DataGridColumnStyle is een abstracte klasse. Je moet een afgeleide hebben, in jouw geval de DataGridTextBoxColumn klasse, die heeft wel de property Format.
    All methodologies are based on fear. -- Kent Beck.

  6. #6
    Dirk, je hebt me in het juiste doolhof gezet. Het koste me nogal wat tijd, maar heb vlgs mij de juiste uitgang gevonden. Nu werkt het zoals ik het wil.
    Ook ontdekte ik dat als je voor een kolom een GridColumnStyles aanmaakt, je dat voor alle kolommen moet doen.
    Bedankt voor de hulp.

Thread Information

Users Browsing this Thread

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

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
  •