Solved

Get (ID) field from Listview Clicked Item

Posted on 2013-06-02
3
2,605 Views
Last Modified: 2016-10-03
Im useing Delphi XE4. Im using an sqLite database(IOS APP).

I have a listView (lvCustomers) i use a sqlDatsaSet to display all the records from the Customers table. I just drag and drop from the Data Explorer, and use Live Bindings to link to the listview(lvCustomers) from the sqlDatsSet.

I want to click on the customers name in the listview(lvCustomers) and get the ID field from the customers table .

I will use this ID to join to the invoice table in the next listvew to display all invoices that belong to the customer ID that i click on (lvCustomer)

How can I get the field Id (Customers.ID) from the item that is clicked on in the listview(lvCustomers)?

It seems TListViewItem has a Tag property. Is it possible to use this with the live binder or without the live binder to grab the ID field ?
0
Comment
Question by:Grant1842
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 27

Assisted Solution

by:Sinisa Vuk
Sinisa Vuk earned 50 total points
ID: 39215416
Tag can be used but if you load dataset on your own.
Try to get id field with plain old:
  sqlDatsaSet.FiledByName('IDField').AsInteger
Positioning on LV will make scroll in dataset thought. Try to join table on dataset level.
0
 
LVL 4

Assisted Solution

by:rotem156
rotem156 earned 50 total points
ID: 39217039
You're welcome.
0
 
LVL 6

Accepted Solution

by:
House_of_Dexter earned 400 total points
ID: 39224531
I don't have XE4...so I can't help you there...I wouldn't get caught up on the new properties...

You want to figure out how they handle SubItems...You use the SubItem to attach your ID value to it and then grab it on the click event...If you can't figure that out...Then create a StringList that coincides with your ListViewItems...and match Names from each list...and then take the ID value from the StringList...

ie. FList[0] = lvCustomers.Items.Items[0].Detail

As you add the Items to your ListView...add the same values to your FList...like
//coded without a compiler...so I make no guarantees ;)


procedure TForm1.AddRecords(aDataSet: TDataset);
var
  a_Index: integer;
begin
//check to make sure the Dataset values line up with the TListViewItems..
//this is not a method I like...but if you can't figure out how to add a SubItem...It might be your only way
  aDataSet.First;
  while not  aDataSet.Eof do
  begin
    AddRecord(aDataSet.FieldByName('Name').AsString,    (aDataSet.FieldByName('Name').AsInteger);
     aDataSet.Next;
  end;
end;

procedure TForm1.AddRecord(aName: string; aId: integer);
begin  
  FList.AddObject(aName, pointer(aID));//use this method if you can't figure out how to add subitems...  
end;

function TForm1.GetID(aName: string): integer;
var
  a_Index: integer;
begin
  Result := 0;
  for a_Index := 0 to FList.Count -1 do
  begin
     if aName = FList[a_Index] then
     begin
        Result := integer(FList.Objects[a_Index]);
        break;
      end;
  end;
end;

Open in new window

0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…
In this video we outline the Physical Segments view of NetCrunch network monitor. By following this brief how-to video, you will be able to learn how NetCrunch visualizes your network, how granular is the information collected, as well as where to f…

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question