Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - YAcosta

Páginas: [1] 2 3 4 5 6 ... 191
1
Bases de Datos / Re:consulta sql
« en: Noviembre 16, 2023, 02:47:09 am »
Si deseas excluir dos familias específicas, puedes ajustar la cláusula HAVING en tu consulta. Supongamos que las dos familias que deseas excluir son "EXPLOSIVO1" y "EXPLOSIVO2". Puedes modificar la cláusula HAVING de la siguiente manera:
Código: [Seleccionar]
SELECT
    TBArticulos.Stock_Actual,
    TBArticulos.UnidMed,
    L_D_P.IDLista,
    L_D_P.Nombres,
    TBArticulos.IDArticulo,
    TBArticulos.Nombre,
    TBArticulos.isActive
FROM
    L_D_P
    INNER JOIN (
        TBArticulos
        INNER JOIN ART_PRE ON TBArticulos.IDArticulo = ART_PRE.IDArticulo
    ) ON L_D_P.IDLista = ART_PRE.IDLista
GROUP BY
    TBArticulos.Stock_Actual,
    TBArticulos.UnidMed,
    L_D_P.IDLista,
    L_D_P.Nombres,
    TBArticulos.IDArticulo,
    TBArticulos.Nombre,
    TBArticulos.isActive
HAVING
    L_D_P.Nombres NOT IN ("EXPLOSIVO1", "EXPLOSIVO2") AND TBArticulos.Stock_Actual > 0
ORDER BY
    TBArticulos.Nombre;


En esta modificación, he cambiado la condición en la cláusula HAVING para excluir las familias "EXPLOSIVO1" y "EXPLOSIVO2" utilizando la expresión NOT IN. Ajusta las familias según sea necesario.


Gepeto.

2
Visual Basic 6 / Re:Combobox multi columna
« en: Agosto 15, 2023, 01:01:29 pm »
Me parece que te puede servir el control de David: @AxioUK.
Te paso su control:

https://github.com/AxioUK/AxJControls

3
Visual Basic 6 / Re:Objeto Printer
« en: Agosto 15, 2023, 12:59:07 pm »
No le encuentro nada raro, de forma casi similar lo hago yo e imprimo imagenes en la cabecera y el pie.
Esta impresion esta yendo a una ticketera?

4
General / Re:¿Es posible programar un foro con Visual Basic 6.0?
« en: Julio 22, 2023, 02:35:01 pm »
En serio la pregunta?

Asumiré que si. El espíritu del "foro" es que sea publico y la mejor manera de que esto sea asi es usando la web y vb6 no esta creada para desarrollar en web. Se podria forzar usando alguna bd intermedia y volviéndolo una solución hibrida pero bueno, no encuentro una razón para crear un foro con vb6.

5
Visual Basic 6 / Re:Código de Barras
« en: Junio 23, 2023, 03:08:30 pm »
Bien lo prometido es deuda...! Puedes bajar el source de ejemplo Aqui

:(

@YAcosta; sigues por aquí?

Cada tanto si

6
No veo que tanta mas velocidad necesitas el llenar un recordset, cargo un recordset con miles de registro mas rápido que un pestañeo y además con eso siempre tengo un recordset mas actualizado. Así que una diferencia significativa de velocidad no le veo.
En todo caso puedes poblar tu recordset y dejarlo en memoria, cuando quieras buscar algo usar .find me parece, la verdad ya ataco directamente a la BD y siempre traigo el recordset ya listo para consumir pero si, creo que con find , esto con ADO claro.
Lo otro que puedes hacer es que una vez que leas el recordset lo vuelques a un array o a una coleccion y mantendrías esa coleccion o array en memoria.

Agrego algo mas, yo hago búsquedas mientras se teclea ya sea de clientes o de artículos usando like en el sql, y recuerda que el like pierde el índice, o sea, no lo usa y por lo tanto pierde velocidad y aun así es muy veloz, claro, no hablo de una tabla con decenas de miles de registros, en ese caso ya no lo hago por cada pulsación de tecla sino luego de un enter.

7
Visual Basic 6 / Re:crear y leer archivos almacen
« en: Marzo 10, 2023, 02:14:32 am »
Hola
No preguntaré porque hay que complicarse tanto para hacer lo que quieres hacer sin usar al menos una base de datos (incluso Access), tus razones tendrás, pero en el código no veo en que parte guardas alguna informacion en el almacén que acabas de crear.
La duda que planteo es retorica, o sea, no necesito respuesta porque la forma en que manejas el tema me resulta estresante :-) (no eres tu, soy yo)
Por otro lado, checate si NumRegsProds debe quedar vacio, no veo donde eso se incremente, no llego a captar como funciona esto:


Lo se, no te he sido muy útil, sorry, mas no te puedo ayudar, ojala algún colega con mas experiencia en esta forma de manejar el código te pueda echar una mano.

Saludos

8
Visual Basic 6 / Re:ucTabMdi
« en: Febrero 25, 2023, 10:15:51 pm »
Hasta que responda Leandro me parece que no lo ira a hacer porque primero el control Tab (como lo dice Lea en el blog) es del amigo Javier (otro excelente programador) y sin temor a equivocarme creo que no le quedara claro (como a mi tampoco) a que te refieres con adaptar el NewTab en el MDI. En todo caso seria bueno lo aclares un poco mas.

Saludos


9
Visual Basic 6 / Re:ERROR EN EL METODO
« en: Febrero 25, 2023, 10:12:48 pm »
Pero eso sale y luego normal, a mi me sale casi cada vez que inicio el IDE, solo lo acepto y luego todo sigue normal. Es un problema de carga de algo seguramente pero al parecer no es relevante

10
Visual Basic 6 / Re:Buenas practicas de programación
« en: Noviembre 16, 2022, 07:29:50 pm »
Por eso te comentaba antes que yo guardo el albaran (creo que albaran es como factura) en otra tabla por temas de corte de luz, pero esto solo para recuperación.

Y en esta parte donde dices:
"... cuando hacemos Click en el Listview podemos cambiar la cantidad por ejemplo de 1 a 4 , pero como NO guardamos en la base de datos hasta terminar todos los cambios , al guardar como las  ..."

Alli justo al final donde dices "..., al guardar..." es que te comenté anteriormente que justo antes de guardar pero dentro de la transaccion debes VOLVER a validar cada una de las líneas comprobando la disponibilidad.
Por ejemplo, tu lo debes tener +/- así:

Código: [Seleccionar]
GuardarCabecera
GuardarDetalle
OtrasOperacionesQueHagas

Tendría que ser así:
Código: [Seleccionar]
db.BeginTrans         <-- AbrirTransaccion 
If ComprobarDisponiblidad then   <--Esta seria una función booleana
   GuardarCabecera
   GuardarDetalle
   OtrasOperacionesQueHagas
   db.CommitTrans    <-- Comitear 
   Msgbox(ok)
Else
   db.RollBacks        <--  Deshacer
   Msgbox(No hubo cambios)
End if

12
Visual Basic 6 / Re:Buenas practicas de programación
« en: Noviembre 14, 2022, 01:09:41 pm »
La verdad que no te entendí bien... o sea, no entiendo que quieres hacer, es momento de decir: "No eres tu, soy yo".
Lsv supongo que te refieres a Listview? creo que si, será que no uso ese control pero asumo que ese es.

No me queda claro si hablas exclusivamente de la capa de presentación (de allí el lst) o de la bd.
"...guardar las unidades en algún sitio ANTES de editar ..."  ¿para que?

"cuando se edite la línea se guarda las unidades temporalmente , al actualizar pues se suma o resta la cantidad cambiada menos la temporal."  ¿¿¿???

"al guardar las líneas no se sabe que numero de unidades hay después de los cambios..." numero de unidades de donde??? del lst o de la bd???

A ver, yo lo manejo así:
Lo siguiente es muy al margen de la lista que guardas en la BD temporalmente por si se presenta algún tipo de corte.

En la medida que voy agregando items a la lista voy validando la disponibilidad (checando el stock). Ya será tu política permitir o no permitir stock cero, notificar si lo que se pide es mayor a lo que existe, si hay items en reserva, etc.
Cuando se termina toda la lista y le dan al botón grabar, antes de tocar las tablas de la BD hago un bloqueo y valido nuevamente cada una de las líneas (ya que trabajo en red), si la validación no pasa doy un mensaje y no toco nada en la BD y la libero. Si la validación pasa entonces grabo/actualizo/elimino todo lo que requiera esa transaccion y fin.

Saludos

13
Visual Basic 6 / Re:Buenas practicas de programación
« en: Noviembre 10, 2022, 09:50:26 pm »
Hola Carlos.

Te diría sobre la primera inquietud, yo uso una combinación de tu Opcion1 y Opcion2 a la vez.

Verás, Siempre creaba la lista de ítems (o líneas) en el control de lista y al final grababa. Así por años, y si es cierto, algunas pocas veces (muy pocas) podía ocurrir algún percance y si se corta la luz o lo que fuera se pierde toda la lista. Actualmente ya no lo hago así.
Lo que actualmente hago es que mientras se va agregando ítems o líneas a la lista estas las grabo ya mismo en la BD pero en una tabla temporal. Si se va la luz ya sabes de donde tomo los datos para volver a poblar la lista.
Cuando el usuario termina hago el volcado a la tabla "real" y listo. Resuelto el problema de cualquier corte de luz o lo que fuera.
Y ¿Por qué grabarlo en una tabla temporal y no directamente en la "real"? Porque en mi caso al grabar un registro en la tabla "real" también a la vez se tocan otras tablas ya sea por triggers u otros, por ello prefiero mantenerlo separado. Si el commit es exitoso ya borro la temporal.
¿Se toca mucho la BD con esto? Pues si, pero la verdad y dependiendo del motor que uses esto seria insignificante (en realidad seria nada para todos los motores menos Access).
Comentarte además que esta tabla la uso para varios temporales distinguiendo usuario y maquina desde donde hace el llenado a la lista.

Sobre la parte de Stocks no te entendí

Con la segunda duda:
Si usas un numero de control en una tabla para la parte de negocio es conveniente hacerlo como indicas, o sea allí le sumas uno y ya. Incluso uso esa forma con documentos fiscales y cero problemas.


Saludos desde algún lugar de Lima-Perú como dice mi amigo Abtm.




14
Visual Basic 6 / Re:Error al compilar Proyecto Visual Basic
« en: Octubre 27, 2022, 12:20:32 pm »
Te debe marcar la linea de codigo donde te salta el error. Alli debes checar o compartir ello por aqui

15
Visual Basic 6 / Re:Vb6NotifyIcon
« en: Junio 25, 2022, 12:59:40 pm »
Buena Elihu

Páginas: [1] 2 3 4 5 6 ... 191