FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SetCheck en Xbrowse con consulta Dolphin
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
SetCheck en Xbrowse con consulta Dolphin
Posted: Mon Nov 11, 2013 01:36 PM
Estimados:
Quiero poner una columna con un checkbox en un xbrowse.
Si lo hago as铆 con una dbf no hay problemas
Code (fw): Select all Collapse
 聽 聽 use trans 聽 
聽 聽 聽 REDEFINE XBROWSE oBrw ALIAS "trans";
聽 聽 聽 聽 聽COLUMNS "campo1","campo2","campo3";
聽 聽 聽 聽 聽HEADERS "Marca","Tasa", "Nro. Control";
聽 聽 聽 聽 聽SIZES 40,50,90 聽 ID 111 OF oDlg
聽 聽 聽 oBrw:OCol(1):SetCheck(nil,.t.,)

el browse muestra la primer fila (que es de tipo l贸gica) con el checkbox
Pero al querer hacerla con una consulta con la clase Dolphin, no me muestra la columna con el checkbox. El campo marca no existe en la tabla, lo creo como falso, PERO LO PONE EN 0 si lo muestro sin el CHECKBOX.
Code (fw): Select all Collapse
 
聽 聽oQry 聽:= OApp:oServer:Query("SELECT FALSE AS marca, se_deuda.* FROM SE_DEUDA ORDER BY contri") 
聽 聽REDEFINE XBROWSE oBrw DATASOURCE oQry;
聽 聽 聽 聽 COLUMNS "marca","tasa","contri","mes","ano","importe_ori","importe_act","estado","fecha_pago","Importe_Pago", "Forma_de_Pago";
聽 聽 聽 聽 HEADERS "Marca","Tasa", "Nro. Control","Cta","A帽o","$ Origen","$ Actual","Estado","Pagado el","Pagado $","Forma Pago";
聽 聽 聽 聽 FOOTERS;
聽 聽 聽 聽 SIZES 40,50,90,50,50,90,90,90,90,90,90 聽 ID 111 OF oDlg

聽 聽 聽oBrw:OCol(1):SetCheck(nil,.t.,)

Como puedo hacer para que funcione similar a las DBF
Gracias
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Mon Nov 11, 2013 01:39 PM

mira tdolphin.ch
creo que es
SET LOGICALVALUE ON

para que los 0/1 funcionen como .t./.f.

salu2
carlos vargas

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Mon Nov 11, 2013 01:44 PM

Gracias Carlos, por responder tan rapidamente!
Pruebo y comento!!

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Mon Nov 11, 2013 02:12 PM

Lamentablemente no me muestra el SetCheck con el formato de casilla de verificaci贸n.

Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Mon Nov 11, 2013 04:10 PM
aca me esta funcionando muy bien. La columna 3 oQryFeri:NACIONAL es logica y me esta mostradon la casilla de verificacion.

salu2

Code (fw): Select all Collapse
PROCEDURE Feriados()
   PRIVATE oError
   PRIVATE oDlg, oBrw, oToolbar, oPopUp1, oBtnFilter
   PRIVATE oQryFeri, oQryCiud
   PRIVATE cFiltro, lFiltrado
   PRIVATE bColCiudad

   cFiltro   := ""
   lFiltrado := FALSE

   IF !oSesion:EsAdmin()
      cFiltro := ""
   ELSE
      cFiltro := "NUM_CIUD=%1 OR NUM_CIUD=0"
      cFiltro := StrFormat( cFiltro, Var2Str( oSesion:GetNumCiudad() ) )
   ENDIF

   TRY
      oQryCiud := oServer:Query2( "SELECT NUM_CIUD, NOMBRE FROM CIUDADES ORDER BY NOMBRE" )
      IF !Empty( cFiltro )
         oQryFeri := oServer:Query2( "SELECT * FROM vCATFERI WHERE " + cFiltro + " ORDER BY FECHA" )
      ELSE
         oQryFeri := oServer:Query2( "SELECT * FROM vCATFERI ORDER BY FECHA" )
      ENDIF
      oQryCiud:FillDbf( "TBLCIUD", "TEMP1" )
      oQryCiud:END()
   CATCH oError
      IIf( HB_IsObject( oQryCiud ), oQryCiud:END(), NIL )
      IIf( HB_IsObject( oQryFeri ), oQryFeri:END(), NIL )
      ShowError( oError )
      RETURN
   END

   bColCiudad := {|| IIf( oQryFeri:NACIONAL, "N/D", oQryFeri:NOMCOR ) }

   DEFINE DIALOG oDlg NAME "DLG_FERIADOSC" OF oMainWnd ICON GetIcon() FONT oFontD

   REDEFINE XBROWSE oBrw ID 101 OF oDlg ALIAS "FERI" ON DBLCLICK Feriados_Editar( FALSE ) FONT oFontD

   ADD TO oBrw DATA oQryFeri:FECHA      TITLE "Fecha"              SIZE 090 CENTER PICTURE "@D"
   ADD TO oBrw DATA oQryFeri:MOTIVO     TITLE "Motivo del feriado" SIZE 270
   ADD TO oBrw DATA oQryFeri:NACIONAL   TITLE "Nacional"           SIZE 054
   ADD TO oBrw DATA bColCiudad          TITLE "Ciudad"             SIZE 054

   WITH OBJECT oBrw
      :SetDolphin( oQryFeri, FALSE )
      :MyConfig()
      :aCols[ 03 ]:SetCheck( { "BMS_CHECKON","BMS_CHECKOFF" } )
      :bKeyDown      := {|nKey| Feriados_ProcesaTecla( nKey ) }
      :lHScroll      := FALSE
      :nHeaderHeight := 36
   END

   ACTIVATE DIALOG oDlg ON INIT Feriados_Toolbar()

   TEMP1->( DBCloseArea() )

   oQryFeri:END()
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Mon Nov 11, 2013 04:24 PM

Carlos:
Vos estas pasando la consulta a una tabla DBF no?
Porque directamente desde tablas DBF me anda perfecto el setcheck, pero no desde una consulta directamente.
Sigo teniendo el mismo problema.
Gracias

Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Mon Nov 11, 2013 04:33 PM

nop, esa es otra consulta la que paso a dbf, la consulta principal, la que uso en xbrowse se mantiene como un objeto query de dolphin.

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Tue Nov 12, 2013 03:36 AM

Como mysql no maneja campos logicos, lo que hago es agregar una columna adicional despues del query o puedes pasar el query a un array y alli manejas la columna con valor logico, y trabaja sin problema, buscare el ejemplo para ponerlo, saludos... :shock:

Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Tue Nov 12, 2013 12:03 PM
Hola Carlos:
Mi duda es porque usas
Code (fw): Select all Collapse
REDEFINE XBROWSE oBrw ID 101 OF oDlg ALIAS "FERI" ON DBLCLICK Feriados_Editar( FALSE ) FONT oFontD

en lugar de
Code (fw): Select all Collapse
REDEFINE XBROWSE oBrw ID 101 OF oDlg DATASOURCE oQryFeri ON DBLCLICK Feriados_Editar( FALSE ) FONT oFontD

Usas un formato de DBF para abrir una consulta DOLPHIN, es nuevo para mi eso. Quien es FERI?
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Tue Nov 12, 2013 12:41 PM

Hola Jose Luis!
Y directamente desde la consulta no lo has probado? Sin pasarlo a un array?
Gracias por responder.

Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Tue Nov 12, 2013 02:30 PM
Code (fw): Select all Collapse
REDEFINE XBROWSE oBrw ID 101 OF oDlg ALIAS "FERI" ON DBLCLICK Feriados_Editar( FALSE ) FONT oFontD

pues sip, tiene razon, se me ha quedado ese pedazo de codigo, lo he eliminado y cero roblemas. :-)
gracias por la observacion.
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Tue Nov 12, 2013 08:07 PM
cmsoft wrote:Hola Jose Luis!
Y directamente desde la consulta no lo has probado? Sin pasarlo a un array?
Gracias por responder.


Fijate lo que hago usando la consulta directa, sin array:

1. tengo un campo que es vez de ser logico, lo uso de tipo integer de 1 valor, en el cual uso 0 贸 1.
2. esa columna la muestro asi

oBrw:aCols[5]:cHeader := "ADJ."
oBrw:aCols[5]:bEditValue := {|| IIF( oQryADJ:LastRec() == 0, SPACE(10) ,;
( IIF( oQryADJ:adj_adjudicar==0, .f., .t. ) ) ) }
oBrw:aCols[5]:nHeadStrAlign := AL_LEFT
oBrw:aCols[5]:nDataStrAlign := AL_LEFT
oBrw:aCols[5]:nWidth := 30
oBrw:aCols[5]:bClrStd := {|| {CLR_BLACK, CLR_CYAN} }
oBrw:aCols[5]:SetCheck( { "OK16", } )
oBrw:aCols[5]:cToolTip := "Doble Click/ENTER/ESPACIO para marcar o descargar."

3. en la defincion del xbrowse hago eso:
// ACT./DES. STATUS SELECCIONADO PARA ADJUDICAR CON D-CLICK
:bLDblClick := {|nRow|IIF( oQryADJ:adj_adjudicar = 0 ,;
( oQryADJ:adj_adjudicar := 1 ) ,;
( oQryADJ:adj_adjudicar := 0 ) ) ,;
act_check( oQryAdj ) ,;
oQryADJ:REFRESH(), oBrw:REFRESH() }

// ACT./DES. STATUS SELECCIONADO PARA ADJUDICAR CON SPACE
:bKeyDown= {|nKey| IF ( nKey == VK_SPACE ,;
IIF( oQryADJ:adj_adjudicar = 0 ,;
( oQryADJ:adj_adjudicar := 1 ) ,;
( oQryADJ:adj_adjudicar := 0 ) ), ) }

4. esta es la funcion act_check()
PROCEDURE act_check( oQryAdj ) // ACTUALIZA CHECK PARA adjudicar

LOCAL cSql, oError
oQryAdj:REFRESH()

cSql := "UPDATE cronograma SET "
cSql += "adj_adjudicar=" + ClipValue2SQL( IF( oQryAdj:adj_adjudicar == 0, 1, 0 ) )
cSql += " WHERE adj_insc = '" + ClipValue2SQL( oQryAdj:adj_insc ) + "' "

TRY
oDatos:Execute( cSql )

CATCH oError
MSGALERT( oError:Description + CRLF + ;
"Error Grabando en Tabla (cronograma), Sentencia" + CRLF + CRLF + ;
cSql, oDatos:cTitMsg )
END

RETURN

espero te ayude o de alguna buena idea o mejorar como lo hago, gracias y saludos... :-)
Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Wed Nov 13, 2013 01:36 PM

Hola Jose Luis:
Gracias por tu ayuda!
Ya sale el cuadradito del checkbox en mi browse.
Ahora el problema es que cuando le doy doble click me da un error de ONEDIT que no est谩 definida en XBROWSE.
En mi caso el campo que muestro como checkeable no est谩 en la tabla, solo lo muestro en la consulta.
Gracias por tu ayuda...

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Wed Nov 13, 2013 03:22 PM

Que bueno te haya servido, cualquier cosa como todo este foro, estoy a la orden, siempre y cuando pueda y sepa, jeje...saludos... :shock:

Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: SetCheck en Xbrowse con consulta Dolphin
Posted: Fri Nov 15, 2013 01:09 PM

Hola!
Ahora no me deja cambiar el estado.
Ser谩 porque es un campo que no pertenece a la tabla, sino que es de la consulta?
Tal vez Daniel pueda responderlo...
En caso de que sea un campo de la tabla, de que tipo MySql tengo que definirlo para poder tratarlo como l贸gico directamente?