pessoal o meu problema com COMBOBOX é o seguinte. vejam no código a explicar abaixo:
Código: Selecionar todos
// @ 95, 90 COMBOBOX txbUserID ITEMS &nm_arq.->COD_USU WIDTH 195 BACKCOLOR WHITE // HELPID 101 OF FLogin VALUE 1
// @ 95, 90 TEXTBOX txbUserID WIDTH 85 HEIGHT 21 FONTCOLOR BLUE BOLD NUMERIC INPUTMASK '999999' ON ENTER { || FLogin.txbPasswrd.SetFocus }
// @ 95, 90 COMBOBOX txbUserID ITEMS cd_usu WIDTH 195 BACKCOLOR WHITE // HELPID 101 VALUE 1 OF FLogin
@ 95, 90 COMBOBOX txbUserID ITEMS {1,2,3} VALUE 1 WIDTH 195 BACKCOLOR WHITE // HELPID 101 OF FLogin
Observem que tem 2 linhas comentadas.
* A primeira diz que o COMBOBOX irá pegar no arquivo
&NM_ARQ.->COD_USU os usuários. Essa variável &NM_ARQ. contém o nome do arquivo USUARIOS.DBF. Ela está comentada pois aparece a mesma mensagem de erro que vou apresentar logo abaixo que é comum a todos.
* A 2ª, no lugar de um COMBOBOX é um TEXTBOX e está comentada, pois assim funciona. Só que dessa forma não tem como ser visualizado os usuários e como vi um exemplo na rede, quando se clica na seta do COMBOBOX é visualizado todos os usuários presentes.
* Na 3ª linha comentada, o ITEMS CD_USU é uma matriz/vetor onde todos os usuários são gravados nela, para que supostamente a COMBOBOX mostre todos automaticamente, mas, também apresentou a mesma mensagem de erro que passarei logo abaixo.
* Já a 4ª linha NÃO ESTÁ COMENTADA, pois pensei que o erro era porque estava pegando uma matriz ou campo do banco de dados de forma errada e mesmo assim apresenta a mesma mensagem de erro.
A mensagem de erro comum é exatamente na mesma linha de compilação, qualquer que seja das linhas comentadas acima (exceto TEXTBOX), é:
Error E0030 "syntax error at '@'"
Bom, outra coisa, que V.Sas. podem observar é que comentei o final de cada linha, pois esse tal de HELPID 101 não sei como funciona e o OF Login (nome do formulário em que está esse COMBOBOX) pensei que eram a causa do erro.
Também, achei interessante uma função ON GOTFUCUS, como descrito abaixo, mas, não compreendi sua sintaxe e sempre dá erro da forma em que vi nos tutoriais que é logo abaixo de um TEXTBOX/COMBOBOX, que quando estivermos no TEXTBOX/COMBOBOX o seu respectivo LABEL ficaria em NEGRITO, mas, como disso, dá um erro:
Código: Selecionar todos
// @ 95, 90 TEXTBOX txbUserID WIDTH 85 HEIGHT 21 FONTCOLOR BLUE BOLD NUMERIC INPUTMASK '999999' ON ENTER { || FLogin.txbPasswrd.SetFocus } ;
// ON GOTFOCUS FLogin.lblUserID.FontBold := .T. ;
// ON GOTFOCUS FLogin.lblUserID.FontBold := .F
Experimentei tirar os
";" das 2 linhas, mas, não funciona mesmo assim.
Bom, agora está faltando mostrar pra todos o local onde é gerada a matriz
CD_USU. Vejam como faço:
Código: Selecionar todos
IF (substr (NOME_SIST,1,5) + '003')->(.NOT. EOF())
DO WHILE .T.
AADD(cd_usu,(substr (NOME_SIST,1,5) + '003')->COD_USU)
AADD(nm_usu,(substr (NOME_SIST,1,5) + '003')->NOME_USU)
AADD(ps_usu,(substr (NOME_SIST,1,5) + '003')->PASSWORD)
AADD(em_usu,(substr (NOME_SIST,1,5) + '003')->MASTER)
(substr (NOME_SIST,1,5) + '003')->(DBSKIP())
IF (substr (NOME_SIST,1,5) + '003')->(EOF())
EXIT
ENDIF
ENDDO
ENDIF
Espero que possam me ajudar diante das informações que ora passei.
Lembrando que estou usando para compilação a IDE da HMG 3.0.XX.
Abraços!
O Senhor Jesus é real e existe!!!