AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi DB-Grid mit Intraweb 3.2 Komponenten darstellen?
Thema durchsuchen
Ansicht
Themen-Optionen

DB-Grid mit Intraweb 3.2 Komponenten darstellen?

Ein Thema von ak1 · begonnen am 4. Nov 2003 · letzter Beitrag vom 9. Nov 2003
Antwort Antwort
ak1

Registriert seit: 12. Okt 2003
243 Beiträge
 
#1

DB-Grid mit Intraweb 3.2 Komponenten darstellen?

  Alt 4. Nov 2003, 13:07
Hallo Leute,

weiss jemand von Euch wie ich ein gefülltes DB-Grid mit den Intraweb 3.2 Komponenten darstelle?
Da Javascript im Browser deaktiviert ist, müssen die 3.2'er Komponten genügen.

Gruß AK
  Mit Zitat antworten Zitat
ak1

Registriert seit: 12. Okt 2003
243 Beiträge
 
#2

Re: DB-Grid mit Intraweb 3.2 Komponenten darstellen?

  Alt 8. Nov 2003, 01:37
Sooooo ich hab mal ein bisschen Zeit gefunden und eine Lösung erstellt, das ist ein Grid mit den Inhalten aus einer Tabelle, in der 2. spalte sind die Felder editierbar, in der dritten Spalte sind Buttons zum übernehmen der Änderung der Editfelder:

Code:
procedure TIWForm2.IWAppForm32Create(Sender: TObject);
var i: integer;
begin
  iwgrid321.cell[0,0].text := 'Name';
  iwgrid321.cell[0,1].text := 'Geburtstag';
  iwgrid321.cell[0,2].text := 'Ändern';
  table1.Open;
  table1.First;
  iwgrid321.RowCount:=table1.RecordCount+1;
  for i := 1 to table1.RecordCount do begin
    iwgrid321.cell[i,0].text := table1.fieldbyname('Name').asstring;
    with iwgrid321.Cell[i,1] do begin  //editfeld
      Control:=TIWEdit32.Create(self);
      with TIWEdit32(Control) do begin
        Text:=table1.fieldbyname('Geburtstag').asstring;
      end;
    end;
    with iwgrid321.Cell[i,2] do begin            //button
      Control:=TIWButton32.Create(self);
      with TIWButton32(Control) do begin
        Text:='Ändern';
        onclick:=testprozedur; //sql-Anweisung
      end;
    end;
    table1.Next;
  end;
  table1.Close;
end;
Wie gesagt das läuft alles ohne Javascript im Browser.
  Mit Zitat antworten Zitat
ak1

Registriert seit: 12. Okt 2003
243 Beiträge
 
#3

Re: DB-Grid mit Intraweb 3.2 Komponenten darstellen?

  Alt 8. Nov 2003, 13:37
Hallo,
falls es jemanden interessieren sollte:
Das ist ein dreispaltiges Grid mit einem Edittierbaren
Feld und einem Buttonfeld zum ändern des Edit eintrages in der Tabelle. Ich habe Testweise eine Paradoxtabelle genommen. Javascript ist im Browser ausgeschaltet.

Code:
procedure TIWForm2.gridaufbauen();
var i: integer;
begin
  iwgrid321.cell[0,0].text := 'Name';
  iwgrid321.cell[0,1].text := 'Geburtstag';
  iwgrid321.cell[0,2].text := ' ';
  table1.Open;
  table1.First;
  iwgrid321.RowCount:=table1.RecordCount+1;
  for i := 1 to table1.RecordCount do begin
    iwgrid321.cell[i,0].text := table1.fieldbyname('Name').asstring;
    with iwgrid321.Cell[i,1] do begin  //editfeld
      Control:=TIWEdit32.Create(self);
      with TIWEdit32(Control) do begin
        Text:=table1.fieldbyname('Geburtstag').asstring;
      end;
    end;
    with iwgrid321.Cell[i,2] do begin            //button
      Control:=TIWButton32.Create(self);
      with TIWButton32(Control) do begin
        Text:='Ändern';
        name:='but'+inttostr(i);
        onclick:=testprozedur; //sql-Anweisung
      end;
    end;
    table1.Next;
  end;
  table1.Close;
end;

//------------------------------------------------------

procedure TIWForm2.testprozedur(ASender: TObject);
 var
 zeile: integer;
 zeilenname: string;
 begin
     zeilenname:= (ASender as TIWButton32).name;
     zeilenname:= copy(zeilenname,4,length(zeilenname));

IWLabel321.Caption:=iwgrid321.Cell[strtoint(zeilenname),1].Control.text;
     table1.Open;
     table1.RecNo:=strtoint(zeilenname);
     table1.Edit;

table1.FieldByName('Geburtstag').AsString:=iwgrid321.Cell[strtoint(zeilennam
e),1].Control.text;
     table1.Post;
     gridaktualisieren;
 end;

//---------------------------------------------------------------

procedure TIWForm2.gridaktualisieren;
var i: integer;
begin
  table1.Open;
  table1.First;
  for i := 1 to table1.RecordCount do begin
    with iwgrid321.Cell[i,1] do begin  //editfeld
      with TIWEdit32(Control) do begin
        Text:=table1.fieldbyname('Geburtstag').asstring;
      end;
    end;
    table1.Next;
  end;
  table1.Close;
end;
Gruß AK

P.S. das funktioniert alles ohne Javascript im Browser
  Mit Zitat antworten Zitat
ak1

Registriert seit: 12. Okt 2003
243 Beiträge
 
#4

Re: DB-Grid mit Intraweb 3.2 Komponenten darstellen?

  Alt 9. Nov 2003, 15:33
Hallo nochmal,

da ich ja nichts zu tun hab , hier mal ein Grid das fünf Zeilen und umfasst und per Button auf die nächsten Seiten des Grids schaltet.
Das macht sich sehr gut bei Grids die mehr als 20 Datensätze haben. Da ich ja warscheinlich kein Javascript im Browser angeschaltet haben darf, musste ich das "per Hand" konstruieren und konnte nicht die guten TMS oder Standard Komponenten nehmen. Das Grid hat eine editierbare spalte, aber diesmal keine Buttons in der dritten Spalte. die Datenbank wird über einen extra Button aktualisiert :

Code:
procedure TIWForm1.gridaufbauen1();
var i: integer;
begin

  IWGrid321.ColumnCount:=2;
  IWGrid321.Width:=240;
  IWGrid321.cell[0,0].Width:='150';
  IWGrid321.cell[0,1].width:='90';
  IWGrid321.cell[0,0].text := 'Name';
  IWGrid321.cell[0,1].text := 'Geburtstag';
  IWGrid321.Font.Style:=[];
  table1.Open;
  table1.First;
  iwgrid321.RowCount:=6;
  for i := 1 to iwgrid321.RowCount-1 do begin
    iwgrid321.cell[i,0].text := table1.fieldbyname('Name').asstring;
    with iwgrid321.Cell[i,1] do begin          //editfeld
      Control:=TIWEdit32.Create(self);
      with TIWEdit32(Control) do begin
        Text:=table1.fieldbyname('Geburtstag').asstring;
        width:=90;
      end;
    end;
    table1.Next;
  end;

  //zweites unteres Grid mit den Buttons aufbauen
  IWGrid322.RowCount:=1;
  if 5 mod (trunc(table1.RecordCount / 5)) = 0 then begin
    IWGrid322.ColumnCount:= trunc(table1.RecordCount / 5);
    IWGrid322.Width:= trunc(IWGrid322.ColumnCount * 20);
  end
  else begin
    IWGrid322.ColumnCount:= trunc(table1.RecordCount / 5)+1;
    IWGrid322.Width:= trunc((IWGrid322.ColumnCount) * 20);
  end;

  for i:=0 to IWGrid322.ColumnCount-1 do begin
    with IWGrid322.Cell[0,i] do begin
      Control:=TIWButton32.Create(self);
      with TIWButton32(Control) do begin
        Text:=inttostr(i+1);
        name:='gri'+inttostr(i+1);
        onclick:=seitenclick;
      end;
    end;
  end;
  table1.Close;

end;

procedure TIWForm1.seitenclick(ASender: TObject);
var
zeilenbutton: string;
i :integer;
begin
  zeilenbutton:= (ASender as TIWButton32).name;
  zeilenbutton:= copy(zeilenbutton,4,length(zeilenbutton));

  table1.Open;
  table1.RecNo:= trunc((strtoint(zeilenbutton) * 5)-5);
  if zeilenbutton = '1' then
    table1.First;

  for i := 1 to iwgrid321.RowCount-1 do begin
    if table1.Eof then begin    //wenn das ende der datenbanktabelle errreicht ist, soll nichts mehr im grid angezeigt werden
      iwgrid321.cell[i,0].text := '';
      with iwgrid321.Cell[i,1].Control do begin          //editfeld
        Text:='';
      end;
    end
    else begin
      iwgrid321.cell[i,0].text := table1.fieldbyname('Name').asstring;
      with iwgrid321.Cell[i,1].Control do begin          //editfeld
        Text:=table1.fieldbyname('Geburtstag').asstring;
      end;
    end;

    table1.Next;
  end;
  table1.Close;

end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz