Hola:
Mira aqui hay un código que mas o menos tiene el estilo que tu usas, es una clase que instancia un formulario que tiene un grid y unos eventos valid, esto en forma programática.
************
*-- Class: dumy (c:\desarrollos2\
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 07/27/09 06:33:03 PM
*
DEFINE CLASS dumy AS form
Top = 0
Left = 0
DoCreate = .T.
Caption = "Form1"
Name = "Form1"
ADD OBJECT grid1 AS grid WITH ;
ColumnCount = 2, ;
Height = 193, ;
Left = 24, ;
RecordSource = "temp_rep1", ;
Top = 24, ;
Width = 325, ;
Name = "Grid1", ;
Column1.ControlSour
Column1.Width = 75, ;
Column1.Name = "Column1", ;
Column2.ControlSour
Column2.Width = 75, ;
Column2.Name = "Column2"
ADD OBJECT dumy.grid1.column1.
Caption = "Concepto", ;
Name = "Header1"
ADD OBJECT dumy.grid1.column1.
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,
Name = "TextoConcepto"
ADD OBJECT dumy.grid1.column2.
Caption = "Detalle", ;
Name = "Header1"
ADD OBJECT dumy.grid1.column2.
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,
Name = "TextoDetalle"
PROCEDURE textoconcepto.
*otro evento para el campo concepto
replace concepto WITH this.Value * 1.15
ENDPROC
PROCEDURE textodetalle.
*valid texto detalle
IF this.Value = 1245
*bla bla
a=1+2
endif
ENDPROC
ENDDEFINE
*
*-- EndDefine: dumy
************
Fijate como renombre los 2 text1 con el nombre de los campos para mas claridad
y hay un procedure para cada uno ahi va el código que quieres.
Igual puedes crear un formulario y arrastrar un grid para que veas las propiedades
y eventos que tiene.
Saludos Cordiales,
José Alfonso
To: usuarios_fox@
From: jacas28@hotmail.
Date: Mon, 27 Jul 2009 16:08:44 +0000
Subject: RE: [usuarios_fox] Prog. de un GRID
De nuevo te agradezco Alfonso, lo que pasa es lo siguiente, estoy utilizando el grid en la pantalla principal del Fox, esto es toda la aplicación la estoy desarrollando como objetos en el _screen. Una parte de código es como sigue:
MODIFY WINDOW screen CLOSE FLOAT MINIMIZE ZOOM ;
TITLE "SID BAR"
WITH _screen
.windowstate=
.height=493
.width=792
.caption=vpcSidVer
.backcolor=RGB(
.showtips=.t.
.WindowType=
.controlbox=
.AddObject("
.AddObject("
.AddObject("
.AddObject("
ENDWITH
MOVE WINDOW screen center
Luego en el mismo programa mas adelante defino los objetos, como lo es el MesaConsumo de la manera siguiente:
DEFINE CLASS "MesaConsumo" as Grid
backcolor=RGB(
fontsize=14
height=310
width=410
top=175
left=365
recordsource=
recordsourcetype=
visible=.t.
columncount=
column1.controlsour
column2.controlsour
column3.controlsour
column4.controlsour
column5.controlsour
PROCEDURE init
this.column1.
this.column2.
this.column3.
this.column4.
this.column5.
RETURN .t.
ENDDEFINE
Claro que el programar de esta manera sin aprobechar las ventajas de la ayuda visual del foxpro, es como busca en un salón de baile a la mas Fea (Elba Ester Gordillo) y guacala ponerte a bailar con ella. Pero también es una manera de aprender a llegar a todo el potencial del FoxPro.
Si observas el Procedure Init que defino aquí es el Init del Grid, la pregunta y mi duda es como programar el codigo valid para la columna 3, text1, que corresponde a la cantidad.
To: usuarios_fox@
From: jamorquecho@
Date: Mon, 27 Jul 2009 10:37:55 -0500
Subject: RE: [usuarios_fox] Prog. de un GRID
De nada Francisco:
Bueno creo que al menos hay 2 forma de hacer esto, una visual y la
otra programática. Yo uso la primera, esto es, arrastro el objeto grid
al formulario y con boton derecho uso el Builder, con eso defines la
tabla, los campos etc.
A partir de este momento cada Columna tiene sus objetos header1 y
column1 para cada campo, a partir de ese momento en las propiedades
del grid ubico el campo y me voy hasta su objeto texto, ahi mismo en
propiedades entro a su evento valid, o el que sea necesario.
Saludos Cordiales,
José Alfonso
To: usuarios_fox@
From: jacas28@hotmail.
Date: Mon, 27 Jul 2009 14:59:25 +0000
Subject: RE: [usuarios_fox] Prog. de un GRID
Gracias Alfonso, ahora solo me queda otra duda, ¿como declaro el evento valid para que pertenezca al grid1->Column4-
To: usuarios_fox@
From: jamorquecho@
Date: Sun, 26 Jul 2009 20:25:30 -0700
Subject: Re: [usuarios_fox] Prog. de un GRID
Hola Francisco:
Mira un objeto grid en realidad tiene agrupados a otros objetos
Una columna por cada campo que uses, un encabezado en
cada columna y adentro de esta un objeto texto.
En el objeto texto es donde trabajas con el evento valid (de
hecho estan todos los eventos de un objeto texto).
Por ejemplo suponiendo que tienes un Grid con 4 columnas
y en la última es donde quieres el código, lo que hago es
ubicar desde el formulario el objeto text1 que esta anidado
en Column4 osea:
grid1->Column4-
*en su evento valid por ejemplo:
if this.value >0
valor = this.value * Campo2
replace campo1 with valor
endif
Notaras que solo apunto a ese valor del grid y lo demas son
los campos de esa base de datos, aunque igual podrias
usar los objetos del grid.
Hay otras formas de hacerlo, espero esto te ayude.
Saludos Cordiales
Josè Alfonso
--- El dom 26-jul-09, Francisco Castillo <jacas28@hotmail.
De:: Francisco Castillo <jacas28@hotmail.
Asunto: [usuarios_fox] Prog. de un GRID
A: "Foxpro yahoogroups" <usuarios_fox@
Fecha: domingo 26 de julio de 2009, 11:42
Hola grupo, saludos desde Chihuahua.
Me encuentro con un problema, me decidí efectuar una pantalla sin utilizar para ellos el generador de pantallas del Fox, (estoy utilizando el Visual FoxPro V 9.0 SP2), pero al programar un grid, necesito programar un valid para una determinada columna, de manera que el contenido de dicha columna lo multiplique por el contenido o valor de otra, esto dentro del Método Valid de dicha columna, ¿como es posible hacer esto?.
____________ _________ _________ _________ _________ _________ _
Si no está en Windows Live, nunca pasó
http://www.actualiz atuperfil. com.mx/
[Se han eliminado los trozos de este mensaje que no contenían texto]
¡Obtén la mejor experiencia en la web! Descarga gratis el nuevo Internet Explorer 8. http://downloads.
[Se han eliminado los trozos de este mensaje que no contenían texto]
____________
Si no está en Windows Live, nunca pasó
http://www.actualiz
[Se han eliminado los trozos de este mensaje que no contenían texto]
____________
Comparte tu vida en Perfil de Windows Live. Actualízalo ya!
http://www.actualiz
[Se han eliminado los trozos de este mensaje que no contenían texto]
____________
Actualiza y gana con Windows Live
http://www.actualiz
[Se han eliminado los trozos de este mensaje que no contenían texto]
____________
Si no está en Windows Live, nunca pasó
http://www.actualiz
[Se han eliminado los trozos de este mensaje que no contenían texto]
Modificar la configuración mediante la Web (ID de Yahoo! obligatoria)
Modificar la configuración mediante el correo: Cambiar a resumen diario | Cambiar el formato a Tradicional
Visita tu grupo | Condiciones de uso de Yahoo! Grupos | Cancelar suscripción
Nenhum comentário:
Postar um comentário