RE:no insertar productos repetidos en una factura
Para que no te repita un registro puedes usar dos funciones:
Locate y findkey, ambas funciones de los componentes Table
Funcionan de la siguiente manera:
Tabla.locate('campo1', VarArrayOf([valor1]),[]);
o si buscas coincidencias en mas de un campo a la ves en el mismo registro pones lo suiguiente
Tabla.locate('campo1;campo2;campo3', VarArrayOf([valor1,valor2,valor3]),[]);
El locate sirve para buscar un o unos campos cualquiera en el registro
El findkey se hace de la siguiente manera:
Tabla.findkey([Valor]);
El findkey te busca en el campo que usas como llave primaria y solo necesitas poner el valor de busqueda, si es llave compuesta (dos o mas campos) usamos
Tabla.findkey([valor,valor2]);
las funciones te regresan un true si se encontró el registro