Power Builder - Cambiar de color una la celda activa

 
Vista:

Cambiar de color una la celda activa

Publicado por Fernando (23 intervenciones) el 14/01/2011 17:21:22
Que tal amigos
Tengo un problemita quiero cambiar de color al fondo de la celda actida del datawindows. Ojo solo la celda activa
Gracias por su respuesta
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
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Cambiar de color una la celda activa

Publicado por JeinnerH (646 intervenciones) el 14/01/2011 22:30:57
Puedes escribir una Expresión a cada campo, que haga referencia a la fila y columna actual del DW. Algo así:

Expresión del campo 1:
BackGroud.Color='If(GetColumn() = 1 And GetRow() = CurrentRow(), RGB(0, 255, 0), RGB(0, 0, 0))

Sería de ponerle la misma fórmula a cada columna, variando el número de la misma a ver si esto te funciona.

Saludos.
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

RE:Cambiar de color una la celda activa

Publicado por Fernando (23 intervenciones) el 17/01/2011 16:55:45
te cuento esta no es la solucion la trate te hacerlo
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
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Cambiar de color una la celda activa

Publicado por JeinnerH (646 intervenciones) el 18/01/2011 17:51:24
Te da algún error o símplemente no te da nada?
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
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Cambiar de color una la celda activa

Publicado por JeinnerH (646 intervenciones) el 18/01/2011 18:24:15
Hice unas pruebas y encontré que el problema se da por el GetColumn, que no funciona en las expresiones. Aquí te pongo un poco de código para que veas cómo lo hice.

Esta es la ventana principal:

$PBExportHeader$w_prueba1.srw
forward
global type w_prueba1 from Window
end type
type cb_2 from commandbutton within w_prueba1
end type
type cb_1 from commandbutton within w_prueba1
end type
type dw_1 from datawindow within w_prueba1
end type
end forward

global type w_prueba1 from Window
int X=1326
int Y=652
int Width=3205
int Height=2012
boolean TitleBar=true
string Title="Prueba General"
long BackColor=81324524
boolean ControlMenu=true
boolean MinBox=true
boolean MaxBox=true
boolean Resizable=true
cb_2 cb_2
cb_1 cb_1
dw_1 dw_1
end type
global w_prueba1 w_prueba1

on w_prueba1.create
this.cb_2=create cb_2
this.cb_1=create cb_1
this.dw_1=create dw_1
this.Control[]={this.cb_2,&
this.cb_1,&
this.dw_1}
end on

on w_prueba1.destroy
destroy(this.cb_2)
destroy(this.cb_1)
destroy(this.dw_1)
end on

type cb_2 from commandbutton within w_prueba1
int X=23
int Y=1680
int Width=544
int Height=144
int TabOrder=30
string Text="Agregar Registro"
int TextSize=-10
int Weight=700
string FaceName="Arial"
FontCharSet FontCharSet=Ansi!
FontFamily FontFamily=Swiss!
FontPitch FontPitch=Variable!
end type

event clicked;dw_1.InsertRow(dw_1.RowCount() +1 )
end event

type cb_1 from commandbutton within w_prueba1
int X=2501
int Y=1680
int Width=613
int Height=144
int TabOrder=20
string Text="Terminar"
int TextSize=-10
int Weight=700
string FaceName="Arial"
FontCharSet FontCharSet=Ansi!
FontFamily FontFamily=Swiss!
FontPitch FontPitch=Variable!
end type

event clicked;Close(Parent)
end event

type dw_1 from datawindow within w_prueba1
int X=23
int Y=32
int Width=3090
int Height=1612
int TabOrder=10
string DataObject="dw_prueba1"
BorderStyle BorderStyle=StyleLowered!
boolean LiveScroll=true
end type

event itemfocuschanged;object.c_3[row]=dwo.name
AcceptText()
end event
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
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Cambiar de color una la celda activa

Publicado por JeinnerH (646 intervenciones) el 18/01/2011 18:25:05
$PBExportHeader$dw_prueba1.srd
release 6;
datawindow(units=0 timer_interval=0 color=81324524 processing=1 print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 96 print.margin.bottom = 96 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no grid.lines=0 grid.columnmove=no selected.mouse=no )
header(height=68 color="536870912" )
summary(height=0 color="536870912" )
footer(height=0 color="536870912" )
detail(height=72 color="536870912" )
table(column=(type=char(10) updatewhereclause=no name=c_1 dbname="c_1" )
column=(type=char(200) updatewhereclause=no name=c_2 dbname="c_2" )
column=(type=char(10) updatewhereclause=no name=c_3 dbname="c_3" )
)
text(band=header alignment="2" text="C 1"border="6" color="0" x="9" y="8" height="56" width="274" name=c_1_t font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="81324524" )
text(band=header alignment="2" text="C 2"border="6" color="0" x="293" y="8" height="56" width="1481" name=c_2_t font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="81324524" )
text(band=header alignment="0" text="C 3"border="0" color="0" x="1783" y="4" height="56" width="178" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" )
column(band=detail id=1 alignment="0" tabsequence=10 border="0" color="0" x="9" y="4" height="60" width="274" format="[general]" name=c_1 edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" )
column(band=detail id=2 alignment="0" tabsequence=20 border="0" color="0" x="297" y="4" height="60" width="1477" format="[general]" name=c_2 edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="0" background.color="16777215~tIf(GetRow() = CurrentRow() And c_3 = 'c_2', RGB(0, 255, 0), RGB(255, 255, 255))" )
column(band=detail id=3 alignment="0" tabsequence=0 border="0" color="0" x="1787" y="4" height="60" width="174" name=c_3 font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" )
htmltable(border="1" cellpadding="0" cellspacing="0" generatecss="no" nowrap="yes")
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
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Cambiar de color una la celda activa

Publicado por JeinnerH (646 intervenciones) el 18/01/2011 18:36:15
La otra forma de hacerlo sería por medio de código, sin usar las expresiones del DW.

Sería de poner en el evento ItemFocusChanged, que haga el RGB del BackGround, y quitar el color del fondo de la columna anterior, por medio de variables de instancia, que almacenen la información de fila y columnas anteriores.

Saludos.
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