Tengo las siguientes tablas:
CREATE TABLE `pagocli` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`idcliente` int(11) unsigned DEFAULT 0,
`fecha` date DEFAULT NULL,
`tipopago` enum('1.- Caja','2.- Banco','3.- Efecto','4.- Visa') DEFAULT '1.- Caja',
`concepto` smallint(6) unsigned DEFAULT 1,
`motivo` varchar(60) DEFAULT ' ',
`debe` decimal(11,2) DEFAULT 0.00,
`haber` decimal(11,2) DEFAULT 0.00,
`visa` decimal(11,2) DEFAULT 0.00,
`bizum` decimal(11,2) DEFAULT 0.00,
`banco` smallint(4) DEFAULT 0,
`ctabanco` varchar(9) DEFAULT ' ',
`numjustifi` int(11) DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_pagocli_idcliente` (`idcliente`)
) ENGINE=InnoDB AUTO_INCREMENT=3735 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
CREATE TABLE `tabconcecli` (
`id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
`idconceban` smallint(6) DEFAULT 3,
`papelnomb` char(40) DEFAULT NULL,
`tipo_pago` tinyint(3) unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=323 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
Relación
pagocli.concepto = tabconcecli.id
Tengo el siguiente formulario frmpagocli
DEFINE WINDOW TEMPLATE ;
AT 309,144 ;
OBJ opago ;
WIDTH 456 ;
HEIGHT 472 ;
BACKCOLOR Gris_Nono ;
FONT 'MS Sans Serif' ;
SIZE '10' ;
ICON 'Bandera' ;
MODAL ;
TITLE 'Datos del Apunte'
@ 53,20 LABEL l_tipocobro VALUE 'Tipo Cobro' WIDTH 70 HEIGHT 20
@ 50,107 COMBOBOX C_TIPOPAGO ;
WIDTH 150 HEIGHT 120 ;
OBJ o_c_tipopago ;
ITEMS lee_enum("pagocli","tipopago") ;
value 1;
ON CHANGE {|| o_concepto_pago:DeleteAllItems(), CargaConceptos( o_c_tipopago:Value ) }
@ 83,20 LABEL l_concepto VALUE "Concepto:" WIDTH 70 HEIGHT 20
@ 83,107 COMBOBOX C_CONCEPTO ;
WIDTH 200 HEIGHT 150 ;
OBJ o_concepto_pago ;
ITEMS {}
END WINDOW
Function main()
LOAD WINDOW frmpagocli
CENTER WINDOW frmpagocli
nTipoPago := 1
// Ahora cargar conceptos
CargaConceptos( o_c_tipopago:Value )
ON KEY ESCAPE OF frmpagocli ACTION { || frmpagocli.release }
ACTIVATE WINDOW frmpagocli
*************************************************
FUNCTION CargaConceptos( nTipoPago )
*************************************************
LOCAL aDatos:={}
LOCAL i
LOCAL nDefault
LOCAL nPos := 0
// Obtener conceptos del tipo seleccionado
aDatos := GetRows( ;
'SELECT id, papelnomb FROM tabconcecli ' + ;
'WHERE tipo_pago=' + LTrim(Str(nTipoPago)) + ;
' ORDER BY papelnomb', .f. )
// Limpiar completamente el combo
o_concepto_pago:DeleteAllItems()
// Si no hay datos salir
IF Empty(aDatos) .OR. Len(aDatos[1]) == 0
msginfo("VACÍO, CONSULTA CON NONO")
RETURN NIL
ENDIF
// Obtener ID por defecto según tipo
nDefault := Int( DefaultConceptoPorTipoPago( nTipoPago ) )
nPos:=0
// Añadir items al combo
FOR i := 1 TO Len(aDatos[1])
o_concepto_pago:AddItem( ;
AllTrim(aDatos[2][i]), ; // texto
Int(aDatos[1][i]) ) // id real
IF int(aDatos[1][i]) = int(nDefault)
nPos := i
ENDIF
NEXT
// Si no existe usar el primero
IF nPos = 0
nPos := 1
ENDIF
// Asignar posición correcta
o_concepto_pago:Value := nPos
RETURN NIL
**********************************************
FUNCTION DefaultConceptoPorTipoPago(nTipoPago)
**********************************************
DO CASE
CASE nTipoPago == 1
RETURN ado_value('SELECT id FROM tabconcecli WHERE papelnomb="A CUENTA CAJA"')
CASE nTipoPago == 2
RETURN ado_value('SELECT id FROM tabconcecli WHERE papelnomb="A CUENTA TRANSFERENCIA"')
CASE nTipoPago == 3
RETURN ado_value('SELECT id FROM tabconcecli WHERE papelnomb="A CUENTA EFECTO"')
CASE nTipoPago == 4
RETURN ado_value('SELECT id FROM tabconcecli WHERE papelnomb="A CUENTA VISA"')
ENDCASE
RETURN 0
- Cuando cambio el combo c_tipopago de valor, quiero que me refresque o_concepto_pago y que se me posicione en el ítems por defecto.
O_concepto_pago:value no me toma el valor de nPos.
La primera vez sí, pero las siguientes da valor 0.
Qué me falta?
Gracias
Saludos.
Antonio Vázquez
--
Has recibido este mensaje porque estás suscrito al grupo "[oohg]" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a oohg+uns...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/oohg/cdda8b60-613c-4424-b222-8f2838473f82n%40googlegroups.com.