- Code: Select all Expand view RUN
oBrw:lAllowColReGroup := .f.
oBrw:lAllowColHiding := .f.
oBrw:lAllowRowSizing := .f.
oBrw:lAllowColSwapping := .f.
O problema que está sendo enfrentado é que, ao clicar em um dos cabeçalhos de coluna do browse, cujos valores são numéricos, e arrastar este para cima de uma caracter, está causando erro internamente na classe TDolphin:
Application
===========
Path and name: C:\base\getpdv.exe (32 bits)
Size: ********* bytes
Compiler version: xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 6406)
FiveWin Version: FWHX 13.07
Windows version: 6.2, Build 9200
Time from start: 0 hours 0 mins 14 secs
Error occurred at: 02/08/16, 11:32:20
Error description: Error BASE/2022 Argument error: ALLTRIM
Args:
[ 1] = N 13
Stack Calls
===========
Called from: => ALLTRIM( 0 )
Called from: .\source\prg\tdolpsrv.prg => CLIPVALUE2SQL( 1955 )
Called from: .\source\prg\tdolpqry.prg => TDOLPHINQRY:SEEK( 1376 )
Called from: T:\new\fivewin\xbrowse.prg => TXBRWCOLUMN:SETORDER( 11902 )
Called from: T:\new\fivewin\xbrowse.prg => TXBRWCOLUMN:HEADERLBUTTONUP( 10768 )
Called from: T:\new\fivewin\xbrowse.prg => TXBROWSE:LBUTTONUP( 3520 )
Called from: T:\new\fivewin\control.prg => TCONTROL:HANDLEEVENT( 1725 )
Called from: T:\new\fivewin\xbrowse.prg => TXBROWSE:HANDLEEVENT( 12246 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3234 )
Called from: => DIALOGBOX( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 274 )
Called from: T:\new\fivewin\browseprodutos.PRG => BROWSEPRODUTOS( 257 )
Verifiquei no código fonte disponibilizado e encontrei um local onde é verificado o tipo da variável:
- Code: Select all Expand view RUN
SWITCH cType
CASE "N"
CASE "I"
if Value != NIL .OR. lNoNull
cValue := AllTrim( Str( Value ) )
else
cValue := "NULL"
endif
EXIT
CASE "C"
if ! Empty( Value ) .OR. lNoNull
cValue := cTxt + AllTrim( Value ) + cTxt
else
cValue := "NULL"
endif
EXIT
...
Esta variável cType é um parâmetro, passado como: ::aStructure[ aFields[ nId ] ][ MYSQL_FS_CLIP_TYPE ]
O parâmetro lTxt também é considerado .F. na chamada da função ClipValue2Sql.
No XBrowse eu defino uma coluna concatenando dois campos, quando eu defino duas colunas separadas o erro acima citado não é gerado.
A maneira como estou definindo a coluna do xbrowse é a seguinte:
- Code: Select all Expand view RUN
oBrw:aCols[1]:nHeadStrAlign := AL_CENTER //header alinhamento do browse
oBrw:aCols[1]:nDataStrAlign := AL_CENTER //data alinhamento do browse
oBrw:aCols[1]:cHeader := 'Código' //header do browse
oBrw:aCols[1]:nWidth := 80 //tamanho coluna
oBrw:aCols[1]:cEditPicture := '999999' //mascara do campo
oBrw:aCols[1]:bEditValue := {|| M->oGetServerQry:codpro01} //posição do array
oBrw:aCols[2]:nHeadStrAlign := AL_LEFT //header alinhamento do browse
oBrw:aCols[2]:nDataStrAlign := AL_LEFT //data alinhamento do browse
oBrw:aCols[2]:cHeader := 'Descrição do Produto' //header do browse
oBrw:aCols[2]:cEditPicture := '@!' //mascara do campo
if PegaUsaDescricaoComplementarProdutos() == 'J'
oBrw:aCols[2]:bEditValue := {|| M->oGetServerQry:descpro01 + M->oGetServerQry:desccomp01 } // concatenamos a descricao complementar
oBrw:aCols[2]:nWidth := 600 //tamanho coluna
else
oBrw:aCols[2]:bEditValue := {|| M->oGetServerQry:descpro01} //posição do array
oBrw:aCols[2]:nWidth := 300 //tamanho coluna
endif
...
Att