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 ...
i := 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;
i := i + 1;
Next;
end;
Free;
end;
questo non è esaustivo, è solo per darti una idea
ciao
sergio