FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour xBrowse, editar varios campos
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
xBrowse, editar varios campos
Posted: Thu Jan 16, 2014 10:04 AM
Buenos días y feliz año a todos, hace muuuuucho que no me comunicaba y quiero saludar a quienes tanto me han ayudado.

Hoy tengo una consulta sobre xbrowse

Code (fw): Select all Collapse
DEFINE DIALOG oDlg RESOURCE 'DLG_DEST' TITLE "Configuración de Destinos"
          REDEFINE XBROWSE oBrw FIELDS DESTINOS->IdDestino, DESTINOS->letraid, DESTINOS->Texto_Asoc, DESTINOS->Exp_En, DESTINOS->tipificaci;
                          ALIAS 'DESTINOS' HEADERS 'Destino:', 'letra:', 'Descrip.', 'Meses exp. enf.:', 'Tipificacion:' ;
                          COLSIZES 70, 30, 100, 80, 60 ID 101 OF oDlg LINES
                          oBrw:lFastEdit:= .t.
                          
                          REQUEST FieldName
                          FOR i=1 to 4
                            oBrw:aCols[i]:nEditType = EDIT_GET
esta linea  --->      oBrw:aCols[i]:bOnPostEdit := { | oCol, xVal, nKey | If( nKey == VK_RETURN,( ( FieldName( i ) ):= xval, oBrw:Refresh() ), ) }
                      NEXT 
                            
                          WITH OBJECT oBrw:aCols[5]
                                oBrw:aCols[5]:SetCheck()
                                :bStrData     := {|| IF( DESTINOS->Tipificaci, 'Si', 'No') }
                                                                :blDClickData := {|| ( If( DESTINOS->( Rlock() ), (DESTINOS->Tipificaci:= !DESTINOS->Tipificaci, DESTINOS->( DbUnlock() ) ), ), oBrw:DrawSelect() ) }
                          END
          REDEFINE BUTTON oBtn ID 102 OF oDlg ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTER


La idea es mediante un bucle hacer editables las celdas de xbrowse, pero tengo problemas para cargar el campo, que uso FieldName( i ) para obtener su nombre, hay algo que se me pasa, pero no he encontrado que, si alguien puede ayudarme, será muy apreciado :-)

Un fuerte abrazo para todos!!
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: xBrowse, editar varios campos
Posted: Thu Jan 16, 2014 04:18 PM
Hola José, lo siguiente funciona, pero con el inconveniente de que hay que omitir HEADERS en la declaracion del xbrowse:
Hi, José, following code works, but you have to omit the HEADERS clause in the xbrowse declaration.

Code (fw): Select all Collapse
   for n:=1 to 4
      WITH OBJECT oBrw:aCols[n]
           :nEditType = EDIT_GET
           :bOnPostEdit := { | oCol, xVal, nKey | If( nKey == VK_RETURN,( Edite(oBrw,xVal,oCol:cHeader), oBrw:Refresh() ), ) }
      END
   next

//--------------------------------------
Function Edite(oBrw,xVal,cCampo)
if (oBrw:cAlias)->(RLock())
   (oBrw:cAlias)->&cCampo:= xval
   (oBrw:cAlias)->(dbUnlock())
endif
Return nil

Espero te sea de alguna ayuda.
I hope this helps you.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: xBrowse, editar varios campos
Posted: Thu Jan 16, 2014 04:46 PM

Gracias por tu respuesta!!

Sabes que, me pasa que me permite editar la celda pero no guarda el dato :(

No se que podrá ser el problema.

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: xBrowse, editar varios campos
Posted: Thu Jan 16, 2014 06:16 PM
Sabes que, me pasa que me permite editar la celda pero no guarda el dato


Si te refieres a tu codigo, Intenta asi, por favor: (No lo probé porque en este instante saldo para el trabajo)
FieldPut(FieldName(i),xVal)
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xBrowse, editar varios campos
Posted: Tue Jan 28, 2014 05:18 AM
jose_murugosa wrote:Buenos días y feliz año a todos, hace muuuuucho que no me comunicaba y quiero saludar a quienes tanto me han ayudado.

Hoy tengo una consulta sobre xbrowse

Code (fw): Select all Collapse
DEFINE DIALOG oDlg RESOURCE 'DLG_DEST' TITLE "Configuración de Destinos"
          REDEFINE XBROWSE oBrw FIELDS DESTINOS->IdDestino, DESTINOS->letraid, DESTINOS->Texto_Asoc, DESTINOS->Exp_En, DESTINOS->tipificaci;
                          ALIAS 'DESTINOS' HEADERS 'Destino:', 'letra:', 'Descrip.', 'Meses exp. enf.:', 'Tipificacion:' ;
                          COLSIZES 70, 30, 100, 80, 60 ID 101 OF oDlg LINES
                          oBrw:lFastEdit:= .t.
                          
                          REQUEST FieldName
                          FOR i=1 to 4
                            oBrw:aCols[i]:nEditType = EDIT_GET
esta linea  --->      oBrw:aCols[i]:bOnPostEdit := { | oCol, xVal, nKey | If( nKey == VK_RETURN,( ( FieldName( i ) ):= xval, oBrw:Refresh() ), ) }
                      NEXT 
                            
                          WITH OBJECT oBrw:aCols[5]
                                oBrw:aCols[5]:SetCheck()
                                :bStrData     := {|| IF( DESTINOS->Tipificaci, 'Si', 'No') }
                                                                :blDClickData := {|| ( If( DESTINOS->( Rlock() ), (DESTINOS->Tipificaci:= !DESTINOS->Tipificaci, DESTINOS->( DbUnlock() ) ), ), oBrw:DrawSelect() ) }
                          END
          REDEFINE BUTTON oBtn ID 102 OF oDlg ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTER


La idea es mediante un bucle hacer editables las celdas de xbrowse, pero tengo problemas para cargar el campo, que uso FieldName( i ) para obtener su nombre, hay algo que se me pasa, pero no he encontrado que, si alguien puede ayudarme, será muy apreciado :-)

Un fuerte abrazo para todos!!


Please adopt this revised code:
Code (fw): Select all Collapse
DEFINE DIALOG oDlg RESOURCE 'DLG_DEST' TITLE "Configuración de Destinos"

REDEFINE XBROWSE oBrw ALIAS 'DESTINOS' 
   COLUMNS  "IdDestino", "letraid", "Texto_Asoc", "Exp_En", "tipificaci" ;
   HEADERS 'Destino:', 'letra:', 'Descrip.', 'Meses exp. enf.:', 'Tipificacion:' ;
   COLSIZES 70, 30, 100, 80, 60 ID 101 OF oDlg ;
   CELL LINES FASTEDIT
                          
WITH OBJECT oBrw
   :nEditTypes    := EDIT_GET
   :aCols[ 5 ]:SetCheck( nil, .t., { "Si", "No" } )
END
 
REDEFINE BUTTON oBtn ID 102 OF oDlg ACTION oDlg:End()

ACTIVATE DIALOG oDlg CENTER
Regards



G. N. Rao.

Hyderabad, India
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: xBrowse, editar varios campos
Posted: Wed Feb 05, 2014 10:35 PM

Perdón por no escribir antes, gracias por tu sugerencia, quedo bien de bien

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"

Continue the discussion