Avatar billede Slettet bruger
03. november 2005 - 23:20 Der er 22 kommentarer og
2 løsninger

load table to listview

hvordan indlæser man db data fra en table til en listview? jeg vil gerne kunne bruge sort som listview understøtter.

Jeg har prøvet at bruge forskellige db aware listview men der er et problem med dem når jeg bruger {$R WinXP.RES} så forsvinder tekten fra kolonne header. og header kan ikke ændres i farven kun den kedelige grå.
Avatar billede vallemanden Nybegynder
04. november 2005 - 09:53 #1
Function salg: string;
var
  Tempstr : String;
begin
  Form1.MySQLTable9.First;
  Form1.ListView4.Clear;
  Form1.ListView4.Items.BeginUpdate;
  While Not Form1.MySQLtable9.Eof do
  begin
    If (Form1.MySQLtable9.fieldByName('MainOrderType').AsInteger =2 ) then
    begin
    with Form1.ListView4.Items.Add do
    begin
      Caption:='';
      ImageIndex:=-1;
      Subitems.Add(Form1.MySQLtable9.fieldByName('Custnr').AsString+'-'+Form1.MySQLtable9.fieldByName('CustOrderNum').AsString);
      Subitems.Add(nav);
      if Form1.MySQLtable9.fieldByName('OfferDate').AsDateTime > date then Subitems.Add(Form1.MySQLtable9.fieldByName('OfferDate').AsString)
      else
      Subitems.Add'';
      end;
      Subitems.add(Tempstr);
      Data:=pointer(strtoint(Form1.MySQLtable9.fieldByName('MainOrdernum').AsString));
    end;
    end;
    Form1.MySQLtable9.Next;
  end;
  Form1.ListView4.Items.EndUpdate;
end;
Avatar billede Slettet bruger
04. november 2005 - 13:29 #2
virker det også uden brug af sql?
jeg har defineret 12 colonner i min listview, hvordan med rækkefølgen af de indlæste fields?
Avatar billede vallemanden Nybegynder
04. november 2005 - 16:24 #3
Ja det virker også uden sql

begin
  Form1.Table1.First;
  Form1.ListView1.Clear;
  Form1.ListView1.Items.BeginUpdate;
  While Not Form1.table1.Eof do
  begin
    with Form1.ListView4.Items.Add do
    begin
      Caption:=''; //første colonne
      ImageIndex:=-1;
      Subitems.Add(Form1.table1.fieldByName('xxxx').AsString; // anden collone
      Subitems.Add(xxxxx); // 3 collone
      ....
      Subitems.Add(xxxxx); // 11 collone
    end;
  Data:=pointer(strtoint(Form1.table1.fieldByName('index').AsString));
  end;
  Form1.table1.Next;
end;
Form1.ListView1.Items.EndUpdate;
end
Avatar billede vallemanden Nybegynder
04. november 2005 - 16:26 #4
i mit eks. er colone 1 tom den kan også indeholde data

Caption:=form1.fielsbyname('ggg').asstring;
Avatar billede Slettet bruger
04. november 2005 - 18:57 #5
får mange compiler fejl.

hvad er data:= pointer...... skal den ikke defineres

Listview1.clear ??
er det ikke Listview1.columns.Clear;
Avatar billede vallemanden Nybegynder
04. november 2005 - 19:23 #6
Lad mig se din kode..

Nej skal ikke defineres

Ja ListView1.Clear;

:-)

Hvilken delphi køre du med?
Avatar billede vallemanden Nybegynder
04. november 2005 - 19:25 #7
var str2 : string;
begin
str2:=inttostr(integer(ListView1.Selected.Data));
end;
Avatar billede Slettet bruger
04. november 2005 - 20:20 #8
delphi 5 interprise
Avatar billede vallemanden Nybegynder
04. november 2005 - 21:15 #9
lad mig se din kode
Avatar billede vallemanden Nybegynder
04. november 2005 - 21:24 #10
eller fortæl mig hvilke fejl du får of vis mig linien der er fejl i hvis du ikke vil vise mig det hele
Avatar billede Slettet bruger
04. november 2005 - 22:13 #11
fejl her på følgende:

ListView1.Clear;

undeclared identifier 'Clear'


Subitems.Add(table1.fieldByName('xxxx').AsString;

unit1.pas[42]']'expected but ';' found
Avatar billede vallemanden Nybegynder
04. november 2005 - 23:58 #12
øhh

skal bruge lidt mere af koden, hvor skriver du det? i en procedure eller i en function
Avatar billede Slettet bruger
05. november 2005 - 11:46 #13
har prøvet begge dele med samme fejlmelding
jeg har nu kun 1 fejl

Function LoadTable: string;
var
str2 : string;
begin
  Form1.Table1.First;
  Form1.ListView1.Columns.Clear;
  Form1.ListView1.Items.BeginUpdate;
  While Not Form1.table1.Eof do
  begin
    with Form1.ListView1.Items.Add do
    begin
      Caption:=''; //første colonne
      ImageIndex:=-1;
      Subitems.Add(Form1.table1.fieldByName('Navn').AsString; //<---fejl her
      Subitems.Add('Adr'); // 3 collone
      Subitems.Add('Tlf'); // 11 collone
    end;
str2:=inttostr(integer(Form1.ListView1.Selected.Data));
end;
Form1.table1.Next;
Form1.ListView1.Items.EndUpdate;
end;
Avatar billede Slettet bruger
05. november 2005 - 11:50 #14
fejlen er )hæ den mangler ss



Subitems.Add(Form1.table1.fieldByName('Navn').AsString);
Avatar billede Slettet bruger
05. november 2005 - 12:01 #15
nu er der ingen fejl men der bliver ikke indlæst data i listview
Avatar billede Slettet bruger
05. november 2005 - 12:07 #16
hmm får en accesviolation når jeg kører funktionen -

loadtable;
Avatar billede vallemanden Nybegynder
05. november 2005 - 15:15 #17
dit listview skal være sat op til vsReport i viewstyle
Avatar billede Slettet bruger
05. november 2005 - 16:39 #18
den er sat til vsreport
Avatar billede vallemanden Nybegynder
05. november 2005 - 22:32 #19
Function LoadTable: string;
var
str2 : string;
begin
  Form1.Table1.First;
  Form1.ListView1.Columns.Clear;
  Form1.ListView1.Items.BeginUpdate;
  While Not Form1.table1.Eof do
  begin
    with Form1.ListView1.Items.Add do
    begin
      Caption:=''; //første colonne
      ImageIndex:=-1;
      Subitems.Add(Form1.table1.fieldByName('Navn').AsString);
      Subitems.Add('Adr'); // 3 collone
      Subitems.Add('Tlf'); // 11 collone
    end;
  Data:=pointer(strtoint(Form1.table1.fieldByName('navn').AsString));
end;
Form1.table1.Next;
Form1.ListView1.Items.EndUpdate;
end;
Avatar billede Slettet bruger
06. november 2005 - 00:54 #20
Data:=pointer(strtoint(Form1.table1.fieldByName('navn').AsString)); ?? Data
Avatar billede vallemanden Nybegynder
06. november 2005 - 13:08 #21
hvad heddder dit index field i databasen?
Avatar billede vallemanden Nybegynder
06. november 2005 - 13:11 #22
Data:=pointer(strtoint(Form1.table1.fieldByName('navn').AsString));

det skal ind istedet for navn
Avatar billede Slettet bruger
06. november 2005 - 13:25 #23
er data = mit index navn?
Avatar billede vallemanden Nybegynder
06. november 2005 - 19:10 #24
nej

Data:=pointer(strtoint(Form1.table1.fieldByName('indsæt index her').AsString));

data skal ikke defineres da det er inde i 'with listview1 do' hvilket svare til:

listview1.data
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester