Clipper/FiveWin - cambiar orden en listbox

 
Vista:

cambiar orden en listbox

Publicado por Cesar (153 intervenciones) el 05/03/2007 15:31:04
Hola colegas.

Soy programador de clipper desde hace muchos años, pero de Fw, muy poco.Tengo un listbox que dispone de 2 tipo de orden, codigo y descripcion, el cual puede ser modificado por el usaurio.
El problema radica, que cuando el usuario cambia el orden el listbox no se da por enterado y la busqueda da erronea.
Adjunto prg. (sepan disculpar la mala programacion, mucho no entiendo.) acepto modificaciones.
Desde ya muchas gracias!
Cesar
Argentina

#include "FIVEWIN.CH"
#include "Report.Ch"
STATIC oVentPrinc

FUNCTION Main()
LOCAL oBrush
LOCAL oBarraBotones
LOCAL oCursorMano
LOCAL oBmp
LOCAL oFont
MsgLogo( "Probaco.bmp", 2 )
SET RESOURCES TO "lib.dll"
DEFINE CURSOR oCursorMano RESOURCE "Hand"
SET 3DLOOK ON
DEFINE BRUSH oBrush STYLE BORLAND
DEFINE FONT oFont NAME "MS SANS SERIF" SIZE 0,-10
DEFINE ICON oico file "auto.ico"
DEFINE WINDOW oVentPrinc FROM 1, 1 TO 22, 75 ;
TITLE "Lista de precios de DAFYS S.A.";
brush obrush icon oico;
MENU PreparaMenu()
SET FONT OF oVentPrinc TO oFont
SET MESSAGE OF oVentPrinc ;
TO "DAFYS S.A.";
KEYBOARD;
CLOCK;
DATE

DEFINE BUTTONBAR oBarraBotones SIZE 33,33 3D TOP OF oVentPrinc CURSOR oCursorMano

DEFINE BUTTON oBtnClient FILE "Copy.Bmp" OF oBarraBotones ;
TOOLTIP "Lista de Precios";
ACTION ( oBtnClient:Toggle(),BrwClient(),oBtnClient:GoUp() );
MESSAGE "Editemos Base de Datos... Archivo de Precios"
DEFINE BUTTON FILE "Dbf.Bmp" OF oBarraBotones ;
TOOLTIP OemToAnsi( "Impresi¢n a 2 Columnas" );
ACTION Impresion2() GROUP;
MESSAGE "Reportes"
DEFINE BUTTON FILE "Dbfsmal.Bmp" OF oBarraBotones ;
TOOLTIP OemToAnsi( "Impresi¢n a 8 Columnas" );
ACTION Impresion6() GROUP;
MESSAGE "Reportes"

DEFINE BUTTON FILE "Calendar.Bmp" OF oBarraBotones ;
TOOLTIP "Calendario";
ACTION WinExec( "timedate.cpl" ) GROUP;
MESSAGE "Calendario de Windows"
DEFINE BUTTON FILE "SmalCalc.Bmp" OF oBarraBotones ;
TOOLTIP "Calculadora";
ACTION WinExec( "Calc" ) GROUP;
MESSAGE "Llama a la Calculadora de Windows" ;
ADJUST
DEFINE BUTTON FILE "Salida.Bmp" OF oBarraBotones ;
TOOLTIP "Salir";
ACTION Salida() GROUP;
MESSAGE OemToAnsi( "Terminar la ejecuci¢n de este programa" )
ACTIVATE WINDOW oVentPrinc MAXIMIZED
SET RESOURCES TO

FUNCTION PreparaMenu()
LOCAL oMenu
MENU oMenu
MENUITEM "&Archivo"
MENU // Especificamos Submen£ para la opci¢n "Archivo".
MENUITEM OemtoAnsi("&Art¡culos") ;
ACTION BrwClient(); // Llama a la funci¢n cuando se seleccione esta opci¢n.
MESSAGE "Editando Lista de PRecios"
SEPARATOR // Separador de opciones.
MENUITEM "&Salir..." ;
MESSAGE OemToAnsi( "Terminar la ejecuci¢n de este programa" );
ACTION Salida()
ENDMENU // Fin de la definici¢n de Submen£ para Archivo.
MENUITEM OemToAnsi("&Impresi¢n")
MENU
MENUITEM "Reportes"
MENU
MENUITEM "Reportes a 2 Columnas";
ACTION Impresion2();
MESSAGE "Emitir Reportes a 2 columnas"
MENUITEM "Reportes a 8 Columnas";
ACTION Impresion6();
MESSAGE "Emitir Reportes a 8 columnas"
ENDMENU
MENUITEM "Etiquetas";
ACTION Etiquetas();
MESSAGE OemToAnsi( "Impresi¢n de Etiquetas de Art¡culos" )
ENDMENU
MENUITEM "&Herramientas"
MENU // Submen£ para la opci¢n "Utilerias/Herramientas".
MENUITEM "&Calculadora" ;
ACTION WinExec( "Calc" ) ;
MESSAGE "Llama a la calculadora de Windows"
MENUITEM "C&alendario" ;
ACTION WinExec( "Calendar" ) ;
MESSAGE "Calendario de Windows"
ENDMENU // Fin de la definici¢n de Submen£ para "Utilerias/Herramientas".
MENUITEM "&?"
MENU
MENUITEM "&Ayuda" ;
ACTION WinHelp(); // Activamos la ventana del programa de Ayuda de Windows
MESSAGE "Llama a la Ayuda de Windows"
SEPARATOR
MENUITEM "Acerca &de Lista de Precios" ;
ACTION acerca();
MESSAGE "Acerca del Sistema"
ENDMENU
ENDMENU

RETURN( oMenu )

STATIC FUNCTION BrwClient()
LOCAL oCursorMano
LOCAL obot0,obot1,obot2,obot3,obot4,obot5,obot6,obot7,obot8
LOCAL oLbx
LOCAL oDlg
LOCAL oRadioButtons
LOCAL nOrden:=1
LOCAL oget
LOCAL oBuscar:=space(30)
LOCAL tecla
USE stock alias stock
ordCondSet(,,.T.,,,, RECNO(),,,, ) ; ordCreate("codigo",, "codigo", {|| codigo}, )
ordCondSet(,,.T.,,,, RECNO(),,,, ) ; ordCreate("descripc",, "descripcio", {|| descripcio}, )
stock->( Dbgotop() )
DEFINE DIALOG oDlg FROM 3, 2 TO 28, 79 TITLE "Lista de Art¡culos" FONT oVentPrinc:oFont

@00,01 SAY "Ordenar por:"
@ 3, 1 LISTBOX oLbx ;
FIELDS OemToAnsi(STOCK->Descripcio),;
str(STOCK->prec_vent1,10,2),;
OemToAnsi(STOCK->codigo);
FIELDSIZES 370, 100, 100;
HEADERS "DESCRIPCION", "PRECIO", "CODIGO";
SIZE 284, 110;
UPDATE;
OF oDlg

@00,09 RADIO oRadioButtons VAR nOrden ;
PROMPT "&Descripcion ", "&Codigo " ;
OF oDlg ON CHANGE Orden(nOrden,oLbx,Odlg)

@13,36 BUTTON "&Salir" OF oDlg ;
ACTION oDlg:End() SIZE 40, 12;

@11,15 say "Buscar: "

@13,15 get oGet var obuscar of odlg size 170,10 picture "@!30" ON CHANGE buscar(oBuscar,olbx,oGet)

@155,05 BUTTON oBot0 OF oDlg;
ACTION buscar(oBuscar,olbx,oGet);
size 22,22;
FILE "Lupa.bmp";
MESSAGE "Buscar en la base de datos"

@25,152 BUTTON oBoT8 OF oDlg;
ACTION Ley(odlg);
size 15,15;
FILE "hierarch.bmp"

@25,172 BUTTON oBoT1 OF oDlg;
ACTION top(olbx);
size 15,15;
FILE "Top.bmp"

@25,192 BUTTON oBoT2 OF oDlg;
ACTION pagant(olbx);
size 15,15;
FILE "Rewind.bmp"

@25,212 BUTTON oBoT3 OF oDlg;
ACTION ant(olbx);
size 15,15;
FILE "Prev.bmp"

@25,232 BUTTON oBoT4 OF oDlg;
ACTION prox(olbx);
size 15,15;
FILE "next.bmp"

@25,252 BUTTON oBoT5 OF oDlg;
ACTION pagpos(olbx);
size 15,15;
FILE "forward.bmp"

@25,272 BUTTON oBot7 OF oDlg;
ACTION bot(olbx);
size 15,15;
FILE "bottom.Bmp"

ACTIVATE DIALOG oDlg CENTER
use
RETURN( NIL )

Static Func buscar(oBuscar,olbx,oGet)
algo=recno()
obuscar:=alltrim(obuscar)
if stock->( dbseek(obuscar) )
oLbx:UpStable()
oLbx:Refresh()
else
nMsgBox( "No encuentro ese Articulo", OemToAnsi( "Atenci¢n" ) )
ENDIF
return(nil)

STATIC FUNCTION Orden(nOrden,oLbx)
stock->( ordSetFocus( nOrden ) )
stock->( DbGotop() )
oLbx:UpStable()
oLbx:Refresh()
RETURN

STATIC FUNCTION Salida()
IF MsgYesNo( OemToAnsi("¨ Deseas Salir ya ?"), "Salida del Sistema" )
oVentPrinc:End()
ENDIF
RETURN NIL

STATIC FUNCTION BitMaps(oReporte)
oReporte:SayBitmap(0, 1, "Logo.Bmp", 6, 2, 2 )
RETURN NIL

ANNOUNCE RDDSYS
INIT PROCEDURE RDDINIT
REQUEST DBFNTX
RDDSETDEFAULT("DBFNTX")
RETURN

Func top(olbx)
go top
oLbx:UpStable()
oLbx:Refresh()
return

Func PagAnt(olbx)
skip -11
oLbx:UpStable()
oLbx:Refresh()
return

Func Ant(olbx)
skip-1
oLbx:UpStable()
oLbx:Refresh()
return

Func prox(olbx)
skip
oLbx:UpStable()
oLbx:Refresh()
return

Func PagPos(olbx)
skip 11
oLbx:UpStable()
oLbx:Refresh()
return

Func bot(olbx)
go bottom
oLbx:UpStable()
oLbx:Refresh()
return
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

ESTE FORO DEJA MUCHO QUE DESEAR!!

Publicado por Cesar (1 intervención) el 07/03/2007 14:55:13
gracias por su ayuda!
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:ESTE FORO DEJA MUCHO QUE DESEAR!!

Publicado por Gabriel Pascual (913 intervenciones) el 08/03/2007 00:57:07
Supongo que estas faltando a las reglas basicas para preguntar al foro:

www.objetopersistente.blogspot.com
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:ESTE FORO DEJA MUCHO QUE DESEAR!!

Publicado por Mauricio Arevalo (152 intervenciones) el 08/03/2007 15:52:17
Seria bueno anotar lo siguiente:

Alguien se ha preguntado el promedio de edad de los foristas de Clipper...... Si no me equivoco muchos Clipperos el INTERNET era una utopia, de hecho muchos programadores de otros lenguajes tambien se estrellaron con la tecnologia bien sea por recursos economicos o por oportunidades laborales que no le permitian acceder a ella.
En ese proceso de modernizacion se fueron quedando programadores en el camino, y hoy en dia se dedican a otras labores....
Los que nos hemos quedado, venimos luchando por actualizarnos contra viento y marea, no queremos perder los quince o veinte años de manejo en clipper y cambiar la forma de programar cuesta dinero tiempo y muchos cosas mas.........

A los jovenes les es mas facil entrar a foros, preguntar, buscar, chatear, etc.

En la medida que nos adaptemos y conozcamos mas las ventajas del INTERNET iremos avanzando en nuestra forma de programar y tambien de preguntar......

No quiero juzgar a las personas que preguntar en este FORO, pero realmente hay unas preguntas que uno dice "OYE MIRA ON POQUITO MAS ABAJO ESTA LA RESPUESTA"

Otro punto importante son las construmbres de cada pais; tenemos foristas desde Argentina, Peru, Bolivia, Ecuador, Venezuela, Colombia, Mexico hasta llegar a España, entre otros, entender en palabras y lenguaje vaya que es dificil...sin embargo esta comunidad se ha destacado por ser muy colaboradora....

Gabriel es uno de los priveligiados en tener la oportunidad de contar con la asesoria de muchos GURUS y maestros haya en ESPAÑA, diria yo es un alumno muy aventajado....FELICITACIONES

A otros como Cesar y en general a los de SURAMERICA les ha tocado un poquito mas dificil, por muchas razones.....

Pero bueno hay vamos, era una pequeña reflexion, espero no haber ofendido a ninguna persona...

Saludos

Mauricio Arevalo
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:ESTE FORO DEJA MUCHO QUE DESEAR!!

Publicado por pepe (39 intervenciones) el 08/03/2007 16:08:41
Un saludo Mauricio, te voy a dar una pista, yo ando cacharreando con Clipper desde que internet no existía.

Pero existían las BBS y ahí dejábamos las preguntas y a los días recogíamos las respuestas, y recuerdo a la red FIDO, (FIDONET) donde había un tráfico enorme de temas relacionados con Clipper.

Y cómo a mí el cambio de los 16 a los 32 bits me ha cogido de sorpresa, pues por aquí ando a diário viendo, leyendo y aprendiendo todavía.

Saludos a todos
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:ESTE FORO DEJA MUCHO QUE DESEAR!!

Publicado por Cesar (153 intervenciones) el 12/03/2007 18:25:50
Bueno, me alegro que mi descontento con el foro haya generado 2 respuestas!!, pero sigo lamentando que mi pregunta inicial NO....que porsupuesto era la que mas necesitaba....

Talvez mi pregunta eran tan obvia, que algunos se habran preguntado, " que la investigue......", pero se olvidaron que lo obvio es mas dificil de encontrar.....

Otro, dijo que talvez formule mal la pregunta en el foro....no entiendo...no soy nuevo en este foro....hace años que lo visito....

pero bueno, aun mi pregunta obvia sigue sin responder.... y mi cliente esperando...,

Aca en Argentina, conozco varios programadores de clipper...pero muy pocos emigraron a FW, es muy dificil recompilar info...y yo sigo entregando programas en clipper porque mis clientes me exigen sistemas basados en DOS...y nos lo puedo dejar en banda...

Suerte a todos!!

Cesar
Probaco Sistemas
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:ESTE FORO DEJA MUCHO QUE DESEAR!!

Publicado por Mauricio Arevalo (152 intervenciones) el 13/03/2007 20:09:08
Cesar:
Si miras mas arriba donde aparece la misma pregunta con el nombre de Juana , te di una respuesta, inicialmente pense que eran lo mismos, ya que tienen la misma direccion de correo.

Te voy a enviar un demo de mi programa para que veas las diferentes formas de implementar con FWH , xHarbour y WorkShop..

Saludos

PD.M imagine que era el mismo probaco de toda la vida, me alegra que sigas en la lucha..
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:ESTE FORO DEJA MUCHO QUE DESEAR!!

Publicado por Cesar (153 intervenciones) el 14/03/2007 14:26:21
Hola Mauricio

Si es mi misma direccion, pero es una amiga que trabaja conmigo, es que estaba un poco "enojado", que no respondieran mi pregunta y vi que una pregunta mas nueva de una colega, estaba ya respondida....entonces le dije a Juani, que postee ella, a ver si le respondian a una mujer mas rapido...jaja...ya esta....

Despues me comento tu repuesta, lo que no entiendo, de tu pregunta es en que puede variar el utilizar radios, que el listbox no respete el cambio del orden. ya que con los radios, tambien puedo ejecutar las lineas Ordsetfocus() y el refresh del listbox??

bueno, si podes enviarme alguna ayuda via email te lo agradezco

[email protected]
[email protected]

Un abrazo Mauricio!
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:cambiar orden en listbox

Publicado por ingrid (7 intervenciones) el 20/03/2007 00:26:01
este foro es fantástico, pero ubicate Cesar, una cosa es una duda, una inquietud, y otra muy distinta es tirar un prg de mil renglones y pretender que lo leamos, analicemos y te demos una respuesta.
Asi y todo hay gente aca que lo ha hecho, vi muchas veces eso, pero... exigir?????
Ubicate Cesar.
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