dovresti avere una tabelle che chiami, diciamo, tbl_dtr che contiene i dati identificativi del documento di trasporto (chi lo ha emesso, numero documento, data etc). Ogni documento sarà identificato da un numero attribuito, univoco e crescente. Avrai poi un'altra tabella, diciamo tbl_dettaglio_dtr che contiene il contenuto degli articoli per ogni dtr. L'associazione è uno a molti, ogni articolo per la stessa dtr è identificato in tbl_dettaglio_dtr dallo stesso numero attribuito.
Adesso se tu conosci la dtr da cui vuoi estrarre i dati attravero il suo numero attribuito devi eseguire prima una query per estrarli, questa è del tipo
Codice PHP:
with query_dtr do
begin

        SQL
.Clear;
        
SQL.Add('select concat(produttore," - ", merce) as merce ,');
        
SQL.Add('substring(descrizione, 1, 10) as descrizione, numero');
        
SQL.Add('from tbl_dettaglio_dtr');
// eventualmente fai una join all'archivio delle merci se ti servono dei dati
        
SQL.Add('left join merci');
        
SQL.Add('on codice_fornitore=produttore and codice_merce=merce');
        
SQL.Add('where no_attribuito="' no_attribuito +'"');
// se ti serve di estrarre solo in non fatturati
        
SQL.Add('and fatturato <> ""');

        
Open;

// li puoi inserire in una ListView e utilizzarli come credi
// oppure inserire già nella tabella fatture
// normalementi i dati nella dtr sono solo merce,descrizione e numero
// e vanno integrati con costo, iva etc ...
        
:= 0;
        
with ListView do Items.Clear;
        while 
not Eof do
        
begin
          with ListView 
do
          
begin
            ListItem 
:= Items.Add;
            
ListItem.Caption := IntToStr(i);
            
ListItem.SubItems.Add(FieldByName('merce').AsString);
            
ListItem.SubItems.Add(FieldByName('descrizione').AsString);
            
ListItem.SubItems.Add(FieldByName('numero').AsString);
          
end;
          
:= 1;
          
Next;
        
end;

        
Free;

      
end
questo non è esaustivo, è solo per darti una idea
ciao
sergio