| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Til / fra en Grid Fra : Ukendt | 
  Dato :  20-04-06 20:09 |  
  |   
            Hej.
 
 Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til en 
 DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en alm. 
 stringgrid.)
 
 Hvordan ser processen ud den modsatte vej? 
 
 
  
            
             |   |   
            
        
 
            
         
           Harald (20-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  20-04-06 20:41 |  
  |   
            "Vinther" <.-.> skrev i en meddelelse 
 news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
 > Hej.
 >
 > Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til en 
 > DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en alm. 
 > stringgrid.)
 
 Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også 
 oprettes at runtime eller gør du det at design time?
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
           Ukendt (20-04-2006) 
         
	
            | Kommentar Fra : Ukendt | 
  Dato :  20-04-06 21:40 |  
  |   
            "Harald" <nomail@noname.dk> skrev i en meddelelse 
 news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
 > "Vinther" <.-.> skrev i en meddelelse 
 > news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
 >> Hej.
 >>
 >> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til 
 >> en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en 
 >> alm. stringgrid.)
 >
 > Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også 
 > oprettes at runtime eller gør du det at design time?
 
 Det skal de som udgangspunkt i designtime, men man kan senere hen komme ud 
 for, at det skal udvides.
 
 TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to led) 
 kan det så også lade sig gøre i TListView eller skal man over i en Grid 
 
 
  
            
             |   |   
            
        
 
            
         
            Harald (20-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  20-04-06 21:50 |  
  |  
 
            "Vinther" <.-.> skrev i en meddelelse 
 news:4447f1a9$0$8068$ba624c82@nntp02.dk.telia.net...
 > "Harald" <nomail@noname.dk> skrev i en meddelelse 
 > news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
 >> "Vinther" <.-.> skrev i en meddelelse 
 >> news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
 >>> Hej.
 >>>
 >>> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til 
 >>> en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en 
 >>> alm. stringgrid.)
 >>
 >> Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også 
 >> oprettes at runtime eller gør du det at design time?
 >
 > Det skal de som udgangspunkt i designtime, men man kan senere hen komme ud 
 > for, at det skal udvides.
 >
 > TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to 
 > led) kan det så også lade sig gøre i TListView eller skal man over i en 
 > Grid
 Du sætte ViewStyle til vsReport så har du det du ønsker, højre klik så på 
 ListViewen og vælg Columns Editor for at oprette columns. F.eks. er dette 
 program er lavet med en ListView.
 http://home.worldonline.dk/kroning/nrj.jpg
/HK
            
              |   |   
            
        
 
            
         
            Harald (20-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  20-04-06 22:01 |  
  |   
            "Vinther" <.-.> skrev i en meddelelse 
 news:4447f1a9$0$8068$ba624c82@nntp02.dk.telia.net...
 > "Harald" <nomail@noname.dk> skrev i en meddelelse 
 > news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
 >> "Vinther" <.-.> skrev i en meddelelse 
 >> news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
 >>> Hej.
 >>>
 >>> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til 
 >>> en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en 
 >>> alm. stringgrid.)
 >>
 >> Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også 
 >> oprettes at runtime eller gør du det at design time?
 >
 > Det skal de som udgangspunkt i designtime, men man kan senere hen komme ud 
 > for, at det skal udvides.
 >
 > TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to 
 > led) kan det så også lade sig gøre i TListView eller skal man over i en 
 > Grid
 
 Jeg har lavet denne procedure som jeg bruger når data bare skal fra 
 ClientDataSet til ListView uden nogen form for formatering.
 
 procedure FillListView(View : TListView;DataSet : TClientDataSet;Fields : 
 array of string);
 var
  i : integer;
 begin
  View.Clear;
   View.Update;
   View.Items.BeginUpdate;
  DataSet.First;
   while not DataSet.Eof do
   begin
    with View.Items.Add do
     begin
      Caption:=DataSet.FieldByName(Fields[0]).AsString;
     for i:=1 to Length(Fields)-1 do
        SubItems.Add(DataSet.FieldByName(Fields[i]).AsString);
     end;
     DataSet.Next;
   end;
   View.Items.EndUpdate;
 end;
 -------------
 
 Du kan så kalde den sådan hvis du har et ListView der hedder ListView og en 
 TClientDataSet der hedder ClientDataSet som indeholder f.eks. felterne 
 Navn,Adrese,By:
 
 FillListView(ListView , ClientDataSet , ['Navn','Adresse','By']);
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
             Ukendt (23-04-2006) 
         
	
            | Kommentar Fra : Ukendt | 
  Dato :  23-04-06 15:21 |  
  |   
            Hej Harald.
 
 "Harald" <nomail@noname.dk> skrev i en meddelelse 
 news:4447f689$0$84033$edfadb0f@dtext01.news.tele.dk...
 > "Vinther" <.-.> skrev i en meddelelse 
 > news:4447f1a9$0$8068$ba624c82@nntp02.dk.telia.net...
 >> "Harald" <nomail@noname.dk> skrev i en meddelelse 
 >> news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
 >>> "Vinther" <.-.> skrev i en meddelelse 
 >>> news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
 >>>> Hej.
 >>>>
 >>>> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet til 
 >>>> en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men en 
 >>>> alm. stringgrid.)
 >>>
 >>> Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også 
 >>> oprettes at runtime eller gør du det at design time?
 >>
 >> Det skal de som udgangspunkt i designtime, men man kan senere hen komme 
 >> ud for, at det skal udvides.
 >>
 >> TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to 
 >> led) kan det så også lade sig gøre i TListView eller skal man over i en 
 >> Grid
 >
 > Jeg har lavet denne procedure som jeg bruger når data bare skal fra 
 > ClientDataSet til ListView uden nogen form for formatering.
 >
 > procedure FillListView(View : TListView;DataSet : TClientDataSet;Fields : 
 > array of string);
 > var
 > i : integer;
 > begin
 > View.Clear;
 >  View.Update;
 >  View.Items.BeginUpdate;
 > DataSet.First;
 >  while not DataSet.Eof do
 >  begin
 >   with View.Items.Add do
 >    begin
 >     Caption:=DataSet.FieldByName(Fields[0]).AsString;
 >    for i:=1 to Length(Fields)-1 do
 >       SubItems.Add(DataSet.FieldByName(Fields[i]).AsString);
 >    end;
 >    DataSet.Next;
 >  end;
 >  View.Items.EndUpdate;
 > end;
 > -------------
 >
 > Du kan så kalde den sådan hvis du har et ListView der hedder ListView og 
 > en TClientDataSet der hedder ClientDataSet som indeholder f.eks. felterne 
 > Navn,Adrese,By:
 >
 > FillListView(ListView , ClientDataSet , ['Navn','Adresse','By']);
 
 Det virker OK.
 
 Hvad med den modsatte vej.
 
 Jeg har prøvet at ændre noget, men det trykkes ikke igennem over i DB'en 
 
 
  
            
             |   |   
            
        
 
            
         
              Harald (23-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  23-04-06 16:58 |  
  |   
            "Vinther" <.-.> skrev i en meddelelse 
 news:444b8d62$0$11172$ba624c82@nntp02.dk.telia.net...
 > Hej Harald.
 >
 > "Harald" <nomail@noname.dk> skrev i en meddelelse 
 > news:4447f689$0$84033$edfadb0f@dtext01.news.tele.dk...
 >> "Vinther" <.-.> skrev i en meddelelse 
 >> news:4447f1a9$0$8068$ba624c82@nntp02.dk.telia.net...
 >>> "Harald" <nomail@noname.dk> skrev i en meddelelse 
 >>> news:4447e3e0$0$84027$edfadb0f@dtext01.news.tele.dk...
 >>>> "Vinther" <.-.> skrev i en meddelelse 
 >>>> news:4447dc3a$0$11170$ba624c82@nntp02.dk.telia.net...
 >>>>> Hej.
 >>>>>
 >>>>> Hvordan er det lige, at du får puttet indhold fra en TClientDataSet 
 >>>>> til en DBGrid manuelt (eller så er det jo egentlig ikke en DBGrid, men 
 >>>>> en alm. stringgrid.)
 >>>>
 >>>> Jeg vil anbefale at bruge TListView i stedet. Skal colonne navne også 
 >>>> oprettes at runtime eller gør du det at design time?
 >>>
 >>> Det skal de som udgangspunkt i designtime, men man kan senere hen komme 
 >>> ud for, at det skal udvides.
 >>>
 >>> TListView... Hvis man ønsker at arbejde med celler (dvs. tabeller på to 
 >>> led) kan det så også lade sig gøre i TListView eller skal man over i en 
 >>> Grid
 >>
 >> Jeg har lavet denne procedure som jeg bruger når data bare skal fra 
 >> ClientDataSet til ListView uden nogen form for formatering.
 >>
 >> procedure FillListView(View : TListView;DataSet : TClientDataSet;Fields : 
 >> array of string);
 >> var
 >> i : integer;
 >> begin
 >> View.Clear;
 >>  View.Update;
 >>  View.Items.BeginUpdate;
 >> DataSet.First;
 >>  while not DataSet.Eof do
 >>  begin
 >>   with View.Items.Add do
 >>    begin
 >>     Caption:=DataSet.FieldByName(Fields[0]).AsString;
 >>    for i:=1 to Length(Fields)-1 do
 >>       SubItems.Add(DataSet.FieldByName(Fields[i]).AsString);
 >>    end;
 >>    DataSet.Next;
 >>  end;
 >>  View.Items.EndUpdate;
 >> end;
 >> -------------
 >>
 >> Du kan så kalde den sådan hvis du har et ListView der hedder ListView og 
 >> en TClientDataSet der hedder ClientDataSet som indeholder f.eks. felterne 
 >> Navn,Adrese,By:
 >>
 >> FillListView(ListView , ClientDataSet , ['Navn','Adresse','By']);
 >
 > Det virker OK.
 >
 > Hvad med den modsatte vej.
 >
 > Jeg har prøvet at ændre noget, men det trykkes ikke igennem over i DB'en
 
 Hvis du skal gemme noget i ClientDataSet så skal det foregå med:
 Edit; Insert; eller Append;
 sæt værdierne..
 Post;
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
           Vinther (21-04-2006) 
         
	
            | Kommentar Fra : Vinther | 
  Dato :  21-04-06 07:54 |  
  |   
            Hej Harald.
 
 Super.
 
 Men kan man også rette / editere / udfylde i en TListView? (Jeg er
 nemlig ikke hjemme til at kunne afprøve det nu)
 
 Med mit spørgsmål mener jeg, om det er muligt ligesom i en Grid at
 
 - markere en linie og rette i indholdet af et felt eller flere
 - dobbeltklikke på en linie og åbne en form for detail database
 (ClientDataSet)
 - osv
 
  
            
             |   |   
            
        
 
            
         
           Harald (21-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  21-04-06 08:13 |  
  |   
            "Vinther" <2584431m004@stofanet.dk> skrev i en meddelelse 
 news:1145602455.392965.85730@g10g2000cwb.googlegroups.com...
 Hej Harald.
 
 Super.
 
 Men kan man også rette / editere / udfylde i en TListView? (Jeg er
 nemlig ikke hjemme til at kunne afprøve det nu)
 
 Med mit spørgsmål mener jeg, om det er muligt ligesom i en Grid at
 
 - markere en linie og rette i indholdet af et felt eller flere
 - dobbeltklikke på en linie og åbne en form for detail database
 (ClientDataSet)
 - osv
 
 ----------------
 
 Nej det kan man ikke.
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
           Vinther (21-04-2006) 
         
	
            | Kommentar Fra : Vinther | 
  Dato :  21-04-06 08:19 |  
  |   
            Æv.
 
 Det tager - i mine øjne - en del af værdien og muligheden fra
 TListView'en og gør den kun mulig til brug for præsentation af data,
 men ikke til at bearbejde data, hvilket i mine øjne må være
 grunddelen i et program.
 
  
            
             |   |   
            
        
 
            
         
           Harald (21-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  21-04-06 09:39 |  
  |   
            "Vinther" <2584431m004@stofanet.dk> skrev i en meddelelse 
 news:1145603932.651688.215600@g10g2000cwb.googlegroups.com...
 Æv.
 
 Det tager - i mine øjne - en del af værdien og muligheden fra
 TListView'en og gør den kun mulig til brug for præsentation af data,
 men ikke til at bearbejde data, hvilket i mine øjne må være
 grunddelen i et program.
 
 ----------------
 
 Ja det kommer så an på hvordan man laver sit program mht. at kunne bearbejde 
 data, jeg bruger kun ListView til at vise data og lader så brugerne kunne 
 bearbejde data på andre måder end at gøre det direkte i listview´en. Jeg har 
 aldrig syntes at det kunne blive særlig pænt og brugervenligt at skulle 
 redigere direkte i en ListView eller ligende lister.
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
           Vinther (21-04-2006) 
         
	
            | Kommentar Fra : Vinther | 
  Dato :  21-04-06 09:45 |  
  |   
            Jeg må erklære mig uenig.
 
 En Grid (eller Listview) giver overblik, hvis man skal kunne se og
 redigere i flere poster og felter.
 
 Fx et bogføringsprogram eller ordrelinie osv. Her vil det være et
 must at kunne bearbejde i dataene på en listeform. Igen er det min
 mening.
 
  
            
             |   |   
            
        
 
            
         
           Harald (21-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  21-04-06 15:35 |  
  |  
 
            "Vinther" <2584431m004@stofanet.dk> skrev i en meddelelse 
 news:1145609122.355233.203250@i39g2000cwa.googlegroups.com...
 Jeg må erklære mig uenig.
 En Grid (eller Listview) giver overblik, hvis man skal kunne se og
 redigere i flere poster og felter.
 Fx et bogføringsprogram eller ordrelinie osv. Her vil det være et
 must at kunne bearbejde i dataene på en listeform. Igen er det min
 mening.
 --------------------------
 Ja sådan har vi jo så forskellige meninger :). Jeg har faktisk lavet et 
 bogføringsprogram, du kan se et billede af kassekladden her i baggrunden:
 http://www.kroning.dk/grafik/finans.jpg
det er et gammelt program så gridden i baggrunden er ikke en ListView med 
 faktisk en DBGrid, men alligevel valgte jeg dengang jeg lavede programmet at 
 man ikke skulle kunne redigere direkte i grid´et men i stedet markere en 
 linie og derefter rette i linien for neden.
 /HK
            
              |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |