elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  leer archivo combo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: leer archivo combo  (Leído 2,541 veces)
corlo

Desconectado Desconectado

Mensajes: 120


Ver Perfil
leer archivo combo
« en: 5 Junio 2022, 15:20 pm »

tengo un pequeño problema del programa Facturacion
a la hora de crear nueva facturacion va bien
a la hora de leer la informacion parece que lee pero no me lee la informacion en el formulario frmcompra del combo donde tiene que ir los articulos de leer la facturacion.

si yo creo varias facturaciones siempre en combo me lee la misma facturacion

el codigo del combo es el siguiente

Código
  1.  
  2.  
  3. Private Sub CmbArticulo_Click()
  4.    Dim Id As Integer
  5.  
  6.    If (CmbArticulo.ListIndex >= 0) Then
  7.        Id = CmbArticulo.ItemData(CmbArticulo.ListIndex)
  8.        RegArt = FrmAlmacen.ArticuloByCode(Id)
  9.        With RegArt
  10.            TxtUnidades.Text = CStr(.UnidadesPorCaja)
  11.            Call EstablecerValorImpuestos(.PrecioUnitario, .ImpuestoIVA)
  12.  
  13.            If (.IdOferta > 0) Then
  14.                LabOferta.Caption = "¿Está en oferta?:     SI"
  15.                Id = FrmOfertas.BuscarPorCodigo(.IdOferta, RegOfer)
  16.            Else
  17.                LabOferta.Caption = "¿Está en oferta?:     NO"
  18.                TxtDescuento.Text = "- 0.0"
  19.                Call VaciarRegOferta
  20.            End If
  21.        End With
  22.  
  23.        Call Totalizar
  24.    End If
  25. End Sub
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  



como puedo leer si son diferentes facturaciones y que vaya al combo del formulario frmcompra


gracias


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: leer archivo combo
« Respuesta #1 en: 5 Junio 2022, 19:45 pm »

Se supone que cuando se facilita código el interesado lo leerá y procurará entenderlo si no al 100%, al menos todo lo elemental de lo que hace y cómo lo hace aunque el detalle exacto, todavía resultare 'oscuro' por no haber se empapado en leerlo, ejecutarlo y probarlo a fondo.


Si hay abierta una facturación, entonces las 'facturas' que lea serán de esa facturación... si necesitas leer de otra facturación antes se debe cerrar la facturación actual (y guardar el carrito de la compra si hay alguno abierto) y abrir la facturación deseada...

Esa función (abrir una facturación) YA EXISTE, y consta en el menú de la ventana frmFacturación...

Citar
' 0 Crear nueva facturación, 1 Abrir una existente.
funcion mnuFile_Click(Index)
    si (index = Crear)
        ...
    Si (index = Abrir existente)
        Seleccionar fichero de facturación a leer
        Si se seleccionó un fichero de facturación
            componer ruta1
            componer ruta2
            si listar Facturación(ruta1, ruta2) = TRUE
                activar las acciones que hayan de operar con una facturación abierta
                mostrar carrito de la compra    
            sino
                desactivar las acciones que hayan de operar con una facturación abierta
            fin si                  
        fin si
    fin si
fin funcion

Código:
funcion ListarFacturacion(ruta1, ruta2)
    cerrar facturacion actual

    Si pudoAbrirse ruta1 y ruta2
        leer cantidad1 de registros del canal1 de ruta1
        leer cantidad2 de registros del canal2 de ruta2

        Si (cantidad1 > 0)
            bucle para leer todas las facturas de ruta1 que se pasan a lista1
            // cuando se pulse en un ítem de lista1, rescata de ruta2 los productos comprados en la factura pulsada y que se muestran en lista2
            devolver TRUE
        fin si
    fin si
fin funcion
Esto es lo que procede en la ventana de facturación cuando se decide abrir una facturación...

Los datos de una facturación abierta son públicos y accesibles a través de todas las ventanas del proyecto (no se usan clases, pues no has modificado el código, como sugerí que era lo adecuado, dadas tus limitaciones del conocimiento del lenguaje y en general de la POO)...

Ahora cuando se abre la ventana de compras (cosa que solo podrá suceder desde la ventana de facturación, previa apertura de un fichero de facturación, pués es una de las acciones (menú edición --> Nueva compra) que se activa o desactiva en sincronía con abrir, cerrar facturación, etc...), opera por tanto con los ficheros de facturación abierto, cuyos canales, cantidad de registros, etc... son públicos...

...además el código está profusamente comentado, para terminar de explicar lo que no resulte obvio en el código, o simplemente para facilitar lo que hay que recordar... También se dió extensa explicación en prosa del comportamiento general del programa, ventana a ventana...
Código
  1. ' NOTA: Dado que el código de lote aparece en el listado (y van ordenados), no se requiere ya una búsqueda por lote.
  2. ' NOTA: Dado que ahora el lote mantiene el costo total, ya no hace falta totalizar el costo de cada lote.
  3. ' NOTA: Dado que ahora al leer una facturación o añadir un lote, se actualiza el total de todas las facturas, no se requiere un menú para ello.
  4. ' NOTA: Dado que ahora hay una ventana para el almacén con los artículos, ahora no es necesario buscar artículos...
  5. Private Sub mnuLotes_Click(Index As Integer)
  6.    Select Case Index
  7.        Case 0  ' Nuevo pedido
  8.            FrmCompra.Show  ' <------------------
  9.        Case 10  ' Imprimir factura:
  10.            MsgBox "...queda a tu esfuerzo generar el reporte... a tu gusto y manera.", vbCritical
  11.            ' Se puede imprimir en una ventana nueva, para ver como queda y formatear como hacías en tu código.
  12.    End Select
  13. End Sub

...por su parte (como se puede leer en la última nota encima del 'code' previo), el combo al que te referes  se llena (y contiene exclusivamente) los artículos que figuran en el almacén... el almacén es independiente de la facturación. se comparte entre todas.
Se supone que una 'tienda', factura por meses (quincenas o el tiempo o modo que se quiera), pero sea cual sea el mes, tiene siempre los mismos productos en stock... (almacén que, permite (además de devolver su listado) añadir, modificar y con reservas (como ya te indiqué en su momento) eliminar artículos)... es decir no es de de recibo que una tienda venda un mes productos de farmacia y otro mes fruta y otro mes artículos para construcción y otro mes artículos de ferretería... Dado el carácter de 'ejemplo' del proyecto, no se ha previsto tal flexibilidad (ni tampoco es lo habitual), luego los artículos que se cargan en el combo susodicho, son todos los que se localizan en el 'almacén'...  y como digo es independiente de la facturación abierta.

Todavía... si la facturación ha de operar un mes con artículos de farmacia y al siguiente con artículos de ferretería, etc... todavía es posible hacerlo, tendrás que tener copia del programa en carpetas distintas, creas una carpta llamada farmacia y pegas ahí copia dle programa, en el almacén que tendrás que crear aquí, metes los productos de farmacia, que serán los que puedas comprar... desde estas facturaciones... creas otra carpeta llamada ferretería y ahí copia del programa (vacío), al crear su almacén, tu entrarás productos exclusivos de ferretería... que será lo que puedas comprar con la facturaciónes de ferretería.

El 'frmcompra.show (en el 'code' último), invoca la carga de la ventana y en la carga de la ventana se invoca la función Inicializar (dicha ventana). Dicha inicialización no es otra cosa que cargar dicho combo, con los artículos del almacén.

' Solo se ejecuta una vez si no se descarga la ventana (solo se oculta).
Private Sub Inicializar()
    ' Solo se añaden los artículos de los que hay existencias en stock en el almacén.
    bucle por cada item en el almacen
        leer y añadir al combo (oculto) el id del artículo y mostrar el nombre del artículo.
    siguiente en bucle
    Si el almacen no está vacío tomar seleccionar el primer ítem del combo.
fin sub

Cuando se pulsa en un item del combo, dado su id, se rescata de fichero el registro del artículo referido que se vuelca a la interfaz, esperando además que el usuario decida cuantos artículos compra, actualiza y desglosa el valor total de la compra, en impuestos, inclusído el caso de descuentos si el artículo está en oferta... que corresponde exactamente con el  código que muestras), finalmente el usuario podrá elegir otro artículo, o comprar éste añadiéndolo al carrito de la compra.

Entonces tu pregunta carece de sentido... (si has leído y entendido el código proporcionado).

Citar
si yo creo varias facturaciones siempre en combo me lee la misma facturacion
como puedo leer si son diferentes facturaciones y que vaya al combo del formulario frmcompra
De entrada este combo, no toca nada de la facturación, pues es para comprar, solo si se decide comprar irá al carrito y de allí al fichero de facturación actualmente abierto.
Da igual las facturaciones que crees, siempre estás comprando artículos que constan en el almacén... pues el almacén se comparte entre las diferentes facturaciones.

Si necesitas asociar una única facturación con los artículos en el almacén, como te he dicho, el programa en sí mismo no provee (directamente) esa posibilidad, ni es lo habitual, ni fue solicitado, ni has hecho (supongo) ningún cambio para implementarlo... pero todavía es posible hacerlo (indirectamente) creando carpetas distintas que contengan copia del programa y cada carpeta se dedica en exclusiva a un determinado tipo de artículos tal como se ha comentado más arriba. Igual que un foro se especializa en un tema (elhacker.net por ejemplo lo es para informática), y si quiere un foro de psicólogos, lo lógico es que s eprovea su propieda dirección web y se especialicen los temas, del mismo modo el programa de facturación se especializa en un tema, que viene determinado (de alguna manera) por los artículos que incluye su almacén...


p.d.: Tampoco pasa nada 'grave' si se usa una facturación cuyo almace´n tiene productos de farmacia, de ferretería, de construcción o frutas... excepto que será un poco caótico para el comprador ver toda una mezcolanza de artículos.

Sugeriría un cambio en el programa para contemplar tla posibilidad: 'categoria'...

1 Habría que añadir una ventana categorías, donde tu añades o modificas categorías: 'ferretería' framacía, construcción, frutas, etc... se asocia un íd y texto con cada categoría (igual a como se hace con los registros de otras ventanas)...
2 luego en el registro de almacén habría que añadir un campo categoría. Al crear un artículo, debe asociarse a una de las categorías existentes, eligiéndola de un combo que muestra las categorías, existentes.
3 Igualmente a cada facturación habría que aosciársele una categoría (cuandos e crea la facturación). En lo sucesivo cuando se abre una facturación se lee su idCategoría... que se usa en el punto 4.
4 Finalmente cuando la ventana de compras trate de cargar los artículos, filtrará los artículos a cargar, es decir cargará solo aquellos artículos cuya categoría es la que corresponde con la categoría de la facturación abierta.

Esto hace el programa un poco más complejo, pero poseeería así la flexibilidad precisa.. aunque no es lo habitual... una base de datos por lo general se especializa en un area... o se generaliza (por ejemplo caso de páginas de venta por internet (como ebay que vende de todo, pero aún así permite gategorizar)).

Lógicamente todos esos cambios quedan a tu esfuerzo. Yo dí por terminado la ayuda prestada al respecto de proporcionarte código en este tema.


« Última modificación: 5 Junio 2022, 20:04 pm por Serapis » En línea

corlo

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: leer archivo combo
« Respuesta #2 en: 5 Junio 2022, 21:58 pm »

gracias por responder serapis

se supone que el elhacker.net es un foro para hacer preguntas de visual basic 6.0

solo me falta este punto de programacion para solucionar, ya no hare mas preguntas gracias
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: leer archivo combo
« Respuesta #3 en: 6 Junio 2022, 21:14 pm »

Claro. Si yo no te digo que no preguntes (de hecho suelo indicar en muchos de mi mensaje justo lo contrario, que si hay dudas que pretgunten)...

Lo único que te pido es que tus preguntas sean consecuentes.

Esta última pregunta, por ejemplo carece de sentido... tu preguntas por facturaciones (uno u otra), cuando en la ventana de compras, le da igual la facturación, pués opera con los artículos del almacén y luego los enviará al 'carrito de la compra'... luego o se cancela o se compra y si se compra irá a la facturación actualmente abierta. Y si no hay una facturación abierta, no se puede comprar, porque el menú queda bloqueado, sujeto a esa condición (facturción abierta). Pero incluso esto, yo no debería decírtelo, ya tu deberías saber con alguna claridad qué es lo que hace esa ventana y en qué condiciones opera.

Técnicamente yo no debería haberte respondido nada más que: "tu pregunta no tiene nada que ver con la realidad de la funcionalidad de la ventana de compra..." aún así he hecho el esfuerzo de intentar intuir si la cuestión que te bloquea fuera por otro lado y simplemente no te hayas explicado adecuadamente... y en esa 'intución forzada', ni siquiera sé si mi respuesta te será o no de ayuda, es decir si acaso acerté con tu problema o solo he perdido tiempo explicando algo que no te interesa para nada, pués no aportas ningún 'feedback', que en lo sucesivo permitiere trazar un camino acertado a seguir.
En línea

corlo

Desconectado Desconectado

Mensajes: 120


Ver Perfil
Re: leer archivo combo
« Respuesta #4 en: 6 Junio 2022, 22:18 pm »

Hola Serapis

no se si estoy mal fijado o no

si se abre un archivo de facturacion los articulos que hay en dicha facturacion van al combo del formulario frmcompra para poder ir comprando articulos para la facturacion, si no que sentido hay en hacer crear facturacion y leer facturacion

gracias
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: leer archivo combo
« Respuesta #5 en: 7 Junio 2022, 01:58 am »

La ventana de 'compras', junto con la de 'Almacen' suponen realmente ser el 'catálogo'... El almacén contiene todos los artículos que se puedne comprar (y la cantidad en stock de cada uno de ellos).

El comprador usa la ventana de compras, para indicar que artículo quiere comprar de los que el almacen provee... ahí admeás se señala cuantos quiere comprar. Cuando quiere comprarlo, lo añade al carrito.... En la ventana de compras, cuando se elige un producto, se exhiben las características del producto, para que el comprador pueda decidir mejor.

El 'carrito' de la compra, es una compra reservada, con la oportunidad de más adelante descartarlo... justo como haces cuando vas a un supermercado, metes artículos en tu carrito y los sueltas más tarde si quieres o lo cambias por otro, o tomas más cantidad del mismo artículo....

Solo cuando pasas por caja, (pagar los productos que contiene el carrito), es cuando la compra se ha realizado. Se completa con la emisión de la factura al cliente, y en la parte del vendedor anotar la factura comprada...

La suma de todas las compras es la facturación. Un 'supervisor', podría querer  consultar que productos se han vendido, por ello se listan en facturación. Cada factura es un ticket, y tiene asociado una lista con los productos comprados en ese ticket (lote, factura).

Típicamente las empresas venden los mismos productos (o casi siempre, dado que el stock puede ir variando ocn el tiempo, un producto ya no se vende y uno nuevo entra en stock...). Eso es el almacén, siempre en la trastienda, en la tienda dado su tamaño, y la necesidad de exponerlo al comprador, el producto suele ocupar más tamaño, la altura está limitada y la anchura de pasillos puede estar sujeto a leyes (anchura mínima), el almacén permite tenerlo todo apilado ocupando menos espacio, en cualquier caso el control del almacén, va por otro lado de la gestión de la tienda, pués la tienda vende (desde el almacén se compra en grandes cantidades, por lo general).

Las empresas necesitan hacer cuentas periódicamente para hacer balances, típicamente cada mes, coincidiendo con la misma periodicidad en que s eaga a los empleados, así se puede conocer con exactitud el coste total por mes y por tanto distinguir la recaudación, los beneficiós, los salarios, los impuestos, etc...

Bueno, pues las facturaciones son equivalente a las nóminas de los trabajadores, cada mes deben expedirse y detallarse y lógicamente poder consultarse (y probablemente imprimirse).

Siempre podrás hacerse una suma total anual, que tome las 12 últimas facturaciones y calcule el total de recaudación, de impuestos aplicados, de facturas emitidas, de artículos vendidos, etc... Unos valores mínimos serías para presentar a Hacienda, y otros detalles podrían ser para optimizar el lamacén o potenciar las ventas de determinados artículos, los vendedores tiene toda una plétora de artimañas para intentas optimizar las ventas y para ello necesitan muchos detalles... las ofertas son solo una de ellas, peor muy habitual.

...entonces la facturación que se abre, es como cuando los cajeros del supermercado acuden por la mañana al trabajo y 'abren su caja' metiendo su código personal, para seguir vendiendo... eso es abrir la facturación (abrir el programa con la facturación actual).

...como digo el supervisor puede querer abrir una factuación pasada, para consultas o impresión de detalles, pero no ya para comprar. La facturación para comprar siempre debería ser la más actual. El contable del supermercado, cuando termine el mes tendrá las nómicas dle mes de cada trabajador y a su vez presentará la facturación al director... igualmente el dueño o supervisor de la tienda, cuando termine el mes, debería crear una nueva facturación y apartar la previa a otra carpeta donde también tiene copia del programa (o iría a parar a su ordenador o a un servidor), precisamente para consultas. Así las compras se hacen siempre sobre la facturación del mes en curso.

...la facturación del mes pasado (y anteriores) está cerrada, aunque el programa (creo recordar, no voy a recordar todos los detalles varios meses después) que no ha provisto un 'mecanismo de cierre de facturación' tal que luego dicha facturación estuviere sujeto solo a lectura, no a modificaciones ni añadidos.

En todos los ficheros que se crean he dejado suficientes espacio en la cabecera como para abordar detalles específicos a cada uno de ellos, tal que no requiera recrear-reconstruir todos los ficheros ni el código en el mismo... bastaria pues añadir el código para tratar esos campos que fueren añadidos en la cabecera del fichero deseado. Pero todo eso ya se entiende que corresponde a las ideas y modificaciones que el interesado puede acometer de forma particular... yo he provisto generalidad y espacio en la cabecera, para que sea flexible a añadidos de características específicas de trato a los ficheros. Incluso creo recordar que proveí también en los registros campos reservados para posibles futuras ampliaciones tal que no exijan reescribir todos de nuevo y los ficheros (previos) puedan seguir siendo legibles.

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Leer archivo .civ « 1 2 »
Programación Visual Basic
Tyrz 13 5,438 Último mensaje 9 Septiembre 2007, 12:54 pm
por Tyrz
leer archivo con api's « 1 2 »
Programación Visual Basic
krackwar 12 4,911 Último mensaje 14 Julio 2008, 17:00 pm
por krackwar
Leer archivo xml....
.NET (C#, VB.NET, ASP)
Zeroql 7 6,628 Último mensaje 3 Julio 2010, 00:16 am
por Zeroql
leer archivo
Java
m@o_614 4 2,175 Último mensaje 24 Junio 2014, 01:52 am
por ~ Yoya ~
Abrir archivo, leer datos y modificarlos en otro archivo.
Java
Tonyskater 6 6,731 Último mensaje 24 Mayo 2017, 20:25 pm
por Tonyskater
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines