FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Favor AYUDA con Editar Columna en XBROWSE
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Favor AYUDA con Editar Columna en XBROWSE
Posted: Wed Oct 24, 2018 02:41 PM
Amigos

Muy buen dia.
Tengo un problema, necesito poder modificar una Columna de una DBF en Xbrowse, pero esta deben modificarse solo las que cumplen con un estado de la Fila.

La Columna a modifica es el Campo: "Cod_res ", pero para ello un campo de la DBF llamado "Est_inf", tiene que tener el valor "S". Por lo que solo seran modificadas las lineas que cumplan con la condicion.

Tengo el siguiente codigo, pero me falta modificarlo para que me permita modificar:

Desde ya muchas gracias.

Atte.
Antonio.
Code (fw): Select all Collapse
 
   DEFINE DIALOG oDlg RESOURCE "#1003"     FONT oFont1   Title " "

   REDEFINE XBROWSE oCust ALIAS "&nro_usu2" FIELDS ;
            Cod_det1,;
            Cod_res,;
            Cod_det2,;
            HEADERS;
            "Detalle Examen",;
            "Resultado Examen" ;
            "Referencias" ;

            PICTURES '@!','@!','@!' ;

            ID 4005 OF oDlg ;
            FONT oFont1;
            FOOTERS LINES CELL
            oCust:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
            oCust:bClrSelFocus        := {|| { nRGB(  0,  0,  0), nRGB(137, 247, 33) } }

            oCol := oCust:AddCol()
            oCol:AddResource("#8013")    // Ticket Verde
            oCol:AddResource("#8014")    // Ticket Rojo
            oCol:cHeader = "Est."

            oCol:bBmpData   := { || IIF(&nro_usu2->Est_inf = "S",1,2 )}

            WITH OBJECT oCust:aCols[ 2 ]
                 :nEditType  := EDIT_GET
            END


             
   ACTIVATE DIALOG oDlg CENTERED
FWH 22.10 - HARBOUR - PELLES C
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: Favor AYUDA con Editar Columna en XBROWSE
Posted: Wed Oct 24, 2018 02:52 PM
Antonio, yo lo hago pero solo en el Valid, Despues de que escribió

Code (fw): Select all Collapse
oBrow:aCols[02]:nEditType       := 1
oBrow:aCols[02]:bEditValid      := { | oLeo, oCol | ValidaCaja( oLeo, oCol, oGet ) }


FUNCTION ValidaCaja( oLeo, oCol, oGet )
  LOCAL nRet := .F.
**** Aqui pongo mis validaciones
RETURN nRet


Espero y te ayude un poco.
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor AYUDA con Editar Columna en XBROWSE
Posted: Wed Oct 24, 2018 03:06 PM

Hola Javir.

Muchas gracias por responder.

No tengo mucha experiencia en Fivewin.

La idea es que solo permita editar las Filas que cumplan con la condicion.

Tu indicacion es que en la funcion "ValidaCaja()", valide que el campo Est_inf = "S" ??

Muchos Saludos

Antonio.

FWH 22.10 - HARBOUR - PELLES C
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Favor AYUDA con Editar Columna en XBROWSE
Posted: Wed Oct 24, 2018 08:25 PM
Code (fw): Select all Collapse
           WITH OBJECT oCust:aCols[ 2 ]
                 :nEditType  := EDIT_GET
                 :bEditWhen := {|| nro_usu2->Est_inf = "S" }
            END
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor AYUDA con Editar Columna en XBROWSE
Posted: Wed Oct 24, 2018 08:35 PM

Muchas Gracias a Javier y Cesar por responder.

Hoy probare sus soluciones y luego comentare.

Muchos Saludos.

Antonio.

FWH 22.10 - HARBOUR - PELLES C
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor AYUDA con Editar Columna en XBROWSE
Posted: Thu Oct 25, 2018 02:14 PM
Amigos
Muy buen dia.

De las opciones que me dio Javier y Cesar, aplique de loo Cesar, ya que si cumple que se puedan modificar solo las filas que cumplen la condición.

El problema que tengo es que NO Guarda el valor Ingresado, si manteniendo el valor antiguo al perder el foco.

Necesito que pueda Actualizar el valor digitado en el campo, para luego poder guardar la actualizacion en la DBF original.

Dejo el codigo que Aplico.

Esperando poder solucionar el problema, les saluda muy atte.

Antonio.

Code (fw): Select all Collapse
 
             DEFINE DIALOG oDlg1 RESOURCE "#1008"     FONT oFont1   Title " "
             REDEFINE SAY oSay1 ID 608 PROMPT "TIPO DE EXAMENES FECHA " OF oDlg1 FONT oFont4  COLORS RGB(12, 135, 27)

             REDEFINE XBROWSE oBrow ALIAS "&nro_usu5" FIELDS ;
            OemToAnsi(Cod_det1),;
            OemToAnsi(Cod_res),;
            OemToAnsi(Cod_det2);
            HEADERS;
            "Detalle Examen",;
            "Resultado Examen",;
            "Referencias";
            PICTURES '@!','@!','@!';
            ID 609 OF oDlg1 ;
            FONT oFont1;
            FOOTERS LINES CELL
            oBrow:nFreeze:=2
            oBrow:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
            oBrow:bClrSelFocus        := {|| { nRGB(  0,  0,  0), nRGB(137, 247, 33) } }
            oBrow:aCols[ 2 ]:lAutoSave  := .T.

            WITH OBJECT oBrow:aCols[ 2 ]
                 :nEditType  := EDIT_GET
                 :bEditWhen := {|| &nro_usu5->Est_inf = "S" }
                 oCol:bOnPostEdit := {|o, v, n| &nro_usu5->Cod_res:=v }
                
            END


           ACTIVATE DIALOG oDlg1 CENTERED
FWH 22.10 - HARBOUR - PELLES C
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Favor AYUDA con Editar Columna en XBROWSE
Posted: Thu Oct 25, 2018 11:11 PM
Saca el bonPostEdit y proba, porque le pusiste antes autosave...
Code (fw): Select all Collapse
            WITH OBJECT oBrow:aCols[ 2 ]
                 :nEditType  := EDIT_GET
                 :bEditWhen := {|| &nro_usu5->Est_inf = "S" }                 
            END
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor AYUDA con Editar Columna en XBROWSE
Posted: Fri Oct 26, 2018 12:09 AM
Cmsoft

Muchas gracias por tu ayuda.

He realizado los cambios y pruebas, lamentablemente no me resulta la actulizacion del campo " Cod_res "en la DBF, ni pantalla del browse.

Como me recomendaste, aplique el codigo asi:

Saludos
Antonio

Code (fw): Select all Collapse
             oBrow:nFreeze:=2
             oBrow:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
             :bClrSelFocus        := {|| { nRGB(  0,  0,  0), nRGB(137, 247, 33) } }
             oBrow:aCols[ 2 ]:lAutoSave  := .T.

            WITH OBJECT oBrow:aCols[ 2 ]
                 :nEditType  := EDIT_GET
                 :bEditWhen := {|| &nro_usu5->Est_inf = "S" }


            END
FWH 22.10 - HARBOUR - PELLES C
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Favor AYUDA con Editar Columna en XBROWSE
Posted: Fri Oct 26, 2018 12:27 PM
En los samples de FiveWin tienes un prg testxbr2.prg.
Prueba cambiar la funcion AutoEdit asi, para que se corresponda con tu ejemplo.
Code (fw): Select all Collapse
STATIC FUNCTION AutoEdit()

   local oChild, oBrw, oCol
   local nFor

   DEFINE WINDOW oChild TITLE "Auto edit browse" MDICHILD OF oWnd

   @ 0,0 XBROWSE oBrw OF oChild ALIAS "CUSTOMER";
    COLUMNS "FIRST","LAST","MARRIED","SALARY";
    LINES CELL 

   WITH OBJECT oBrw:aCols[4]
      :nEditType     := EDIT_GET
      :bEditWhen     := {|| customer->married}
      :lAutoSave     := .T.
   END
   oBrw:CreateFromCode()
   oChild:oClient := oBrw

   ACTIVATE WINDOW oChild ON INIT oBrw:SetFocus()

RETURN NIL

Veo que usas un & pero no se bien para que es, como viene antes tu .prg
Espero te sirva.
Saludos
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor AYUDA con Editar Columna en XBROWSE
Posted: Fri Oct 26, 2018 01:09 PM
Hola Cesar.

Muy agradecido por tu ayuda.

Ya habia revisado la opcion que mi indicas, creo que el ejemplo no es para ser usado con recursos, uso recursos RES, con pelles. No me gusta trabajar con coordenadas, no se realmente la diferencia entre ambas, mas alla de la que te comento.

Tu obervacion en relacion al signo & , &nro_usu5-> antes de esta variable, es porque trabajo con DBF de paso, que genero por cada usuario, para este tipo de procesos, al usarlo con este signo, no me debo preocupar del nombre de la DBF en uso. No se si habra otra forma mas moderna, pero la uso desde clipper.

Como puedes ver, aunque que pense que era algo simple al usar Xbrowse y actualizar campos de DBF, hoy se me ha transformado en algo muy complicado por el tiempo que me ha tomado, pensando ademas, que son varias las rutinas que debo actualizar con este metodo.

Muchos Saludos

Antonio.
FWH 22.10 - HARBOUR - PELLES C

Continue the discussion