FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9381
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Error xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9381
Posted: Wed Jul 13, 2011 01:44 PM
Me da error cuando toma la fecha y devuelvo en forma texto
, esto me da con Compiler version: xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9381) y con la version de xharbour Rev 6717 funciona bien


Code (fw): Select all Collapse
FUNCTION FEC_LETRAS(FEC_VAL,patx)
Local x_fecha
  if patx=Nil;patx:=1;Endif
  IF FEC_VAL=Nil
     RETURN("           ")
  ENDIF
  [b]IF FEC_VAL=CTOD("  /  /  ")  // esta es la linea del error[/b]     RETURN("           ")
  ENDIF

   if patx=0
     X_FECHA := CMONTH(FEC_VAL)+"."+STRZERO(DAY(FEC_VAL),2)+"/"+ALLTRIM(STR(YEAR(FEC_VAL)))+" "
  else
     X_FECHA := SUBSTR(CMONTH(FEC_VAL),1,3)+"."+STRZERO(DAY(FEC_VAL),2)+"/"+ALLTRIM(STR(YEAR(FEC_VAL)))+" "
  endif
RETURN X_FECHA
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Error xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9381
Posted: Wed Jul 13, 2011 03:49 PM
Hola, prueba si:

Code (fw): Select all Collapse
FUNCTION FEC_LETRAS(FEC_VAL,patx)
Local x_fecha
  if patx=Nil;patx:=1;Endif
  IF FEC_VAL=Nil .OR. VALTYPE(FEC_VAL) <> "D"
     RETURN("           ")
  ENDIF
  IF EMPTY( FEC_VAL)
      RETURN("           ")
  ENDIF

   if patx=0
     X_FECHA := CMONTH(FEC_VAL)+"."+STRZERO(DAY(FEC_VAL),2)+"/"+ALLTRIM(STR(YEAR(FEC_VAL)))+" "
  else
     X_FECHA := SUBSTR(CMONTH(FEC_VAL),1,3)+"."+STRZERO(DAY(FEC_VAL),2)+"/"+ALLTRIM(STR(YEAR(FEC_VAL)))+" "
  endif
RETURN X_FECHA
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Error xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9381
Posted: Wed Jul 13, 2011 04:13 PM

Prueba asi

Date2Txt(SQLField(cRec_Gen,"Rec_Femisi")),"")

/
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
° Funcion: Date2Txt()
Argumentos: 6
Argumento 1: La fecha a convertir variable tipo fecha
Argumento 2: Tipo de nombre del día 1=Corto, 2=Largo Ejem: 1=Sáb, 2=Sábado
Argumento 3: Tipo de nombre del mes 1=Corto, 2=Largo Ejem: 1=Ene, 2=Enero
Argumento 4: Tipo de año 1=2 dígitos, 2=4 dígitos Ejem: 1=99, 2=1999
Argumento 5: Separador entre el día de la semana y la fecha
Argumento 6: separador entre dia y mes
Argumento 7: separador entre mes y año
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
/
FUNCTION Date2Txt(dFecha, nTipdia, nTipMes, nTipAmo, cSepDia, cSepDM, cSepMA)
LOCAL aNomMes:= {"Enero", "Febrero", "Marzo", "Abril", "Mayo", ;
"Junio", "Julio", "Agosto", "Septiembre", "Octubre", ;
"Noviembre", "Diciembre"}
LOCAL aNomDia:= {"Domingo", "Lunes", "Martes", "Míercoles", ;
"Jueves", "Viernes", "Sábado"}

LOCAL La_Fecha := &quot;&quot;

IF EMPTY(dFecha)
    dFecha  := DATE()
ENDIF

IF EMPTY(nTipDia)
    nTipDia := 0
ENDIF

IF EMPTY(nTipMes)
    nTipMes := 1
ENDIF

IF EMPTY(nTipAmo)
    nTipAmo := 2
ENDIF

IF cSepDia == NIL
    cSepDia := SPACE(1)
ENDIF

IF cSepDM == NIL
    cSepDM  := &quot;/&quot;
ENDIF

IF cSepMA == NIL
    cSepMA  := &quot;/&quot;
ENDIF

DO CASE
    CASE nTipdia == 1
        La_Fecha:= LEFT(aNomDia[DOW(dFecha)], 3) + cSepDia
    CASE nTipdia == 2
        La_Fecha:= aNomDia[DOW(dFecha)] + cSepDia
ENDCASE

La_Fecha:= La_Fecha + STR(DAY(dFecha), 2, 0)

DO CASE
    CASE nTipMes == 1
        La_Fecha:= La_Fecha + cSepDM + LEFT(aNomMes[MONTH(dFecha)], 3)
    CASE nTipMes == 2
        La_Fecha:= La_Fecha + cSepDM + aNomMes[MONTH(dFecha)]
ENDCASE

DO CASE
    CASE nTipAmo == 1
        La_Fecha:= La_Fecha + cSepMA + RIGHT(STR(YEAR(dFecha), 4, 0), 2)
    CASE nTipAmo == 2
        La_Fecha:= La_Fecha + cSepMA + STR(YEAR(dFecha), 4, 0)
ENDCASE

RETURN (La_Fecha)

Saludos

Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Error xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9381
Posted: Thu Jul 14, 2011 01:10 PM

Le hize un seguimiento al codigo y la funcion es bien, ya detecte el problema, pero no le encuentro solucion.
Para mi es la version de xharbour o implica volver a compilar del fwh tengo la 11.03 y la trabajo xharbour Rev 6717 y trabaja bien cuando compilo con xharbour rev 9381 es donde presenta problemas.

El error se me esta presentando en esta linea
uVal := oDatxx:Fields( cStrField ):Value

No me esta asignado el valor de la fecha.

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Error xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9381
Posted: Thu Jul 14, 2011 01:34 PM

José:

Parece que mi funcion Date2Txt() sigue dando hebra, :D

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Error xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9381
Posted: Thu Jul 14, 2011 02:38 PM
Armando wrote:José:

Parece que mi funcion Date2Txt() sigue dando hebra, :-)

Saludos


Gracias Armardo

Date2Txt(SQLField(cRec_Gen,"Rec_Femisi")),"")

Vi tu codigo pero cual es no veo la funcion SQLField es funa funcion de compilador.
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Error xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9381
Posted: Thu Jul 14, 2011 10:28 PM

Rubén:

La función SQLField() es propia de José, pero si miras la función Date2Txt() facilmente sabras lo que
debes enviarle

FUNCTION Date2Txt(dFecha, nTipdia, nTipMes, nTipAmo, cSepDia, cSepDM, cSepMA)

Aunque algunos parámetros son opcionales, por ejemplo la puedes usar así

MsgInfo(Date2Txt(DATE())) => 14/Jul/2011

o más simple aún

MsgInfo(Date2Txt()) => 14/Jul/2011

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion