Favor AYUDA con Editar Columna en XBROWSE

Post Reply
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Favor AYUDA con Editar Columna en XBROWSE

Post by remtec »

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: Select all

 
   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
 
VitalJavier
Posts: 188
Joined: Mon Jun 10, 2013 6:40 pm

Re: Favor AYUDA con Editar Columna en XBROWSE

Post by VitalJavier »

Antonio, yo lo hago pero solo en el Valid, Despues de que escribió

Code: Select all

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.
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Favor AYUDA con Editar Columna en XBROWSE

Post by remtec »

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.
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Favor AYUDA con Editar Columna en XBROWSE

Post by cmsoft »

Code: Select all

           WITH OBJECT oCust:aCols[ 2 ]
                 :nEditType  := EDIT_GET
                 :bEditWhen := {|| nro_usu2->Est_inf = "S" }
            END
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Favor AYUDA con Editar Columna en XBROWSE

Post by remtec »

Muchas Gracias a Javier y Cesar por responder.

Hoy probare sus soluciones y luego comentare.

Muchos Saludos.

Antonio.
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Favor AYUDA con Editar Columna en XBROWSE

Post by remtec »

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: Select all

 
             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
 
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Favor AYUDA con Editar Columna en XBROWSE

Post by cmsoft »

Saca el bonPostEdit y proba, porque le pusiste antes autosave...

Code: Select all

            WITH OBJECT oBrow:aCols[ 2 ]
                 :nEditType  := EDIT_GET
                 :bEditWhen := {|| &nro_usu5->Est_inf = "S" }                 
            END
 
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Favor AYUDA con Editar Columna en XBROWSE

Post by remtec »

Cmsoft

Muchas gracias por tu ayuda.

He realizado _ 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: Select all

             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

 
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Favor AYUDA con Editar Columna en XBROWSE

Post by cmsoft »

En los samples de FiveWin tienes un prg testxbr2.prg.
Prueba cambiar la funcion AutoEdit asi, para que se corresponda con tu ejemplo.

Code: Select all

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
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Favor AYUDA con Editar Columna en XBROWSE

Post by remtec »

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.
Post Reply