Power Builder - columnas en crosstab

 
Vista:

columnas en crosstab

Publicado por Oswaldo (1 intervención) el 29/06/2004 02:46:48
como puedo saber el nombre de una columna en un crosstab ??? ya ven que el numero de las columnas es variable., pero necesito identificar ese nombre que se forma segun los valores que encuentra. de antemano gracias...

Atte Oswaldo Reyes..
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

RE: Obtener Nombres columnas en crosstab

Publicado por Oscar (1178 intervenciones) el 29/06/2004 21:17:24
Para averiguar los nombres de las columnas que se FORMAN en un crosstab, debes utilizar el staticmode en yes. Es decir, después del retrieve debes pegar:

dw_1.object.datawindow.crosstab.staticmode='Yes'

La anterior línea, creará automáticamente un conjunto de nombres por referencia. Si los datos de la columna se llama Sueldo; entonces, la primera columna se llamará: Sueldo, la segunda columna: Sueldo_1, la tercera: Sueldo_2, etc.

De la misma manera, los encabezados de las columnas, se llamarán:
Sueldo_t, Sueldo_1_t, Sueldo_2_t, respectivamente.

Las filas, se llamarán: 1, 2, 3, etc. (no estoy tan seguro de esta última aseveración).

Para ver dichos nombres de tu crosstab, debes colocar el siguiente script en el evento Clicked del control DW:

String ls_clicked
ls_clicked = dw_1.GetObjectAtPointer()
messagebox( '', ls_clicked )
//---------Fin------------

(CONTINÚA...)
En el próximo post, se explica la manera de obtener (capturar) el valor de una celda en un crosstab, que resulta de la intersección de una columna y una fila.
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: Obtener valor celda actual en crosstab

Publicado por Oscar (1178 intervenciones) el 29/06/2004 21:24:23
Pasos previos:
- Para que quede seleccionada la celda, si deseas (opcional) puedes checar la propiedad Mouse Selection en tu objeto DW.

- Para ver acceder al valor de la celda seleccionada, borrá el script que colocaste en el evento clicked del control DW (en el anterior post). Ojo con eso.

Ahora sí, el script que debes colocar en el evento Doubleclicked del control DW, es:

string lsSubject, lsClass, lsValue, lsCol

if IsValid( dwo ) and row > 0 THEN

//Este es el nombre de la columna
lsCol = string( dwo.name )

//Usando el nombre de la fila y la columna
//se consigue el valor de la celda
lsValue = string( this.getitemnumber( row, lsCol ) )

if isnull( lsValue ) then lsValue = 'null'

// La primera columna contiene los nombres de los sujetos
lsSubject = this.GetItemString( row, 1 )

// El elemento StaticText contiene la clase de nombre
lsClass = this.Describe( lsCol + "_t.Text" )

messagebox( '', lsSubject + ' ' + lsClass + ' ' + lsValue )
end if
//---------Fin--------

Observaciones:
- Cuando se da doble clic en la primera columna (donde están los nombres, no los valores), aparece un error. Debes gestionarlo; por lo demás, no existe problema.
- Si en alguna columna aparece el símbolo: !, creo tampoco hay problema, ya que te sigue mostrando correctamente el valor de la celda, que es lo que interesa.
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