Tengo dos columnas con GET_EDIT y quiero que sólo una permita datos por fila.
Code: Select all
oCol:=oBrw1:AddCol()
oCol:cEditPicture := '@Z 999,999.99'
oCol:bEditValue := { || Nuevo->DEBE }
oCol:nHeadStrAlign := AL_CENTER
oCol:cHeader := "D E B E"
oCol:nWidth:=70
oCol:nEditType :=EDIT_GET
oCol:bOnPostEdit := {|o, v, n| Nuevo->debe:=v_}
oCol:nFooterType := AGGR_SUM
oCol:=oBrw1:AddCol()
oCol:cEditPicture := '@Z 999,999.99'
oCol:bEditValue := { || Nuevo->HABER }
oCol:nHeadStrAlign := AL_CENTER
oCol:cHeader := "H A B E R"
oCol:nWidth:=70
oCol:nEditType :=EDIT_GET
oCol:bOnPostEdit := {|o, v, n| Nuevo->haber:=v }
oCol:nFooterType := AGGR_SUM
Code: Select all
oCol:=oBrw1:AddCol()
oCol:cEditPicture := "@!"
oCol:bStrData := { || NUEVO->NROCTA }
oCol:nHeadStrAlign := AL_CENTER
oCol:cHeader := "Cuenta"
oCol:nWidth:=78
oCol:AddResource('B-F2')
oCol:nBtnBmp:= 1
oCol:nEditType:= 5
oCol:bEditBlock:= { |nRow,nCol,oCol| (BuscaCta(nRow,nCol)) }
oCol:bOnPostEdit := {|o, v, n| If(!lbdr,Nuevo->NROCTA:=v, ) }
.....
oBrw1:bKeyDown = { | nKey |If( oBrw1:nColSel == 1 .and. nKey == VK_F2, (oBrw1:SelectedCol():RunBtnAction()), )} //Con ésto al pulsar F2 va a la función BuscaCta()
Code: Select all
Function BuscaCta(nRow,nCol)
Local oVar,oDlgB, oBrw3, lOk:= .F.
lbdr:=.T.
DbSelectArea("Cuentas")
dbGotop()
DEFINE DIALOG oDlgB FROM 0,0 TO 203,260 PIXEL STYLE nOr( WS_VISIBLE, WS_POPUP )
@0,0 xBrowse oBrw3 Of oDlgB AUTOSORT ALIAS "CUENTAS"
oBrw3:nMarqueeStyle:=MARQSTYLE_HIGHLROW
oBrw3:lHScroll:= .f.
oBrw3:nRowDividerStyle:= 0
oBrw3:lRecordSelector := .f.
oBrw3:bLDblClick:={ || ( SysWait(.2),__KeyBoard(Chr(13)) ) }
oCol:=oBrw3:AddCol()
oCol:bStrData := { || CUENTAS->CTA_NRO }
oCol:cHeader := "NRO"
oCol:nWidth:=75
oCol:=oBrw3:AddCol()
oCol:bStrData := { || CUENTAS->CTA_DES }
oCol:cHeader := "CUENTA"
oCol:nWidth:=235
oBrw3:CreateFromCode()
@1,41 GET oBrw3:oSeek VAR oBrw3:cSeek SIZE 45,8 PIXEL OF oDlgB PICTURE "@!" UPDATE READONLY
oBrw3:bKeyDown:= { | nKey | iif(nKey=VK_RETURN,(lOk:=.T.,oBrw3:End(),oDlgB:End()), ) }
ACTIVATE DIALOG oDlgB ON INIT (oDlgB:Move(nRow+320,378),oBrw3:Move(0,0,oDlgB:nWidth(),oDlgB:nHeight()));
VALID ( iif( lOk, (Nuevo->NROCTA:=CUENTAS->CTA_NRO), ),.T. )
Return Nil
Gracias por la ayuda.