get picture com S ou N em lugar de Y ou N
Moderador: Moderadores
get picture com S ou N em lugar de Y ou N
Boa noite !
No Alaska Xbase eu usaria setlocale() para setar o carácter que seria atribuído a true ou false em um campo lógic, da seguinte forma:
setlocale (NLS_SYES, "S")
setlocale (NLS_SNO, "N")
assim, quando eu usasse "get _status picture "Y"", o usuário selecionaria "S" para sim (true) ou "N" para não (false).
Porém em Harbour, quando uso isto, aparece "Y" para sim (true) e "N" para não (false).
Existe alguma forma de mudar isso como no Alaska?
No Alaska Xbase eu usaria setlocale() para setar o carácter que seria atribuído a true ou false em um campo lógic, da seguinte forma:
setlocale (NLS_SYES, "S")
setlocale (NLS_SNO, "N")
assim, quando eu usasse "get _status picture "Y"", o usuário selecionaria "S" para sim (true) ou "N" para não (false).
Porém em Harbour, quando uso isto, aparece "Y" para sim (true) e "N" para não (false).
Existe alguma forma de mudar isso como no Alaska?
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
get picture com S ou N em lugar de Y ou N
Olá!
No xHarbour tem as funções IsAffirm() e IsNegative(). Testei no Harbour 3.2.0 dev (r1612161005) Nightly e funcionam.
No xHarbour tem as funções IsAffirm() e IsNegative(). Testei no Harbour 3.2.0 dev (r1612161005) Nightly e funcionam.
É só adaptar para Português.IsAffirm()
Converts "Yes" in a national language to a logical value.
Syntax
IsAffirm( <cChar> ) --> lIsYes
Arguments
<cChar>
This is a single character. It is compared case-insensitive with the first letter of the word "Yes" of the currently selected national language. Return
The function returns .T. (true) if <cChar> is the first letter of the word "Yes" in the currently selected national language (see HB_LangSelect()). Otherwise, .F. (false) is returned.
Info
See also: HB_LangSelect(), IsNegative()
Category: Language specific , xHarbour extensions
Source: rtl\natmsg.c
LIB: xhb.lib
DLL: xhbdll.dll
Example
// The example uses three national languages and displays the result
// of IsAffirm().
Código: Selecionar todos
REQUEST HB_LANG_DE // request German language REQUEST HB_LANG_FR // request French language PROCEDURE Main // English language is default: "Yes" ? IsAffirm( "J" ) // result: .F. ? IsAffirm( "O" ) // result: .F. ? IsAffirm( "Y" ) // result: .T. HB_LangSelect( "DE" ) // "Ja" == "Yes" ? IsAffirm( "J" ) // result: .T. ? IsAffirm( "O" ) // result: .F. ? IsAffirm( "Y" ) // result: .F. HB_LangSelect( "FR" ) // "Oui" == "Yes" ? IsAffirm( "J" ) // result: .F. ? IsAffirm( "O" ) // result: .T. ? IsAffirm( "Y" ) // result: .F. RETURN
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
get picture com S ou N em lugar de Y ou N
Funcionou para dias da semana, etc
Mas o get picture "Y" continua mostrando "Y" ou "N"
Obrigado de qq forma
Mas o get picture "Y" continua mostrando "Y" ou "N"
Obrigado de qq forma
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
get picture com S ou N em lugar de Y ou N
Olá!
Cadê seu teste ?
Saudações,
Itamar M. Lins Jr.
Cadê seu teste ?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
get picture com S ou N em lugar de Y ou N
Código: Selecionar todos
request HB_LANG_PT
procedure main
local _logic := .t.
hb_langselect ("PT")
clear
@ 10, 10 say "teste" get _logic picture "Y"
read
?_logic
wait
return
- Anexos
-
- Resultado:
- Screenshot_1.png (703 Bytes) Exibido 547 vezes
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
get picture com S ou N em lugar de Y ou N
Olá!
Mas no Harbour não existe a funcionalidade pretendida. Teria que implementar.
Exemplo que tem no xHarbour Language Reference Guide
Exemplo que eu criei
Mas isto não ajuda muito. A variável do GET tem que ser tipo char. Seria até melhor testar o VALID "S" ou "N"...
Eu testei a existência das funções no prompt do HbMk2 (HbMk2 .).Itamar M. Lins Jr. escreveu:Cadê seu teste ?
Mas no Harbour não existe a funcionalidade pretendida. Teria que implementar.
Exemplo que tem no xHarbour Language Reference Guide
Código: Selecionar todos
// The example uses three national languages and displays the result
// of IsAffirm().
REQUEST HB_LANG_DE // request German language
REQUEST HB_LANG_FR // request French language
PROCEDURE Main
// English language is default: "Yes"
? IsAffirm( "J" ) // result: .F.
? IsAffirm( "O" ) // result: .F.
? IsAffirm( "Y" ) // result: .T.
HB_LangSelect( "DE" ) // "Ja" == "Yes"
? IsAffirm( "J" ) // result: .T.
? IsAffirm( "O" ) // result: .F.
? IsAffirm( "Y" ) // result: .F.
HB_LangSelect( "FR" ) // "Oui" == "Yes"
? IsAffirm( "J" ) // result: .F.
? IsAffirm( "O" ) // result: .T.
? IsAffirm( "Y" ) // result: .F.
RETURN
Código: Selecionar todos
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
PROCEDURE Main
LOCAL cSN := .t., GetList := {}
Hb_LangSelect( 'PT' )
Hb_cdpSelect( "PT850" )
SetMode( 25,80 )
CLS
@ 10,10 Say "Confirma (S/N)?: " Get cSN PICTURE "!A" VALID IsAffirm( cSN )
READ
Hb_Alert( "Resposta " + If( cSN == "S", "Sim", "Não" ) )
RETURN NIL[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
get picture com S ou N em lugar de Y ou N
Eu estou pensando em uma solução usando isaffirm () e isnegative (), mas vou ter que converter a variável para char e depois antes de gravar, converter de novo para logic
