FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SETCHECK EN XBROWSE CON QUERY MYSQL-SOLUCIONADO
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
SETCHECK EN XBROWSE CON QUERY MYSQL-SOLUCIONADO
Posted: Mon May 23, 2016 03:20 AM
Saludos, tengo un query mysql donde creo 2 columnas virtuales para usarlas con SetCheck, he buscado las mil y una formas y no se si estoy intentando algo que no se puede hacer....pero quiero que mi xbrowse que carga la data directamente desde el query, me ponga las 2 columnas virtuales con SetCheck, asi como se hace con array, he revisado el foro y siempre es con array, hay manera de hacerlo como quiero o estoy inventando.?, espero las sugerencias y algun ejemplo si es posible...y ademas a esto...como usar "bSumCondition" para que solo me sume las celdas de una columna cuando se cumpla la condicion de la celda de otra columna, dejo como cree la consulta y el xbrowse y lo que he probado con ayuda de colegas y viendo en el foro creando el xbrowse, me pone el setchek pero con un numero 9 adentro y no se porque ya que las columnas se definen con 0 en la consulta...saludos...gracias.

QUERY
Code (fw): Select all Collapse
   cSql := "SELECT cu.numero_cuota, cu.aporte_mensual, cu.vencimiento, "
   cSql += "DATE(NOW()) AS fch_pag_cuo, "
   cSql += "IF(ISNULL(cu.multa), 0, cu.multa) AS mto_multa, "
   cSql += "DATE(NOW()) AS fch_pag_mul, cp.cedula_cliente, "
   cSql += "cp.pax, cp.id_cliente_pax,  ct.id_contrato, "

   [b]cSql += "0 AS setche1, 0 AS setche2 " // ESTAS SON LAS COLUMNAS VIRTUALES LAS CUALES SON LAS COLUMNAS 5 Y 8 EN XBROWSE[/b]

   cSql += "FROM jlr_clientes_pax AS cp "
   cSql += "LEFT JOIN jlr_contratos AS ct ON cp.id_cliente_pax = ct.id_cliente_pax "
   cSql += "LEFT JOIN jlr_estados_cuenta AS cu ON ct.id_contrato = cu.id_contrato "
   cSql += "WHERE ISNULL(cp.cedula_cliente) "
   cSql += "ORDER BY cu.numero_cuota, cp.pax"
   TRY // TABLA CONTRATOS-CUOTAS
      oQryCuo := TDolphinQry():New( cSql, oDatos:oConex )
   CATCH oError
      ShowError( oError, "dat_factu", "ma_facturas.prg", "jlr_clientes_pax" )
      RETURN
   END


XBROWSE
Code (fw): Select all Collapse
   REDEFINE XBROWSE aBrw[1] ID 100 OF oDlg ;
      DATASOURCE oQryCuo ;
      LINES AUTOSORT FOOTERS ;
      HEADERS "Número" + CRLF + "Cuota" ,;
              "Monto" + CRLF + "Cuota" ,;
              "Fecha" + CRLF + "Vencimiento" ,;
              "Fecha" + CRLF + "Pagada Cuota" ,;
              "SC" ,;
              "Monto" + CRLF + "Multa" ,;
              "Fecha" + CRLF + "Pagada Multa" ,;
              "SM" ; //"E" ,; "D" ;
      COLUMNS "numero_cuota" ,;
              "aporte_mensual" ,;
              "vencimiento" ,;
              "fch_pag_cuo" ,;
              "setche1" ,;
              "mto_multa" ,;
              "fch_pag_mul" ,;
              "setche2" ;
      COLSIZES 50, 100, 90, 90,   70, 70, 90,   70 ;
      JUSTIFY 2, 1, 2, 2, 2, 1, 2, 2 ;
      PICTURES , "@E 999,999,999.99", , , , "@E 999,999,999.99"

   WITH OBJECT aBrw[1] // COLUMNAS VIRTUALES
      :aCols[5]:cToolTip := "Seleccione Cuota(s) a Pagar"
      :aCols[5]:bStrData := { || IF( oQryCuota:setche1 = 0, 'N', 'S' ) }
      :aCols[5]:nEditType := EDIT_GET
      :aCols[5]:addresource("ok16")
      :aCols[5]:bBmpData  := {|| IF( oQryCuota:setche1 > 0, 1, 0 ) }
      :aCols[5]:cDataType := 'L'
      :aCols[5]:SetCheck()
      *:aCols[5]:SetCheck(nil, .t.)
      *:aCols[5]:SetCheck( { "ok16", } )
      :aCols[5]:bEditValue := { || IF( oQryCuota:setche1 > 0, .t., .f. ) }
      :aCols[5]:bOnPostEdit := { |o,x,n| IF( n != VK_ESCAPE, ( o:value:= x, Alert(x) ), ) }

      ***

      :aCols[8]:cToolTip := "Seleccione Multa(s) a Pagar"
      :aCols[8]:bStrData := { || IF( oQryCuota:setche2 = 0, 'N', 'S' ) }
      :aCols[8]:nEditType := EDIT_GET
      :aCols[8]:addresource("ok16")
      :aCols[8]:bBmpData  := {|| IF( oQryCuota:setche2 > 0, 1, 0 ) }
      :aCols[8]:cDataType := 'L'
      :aCols[8]:SetCheck()
      *:aCols[8]:SetCheck(nil, .t.)
      *:aCols[8]:SetCheck( { "ok16", } )
      :aCols[8]:bEditValue := { || IF( oQryCuota:setche2 > 0, .t., .f. ) }
      :aCols[8]:bOnPostEdit := { |o,x,n| IF( n != VK_ESCAPE, ( o:value:= x, Alert(x) ), ) }
   END WITH


IMAGEN XBROWSE
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 QUERY MYSQL
Posted: Mon May 23, 2016 04:05 AM

Yo lo he solucionado creando una tabla temporal, y trabajando sobre esta, porque en realidad cuando cambia el estado con el SetCheck, tiene que grabar sobre la tabla.
O sea que primero creas una tabla temporal con el formato que vas a ver en el xbrowse, despues haces un insert into desde el select que estas haciendo ahora, y luego muestras el xbrowse sobre la tabla temporal.
Espero te sirva la idea

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: SETCHECK EN XBROWSE CON QUERY MYSQL
Posted: Mon May 23, 2016 04:11 AM
cmsoft wrote:Yo lo he solucionado creando una tabla temporal, y trabajando sobre esta, porque en realidad cuando cambia el estado con el SetCheck, tiene que grabar sobre la tabla.
O sea que primero creas una tabla temporal con el formato que vas a ver en el xbrowse, despues haces un insert into desde el select que estas haciendo ahora, y luego muestras el xbrowse sobre la tabla temporal.
Espero te sirva la idea


Saludos CMSOFT, esa idea es buena, pero lo que quiero es evitar trabajar mas, para hacer eso, entonces sigo usando el ARRAY, encontre algo en el foro con ADO, pero pruebo todo y nada..sigue con el mismo detalle...gracias... :-)

viewtopic.php?f=3&t=29701&start=0&hilit=setcheck
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: SETCHECK EN XBROWSE CON QUERY MYSQL
Posted: Mon May 23, 2016 11:06 PM
José Luis:

Una pequeño ejemplo para el Check Box

Code (fw): Select all Collapse
        aCol[ 8]                            := oBrw:AddCol()
        aCol[ 8]:cHeader                := "Can"
        aCol[ 8]:bEditValue             := { || oRsDet:RecordCount() > 0 .AND. oRsDet:Fields("DET_CAN"):Value }
        aCol[ 8]:SetCheck( { "SI","NO" } )


Ojo, SI y NO son dos BMPs metidos a los recursos y son las imágenes que quieres que se muestren

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: SETCHECK EN XBROWSE CON QUERY MYSQL
Posted: Mon May 23, 2016 11:37 PM
Armando wrote:José Luis:

Una pequeño ejemplo para el Check Box

Code (fw): Select all Collapse
        aCol[ 8]                            := oBrw:AddCol()
        aCol[ 8]:cHeader                := "Can"
        aCol[ 8]:bEditValue             := { || oRsDet:RecordCount() > 0 .AND. oRsDet:Fields("DET_CAN"):Value }
        aCol[ 8]:SetCheck( { "SI","NO" } )


Ojo, SI y NO son dos BMPs metidos a los recursos y son las imágenes que quieres que se muestren

Saludos

Disculpa Armando, el setcheck lo hace, pero estoy usando un QUERY Mysql, con Array trabaja, mira la imagen que coloque y lo que escribi para que veas el problema que tengo haber si tienes alguna otra idea por alli, gracisa, saludos... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: SETCHECK EN XBROWSE CON QUERY MYSQL
Posted: Tue May 24, 2016 10:07 PM

Jose Luis,

yo lo uso asi:
aoCols[6] := oBrw:AddCol()
aoCols[6]:nWidth := 26
aoCols[6]:cHeader := "CxC"
aoCols[6]:AddBmpHandle( "Chk_T" )
aoCols[6]:AddBmpHandle( "Chk_F" )
aoCols[6]:bBmpData := {|| IF(oQry:FieldGet("escxc"), 1, 2) }
aoCols[6]:nDataStrAlign := AL_CENTER
aoCols[6]:nHeadStrAlign := AL_CENTER

Saludos

____________________

Paco
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: SETCHECK EN XBROWSE CON QUERY MYSQL
Posted: Wed May 25, 2016 02:25 PM
Code (fw): Select all Collapse
   WITH OBJECT aBrw[1] // COLUMNAS VIRTUALES
      :aCols[5]:cToolTip := "Seleccione Cuota(s) a Pagar"
      :aCols[5]:bEditValue := { || oQryCuota:setche1 > 0 }
      :aCols[5]:SetCheck( { "ok16", }, .t. )

      ***

      :aCols[8]:cToolTip := "Seleccione Multa(s) a Pagar"
      :aCols[8]:bEditValue := { || oQryCuota:setche2 > 0 }
      :aCols[8]:SetCheck( { "ok16", }, .t. )

   END WITH
Regards



G. N. Rao.

Hyderabad, India

Continue the discussion