Get sin valor

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

Get sin valor

Mensaje por Sebas » 15 Ene 2019 17:02

Hola, tengo un dialogo con la ficha de cliente, que no se porqué no me carga el valor en el get del codigo:

Código: Seleccionar todo

<?php 
require ( '../../config.php' );
require ( PATH_TWEB . 'core.php' );
require ( PATH_TWEB . 'core.grid.php' );

//	Autenticació al Sistema...

	$oSessio = new TSession( APP_NAME );
	$oSessio->Valid( URL_APP );	
	
?>

<script>
	
	function TCli_Load(ccodigo) {

		if ( ccodigo == '' )
			return null
	
		oPar = new Object()
			oPar[ 'action' 	] = 'load'
			oPar[ 'cli_codigo' 	] = ccodigo
		
		MsgServer( 'src/control/c_client.php', TCli_Post_Load, oPar )				
	}	
	
	function TCli_Post_Load( dat ) {
				
		if ( dat.found == false ) {
		
			if ( ! MsgNotify( 'No existe el cliente' ) )
				return null
				
			
		} else {
		
		MsgNotify( 'cliente: ' + dat.item.codigo )	
		
			var o = new TControl()
			
			o.Set( 200, dat.item.codigo )
			o.Set( 210, dat.item.nif )
			o.Set( 410, dat.item.tipocli)
			o.Set( 220, dat.item.nombre )
			o.Set( 230, dat.item.domicilio1 )
			o.Set( 240, dat.item.domicilio2 )
			o.Set( 250, dat.item.cod_pos )
			o.Set( 260, dat.item.poblacion )
			o.Set( 270, dat.item.provincia )
			o.Set( 280, dat.item.telf1 )
			o.Set( 290, dat.item.telf2 )
			o.Set( 300, dat.item.email )
			o.Set( 310, dat.item.notas )
			o.Set( 370, dat.item.contacto)
			o.Set( 360, dat.item.formapago)
			o.Set( 390, dat.item.banco)
			o.Set( 400, dat.item.iban)

			o.Disable( 200 );
			o.Disable( 210 );
			o.Disable( 410 );
			o.Disable( 220 );
			o.Disable( 230 );
			o.Disable( 240 );
			o.Disable( 250 );
			o.Disable( 260 );
			o.Disable( 270 );					
			o.Disable( 280 );
			o.Disable( 290 );
			o.Disable( 300 );
			o.Disable( 310 );
			o.Disable( 370 );
			o.Disable( 360 );
			o.Disable( 390 );
			o.Disable( 400 );
	
		}
	}	
	
</script>

<?php	

//	-------------------------------------------------------------------
	
	$ccodigo = TPost( 'cli_codigo' );	

	$oRc 	= new TRc( 'app.rc',  'fich_cliente' );
	
	$oRccli	= $oRc->TDialog( );

		$oBar 		= new TBar( $oRccli );		
		
		$oBtn = $oBar->AddButton( 'btn_print', 'Imprimir'	, null , 'images/printer.png', 'Imprimir...' );
			$oBtn->cAlign = 'right';	
	
		$oGet =	$oRc->TGet( $oRccli, 200, '' );		//Código
		$oGet = $oRc->TGet( $oRccli, 210, '' );		//nif
		$oGet = $oRc->TGet( $oRccli, 410, '' );		//descripción tipo de cliente
		$oGet = $oRc->TGet( $oRccli, 220, '' );		//nombre
		$oGet = $oRc->TGet( $oRccli, 230, '' );		//direccion 1
		$oGet = $oRc->TGet( $oRccli, 240, '' );		//direccion 2
		$oGet = $oRc->TGet( $oRccli, 250, '' );		//codigo postal
		$oGet = $oRc->TGet( $oRccli, 260, '' );		//poblacion
		$oGet = $oRc->TGet( $oRccli, 270, '' );		//provincia
		$oGet = $oRc->TGet( $oRccli, 280, '' );		//telefono1
		$oGet = $oRc->TGet( $oRccli, 290, '' );		//telefono2	
		$oGet = $oRc->TGet( $oRccli, 300, '' );		//email
		$oGet = $oRc->TGet( $oRccli, 370, '' );		//Contacto
		$oGet = $oRc->TGet( $oRccli, 360, '' );		//Forma de pago
		$oGet = $oRc->TGet( $oRccli, 390, '' );		//Banco
		$oGet = $oRc->TGet( $oRccli, 400, '' );		//CCC o IBAN		
		$oGet = $oRc->TGet( $oRccli, 310, '' );	    //Notas
			$oGet->lMemo = true;

	$oRccli->Activate();	
		
?>

<script>
		var ccodigo = '<?php echo $ccodigo;?>';
		$( document ).ready(function() {
			TCli_Load(ccodigo);
		});

</script>
El caso es que en el inspector de chrome, en el array dat aparece el item codigo con el valor que debe tener, pero ni me lo muestra ni me hace caso cuando le indico que es disable, me deja escribir en él. Los demás funcionan como debe ser. Es el primer get, el que tiene id 200. En el editor de recursos está como el resto.
El MsgNotify de la funcion TCli_Post_Load() me muestra el código del item.
¿ Que puede ser ?
Saludos

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

Re: Get sin valor

Mensaje por carles » 15 Ene 2019 20:07

Sebas,

Se me ocurre que debes de tener un 200 bailando por alli. Coje el editor y pon un 201 y en el code tambien. A ver q pasa...
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

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

Re: Get sin valor

Mensaje por Sebas » 16 Ene 2019 13:39

Gracias Carles, correcto, al cambiar el id por 201 funciona, no sabía que no se pueden repetir los id de los controles de un dialogo en otro que se abra desde él. Este diálogo lo abro con un botón "Ver ficha" desde un listado de clientes en el que también hay un get con id 200.

No se si es que estoy demasiado acostumbrado a Harbour/FW, que tengo que cambiar de "chip" o hay otra forma de hacerlo, me explico: En mis aplicaciones algunos diálogos se pueden abrir desde distintos sitios, por ejemplo una ficha de artículo se puede abrir desde el listado de artículo, pero si están dando entrada de mercancías y al meter el código de barras este no existe, les abro el listado de artículo y desde él pueden seleccionarlo si es que existe, consultar su ficha para añadirle el nuevo código de barras o incluso darlo de alta, modificar el precio, etc., todo ello sin cerrar el diálogo de entrada de material.

Vamos que con Harbour/FW nunca me había preocupado que el ID de un control se repitiera en otro dialogo desde el que fue llamado ni en los diálogos a los que se puedan llamar desde él. Esto, que puede parecer una tontería, me va a obligar a llevar una lista de los ID utilizados y a renombrar todos los que tengo echos, que son muchos, y algunos con muchísimos controles.

Bueno, nuevamente gracias por tu trabajo y paciencia.

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

Re: Get sin valor

Mensaje por carlos vargas » 16 Ene 2019 16:59

Sip, eso ocurre, yo por lo general en la pagina inicial los id los inicio en 100, si hay algún dialogo que se abre encima ya los numero a partir del 1000.

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

Re: Get sin valor

Mensaje por carles » 16 Ene 2019 17:14

Sebas
Sebas escribió:
16 Ene 2019 13:39
No se si es que estoy demasiado acostumbrado a Harbour/FW, que tengo que cambiar de "chip" o hay otra forma de hacerlo
Si, esta es una de las diferencias en esta libreria. Hemos de pensar que mientras los controles que puedas tener en una ventana o un dialogo en windows estan de alguna manera encapsulados y juegas con variables locales, aqui es todo publico. Hice una clase que permitia el tratamiento local en cada diálogo pero exigia mas destreza para el usuario en el uso de javascript y jquery para gestionarlo y decidi hacerlo de una manera mas asimilable.

Hemos de pensar que cuando tenemos una pantalla en el navegador todos los id que definimos en controles seran visibles y es por esto que hemos de tener cuidado que no se pisen unos a otros. Por ejemplo yo cuando diseño un panel juego con un rango de id de 100 a 3000. Si en este panel puedo llamar diálogos (es decir los id se solaparan) miro de crear a partir de 5000 - 8000.

Luego tambien puedes tener dialogos que se puedan usar desde otros módulos, pues utilizo p.e a partir de 9000 o bien hay otra técnica que tambien esta bien que es en lugar de numeros crear id literales. P.e. imaginemos que tenemos un dialogo publico que se puede llamar desde cualquier módulo que simplemente queremos entrar un DNI y este formado por un get y un btn. Puedes definir en el editor de RC (o via codigo): "DNI_ID", "DNI_BTN_OK".

De esta manera codificas ya de una manera mas especial y te evitas que choque mas facilmente con otras variables que uses. Te podras referir a ellas de la misma manera que las otras: o.Set( "DNI_ID", '' ), o.Disable( "DNI_ID"), o.Focus( "DNI_ID"),...

Espero poder ver pronto tus avances y pantallas.


Saludos.
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

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

Re: Get sin valor

Mensaje por Sebas » 16 Ene 2019 20:00

Creo que voy a optar por lo contrario, llamar a los diálogos con un número de 4 cifras y a todos los controles que hay dentro de él con números dentro de ese millar, por ejemplo:

Nombre del dialogo: 1000_fichacliente o fichacliente_1000
Controles: 1010, 1020, 1030 etc.

Nombre del dialogo: 2000_direccionescliente o direccionescliente_2000
Controles: 2010, 2020, 2030 etc.

Lo digo porque llamarles DNI_ID o CLIENTE_ID al final tendría un problema parecido.

A ver si tengo algo decente para enseñaroslo (y sobre todo al cliente que ya está nervioso :D )

Responder