FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour no me funciona setcheck
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
no me funciona setcheck
Posted: Wed Oct 02, 2019 12:30 AM
Gente:
Con dbf si me sal铆a el check de un campo l贸gico pero con una tabla temporal en mssql usando ado no lo consigo hacer
clickeo en la columna imprime pero no me aparece el check solo el cuadradito vacio
Espero me puedan ayudar, aqu铆 mi c贸digo.

creaci贸n de tabla temporal
Code (fw): Select all Collapse
聽 聽 cSQL := "CREATE TABLE #pfac"
聽 聽 cSQL += "("
聽 聽 cSQL += "numero CHAR(6) NOT NULL, "
聽 聽 cSQL += "articu VARCHAR(7) NOT NULL, "
聽 聽 cSQL += "descr VARCHAR(37), "
聽 聽 cSQL += "um CHAR(3), "
聽 聽 cSQL += "cap NUMERIC(4,0), "
聽 聽 cSQL += "cantid int DEFAULT 0, "
聽 聽 cSQL += "mts INT DEFAULT 0,"
聽 聽 cSQL += "precio NUMERIC(12,4),"
聽 聽 cSQL += "total NUMERIC(10,2),"
聽 聽 cSQL += "unid int DEFAULT 0, "
聽 聽 cSQL += "imprime bit DEFAULT 1," 聽// campo l贸gico al cual le hare check
聽 聽 cSQL += "subart varchar(10), "
聽 聽 cSQL += "numcpe varchar(10)"
聽 聽 cSQL += ")"

聽 聽 Try
聽 聽 聽 聽 oCon1:Execute( cSQL )
聽 聽 Catch
聽 聽 聽 聽 MsgInfo( "Table Create pfac Failed" )
聽 聽 End try


Definici贸n del xbrowse
Code (fw): Select all Collapse
聽 聽 cSQL := "SELECT articu, descr, mts, um, cap, precio, cantid, imprime, total from #pfac "
a.codusu='"+codusu+"'"

聽 聽 oRs2f := TOleAuto():New( "ADODB.Recordset" )
聽 聽 oRs2f:CursorLocation 聽 聽 := adUseClient
聽 聽 oRs2f:CursorType 聽 聽 聽 聽 := adOpenStatic
聽 聽 oRs2f:LockType 聽 聽 聽 聽 聽 := adLockOptimistic

聽 聽 TRY
聽 聽 聽 oRS2f:Open(cSQL,oCon1 )
聽 聽 聽 lRS := .t.
聽 聽 CATCH oErr
聽 聽 聽 MsgInfo( "Error en creacion de RecordSet" )
聽 聽 聽 oCon1:Close()
聽 聽 聽 RETURN(.F.)
聽 聽 END TRY

聽 聽 REDEFINE XBROWSE oBrwF 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 DATASOURCE oRs2f 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 COLUMNS "articu", "DESCR","UM" ;
聽 聽 聽 聽 聽 聽 聽 聽,"CAP", "PRECIO", "Cantid", "TOTAL", "Imprime" ;   //==> col el cual hare check
聽 聽 聽 聽 FIELDSIZES 60,200,30,40,50,55,70,70 聽 聽 聽 聽 聽 聽 ;
聽 聽 聽 聽 HEADERS "Codigo" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽 ,"Descripci贸n" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽 ,"U.M." 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ;
聽 聽 聽 聽 聽 聽 聽 ,"Cap" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽 ,"Precio" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ;
聽 聽 聽 聽 聽 聽 聽 ,"Cant." 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽 ,"Importe" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 聽 聽 聽 ,"Imprime" 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽;
聽 聽 聽 聽 PICTURES nil,nil,nil,'9,999', '999.9999', '999,999', '999,999.99', nil ;
聽 聽 聽 聽 ID 4018 OF oFld:aDialogs[1] 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ; 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽
聽 聽 聽 聽 UPDATE LINES CELL

聽 聽 聽 聽 oBrwF:nStretchCol 聽 聽:= STRETCHCOL_WIDEST
聽 聽 聽 聽 oBrwF:lFastEdit:= .t.
聽 聽 聽 聽 oBrwF:nMoveType := 0

聽 聽 聽 聽 oBrwF:aCols[6]:nEditType := EDIT_GET
聽 聽 聽 聽 oBrwF:aCols[6]:cDataType := "N"
聽 聽 聽 聽 oBrwF:aCols[6]:bOnPostEdit 聽 聽:= { | o, x, n | UpdateCant( x, oBrwT, n), muestratotalf(oBrwT, @aArray, lCrea)}

聽 聽 聽 聽 oBrwf:aCols[8]:bEditValue := {|| oRs2f:imprime>0 }
聽 聽 聽 聽 oBrwf:aCols[8]:cDataType 聽:= 'L'
聽 聽 聽 聽 oBrwF:aCols[8]:nEditType := EDIT_GET
聽 聽 聽 聽 oBrwF:aCols[8]:SetCheck()
聽 聽 聽 聽 oBrwF:aCols[8]:bOnPostEdit 聽 聽:= { | o, x, n | UpdateEstado( x, oBrwT, n), muestratotalf(oBrwT, @aArray, lCrea) }
聽 聽 聽 聽 oBrwF:nFreeze := 1
聽 聽 聽 聽 oBrwF:nMarqueeStyle 聽 聽= MARQSTYLE_HIGHLROW
聽 聽 聽 聽 oBrwF:aJustify 聽 := {.F.,.F.,.F.,.F.,.T.,.T.,.T.,.F.}
聽 聽 聽 聽 oBrwF:bClrSel := {|| { 聽CLR_WHITE, GetSysColor(13 ) } }
聽 聽 聽 聽 oBrwF:lHScroll := .t.
聽 聽 聽 聽 oBrwF:lVScroll := .t.

聽 聽 聽 聽 oBrwF:bLClicked := { |r,c,f,oBrw| IF( oBrwF:MouseColPos( c ) == 8, oBrwF:aCols[8]:CheckToggle(), nil ), ; 聽 //para que sea un solo click el check
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽oBrwF:RefreshCurrent() }

definici贸n de function updateestado
Code (fw): Select all Collapse
Static function UpdateEstado( x, oBrwf, n )
聽 oRs2f:Fields( "imprime" ):value := iif(x,.t.,.f.)
聽 oRs2f:Update()
聽 obrwf:refresh()
return 0
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: no me funciona setcheck
Posted: Wed Oct 02, 2019 06:23 AM

Prueba as铆:

oBrwF:aCols[8]:bOnPostEdit := { | o, x, n | UpdateEstado( x, oBrwT, n), muestratotalf(oBrwT, @aArray, lCrea), x }

Esta l铆nea la puedes simplificar asi:
oRs2f:Fields( "imprime" ):value := x

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: no me funciona setcheck
Posted: Fri Oct 04, 2019 11:48 PM
Gracias por responder Antonio pero no logre que en el browse se muestre el check solo aparecia si le daba click a la celda pero inicialmente no mostraba el check a pesar que el dato era un campo booleana con valor 1 como puedes apreciar en mi definici贸n de mi tabla temporal

Lo solucione cambiando el tipo de dato en mi tabla temporal de bit a char(1)

Sera que mi versi贸n de fw es vieja o Mr. Rao falta afinar el xbrowse para que trabaje correctamente con campos booleanos de ms sql?

Code (fw): Select all Collapse
聽 聽 cSQL := "CREATE TABLE #pfac"
聽 聽 cSQL += "("......"
聽 聽 cSQL += "imprime char(1) DEFAULT 'S' NOT NULL"
聽 聽 cSQL += ")"

definici贸n xbrowse
Code (fw): Select all Collapse
聽 聽 聽 聽 oBrwf:aCols[8]:bEditValue := {|| IF( oRs2f:Fields("imprime"):Value = "S" , .T. , .F. )}
聽 聽 聽 聽 oBrwf:aCols[8]:cDataType 聽:= 'L'
聽 聽 聽 聽 oBrwF:aCols[8]:nEditType := EDIT_GET
聽 聽 聽 聽 oBrwF:aCols[8]:SetCheck()
聽 聽 聽 聽 oBrwF:aCols[8]:bOnPostEdit 聽 聽:= { | o, x, n | UpdateEstado( x, oBrwT, n), muestratotalf(oBrwT, @aArray, lCrea) }


Code (fw): Select all Collapse
Static function UpdateEstado( x, oBrwf, n )
聽 oRs2f:Fields( "imprime" ):value := iif(x,"S","N")
聽 oRs2f:Update()
聽 obrwf:refresh()
return 0
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql

Continue the discussion