SETCHECK EN XBROWSE CON QUERY MYSQL-SOLUCIONADO

SETCHECK EN XBROWSE CON QUERY MYSQL-SOLUCIONADO

Postby joseluisysturiz » Mon May 23, 2016 3: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: Select all  Expand view

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

   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
Image
Last edited by joseluisysturiz on Sun Oct 02, 2016 9:25 pm, edited 1 time in total.
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: SETCHECK EN XBROWSE CON QUERY MYSQL

Postby cmsoft » Mon May 23, 2016 4: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
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: SETCHECK EN XBROWSE CON QUERY MYSQL

Postby joseluisysturiz » Mon May 23, 2016 4: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... :shock:

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

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: SETCHECK EN XBROWSE CON QUERY MYSQL

Postby Armando » Mon May 23, 2016 11:06 pm

José Luis:

Una pequeño ejemplo para el Check Box

Code: Select all  Expand view

        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
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: SETCHECK EN XBROWSE CON QUERY MYSQL

Postby joseluisysturiz » Mon May 23, 2016 11:37 pm

Armando wrote:José Luis:

Una pequeño ejemplo para el Check Box

Code: Select all  Expand view

        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... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: SETCHECK EN XBROWSE CON QUERY MYSQL

Postby Francisco Horta » 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
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: SETCHECK EN XBROWSE CON QUERY MYSQL

Postby nageswaragunupudi » Wed May 25, 2016 2:25 pm

Code: Select all  Expand view
  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
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 72 guests