Ver Mensaje Individual
  #9 (permalink)  
Antiguo 18/08/2016, 19:28
minombreesmm
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 12 años, 3 meses
Puntos: 52
Respuesta: ¿Es posible que se ejecute una linea antes que otra?

Cita:
Iniciado por Malenko Ver Mensaje
Cuando hablas de un módulo te refieres a una única función? De cuantas lineas de código estamos hablando?
No, Hablo de varias funciones pero dedicadas a esa parte..
lineas pues mas de 300, hay eventos y todo eso.
El caso es que en determinado momento cuando ya esta capturada toda la comanda (es un restaurante)
El datagrid contiene todas las filas..

id platillo cantidad precio subtotal etc etc

el campo cantidad tiene un evento change que recalcula el subtotal (precio x cantidad) y a su vez se recalcula un label total que suma el subtotal de todas las filas.
No hay manera de que eso falle, siempre se ejecuta en el evento change..
lo demas ya es cuestion de guardar..
tiene una opcion de borrado de filas y esa accion vuelve a recalcular los totales..
la forma en que guardo consiste en recorrer el datagrid fila por fila , una insercion por fila, y una vez recorrida entonces guardo los labeles de la venta esa, tal es el total, subtotal, mesa, cliente etc y una vez guardado se le asigna un folio y se borra el contenido del datagrid.

Cabe destacar que puede haber muchas comandas en memoria, estas se guardan en Matrices lo cual no creo que sea problema por que a la hora de guardar lo unico que guardo es lo que está en pantalla (El datagrid y los labeles que corresponden a esa comanda).

Otra cosa es que puede haber mas de una comanda en la misma mesa, pero estas estan diferenciadas por ids, lo cual no tiene nada que ver con lo que ocurrió ya que eso paso a la hora de guardar..

Este sistema fue de los primeros que hice y por lo tanto estan hechos a lo muy cavernicola aunque he ido actualizándolos poco a poco.
Esta parte no le he movido mucho mas que lo nuevo que han pedido.

El detalle aqui es que hay muchos eventos y por eso mismo a veces se repiten unos con otros pero al final terminan..
un evento change hace una accion que a veces ejecuta el evento change de otro objeto modificado por la accion del primero y asi, son como unas 500 lineas de codigo entre funciones que se llaman y ejecutan una accion, no solo es la venta si no que hay tipos de platillos y cambios de precios segun ciertas condiciones etc. por eso es que seria muy tedioso poner todo eso aqui y generaria confunción mas que a mi.

Todo ese codigo debugeandolo paso por paso funciona correctamente, lo que no he logrado cazar es esa situacion especial donde ocurre ese fenomeno.(casualmente fue la primera comanda del dia)

La unica manera que se me ocurre ahorita es que alguien halla borrado fisicamente y manualmente ese registro faltante de la suma y ademas halla vuelto a la normalidad el id siguiente..
pero eso seria demasiado(alguien merodeando el sistema desde internet)
No me atrevo a pensar que alli mismo lo hayan hecho(algun curioso) ya que se supone que apenas y saben usar la pc.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra