xbrowse

xbrowse

Postby surGom » Mon Aug 24, 2015 10:52 pm

Hola estoy tratando de mostrar un cuenta corriente el código es el siguiente

Code: Select all  Expand view
static function cargocta(oBrw,odlg,oNbut,oMysql)
local oQmae  := oMysql:Query( "SELECT * FROM maeclie")
local oQry1
local z := 1
local lTipo := .f.
local nImporte


oQry1 :=busnap(,oQmae,oCta:ncli,oMysql)

 

if empty(oQry1 )
    return .f.
endif
oQrycta :=oMysql:Query( "SELECT * FROM ctacte  where ncli  = " + alltrim(str(oQry1:ncli) + " ORDER BY fecha" ))



nsaldo := 0
oCta:ncli := oQry1:ncli
oCta:nape := oQry1:nape


   oBrw:setdolphin(  oQrycta )
         
   WITH OBJECT oBrw:aCols[ 1 ]
      :cHeader := "Fecha"
      :bEditValue := {|| oQrycta:fecha }
      :cEditPicture := "@D"
      :nDataStrAlign := AL_RIGHT
   END WITH

   WITH OBJECT oBrw:aCols[ 2 ]
      :cHeader := "Descripción"
      :bStrData  := {|| (oQrycta:descripcion  + oQrycta:numero)}
   END WITH

   WITH OBJECT oBrw:aCols[ 3 ]
       :cHeader := "Número"
      :bStrData  := {|| oQrycta:numero}  
   END WITH

   WITH OBJECT oBrw:aCols[ 4 ]      
      :cHeader := "Debe"
      :bStrData  := {||iif(oQrycta:tipo =1, oQrycta:importe,  nil) }      (1)
      :cEditPicture := NumPict( 12, 2 )
   END WITH

   WITH OBJECT oBrw:aCols[ 5 ]
       :cHeader := "Pagos"
      :bStrData  := {|| iif(oQrycta:tipo =2,oQrycta:importe,  nil)}     (1)
      :cEditPicture := NumPict( 12, 2 )
   END WITH

   WITH OBJECT oBrw:aCols[ 6 ]
       :cHeader := "Saldo"
      :bStrData  := {||  nsaldo := iif(oQrycta:tipo =1, oQrycta:importe,-oQrycta:importe)}  (2)
      :cEditPicture := NumPict( 12, 2 )
   END WITH          


oBrw:refresh()
odlg:update()
return .t.


Me muestra todo bien salvo en (1) y (2) que no me muestran nada
oQrycta=1 es Débitos y
oQrycta=2 es Créditos

algo similar tengo con tablas Dbf y utilizando xHarbour y me muestra correctamente lo solicitado.

Esto esta hecho con harbour

Si pongo en los casos (1)

:bStrData  := {|| oQrycta:importe} me muestra los valores

Gracias por su atención, indudablemente es el if que estoy poniendo que esta mal pero porque funciona en el caso de xharbour mencionado anteriromente?

Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re: xbrowse

Postby cmsoft » Tue Aug 25, 2015 11:22 am

Podrias hacerlo directamente desde la consulta, es decir, traerte lo que necesitas ya armado.
Code: Select all  Expand view
oQrycta :=oMysql:Query( "SELECT fecha, descripcion, numero, if(tipo=1,importe,0) as debe, if(tipo=1,0,importe) as haber  FROM ctacte  where ncli  = " + alltrim(str(oQry1:ncli) + " ORDER BY fecha" ))

Tene en cuenta que en la query que te traes con * tenes mas campo, como "tipo" que no lo mostras en el browse y si lo asignas cuando haces oBrw:setdolphin( oQrycta )
Espero que te de una pista.
Saludos
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: xbrowse

Postby surGom » Tue Aug 25, 2015 11:45 pm

Gracias Cmsoft ahora funciona lo que no funciona es la columna de saldo

Code: Select all  Expand view
  WITH OBJECT oBrw:aCols[ 6 ]
      :cHeader := "Saldo"
      :bEditValue  := {||  nsaldo += (oQrycta:debe - oQrycta:haber)  }      
      :cEditPicture := NumPict( 12, 2 )
   END WITH  


lo muestra bien salvo el primer registro que lo duplica

https://drive.google.com/file/d/0B8UT40 ... sp=sharing

pero al hacer un click sobre el xbrowse hace esto (incrementa los valores de la columna 6) y así con cada click sobre el mismo

https://drive.google.com/file/d/0B8UT40 ... sp=sharing

Probé varias alternativa pero no pude resolverlo.

Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 96 guests