Duda al guardar y modificar info en bd- Agotaraz

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Don Agotaraz...Como manejas la modificacion de una factura, ya que como te comentaba anteriormente se repiten los registros por cada producto:
Ejemplo al guardar la factura 000000001-------------Me guarda de manera indicada si solo agrego un producto (a la cesta)-----------------pero si agrego mas productos quedario algo asi:

N FACTURA CANTIDAD DESCRIPCION DE PRODUCTO PRECIO A PAGAR
000000001 1 PERNO 1/8 5 5
000000001 2 PERNO 1/4 10 5
000000001 3 PERNO 3/4 1 5 5

Pero en la base de datos se me crean registros por cada itens agregado, se podria hacer que todo lo que se registra en la factura 0000000001 se guarde en su mismo registro.

Yo supongo que seria mejor armar mi bd de la siguiente forma :(Pero como haria para que la segunda fila de productos agregados me pase a guardar en la misma fila del primer registro) Nota: La segunda fila iniciaria desde .."\r\n Codigo2 text, "
SQLite.Query(db,"CREATE TABLE Facturas (RecordID INTEGER  PRIMARY KEY,"
.."\r\n Factura text, "
.."\r\n Igv text, "
.."\r\n Cliente text, "
.."\r\n Direccion text, "
.."\r\n Vendedor text, "
.."\r\n Fecha text, "
.."\r\n Hora text, "
.."\r\n Codigo1 text, "
.."\r\n Unidad1 text, "
.."\r\n Nombre1 text, "
.."\r\n Vent1a  text, "
.."\r\n Total1   text, "
.."\r\n Existencia1   text, "
.."\r\n Codigo2 text, "
.."\r\n Unidad2 text, "
.."\r\n Nombre2 text, "
.."\r\n Venta2  text, "
.."\r\n Total2   text, "
.."\r\n Existencia2   text, "
.."\r\n UsuarioRegistro text, "
.."\r\n SubTotal text, "
.."\r\n Impuesto text, "
.."\r\n TotalFinal text )");
y el codigo para guardar seria este:
local nRowsCount = Grid.GetRowCount("Grid1")-1;
if nRowsCount > 0 then
	nTotal =1
	for count=1,nRowsCount do
		nTotal = Grid.GetCellText("Grid1", count, 6);
		

	sFactura = Input.GetText("Inp_Factura");
        sIgv = ComboBox.GetText("Cbx_Impuesto")
        sCliente = Input.GetText("Inp_Cliente");
        sDireccion = Input.GetText("Inp_Direccion");
        sVendedor = ComboBox.GetText("Cbx_Vendedor");
        sFecha = Label.GetText("LblFecha");
        sHora = Label.GetText("Hora");
        
               sCodigo1 = Grid.GetCellText("Grid1", count, 1);
		sUnidad1 = Grid.GetCellText("Grid1", count, 2);
		sNombre1 = Grid.GetCellText("Grid1", count, 3);			
		sVenta1 =  Grid.GetCellText("Grid1", count, 4);
		sTotal1 =  Grid.GetCellText("Grid1", count, 5);
		sExistencia1 =  Grid.GetCellText("Grid1", count, 6);

                sCodigo2 = Grid.GetCellText("Grid1", count, 7);
		sUnidad2= Grid.GetCellText("Grid1", count, 8);
		sNombre2 = Grid.GetCellText("Grid1", count, 9);			
		sVenta2 =  Grid.GetCellText("Grid1", count, 10);
		sTotal2 =  Grid.GetCellText("Grid1", count, 11);
		sExistencia2 =  Grid.GetCellText("Grid1", count, 12);

		sUsuarioRegistro = Input.GetText("Inp_UsuarioRegistro");
		sSubTotal = Paragraph.GetText("to_SubTotal");
                sImpuesto = Paragraph.GetText("to_Impuesto")
                 sTotalFinal = Paragraph.GetText("TotalPago");
        
        
if sFactura == "" or sIgv == "" or sCliente == "" or sDireccion == "" or sVendedor == "" or sFecha == "" or sHora == "" or sCodigo1 == "" or sUnidad1 == "" or sNombre1 == "" or sVenta1 == "" or sTotal1 == "" or sExistencia1 == ""  or sCodigo2 == "" or sUnidad2 == "" or sNombre2 == "" or sVenta2 == "" or sTotal2 == "" or sExistencia2 == "" or sUsuarioRegistro == "" or sSubTotal == "" or sImpuesto == "" or sTotalFinal == "" then
Dialog.TimedMessage("New Soft Inventarios y Ventas Flores", "Ingrese todos los campos corretamente", 2000, MB_ICONEXCLAMATION);   
else  

        sFactura = Input.GetText("Inp_Factura");
        sIgv = ComboBox.GetText("Cbx_Impuesto")
        sCliente = Input.GetText("Inp_Cliente");
        sDireccion = Input.GetText("Inp_Direccion");
        sVendedor = ComboBox.GetText("Cbx_Vendedor");
        sFecha = Label.GetText("LblFecha");
        sHora = Label.GetText("Hora");
        
                sCodigo1 = Grid.GetCellText("Grid1", count, 1);
		sUnidad1 = Grid.GetCellText("Grid1", count, 2);
		sNombre1 = Grid.GetCellText("Grid1", count, 3);			
		sVenta1 =  Grid.GetCellText("Grid1", count, 4);
		sTotal1 =  Grid.GetCellText("Grid1", count, 5);
		sExistencia1 =  Grid.GetCellText("Grid1", count, 6);

                sCodigo2 = Grid.GetCellText("Grid1", count, 7);
		sUnidad2= Grid.GetCellText("Grid1", count, 8);
		sNombre2 = Grid.GetCellText("Grid1", count, 9);			
		sVenta2 =  Grid.GetCellText("Grid1", count, 10);
		sTotal2 =  Grid.GetCellText("Grid1", count, 11);
		sExistencia2 =  Grid.GetCellText("Grid1", count, 12);
		
		sUsuarioRegistro = Input.GetText("Inp_UsuarioRegistro");
	
                sSubTotal = Paragraph.GetText("to_SubTotal");
                sImpuesto = Paragraph.GetText("to_Impuesto")
                sTotalFinal = Paragraph.GetText("TotalPago");

SQLite.Query(db, "insert into Facturas values(NULL, '"..sFactura .."', '"..sIgv .."', '"..sCliente .."', '"..sDireccion .."', '"..sVendedor .."', '"..sFecha .."', '"..sHora .."', '"..sCodigo1 .."', '"..sUnidad1 .."', '"..sNombre1 .."', '"..sVenta1 .."', '"..sTotal1 .."', '"..sExistencia1 .."', '"..sCodigo2 .."', '"..sUnidad2 .."', '"..sNombre2 .."', '"..sVenta2 .."', '"..sTotal2 .."', '"..sExistencia2 .."', '"..sUsuarioRegistro .."', '"..sSubTotal .."', '"..sImpuesto .."', '"..sTotalFinal.."')");
		Dialog.TimedMessage("Informe", "Felicidades "..sCliente.." La Factura se genero con exito", 2000, MB_ICONINFORMATION)
        nLastError = Application.GetLastError();                                
		if nLastError ~= SQLite.OK then                                          
			Dialog.Message("Error: " .. nLastError, SQLite.GetLastErrorString().."Facturas");
			
end  
end	
end
end

local UserIngreso = INIFile.GetValue("UserIngreso.ini", "general", "sUsuario")
Input.SetText("Inp_UsuarioRegistro", UserIngreso)

DialogEx.Show("AgFac")
Asumo que mi error esta en esta parte del codigo:
               sCodigo1 = Grid.GetCellText("Grid1", count, 1);
		sUnidad1 = Grid.GetCellText("Grid1", count, 2);
		sNombre1 = Grid.GetCellText("Grid1", count, 3);			
		sVenta1 =  Grid.GetCellText("Grid1", count, 4);
		sTotal1 =  Grid.GetCellText("Grid1", count, 5);
		sExistencia1 =  Grid.GetCellText("Grid1", count, 6);

               sCodigo2 = Grid.GetCellText("Grid1", count, 7);
		sUnidad2= Grid.GetCellText("Grid1", count, 8);
		sNombre2 = Grid.GetCellText("Grid1", count, 9);			
		sVenta2 =  Grid.GetCellText("Grid1", count, 10);
		sTotal2 =  Grid.GetCellText("Grid1", count, 11);
		sExistencia2 =  Grid.GetCellText("Grid1", count, 12);
Primero imagino que habria que hacer un buscador, en el foro he visto muchos ejemplos unos utiliznado ListBox, ListBoxEx o Grid,
lo de la busqueda no se me hace complicado solo hay que consultar a la tabla en este caso Facturas el dato escrito en el Input o ComboBox, y esos datos que se visualicen en mi grid.

Seria bueno que el buscador sea con paginacion para no sobrecargar el Objeto ListBox, ListBoxEx o Grid, o como lo haces tu para que no se sobrecargue.......

Creo que mescle varias dudas.

1ERA. Duda guardar desde la segunda fila de un grid en adelante en el mismo registro de mi bd
2DA. Era sobre modificar info guardada en mi bd, pero si se esclarece la primera duda ya no necesitaria solucionar la segunda duda ya que todo estaria en el primer registro y se me haria facil la modificacion .
Why you don't Put the apz file so maybe we can help with something?
abood1987 escribió:
05 Nov 2019 20:32
Why you don't Put the apz file so maybe we can help with something?
Ahi esta el apz

HIDE: ON
Hidebb Message Hidden Description


Clave del Cifrado: GEC5OrK5pD4yx8wBqML5yw9rWKoyB4vR6K3BzXd7sPE

Si observan al guardar el registro me guarda dos veces
Maybe I put my help tomorrow I'm exhausted today
para hacer una modificación de una factura solo debes de usar en query un update con un where que la condición sea el numero de factura y el código del producto a editar.

aunque te digo que las facturas nunca deben de ser modificadas en un sistema solo pueden ser anuladas y la anulación debe de ser soportada por una nota de debito, modificar una factura no es legal.
Agotaras123 escribió:
06 Nov 2019 00:01
para hacer una modificación de una factura solo debes de usar en query un update con un where que la condición sea el numero de factura y el código del producto a editar.

aunque te digo que las facturas nunca deben de ser modificadas en un sistema solo pueden ser anuladas y la anulación debe de ser soportada por una nota de debito, modificar una factura no es legal.
Entiendo amigo
Tu fallo no es tu código de programación sino que es error de uso de SQL... Mírate unos manuales de SQL te vendrá bien
want to see this