Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DBGrid - Multiselect (https://www.delphipraxis.net/7042-dbgrid-multiselect.html)

Natalia 31. Jul 2003 09:01


DBGrid - Multiselect
 
Hallo Leute, :)

ich möchte mehrere Zeilein in einem DBGrid auswählen und die Werte in ein anderes Grid schreiben. Der Code funktioniert schon:

Code:
procedure TForm1.Button3Click(Sender: TObject);
var i : integer;
begin
if Grid1.SelectedRows.Count>0 then
      begin
      for i:=0 to Grid1.SelectedRows.Count-1 do
      begin
        tblArtikel.GotoBookmark(pointer(Grid1.SelectedRows.Items[i]));

        temp.Append;
        temp.FieldByName('Nummer').AsString:=tblArtikelANR.AsString;
        temp.FieldByName('Bezeichnung').AsString:=tblArtikelBez1.AsString;
        temp.Post;
        temp.Next;

      end;
      end;

end;
(DataSourse von Grid1 ist tblArtikel)
Es gibt aber zwei Fehler, die ich nicht finden kann:
- Die erste Artikelnummer wird nicht in der temp-Tabelle angenommen
- Es werden nur die ersten Ziffern von den jeweiligen Artikelnummern angezeigt :?: ("ANR" in der Artikel-Tabelle ist ein String-Feld und hat Leerzeichen)
Kann mir jemand sagen, was ich hier falsch mache?
Danke für alle Vorschläge!

oki 31. Jul 2003 10:01

Re: DBGrid - Multiselect
 
Hi,

Frage: Warum temp.next; ? ist hier doch überflüssig.

Was heißt "- Die erste Artikelnummer wird nicht in der temp-Tabelle angenommen "?

prüfe die länge deiner Felder ANR und Nummer! Oft ist hier ein feld zu kurz und es kann dann nur ein Teilstring (abgeschnitten "abgeschn") übernommen werden.

Gruß oki

Natalia 31. Jul 2003 10:32

Re: DBGrid - Multiselect
 
Stimmt, "Temp.Next" ist überflüssig. :oops:

Die erste Artikelnummer wird nicht in die temp-Tabelle geschrieben, d. h. die erste Zeile in der Spalte "Nummer" ist leer, die Bezeichnung ist aber da. :?:
Ich habe die Größe der Spalten in beiden Tabellen überprüft, sie sind identisch(character 6). Verstehe einfach nicht wo der Bug ist :?: :?:

r_kerber 31. Jul 2003 10:41

Re: DBGrid - Multiselect
 
Und welche Daten stehen in der zweiten Zeile der Tabelle temp?

Natalia 31. Jul 2003 11:33

Re: DBGrid - Multiselect
 
Also, Ich habe die Artikelnummer und Bezeichnung

Zum Beispiel stehen in der Artikeltabelle folgende Daten:

Code:
  |_ANR_|_Bez._______|
  | 17  |  Test1     |
  | 25  |  Test2     |
  | 33  |  Test3     |
  | 56  |  Test4     |

Das wird ind die Temp-Tabelle mit dem o. g. Code so übertragen:

  |_ANR_|_Bez.______|
  |     |  Test1    |
  | 2   |  Test2    |
  | 3   |  Test3    |
  | 5   |  Test4    |
Wo ist der Bug :?: :?: :?:
Wie gesagt ist der Feld "ANR" in der Artikeltabelle ein character(6)
und enthält Leerzeichen.

r_kerber 31. Jul 2003 11:38

Re: DBGrid - Multiselect
 
Wie ist der in deer Tabelle temp? Wie sehen die Einträge in der Original-Tabelle konkret aus (inklusive der Leerzeichen)?

oki 31. Jul 2003 12:04

Re: DBGrid - Multiselect
 
Welche Datenbank verwendest du?

Gruß oki

Natalia 31. Jul 2003 12:44

Re: DBGrid - Multiselect
 
Es leuchtet mir grad ein, das sind zwei verschiedene Tabellen :!: ,
tblArtikel ist eine .DBF Tabelle und temp .ADT (Advantage Table)
Vieleicht ist das das Problem, muss austesten.

r_kerber 31. Jul 2003 12:49

Re: DBGrid - Multiselect
 
Wichtig ist das da Tabellenspalten gleichen oder ähnlichen Typ haben!

Natalia 31. Jul 2003 13:25

Re: DBGrid - Multiselect
 
Es hat sich erledigt, mit der Tabelle Temp stimmte was nicht, habe sie einfach neu erstellt und jetzt funktioniert's! :D
Danke für die Hilfe. :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 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