¿Saber numero de columna del browse? (SOLUCIONADO)

¿Saber numero de columna del browse? (SOLUCIONADO)

Postby Armando » Fri Oct 27, 2023 10:30 pm

Saludos al foro:

Creí tener la solución pero veo que no es así, trataré de explicarme:

Tengo un browse de 120 columnas 10 columnas por cada mes del año,
en el dialogo solo muestro 10 aunque el browse tiene definidas las 120
y solo con scroll horizontal voy mostrando las columna de los otros meses.

-----------------------------------------E N E R O ----------------------------------------------| -------------- F E B R E R O
COL01 COL02 COL03 COL04 COL05 COL06 COL07 COL08 COL09 COL10 COL11 COL12 | COL13 COL14 COL15 COL16 <====== Encabezado de la columna
FLD01 FLD02 FLD03 FLD04 FLD05 FLD06 FLD07 FLD08 FLD09 FLD10 FLD11 | FLD12 FLD13 FLD14 FLD15 FLD16<====== Nombre del campo de la tabla que contiene el valora a mostrar

En el browse tengo definido un menú emergente con el siguiente código
Code: Select all  Expand view

:bRClicked := { | nRow, nCol | MenuPop(oBrw,oBrw:nRowSel,oBrw:nColSel,nRow,nCol) }
....
....
STATIC FUNCTION MenuPop(oBrw,nRow,nCol,nNumRow,nNumCol)
   LOCAL oMenu

   MENU oMenu POPUP 2007
      MENUITEM "Registrar"          RESOURCE "ADD" ACTION Registrar(cShortField,cLongField,nCol)
      SEPARATOR
      MENUITEM "Salir"              RESOURCE "EXI" ACTION oMenu:END( )
   ENDMENU

   ACTIVATE POPUP oMenu AT nNumRow , nNumCol OF oBrw
RETURN(.T.)
 


Hasta aquí todo bien, pero en la función Registrar() necesito conocer el número de la columna en la
que el usuario dio el clic derecho del ratón, el problema se presenta así

Ejemplo si el usuario da clic derecho en la primera columna, la variable nCol me da el número 01
que corresponde a la primera columna visible en el dialogo, ahora con scroll hacemos visibles las
columnas de Febrero si damos clic sobre la primera columna, la variable nCol me repite el número 01
Y yo necesito tener la columna 11 (10 de enero más 1 de febrero).

Por otro lado, si utilizo la variable nNumCol, me da valores mas altos como 470, 580 pero también
es el mismo caso, se repiten los valores sin diferenciar el mes que se muestra en el dialogo.

En otras palabras quiero obtener el nombre del campo que se muestra en el browse en
función a la columna donde el usuario da clic y eso lo logro con el siguiente código
Code: Select all  Expand view

oBrw:aCols[nCol]:cExpr
 


Pero como ven es imprescindible el número de columna.

La razón de querer saber el nombre del campo es porque como son 120 columnas y quiero ahorrarme
código al momento de actualizar la tabla, con el siguiente código actualizo sin importarme la columna
en la que el usuario dió clic.

Code: Select all  Expand view

   cCmdSql  := "UPDATE " +;
                  "Pdfs " +;
               "SET " +;
                  cLongField + " = 1," +;
                  cShortField + " = '" + cPdfFile + "' " +;
               "WHERE " +;
                  "PDF_NUM = " + Str(oRsPdf:Fields("PDF_NUM"):Value,03,0) + " " +;
               "AND " +;
                  "PDF_AÑO = " + Str(nAmo,04,0)
 


Disculpen la perorata pero quise explicarme lo más posible.

Muchas gracias
Last edited by Armando on Sat Oct 28, 2023 4:27 am, edited 1 time in total.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: ¿Saber numero de columna del browse?

Postby cmsoft » Fri Oct 27, 2023 11:25 pm

Puede servirte
oBrw:aCols[nCol]:nCreationorder
No se si te entendi bien igualmente....
User avatar
cmsoft
 
Posts: 1290
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: ¿Saber numero de columna del browse?

Postby Armando » Sat Oct 28, 2023 3:31 am

César:

Agradezco la respuesta, te muestro los resultados

Code: Select all  Expand view

:bRClicked := { | nRow, nCol | MenuPop(oBrw,oBrw:nRowSel,oBrw:nColSel,nRow,nCol) } <=== Clic sobre un renglón, celda
....

STATIC FUNCTION MenuPop(oBrw,nRowSel,nColSel,nRow,nCol)                                             <=== Función donde recibimos los valores pasados
// Estos son los valores recibidos dando clic sobre la primera columna de FEBRERO, te recuerdo que en el dialogo solo se muestra 10 columnas del mes
   ? nRowSel                                              <= 1
   ? nColSel                                              <= 3
   ? oBrw:aCols[nColSel]:nCreationOrder                   <= 3  El valor que espero en lugar de 3 debe ser 11
   ? nColSel                                              <= 3
RETURN(.T.)
 


El menú se muestra en el renglón / Columna correctos pero los números de columna no
Tal vez NO estoy haciendo bien las cosas ?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: ¿Saber numero de columna del browse? (SOLUCIONADO)

Postby Armando » Sat Oct 28, 2023 4:29 am

Amigos del foro:

Con agrado les menciono que ya esta solucionado el tema gracias a la idea de César,
muestro la solución por si a alguien más la necesita:

Code: Select all  Expand view

AllTrim(oBrw:aCols[oBrw:SelectedCol():nCreationOrder]:cExpr)
 


Gracias estimado foro, saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: ¿Saber numero de columna del browse? (SOLUCIONADO)

Postby karinha » Sat Oct 28, 2023 2:46 pm

Armando wrote:Amigos del foro:

Con agrado les menciono que ya esta solucionado el tema gracias a la idea de César,
muestro la solución por si a alguien más la necesita:

Code: Select all  Expand view

AllTrim(oBrw:aCols[oBrw:SelectedCol():nCreationOrder]:cExpr)
 


Gracias estimado foro, saludos


https://www.forums.fivetechsupport.com/viewtopic.php?f=3&t=14834

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7822
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: ¿Saber numero de columna del browse? (SOLUCIONADO)

Postby Armando » Sat Oct 28, 2023 4:17 pm

Karinha:

Aunque ya esta resuelto el tema, te agradezco la respuesta, busque en el foro
con oBrw:aCols[oBrw:SelectedCol():nCreationOrder] pero no mostraba resultados.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 57 guests