Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
GOTO TOP in ComboBox
Message
 
To
19/09/2005 09:31:03
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01049365
Message ID:
01050856
Views:
20
gary, this works for me w/o any errors. Keep in mind that I only copy and paste code you posted here. I don't know any other code you put in your class:
CREATE CURSOR ppmfil (Code C(10), description C(50) ,text1 C(50), FileId C(10), Value1 N(3))
FOR asd =1 TO 20
    insert INTO ppmfil VALUES (TRANSFORM(ASD), "dESC "+TRANSFORM(ASD),"Text "+TRANSFORM(ASD),"",asd)
NEXT
INDEX ON Code TAG ppmfil
oForm = CREATEOBJECT("Form")
oForm.AddObject("myCombo1","myCombo")
oForm.myCombo1.Left = 10
oForm.myCombo1.Top  = 10
oForm.myCombo1.Width = 300
oForm.myCombo1.Visible = .t.
oForm.AddObject("Grid1","Grid")
oForm.Grid1.Top = 30
oForm.Grid1.Left = 10
oForm.Grid1.Width  =300
oForm.Grid1.Visible = .t.
oForm.Grid1.Column2.AddObject("MyCombo1","MyCombo")
oForm.Grid1.Column2.RemoveObject("Text1")
oForm.Grid1.Column2.MyCombo1.Visible = .t.
oForm.Grid1.Column2.CurrentControl = "MyCombo1"
oForm.Grid1.Column2.Sparse = .t.




oForm.Show(1)


DEFINE CLASS myCombo AS ComboBox
mFilter = ""
MasterfileId = ""
nCodeColumn = 1
nDesColumn  = 2
lCodeAtFront = .t.
AllowUnknown = .t.
lUseText=.F.  
AllowNewItem = .t.
Codewidth    = 20
DIMENSION aItems[1,3]
RowSourceType = 6
RowSource = "ppmfil.Code, Value1"


PROCEDURE LoadCombo()
LOCAL lnselect,lnk
lnselect=SELECT()
lnk=0

IF THIS.lCodeAtFront
  THIS.BOUNDCOLUMN=1
  IF THIS.Parent.Class<>"Column"
    THIS.COLUMNWIDTHS=ALLTRIM(STR(THIS.WIDTH-12))+",150"
  ENDIF
  THIS.nCodeColumn=1
  THIS.nDesColumn=2
ENDIF

DIMENSION THIS.aItems[1,3]
THIS.aItems[1,THIS.nCodeColumn]=SPACE(THIS.Codewidth)
THIS.aItems[1,THIS.nDesColumn]="Unknown"
THIS.aItems[1,3]=999

IF THIS.AllowUnknown
  lnk=lnk+1
ENDIF

IF RIGHT(THIS.MasterfileId,THIS.nCodeColumn)="*"
  THIS.MasterfileId=STRTRAN(THIS.MasterfileId,"*","")
  THIS.lUseText=.T.
ELSE
  THIS.lUseText=.F.  
ENDIF

SELECT ppmfil
IF !ISBLANK(THIS.mFilter)
  lcFilter="SET FILTER TO "+THIS.mFilter
  &lcFilter
ENDIF
LOCATE
IF SEEK(THIS.MasterfileId)
  SCAN FOR !ISBLANK(code) WHILE FileId=THIS.MasterfileId
    lnk=lnk+1
    DIMENSION THIS.aItems[lnk,3]
    THIS.aItems[lnk,THIS.nCodeColumn]=Left(code,THIS.CodeWidth)
    THIS.aItems[lnk,THIS.nDesColumn] =IIF(!THIS.lUseText,description,text1)
    THIS.aItems[lnk,3]               =value1
  ENDSCAN
ENDIF
***USE

=ASORT(THIS.aItems,THIS.nCodeColumn)

IF THIS.AllowNewItem
  lnk=lnk+1
  DIMENSION THIS.aItems[lnk,3]
  THIS.aItems[lnk,THIS.nCodeColumn]=REPLICATE("+",THIS.Codewidth) 
  THIS.aItems[lnk,THIS.nDesColumn]="New Item"
  THIS.aItems[lnk,3]=998  
ENDIF

SELECT (lnselect)

=ASORT(THIS.aItems,3)

*) This is where I have tried to set the combo to top
IF EMPTY(THIS.Value)
  THIS.ListIndex=1
ENDIF

** ONLY row numbers not whole array
THIS.NUMBEROFELEMENTS=ALEN(THIS.aItems,1) 
ENDPROC

PROCEDURE Init()
    this.LoadCombo()
ENDPROC
ENDDEFINE
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Previous
Reply
Map
View

Click here to load this message in the networking platform