Clipper/FiveWin - undefined:nclrtext

 
Vista:

undefined:nclrtext

Publicado por ingrid lauria (48 intervenciones) el 07/07/2006 18:59:19
sigo luchando con la funcion valid sin poder resolverlo, entonces opté por lo siguiente:

@ F,C get Codi picture "999" size 20,12 right Valid Codigos(Codi)

function Codigos(Codi)
sele Articulos //cambio porque estaba con el area Factura
go top
seek Codi
if found() // si lo encuentra funciona bien!!!!!!!!!!!!
@ F,C+50 say Articulos->Descrip
sele Factura //vuelvo al area anterior
retu .t.
else //aqui esta el problema
browse() //para que el usuario vea los codigos y escoja uno que exista...
retu .f.
endif

si los codigos existe, sale la descripcion!!!!!!!

pero si el codigo no existe,
aparece el browse(), me muevo buscando el articulo,
vuelve el cursor al get,
pero ingreso un codigo y sale el mensaje...

UNDEFINED:NCLRTEXT y se cuelga...

???????????
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:undefined:nclrtext

Publicado por Alvaro (79 intervenciones) el 08/07/2006 23:15:00
Ingrid,
Copia y compila el siguiente código y mira si es lo que tu quieres:

# INCLUDE "FiveWin.ch"
//-------------
FUNCTION Main()
//-------------
local oSay, oGet, nCodi:=0, oDlg, oBtn1
FIELD DESCRIP, CODIGO

USE ARTICULO
INDEX ON DESCRIP TO ART_DES // no sé si trabajas con CDX
INDEX ON CODIGO TO ART_COD
SET INDEX TO ART_COD

DEFINE DIALOG oDlg ;
TITLE "BUSQUEDA DE ARTICULOS" ;
FROM 7, 1 TO 27, 59

@ 2.0, 2 SAY "Código del Artículo:" OF oDlg

@ 2.4, 8 GET oGet VAR nCodi OF oDlg RIGHT ;
SIZE 20,10 PICTURE "999" ;
UPDATE ;
VALID IF ( articulo->(DBSEEK(ncodi)), ;
( oSay:SetText(articulo->DESCRIP) ,.t.), ; // si lo encuentra
( nCodi:= CODIGOS(), oSay:SetText(articulo->DESCRIP),;
oDlg:UPDATE(), .t.) ) // si no lo encuentra

// hacemos hueco para la descripción del artículo
@ 2, 15 SAY oSay PROMPT SPACE(30) OF oDlg

@ 7, 15 BUTTON oBtn1 PROMPT "&Salir" OF oDlg ;
SIZE 35,10 ;
ACTION oDlg:End()

ACTIVATE DIALOG oDlg CENTERED ON INIT (oDlg:lHelpIcon:=.f.)

RETURN nil

////////////////////////////
/// funcion para el browse
////////////////////////////
static function Codigos( )
local oDlg, oLbx, nCodi
SELE ARTICULO
SET INDEX TO ART_DES

DEFINE DIALOG oDlg ;
TITLE "BUSQUEDA DE ARTICULOS" ;
FROM 7, 1 TO 20, 39

@ 1, 1 LISTBOX oLbx FIELDS articulo->DESCRIP ;
HEADERS "Descripción" ;
SIZE 130,58 ;
OF oDlg ;
ALIAS "articulo" ;
ON DBLCLICK(nCodi:=articulo->CODIGO, oDlg:End())

// si pulsa <intro>
oLbx:bKeyDown:={|nK| IIF ( nK=VK_RETURN,;
(nCodi:=articulo->CODIGO, oDlg:End() ), nCodi:=0 ) }

ACTIVATE DIALOG oDlg CENTERED ON INIT (oDlg:lHelpIcon:=.f.)

// SELE FACTURA

return nCodi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

99.99% ok.

Publicado por ingrid lauria (48 intervenciones) el 10/07/2006 01:25:10
funcionó perfecto, tuve que eliminar on init pq me daba error, sin on init funciona perfecto.

lo unico que me faltaria, pero no me preocupa tanto, es lo siguiente:

si el codigo no existe, aparece el browse() y con doble click o enter se selecciona el articulo, luego aparece la descripcion, pasa al siguiente get, pero... en el get de articulo queda el numero de articulo inexistente.

Lo que hice es poner .f. luego de oDlg:update(); de esta manera el cursor queda en el oGet con el codigo correcto y obliga al usuario a pulsar enter una vez mas.

No me preocupa mucho mejorarlo, si es posible, y es sencillo me lo envias.

Asi que: GRACIAS, MUCHISIMAS GRACIAS !!!!!!!!!!!!!!!!

Ingrid
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:99.99% ok.

Publicado por Alvaro (79 intervenciones) el 10/07/2006 01:43:45
ingrid

te falta el .01% ???, pues es exactamente lo que tienes de cerebro, ahora hasta pretendes que yo haga tu trabajo y te lo envie, jajaja.

lo bueno es que ya estas aprendiendo a dar las gracias y se lo debemos al gracioso que "nos suplanta", pense que nunca te ibas a dar cuenta que en realidad el gracioso y yo somos el mismo, jajaja.

alvaro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:99.99% ok.

Publicado por Alvaro (79 intervenciones) el 10/07/2006 06:50:04
Ingrid,

Lo he probado con FWH 2.7 (xHarbour) y FW 2.3 (Clipper 5.3b) y en ambos casos funciona bien. ¿Que versiones utilizas tu?.

Comprueba si en el primer GET tienes puesto UPDATE antes del VALID.

En ON INIT(... solo sirve para que no aparezca el signo de la ayuda en la barra del diálogo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

100% ok.

Publicado por ingrid (19 intervenciones) el 16/07/2006 21:11:03
Alvaro:
yo tengo FW195 , Clipper 5.3 y Blinker 3.3; tal vez para futuras consultas te avise de antemano, de todos modos tu ayuda ha sido enorme y resolvi el problema que tenia, nuevamente MUCHISIMAS GRACIAS.
ingrid
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:100% ok.

Publicado por Alvaro (79 intervenciones) el 17/07/2006 23:53:22
lo dicho, eres un asno hasta para preguntar

Alvaro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar