Fecha actual Vie May 17, 2024 9:46 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 9 mensajes ] 
Autor Mensaje
NotaPublicado: Sab Jul 05, 2008 4:29 pm 

Registrado: Lun Ene 08, 2007 5:56 pm
Mensajes: 91
Hola Amigos,

1. Me podrian ayudar para saber como hago la edicion de datos para un Dbgrid, es decir Modificar y Entrar datos al Dbf a travez de este objeto, Pues solo he visto que sirve para Mostrar la info en pantalla.

2. Cuando en un Dbgrid tengo un font size de 11 o 12 en la linea que esta resaltada la ubicacion, esta mantiene el font size original, entinces se ve mas chica que las demas, y quiero que se vea igual en tamaño de letra.

3. Como se imprime un bmp en la impresora?

4. Hize un programa que me exedio las 4900 lineas entre frm y prg, pues le adicione un metodo que sobrepaso este numero y el programa ya no compila, existe esta limitacion en C3


5. alguno de usetedes tiene una funcion que controle la ubicacion de objetos en la pantalla, pues cuando se cambia de computador, con diferente resolucion, este desubica los objetos y los sobrepone.

_________________
Saludos.
German


Arriba
 Perfil  
Responder citando  
NotaPublicado: Mar Jul 08, 2008 5:01 pm 
Avatar de Usuario

Registrado: Mar Nov 06, 2007 10:39 pm
Mensajes: 6
Ubicación: Arrecifes, Argentina
german escribió:
Hola Amigos,

1. Me podrian ayudar para saber como hago la edicion de datos para un Dbgrid, es decir Modificar y Entrar datos al Dbf a travez de este objeto, Pues solo he visto que sirve para Mostrar la info en pantalla.

2. Cuando en un Dbgrid tengo un font size de 11 o 12 en la linea que esta resaltada la ubicacion, esta mantiene el font size original, entinces se ve mas chica que las demas, y quiero que se vea igual en tamaño de letra.

3. Como se imprime un bmp en la impresora?

4. Hize un programa que me exedio las 4900 lineas entre frm y prg, pues le adicione un metodo que sobrepaso este numero y el programa ya no compila, existe esta limitacion en C3


5. alguno de usetedes tiene una funcion que controle la ubicacion de objetos en la pantalla, pues cuando se cambia de computador, con diferente resolucion, este desubica los objetos y los sobrepone.



German:
Te puedo contestar la parte de imprimir Bitmap. Fijate en este mensaje: Foros de discusión -> General -> ALGUN EJEMPLO DE Printer:DrawBitmap que Victor explica como hacerlo y me funciono de "perillas" .
En cuanto a editar datos en Dbgrid intente y termine medio "loco",
mas de lo que estoy, haciendo pruebas con cdigos y eventos, asi que hice la "FACIL" :lol: le coloque a Dbgrid un PopMenu para borrar o recuperar un registro, que lo que hace por supuesto es marcarlo o desmarcarlo y al salir de Dbgrid si utilize la opcion borrar hago PAK y regenero el Index. Esto ultimo lo puedes hacer con una variable publica que toma distintos valores segun la opcion del PopMenu que marques.
Osc@r


Arriba
 Perfil  
Responder citando  
NotaPublicado: Mié Jul 09, 2008 2:20 pm 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
german escribió:
Hola Amigos,

1. Me podrian ayudar para saber como hago la edicion de datos para un Dbgrid, es decir Modificar y Entrar datos al Dbf a travez de este objeto, Pues solo he visto que sirve para Mostrar la info en pantalla.

2. Cuando en un Dbgrid tengo un font size de 11 o 12 en la linea que esta resaltada la ubicacion, esta mantiene el font size original, entinces se ve mas chica que las demas, y quiero que se vea igual en tamaño de letra.

3. Como se imprime un bmp en la impresora?

4. Hize un programa que me exedio las 4900 lineas entre frm y prg, pues le adicione un metodo que sobrepaso este numero y el programa ya no compila, existe esta limitacion en C3


5. alguno de usetedes tiene una funcion que controle la ubicacion de objetos en la pantalla, pues cuando se cambia de computador, con diferente resolucion, este desubica los objetos y los sobrepone.


Hola.

1. Tienes dos formas:

Hacerlo en la propia celda del grid con la data AllowEdit (en el help viene)

La segunda es la que utilizo:
Al pulsar <intro> editas el registro actual (fila)
Al pulsar <Ins> añades un registro
Al pulsar <sup> borras
Etc...

2. Parece que has leido poco la ayuda, tienes las datas Font y SelectedFont para controlar lo que te sucede.

3. Si, tambien viene documentado en la ayuda. Mira en TPrinter:DrawBitmap()

4. No utilizo el IDE, pero creo recordar que hay algun limite (por parte de Borland) del compilador. Seguro que puedes 'partir' el prg en dos o más.... y en la cabecera pones (#include .....prg)

5. No entiendo bien el problema. Quizas sea que haces los formularios de acuerdo a una resolucion grande (1024x768) y luego lo muestras en una inferior (800x600) y este es el problema???
Si este es el caso tienes que diseñarlo en la baja (800x600) o hacer dos formularios uno para la grande y otro para la pequeña.

Saludos

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mié Jul 09, 2008 8:38 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Hola German
Solamente quiero ampliar lo que Javier ya te ha contestado.
El modificar la dbf directamente desde el grid.
Debes tener la propiedad :AllowEdit := .T. para que te funcione el editor
Si lo quieres hacer con algun boton tipo Alta, Editar, etc
Seleccionas la columna con:
::DbGrid1:col := n numero de columna
llamas al editor con:
::DbGrid1:ShowEditor()

Utilices un boton o pulsando Intro, para recoger el resultado lo debes hacer con el evento OnExitEditor
que trae dos parametros el oSender y oeditor que contiene el valor de la celda.
debes controlar en que columna estas con:
:DbGrid1:col
el valor lo recoges con:
oEditor:caption
ten en cuenta que es un valor cadena
con esto ya puedes grabar en la dbf
No se te olvide:
::DbGrid1:Refresh()
para actualizar los datos en la grid

Un saludo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Sab Jul 12, 2008 5:53 pm 

Registrado: Lun Ene 08, 2007 5:56 pm
Mensajes: 91
Gracias por las ayudas, ya he podido editar los datos de la dbf desde el grid.

Lo que no me ha funcionado es la impresion de el Bmp
el codigo que uso esta en el archivo adjunto, no se que estoy haciendo mal

Gracias.


Adjuntos:
PrnBitmap.prg [462 Bytes]
323 veces

_________________
Saludos.
German
Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Dom Jul 13, 2008 10:08 pm 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
german escribió:
Gracias por las ayudas, ya he podido editar los datos de la dbf desde el grid.

Lo que no me ha funcionado es la impresion de el Bmp
el codigo que uso esta en el archivo adjunto, no se que estoy haciendo mal

Gracias.


Hola te pongo un ejemplo:

/* ----------------------------------------------------------------------------
* METHOD LibroDeRegistro
* ----------------------------------------------------------------------------
*/

METHOD LibroDeRegistro() CLASS XFormLibroRegistro

LOCAL oDlg, nLines

oDlg := MessageDlg( "Generando informe...", mtCustom )

nLines := 58
WITH Printer
:Title := "Registro de Entradas"
:Orientation := poPortrait
:BeginDoc()
:Font:Name := "Arial"

DO WHILE ! ::WorkArea:Eof

IF nLines > 57
:NewPage()
:DrawBitmap( ::BitmapLogo:Handle, { 15, 17, 62, 17 } )
:DrawLine( { 78, 27, 195, 27 } )
:Font:Size := 18
:Font:Bold := True
:DrawText( ::Titulo, { 96, 19, 195, 35 }, TA_RIGHT )
:Font:Bold := False
:Font:Size := 8
:DrawText( "Desde " + DToC( ::FechaInicio ) + " hasta el " + DToC( ::FechaFin ), { 78, 28, 156, 32 }, TA_LEFT )
:DrawText( "Página " + LTrim( Str( Printer:PageNumber ) ), { 160, 28, 195, 33 }, TA_RIGHT )
:DrawBox( { 16, 38, 195, 279 } )
:DrawShadow( { 16, 38, 195, 279 } )
:Font:Size := 9
:DrawText( "REGISTRO", { 18, 40, 46, 44 }, TA_LEFT )
:DrawText( "PROCEDENCIA/DESTINO", { 38, 40, 126, 44 }, TA_LEFT )
:DrawText( "INTERESADO", { 119, 40, 195, 44 }, TA_LEFT )
:DrawLine( { 16, 45, 195, 45 } )

// Copyright
:Font:Name := "Arial Narrow"
:Font:Size := 6
:DrawText( "© Copyright 2008 Ñ Servicios Informáticos. Todos los derechos reservados.", { 16, 281, 88, 285 }, TA_LEFT )
:Font:Name := "Arial"
:Font:Size := 8
nLines := 1
ENDIF

// Año/Numero
:Font:Bold := True
:DrawText( ::WorkArea:FieldValue( "DocAno" ) + "." +;
::WorkArea:Fieldvalue( "DocNum" ),;
{ 18, 43 + nLines * 4, 37, 43 + nLines * 4 + 10 }, TA_LEFT )
:DrawText( ::WorkArea:Fieldvalue( "PDDsc" ),;
{ 38, 43 + nLines * 4, 118, 43 + nLines * 4 + 10 }, TA_LEFT )

:DrawText( ::WorkArea:FieldValue( "IntNom" ),;
{ 119, 43 + nLines * 4, 193, 43 + nLines * 4 + 10 }, TA_LEFT )
:Font:Bold := False
nLines++
:DrawText( DToC( ::WorkArea:FieldValue( "DocFchReg" ) ),;
{ 18, 43 + nLines * 4, 42, 43 + nLines * 4 + 10 }, TA_LEFT )
::Font:Name := "Arial Narrow"
:DrawText( ::WorkArea:FieldValue( "DocAsu" ),;
{ 38, 43 + nLines * 4, 193, 43 + nLines * 4 + 10 }, TA_LEFT )
:Font:Name := "Arial"
::WorkArea:Skip()
nLines++
END

:EndDoc()
:Preview()
ENDWITH

oDlg:Destroy()

RETURN

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mar Jul 15, 2008 8:48 pm 

Registrado: Lun Ene 08, 2007 5:56 pm
Mensajes: 91
:lol:
Gracias
Por fin encontre el error para imprimir el bmp, GRACIAS a todos por la colaboracion, Jesus, Oscar, Javier,Amable

Hay Dos pequeños problemillas mas que quisiera resolver,
:oops:
1. la Ñ y ñ en la impresion no las muestra y muestra otro cararcter, es windows o c3 el del problema? Hay que asignar alguna tabla de caracteres a c3? como lo hago.

2. En el grid estoy mostrando un campo numerico, pero quiero hacerle una mascara (Picture) o transform(), pero no he podido hacer que me muestre con esa mascara que deseo, separada por comas o puntos.

Gracias nuevamente por la ayuda

_________________
Saludos.
German


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Lun Ago 11, 2008 12:30 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Hola German
Te contesto la primera pregunta:
1.- La Ñ y ñ, ¿de donde la sacas? porque si la estas tomando de una dbf hecha con un programa DOS, efectivamente no te saldrá ni en pantalla ni en la impresora.
Para corregir esto tienes las funciones OemtoChar y su inversa CharToOem puedes pasar de DOS a Windows y viceversa.
OJO si lanzas OentoChar dos veces sobre la misma cadena/campo, la primera lo hace perfectamente la segunda te la lia.
Busca en el foro el asunto Instruccion OemtoChar tienes un ejemplo de como funciona.

Un saludo


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mar Ago 12, 2008 4:33 pm 

Registrado: Lun Ene 08, 2007 5:56 pm
Mensajes: 91
Gracias, lo intentare y buscare el ejemplo.

_________________
Saludos.
German


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 9 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron