FoxPro/Visual FoxPro - Agregar un Grid desde código

 
Vista:
sin imagen de perfil

Agregar un Grid desde código

Publicado por Juan (71 intervenciones) el 11/03/2015 17:24:54
Cómo se puede hacer para crear una clase desde código con un grid, me da error al crear los header. Alguien me puede ayudar con un pequeño ejemplo?

Lo quiero hacer de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
DEFINE CLASS Form1 AS Grid
     Caption="Prueba"
     Height=600
     Width=800
 
	ADD OBJECT grid1 AS grid WITH ;
		ColumnCount = 3, ;
		AllowAddNew = .T., ;
		AllowHeaderSizing = .F., ;
		AllowRowSizing = .F., ;
		DeleteMark = .F., ;
		Height = 324, ;
		Left = 12, ;
		Panel = 1, ;
		RecordSource = "contrqst", ;
		RecordSourceType = 1, ;
		ScrollBars = 2, ;
		TabIndex = 2, ;
		Top = 12, ;
		Width = 540, ;
		BackColor = RGB(255,255,255), ;
		Name = "Grid1", ;
		Column1.ColumnOrder = 2, ;
		Column1.Width = 85, ;
		Column1.BackColor = RGB(255,255,255), ;
		Column1.Name = "Column1", ;
		Column2.ColumnOrder = 3, ;
		Column2.Width = 408, ;
		Column2.BackColor = RGB(255,255,255), ;
		Column2.Name = "Column2", ;
		Column3.ColumnOrder = 1, ;
		Column3.Width = 16, ;
		Column3.Sparse = .F., ;
		Column3.BackColor = RGB(255,255,255), ;
		Column3.Name = "Column3"
 
	ADD OBJECT form1.Grid1.Column1.header1 AS header WITH ;
		Alignment = 2, ;
		Caption = "Importe", ;
		Name = "Header1"
ENDDEFINE

Al añadir el HEADER1 me da un error de systaxis
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

Agregar un Grid desde código

Publicado por Gabriel (427 intervenciones) el 23/03/2015 18:19:50
Estimado Amigo :

Te muestro el código que empleo mediante la creación de un método en el formulario para crear los títulos del GRID

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
WITH Thisform.Grid_Filtro
	.Columncount = 7
	.HeaderHeight = 32
	.SetAll("Alignment",2,"Header")
	.SetAll("FontBold",.T.,"Header")
	.SetAll("FontSize",9,"Column")
	.SetAll("FontSize",9,"Header")
	.SetAll("FontSize",9,"Text")
	.Setall("BackColor",RGB(73,136,160),"Header")       && Color de fondo en encabezado
	.Setall("ForeColor",RGB(0, 0 , 0),"Header")         && Color de la letra en encabezado
    .Rowheight = 36                                     && Altura de cada Fila del Grid
    .Deletemark = .F.
    .ForeColor = RGB(0,0,0)                             && Color de las letras del Grid Negro
    .BackColor = RGB(255,255,255)                       && Color del fondo del Grid Blanco
    .ScrollBars = 3                                     && Fila y Columna con Barra
	.GridLineColor = RGB(192,192,192)                   && Color de las lineas que separan las celdas
	.GridLineWidth = 1
	.GridLines = 3                                      && Especifica si el control grid se muestra en lineas horizontales y verticales
    .RowHeight = 36                                     && El alto de las filas de la grid
	.Refresh()
 
	.column1.width = 62
	.column1.Header1.Caption = "Seleccion"
	.Column1.Alignment = 2                              && Donde ira el texto en el grid (Derecha, Izquierda, Centrado)
 
	.column2.width = 60
	.column2.Header1.Caption = "Nro. Contacto"
	.column2.InputMask = "999999"
	.column2.Header1.WordWrap = .T.
	.Column2.Alignment = 2                              && Donde ira el texto en el grid (Derecha, Izquierda, Centrado)
 
	.column3.width = 124
	.column3.Header1.Caption = "Carpeta"
    .Column3.Alignment = 2
 
	.column4.width = 70
	.column4.Header1.Caption = "Orden de Compra"
	.column4.Header1.WordWrap = .T.
    .Column4.Alignment = 2
 
	.column5.width = 75
	.column5.Header1.Caption = "Fecha"
    .Column5.Alignment = 2
 
	.column6.width = 68
	.column6.Header1.Caption = "Hora"
	.Column6.Alignment = 2
 
	.column7.width = 170
	.column7.Header1.Caption = "NumFilePo"
    .Column7.Alignment = 2
ENDWITH

Saludos,

GABRIEL
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

Agregar un Grid desde código

Publicado por eloy (3 intervenciones) el 23/03/2015 18:51:16
Segun el codigo estas creando un Grid que contiene otro Grid... puesto que tu clase form hereda de Grid.

por otro lado el head es un objeto de la columna, cuando pones columncount=3, el grid agrega 3 columnas que ya contienen 1 Header (llamado header1) y un text que (llamado Text1), no require que se agregue otro, lo cual es possible pues basados en el poliformismo puedes agregar cualquier objeto, sin embargo los nombres son unicos y no pueden llamarse header1, si deseas que conserve este nombre elimina el header1 original...

... si deseas realizer alguna modificacion sobre la presentacion u comportamiento del header, intenta crear una clase que herede de header, pero mas sencillo seria que con addproperty, le agregues las propiedades que desees y en todo caso agregues otro controlador a los eventos del header donde puedas introducer tu logica.
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