Cómo comprobar si una orden está seleccionada - página 13

 
Ant_TL:

De hecho, me encontré con una situación en la que el error era causado por una de las funciones de propósito general que podía ser utilizada tanto dentro como fuera de los bucles de procesamiento de pedidos, es decir, antes de que se seleccionara un pedido, lo que causaba el error. Si queremos hacer funciones de servicio universal que trabajen con órdenes y que puedan ser utilizadas tanto después de que una orden haya sido seleccionada como antes, tanto cuando hay órdenes abiertas como cuando no hay órdenes, deberíamos utilizar un mecanismo como el que mencioné en la página anterior para evitar este error.

Ya escribí anteriormente en este hilo sobre el hecho de que la selección de la orden no se pasa a los módulos de la biblioteca y de vuelta.


Anton, ¡feliz cumpleaños a ti también!
 
grell:

Acostúmbrese a que cada operación comercial tenga su propia selección de órdenes y no habrá ningún problema. Y, sí, se ha escrito correctamente, sólo se puede seleccionar una orden. Todo lo demás se resuelve con matrices.

No me refería a la situación en la que la función B() intenta interceptar una selección de orden de la función A() para trabajar con ella. Evitar la selección de pedidos. La cuestión es otra. Pero puede ser útil.

 
tara:

Anton, ¡felices vacaciones para ti también!

¡Felices fiestas para ti también!

 
FAQ:

Sigues olvidando que sólo se puede seleccionar un pedido a la vez. Salir = almacenar la lista de pedidos en un pool de ahorro (su array). una variable global lastorder no es suficiente. una variante de tipo lastords[ticket][function] sería mejor.

Mantener todas las órdenes en una matriz es apropiado para los EAs de red complejos, pero no para todos los EAs. En mi situación, es como disparar un cañón a un gorrión. No olvido que sólo se puede seleccionar un pedido. Sólo señalaba que no podríamos saber si se eligió (no un orden concreto, sino si se eligió algún orden arbitrario en este tick, es decir, si se llamó a un order select con éxito) sin ningún error. Sin embargo, una variable del tipo lastorder es suficiente para este propósito.

 
Ant_TL:

No me refería a la situación en la que la función B() intenta interceptar una selección de orden de la función A() para trabajar con ella. Evitar la selección de pedidos. La cuestión es otra. Aunque puede ser útil.


Bueno, dame un ejemplo de una situación para que entienda la necesidad de trabajar con más de una orden. Por cierto, ¡felices fiestas!
 
grell:

Bueno, dame un ejemplo de una situación, para que entienda la necesidad de trabajar con más de una orden. Por cierto, ¡felices fiestas!

¡Felices fiestas para ti también! -))

Lo subiré en cuanto se me ocurra algo interesante. Situaciones en las que es difícil prescindir de este mecanismo. De lo contrario, inmediatamente me darán consejos para programar "correctamente". ))

 
Ant_TL:

Mantener todas las órdenes en una matriz es apropiado para los EAs de red complejos, pero no para todos los EAs. En mi situación, es como disparar un cañón a un gorrión.


Es tu elección si te gusta doblar un tirachinas para que se adapte a cada gorrión y perder el tiempo ajustándolo. Prefiero hacer un cañón para cualquier proyectil una vez y estar seguro de que cuando será necesario disparar a los gorriones - vamos a cargar perdigones y poner todos a la vez :)
 
Ant_TL:

¡Felices fiestas para ti también! -))

Lo subiré en cuanto se me ocurra algo interesante. Situaciones en las que es difícil prescindir de este mecanismo. De lo contrario, inmediatamente me darán consejos para programar "correctamente". ))


Qué es lo que hay que buscar si se trata de demostrar que se trata de una situación rutinaria cotidiana. Puede trabajar con un montón de órdenes y seguir seleccionándolas una a una sin temor a perderlas de vista. Y si se trata de una orden, seleccionarla en otra función no es nada comparado con buscar un gato negro en una habitación oscura.
 
grell:

Qué hay que encontrar, si se trata de demostrar que se trata de una situación cotidiana normal. Puede trabajar con muchos pedidos y seguirlos uno a uno sin temor a perderlos de vista. Y si se trata de un orden, seleccionarlo en otra función no es nada comparado con buscar un gato negro en una habitación oscura.

Bueno, me encontré con esta situación en uno de mis EAs, cuando llamé a mi función de plantilla MyTotal() para obtener el número de todas las órdenes, abiertas para un símbolo-magia dado. Obviamente, lo usé en un bucle en algunos EAs anteriores y, por lo tanto, añadí guardar y restaurar la selección de la orden actual. Y luego lo usé sin el bucle, antes de orderselect y por eso me dio el error. Quiero que las funciones de mi plantilla sean universales y puedan ser usadas tanto en los bucles como fuera de ellos, así que usaré esta plantilla con la envoltura MySelect/TickSelect, ya que de todas formas uso MySelect en todos los bucles en lugar de OrderSelect para reducir el tamaño del código.

Creo que podemos ver por qué en esta situación particular necesitamos manejar más de 1 orden a la vez. Estamos trabajando con algún pedido en el bucle principal, y luego llamamos a MiTotal, que debería recorrer todos los pedidos para determinar cuántos necesitamos.

 
Corrige tu error y vete a la cama, que mañana tienes un día muy ocupado :)