PREGUNTAS CONTESTADAS - Crystal Report

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  19561 - PROPIEDADES DE IMáGENES
Autor:  Josemari Etxagibel
Hola amigos!

Me gustaría que alguien me pudiese indicar cómo puedo saber, dada una imagen determinada (p.e. un archivo JPG), sus dimensiones, etc...
Mi intención es visualizar imágenes en una ventana utilizando una control IMAGE y poder ajustar ese control al tamaño de la imagen para que no me la desproporcione (mantenga un equilibrio entre el alto y el ancho)
Gracias por adelantado
  Respuesta:  Josemari Etxagibel
Yo mismo he encontrado una solución, aunque no sé si es la mekor. Si a alguien se le ocurre algo que, por favor, me lo haga saber.

imgFoto es el control picture en el que se mostrará la imagen

Cadena es el nombre del archivo a mostrar

imgFoto.Visible = False
imgFoto.Stretch = False 'para que me lo amplie a su tamaño real
imgFoto.Picture = LoadPicture(Cadena)
x = imgFoto.Height / MaxX
'MasX el tamaño X mayor que se puede mostrar.
y = imgFoto.Width / MaxY
'MasY el tamaño Y mayor que se puede mostrar.
'Se ajusta el control al tamaño máximo que se pueda mostrar
'sin que se produzca una deformación de la imagen

If x > y Then
imgFoto.Height = imgFoto.Height / x
imgFoto.Width = imgFoto.Width / x
Else
imgFoto.Height = imgFoto.Height / y
imgFoto.Width = imgFoto.Width / y
End If
imgFoto.Stretch = True
imgFoto.Visible = True

'Además si queremos saber el tamaño de la imagen no tenemos mas que dividir los valores X e Y entre 567 para pasar twips a cm.

    Pregunta:  19579 - PROBLEMAS CON EL USER FORM DE VISUAL BASIC DE MICROSOFT WORD
Autor:  Carlos Rocche
Buen día, con una consulta, yo estoy haciendo un proyecto en Microsoft Word, el mismo lo estoy haciendo usando User Form de Visual Basic de Word, el problema radica que cuando asigno el valor al TextBox, necesito que dicho valor caiga en una posición determinada dentro del documento, pero no sé como declaro variables dentro de Word.

El Procedimiento en Excel es más facil, porque lo que hago es que el valor del Textbox lo asigno a una variable y luego a la celda, así:

aa = Textbox1.text
Range("A1").value = aa

Si me pudieran ayudar se lo agradeceré mucho... Saludos
  Respuesta:  Iván Dario Calderón Caceres
Hola Carlos Una Solución comoda es que cuando diseñes el documento de word insertes Marcadores en los lugares donde va a cambiar la información y por programación cambia los valores de los marcadores con la información de la consulta.
Para ello debe agregarle al proyecto la Referencia Microsoft Word 9.0.

    Pregunta:  19588 - MONITOREO DE APLICACIONES
Autor:  Rodolfo Mora Rocha
Que tal, deseo saber si existe alguna forma de desarollar alguna aplicación con VB6, para que detecte el momento en que una aplicación este bloqueda, es decir me refiero a que cuando se oprime crtl+alt+supr se detalla sobre las aplicaciones que estás corriendo y su status. En el momento que alguna se bloquee, realizar algo.

Saludos y espero que me puedan ayudar.
  Respuesta:  Alfredo Gonzalez
Realmente resulta facil el verificar si una aplicacion esta colgada en tu PC, yo hice un programa al cual llame gestor con el cual hago exactamente eso y ademas de saber si esta caida o bloqueada, la vuelvo a reiniciar automaticamente, lo unico que tendras que utilizar API, la que utilize fue FindWindow y GettimeProcess, con la primera verificas si no se ha caido y con la segunda si esta bloqueada, buscate informacion sobre estas APIs y veras que todo te resulta muy facil, cualquier duda escribeme y te detallo lo que hice...

    Pregunta:  19591 - AGREGAR UNOS BYTES EN EL COMIENZO DE UN ARCHIVO
Autor:  Ramon Villegas Rodriguez
Agregar en un Archivo una una parte al principio de el.
Es decir como hacer un append pero en el principio no al final.
Lo he intentado creando primero un archivo y grabar lo que necesito al princio y despues copiar todo lo demas del original.
Haciendolo con open open, input, put. Pero por ejemplo un archivo de 12 mb tarda como dos minutos. Es decir demasiado tiempo.
Desde ya muhas gracias. Por favor mandar la respuesta al mail.
  Respuesta:  Javier Perez
No existe otra forma, al menos otra forma sencilla.

Hay una forma, pero exige programar a muy bajo nivel, interfiriendo con el sistema, lo cual es muy poco recomendable si no se tiene muy claro que es lo que se está haciendo. Intentaré explicarla lo mejor que pueda.

Como sabes (y si no lo sabes te lo digo yo) los ficheros en el disco duro están organizados en clusters, de forma que siempre que se asigna más espacio a un fichero, se le asigna en clusters completos, independientemente de que únicamente se necesiten unos pocos bytes mas. El directorio y la FAT proporcionan la información de los clusters que corresponden a un fichero, de manera que en el directorio existe una entrada que indica cual es el primer cluster asignado al fichero. Luego, consultando en la FAT en la posición obtenida con la entrada del directorio se puede saber cual es el siguiente cluster asignado. Con este nuevo dato podemos a su vez obtener el siguiente cluster, y así sucesivamente hasta que la FAT contiene un número especial que indica que ya no hay mas clusters asignados al fichero.

Según esto sería posible modificar la entrada del directorio para que apuntase a un nuevo cluster tomado del espacio libre del disco, donde se almacenaría la información que hay que incluir al principio. Luego habría que modificar la FAT para que indicase que el siguiente cluster a este nuevo cluster es el primero de los que originalmente tenía el fichero, con lo que habríamos conseguido añadir información al principio del fichero sin efectuar un solo movimiento de datos, en un tiempo (despreciable) constante independientemente del tamaño del fichero.

Ahora bien, esta solución tiene dos inconvenientes:
- Primero, y muy gordo, la complejidad de la programación necesaria. Repito, no es labor para cualquiera.
- Segundo, la información añadida al inicio del fichero ocuparía un cluster completo, con lo que obtendrías una zona vacía entre los datos añadidos y el inicio de los datos originales. Esto puede ser un inconveniente o no, dependiendo de tus necesidades.

Mi consejo es que intentes acelerar al máximo el proceso del movimiento de datos. Por ejemplo, intenta leer en bloques grandes y que sean múltiplos de 1K (64K, 128K, ...)

    Pregunta:  19610 - VISUALIZAR VARIAS COLUMNAS EN UN COMBO DE VB6?
Autor:  toni lopez
Quizà lo que estoy preguntando es de fàcil solución pero yo no la he encontrado por ninguna parte. Por favor, si tuvierais la amabilidad de contestarme os lo agradeceria mucho ya que no tendria que dar mas escusas a mi jefe de por que no lo hago. Muchas gràcias.
  Respuesta:  Carlos Alberto
Yo tampoco pude pero en la propiedad "additem" del combo ahi puse formateada las comunas que querian que aparezca.

Ya luego solucione mi problema comprando el combo de Apex y ahio esta padrisimo porque solo vinculas al combode paex un recordset y automaticamente te desplega todo las columnas al momento de seleccionar.

    Pregunta:  19623 - IMPRIMIR COPIAS DE DATA REPORT CON PIE DIFERENTE
Autor:  jr cerced
Tengo un Informe creado con Data report del cual necesito imprimir 3 copias pero que en cada una de ellas aparezca un pie de página (mas bien una etiqueta) diferente.

¿Hay alguna posibilidad de realizar esto sin tener que crear 3 informes diferentes y mandarlos imprimir a la vez?

Gracias de antemano.
  Respuesta:  Javier Gonzalez
Si es posible lo que puedes hacer es : ponder un rptlaber en el pie de pagina.

Antes de Mandar a imprimir el datareport tendrías que módificar por código el rptlabel.caption del pie de página.

para ello tenes que recorrer los controles de la seccion del datareport.
creo que la seccion pie de pagina es seccion(1), si no proba con otro numero

ejemplo: (tu rptlabel de pie de pagina se llama "lbTitulo")

dim oCTRL as Object
for each oCTRL in Drs1.Seccion(1).controls
if oCTRL.Name = "lbTitulo" then
lbTitulo.Caption = "nota de pie de pagina"
end if
next oCTRL

y mandas a imprimir.....

despues vuelves a ejecutar el codigo de arriba y nuevamente imprimes

bueno espero haberta ayudado

saludos

    Pregunta:  19660 - VINCULACIóN DE TABLAS DE DIFERENTES BASES DE DATOS
Autor:  Rodrigo Arredondo
Hola:
Tengo un problema. ¿Cómo puedo vincular dos tablas pero con bases de datos diferentes respectivamente?.
Estoy trabajando con MySQL y VB, se que para vincular dos tablas pero con la misma base de datos se utiliza la sentencia INNER JOIN, quisiera por favor me pudieran ayudar con una explicación y un ejemplo, ya sea utilizando Recordsets o las sentencias de SQL.

De antemano Gracias.
  Respuesta:  Daniel Guevara
Bueno te comento que no lo he hecho con SQL sino con access aunque no creo que sea mucha la diferecia, rescate esta rutina de Visual la utilizo poruqe tengo una aplicacion que funciona en sistio con equipos que cambian mucho de dirrecion, simplemente tomo la ubicación de donde esta la base de datos y donde esta la base de datos de donde quiero vincualr, elimino las tablas vinculadas y las vuelvo a vincular desde la nueva ubicacion.

Espero haberte ayudado un poco

Public Sub ADJUNTOS(Ori As String, des As String)
' Adjunta las tablas necesarias para el programa

Dim MBBB As Database
Dim MBBB2 As Database
Dim sConnect As String
Dim tbl As TableDef
Dim tdf As TableDef
Dim i As Integer
Dim sTmp As String

Set MBBB = OpenDatabase(des) ' A DONDE SE VINCULA
Set MBBB2 = OpenDatabase(Ori) ' DE DONDE SE VINCULA
sConnect = ";database=" & MBBB2.Name
Screen.MousePointer = vbHourglass

On Error Resume Next
For Each tdf In MBBB.TableDefs
If (tdf.Attributes And dbAttachedTable) = dbAttachedTable Or _
(tdf.Attributes And dbAttachedODBC) = dbAttachedODBC Then
sTmp = "DROP TABLE [" & tdf.Name & "]"
MBBB.Execute sTmp
End If
Next

For Each tdf In MBBB2.TableDefs
If (tdf.Attributes And dbAttachedTable) = dbAttachedTable Or _
(tdf.Attributes And dbAttachedODBC) = dbAttachedODBC Then

Else
If (tdf.Attributes And dbSystemObject) <> dbSystemObject Then
Set tbl = MBBB.CreateTableDef(tdf.Name)
tbl.SourceTableName = tdf.Name
tbl.Connect = sConnect
MBBB.TableDefs.Append tbl
End If
End If
Next
On Error GoTo 0
Screen.MousePointer = vbDefault
Exit Sub

AttachErr:

' Resume 'x

End Sub

    Pregunta:  19665 - FUNCION EVAL - EVALUAR UNA EXPRESION
Autor:  Julio Arango
En access hay una funcion muy útil llamada Eval(Expresion), la cual evalua la expresion y devuelve el resultado.

Mi pregunta es, cómo invocarla desde Visual Basic?

Hice referencia al objeto access, se puede llamar la funcion pero me devuelve un valor erroneo, por ejemplo, Eval(year(date())) me devuelve 1899.

No se por que ocurre esto. Si alguien me puede ayudar, le agradezco de antemano.
  Respuesta:  Javier Perez
Si lo que quieres es poder evaluar expresiones, tienes varias posibilidades:

- Utilizar un control ActiveX que proporcione métodos adecuados; un ejemplo (gratuito) lo puedes localizar en http://digilander.iol.it/lorenzodv/acx_misc.html con el nombre de Equator.

- Utilizar la tecnología Windows Scripting . Mediante esta tecnología puedes incorporar en tus programas la capacidad de evaluar expresiones de cualquier tipo, tanto en VBScript (Visual Basic Script) como en JScript (Java Script). Desde luego esta es la posibilidad mas completa, aunque la mas compleja, claro. Si te interesa, puedes encontrar todo lo que necesitas en http://msdn.microsoft.com/scripting/

- "Currártelo". Evidentemente, la opción mas laboriosa, aunque nunca descartable, en función de lo que necesites.

    Pregunta:  19680 - MODIFICAR ODBC DESDE VISUAL BASIC
Autor:  FERNANDO RUIZ
Cómo puedo modificar los datos ingresados en un odbc desde una aplicación en visual basic, necesito direccionarme a varias bases y quiero hacerlo mediante un solo odbc.
  Respuesta:  KIKE
Hola Fernando:
Te envio la propiedad con la que puedes modificar el ODBC

DBEngine.RegisterDatabase strODBC, sDriver, True, sattrib
strODBC NOmbre del ODBC
sattrib = "DBQ=" ruta de la base de datos & vbCr & "FIL=Ms Access (o tipo de base de datos que utilices " & vbCr & "UID=Administrador"
sDriver = "Microsoft Access Driver (*.mdb)"

Si tienes alguna duda me mandas un correo y te enviare el codigo. Saludos

    Pregunta:  19691 - DETECTAR VELOCIDAD DEL PROCESADOR BAJO W98
Autor:  Juan Manuel Cordero Suero
Hola Amigo¡ Necesito saber, a través de codigo fuente Visual basic o accediendo al registro de windows, como extraigo la información de la velocidad del procesador de la cpu. ya lo he conseguido en windows 2000, accediendo a la clave del registro "~Mhz", pero en windows 98 no la tiene.¿Sabe alguien como puedo conseguirlo para windows 95/98? Gracias por todo.
  Respuesta:  Claudio Romero
Hola:
Windows 98 no calcula la velocidad del procesador, tampoco tiene una funcion que devuelva la misma.

En este archivo http://www.gratisweb.com/qhm/medir_ciclos.zip
hay un ejemplo en Visual Basic de como llamar a una libreria que calcula la velocidad del procesador.
medir_ciclos.exe: ejecutable en Visual Basic, con fuentes.
medir_ciclos.dll: libreria hecha en Delphi y assembler, tiene dos funciones, una es la que calcula la velocidad del procesador.

Esto solo funciona en procesadores Pentium y superiores.

|<  <<  168 169 170 171 172 173 174 175 176 177 178  >>  >|