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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 ... 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ... 431
371  Programación / Programación Visual Basic / Re: Guardar list2 y leer list1 en: 12 Marzo 2022, 21:03 pm
Guau... de verdad no eres capaz de seguir las instrucciones (que en realidad ni siquiera tendría que explicarte, pues es demasiado sencillo)?.

El códigos que te he proporcionado, incluye comentarios (dentro del código): que ponen lo que hay que hacer:

Código
  1. 'Remplazar o eliminar ---x--- (líneas de código que he comentado, precedido por el caracter de comentario)
  2. '...
  3. 'Por esto esto otro ---y---
  4.  

Donde algo  como: '...
Representa código previo, intermedio o final que (pudiera haber y que) no tocamos... Es decir, indica que busques las líneas que te haya indicado, que las borres y que lo remplaza las líneas que puse, que también se señala y que el resto de código en la función no se altera.

Es decir... ¿No hay forma de indicarte lo que debes hacer, diciendo simplemente remplaza las líneas que te indico por las otras que también te indico?, ¿debo darte todo el código listo, solo para copiar y pegar?.  

Tómate la molestia de leerlo, entre el código he añadido los comentarios de qué debe ser remplazado/eliminado/comentado y qué lo remplaza.
372  Programación / Programación Visual Basic / Re: Guardar list2 y leer list1 en: 12 Marzo 2022, 19:22 pm
me sale error
Compile error
ByRef argument type mismatch en la variable Reg
Ok...

Si te fijas en el código, tenemos declarado RegX (a nivel de módulo), que se usa en la función, pero no 'Reg' (ni siquiera dentro a la función), es culpa del copy-paste que hice de la línea 14 (la tomé tal cual de otro código que te puse antes y la pegué ahí, sin hacer la adaptación pertienente)... ¿ves que pone ...(Reg)?. remplázalo por RegX, que está declarada a nivel de módulo.

Aunque es un error fácil de reconocer... el propio error ya te da la pista "ByRef argument type mismatch en la variable Reg", la función lllamada exige una variable de un tipo determinado, ahí 'Reg' técnicamente es un variant (al no estar declarado).
argument type -- mismatch = El tipo del parámetro pasado a la función no coincide con el esperado.

Cuando tengas dudas con los errores, ve a la ayuda (que te ofrece) y te amplía los detalles de por qué se produce tal error (muy pocas veces (en VB6), está mal o imprecisamente explicado en la ayuda).

p.d.: nota también que escribí mal el nombre del textbox: txtNumeorFactura (línea 8), en la línea anterior está bien escrito. Me suele ocurrir con relativa frecuencia con el teclado que al escribir muy rápido escriba una letra con una mano antes que la que toca con la otra mano...
373  Foros Generales / Foro Libre / Re: Se requiere una autenticación tienes que acceder a tu cuenta Google.. (Android) en: 12 Marzo 2022, 18:36 pm
Lo primero a sospechar es si hay alguna intrusión... Es probable que el dispositivo esté infectado por algún virus.

Tampoco descartaría una desconfiguración (un cierre de sesión forzada).

Por último, cabe la posibilidad... que quizás el problema pueda estar más relacionado con algún bloqueo de geoposición... Tu IP, pudiera estar indicando que están/se ubica en una geografía actualmente bloqueada (¿Rusia?). Esto puede ser tanto más cierto, si usas alguna VPN donde no tienes claro a qué país corresponde la IP de conexión.
374  Foros Generales / Foro Libre / Re: Conflicto Ucrania-Rusia,EEUU, OTAN, Europa. (Todas las noticias relacionadas irán aquí) en: 12 Marzo 2022, 17:54 pm
Rusia aplica una «represión estalinista» sobre sus propios militares
Se estima que los muertos por Stalin son de alrededor de 40 millones (sumando todas las causas)... una cifra de muertos similar a la que se cree que pudo tener Gengis Khan.

Vamos, que el redactor del artículo no tiene necesidad de ponerlo encorchetado como si fuera algo misterioso o incomprensible que se acaba de inventar él mismo, en todo caso un enlace...

Y al hilo de la Guerra de Putin... cuando Stalin, confiscó la producción de cereal de Ucrania, murieron unos 10 millones de hambre (de ellos unos 6 eran ucranianos).  Ucrania ya desde entonces ha servido como el granero de la URSS... de hecho hoy nutre a gran parte del planeta.

No queda claro aún cual es el panorama que Putin tiene en mente al caso (el 'granero'). Desde luego acceso al mar Negro, es algo que siempre ha querido, paso directo hacia el resto de Europa también (así evita pagar las tasas que le estaba pagando a Ucrania por las tuberías que pasan por su territorio), da igual que lo camufle de 'desnazificación', es pura y duramente una operación basada en la economía... la excusa de la entrada en la OTAN es solo eso una excusa perfecta, que al final ha tenido que aderezar con 'desnazificación'... Es prácticamente imposible ser más cretino.

...nos queda el consuelo de ver si un día de estos, alguien da la noticia de que un comando (da igual de dónde sea, como si es su mecánico personal) han encontrado a la rata y la han reventado de un tiro en la cabeza, que la paz vuelva y la reconstrucción de Ucrania empiece.
375  Programación / Programación Visual Basic / Re: Guardar list2 y leer list1 en: 12 Marzo 2022, 16:43 pm
No termino de entenderte del todo... te respondo tirando de intuición (a veces, un esquema, un croquis de lo que uno espera ayuda a aclarar las cosas).

El listado superior, puedes eliminarlo, o simplemente ocultarlo.
Si se elimina, esos totales  que tiempo atrás querías para diferenciar el volumen de compra con tarjeta de crédito y en efectivo, he de suponer que se sigue requiriendo, luego la función que carga el listado superior (ListarFacturacion), debe seguir existiendo (quizás deba cambiar el nombre para reflejar su funcionalidad actual "TotalizarFacturacion") ...
Si tampoco necesitas esos textbox, la función casi entera se puede eliminar y entonces se debiera llamar "Inicializar", pués todavía debe abrir los ficheros y leer la cantidad de registros y el valor autonumericod e incremento y mostrar la primera compra.

Eliminando ese listado, y poniendo un textbox y un botón para leer una factura, es simple.

Ahora mismo para leer el contenido de una compra, se debe:
- Leerse el registro de compra (por su numero de factura). ahora mismo el número de factura (IdLote se toma del valor almacenado en intemdata(listindex), y se invoca desde el click del listado: "sub LisLotes_Click"
- Una vez leído el registro de compra, sabremos cuantos ítems se compraron, el índice donde localizarlos en el fichero y el valor total de la compra.
- Con el indice y la cantidad a leer (están consecutivos), se leen igual que antes (esta función no cambia nada).

Luego el código es fácilmente modificable, tu estarías remplazando el rescate del numero de factura que en vez de tomarse del itemdata del ítem activo en el listado, lo tomes desde un textbox y en vez de llamarse cuando se pulse en el listado, se llama cuando se pulse en un botón:

Este es el código actual para hacer la llamada que lista los productos de dicha compra:
Código
  1. ' Lee los productos comprados que forman dicho lote y los muestra en el listado de productos.
  2. Private Sub LisLotes_Click()
  3.    If (LisLotes.ListCount > 0) Then
  4.        Call PosicionarRegLote(LisLotes.ListIndex + 1)          ' allí se resta 1.
  5.        Get #CanalLote, , RegX
  6.        IdLote = RegX.IdPedido
  7.        Call ListarCompraDelLote(RegX.Index, RegX.Cantidad)
  8.    End If
  9. End Sub
  10.  

Así el código a cambiar es relativamente sencillo, podría ser algo como:
Código
  1. ' Lee los productos comprados que forman dicho lote y los muestra en el listado de productos.
  2. Private Sub ComBuscar_Click() ' <---- al pulsar el botón
  3.    dim id as integer
  4.  
  5.    if (NumRegsLotes>0) then '  If (LisLotes.ListCount > 0) Then   ' si hay registros en la facturación...
  6.        if (isnumeric(txtNumeroFactura.text)) then    ' si el textbox tiene un número válido
  7.            id = cint(txtNumeorFactura.text)               ' el textbox es quien indica ahora el numero de factura
  8.            if (id <= NumRegsLotes) then
  9.                Call PosicionarRegLote(id +1)  ' Call PosicionarRegLote(LisLotes.ListIndex + 1)          ' allí se resta 1.
  10.                Get #CanalLote, , RegX
  11.                IdLote = RegX.IdPedido
  12.                Call ListarCompraDelLote(RegX.Index, RegX.Cantidad)
  13.                txtFactura.Text = RegCompraToString(Reg)
  14.                exit sub
  15.            end if
  16.        end if
  17.    End If
  18.  
  19.    ' Si el botón está siempre activado... lo ideal es que esté activo solo si el número de factura es válido.  
  20.    txtFactura.Text = ""
  21.    call msgbox ("Número de factura no reconocido. Debe haber facturas y el número de factura ser mayor que 0 y menor que el número de registros actuales")
  22. End Sub
  23.  

...y en el código pocos cambios más necesitas hacer, salvo comentar o eliminar las líneas que cargan dicho listado (el total se supone que todavía querrás hacerlo):
Código
  1. Private Function ListarFacturacion(ByRef Ruta1 As String, ByRef Ruta2 As String) As Boolean
  2.    '...
  3.    ' Remplazar/eliminar las líneas aqui comentadas:
  4.    If (NumRegsLotes > 0) Then
  5.            'With LisLotes
  6.             '   .Clear
  7.  
  8.                Call PosicionarRegLote(1)       ' allí se resta 1
  9.                For k = 0 To NumRegsLotes - 1
  10.                    Get #CanalLote, , RegX
  11.             '       Call .AddItem(RegCompraToString(RegX))
  12.              '      .ItemData(k) = RegX.IdPedido
  13.  
  14.                    If (RegX.MetodoDePago = MetodosDePago.PAGO_AL_CONTADO) Then
  15.                        TotalContado = (TotalContado + RegX.Total)
  16.                    Else
  17.                        TotalCredito = (TotalCredito + RegX.Total)
  18.                    End If
  19.                Next
  20.  
  21.                Call ShowTotales
  22.  
  23.                ' <---- Ahora si se quiere puede leerse de nuevo el primer registro para transferirlo a los textbox...
  24.             '   .ListIndex = 0 ' para ello delegamos en el código que pondremos al listbox...
  25.            'End With
  26.  
  27.    ' Y añadir estas dos en esta posición:  <---- Ahora si se quiere puede leerse de nuevo el primer registro para transferirlo
  28.             txtNumeroFactura.Text = "1"
  29.             call ComBuscar_click
  30.        End If
  31.    '...
  32. end sub
  33.  

Igualmente cuando se añade un registro de compra, que antes se añadía al listado, ahora se pone en el textbox:
Código
  1. Friend Sub GuardarCompra(ByRef Reg As RegLote, ByVal Productos As Integer)
  2.  '...
  3.  ' Remplazar (o comentar) estas líneas:
  4.  ' With LisLotes
  5.  '      Call .AddItem(RegCompraToString(Reg))               ' También lo añade al listado.
  6.  '      .ItemData(.ListCount - 1) = AutoIncLote
  7.  '  End With
  8.  ' ...
  9.  '  LisLotes.ListIndex = (LisLotes.ListCount - 1)           ' Fuerza a listar los productos comprados en este lote.
  10.  
  11.  ' con estas:
  12.     txtNumeroFactura.Text = cstr(reg.IdPedido)
  13.     txtFactura.Text = RegCompraToString(Reg)
  14.     call ComBuscar_Click
  15. end sub
  16.  


La interfaz, por su parte tampoco requiere mucha complicación: Se añaden 2 textbox y un botón y se elimina el listado superior, y se reordena la interfaz reubicando los controles. Hago cambios a la imagen previa, para reflejar como cambiaría la interfaz:
Nota que el listado superior desaparece, ahora es remplazado por un textbox (txtFactura), debajo ... que muestra los valores de dicha factura (en la imagen 'la factura desglosada' no se corresponde con la 'rescatada', es un copy paste, la que le correspondía estaba seleccionada y el textbox debe tener la propiedad locked a true (no es editable solo muestra valores), así esa selección podría inducir a error de interpretación).

Puede verse que se añade un textbox (TxtNumeroFactura) y un botón (ComBuscar) para buscar... los otros controles (de totales) se han colocado a la derecha y debajo del listado (igualmente pueden retirarse en dejarse sobre el menú pues son solo informativos, como ese nuevo textbox.


Ese textbox de la compra a añadir (que remplaza al listbox, lo sigo viendo necesario, porque contiene información importante como fecha, coste total de la factura, descuento aplicado por volumen de compra (los registros de artículos comprados solo incluyen los desceuntos que afectan a ese artículo en particular), tipo de pago efectuado...

También, es absurdo que teniendo ahora ambos ficheros ordenadamente cada uno con sus registros, requerir ahora cada vez totalizar la suma de compra (la provee el propio registro de compra), además el registro de compra incluye aparte el decuento que se aplica de forma individual a cada artículo (si procede).

En definitiva, los cambios a realizar son simples, no hay nueva funcionalidad que se deba añadir, existe , son solo pequeñas modificaciones que debes hacer tú... repasa todo el código de la ventana, en busca de posibles referencias  al listado 'lisLote', por si aparece en más sitios y ver si basta con eliminar dichas líneas o si deben ser remplazadas por otras...
376  Programación / Programación Visual Basic / Re: Guardar list2 y leer list1 en: 11 Marzo 2022, 22:09 pm
faltaria una cosa en el formulario de facturacion poner una opcion de Guardar Factura con numero de facturacion y la opcion de leer con numero de factura
No entiendo...

1 - Las facturas se pueden ver en el listado superior.
2 - El número de factura aparece en la columna 'Lote' (campo IdPedido de la estructura 'RegLote').
3 - Como las facturas una vez creadas, ni se modifican ni se eliminan, en el listado superior aparecen ordenadas por número de facturación (campo IdPedido de la estructura)-.
4 - Estando ordenadas por dicho valor, es relativamente fácil localizarla en la lista, seleccionarla y acto seguido se leen los artículos comprados con esa factura y en el listado de abajo se detalla.

Tomando la imagen de más arriba y pegándola de nuevo aquí, puedes ver que el número de factura es el 2. se compraron 7 artículos  en ese lote, que s elistan debajo que admeás tienen su propio número de compra (que no de factura), que van del 5 al 11 (columna compra, campo IdCompra de la estructura 'RegCarrito')...



Quizás te refieras a otra cosa y por ello no termine de entenderte.


p.d.: El id de facturación aunque empieza en 1, pero es fácil de modificar...

Para ello, cuando se crea la nueva facturación, si es preciso puedes solicitar el número de facturación inicial, con un imputbox (lo mismo que se solicita el nombre del fichero), adjunto una imagen con el escaso código a añadir... en el ejemplo se supone que la primera factura en el fichero ha de tener el número 133 (en el código se resta 1, porque cuando se hace la compra se suma uno antes de guardarla a fichero).
He emarcado con un punto de pausa en las líneas nuevas o modificadas (al margen de la declaración de la variable arriba y la declaración del parámetrod e la función abajo).


377  Foros Generales / Foro Libre / Re: Conflicto Ucrania-Rusia,EEUU, OTAN, Europa. (Todas las noticias relacionadas irán aquí) en: 11 Marzo 2022, 19:03 pm
Se viene haciendo eco, la noticia de que Putin podría tener un cáncer terminal (y sugieren que por eso, quieriendo pasar a la Historia, antes que el tiempo lo sepulte, ha diseñado esta invasión). La notici lleva rulando varios días, pero no parecía tener un origen conocido... hoy he podido ver que un reportero asegura que la noticia se la ha dado un británico de los servicios secretos.

En fin, si fuera cierto, Entonces Putin ha hecho lo que toda la vida se ha referido con el dicho: "Para lo que me queda dentro... me xxxx..."
378  Programación / Scripting / Re: Guardar datos correctamente en un archivo en: 11 Marzo 2022, 18:31 pm
Hay varias opciones:
1 ---La más rápida y simple:
Basta elegir la fuente 8514oem, pués es esa fuente la que corresponde.


Se usan estos 4 caracteres:
- Ä para la raya horizontal (carácter 196)  para hacer la tabulación horizontal de rayas (de ahí que vayan en grupo de 3 o 4).
- ³ para la raya vertical (carácter 179) que ocupa el alto de una línea, para los trazos verticales.
- Ã para la raya vertical con quiebro horizontal (carácter 195).
- À para el codo de la última raya vertical que (carácter 192) p.d.: (Se me olvidó anotar éste).

Eso sí, dado que el bloc de notas, comparte la fuente con todas las instancias abiertas, al cambiar la fuente, cuando vayas a cerrar el fichero, vuelve a dejar la fuente que tenías establecido para el bloc de notas.


 
2 --- Otra opción para solventar esto podría ser usar el worpad/write/word/etc... e incluir todo el texto entre etiquetas de uso con dicha fuente, ...pero wordpad/etc..., no soportan (en general) esta fuente (es una fuente de tipo fijo)...
3 --- Puede remediarse si tomas una fuente que te guste y editas (con un editor de fuentes), justamente esos 3 caracteres). Es una opción relativamente asequible, pués te permite a futuro poder abrir cualquier archivo 'así' con cualquier programa de texto que permita establecer una fuente específica para una sección o todo el texto, wordpad, word, etc...

4 --- Una última alternativa es que tú mismo crees tu propia aplicación para abrir estos ficheros que tengan seleccionada esta fuente por defecto (claro que si no es algo muy necesario va a ser mucho trabajo).

p.d.: Tal vez exista alguna otra fuente que ya incluya esos 3 caracteres (mira la imagen adjunta, los 3 están juntos formando un ángulo), y que la fuente sea TrueType (ttf), Open Type (otf), etc... en vez de una fuente fija (fon), en cuyo caso podría abrirse sin problemas en cualquier programa entre etiquetas para esa fuente... Esta solución se usaría para el caso 2. Es decir en vez de editar una fuente (como sugiero en 3), ver si ya existe una que los contenga.
379  Foros Generales / Foro Libre / Re: Conflicto Ucrania-Rusia,EEUU, OTAN, Europa. (Todas las noticias relacionadas irán aquí) en: 10 Marzo 2022, 15:43 pm
Como ha cambiado la cosa...

Allá por los 90, tras la caída del comunismo y la URSS, Ucrania era el tercer país del mundo con más armas nucleares, ubicadas en silos repartidos por todo el territorio de Ucrania, era un auténtico polvorín. Tras los acuerdos de desnuclearización, Rusia pidió a Ucrania que le entrregara todas las armas nucleares, Ucrania aceptó a condición de que Rusia les defendiera en caso de ataque...

... a día de hoy, quienes esperaba Ucrania que fuera a atacarles, son quienes están a su lado y tímidamente les están ayudando, y quien se supone que debería defenderles (básicamente sus hermanos), son los que les están atacando como lobos hambrientos.

Ya nadie puede dudar que Putin es el siguiente Hitler. Fuck Putin.

Me preocupa esto  >:( como harán los rusos para acceder a Internet?  :( tampoco es que el gobierno se vaya a ver muy afectado. De todas maneras supongo que se trate de una medida de presión social para generar descontento en la sociedad.
Yo también opino que no es buena idea.
Ahora Putin tiene la excusa perfecta para imponer 'RuNET' y tener el control total de lo que entra y sale, vamos la policía vigilando cada paquete que viaja por la red, básicamente igual que China.

Otra cosa por la que veo que es una idea equivocada, es que ahora  los rusos, solo tiene acceso a una voz: La de Putin y sus secuaces... no podrán informarse libremente sobre la auténtica verdad. En esa tesitura, la única palabra será la versión que el gobierno ruso redacte.

...a buen seguro que en Rusia existen más nazis que de los que pudieran exitir en Ucrania... (aunque solo sea estadisticamente, pues Ucrania tiene 42 millones de habitantes, en tanto que Rusia tiene 100 millones más)... Ah, no... que Puitin llama NAZI, a todo el que le lleva la contraria, es solo una excusa bananera, dice nazis, como podía haber dicho aliens. ...el caso es que el nazi supremo resulta ser él.

Quizás la única cosa buena del bloqueo de internet a Rusia, sea que los ataques de ramsonware, seguramente van a disminuir sensiblemente.
380  Foros Generales / Foro Libre / Re: Conflicto Ucrania-Rusia,EEUU, OTAN, Europa. (Todas las noticias relacionadas irán aquí) en: 7 Marzo 2022, 15:40 pm
Hoy la factura de la luz bate records... aprox, 550€ por Mwh, unas 12 veces más caro que hace un año.

Dada la gran dependencia de Europa (en general), de las energías procedentes de Rusia, puede afirmarse que Europa (indirectamente) está financiando la Guerra de Putin.


Te lo compraría, si la cifra final '24' se sumara como el resto de las veces: '2' + '4' ...para llegar a 32. No siendo el caso, es lo que se dice "meter con calzador".

Por otro lado las fechas de inicio de una guerra, raramente son claramente definidas.
Por ejemplo, aunque se da por buena el inicio de la I Guerra mundial el 28 de julio, en realidad, puede tomarse como el 28 junio (justo un mes antes, que es cuando se asesinó al archiduque de Austria, que fue el motivo de la guerra.

mmm.. y por otro lado el inicio de la II Guerra mundial, fue el 1 de sptiembre no el 9 de enero, como parece indicar la fecha que consta en la imagen. En este caso se asocia con la invasión de Polonia por parte de Alemania.
Páginas: 1 ... 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ... 431
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines