FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SetCheck CON DBF NO ME CAMBIA IMAGEN TRUE/FALSE
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
SetCheck CON DBF NO ME CAMBIA IMAGEN TRUE/FALSE
Posted: Fri Sep 08, 2017 03:19 AM
Saludos, tengo un sistema viejo en dbf, este contiene un xbrowse con una columna de campo logico para usar setcheck(), estaba trabajando muy bien el setcheck(), por razones hice unos cambios en un reporte y tuve que recompilar con fwh 17.5 y ahora aunque me hace el cambio del campo logico de .t.->.f. / .f.->.t., pero ahora no me cambia la imagen del setcheck no importa de que modo lo use...alguna idea de que revisar.? anexo codigo del xBrowse y funcion donde hago el cambio en la DBF, saludos, gracias... :-)

DEFINICION DEL XBROWSE
Code (fw): Select all Collapse
   oBrw:=TxBrowse():New( oDlgPpal )

   WITH OBJECT oBrw
      :nMarqueeStyle := MARQSTYLE_HIGHLCELL
      :nColDividerStyle := LINESTYLE_BLACK
      :nStretchCol := STRETCHCOL_LAST
      :lColDividerComplete := .t.
      :lAllowColSwapping := .f.
      :lAllowColHiding := .f.
      :nHeaderHeight := 20
      :l2007 := .t.
      :lFooter := .t.
      :lRecordSelector := .t.
      :lFastEdit := .t.
      :bLDblClick := {|| tildafactu( oDbfFACTU, oBrw ) } // DOBLE CLICK
   END WITH

//COMIENZAN LAS COLUMNAS
*** COL.1
   oCol := oBrw:AddCol()
   oCol:bStrData := {|| IIF( LastRec() > 0, oDbfFACTU:fecha, SPACE(10) ) }
   oCol:cHeader       := "Fecha"
   oCol:nWidth        := 70
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nDataStrAlign := AL_CENTER

*** COL.2
   oCol := oBrw:AddCol()
   oCol:bStrData := {|| IIF( LastRec() > 0, oDbfFACTU:factura, SPACE(10) ) }
   oCol:cHeader       := "No.FACT."
   oCol:nWidth        := 80
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nDataStrAlign := AL_CENTER

*** COL.3
   oCol := oBrw:AddCol()
   oCol:bStrData := {|| IIF( LastRec() > 0, oDbfFACTU:control, SPACE(10) ) }
   oCol:cHeader       := "No.CTRL"
   oCol:nWidth        := 80
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nDataStrAlign := AL_CENTER
   oCol:nEditType     := EDIT_GET
   oCol:bEditWhen := {|| oDbfFACTU:marca == .f. } // NO EDITA SI ESTA MARCADO PARA RETENCION
   oCol:bOnPostEdit   := { | oCol, xVal, nKey | If( nKey == VK_RETURN .or. ;
                                                   nKey == VK_DOWN ,;
                                                   ( oDbfFACTU:control := xVal ,;
                                                   oDbfFACTU:SAVE() ), ) }

*** COL.4
   oCol := oBrw:AddCol()
   oCol:bStrData := {|| IIF( LastRec() > 0, oDbfFACTU:nombre, SPACE(250) ) }
   oCol:cHeader       := "NOMBRE O RAZON SOCIAL DEL CLIENTE"
   oCol:nWidth        := 250
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nDataStrAlign := AL_LEFT

*** COL.5
   oCol := oBrw:AddCol()
   oCol:bStrData := {|| IIF( LastRec() > 0, oDbfFACTU:rif, SPACE(10) ) }
   oCol:cHeader  := "RIF"
   oCol:cFooter  := "TOTALES --->"
   oCol:nFootStrAlign := AL_RIGHT
   oCol:nWidth        := 80
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nDataStrAlign := AL_LEFT

*** COL.6 - MTO.BASE
   oCol := oBrw:AddCol()
   oCol:bEditValue := {|| oDbfFACTU:subtotal }
   oCol:cEditPicture := "@E 999,999,999.99"
   oCol:cHeader       := "MTO.BASE"
   oCol:nWidth        := 70
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nDataStrAlign := AL_RIGHT
   oCol:bEditWhen := {|| oDbfFACTU:marca == .f. } // NO EDITA SI ESTA MARCADO PARA RETENCION
   oCol:nEditType     := EDIT_GET
   oCol:lTotal        := .t.      // PARA TOTALIZAR
   oCol:nTotal        := 0        // PARA TOTALIZAR
   oCol:nFooterType   := AGGR_SUM // PARA TOTALIZAR
   oCol:nFootStrAlign := AL_RIGHT // PARA TOTALIZAR

*** COL.7 - MTO.IVA
   oCol := oBrw:AddCol()
   oCol:bEditValue := {|| oDbfFACTU:total-oDbfFACTU:subtotal }
   oCol:cEditPicture := "@E 999,999,999.99"
   oCol:cHeader       := "MTO.IVA"
   oCol:nWidth        := 70
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nDataStrAlign := AL_RIGHT
   oCol:bEditWhen := {|| oDbfFACTU:marca == .f. } // NO EDITA SI ESTA MARCADO PARA RETENCION
   oCol:nEditType     := EDIT_GET
   oCol:lTotal        := .t.
   oCol:nTotal        := 0
   oCol:nFooterType   := AGGR_SUM
   oCol:nFootStrAlign := AL_RIGHT

*** COL.8 - MTO.NETO
   oCol := oBrw:AddCol()
   oCol:bEditValue := {|| oDbfFACTU:total }
   oCol:cEditPicture := "@E 999,999,999.99"
   oCol:cHeader       := "MTO.NETO"
   oCol:nWidth        := 70
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nDataStrAlign := AL_RIGHT
   oCol:nEditType     := EDIT_GET
   oCol:lTotal        := .t.
   oCol:nTotal        := 0
   oCol:nFooterType   := AGGR_SUM
   oCol:nFootStrAlign := AL_RIGHT
   oCol:bOnChange := { || oBrw:MakeTotals() ,;
                          oBrw:RefreshFooters() } // ACT.TOT.EN LOS FOOTERS(13/01/2013)
   oCol:bEditWhen := {|| oDbfFACTU:marca == .f. } // NO EDITA SI ESTA MARCADO PARA RETENCION
   oCol:bOnPostEdit   := { | oCol, xVal, nKey | If( nKey == VK_RETURN ,;
                           ( oDbfFACTU:total := xVal ,; // MTO.NETO
                           oDbfFACTU:subtotal := oDbfFACTU:total/1.12 ,; // MTO.BRUTO
                           oDbfFACTU:mtoiva := oDbfFACTU:total - oDbfFACTU:subtotal ,; // MTO.IVA
                           oDbfFACTU:SAVE() ), ) }

*** COL.9 - MARCA(check)
   oCol := oBrw:AddCol()
   oCol:cHeader       := "Sel"
   oCol:bEditValue      := {|| IIF( LastRec() == 0, .f. ,;
                                 oDbfFACTU:marca ) }
   oCol:nHeadStrAlign := AL_CENTER
   oCol:nDataStrAlign := AL_CENTER
   oCol:nWidth        := 20
   oCol:cToolTip      := "Doble Click/ENTER/ESPACIO para marcar/descargar."
   oCol:SetCheck()
*   oCol:SetCheck( { "OK16", .t. } )
//
   oBrw:SetoDbf( oDbfFACTU )
   oBrw:CreateFromResource( 100 )
   oBrw:MakeTotals()
   oBrw:REFRESH()



FUNCION DE CAMBIO true/false/true
Code (fw): Select all Collapse
PROCEDURE tildafactu( oDbf, oBrw )

   IF oDbf:LastRec() > 0
      IF oDbf:marca == .f.
         oDbf:marca := .t.
      ELSE
         oDbf:marca := .f.
      ENDIF
   ENDIF

   oDbf:SAVE()
   
   oBrw:GOTOP()

   oBrw:REFRESH()
   oBrw:MakeTotals()

RETURN
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: SetCheck CON DBF NO ME CAMBIA IMAGEN TRUE/FALSE
Posted: Mon Sep 11, 2017 08:45 PM
Prueba poniendo
Code (fw): Select all Collapse
   oBrw:aCols[4]:nEditType := EDIT_GET
   oBrw:aCols[4]:bEditValue := {|| IF( tutabla->valorlogico, .t., .f. )  }
   oBrw:aCols[4]:SetCheck(,.t.)

4 es la columna del xbrowse donde esta el campo logico
Tuve el mismo problema con dolphin.
Espero te sirva
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: SetCheck CON DBF NO ME CAMBIA IMAGEN TRUE/FALSE-RESUELTO
Posted: Mon Sep 11, 2017 09:58 PM
cmsoft wrote:Prueba poniendo
Code (fw): Select all Collapse
   oBrw:aCols[4]:nEditType := EDIT_GET
   oBrw:aCols[4]:bEditValue := {|| IF( tutabla->valorlogico, .t., .f. )  }
   oBrw:aCols[4]:SetCheck(,.t.)

4 es la columna del xbrowse donde esta el campo logico
Tuve el mismo problema con dolphin.
Espero te sirva



CMSOFT ya lo resolvi con una ayuda de NAGE en el foro inglres, igual gracias por tu respuesta...saludos...gracias... :-)

viewtopic.php?f=3&t=34571
Dios no está muerto...



Gracias a mi Dios ante todo!

Continue the discussion