Page 4 of 5

Re: mis proyectos..

Posted: Fri Mar 01, 2013 7:01 pm
by Francisco Horta
Silvio,
FechaServer() es una funcion propia que me regresa la fecha del servidor de mysql, puedes usar en su defecto Date(),
Para los colores la clave esta en calinfo.prg, ahi configuras los colores y las condiciones, puedes ver como lo hice a mis necesidades.
Saludos
Paco

Re: mis proyectos..

Posted: Wed Mar 06, 2013 12:57 am
by rolando
Buenas noches,

Bajé la clase y no puedo lograr que funcione. Me dá errores al compilar los ejemplos.

Inclusive el "calex.exe" que viene, al ejecutarlo y pasar a modo weekly, cierra la aplicación y da un error.

Aclaro que uso xHarbour y VERCE.

¿Que debo incluir en el verce?

Gracias

Rolando :D

Re: mis proyectos..

Posted: Wed Mar 06, 2013 2:00 am
by Marcelo Roggeri
Hola yo tambien he bajado la clase y me pasa lo mismo que Rolando.
No logro generar la clase nuevamente.
Saludos
Marcelo

Re: mis proyectos..

Posted: Wed Mar 06, 2013 6:30 pm
by Silvio.Falconi
Francisco por favor,
How I can change the color on calinfo.prg
can you explain here please?
I need 5 status ( GREEN, RED, BLUE, ORANGE, GRAY )
thanks

Re: mis proyectos..

Posted: Fri Mar 08, 2013 9:00 pm
by rolando
Buenas tardes,

Logré generar la .lib y compila bien pero al ejecutarlo y cargar una cita, se cierra la aplicación y da un error:


Error description: Error BASE/1066 Argument error: conditional
Args:
[ 1] = U

Stack Calls
===========
Called from: CALINFO.PRG => TCALINFO:PAINTONMONTH( 231 )
Called from: CALINFO.PRG => TCALINFO:PAINT( 179 )
Called from: TCALEX.PRG => TDAYVIEW:PAINTCALINFO( 1057 )
Called from: TDAYV.PRG => TDAYVIEW:PAINT( 194 )
Called from: TCALEX.PRG => TCALEX:PAINT( 1035 )
Called from: TCALEX.PRG => (b)TCALEX:TCALEX( 107 )
Called from: => TCALEX:DISPLAY( 0 )
Called from: .\source\classes\CONTROL.PRG => TCALEX:HANDLEEVENT( 1690 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3177 )
Called from: => WINRUN( 0 )
Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 990 )
Called from: D:\VERCE\XbroTest\TCalex\sample01.prg => SAMPLECALEX:NEW( 83 )
Called from: D:\VERCE\XbroTest\TCalex\sample01.prg => MAIN( 14 )


Para más datos, si utilizo la lib que trae la clase, también da el mismo error.

¿A nadie le pasó?

Saludos

Rolando :roll:

Re: mis proyectos..

Posted: Thu Mar 28, 2013 6:38 pm
by cnavarro
Francisco Horta wrote:Compañeros,

Si Daniel autoriza que publique la TCalex, hasta donde la he modificado con mucho gusto lo haré o la enviaré a alguien para que la ponga a disposición de todos. Yo ya la tengo operando sin problemas en varios Spa's desde hace 5 meses.

Como Opciones que no pude implementar seria algo fantástico que pudiera hacer lo siguiente (a ver si luego alguien puede adaptarla):

1. Desplazamiento con Flechas ( comportamiento idéntico al xbrowse) dentro del calendario
2. poder arrastras y soltar citas en calendario con vista semanal ( cambio de dia y hora ) y vista diaria ( cambio de hora )
3. Ajustar el ancho de los cuadros de las citas al tamaño del control para que no deje espacios.

Creo que eso ahorraria mucho tiempo en agendar.

Esperamos pronta respuesta.
Saludos



Buenas tardes
Con este código funciona el movimiento con flechas en TMonthView en el Metodo Keydown de TCalex
Espero que puedan confirmarlo
Un saludo

Code: Select all | Expand


      case ::oView:IsKindOf("TMONTHVIEW")
         do case
            case nKey == VK_RETURN
                 ::SetDayView()
            case nKey == VK_UP
                 if ::oMonthView:aDateSelected[ 1 ] = 1
                    ::oMonthView:aDateSelected[ 1 ] := 5
                    ::oMonthView:dDateSelected := ::oMonthView:dDateSelected - 28
                 else
                    ::oMonthView:aDateSelected[ 1 ]--
                    ::oMonthView:dDateSelected := ::oMonthView:dDateSelected - 7
                 endif
                 ::dDateSelected := ::oMonthView:dDateSelected
                 ::Refresh()

            case nKey == VK_DOWN
                 if ::oMonthView:aDateSelected[ 1 ] = 5         // Ojo, màximo numero filas
                    ::oMonthView:aDateSelected[ 1 ] := 1
                    ::oMonthView:dDateSelected := ::oMonthView:dDateSelected + 28
                 else
                    ::oMonthView:aDateSelected[ 1 ]++
                    ::oMonthView:dDateSelected := ::oMonthView:dDateSelected + 7
                 endif
                 ::dDateSelected := ::oMonthView:dDateSelected
                 ::Refresh()

            case nKey == VK_LEFT

                 if ::oMonthView:aDateSelected[ 2 ] = 1
                    // Crear Data para ir a Mes anterior o...
                    ::oMonthView:aDateSelected[ 2 ] := 7
                    ::oMonthView:dDateSelected := ::oMonthView:dDateSelected + 6
                 else
                    ::oMonthView:aDateSelected[ 2 ]--
                    ::oMonthView:dDateSelected--
                 endif
                 ::dDateSelected := ::oMonthView:dDateSelected
                 ::Refresh()


            case nKey == VK_RIGHT
                 if ::oMonthView:aDateSelected[ 2 ] = 7
                    // Crear Data para ir a Mes siguiente o...                  
                    ::oMonthView:aDateSelected[ 2 ] := 1
                    ::oMonthView:dDateSelected := ::oMonthView:dDateSelected - 6
                 else
                    ::oMonthView:aDateSelected[ 2 ]++
                    ::oMonthView:dDateSelected++
                 endif
                 ::dDateSelected := ::oMonthView:dDateSelected
                 ::Refresh()



            otherwise
                 return Super:KeyDown( nKey, nFlags )
         endcase
 

Re: mis proyectos..

Posted: Thu Mar 28, 2013 6:59 pm
by cnavarro
Añadir esta linea en el New de TCalex para que no haya que seleccionar con el ratón al inicio

Code: Select all | Expand


METHOD New( .........)    CLASS TCalex
.../...

   ::oWnd:oClient = Self
   ::GoTop()
   ::SetFocus()                         // Añadido Cnl 28/03/2013

Return Self
 

Re: mis proyectos..

Posted: Thu Mar 28, 2013 7:03 pm
by cnavarro
rolando wrote:Buenas tardes,

Logré generar la .lib y compila bien pero al ejecutarlo y cargar una cita, se cierra la aplicación y da un error:


Error description: Error BASE/1066 Argument error: conditional
Args:
[ 1] = U

Stack Calls
===========
Called from: CALINFO.PRG => TCALINFO:PAINTONMONTH( 231 )
Called from: CALINFO.PRG => TCALINFO:PAINT( 179 )
Called from: TCALEX.PRG => TDAYVIEW:PAINTCALINFO( 1057 )
Called from: TDAYV.PRG => TDAYVIEW:PAINT( 194 )
Called from: TCALEX.PRG => TCALEX:PAINT( 1035 )
Called from: TCALEX.PRG => (b)TCALEX:TCALEX( 107 )
Called from: => TCALEX:DISPLAY( 0 )
Called from: .\source\classes\CONTROL.PRG => TCALEX:HANDLEEVENT( 1690 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3177 )
Called from: => WINRUN( 0 )
Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 990 )
Called from: D:\VERCE\XbroTest\TCalex\sample01.prg => SAMPLECALEX:NEW( 83 )
Called from: D:\VERCE\XbroTest\TCalex\sample01.prg => MAIN( 14 )


Para más datos, si utilizo la lib que trae la clase, también da el mismo error.

¿A nadie le pasó?

Saludos

Rolando :roll:


Prueba con esto a ver si lo solucionas

Code: Select all | Expand


METHOD LoadDates( nStart, nEnd, dStart, dEnd, cText, cSubject, nIdx, lND, lAplicado, lBloqueoT ) CLASS TCalEx

   local oCalInfo

   WITH OBJECT oCalInfo := TCalInfo():New()
      :nStart    = nStart
      :nEnd      = nEnd
      :dStart    = dStart
      :dEnd      = dEnd
      :cText     = cText
      :cSubject  = cSubject
      :oCalex    = Self
      :nIdx      = nIdx
      //:lND       = lND
      //:lAplicado = lAplicado
      //:lBloqueoT = lBloqueoT
   END

   hb_HSET( ::hCalInfo, oCalInfo:nId, oCalInfo )

RETURN NIL

 

Re: mis proyectos..

Posted: Thu Mar 28, 2013 10:43 pm
by rolando
Cristobal,

Gracias por responder. Ya había logrado compilarlo con la ayuda de un amigo, en realidad no utilizo la clase actualmente pero estaba interesante para "testear".

Acabo de probar tus agregados a la clase y funcionan correctamente.

Saludos

Rolando :D

Re: mis proyectos..

Posted: Mon Apr 01, 2013 10:25 pm
by Francisco Horta
Cristobal,
Probado y funcionando 100%, gracias.

Daniel, como puedo poner la info de mi agenda en un tooltip, para que cuando al pasar el raton por encima de mi cita muestre la info, ya que como son muchas no se puede apreciar la info completa, me pudieras ayudar ó dar una idea por donde empezar... Gracias
adjunto imagen
Image
Saludos
Paco

Re: mis proyectos..

Posted: Tue Apr 02, 2013 3:13 am
by Ariel
hola Paco,

yo estoy metiendole mano x este tema tambien, estoy viendo de redefinir una nuevar variable o de usar :cargo, estoy tratando de meterle la c5tooltip ya q da mas posibilidades q los tooltips normales de fwh.

salu2, Ariel.

Re: mis proyectos..

Posted: Tue Apr 02, 2013 3:24 pm
by Francisco Horta
que tal Ariel,
Estupendo que lograras hacer esa adaptacion, yo lo intente hace rato peo no pude :( a ver si Daniel nos echa la idea, espero y no sea nada complicado.
saludos
Paco

Re: mis proyectos..

Posted: Tue Apr 02, 2013 6:52 pm
by cnavarro
Francisco
En el desarrollo de la clase TCalex, estoy intentando realizar lo mismo.
Mi idea era hacer que CalInfo herede de TControl, tal y como parece ser estaba previsto (y comentado en el fuente) y cargar el cToolTip de cada oCalInfo con la información a mostrar.
Si consigo algo concreto lo comentaré. Qué te parece el enfoque del tema?
Un saludo

Re: mis proyectos..

Posted: Tue Apr 02, 2013 6:59 pm
by Francisco Horta
Cristobal,
Estaria de lujo que pudiera mostrarse en un tooltip, por lo pronto lo hice asi y me funciona, peroooo es algo rustico
en tcalex agregar esto:

#define VIEW_MIN 140 // valor del ancho de la columna de la celda, si es menor de 140 muestra la ventana con la info

DATA nIdReserva AS NUMERIC INIT 0 // para validar que la reservacion ya se mostro al mover el raton sobre la cita


y en el method mousemoveview de tcalex:

Code: Select all | Expand


      if ::lCaptured
         ::nIdReserva := 0     // fjhg 02-04-2013
         ::Refresh()
      else
*---------  fjhg 02-04-2013 Simula tooltip, muestra la info de la cita en vista DIARIA exclusivamente
         if ::Classname() == "TDAYVIEW" .AND. ::oCalex:oCalInfo != NIL
            if ( ::oCalex:oCalInfo:aCoords[ CI_RIGHT ] - ::oCalex:oCalInfo:aCoords[ CI_LEFT ] ) < VIEW_MIN .AND. ::nIdReserva <> ::oCalex:oCalInfo:nIdx
               MsgInfo( "No. Reservación: " + ALLTRIM(STR(::oCalex:oCalInfo:nIdx)) + "     " + ;
                        "A las: " + ::oCalex:ConvertTime(::oCalex:oCalInfo:nStart,::oCalex:lAmPm) + "  -  " + ;
                                    ::oCalex:ConvertTime(::oCalex:oCalInfo:nEnd,::oCalex:lAmPm) + CRLF + ;
                        "Información: " + ::oCalex:oCalInfo:cSubject, "Datos de la Reservación ..." )
               ::nIdReserva := ::oCalex:oCalInfo:nIdx
            endif
         else
            ::nIdReserva := 0
         endif
      endif
 


saludos
paco

Re: mis proyectos..

Posted: Tue Apr 02, 2013 7:36 pm
by cnavarro
Paco

Yo lo estoy analizando a través de las DATAS
DATA oCalInfo // Current Callendar Info object HITTESTed
DATA oCalInfoSelected // Current Callendar Info object selected
o crear otro (::cargo) para comparar entre el actual y el anterior, comprobando mediante las coordenadas del mouse el oCalInfo en el que estoy y no volver a mostrar el mensaje hasta no salir de la celda.
Voy a mirar lo que me envías y te lo comento, gracias.
Totalmente de acuerdo con que el aspecto estético no es muy bueno. Habrá que mirar otro tipo de cToolTip
Un saludo