PDA

Ver la Versión Completa : Problema: DBGrid con tabla Paradox deja espacios en blanco. (Delphi 7)


DJerez
01-08-2008, 04:37:08
Hola a todos.

Tengo un problema con un control de venta y stock que estoy haciendo con un colega.

Tengo una tabla Paradox con los siguientes campos: Codigo, Producto, Precio, Costo, Stock y los DBEdit correspondientes a los datos de los campos.
Cuando seleccionas la fila que contiene algún producto en el DBGrid te los muestra en los DBEdit.

Cada vez que seleccionas el producto solo hay que ingresar la cantidad que vas a vender de ese producto y listo, al pinchar en el botón Venta realiza la operación. (Precio-Costo*Cantidad).

El problema que quiero solucionar es el de que cada vez que cierro el programa y lo vuelvo a abrir, en el DBGrid aparecen líneas en blanco, esta cantidad de líneas es la misma cantidad de operaciones realizadas y no tenemos ni la más f*king idea de porque agrega esas líneas en blanco.

Alguien tiene idea de porque sucede esto y si tiene solución?

Espero atento su ayuda.

Gracias.

DJerez
01-08-2008, 04:47:18
El DBGrid deja los espacios en blanco aún sin realizar la operación, lo hace cada vez que se cierra y abre el programa.

Gracias again!

marcoszorrilla
01-08-2008, 05:51:00
Las líneas en blanco quiere decir que en algún momento insertas algún registro, bien utilizando Insert o Append.

Tienes que revisar el código y todos los eventos que tengas programados incluidos OnNewRecord del Ttable.

Si lo que quieres es modificar un registros utiliza Edit.

MiTabla.Edit;

Un Saludo.

DJerez
01-08-2008, 06:31:29
Gracias por responder Marcos.

En OnNewRecord del TTable (En el inspector) no tengo nada.

Donde utilizo Insert es acá.
Lo cual me da para pensar el código, porque lo único que cambio es el 'Stock' en la base de datos cuando realizo la venta.

procedure TForm1.FormCreate(Sender: TObject);
begin

Form1.Table1.Insert; //Abrimos la tabla.
Form1.Table1.FieldByName('Codigo').AsString:=Edit1.Text;
Form1.Table1.FieldByName('Costo').AsString:=DBEdit4.Text;
Form1.Table1.FieldByName('Stock').AsString:=Edit1.Text;
Form1.Table1.Post; //Guardamos los cambios.
end;

Respecto a Append, lo utilizo solo en la creación de un .scv que es en donde vuelco las ventas realizadas con fecha, hora, vendedor, etc.


AssignFile(Archivo,'Ruta\*.csv'); //Este es el archivo separado por comas.
if not(FileExists('Ruta\*.csv')) then ReWrite(Archivo)
else Append(Archivo);
Estoy seguro que es una tontería, la mayoría de los "problemas" eran una tontera, creo que esto también lo será.
(Es más bien un deseo más que una afirmación!):p

Lo que si descarté es que sea en el código dentro del Button, ya que solo inserta las líneas en blanco cuando corro el programa. Si lo abro y lo cierro sin hacer ninguna operación de todos modos me inserta la línea en blanco.

Alguna idea?

Gracias por el tiempo y la atención.

marcoszorrilla
01-08-2008, 06:56:38
Veo que añades un registro al crear el formulario infiero que en ese momento el Edit, aún no contiene nada, ese código trasládalo al botón para dar altas y creo que resolverás el problema.

Un Saludo.

DJerez
01-08-2008, 08:06:14
El tema es así, toooodo esto era innecesario.

procedure TForm1.FormCreate(Sender: TObject);
begin

Form1.Table1.Insert; //Abrimos la tabla.
Form1.Table1.FieldByName('Codigo').AsString:=Edit1.Text;
Form1.Table1.FieldByName('Costo').AsString:=DBEdit4.Text;
Form1.Table1.FieldByName('Stock').AsString:=Edit1.Text;
Form1.Table1.Post; //Guardamos los cambios.
end;Añadí código en el form de ventas que está en el de ingresar datos en el stock.
Creo que te referís a eso en lo que respondiste esta última vez, lástima no haber leído la respuesta antes.

Al final era una tontera nomás.

Soy nuevo en esto, voy aprendiendo con los manuales, la práctica y la experiencia de mi partener.

Muchísimas gracias por el tiempo y la atención dispensada.

Saludos.

PD:
Prometo estar más atento la próxima! :)
PD2:
Y eso que preparé jarras y jarras de café para estar bien despierto!
Creo que lo preparé con el descafeinado... por eso tengo tanto sueño...:p