Ayuda No muestra "ñ" or "Ñ" en XBROWSE

Ayuda No muestra "ñ" or "Ñ" en XBROWSE

Postby remtec » Tue Feb 26, 2019 4:09 pm

Amigos muy buen dia.

Me sucede algo muy extraño, tengo un listado de Nombres de Personas en un Xbrowse y todos los caracteres especiales, como acentos la Ñ, no los traduce aun cuando usao OemToAnsi( "Nom_pac"), esto es realizado en recurso RES, otros Xbrowse me funcioan muy bien, incluso el mismo dato en una varia que paso a otro recurso, se muestra correctamente usando OemToAnsi( "Nom_pac"). No podido encontrar la solucion.

Muchos saludos.
Antonio

Este es el Código que uso:
Code: Select all  Expand view

#include "FiveWin.ch"
#include "xbrowse.ch"
#include "colores.ch"
#include "dtpicker.ch"
#include "calendar.ch"

REQUEST HB_Lang_ESWIN, HB_CODEPAGE_ESWIN


FUNCTION Ing_exa1()
                Local oSay,oDlg,oSay1,oSay2,oBot1,oBtn1
                Local oFiltra,nFiltra,oFont,oFont1,oFont2
                Local aFiltra:= {}
                Local dFecha:=Date(),oFecha

                Private Ing_xbro:=0
                Public oIngre ,Mensa:="",cFiltra:=""
                Public Tip_ate1:="EC  ", aProfe:= {},oCod_pro1,cCod_pro1:="",nCod_pro1
                nCod_pro1=0
                HB_LangSelect( "ESWIN" )
            HB_SetCodePage( "ESWIN" )

                SET DATE TO BRITISH

                SET EPOCH TO 1980


                SET DATE FORMAT "DD/MM/YYYY"

            if Nro_usu1<10
              Nro_usu2=str(Nro_usu1,1)
            else
                Nro_usu2=str(Nro_usu1,2)
            endif

                Abre_dbf("PROFESIO",1,.f.,"")

                    Stor 0 to t2
                    AADD( aProfe,{ "",""})
                    go top
                    Do While !Eof()
                            If Est_pro="S".and.Tip_esp="EC  "
                                 t2=1
                             AADD( aProfe,{ a->Cod_pro,a->Nom_pro})
                            Endif
                        a->(DbSkip())
                    Enddo
                    DbClosearea()
                    If t2=0
                          MsgStop(" NO Existen Profesionales Medicos Para Informar ")
                            dbclosearea()
                            Return
                    Endif

             ASORT( aProfe,,, { |x,y| x[2] < y[2] } )


                //  aProfe:= profesio->( FW_DbfToArray("Cod_pro,Nom_pro" ) )
                  */

              Abre_dbf("ECOGRA",2,.f.,"")
            set inde to ecogra

                Abre_dbf("GEINFEC",1,.f.,"")
            set inde to foinfec

                Abre_dbf("EXAECO",3,.f.,"")
                set inde to exaeco,exaboec
                Seek Tip_ate1
                If Eof()
                     MsgStop(" NO Existen Examenes a Informar ")
                     dbclosearea()
                     Return
                Endif
            do while (tip_ate=Tip_ate1).and.!eof()
               if ctod(fec_emi)<date()
                        sele geinfec
                        seek exaeco->nro_bon
                        if !eof()
                         sele exaeco
                         do while .t.
                                        if flock()
                                         dele
                                         dbunlock()
                                         exit
                                        else
                                         Msgwait( "Espere Archivo Ocupado","ESPERE",3 )
                                      endif
                         enddo
                        else
                             sele ecogra
                             seek exaeco->nro_bon
                             if !eof().and.tip_pag="NULO"
                                sele exaeco
                                do while .t.
                                             if flock()
                                                dele
                                                dbunlock()
                                                exit
                                             else
                                                Msgwait( "Espere Archivo Ocupado","ESPERE",3 )
                                             endif
                                enddo
                         endif
                        endif
                     else
                            Sele geinfec
                        seek exaeco->nro_bon
                        if !eof()
                         sele exaeco
                         do while .t.
                                        if flock()
                                             Repl Inf_exa with "S"
                                         dbunlock()
                                         exit
                                        else
                                         Msgwait( "Espere Archivo Ocupado","ESPERE",3 )
                                      endif
                         enddo
                            endif
               endif
               sele exaeco
               skip
            enddo
            sele geinfec
         // dbclosearea()
                sele ecogra
                dbclosearea()
            sele exaeco
                Dbcommit()


                cAlias="EXAECO"

                Define Font oFont1 Name "Curier New" Size 0,15  BOLD
                Define Font oFont2 Name "Curier New" Size 0,18  BOLD

                Define Font oFont  Name "Courier new" Size 0,22   BOLD

                DEFINE DIALOG oDlg RESOURCE "#1005"     Title " "
                REDEFINE SAY oSay1  ID 101 PROMPT "FECHA A INFORMAR" OF oDlg FONT oFont1

                REDEFINE SAY oSay  ID 100 PROMPT "PACIENTES DEL DIA "+dtoc(dFecha) OF oDlg FONT oFont  COLORS RGB(12, 135, 27)


                REDEFINE DTPICKER oFecha VAR dFecha ID 103  OF  oDlg  FONT oFont2 PICTURE "@d" UPDATE ;
                                    ON CHANGE IF(!Procesa(dFecha),(MsgStop(Mensa),.F.), (oIngre:Refresh(),oSay:Refresh(), .T.) )


                oFecha:SetFont( oFont)

              REDEFINE BTNBMP ID 105 Resource "#8004" OF oDlg TRANSPARENT ADJUST 2007;
                         ACTION (Cierra(),oDlg:END())


              REDEFINE BTNBMP ID 110 Resource "#8005" OF oDlg TOOLTIP "BUSCAR INGRESOS"  FONT oFont1 TRANSPARENT ADJUST 2007;
              ACTION IF(!Procesa(dFecha),(MsgStop(Mensa),.F.), (oIngre:Refresh(),oSay:Refresh(), .T.) )           // Aqui Boton Acepta
             ** oBtn1: l2007 := TRUE

             REDEFINE XBROWSE oIngre  DATASOURCE ALIAS(3) ;
                             COLUMNS;
                                 "Fec_emi",;
                                 "Nro_ing",;
                                 "Nro_bon",;
                             OemToAnsi( "Nom_pac"),;       <=====  ESTE DATO SE MUESTRA INCORRECTO
                                 "cod_ara",;
                                 "Tip_pag",;
                                 "hor_dig",;
                                 "Cod_dig";
                                HEADERS;
                             "Fecha Ing.",;
                                 "Nro",;
                                 "Folio Ing.",;
                             "Nombre de Paciente",;
                                 "Tipo de Examen",;
                                 "T. Pago",;
                                 "Hr.Ing",;
                                 "Cod-Dig.";
                                 PICTURES "@!","9999","9999999999","@!","@!","@!","@!","@!";
                                    ID 104 OF oDlg;
                                    FONT oFont1;
                                  FOOTERS LINES CELL

                                oCol := oIngre:AddCol()
                                oCol:AddResource("#8047")
                                oCol:AddResource("#8048")
                                    oCol:cHeader = "Est."

                                oCol:bBmpData   := { || IIF(exaeco->Inf_exa = "S",1,2 )}


                             oIngre:nMarqueeStyle := MARQSTYLE_HIGHLROW
                             oIngre:nColDividerStyle := LINESTYLE_INSET
                             oIngre:nRowDividerStyle := LINESTYLE_INSET
                                 oIngre:bClrHeader := {|| { nRGB(140, 0, 0), nRGB( 231, 242, 255 ), } }

                                 oIngre:nOpacity    := 230

                                 oIngre:l2007:=.t.
                                 oIngre:lVScroll := .t.
                                 oIngre:lHScroll := .t.
                                 oIngre:lFooter := .f.
                                 oIngre:bKeyDown:={|nKey| iif(nKey=32.or.nKey=VK_RETURN,Act_eco1(),oIngre:Refresh())}
                               oIngre:bLDblClick:={||Act_eco1(exaeco->Nro_bon,aProfe),oIngre:Refresh()}


                ACTIVATE DIALOG oDlg CENTERED ON INIT (oIngre:SetFocus())


    Return

Static Function  ValidaFec1()
                 MsgStop(" FECHA VALIDADA ")
                 Return

Static Function Cierra()
        Close all
        Return

Static FUNCTION Procesa(dFecha)
             If dFecha>Date()
                     Mensa= (" Fecha de Informe Debe Ser Menor o Igual a "+dtoc(date()))
                     oFecha:=Setfocus()
                     Return .f.
             Endif
             Sele Exaeco
             Seek Tip_ate1+dtos(dFecha)
             if eof()
                    Seek Tip_ate1+Subs(dtos(dFecha),1,6)
                    if eof()
                            Seek Tip_ate1+Subs(dtos(dFecha),1,4)
                            if eof()
                                dbGotop()
                                Mensa= (" No Existen Ingresos a Informar para el dia "+dtoc(dFecha))
                                Return .f.
                            endif
                    endif
             endif
             Return  .t.


 
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda No muestra "ñ" or "Ñ" en XBROWSE

Postby remtec » Wed Feb 27, 2019 7:40 pm

Amigos

Alguna idea del porque sucede??

Saludos
Antonio
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda No muestra "ñ" or "Ñ" en XBROWSE

Postby karinha » Sun Dec 12, 2021 1:05 pm

Intenta asi:

Code: Select all  Expand view

// \samples\ACENTUAR.PRG

#Include "FiveWin.ch"

REQUEST HB_CODEPAGE_PTISO
REQUEST HB_CODEPAGE_UTF8EX

REQUEST HB_LANG_ES
REQUEST HB_CODEPAGE_ESWIN                 // Para reconocer la EÑE y ACENTOS en los índices

Procedure Main()

   // texto a converter
   LOCAL cStr := hb_utf8tostr( hb_memoread( 'utf8.txt' ) ) // Aten‡Æo / Adi‡Æo

   HB_CDPSELECT( "PTISO" )

   hb_cdpSelect( "UTF8EX" )

   HB_LANGSELECT ( "ES" )                    // Idioma Español
   HB_SetCodePage ( "ESWIN" )                // Para reconocer la EÑE y ACENTOS en los índices

   ? 'Directly             : ', cStr
   ? 'UTF8toSTR            : ',hb_utf8tostr( cStr )
   ? 'OemToAnsi + UTF8toSTR: ',hb_OemToAnsi( hb_utf8tostr( cStr ) )
   ? 'AnsiToOem + UTF8toSTR: ',hb_AnsiToOem( hb_utf8tostr( cStr ) )
   ? 'UTF8toSTR + OemToAnsi: ',hb_utf8tostr( hb_OemToAnsi( cStr ) )
   ? 'UTF8toSTR + AnsiToOem: ',hb_utf8tostr( hb_AnsiToOem( cStr ) )
   ? 'OemToAnsi            : ',hb_OemToAnsi( cStr )
   ? 'AnsiToOem            : ',hb_AnsiToOem( cStr )

   cStr := hb_utf8tostr( memoread( 'utf8.txt' ) )

   ? 'Directly             : ', cStr
   ? 'UTF8toSTR            : ',hb_utf8tostr( cStr )
   ? 'OemToAnsi + UTF8toSTR: ',hb_OemToAnsi( hb_utf8tostr( cStr ) )
   ? 'AnsiToOem + UTF8toSTR: ',hb_AnsiToOem( hb_utf8tostr( cStr ) )
   ? 'UTF8toSTR + OemToAnsi: ',hb_utf8tostr( hb_OemToAnsi( cStr ) )
   ? 'UTF8toSTR + AnsiToOem: ',hb_utf8tostr( hb_AnsiToOem( cStr ) )
   ? 'OemToAnsi            : ',hb_OemToAnsi( cStr )
   ? 'AnsiToOem            : ',hb_AnsiToOem( cStr )

   cStr := hb_memoread( 'utf8.txt' )

   ? 'Directly             : ', cStr
   ? 'UTF8toSTR            : ',hb_utf8tostr( cStr )
   ? 'OemToAnsi + UTF8toSTR: ',hb_OemToAnsi( hb_utf8tostr( cStr ) )
   ? 'AnsiToOem + UTF8toSTR: ',hb_AnsiToOem( hb_utf8tostr( cStr ) )
   ? 'UTF8toSTR + OemToAnsi: ',hb_utf8tostr( hb_OemToAnsi( cStr ) )
   ? 'UTF8toSTR + AnsiToOem: ',hb_utf8tostr( hb_AnsiToOem( cStr ) )
   ? 'OemToAnsi            : ',hb_OemToAnsi( cStr )
   ? 'AnsiToOem            : ',hb_AnsiToOem( cStr )

   cStr := memoread( 'utf8.txt' )

   ? 'Directly             : ', cStr
   ? 'UTF8toSTR            : ',hb_utf8tostr( cStr )
   ? 'OemToAnsi + UTF8toSTR: ',hb_OemToAnsi( hb_utf8tostr( cStr ) )
   ? 'AnsiToOem + UTF8toSTR: ',hb_AnsiToOem( hb_utf8tostr( cStr ) )
   ? 'UTF8toSTR + OemToAnsi: ',hb_utf8tostr( hb_OemToAnsi( cStr ) )
   ? 'UTF8toSTR + AnsiToOem: ',hb_utf8tostr( hb_AnsiToOem( cStr ) )
   ? 'OemToAnsi            : ',hb_OemToAnsi( cStr )
   ? 'AnsiToOem            : ',hb_AnsiToOem( cStr )

Return Nil

// fin / end
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7518
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 29 guests

cron