llenar grid con quiebres

28/09/2006 - 20:09 por Samuel SMH | Informe spam
buenas tardes;
estoy deseando llenar un grid con datos obtenidos desde una tabla pero que
lo llene con quiebres; es decir mi tabla contiene:
CATEGORIA - NOMBREPRODUCTO - PRECIO
MOUSE logitech ps2 15.00
MOUSE Genuis 3 bot 12.00
MOUSE Cyberlink ps2 10.00
IMPRESORA Laserjet 1200 250.00
IMPRESORA Deskjet 3650 100.00

Llenado del grid:

CATEGORIA - MOUSE
NOMBREPRODUCTO - PRECIO
Logitech ps2 15.00
Genuis 3 bot 12.00
Cyberlink ps2 10.00
TOTAL - 37.00
CATEGORIA - IMPRESORA
NOMBREPRODUCTO - PRECIO
Laserjet 1200 250.00
Deskjet 3650 100.00
TOTAL - 350.00
Agradeceria mucho si me pueden facilitar este procedimiento o si tuvieran
algo parecido; quisiera que pueda funcionar en cualquier version de vfp,
desde la 6.0 hasta la 9.0
Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Luis María Guayán
29/09/2006 - 15:07 | Informe spam
Mira este artículo en PortalFox:

¿Cómo usar MS-HFlexGrid en Formularios de VFP?
www.portalfox.com/article.php?sid42


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Samuel SMH" escribió en el mensaje
news:
buenas tardes;
estoy deseando llenar un grid con datos obtenidos desde una tabla pero que
lo llene con quiebres; es decir mi tabla contiene:
CATEGORIA - NOMBREPRODUCTO - PRECIO
MOUSE logitech ps2 15.00
MOUSE Genuis 3 bot 12.00
MOUSE Cyberlink ps2 10.00
IMPRESORA Laserjet 1200 250.00
IMPRESORA Deskjet 3650 100.00

Llenado del grid:

CATEGORIA - MOUSE
NOMBREPRODUCTO - PRECIO
Logitech ps2 15.00
Genuis 3 bot 12.00
Cyberlink ps2 10.00
TOTAL - 37.00
CATEGORIA - IMPRESORA
NOMBREPRODUCTO - PRECIO
Laserjet 1200 250.00
Deskjet 3650 100.00
TOTAL - 350.00
Agradeceria mucho si me pueden facilitar este procedimiento o si tuvieran
algo parecido; quisiera que pueda funcionar en cualquier version de vfp,
desde la 6.0 hasta la 9.0
Gracias de antemano.

Respuesta Responder a este mensaje
#2 Samuel SMH
29/09/2006 - 16:47 | Informe spam
Hola he oido que en con sentencia en sql y agrupado se puede hacer esto en un
cursor y luego eso mandarlo a un grid normal,
pero no se como crear la sentencia sql, me lo podrias facilitar.
gracias.

PD, esto lo hago para no usar el MS-HFlexGrid ya que lo veo complicado.

"Luis María Guayán" wrote:

Mira este artículo en PortalFox:

¿Cómo usar MS-HFlexGrid en Formularios de VFP?
www.portalfox.com/article.php?sid42


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Samuel SMH" escribió en el mensaje
news:
> buenas tardes;
> estoy deseando llenar un grid con datos obtenidos desde una tabla pero que
> lo llene con quiebres; es decir mi tabla contiene:
> CATEGORIA - NOMBREPRODUCTO - PRECIO
> MOUSE logitech ps2 15.00
> MOUSE Genuis 3 bot 12.00
> MOUSE Cyberlink ps2 10.00
> IMPRESORA Laserjet 1200 250.00
> IMPRESORA Deskjet 3650 100.00
>
> Llenado del grid:
>
> CATEGORIA - MOUSE
> NOMBREPRODUCTO - PRECIO
> Logitech ps2 15.00
> Genuis 3 bot 12.00
> Cyberlink ps2 10.00
> TOTAL - 37.00
> CATEGORIA - IMPRESORA
> NOMBREPRODUCTO - PRECIO
> Laserjet 1200 250.00
> Deskjet 3650 100.00
> TOTAL - 350.00
> Agradeceria mucho si me pueden facilitar este procedimiento o si tuvieran
> algo parecido; quisiera que pueda funcionar en cualquier version de vfp,
> desde la 6.0 hasta la 9.0
> Gracias de antemano.
>



Respuesta Responder a este mensaje
#3 Hugo M. Ranea
29/09/2006 - 21:19 | Informe spam
Samuel, quizá algo asi te sirva?

Crea un form y pone un grid (yo lo deje con el nombre grid1)

Seteale estas propiedades (asumí que el nombre de la tabla es productos)

ColumnCount = 3, ;
Anchor = 15, ;
DeleteMark = .F., ;
GridLines = 3, ;
GridLineWidth = 1, ;
HeaderHeight = 20, ;
Height = 171, ;
Left = 6, ;
Panel = 1, ;
RecordMark = .F., ;
RecordSource = "c_productos", ;
ScrollBars = 3, ;
Top = 33, ;
Width = 473, ;
Name = "Grid1", ;
Column1.ControlSource = "iif(Tipo=0,C_Productos.Categoria, '')", ;
Column1.Width = 70, ;
Column1.ForeColor = RGB(0,0,0), ;
Column1.BackColor = RGB(255,255,255), ;
Column1.Name = "Column1", ;
Column2.ControlSource = "C_Productos.Nombre", ;
Column2.Width = 285, ;
Column2.ForeColor = RGB(0,0,0), ;
Column2.BackColor = RGB(255,255,255), ;
Column2.Name = "Column2", ;
Column3.Comment = "", ;
Column3.ControlSource = "C_Productos.Precio", ;
Column3.Width = 94, ;
Column3.ForeColor = RGB(0,0,0), ;
Column3.BackColor = RGB(255,255,255), ;
Column3.Name = "Column3"
grid1.column1.header1.Caption = 'Categoria'
grid1.column2.header1.Caption = 'Nombre'
grid1.column3.header1.Caption = 'Precio'


Al form agregale el metodo getColor (Opcional)

PROCEDURE getColor
local lnColor

do case
case C_Productos.Tipo = 0
lnColor = Rgb(0, 192, 192)
case C_Productos.Tipo = 1
lnColor = Rgb(255, 255, 255)
endcase

return lnColor
ENDPROC

En el load del form pon

PROCEDURE Load
close databases all
use ..\Productos

lnCatLen = Len(Productos.Categoria)
lnNomLen = Len(Productos.Nombre)

select distinct Categoria, 0 as Tipo from productos into cursor c_categorias order by categoria

select Productos.PK, ;
Productos.Categoria, ;
1 as Tipo, ;
Productos.Nombre, ;
Productos.Precio ;
from Productos ;
union ;
select 0, ;
C_Categorias.Categoria, ;
0, ;
'', ;
0 ;
from C_Categorias ;
into cursor C_Productos ;
order by 2, 3, 4
ENDPROC

Finalmente, en el Init del form (solo si quieres cambiar el color)

PROCEDURE Init
thisform.grid1.SetAll('DynamicBackColor', 'thisform.getColor()', 'Column')
ENDPROC

Creo que eso te podría encaminar, tendrias que ver luego como manejas la edicion y la navegacion, por ejemplo, seguro quieres no
parar o editar en los registros de las categorias etc.
Respuesta Responder a este mensaje
#4 Samuel SMH
29/09/2006 - 21:32 | Informe spam
GRacias;
voy a probarlo y te comento.

Saludos.

"Hugo M. Ranea" wrote:

Samuel, quizá algo asi te sirva?

Crea un form y pone un grid (yo lo deje con el nombre grid1)

Seteale estas propiedades (asumí que el nombre de la tabla es productos)

ColumnCount = 3, ;
Anchor = 15, ;
DeleteMark = .F., ;
GridLines = 3, ;
GridLineWidth = 1, ;
HeaderHeight = 20, ;
Height = 171, ;
Left = 6, ;
Panel = 1, ;
RecordMark = .F., ;
RecordSource = "c_productos", ;
ScrollBars = 3, ;
Top = 33, ;
Width = 473, ;
Name = "Grid1", ;
Column1.ControlSource = "iif(Tipo=0,C_Productos.Categoria, '')", ;
Column1.Width = 70, ;
Column1.ForeColor = RGB(0,0,0), ;
Column1.BackColor = RGB(255,255,255), ;
Column1.Name = "Column1", ;
Column2.ControlSource = "C_Productos.Nombre", ;
Column2.Width = 285, ;
Column2.ForeColor = RGB(0,0,0), ;
Column2.BackColor = RGB(255,255,255), ;
Column2.Name = "Column2", ;
Column3.Comment = "", ;
Column3.ControlSource = "C_Productos.Precio", ;
Column3.Width = 94, ;
Column3.ForeColor = RGB(0,0,0), ;
Column3.BackColor = RGB(255,255,255), ;
Column3.Name = "Column3"
grid1.column1.header1.Caption = 'Categoria'
grid1.column2.header1.Caption = 'Nombre'
grid1.column3.header1.Caption = 'Precio'


Al form agregale el metodo getColor (Opcional)

PROCEDURE getColor
local lnColor

do case
case C_Productos.Tipo = 0
lnColor = Rgb(0, 192, 192)
case C_Productos.Tipo = 1
lnColor = Rgb(255, 255, 255)
endcase

return lnColor
ENDPROC

En el load del form pon

PROCEDURE Load
close databases all
use ..\Productos

lnCatLen = Len(Productos.Categoria)
lnNomLen = Len(Productos.Nombre)

select distinct Categoria, 0 as Tipo from productos into cursor c_categorias order by categoria

select Productos.PK, ;
Productos.Categoria, ;
1 as Tipo, ;
Productos.Nombre, ;
Productos.Precio ;
from Productos ;
union ;
select 0, ;
C_Categorias.Categoria, ;
0, ;
'', ;
0 ;
from C_Categorias ;
into cursor C_Productos ;
order by 2, 3, 4
ENDPROC

Finalmente, en el Init del form (solo si quieres cambiar el color)

PROCEDURE Init
thisform.grid1.SetAll('DynamicBackColor', 'thisform.getColor()', 'Column')
ENDPROC

Creo que eso te podría encaminar, tendrias que ver luego como manejas la edicion y la navegacion, por ejemplo, seguro quieres no
parar o editar en los registros de las categorias etc.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida