Page 1 of 2

consulta xbrowse

PostPosted: Sat Feb 09, 2013 1:04 pm
by surGom
Buenos días, mi duda es si se puede mostrar un xbrowse sobre una base de datos en blanco hasta que yo seleccione un código, el script que realizé es el siguiente

Code: Select all  Expand view
FUNCTION xBrwgen()
local odlgx
local oCtae
local oBrw, oSpli
local nProa := 0
local napea
local aMae := array(0)
local oGet := array(3)
local beval  := {|| aMae := iif(empty(nproa),buspro(),buspro(nproa)), iif(len(aMae) > 0,(nproa := aMae[1],napea := aMae[2],odlgx:update(),.t.),odlgx:end())}


if !pasaje("CTAEXPO");return nil; endif
   DATABASE oCtae
   oCtae:setorder(1)


DEFINE DIALOG oDlgx resource "dia_xbrowse"

  REDEFINE GET oGet[1] VAR nproa id 121 of odlgx update valid (eval(beval))   //  ( 1  NOTA )
  REDEFINE GET oGet[2] VAR napea id 120 of odlgx update

  REDEFINE BTNBMP oGet[3] id 101 of oDlgx resource "btngastos","btnastos1" ACTION ctaexpo(oCtae,oBrw,nproa,.t.,.t.)

  REDEFINE SPLITTER oSpli ID 111 COLOR rgb(234,234,234)  of odlgx _3DLOOK

  REDEFINE XBROWSE oBrw id 110 of odlgx update;
                    columns 1,2,3,4,5,6;
                    COLSIZES 80,90,160,120,120,120;
                    HEADERS "Fecha", "Comprobante", "Descripción","Debe" ,"Haber","Total";
                    PICTURES "@d", nil,NIL,"@e 99,999,999.99","@e 99,999,999.99","@e 99,999,999.99" ;
                    alias oCtae:cAlias lines cell


  WITH OBJECT oBrw
     :nMarqueeStyle := MARQSTYLE_HIGHLCELL
     :nColDividerStyle := LINESTYLE_BLACK
     :nStretchCol := STRETCHCOL_LAST
     :lColDividerComplete := .t.
     :l2007 := .t.
     :lRecordSelector := .t.
     :lAllowColHiding := .f.
     :lAllowColSwapping := .f.
  END WITH

  WITH OBJECT oBrw:aCols[1]
     :bStrData := {|| oCtae:fecha }
     :cEditPicture := "@d"
     :nFootStrAlign := AL_RIGHT
  END WITH

  WITH OBJECT oBrw:aCols[2]
     :bStrData := {|| oCtae:factura }
     :nFootStrAlign := AL_RIGHT
  END WITH

  WITH OBJECT oBrw:aCols[3]
     :bStrData := {|| oCtae:opera }
     :nFootStrAlign := AL_LEFT
  END WITH

  WITH OBJECT oBrw:aCols[4]
     :bStrData := {|| IIF(oCtae:lsumo,oCtae:importe,"") }
     :cEditPicture := "@e 99,999,999.99"
     :nFootStrAlign := AL_RIGHT
  END WITH

  WITH OBJECT oBrw:aCols[5]
     :bStrData := {|| IIF(!oCtae:lsumo,oCtae:importe,"") }
     :cEditPicture := "@e 99,999,999.99"
     :nFootStrAlign := AL_RIGHT
  END WITH

  WITH OBJECT oBrw:aCols[6]
     :bStrData := {|| oCtae:saldo }
     :cEditPicture := "@e 99,999,999.99"
     :nFootStrAlign := AL_RIGHT
  END WITH

 activate dialog odlgx

 cierroalias(oCtae:cAlias,oCtae)

 return nil


( 1 NOTA )que recién aquí resuelva la grilla del xbrowse según el código solicitado.

Gracias por vuestra atención

Re: consulta xbrowse

PostPosted: Sat Feb 09, 2013 3:12 pm
by joseluisysturiz
SURGOM, intentalo asi, saludos... :shock:

WITH OBJECT oBrw:aCols[1]
:bStrData := {|| IIF tu_condicion, oCtae:fecha, space(10) }
:cEditPicture := "@d"
:nFootStrAlign := AL_RIGHT
END WITH

Re: consulta xbrowse

PostPosted: Sat Feb 09, 2013 8:15 pm
by surGom
Gracias Jose Luis lo voy a probar.

Luis

Re: consulta xbrowse

PostPosted: Sun Feb 10, 2013 10:58 am
by surGom
José Luis funciono muy bien. Igual tenía un error en el código en vez de

Code: Select all  Expand view
 REDEFINE XBROWSE oBrw id 110 of odlgx update;
                    columns 1,2,3,4,5,6;
                    COLSIZES 80,90,160,120,120,120;
                    HEADERS "Fecha", "Comprobante", "Descripción","Debe" ,"Haber","Total";
                    PICTURES "@d", nil,NIL,"@e 99,999,999.99","@e 99,999,999.99","@e 99,999,999.99" ;
                    alias oCtae:cAlias lines cell


en alias oCtae:calias es

OBJECT oCtae

Muchas Gracias José

Re: consulta xbrowse

PostPosted: Sun Feb 10, 2013 9:14 pm
by joseluisysturiz
Atu orden man, que bueno hayas resuelto, para eso es el foro, para ayudarnos, saludos... :shock:

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 12:02 am
by surGom
Ahora estoy intentando imprimir desde el xbrowse con el siguiente código (que copié de testxbr3)

Code: Select all  Expand view
DEFINE DIALOG oDlgx resource "dia_xbrowse"

  REDEFINE GET oGet[1] VAR nproa id 121 of odlgx update valid eval(beval)
  REDEFINE GET oGet[2] VAR napea id 120 of odlgx update

  REDEFINE BTNBMP oGet[3] id 101 of oDlgx resource "btngastos","btnastos1" ACTION ctaexpo(oCtae,oBrw,nproa,.t.,.t.)
  REDEFINE BTNBMP oGet[4] id 102 of oDlgx resource "btnpagos","btnpagos1" ACTION ctaexpo(oCtae,oBrw,nproa,.f.,.t.)
  REDEFINE BTNBMP oGet[5] id 103 of oDlgx resource "BTNIMPRI","BTNIMPRI1" ACTION oBrw:Report( nil, .t., .t., nil, 1 )


  REDEFINE SPLITTER oSpli ID 111 COLOR rgb(234,234,234)  of odlgx _3DLOOK

  REDEFINE XBROWSE oBrw id 110 of odlgx update;
                    columns 1,2,3,4,5,6;
                    COLSIZES 80,90,190,100,100,100;
                    HEADERS "Fecha", "Comprobante", "Descripción","Debe" ,"Haber","Total";
                    PICTURES "@d", nil,NIL,"@e 99,999,999.99","@e 99,999,999.99","@e 99,999,999.99" ;
                    OBJECT oCtae lines cell
 


y me da el siguiente error:

Code: Select all  Expand view
Error occurred at: 10/02/2013, 20:55:07
   Error description: Error BASE/1081  Argument error: +
   Args:
     [   1] = C   Fecha
     [   2] = D   08/02/2012

Stack Calls
===========
   Called from: .\source\classes\XBROWSE.PRG => (b)MAKEREPGROUP( 7791 )
   Called from: .\source\classes\RGROUP.PRG => TRGROUP:STABILIZE( 126 )
   Called from: .\source\classes\REPORT.PRG => (b)TREPORT:STABILIZE( 1173 )
   Called from:  => AEVAL( 0 )
   Called from: .\source\classes\REPORT.PRG => TREPORT:STABILIZE( 1173 )
   Called from: .\source\classes\REPORT.PRG => TREPORT:ACTIVATE( 831 )
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:REPORT( 6746 )
   Called from: xbrwgen.prg => (b)XBRWGEN( 39 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:CLICK( 465 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:LBUTTONUP( 656 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1690 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:HANDLEEVENT( 1407 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3159 )
   Called from:  => DIALOGBOX( 0 )
   Called from: dialog.prg => TDIALOG:ACTIVATE( 270 )
   Called from: xbrwgen.prg => XBRWGEN( 96 )
   Called from: origen.prg => (b)PREMENU( 381 )
   Called from: .\source\classes\MENU.PRG => TMENU:COMMAND( 461 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:COMMAND( 1033 )
   Called from: .\source\classes\MDIFRAME.PRG => TMDIFRAME:COMMAND( 247 )
   Called from:  => TMDIFRAME:HANDLEEVENT( 0 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3159 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 980 )
   Called from: origen.prg => ORIGEN( 205 )
 


El compilado de testxbr3 funciona perfecto, pero al querer utilizarlos en mi programa da el error comentado

Gracias

Luis

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 12:05 am
by surGom
Si trato de hacer
Code: Select all  Expand view
 REDEFINE BTNBMP oGet[5] id 103 of oDlgx resource "BTNIMPRI","BTNIMPRI1" ACTION oBrw:Report( )


me da este otro error
Code: Select all  Expand view
Application
===========

   Time from start: 0 hours 0 mins 14 secs
   Error occurred at: 10/02/2013, 21:03:13
   Error description: Error BASE/1109  Argument error: $
   Args:
     [   1] = C   (
     [   2] = N   1

Stack Calls
===========
   Called from: .\source\function\HARBOUR.PRG => OSEND( 215 )
   Called from: .\source\classes\XBROWSE.PRG => (b)ADDODBFCOL( 8122 )
   Called from: .\source\classes\RCOLUMN.PRG => TRCOLUMN:STABILIZE( 160 )
   Called from: .\source\classes\REPORT.PRG => (b)TREPORT:STABILIZE( 1174 )
   Called from:  => AEVAL( 0 )
   Called from: .\source\classes\REPORT.PRG => TREPORT:STABILIZE( 1174 )
   Called from: .\source\classes\REPORT.PRG => TREPORT:ACTIVATE( 831 )
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:REPORT( 6746 )
   Called from: xbrwgen.prg => (b)XBRWGEN( 39 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:CLICK( 465 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:LBUTTONUP( 656 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1690 )
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:HANDLEEVENT( 1407 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3159 )
   Called from:  => DIALOGBOX( 0 )
   Called from: dialog.prg => TDIALOG:ACTIVATE( 270 )
   Called from: xbrwgen.prg => XBRWGEN( 96 )
   Called from: origen.prg => (b)PREMENU( 381 )
   Called from: .\source\classes\MENU.PRG => TMENU:COMMAND( 461 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:COMMAND( 1033 )
   Called from: .\source\classes\MDIFRAME.PRG => TMDIFRAME:COMMAND( 247 )
   Called from:  => TMDIFRAME:HANDLEEVENT( 0 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3159 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 980 )
   Called from: origen.prg => ORIGEN( 205 )
 


Luis

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 12:22 am
by joseluisysturiz
El error lo tienes en tu lines 81 del archivo origen.prg/premenu, en el 1er error parece estas sumando un valor CHAR con una fecha, para eso debes poner la fecha en dtoc(tu_fch), coloca mas codigo para ayudarte mejor a dar con tu error, saludos... :shock:

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 1:08 am
by surGom
José Luis el código es el siguiente

Code: Select all  Expand view
#include "Fivewin.ch"
#include "xbrowse.ch"
#include "splitter.ch"



FUNCTION xBrwgen()
local odlgx
local oCtae
local oBrw, oSpli
local nProa := 0
local napea
local aMae := array(0)
local oGet := array(5)
local beval  := {|| aMae := iif(empty(nproa),buspro(),buspro(nproa)), iif(len(aMae) > 0,(nproa := aMae[1],napea := aMae[2],odlgx:update(),oBrw:refresh(),.t.),odlgx:end())}
local aSelGrad := { { .5, RGB( 255, 255, 251 ), RGB( 255, 237, 178 ) }, ;
                 { .5, RGB( 255, 218, 103 ), RGB( 255, 233, 162 ) } }

if !pasaje("CTAEXPO");return nil; endif
   DATABASE oCtae
   oCtae:setorder(1)


DEFINE DIALOG oDlgx resource "dia_xbrowse"

  REDEFINE GET oGet[1] VAR nproa id 121 of odlgx update valid eval(beval)
  REDEFINE GET oGet[2] VAR napea id 120 of odlgx update

  REDEFINE BTNBMP oGet[3] id 101 of oDlgx resource "btngastos","btnastos1" ACTION ctaexpo(oCtae,oBrw,nproa,.t.,.t.)
  REDEFINE BTNBMP oGet[4] id 102 of oDlgx resource "btnpagos","btnpagos1" ACTION ctaexpo(oCtae,oBrw,nproa,.f.,.t.)
  REDEFINE BTNBMP oGet[5] id 103 of oDlgx resource "BTNIMPRI","BTNIMPRI1" ACTION oBrw:Report( )


  REDEFINE SPLITTER oSpli ID 111 COLOR rgb(234,234,234)  of odlgx _3DLOOK

  REDEFINE XBROWSE oBrw id 110 of odlgx update;
                    columns 1,2,3,4,5,6;
                    COLSIZES 80,90,190,100,100,100;
                    HEADERS "Fecha", "Comprobante", "Descripción","Debe" ,"Haber","Total";
                    PICTURES "@d", nil,NIL,"@e 99,999,999.99","@e 99,999,999.99","@e 99,999,999.99" ;
                    OBJECT oCtae lines cell

  WITH OBJECT oBrw
     :nMarqueeStyle := 4
     :nColDividerStyle := LINESTYLE_BLACK
     :nStretchCol := STRETCHCOL_LAST
    :bClrSel := {|| { nRGB(  0,  0,255), aSelGrad } }
     :lColDividerComplete := .t.
     :l2007 := .t.
     :lRecordSelector := .t.
     :lAllowColHiding := .f.
  END WITH

  WITH OBJECT oBrw:aCols[1]
     :bStrData := {|| iif(oCtae:npro =  nproa,oCtae:fecha,"" )}
     :cEditPicture := "@d"
     :nDataStrAlign := AL_RIGHT
  END WITH

  WITH OBJECT oBrw:aCols[2]
     :bStrData := {|| iif(oCtae:npro = nproa, oCtae:factura,"") }
     :nDataStrAlign := AL_RIGHT
  END WITH

  WITH OBJECT oBrw:aCols[3]
     :bStrData := {|| iif(oCtae:npro = nproa, oCtae:opera,"") }
     :nDataStrAlign := AL_LEFT
  END WITH

  WITH OBJECT oBrw:aCols[4]
     :bStrData := {||iif(oCtae:npro = nproa, IIF(oCtae:lsumo,oCtae:importe,""),"") }
     :cEditPicture := "@e 99,999,999.99"
     :nDataStrAlign := AL_RIGHT
  END WITH

  WITH OBJECT oBrw:aCols[5]
     :bStrData := {|| iif(oCtae:npro = nproa,IIF(!oCtae:lsumo,oCtae:importe,""),"") }
     :cEditPicture := "@e 99,999,999.99"
     :nDataStrAlign := AL_RIGHT
  END WITH

  WITH OBJECT oBrw:aCols[6]
     :bStrData := {|| iif(oCtae:npro = nproa,oCtae:saldo,"") }
     :cEditPicture := "@e 99,999,999.99"
     :nDataStrAlign := AL_RIGHT
  END WITH

 activate dialog odlgx

 cierroalias(oCtae:cAlias,oCtae)

 return nil


Gracias por tu interes

Luis

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 1:49 am
by joseluisysturiz
Prueba quitandole el formato al campo fecha en la definicion del xbrowse, prueba y avisa, desl resto aparentemente se ve todo bien, saludos... :shock:

PICTURES , , ,"@e 99,999,999.99","@e 99,999,999.99","@e 99,999,999.99" ;


WITH OBJECT oBrw:aCols[1]
:bStrData := {|| iif(oCtae:npro = nproa,oCtae:fecha,"" )}
// :cEditPicture := "@d"
:nDataStrAlign := AL_RIGHT
END WITH

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 10:46 am
by surGom
No sigue sin funcionar y el error es..

Code: Select all  Expand view
Stack Calls
===========
   Called from: .\source\function\HARBOUR.PRG => OSEND( 215 )
   Called from: .\source\classes\XBROWSE.PRG => (b)ADDODBFCOL( 8122 )


Luis

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 3:08 pm
by joseluisysturiz
Si puedes contacta en msn o skype joseluisy@hotmail.com / joseluisy para ver si encontramos el detalle, a menos que alguien mas responda en el foro y de en clavo, que version de FWH estas usando.? saludos... :shock:

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 3:35 pm
by surGom
la 12.02 pero lo extraño es que compilo los samples y ahí funciona

Luis

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 5:14 pm
by FranciscoA
Asumiendo que el campo es tipo DATE
Intenta cambiando esto:
:bStrData := {|| iif(oCtae:npro = nproa,oCtae:fecha,"" )}
por esto:
:bStrData := {|| iif(oCtae:npro = nproa,oCtae:fecha,ctod(" / / ") )}

Re: consulta xbrowse

PostPosted: Mon Feb 11, 2013 10:26 pm
by surGom
Francisco ya lo había probado, estoy compilando con xharbour 1.21 y uso xedit, el error en el programa harbour.prg (línea 205) es la siguiente

205 . #ifndef __XHARBOUR__
function OSend( oObj, cMsg, ... )
if "(" $ cMsg
cMsg = StrTran( cMsg, "()", "" )
endif
return __ObjSendMsg( oObj, cMsg, ... )
#else
function OSend( ... ) // oObj, cMsg, uPar1,...
local aParams := hb_aParams()

if "(" $ aParams[ 2 ]
aParams[ 2 ] = StrTran( aParams[ 2 ], "()", "" )
endif

return hb_execFromArray( @__ObjSendMsg(), aParams )
#endif

Luis