Tecnologia, programação e muito Visual FoxPro.

segunda-feira, 27 de julho de 2009

RE: [usuarios_fox] Prog. de un GRID

 

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\ejemplo.vcx)
*-- 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.ControlSource = "temp_rep1.concepto", ;
Column1.Width = 75, ;
Column1.Name = "Column1", ;
Column2.ControlSource = "temp_rep1.detalle", ;
Column2.Width = 75, ;
Column2.Name = "Column2"

ADD OBJECT dumy.grid1.column1.header1 AS header WITH ;
Caption = "Concepto", ;
Name = "Header1"

ADD OBJECT dumy.grid1.column1.textoconcepto AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "TextoConcepto"

ADD OBJECT dumy.grid1.column2.header1 AS header WITH ;
Caption = "Detalle", ;
Name = "Header1"

ADD OBJECT dumy.grid1.column2.textodetalle AS textbox WITH ;
BorderStyle = 0, ;
Margin = 0, ;
ForeColor = RGB(0,0,0), ;
BackColor = RGB(255,255,255), ;
Name = "TextoDetalle"

PROCEDURE textoconcepto.Valid
*otro evento para el campo concepto
replace concepto WITH this.Value * 1.15
ENDPROC

PROCEDURE textodetalle.Valid
*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@yahoogrupos.com.mx
From: jacas28@hotmail.com
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=0

.height=493

.width=792

.caption=vpcSidVer

.backcolor=RGB(0,128,255)

.showtips=.t.

.WindowType=0

.controlbox=.t.

.AddObject("BotSID2009","SID") && Bot id al programa

.AddObject("TxtTableroAvisos","Avisos") && Tab de avisos

.AddObject("GrdMesaDatos","MesaDatos") && Corredor Datos Mesa

.AddObject("GrdConsumo","MesaConsumo") && Corredor del consumo

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(5,237,249)

fontsize=14

height=310

width=410

top=175

left=365

recordsource="consdesg"

recordsourcetype=1

visible=.t.

columncount=5

column1.controlsource="hora"

column2.controlsource="clav_produ"

column3.controlsource="cantidad"

column4.controlsource="preciounit"

column5.controlsource="totalpart"

PROCEDURE init

this.column1.header1.caption="Hora"

this.column2.header1.caption="Prod."

this.column3.header1.caption="Cant."

this.column4.header1.caption="Precio"

this.column5.header1.caption="Total"

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@yahoogrupos.com.mx

From: jamorquecho@hotmail.com

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@yahoogrupos.com.mx

From: jacas28@hotmail.com

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-->Header1-->Text1?

To: usuarios_fox@yahoogrupos.com.mx

From: jamorquecho@yahoo.com

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-->Header1-->Text1

*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.com> escribió:

De:: Francisco Castillo <jacas28@hotmail.com>

Asunto: [usuarios_fox] Prog. de un GRID

A: "Foxpro yahoogroups" <usuarios_fox@yahoogrupos.com.mx>

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.yahoo.com/ieak8/?l=mx

[Se han eliminado los trozos de este mensaje que no contenían texto]

__________________________________________________________

Si no está en Windows Live, nunca pasó

http://www.actualizatuperfil.com.mx/

[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.actualizatuperfil.com.mx/

[Se han eliminado los trozos de este mensaje que no contenían texto]

__________________________________________________________

Actualiza y gana con Windows Live

http://www.actualizatuperfil.com.mx/

[Se han eliminado los trozos de este mensaje que no contenían texto]










__________________________________________________________
Si no está en Windows Live, nunca pasó
http://www.actualizatuperfil.com.mx/

[Se han eliminado los trozos de este mensaje que no contenían texto]

__._,_.___
Comentarios, observaciones o si deseas darte de baja avísame a: jamorquecho@hotmail.com

Actividad reciente
Visita tu grupo
Y! Respuestas

Pregunta

Gente real te

responde

Yahoo! Messenger

Mensajero perfecto

Llama de PC a PC

sin costo alguno

Barra Yahoo!

Todo a un clic

Acceso rápido a

servicios Yahoo!

.

__,_._,___

Nenhum comentário:

Arquivo do blog