************************************************** >*-- Class: mycombo_edit (c:\temp\test.vcx) >*-- ParentClass: combobox >*-- BaseClass: combobox >* >DEFINE CLASS mycombo_edit AS combobox > > > Height = 22 > Width = 100 > DisabledBackColor = RGB(255,255,255) > aliasname = "None" > fieldname = "None" > Name = "mycombo_edit" > > > PROCEDURE When > THIS.REQUERY > ENDPROC > > > PROCEDURE LostFocus > Do While occurs(" ",this.displayvalue) > 0 > this.displayvalue = strtran(this.displayvalue," "," ") > Enddo > This.displayvalue = Upper(Chrtran(Alltrim(This.displayvalue),"yi","IY")) > this.value = this.displayvalue > ENDPROC > > > PROCEDURE Init > WITH This > .rowsourcetype = 3 > if lower(.fieldname)="none" or ; > lower(.aliasname)="none" > .fieldname = substr(.controlsource,rat(".",.controlsource)+1) > .aliasname = substr(.controlsource,1,; > rat(".",.controlsource)-1) > endif > .rowsource = [SELECT DISTINCT ]+THIS.fieldname +; > [ as dummy FROM ]+this.aliasname+[ where !empty(]+THIS.fieldname + ; > [) union ] +; > [SELECT this.displayvalue as dummy ] +; > [ FROM ]+this.aliasname + ; > [ INTO cursor qq order by 1 ] > ENDWITH > ENDPROC > > >ENDDEFINE >* >*-- EndDefine: mycombo_edit >**************************************************Cetin
local lItemExists lItemExists = .F. && assume the value isn’t in the list. FOR i = 1 to THIS.ListCount IF THIS.List(i) = ALLTRIM(THIS.Text) lItemExists = .T. EXIT ENDIF ENDFOR IF !lItemExists local lcNewValue lcNewValue = THIS.Text THIS.AddItem(lcNewValue) THIS.DisplayValue = lcNewValue **** *In my case I am not adding the record to the source, but *you can add the code here to actually add the record with the new value to your *source and requery the combo **** ENDIFNick