Sorry for the mistake.
Please change :aCol[ as :aCols[
I edited my posting and corrected it now.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Sorry for the mistake.
Please change :aCol[ as :aCols[
I edited my posting and corrected it now.
Mr. Rao:
Great!, now it works fine.
Thank you so much
Now you can have a beer, I'll pay it
BTW, I need columns 5 and 6 with date format, how can I do it?
With best regards
Armando wrote:
BTW, I need columns 5 and 6 with date format, how can I do it?
Date2Txt(DameFecha(oRsCxc:Fields("CARFEC"):Value)) COLUMNS "CARCAR", "CARCLI", "CLINOM", "DameFecha(CARFEC)", "DameFecha(CARVTO)", "CARIMP" ;[color=#FF0000]// Converts a numeric type field to date type[/color]
STATIC FUNCTION DameFecha(nFecha)
  LOCAL dFecha
  LOCAL cFecha := STR(nFecha,08,0)
  dFecha := CTOD(LEFT(cFecha,2) + "/" + SUBSTR(cFecha,3,2) + "/" + SUBSTR(cFecha,5,4))
RETURN(dFecha)//
Converts a date type field to a character string formatted as date
Sample   29/06/2018   to   29/Jun/2018
/*
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
°   Funcion: Date2Txt()
  Argumentos: 8
 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
 Argumento 8: Variable lógica para decidir si el dÃa debe ir precedido de cero
          cuando el valor el menor a 10. Ejem: 1 aparecerá 01
  Copyright: (2011) Por SOI, s.a. de c.v.
  Desarrolló: Ing. Armando Estrada Bucio
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
*/
#INCLUDE "FiveWin.ch"
FUNCTION Date2Txt(dFecha,nTipdia,nTipMes,nTipAmo,cSepDia,cSepDM,cSepMA,lZeros)
  LOCAL aNomMesC   := {"Ene", "Feb", "Mzo", "Abr", "May", ;
              "Jun", "Jul", "Ago", "Sep", "Oct", ;
              "Nov", "Dic"}
  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  := ""
  DEFAULT lZeros   := (.T.)
// DEFAULT dFecha   := DATE()
// DEFAULT nTipDia   := 0
// DEFAULT nTipMes   := 1
// DEFAULT nTipAmo   := 2
// DEFAULT cSepDia   := SPACE(1)
//Â DEFAULT cSepDM Â := "/"
//Â DEFAULT cSepMAÂ Â Â := "/"
  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 := "/"
  ENDIF
  IF cSepMA == NIL
    cSepMA := "/"
  ENDIF
  DO CASE
    CASE nTipdia == 1
      La_Fecha:= LEFT(aNomDia[DOW(dFecha)], 3) + cSepDia
    CASE nTipdia == 2
      La_Fecha:= aNomDia[DOW(dFecha)] + cSepDia
  ENDCASE
  IF lZeros
    La_Fecha:= La_Fecha + STRZERO(DAY(dFecha), 2, 0)
  ELSE
    La_Fecha:= La_Fecha + STR(DAY(dFecha), 2, 0)
  ENDIF
  DO CASE
    CASE nTipMes == 1
      La_Fecha:= La_Fecha + cSepDM + LEFT(aNomMesC[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)Â Â Â Â COLUMNS "CARCAR", "CARCLI", "CLINOM", "Date2Txt( DameFecha(CARFEC) )", "Date2Txt( DameFecha(CARVTO) )", "CARIMP" ;// AT THE BEGINNING OF THE PROGRAM
REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN
  HB_CDPSELECT("ESWIN")
  HB_LangSelect( "ESWIN" )
// SOON AFTER OPENING THE CONNECTION
oCn:Execute( "SET lc_time_names = 'es_ES'" )
// READING DATA FROM TABLE
cSql := "SELECT DATE_FORMAT( STR_TO_DATE( CARFEC, '%d%m%Y' ), '%W %D %M %Y' ) AS CARFEC FROM <yourtablename>"
oRs := FW_OpenRecordSet( oCn, cSql )
XBROWSER oRs    REDEFINE XBROWSE oBrw ID 201 OF oDlg;
     DATASOURCE oRsCxc ;
      COLUMNS "CARCAR", "CARCLI", "CLINOM", "Date2Txt(DameFecha(CARFEC))", "Date2Txt(DameFecha(CARVTO))", "CARIMP" ;
     HEADERS "Factura", "Cliente", "Nombre o Razón Social", "Emisión", "Vencimiento", "Saldo" ;
     COLSIZES 60,60,300,85,85,90 ;
     FOOTERS
    WITH OBJECT oBrw
     :l2007       := (.F.)
     :lHScroll     := (.F.)
     :nMarqueeStyle   := MARQSTYLE_HIGHLROWMS
     :nColDividerStyle := LINESTYLE_LIGHTGRAY
     :nRowDividerStyle := LINESTYLE_LIGHTGRAY
     :nStretchCol    := STRETCHCOL_WIDEST
      :nHeaderHeight   := 25
      :nRowHeight     := 22
      :nFooterHeight   := 25
     :bClrHeader    := { || {CLR_WHITE,CLR_BLACK} }
     :bClrFooter    := { || {CLR_WHITE,CLR_BLACK} }
     :bClrSel      := { || IF( oBrw:KeyNo % oApp:nRowsInt == 0 ,{ CLR_BLACK, oApp:nRowParClr },{ CLR_BLACK, oApp:nRowNonClr }) }
     :bClrSelFocus   := { || {oApp:nFClrFocus,oApp:nBClrFocus} }
     :bClrStd      := { || IF( oBrw:KeyNo % oApp:nRowsInt == 0 ,{ CLR_BLACK, oApp:nRowParClr },{ CLR_BLACK, oApp:nRowNonClr }) }
     :nRecSelColor   := oApp:nRowParClr
     :lDisplayZeros   := (.F.)
    END
    WITH OBJECT oBrw
     :aCols[ 5]:bFooter    := { || Len( oBrw:aSelected ) }
     WITH OBJECT :aCols[ 6]
      :nFooterType     := AGGR_SUM
      :bSumCondition    := { || AScan( oBrw:aSelected, oBrw:BookMark ) > 0 }
     END
     :bOnMultiSelect     := { || oBrw:MakeTotals() }
     :bChange         := { || IF( LEN( oBrw:aSelected ) <= 1, ;
                       ( oBrw:oCol(6):nTotal := oBrw:oCol(6):Value,;
                       oBrw:oCol(6):RefreshFooter() ),NIL ) }
     :MakeTotals()
    ENDREQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN
FUNCTION AppPag()
  LOCAL oDlg
  LOCAL oIcono
  LOCAL oFont,oFont1
  LOCAL oBrush
  LOCAL oBrw
  LOCAL aCol := ARRAY(10)
  LOCAL aGets := ARRAY(25)
  LOCAL aSays := ARRAY(01)
  LOCAL oAceptar
  LOCAL oCancelar
  SET CENTURY ON
  SET DATE TO FRENCH
  SET DELETED ON
  SET OPTIMIZE ON
  SETBALLOON(.T.)
  HB_CDPSELECT("ESWIN")
  HB_LangSelect( "ESWIN" )
……
…..
STATIC FUNCTION Conecta()
  LOCAL oError
  TRY
   oApp:oCon := TOleAuto( ) :new( "adodb.connection" )
  CATCH oError
   MsgStop( "No se ha podido crear la conexión al servidor !")
   RETURN( .F. )
  END
  oApp:oCon:ConnectionString := "Provider=IBMDA400;Data Source=AS400;User Id=Armando;Password=soidito"
  oApp:oCon:CommandTimeout    := 1800    // 30 Minutos * 60 segundos
  oApp:oCon:ConnectionTimeout  := 300    //  5 Minutos * 60 segundos
  TRY
    oApp:oCon:Open()
  CATCH oError
    MsgInfo( "No se pudo lograr la conexión al servidor, REVISE LA CONEXION DE SU RED O LA CONEXION A INTERNET !",oApp:cAplicacion)
    RETURN(.F.)
  END
 Â
// SOON AFTER OPENING THE CONNECTION
  oApp:oCon:Execute( "SET lc_time_names = 'es_ES'" )Â
RETURN(.T.)the columns in xbrowse shows the string
"Date2Txt( DameFecha(CARFEC) )", "Date2Txt( DameFecha(CARVTO) )"
Mr. Rao:
I made not static the DameFecha() function instead Date2Txt() function and
now everything is fine.
I have an other questions, I'll open an other post.
I am vey gratefuly.
With best regards