Pictures

Preguntas generales sobre la libreria
Responder
Sebas
Mensajes: 11
Registrado: 25 Oct 2018 12:09

Pictures

Mensaje por Sebas » 04 Feb 2019 19:36

Hola, ando perdido con los pictures en los gets, a ver si me podéis echar una mano.
El enlace que hay en la ayuda de los gets no funciona y no encuentro un sitio donde lo expliquen claramente, porque de momento no se indicar ni siquiera Upper :oops:

Tengo de momento los siguientes problemas:
En los gets de fecha, me sale el calendario, pero no se graba en la tabla, son campos tipo date (se quedan a 0000/00/00).
En los gets de tipo Time, al indicar $oGet->SetTime(true) la aplicación da un error, ocurre lo mismo con el fichero de ejemplo test_get_date_time.php de TWeb. Claro poniendo solo el picture '99:99' me deja poner horas inexistentes (ej, 88:88)

Los gets que utilizo son en recursos creados con ResEdit.
Gracias de antemano

Oscar Maldonado
Mensajes: 40
Registrado: 29 Mar 2018 22:02

Re: Pictures

Mensaje por Oscar Maldonado » 05 Feb 2019 20:06

Sebas.

Creo que para los get fecha deberias utilizar lo siguiente antes de grabar
$cFecha = CTOD($cFecha_nac,'-');
Espero sea lo que necesitas.

Saludos,
Oscar

Sebas
Mensajes: 11
Registrado: 25 Oct 2018 12:09

Re: Pictures

Mensaje por Sebas » 06 Feb 2019 13:19

Gracias Oscar, eso solucionado, efectivamente con CTOD ya se graban.

No se si habrá alguna forma de indicar que todas las fechas las tome en formato español, es decir dd/mm/yyyy, algo así como hacíamos en harbour/FW con el SET DATE TO ITALIAN y olvidarme de formatos.

He probado a poner en el index.php:
setlocale(LC_TIME, 'es_ES');
y
setlocale(LC_ALL, 'es_ES');
sin ningún resultado, me sigue mostrando las fechas tal y como se graban en la tabla mysql, es decir yyyy/mm/dd

El caso es que en los gets de fecha tengo puesto $oGet->SetDate(true), pero solo muestra la fecha en formato dd/mm/yyyy cuando toma el foco no cuando no lo tiene, y en muchos dialogos tengo ese control disable, con lo cual siempre me las muestra en formato yyyy/mm/dd

Saludos

Avatar de Usuario
carles
Mensajes: 153
Registrado: 24 Mar 2018 10:38

Re: Pictures

Mensaje por carles » 07 Feb 2019 18:22

Sebas,

No es tan trivial como dices. El campo fecha lo has de tratar tu y hay muchas maneras de hacerlo. Si hablamos por ejemplo de como tenemos la fecha salvada en un campo de la tabla, el formato será año-mes-dia, p.e. 2019-02-6

En este caso si recuperas el caso lo puedes transformar antes de enviarlo al cliente con la funcion DTOC( <cFecha>, '/' ) :

DTOC( 2016-03-18 ) te devolverá 18/03/2016
DTOC( 2016-03-18, '-' ) te devolverá 18-03-2016

La función esta en tdataset.php para su estudio.

Tienes tambien la funcion inversa CTOD, que la usarias antes de gravar el dato si lo tienes en formato dia/mes/año

CTOD( 18/03/2016 ) te devolvera 2016-03-18


En cuanto al cliente, o la parte en javascript mirate el fichero core.init.js y podras cambiar la parametrización por defecto del Calendario

  1. function ConfigCalendar() {
  2.    
  3.     $.datepicker.regional['ca'] = {
  4.         firstday: 1,
  5.         closeText: 'Cerrar',
  6.         prevText: '<Ant',
  7.         nextText: 'Seg>',
  8.         currentText: 'Hoy',
  9.         monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septembre', 'Octubre', 'Noviembre', 'Diciembre'],
  10.         monthNamesShort: ['Ene','Feb','Mar','Abr', 'May','Jun','Jul','Ago','Sep', 'Oct','Nov','Dic'],
  11.         dayNames: ['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado'],
  12.         dayNamesShort: ['Dom','Lun','Mar','Mie','Jue','Vie','Sab'],
  13.         dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sa'],
  14.         weekHeader: 'Sm',
  15.         dateFormat: 'dd/mm/yy',
  16.         firstDay: 1,
  17.         isRTL: false,
  18.         showMonthAfterYear: false,
  19.         yearSuffix: ''
  20.     };       
  21.        
  22.     jQuery(function($){
  23.         $.datepicker.setDefaults( $.datepicker.regional['ca'] );
  24.     });
  25. }

La funcion SetTime() no se porque no esta activada. De todas maneras en el codigo esta casi todo, simplemente coje el fichero core.php y busca en la clase TGet la funcion SetDate(). Añade simplemente este código debajo
  1.     public function SetTime( $lTime = true ) { $this->lTime = $lTime; }
Y listos ! Ya puedes probar el ejemplo test_get_date_time.php -> http://itarraco.com/tweb.examples/test_get_date_time
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

http://itarraco.com/tweb.web
http://itarraco.com/tweb.forum
http://itarraco.com/tweb.help

Download: http://itarraco.com/tweb.forum/viewtopic.php?f=8&t=24

Avatar de Usuario
carlos vargas
Mensajes: 33
Registrado: 29 Mar 2018 21:18

Re: Pictures

Mensaje por carlos vargas » 07 Feb 2019 22:10

Carles, cuando se usa el timepick o el datepick, el foco se pierde, no hay forma que el foco se mantenga el control get.
le he buscado pero no encuentro como.
fijate que cunado el datepick esta desplegafo y seleccionamos las fechas para cambiar de mes, el foco regresa al get, pero cuando se selecciona una fecha se pirde el foco, no se sabe donde esta.
lo mismo para el timepick.

salu2

Avatar de Usuario
carlos vargas
Mensajes: 33
Registrado: 29 Mar 2018 21:18

Re: Pictures

Mensaje por carlos vargas » 11 Feb 2019 22:02

bueno carles, creo haber corregido el problema del foco en datepick y timepick, en fweb que aun uso, pero la idea es la misma en tweb.
en la classe tget

Código: Seleccionar todo

		if ( $this->lDate )
		{
			//$cFunction .= '$( "#' . $this->cId . '" ).datepicker( { dateFormat: "' . $this->cDateFormat . '", changeMonth: true, changeYear: true } ); ';
			$cFunction .= '$( "#' . $this->cId . '" ).datepicker( { dateFormat: "' . $this->cDateFormat . '", changeMonth: true, changeYear: true, ';
			$cFunction .= ' onSelect: function()';
			$cFunction .= ' {';
			$cFunction .= '   document.all ? $(this).get(0).fireEvent( "onchange" ) : $(this).change();';
			$cFunction .= '   this.focus();';
			$cFunction .= ' },';
			$cFunction .= ' onClose: function (dateText, inst)';
			$cFunction .= ' {';
			$cFunction .= '   if (!document.all)';
			$cFunction .= '   {';
			$cFunction .= '     this.select();';
			$cFunction .= '   }';
			$cFunction .= ' }';
			$cFunction .= '});';
		}
		else if ( $this->lTime )
		{
			//$cFunction .= '$( "#' . $this->cId . '" ).timepicker( { timeFormat: "h:mm p", stepMinute: 5, addSliderAccess: true, sliderAccessArgs: { touchonly: false } } ); ';
			//$cFunction .= '$( "#' . $this->cId . '" ).timepicker( { timeFormat: "' . $this->cTimeFormat .'", stepMinute: 15, addSliderAccess: true, sliderAccessArgs: { touchonly: false } } ); ';
			$cFunction .= '$( "#' . $this->cId . '" ).timepicker( { timeFormat: "' . $this->cTimeFormat .'", stepMinute: 15, addSliderAccess: true, sliderAccessArgs: { touchonly: false }, ';
			$cFunction .= ' onSelect: function()';
			$cFunction .= ' {';
			$cFunction .= '   document.all ? $(this).get(0).fireEvent( "onchange" ) : $(this).change();';
			$cFunction .= '   this.focus();';
			$cFunction .= ' },';
			$cFunction .= ' onClose: function (dateText, inst)';
			$cFunction .= ' {';
			$cFunction .= '   if (!document.all)';
			$cFunction .= '   {';
			$cFunction .= '     this.select();';
			$cFunction .= '   }';
			$cFunction .= ' }';
			$cFunction .= '});';
		}

Responder