| Autor |
Beitrag |
ak
      
Beiträge: 240
Suse Windows 9 XP
D6 Professional
|
Verfasst: Di 04.11.03 13:08
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
|
|
ak 
      
Beiträge: 240
Suse Windows 9 XP
D6 Professional
|
Verfasst: Sa 08.11.03 01:36
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:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| 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 Control:=TIWEdit32.Create(self); with TIWEdit32(Control) do begin Text:=table1.fieldbyname('Geburtstag').asstring; end; end; with iwgrid321.Cell[i,2] do begin Control:=TIWButton32.Create(self); with TIWButton32(Control) do begin Text:='Ändern'; onclick:=testprozedur; end; end; table1.Next; end; table1.Close; end; |
Wie gesagt das läuft alles ohne Javascript im Browser.
Moderiert von Tino: Code- durch Delphi-Tags ersetzt.
_________________ Gruß AK
|
|
ak 
      
Beiträge: 240
Suse Windows 9 XP
D6 Professional
|
Verfasst: Sa 08.11.03 13:36
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.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68:
| 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 Control:=TIWEdit32.Create(self); with TIWEdit32(Control) do begin Text:=table1.fieldbyname('Geburtstag').asstring; end; end; with iwgrid321.Cell[i,2] do begin Control:=TIWButton32.Create(self); with TIWButton32(Control) do begin Text:='Ändern'; name:='but'+inttostr(i); onclick:=testprozedur; 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 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
Moderiert von Tino: Code- durch Delphi-Tags ersetzt.
_________________ Gruß AK
|
|
ak 
      
Beiträge: 240
Suse Windows 9 XP
D6 Professional
|
Verfasst: So 09.11.03 15:30
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 :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83:
| 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 Control:=TIWEdit32.Create(self); with TIWEdit32(Control) do begin Text:=table1.fieldbyname('Geburtstag').asstring; width:=90; end; end; table1.Next; end;
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 iwgrid321.cell[i,0].text := ''; with iwgrid321.Cell[i,1].Control do begin Text:=''; end; end else begin iwgrid321.cell[i,0].text := table1.fieldbyname('Name').asstring; with iwgrid321.Cell[i,1].Control do begin Text:=table1.fieldbyname('Geburtstag').asstring; end; end;
table1.Next; end; table1.Close;
end; |
Moderiert von Tino: Code- durch Delphi-Tags ersetzt.
_________________ Gruß AK
|
|
|