Power Builder - Ayuda con Caracteristicas de Imagenes

 
Vista:

Ayuda con Caracteristicas de Imagenes

Publicado por David (97 intervenciones) el 13/03/2004 13:54:35
Hola a todos.... mi problema es el sgte.
estoy desarrollando un sistema de gestion.. en donde a ciertos informes se le adjuntan IMAGENES EN JPG.. me he fijado en anteriores topics y veo que la mayoria de las recomendaciones son para los guarde en un sector del disco de mi servidor.. y no asi en la BD... bueno.. he logrado hacer esto sin problemas... ya que asigno un ID a cada informe y si guardo las imagenes con ese mismo ID se cual imagen corresponde a que informe.. hasta ahi todo bien...

Uno de los problemas es que debo registrar en la BD las caracteristicas de las imagenes, como ser, tamaño y fecha de ultima modificacion.. por dar un ejemplo.. para que asi yo pueda verificar si esa foto fue cambiada o no..

y el otro problema es que a mis usuarios les resulta muy incomodo tener que guardar esas imagenes con el ID que yo les asigno a cada informe.. entonces quisiera hacer esto de forma automatica.. o sea.. que ellos busquen en una direccion cualquiera las fotos.. y que ahi yo tome todos los archivos que se encuentran en ese directorio.. y los copie en forma automatica en el servidor..

Utilizo PB 8 y BD Oracle

Desde ya les estoy muy agradecido.. y disculpen las molestias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE: Fecha-hora modificación imágenes y tamaño

Publicado por Oscar (1178 intervenciones) el 13/03/2004 17:28:56
* Obtener la fecha y hora de modificación de un archivo
Ingresá a:

http://www.iespana.es/powerbuilder/ejemplosPB/ejemplos.html
Luego te bajas el archivo:
Archivodt.zip (7 KB): Usa tres APIs

* Obtener el tamaño de un archivo en bytes

1. Declaras las siguientes External Functions:

function long GetFileSize(long hFile, Ref long lpdwFileSizeHigh) Library "Kernel32.dll"
function long _lopen(ref string lsFile, long fnMode) library 'kernel32.dll'
function long _lclose(long hFile) library 'kernel32.dll'

2. Script en PB:

long ll_FileSize
long ll_hFile
long ll_null

string ls_file = 'C:\miarchivo.jpg'

ll_hFile = _lopen(ls_File,0)
if ll_hFile > 0 then
ll_FileSize = GetFileSize( ll_hFile, ll_Null )
messagebox("Tamaño de " + ls_File, ll_FileSize)
_lclose(ll_hFile)
end if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Caracteristicas de Imagenes

Publicado por David (97 intervenciones) el 13/03/2004 19:24:36
Muchas gracias Oscar.. eso ya soluciona uno de mis problemas.. el de las caracteristicas de los archivos.... y la copia a mi servidor...

pero se me ha presentado otro problema.. el cual no lo exprese bien -... y es el sgte..
ese directorio Origen puede estar lleno de imagenes.. y lo que necesitaria es poder obtener el listado de todas los archivos existentes en ese directorio.. de modo a que yo le presente un listado de los archivos en pantalla.. y el usuario seleccione cual fotos copiar al servidor..

una vez mas pido disculpas por la molestia.. y desde ya muy agradecido..

saludos desde Paraguay..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

solucionado..

Publicado por David (97 intervenciones) el 13/03/2004 20:07:43
Solo queria compartir con uds. las soluciones que he encontrado para que me despliegue todos los archivos de un directorio....

en la web he encontrado estas dos soluciones.. y ambas funcionan correctamente...


1. Puedes usar las API's de Windows:

Function ulong GetWindowsDirectoryA (ref string dirtext, ulong textlen) brary "KERNEL32.DLL"
ls_dir = space(lul_size)
lul_rc = GetWindowsDirectoryA(ls_dir, lul_size)

La cual retornará una cadena conteniendo todos los ficheros que hay en se directorio,

2. o también puedes usar la función DirList()

listboxname.DirList ( filespec, filetype {, statictext } )

La cual mostrará un ListBox con los ficheros que coincidan con el criterio especificado. Si no quieres que el usuario vea estos ficheros, tienes que hacer el ListBox invisible.

espero que le sirva a alguien..

Saludos desde Paraguay
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Otra solución demasiado tarde...

Publicado por Oscar (1178 intervenciones) el 13/03/2004 21:09:54
Me alegra que hayas resuelto tu problema; pero como la solución ya estába gestándose, igual la expongo (por si sirve a otros usuarios): Acá va con detalle, cómo se puede construir una lista de carpetas y archivos dentro de PB:
----------------------------------------------------
1. En la ventana pegamos 4 controles:
st_ruta, lb_carpetas, lb_archivos y st_2

2. Evento open de la ventana
DirList(lb_carpetas, "*.", 16401, st_ruta)
DirList(lb_archivos, "*.jpg", 0)

3. Evento DoubleClicked en lb_carpetas
DirSelect(lb_carpetas,st_ruta.text)
DirList(lb_carpetas, st_ruta.text+ "*.", 16401, st_ruta)
DirList(lb_archivos, st_ruta.text+ "\*.jpg", 0)

4. Evento DoubleClicked en lb_archivos
string backslash
if (len(st_ruta.text) > 0 ) and (right(st_ruta.text, 1) <> "\") then
backslash = "\"
end if
//Mostramos la ruta del archivo seleccionado
st_2.Text=string(st_ruta.text + backslash + lb_archivos.selecteditem())
-----------------------------------------

Volviendo a la segunda parte del problema, otra solución sería:

1. En vez de presentarle la lista con Dirlist al usuario, puedes hacer que éste abra una archivo cualquiera con GetFileOpenName. Luego le renombras ese archivo con el ID que tiene ese informe.
Ejemplo:
C:\mifoto.jpg por C:\ID.jpg
2. Luego, le copias ese archivo renombrado al servidor.

Nota: En el foro existen post para renombrar y copiar archivos.
Un saludo desde Sucre-Bolivia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar