FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour xbrowse
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
xbrowse
Posted: Fri Feb 23, 2018 11:07 PM
Hola compa帽eros tengo un problema con un xbrowse que me muestra una columna con el texto tdialog, y no se como solucionarlo, les env铆o el prg y una imagen, para ver si me pueden orientar

Code (fw): Select all Collapse
#include "Fivewin.ch"

#define HA_LEFT 聽0
#define HA_RIGHT 1
#define HA_CENTER 2



FUNCTION selgan()

聽 聽LOCAL oRet, oBrw, ctext
聽 聽LOCAL nselectedrow := 0
聽 聽LOCAL cCodigo
聽 聽local odlg
聽 聽local lacepto := .f.
聽 聽local aDevuelvo := Array(0)

聽 聽IF !pasaje( "retgan830" ); RETURN nil; ENDIF
聽 聽database oRet
聽 聽oRet:setorder(1)


聽 聽DEFINE DIALOG odlg RESOURCE "DIA_XBROWSE2"
聽 聽odlg:cCaption := "Seleccionar Tipo de retenci贸n"

聽 聽REDEFINE XBrowse oBrw id 101 odlg DATASOURCE oRet ;
聽 聽 聽 columns { 1, 2, 3, 4, 5, 6 };
聽 聽 聽 COLSIZES 40, 60, 300, 85, 60, 60;
聽 聽 聽 HEADERS " ", "C贸digo", "Concepto", "Importe M铆nimo", "Tasa Insc.", "Tasa No Inscripto";
聽 聽 聽 LINES CELL update

聽 聽WITH OBJECT oBrw
聽 聽 聽 :nMarqueeStyle := MARQSTYLE_HIGHLCELL
聽 聽 聽 :nColDividerStyle := LINESTYLE_BLACK
聽 聽 聽 :nStretchCol := STRETCHCOL_LAST
聽 聽 聽 :lColDividerComplete := .T.
聽 聽 聽 :l2007 := .T.
聽 聽 聽 :lRecordSelector := .T.
聽 聽 聽 :lAllowColHiding := .F.
聽 聽 聽 :lAllowColSwapping := .F.
聽 聽 聽 :nStretchCol := STRETCHCOL_LAST
聽 聽 聽 :nRowHeight := 60
聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 1 ]
聽 聽 聽 聽 聽:bEditValue 聽 聽:= { || If( oBrw:BookMark == nselectedrow, .T., nil ) }
聽 聽 聽 聽 聽:SetCheck()
聽 聽 聽 聽 聽:nHeadBmpNo 聽 聽:= { || If( Empty( nselectedrow ), 2, 1 ) }

聽 聽END WITH

聽 聽 聽 oBrw:bLClicked 聽 聽 := {|r, c, f, oBrw| If( oBrw:MouseColPos( c ) == 1, ;
聽 聽 聽 If( nselectedrow != oBrw:BookMark, nselectedrow := oBrw:BookMark, nselectedrow := nil ), nil ), ;
聽 聽 聽 聽 聽oBrw:RefreshCurrent(), aDevuelvo := fdevuelvo(oRet ) }

聽 聽WITH OBJECT oBrw:aCols[ 2 ]
聽 聽 聽 :bStrData := {|| oRet:codreg }
聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 3 ]
聽 聽 聽 :bStrData := {|| cotexto(oRet:concepto) } 聽 聽 聽 聽 聽 聽 聽 聽// CAMPOMEMO 
聽 聽 聽 :nDataStrAlign := AL_LEFT

聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 4 ]
聽 聽 聽 :bStrData := {|| oRet:minimo }
聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 5 ]
聽 聽 聽 :bStrData := {|| oRet:tasains }
聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 6 ]
聽 聽 聽 :bStrData := {|| oRet:tasanin }
聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽END WITH

聽 聽REDEFINE BUTTON ID 102 OF odlg ACTION (lacepto := .t., odlg:end())
聽 聽REDEFINE BUTTON ID 103 OF odlg ACTION odlg:end()

聽 聽ACTIVATE DIALOG odlg

聽 聽if lacepto
聽 聽 聽 return aDevuelvo
聽 聽endif
聽 聽CIERROALIAS(oRet:cAlias, oRet)


聽return Array(0)

/////////////////////////////////////////////////////////////////////
function cotexto(ctext)
local ctexto := Space(85)


ctexto := SubStr(ctext,1,80) + CRLF + SubStr(ctext,81,160)
return ctexto
/////////////////////////////////////////////////////////////////////
function fdevuelvo(oRet )
local aDevuelvo := Array(0)
local cMinimo := 聽StrTran(oRet:minimo,".","")
cMinimo := StrTran(cMinimo,",",".")

AAdd(aDevuelvo, Val( oRet:codreg))
AAdd(aDevuelvo, Val( oRet:tasains) )
AAdd(aDevuelvo, Val(cMinimo) )

return aDevuelvo


https://drive.google.com/file/d/1Tq5G-WonFwo2elniFoRGhUll9u03O1Or/view?usp=sharing

Y como puedo mostrar el campo memo completo ya que en algunos items no muestra todos los rengolone

Por lo dem谩s lo que necesito que haga lo hace, pero no puedo sacar Tdialog, estimo que el problema esta en como defino la columna del setcheck()

Gracias por su atenci贸n

Luis
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: xbrowse
Posted: Sat Feb 24, 2018 12:06 AM
Quita en la cla煤sula HEADERS

Code (fw): Select all Collapse
HEADERS " ", "C贸digo", "Concepto", "Importe M铆nimo", "Tasa Insc.", "Tasa No Inscripto";


y d茅jalo asi

Code (fw): Select all Collapse
HEADERS "C贸digo", "Concepto", "Importe M铆nimo", "Tasa Insc.", "Tasa No Inscripto";
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Re: xbrowse ( solucionado )
Posted: Sat Feb 24, 2018 10:57 AM
Gracias Cristobal, no lo habr铆a podido solucionar sin tu ayuda.
El c贸digo quedo as铆

Code (fw): Select all Collapse
FUNCTION selgan()

聽 聽LOCAL oRet, oBrw, ctext
聽 聽LOCAL nselectedrow := 0
聽 聽LOCAL cCodigo
聽 聽local odlg
聽 聽local lacepto := .f.
聽 聽local aDevuelvo := Array(0)

聽 聽IF !pasaje( "retgan830" ); RETURN nil; ENDIF
聽 聽database oRet
聽 聽oRet:setorder(1)


聽 聽DEFINE DIALOG odlg RESOURCE "DIA_XBROWSE2"
聽 聽odlg:cCaption := "Seleccionar Tipo de retenci贸n"

聽 聽REDEFINE XBrowse oBrw id 101 odlg DATASOURCE oRet ;
聽 聽 聽 columns { 1, 2, 3, 4, 5 聽}; 聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 聽 LINES CELL update


聽 聽WITH OBJECT oBrw
聽 聽 聽 :nMarqueeStyle := MARQSTYLE_HIGHLCELL
聽 聽 聽 :nColDividerStyle := LINESTYLE_BLACK
聽 聽 聽 :nStretchCol := STRETCHCOL_LAST
聽 聽 聽 :lColDividerComplete := .T.
聽 聽 聽 :l2007 := .T.
聽 聽 聽 :lRecordSelector := .T.
聽 聽 聽 :lAllowColHiding := .F.
聽 聽 聽 :lAllowColSwapping := .F.
聽 聽 聽 :nStretchCol := STRETCHCOL_LAST
聽 聽 聽 :nRowHeight := 60
聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 1 ]
聽 聽 聽 聽 聽:bEditValue 聽 聽:= { || If( oBrw:BookMark == nselectedrow, .T., nil ) }
聽 聽 聽 聽 聽:SetCheck()
聽 聽 聽 聽 聽:nHeadBmpNo 聽 聽:= { || If( Empty( nselectedrow ), 2, 1 ) } 
聽 聽 聽 聽 聽:nWidth 聽 := 30
聽 聽END WITH

聽 聽 聽 oBrw:bLClicked 聽 聽 := {|r, c, f, oBrw| If( oBrw:MouseColPos( c ) == 1, ;
聽 聽 聽 If( nselectedrow != oBrw:BookMark, nselectedrow := oBrw:BookMark, nselectedrow := nil ), nil ), ;
聽 聽 聽 聽 聽oBrw:RefreshCurrent(), aDevuelvo := fdevuelvo(oRet ) }

聽 聽WITH OBJECT oBrw:aCols[ 2 ]
聽 聽 聽 :bStrData := {|| oRet:codreg }
聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽 聽 :cHeader := 聽"C贸digo" 
聽 聽 聽 :nWidth 聽:= 聽60
聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 3 ]
聽 聽 聽 :bStrData := {|| cotexto(oRet:concepto) }
聽 聽 聽 :nDataStrAlign := AL_LEFT
聽 聽 聽 :cHeader := "Concepto" 聽
聽 聽 聽 :nHeadStrAlign := HA_CENTER
聽 聽 聽 :nWidth 聽:= 聽 330
聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 4 ]
聽 聽 聽 :bStrData := {|| oRet:minimo }
聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽 聽 :cHeader := "Importe m铆nimo" 聽
聽 聽 聽 :nWidth 聽:= 聽 85
聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 5 ]
聽 聽 聽 :bStrData := {|| oRet:tasains }
聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽 聽 :cHeader := "Tasa Insc" 聽
聽 聽 聽 :nWidth 聽:= 聽 60
聽 聽END WITH

聽 聽WITH OBJECT oBrw:aCols[ 6 ]
聽 聽 聽 :bStrData := {|| oRet:tasanin }
聽 聽 聽 :nDataStrAlign := AL_RIGHT
聽 聽 聽 :cHeader := "Tasa No Ins." 
聽 聽 聽 :nWidth 聽:= 聽 60
聽 聽END WITH

聽 聽REDEFINE BUTTON ID 102 OF odlg ACTION (lacepto := .t., odlg:end())
聽 聽REDEFINE BUTTON ID 103 OF odlg ACTION odlg:end()

聽 聽ACTIVATE DIALOG odlg

聽 聽if lacepto
聽 聽 聽 return aDevuelvo
聽 聽endif
聽 聽CIERROALIAS(oRet:cAlias, oRet)


聽return Array(0)


https://drive.google.com/file/d/1PRHQAlGzISrFzm3gFMXTg5MX6apb2xNX/view?usp=sharing

Si en columns en vez de poner { 1, 2, 3, 4, 5 聽}
pon茅s { 1, 2, 3, 4, 5, 6 聽}, como uno piensa que deber铆as ser, aparece el Tdialog en una 7陋 columna.


Luis
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse
Posted: Sat Feb 24, 2018 03:07 PM

what I need you to do is It does, but I can not remove Tdialog

The reason is that there should be "OF" between ID number and oDlg

Wrong:
Code (fw): Select all Collapse
REDEFINE xBrowse oBrw id 101 oDlg ...


Correct:
Code (fw): Select all Collapse
REDEFINE xBrowse oBrw id 101 OF oDlg ...
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse
Posted: Sat Feb 24, 2018 03:19 PM
This is the recommended code:
Code (fw): Select all Collapse
  REDEFINE XBROWSE oBrw ID 101 OF oDlg ;
      DATASOURCE oRet ;
      COLUMNS {||.f.}, "codreg", "concepto", "minimo", "tasains", "tasanin" ;
      COLSIZES 40, 60, 300, 85, 60, 60;
      HEADERS " ", "C贸digo", "Concepto", "Importe M铆nimo", "Tasa Insc.", "Tasa No Inscripto";
      JUSTIFY nil, .T., .F., .T., .T., .T. ;
      LINES CELL update

   WITH OBJECT oBrw
      :nMarqueeStyle := MARQSTYLE_HIGHLCELL
      :nColDividerStyle := LINESTYLE_BLACK
      :nStretchCol := STRETCHCOL_LAST
      :lColDividerComplete := .T.
      :l2007 := .T.
      :lRecordSelector := .T.
      :lAllowColHiding := .F.
      :lAllowColSwapping := .F.
      :nStretchCol := STRETCHCOL_LAST
//      :nRowHeight := 60   // Remove this line
      :nDataRows     := 2 // This wraps long text into multiple lines
   END WITH

   WITH OBJECT oBrw:aCols[ 1 ]
         :bEditValue    := { || If( oBrw:BookMark == nselectedrow, .T., nil ) }
         :SetCheck()
         :nHeadBmpNo    := { || If( Empty( nselectedrow ), 2, 1 ) }

   END WITH

   oBrw:bLClicked     := {|r, c, f, oBrw| If( oBrw:MouseColPos( c ) == 1, ;
   If( nselectedrow != oBrw:BookMark, nselectedrow := oBrw:BookMark, nselectedrow := nil ), nil ), ;
      oBrw:RefreshCurrent(), aDevuelvo := fdevuelvo(oRet ) }


/* 
   REMOVE THIS CODE
   Also please never use bStrData. This is deprecated

   WITH OBJECT oBrw:aCols[ 2 ]
      :bStrData := {|| oRet:codreg }
      :nDataStrAlign := AL_RIGHT
   END WITH

   WITH OBJECT oBrw:aCols[ 3 ]
      :bStrData := {|| cotexto(oRet:concepto) }                // CAMPOMEMO 
      :nDataStrAlign := AL_LEFT

   END WITH

   WITH OBJECT oBrw:aCols[ 4 ]
      :bStrData := {|| oRet:minimo }
      :nDataStrAlign := AL_RIGHT
   END WITH

   WITH OBJECT oBrw:aCols[ 5 ]
      :bStrData := {|| oRet:tasains }
      :nDataStrAlign := AL_RIGHT
   END WITH

   WITH OBJECT oBrw:aCols[ 6 ]
      :bStrData := {|| oRet:tasanin }
      :nDataStrAlign := AL_RIGHT
   END WITH
*/

   REDEFINE BUTTON ID 102 OF odlg ACTION (lacepto := .t., odlg:end())
   REDEFINE BUTTON ID 103 OF odlg ACTION odlg:end()

   ACTIVATE DIALOG odlg

   if lacepto
      return aDevuelvo
   endif
   CIERROALIAS(oRet:cAlias, oRet)


 return Array(0)
Regards



G. N. Rao.

Hyderabad, India
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: xbrowse
Posted: Sat Feb 24, 2018 06:16 PM
No s茅 si ha podido ser tu problema, pero por si acaso, ten en cuenta que

Code (fw): Select all Collapse
:lRecordSelector  := .T.


Esta columna no cuenta
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse
Posted: Sat Feb 24, 2018 06:23 PM
cnavarro wrote:No s茅 si ha podido ser tu problema, pero por si acaso, ten en cuenta que

Code (fw): Select all Collapse
:lRecordSelector 聽:= .T.


Esta columna no cuenta

This does not make any difference.
Regards



G. N. Rao.

Hyderabad, India
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: xbrowse
Posted: Sat Feb 24, 2018 06:35 PM
nageswaragunupudi wrote:
cnavarro wrote:No s茅 si ha podido ser tu problema, pero por si acaso, ten en cuenta que

Code (fw): Select all Collapse
:lRecordSelector 聽:= .T.


Esta columna no cuenta

This does not make any difference.


I think you have not understood my post
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse
Posted: Sat Feb 24, 2018 07:40 PM

You are right.
RecordSelector column does not count.

Regards



G. N. Rao.

Hyderabad, India
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Re: xbrowse
Posted: Sun Feb 25, 2018 12:18 PM

Thanks Mr. Rao.
Yes, just putting the "of" the original code worked.
I will also make the changes for you. suggested, because they simplify my code.

Luis

Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Re: xbrowse
Posted: Sun Feb 25, 2018 02:29 PM

Hice los cambios, pero en la 3陋 columna "Concepto" me muestra solo un rengl贸n.

Luis

Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Re: xbrowse
Posted: Sun Feb 25, 2018 02:51 PM

Si quito
ndatarow := 2 y pongo :nRowHeight := 60

funciona correctamente

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse
Posted: Sun Feb 25, 2018 02:58 PM

I wrongly said "nDataRows".

It should be nDataLines
Set nDataLines := 2 // or more

Let me explain:
If the vertical height of the cell can display more lines, xbrowse automatically split the text and show more lines.
You can do this in 2 ways.

oBrw:nRowHeight := <large value>
Or
oBrw:nDataLines := 2 // or more
depending on your requirement.

Even otherwise, user can increase the row-height at runtime by dragging the row separator with mouse.
Even then xbrowse displays the text in multi-line.

Regards



G. N. Rao.

Hyderabad, India
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Re: xbrowse
Posted: Sun Feb 25, 2018 03:10 PM

Y del c贸digo que quite deje

WITH OBJECT oBrw:aCols[ 3 ]
:bStrData := {|| cotexto(oRet:concepto) }
:nDataStrAlign := AL_LEFT
:nWidth := 330
END WITH
sin esto no funciona correctamente el campo memo

Luis

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse
Posted: Sun Feb 25, 2018 03:39 PM

XBrowse splits the line into 2 or more, only if the horizontal width of the cell cannot display the full text.
For example, if the width of the cell is less like 100, then you will see the text split into multiple lines

Regards



G. N. Rao.

Hyderabad, India

Continue the discussion