23. september 2011 - 14:26Der er
13 kommentarer og 1 løsning
DBgrid Ændre 0 til false og 1 til true
Jeg henter nogle værdier ud fra en sql-database og placerer dem i en DBGrid. Under feltet Client henter den 0 eller 1. Jeg vil gerne have værdierne Ja eller Nej til at stå i stedet for. Et andet felt giver også 0 eller 1 og her vil jeg gerne have Avanceret eller Standard til at stå i grid'en. Er det muligt at oprettet et filter, som kan skifte databaseværdierne ud i grid'en?
Til Martin Jeg bestemmer selv min SQL forespørgsel. Kunne du give et eksempel på en sql sætning der henter en værdi for client og ændrer den til noget andet, før den skrives i DBGrid'en. Fx. Hvis Client har vædien 1 skal der i DBGrid'en skrives "Advanced"
Sådan ser min løsning ud: Select Name, SiteCode, CASE WHEN IsClient = 1 THEN 'Ja' WHEN IsClient = 0 THEN 'Nej' ELSE 'N/A' END IsClient, IsApproved, IsAssigned, ClientType, IsObsolete, IsActive from dbo._RES_COLL_P0100097 ORDER BY "name"
Til kloge Vil du venligst vedlægge et eksempel. Min løsning fungerer fint, men hvis OnGetText/OnSetText er State of the Art, vil jeg da hellere bruge det.
procedure TForm1.Table1Field1GetText(Sender: TField; var Text: String; DisplayText: Boolean); begin case Sender.AsInteger of 0 : Text := 'False'; 1 : Text := 'True'; end; end;
Tror nu stadig mest på Calculated fields, så er det adskilt fra de originale fields og du har stadig mulighed for at tilgå de originale fields med værdien 0 eller 1. Men hvis du ikke bruger TTable har du måske ikke den mulighed.
Calculated fields er en udmærket ting, men OnGetText er simpelthen beregnet til det omtalte formål. Man kan stadig tilgå feltet "uoversat" med AsInteger, AsString etc det er kun Text property'en, som går via OnGetText
Jeg har på min form flg. komponenter: ADOConnection ADOQuery Datasource DBGrid og kan ikke finde en event OnGetText. Jeg skal måske lige indføje, at jeg bruger Delphi 7 Har også Delphi 2007, men er aldrig rigtig kommet i gang med at bruge den. Er DBGrid'en der skal udskiftes om med hvad?
Hej Kloge Det virker fortræffeligt, men det gjorde min løsning også. Jeg har ikke nok indblik i Delphi og SQL til at kunne vurdere, hvilken løsning, der kræver færrest resurser. Jeg arbejder kun med små 10.000 poster, så det er ikke det store problem. Det er mere af nysgerrighed jeg spørger. Så hvis én eller anden kan redegøre for forskellen, ville det være interessant.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.