Calendario anual

Calendario anual

Postby Andrés González » Wed Jul 16, 2008 6:28 am

Alguien sabe si existe algún control de calendario anual del tipo los doce meses en el mismo control, no me refiero a los 12 cuadritos de los meses, si no a 12 lineas una por cada mes, recuerdo haberlo visto en los antiguos programas del grupo sp, y antiguamente alguien hizo algo cuando teníamos el foro de las news.
Alguien me puede poner en la pista.

Gracias.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: Calendario anual

Postby mmercado » Wed Jul 16, 2008 11:41 pm

Andrés González wrote:Alguien sabe si existe algún control de calendario anual del tipo los doce meses en el mismo control, no me refiero a los 12 cuadritos de los meses, si no a 12 lineas una por cada mes, recuerdo haberlo visto en los antiguos programas del grupo sp, y antiguamente alguien hizo algo cuando teníamos el foro de las news.
Alguien me puede poner en la pista.
Hola Andrés:

Image
Es algo así lo que necesitas?

Saludos.

Manuel Mercado.
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Postby Ricardo Ramirez E. » Thu Jul 17, 2008 1:16 am

Manuel... qeu control es ese???

Es free?

Lo necesito..:)
Saludos
Ricardo R.
xHarbour 1.1.0 Simplex , Microsoft Visual Studio 2008, Bcc55, Fwh Build. 9.01
User avatar
Ricardo Ramirez E.
 
Posts: 161
Joined: Wed Jan 25, 2006 10:45 am
Location: Praia - Cape Verde

Postby mmercado » Thu Jul 17, 2008 5:38 am

Ricardo Ramirez E. wrote:Manuel... qeu control es ese???Es free?
Lo necesito..:)
jajaja

No sé que pasó con la imagen, aquí la pongo nuevamente:

Image

Simplemente con la idea de Andrés ayer mismo (no me tomó más de 2 horas) escribí este programa cuya función principal recibe una fecha, muestra el calendario de todo el año con TSBrowse y devuelve la nueva fecha seleccionada.

Si a alguien le sirve, con gusto se lo envío.

Saludos.

Manuel Mercado
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Postby Andrés González » Thu Jul 17, 2008 7:01 am

D. Manuel, sí sí sí sí sí sí sí eso es exactamente lo que quiero, pero quiero añadirle datos en las casillas osea al dia [1 M] [2 M] [3 M.]... [6 L] [7 L], que como veo no debe de haber ningún problema. Vamos, la idea es plasmar un cuadrante de servicios de una plantilla, tengo ya cosas hechas con un calendario mensual, donde en cada casilla pongo el servicio de cada día de una persona, pero también estaba mirando la posibilidad de que se saliera por todo un año y recordé que hacia mucho tiempo los del grupo sp lo habían hecho, por eso pensé que el control ya debía de estar hecho. Es usted un genio. No es una pregunta es una afirmación. Espero ávido noticias suyas. Por cierto debe de usted estar en América pues empieza la semana en domingo y aquí la empezamos el lunes.

Un cordial saludo.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Andrés González » Thu Jul 17, 2008 7:21 am

He cambiado la dirección de email pues google nos da mas capacidad para enviara fichero si usted lo desea.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Andrés González » Thu Jul 17, 2008 2:02 pm

D. Manuel he compilado perfectamente sin problema alguno, bueno solo cuando hago dobleclick en la cabecera de los días de la semana me hace otro orden distinto de los días y si pulso en la primera o ultima semana me genera un error pero el mes me lo muestra tal cual lo ha puesto usted en el foro. Por otra parte sigo investigando como cambiar el día de inicio para que sea un lunes no un domingo y como hacer mas grande las celdas para poner mas datos en ellas. Le comento cosas a medida que se me ocurran.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby mmercado » Thu Jul 17, 2008 2:34 pm

Andrés González wrote:cuando hago dobleclick en la cabecera de los días de la semana me hace otro orden distinto de los días y si pulso en la primera o ultima semana me genera un error

En la sección With Object oBrw en CalAnual.prg, agrega esta línea:
Code: Select all  Expand view  RUN
      :lNoChangeOrd := .T.

Saludos.

Manuel Mercado
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Postby Andrés González » Thu Jul 17, 2008 3:07 pm

D. Manuel, he modificado la anchura de las filas y he intentado cambiar el día de inicio pero no lo consigo quiero que la semana empiece en lunes, me puede aconsejar. Ademas quiero también poner una altura diferente y supongo que debe de haber un comando para ello pero de momento no lo he conseguido.
A modo de ejemplo pero de forma lineal lo que pretendo hacer es poner en cada casilla del mes el servicio de cada uno vea la foto siguiente. Supongo que se puede poner otra font mas pequeña para los números de mes y asi dejar espacio para poner dos dígitos que identifican el servicio de cada uno


Image

Un Saludo
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Andrés González » Thu Jul 17, 2008 3:35 pm

Gracias incluida y ya no cambia el orden al pulsar la cabecera. No logro cambiar el día de inicio a lunes, algún consejo.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby nazariosn » Mon Jul 21, 2008 7:36 pm

Estimado Manuel.

mmercado wrote:Si a alguien le sirve, con gusto se lo envío.


Puedes enviarme el ejemplo al correo : nazariosn @ yahoo . com . mx

Gracias y saludos.
User avatar
nazariosn
 
Posts: 15
Joined: Sat Nov 26, 2005 1:06 am
Location: Mexico

Postby Ricardo Ramirez E. » Mon Jul 21, 2008 8:05 pm

Manuel :)

Puedes enviarmela a mi tambien :) ?

ricardocva @ yahoo. es

Saludos...
Ricardo Ramírez!
Saludos
Ricardo R.
xHarbour 1.1.0 Simplex , Microsoft Visual Studio 2008, Bcc55, Fwh Build. 9.01
User avatar
Ricardo Ramirez E.
 
Posts: 161
Joined: Wed Jan 25, 2006 10:45 am
Location: Praia - Cape Verde

Postby Andrés González » Mon Jul 21, 2008 10:40 pm

Esperaremos a que conteste el Sr. Mercado, en caso contrario si no le parece mal os lo enviaré yo. Os garantizo que funciona fenomenal con añadirlo a los ejemplos del tsbrowse me ha funcionado sin problemas, ya lo tengo añadido y funcionando en mi programa.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Calendario Anual

Postby FranciscoA » Tue Jul 22, 2008 5:33 am

Simplemente con la idea de Andrés ayer mismo (no me tomó más de 2 horas) escribí este programa cuya función principal recibe una fecha, muestra el calendario de todo el año con TSBrowse y devuelve la nueva fecha seleccionada.

Si a alguien le sirve, con gusto se lo envío.

Saludos.

Manuel Mercado[/quote]

Manuel, ¿puede enviármela? Gracias
Saludos
falegria230349@yahoo.es
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Postby mmercado » Tue Jul 22, 2008 5:37 am

Ricardo Ramirez E. wrote:Puedes enviarmela a mi tambien
Una Disculpa por la tardanza.

Mejor se los pongo aquí, no es muy grande.
Code: Select all  Expand view  RUN
#include "Fivewin.ch"
#include "TSBrowse.ch"

//--------------------------------------------------------------------------------------------------------------------//

Function CalAnual( dDate )

   Local oDlg, oBrw, nCol, dFecha, nMonth, aLine, bBlock, nDia, nMes, nYear, ;
         aCale := {}, ;
         aMes  := { "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic" }, ;
         aSem := { "Mes", "Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab", ;
                   "Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab", ;
                   "Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab", ;
                   "Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab", ;
                   "Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab", "Dom", "Lun", "Mar", "Mie" }

   Default dDate := Date()

   SET DATE BRITISH
   SET EPOCH TO Year( Date() ) - 70

   SetKey( VK_UP, {|| If( GetKeyState( VK_CONTROL ), aSetCale( StoD( Str( --nYear, 4 ) + StrZero( nMes, 2 ) + ;
                          StrZero( nDia, 2 ) ), oBrw, oDlg ), Nil ) } )

   SetKey( VK_DOWN, {|| If( GetKeyState( VK_CONTROL ), aSetCale( StoD( Str( ++nYear, 4 ) + StrZero( nMes, 2 ) + ;
                          StrZero( nDia, 2 ) ), oBrw, oDlg ), Nil ) } )
   nYear := Year( dDate )
   aCale := aSetCale( dDate )
   nDia := AScan( aCale[ Month( dDate ) ], {|e,n| n > 1 .and. e == Day( dDate ) } )

   DEFINE DIALOG oDlg TITLE Str( nYear ) SIZE 760, 210

   @  0,  0 BROWSE oBrw ARRAY aCale OF oDlg SIZE 385, 107 PIXEL CELLED ;
            COLORS CLR_BLACK, {|r,c| If( c == 1, CLR_HGRAY, CLR_WHITE ) }, ;
                   { |c| If( c== oBrw:nCell, CLR_WHITE, CLR_BLACK ) }, ;
                   { |c| If( c== oBrw:nCell, CLR_BLACK, CLR_HGRAY ) }, CLR_WHITE, CLR_BLACK

   For nCol := 1 To 38
      bBlock := bDetachable( oBrw, nCol )
      ADD COLUMN TO oBrw DATA bBlock TITLE aSem[ Min( 42, nCol ) ] SIZE 20 ALIGN DT_RIGHT
      oBrw:aColumns[ nCol ]:bGotFocus := {|| Eval( oBrw:bChange ) }
   Next

   With Object oBrw
      :lNoChangeOrd := .T.
      :lNoHSCroll := .T.
      :lInitGoTop := .F.
      :aColumns[ 1 ]:lFixLite := .T.
      :nFreeze := 1
      :lLockFreeze := .T.
      :nRowPos := Month( dDate )
      :bChange := { || If( Empty( oBrw:aArray[ oBrw:nAt, oBrw:nCell ] ), dFecha := CtoD( "//" ), ( ;
                       dFecha := Ctod( StrZero( nDia := oBrw:aArray[ oBrw:nAt, oBrw:nCell ], 2 ) + "/" + ;
                                       StrZero( nMes := oBrw:nAt, 2 ) + "/" + Str( nYear ) ), oBrw:DrawHeaders() ) ) }
   End With

   ACTIVATE DIALOG oDlg CENTER ON INIT oBrw:HiliteCell( nDia )

Return dFecha

//--------------------------------------------------------------------------------------------------------------------//

Static Function bDetachable( oBrw, nCol )

Return { |uVar| If( uVar == Nil, oBrw:aArray[ oBrw:nAt, nCol ], oBrw:aArray[ oBrw:nAt, nCol ] := uVar ) }

//--------------------------------------------------------------------------------------------------------------------//

Static Function aSetCale( dDate, oBrw, oDlg )

   Local aLine, nMonth, nCol, dFecha, nYear, nDia, ;
         aMes := { "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic" }, ;
         aArr := {}

   nYear := Year( dDate )

   For nMonth := 1 To 12
      dFecha := CtoD( "01/" + StrZero( nMonth, 2 ) + "/" + Str( nYear ) )

      nCol := DoW( dFecha )
      aLine := Array( 39 )

      While Month( dFecha ) == nMonth
         aLine[ nCol++ ] := Day( dFecha )
         dFecha ++
      EndDo

      AAdd( aArr, aLine )
   Next

   For nCol := 1 To Len( aArr )
      ASize( aArr[ nCol ], 40 )
      AIns( aArr[ nCol ], 1 )
      aArr[ nCol, 1 ] := aMes[ nCol ]
   Next

   If oBrw != Nil
      nDia := AScan( aArr[ Month( dDate ) ], {|e,n| n > 1 .and. e == Day( dDate ) } )
      oBrw:SetArray( aArr )
      oBrw:nRowPos := Month( dDate )
      oBrw:HiliteCell( nDia )
      oDlg:SetText( Str( nYear, 4 ) )
   EndIf

Return aArr

//--------------------------------------------------------------------------------------------------------------------//

Static Function StoD( cAnsiDate )

   Local cFormat := Upper( Set( _SET_DATEFORMAT ) ), ;
         cYear   := SubStr( cAnsiDate, 1, 4 ), ;
         cMon    := SubStr( cAnsiDate, 5, 2 ), ;
         cDay    := SubStr( cAnsiDate, 7, 2 )

   cFormat := StrTran( cFormat, "YYYY", cYear )
   cFormat := StrTran( cFormat, "YY", Right( cYear, 2 ) )
   cFormat := StrTran( cFormat, "MM", cMon )
   cFormat := StrTran( cFormat, "DD", cDay )

Return CtoD( cFormat )

Saludos.

Manuel Mercado
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Antonio Linares and 53 guests