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, "
y el codigo para guardar seria este:
Asumo que mi error esta en esta parte del codigo:
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 .
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 )");
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")
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);
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 .