aqui va un ejemplo autocontenido. Me ha costado un poco el sacarlo de dentro de la aplicaci贸n, pero bueno, as铆 podras compilarlo y probarlo sin problema.
#include "FiveWin.ch"
#include "xBrowse.ch"
#include "EXStruc.ch"
FUNCTION Main()
聽 聽LOCAL oWnd, oBrw,oCol,oDef
聽 聽LOCAL aNomBan:={'50mhz','144 mhz','432mhz'},aCodBan:={'6M','2M','70CM'}
聽 聽LOCAL aNomMod:={'SSB','PKT','CLO','PAC2'},aCodMod:={'SSB','Packet','Clover','Pactor II'}
聽 聽STRUC oDef
聽 聽 聽 MEMBER dFecha 聽 聽AS Date 聽 聽 聽INIT Date()
聽 聽 聽 MEMBER cProPMode AS CHARACTER INIT 'ES'
聽 聽 聽 MEMBER cOperator AS CHARACTER INIT 'EA6DD'
聽 聽 聽 MEMBER cQra 聽 聽 聽AS CHARACTER INIT 'JM19JK'
聽 聽 聽 MEMBER cMode 聽 聽 AS CHARACTER INIT 'SSB' SIZE 6
聽 聽 聽 MEMBER cBand 聽 聽 AS CHARACTER INIT '2M' 聽SIZE 6
聽 聽END STRUC
聽 聽DEFINE WINDOW oWnd
聽 聽DBCreate('Fast', {{ "BAND" 聽 聽 聽, "C", 聽 聽 6, 聽 聽0 },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { "CALL" 聽 聽 聽, "C", 聽 聽12, 聽 聽0 },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { "COMMENT" 聽 , "C", 聽 聽30, 聽 聽0 },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { "GRIDSQUARE", "C", 聽 聽 6, 聽 聽0 },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { "MODE" 聽 聽 聽, "C", 聽 聽 6, 聽 聽0 },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { "TIMEON" 聽 聽, "C", 聽 聽 5, 聽 聽0 },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { "OPERATOR" 聽, "C", 聽 聽15, 聽 聽0 },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { "PROPMODE" 聽, "C", 聽 聽 2, 聽 聽0 },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { "QSODATE" 聽 , "D", 聽 聽 8, 聽 聽0 },;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 { "QRA" 聽 聽 聽 , "C", 聽 聽 6, 聽 聽0 } })
聽 聽DBUseArea(.T.,,'fast','fast',.F.,.F.)
聽 聽oBrw := TxBrowse():New(oWnd)
聽 聽WITH OBJECT oBrw
聽 聽 聽 :nMarqueeStyle 聽 聽 聽 := MARQSTYLE_HIGHLCELL
聽 聽 聽 :nColDividerStyle 聽 聽:= 4
聽 聽 聽 :nRowDividerStyle 聽 聽:= 4
聽 聽 聽 :lColDividerComplete := .T.
聽 聽 聽 :nHeaderLines 聽 聽 聽 聽:= 2
聽 聽 聽 :nDataLines 聽 聽 聽 聽 聽:= 1
聽 聽 聽 :nFreeze 聽 聽 聽 聽 聽 聽 := 5
聽 聽 聽 :lFastEdit 聽 聽 聽 聽 聽 :=.T.
聽 聽 聽 :bPastEof 聽 聽 聽 聽 聽 聽:= {||EsAddRec(oDef,oBrw,oCol)}
聽 聽END
聽 聽ADD TO oBrw DATA Fast->QsoDate 聽 聽TITLE 'Fecha'
聽 聽ADD TO oBrw DATA Fast->TimeOn 聽 聽 TITLE 'Hora'
聽 聽ADD TO oBrw DATA Fast->Band 聽 聽 聽 TITLE 'Banda'
聽 聽oCol:=ATail(oBrw:aCols)
聽 聽oCol:nEditType 聽 聽 := EDIT_LISTBOX
聽 聽oCol:aEditListTxt 聽:= aNomBan
聽 聽oCol:aEditListBound:= aCodBan
聽 聽oCol:bOnPostEdit 聽 := {|o,v,n| Fast->Band:=v }
聽 聽ADD TO oBrw DATA Fast->Mode 聽 聽 聽 TITLE 'Modo'
聽 聽oCol:=ATail(oBrw:aCols)
聽 聽oCol:nEditType 聽 聽 := EDIT_LISTBOX
聽 聽oCol:aEditListTxt 聽:= aNomMod
聽 聽oCol:aEditListBound:= aCodMod
聽 聽oCol:bOnPostEdit 聽 := {|o,v,n| Fast->Mode:=v }
聽 聽ADD TO oBrw DATA Fast->Call 聽 聽 聽 TITLE 'Indicativo' EDITABLE ON EDIT {|o,v,n| Fast->Call:=v } 聽 聽 聽 PICTURE "@!"
聽 聽oCol:=ATail(oBrw:aCols)
聽 聽ADD TO oBrw DATA Fast->GridSquare TITLE 'Locator' 聽 聽EDITABLE ON EDIT {|o,v,n| Fast->GridSquare:=v } PICTURE "!!99!!"
聽 聽ADD TO oBrw DATA Fast->Comment 聽 聽TITLE 'Notas' 聽 聽 聽EDITABLE ON EDIT {|o,v,n| Fast->Comment:=v }
聽 聽//--
聽 聽oBrw:SetRdd()
聽 聽oBrw:CreateFromCode()
聽 聽oWnd:oClient:=oBrw
聽 聽ACTIVATE WINDOW oWnd ON INIT EsAddRec(oDef,oBrw,oCol)
RETURN NIL
//---------------------------------------
STATIC FUNCTION EsAddRec(oDef,oBrw,oCol)
聽 聽IF Empty(Fast->TimeOn)
聽 聽 聽 Fast->TimeOn:=Time()
聽 聽ENDIF
聽 聽Fast->(DBAppend())
聽 聽Fast->QsoDate :=oDef:dFecha
聽 聽Fast->Operator:=oDef:cOperator
聽 聽Fast->Qra 聽 聽 :=oDef:cQra
聽 聽Fast->PropMode:=oDef:cPropMode
聽 聽Fast->Band 聽 聽:=oDef:cBand
聽 聽Fast->Mode 聽 聽:=oDef:cMode
聽 聽oBrw:Refresh()
聽 聽oBrw:SetPos(,oBrw:ColPos(oCol))
* 聽 oBrw:nColSel:=5 //Tambien funciona
RETURN NIL
Con FW0904 al pulsar intro en el 煤ltimo campo (notas), a帽ade un nuevo registro y se posiciona en la columna indicativo.
Con FW0905 hace lo mismo que la anterior, pero se posiciona en la primera columa editable(banda).Este comportamiento no digo que sea erroneo, solo que necesito alguna manera para conseguir posicionarlo sobre indicativo.