> Hello,
>
> Form's load:
>
> SQLEXEC( gnSQLID, "select * from thetable", "thecursor")
>
>
> thefield
> DILI
> SAKTO
> DILI
> SAKTO
>
> I want to display thefield in the combobox but the values "DILI" must not be selected by the user, only visible.
>
> Thank you and God bless.. (a)
Hi Reevimae!
Try the use of '\' backslash to disable items in a combo box. This code snippet is originally written by Stefan Wuebbe. I just changed the values inserted into a cursor. HTH.
LOCAL oForm as Form
oForm = CREATEOBJECT('TestForm')
oForm.Show(1)
RETURN
DEFINE CLASS TestForm as Form
AutoCenter = .T.
PROCEDURE Load
LOCAL i
CREATE CURSOR rooms (room Char(5), vacant Num(1))
INSERT INTO rooms VALUES ('DILI',0)
INSERT INTO rooms VALUES ('SAKTO',1)
INSERT INTO rooms VALUES ('DILI',0)
INSERT INTO rooms VALUES ('SAKTO',1)
ENDPROC
ADD OBJECT cboRooms as ComboRooms WITH ;
Left = 50, Top = 50
ENDDEFINE
DEFINE CLASS ComboRooms as ComboBox
DIMENSION aRowSource[1]
RowSourceType = 5
RowSource = 'This.aRowSource[1]'
Style = 2
PROCEDURE Init()
This.Requery()
ENDPROC
PROCEDURE Requery()
SELECT IIF(EMPTY(vacant),'\','')+room FROM rooms INTO ARRAY This.aRowSource
ENDPROC
ENDDEFINE
This edited part here tests for the value of room and not the vacant.
X--------------------------------Edited---------------------------------X
LOCAL oForm as Form
oForm = CREATEOBJECT('TestForm')
oForm.Show(1)
RETURN
DEFINE CLASS TestForm as Form
AutoCenter = .T.
PROCEDURE Load
LOCAL i
CREATE CURSOR rooms (room Char(5))
INSERT INTO rooms VALUES ('DILI')
INSERT INTO rooms VALUES ('SAKTO')
INSERT INTO rooms VALUES ('DILI')
INSERT INTO rooms VALUES ('SAKTO')
ENDPROC
ADD OBJECT cboRooms as ComboRooms WITH ;
Left = 50, Top = 50
ENDDEFINE
DEFINE CLASS ComboRooms as ComboBox
DIMENSION aRowSource[1]
RowSourceType = 5
RowSource = 'This.aRowSource[1]'
Style = 2
PROCEDURE Init()
This.Requery()
ENDPROC
PROCEDURE Requery()
SELECT IIF(room='DILI','\'+room,room) FROM rooms INTO ARRAY Thisform.aRowSource
ENDPROC
ENDDEFINE
(coffee)