Page 1 of 1

PROBLEMA PARA VISUALIZAR INFORMACION DE UN DBF

Posted: Thu Feb 21, 2008 12:53 am
by Ruben
Buenas tardes Antonio Linares

Y un saludo a todos los usuarios de este foro, espero y me puedan ayudar

Un saludo desde Tampico Tamaulipas Mexico
Sabe estoy empezando a programar en xHarbour y FiveWin y estoy realizando un programa de Cuentas por cobrar, es apenas el principio aun no hay nada complejo pero se me dificulta visualizar el listado de clientes en una ventana, me podria ayudar
Aqui le envio el código para ver que sugerencias tengo, de antemano muchas gracias y espero comentarios.

LA FUNCION function BrwClientes()
NO ME FUNCIONA

#Include "FiveWin.Ch"

static oWnd, oClientes, oClient, oName
static cName

Function Main()
Local oBarBtn,oFont,oIcon,oBtns[10]
Public oWndMain,aUsuarios:={}, oDlg

USE cat_cli ALIAS Clientes
USE tab_emp New
Select Clientes

//Inicio()
// DEFINE ICON oIcon RESOURCE "aLogo"
DEFINE FONT oFont NAME "MS SANS SERIF" SIZE 10,-10
DEFINE WINDOW oWndMain FROM 1,1 TO 22,75 TITLE "Modulo de Cuentas por Cobrar" MENU CreaMenu() ICON oIcon
SET FONT OF oWndMain TO oFont
SET MESSAGE OF oWndMain TO Chr(169)+" Modulo de Cuentas por Cobrar - Alcide Fuentes y Asociados " KEYBOARD CLOCK DATE
DEFINE BUTTONBAR oBarBtn SIZE 25,25 3D TOP OF oWndMain
DEFINE BUTTON oBtns[1] RESOURCE "B_Emp" OF oBarBtn ;
TOOLTIP "Empresas"
DEFINE BUTTON oBtns[2] RESOURCE "B_Faces" OF oBarBtn ;
TOOLTIP "Conceptos"
DEFINE BUTTON oBtns[3] RESOURCE "B_Ctas" OF oBarBtn ;
TOOLTIP "Impresion" // ACTION SwCatCta() GROUP MESSAGE "mensaje"
DEFINE BUTTON oBtns[4] RESOURCE "B_Fin" OF oBarBtn ;
TOOLTIP "Salir" ACTION oWndMain:End() GROUP MESSAGE "Salir del programa"
ACTIVATE WINDOW oWndMain MAXIMIZED ON INIT BmpBrush() Valid Finaliza()
Return Nil

//*************************************************

Static Function CreaMenu()
Local oMenu
MENU oMenu
MENUITEM "&Catálogos"
MENU
MENUITEM "C&atalago de Clientes" ACTION BrwClientes() //GROUP MESSAGE "ADMINISTRADOR DE CLIENTES"
MENUITEM "&Catalago de Conceptos" ACTION BrwConceptos() //GROUP MESSAGE "CATALAGO DE CONCEPTOS"
MENUITEM "&Salir..."
ENDMENU
MENUITEM "&Documentos"
MENU
MENUITEM "&Captura de Documentos"
MENUITEM "&Captura de Pagos"
MENUITEM "&Notas de Crédito"
Separator
MENUITEM "&Movimiento de Documentos"
MENUITEM "&Movimiento de Pagos"
MENUITEM "&Movimiento de Notas de Crédito"
ENDMENU
MENUITEM "&Reportes y Consultas"
MENU
MENUITEM "&Auxiliares [Históricos]"
MENUITEM "E&stados de Cuenta"
MENUITEM "&Antiguedad de Saldos"
MENUITEM "&Acumulado de Clientes"
separator
MENUITEM "&Reporte Previo de Ingresos"
MENUITEM "&Reporte de Control de Folios"
MENUITEM "&Reporte Anual de Facturas"
MENUITEM "&Reporte de Ventas"
MENUITEM "&Reporte de Facturas"
ENDMENU
MENUITEM "&Utilerias"
MENU
MENUITEM "&Respaldo de Información"
MENUITEM "&Restaurar Información"
MENUITEM "G&eneración de Indices"
MENUITEM "&Parametros del Sistema"
MENUITEM "&Control de Usuarios"
MENUITEM "&Rec. de Pagos [Auxiliares]"
MENUITEM "&Rec. de Notas de Credito [Auxiliares]"
ENDMENU
MENUITEM "&Otros"
MENU
MENUITEM "&Cambio de Empresa"
MENUITEM "&Calculadora"
MENU
MENUITEM FILE "calc.bmp" ;
ACTION WinExec("Calc.exe")
ENDMENU
ENDMENU
MENUITEM "&Salir"
MENU
MENUITEM "&Salir de CXC" ACTION Salir()
ENDMENU
ENDMENU
Return oMenu

//*******************************************************

Static Function DispTit()
oWndMain:cTitle('Modulo de Cuentas por Cobrar'+' ['+aUsuarios[1]+']')
SET MESSAGE OF oWndMain TO Chr(169)+' Alcide Fuentes y Asociados' CLOCK DATE KEYBOARD
Return Nil

//****************************************************
Static Function Finaliza()

If MsgNoYes(" Salir del Sistema ?","Modulo CXC")
DBCOMMITALL() ; DBUNLOCKALL() ; DBCLOSEALL()
SET RESOURCES TO
Return .T.
End
Return .F.

//*****************************************

Static Function BmpBrush()
Local cBitmap := "LOGO.BMP",oBrush
If !Empty( cBitmap )
DEFINE BRUSH oBrush FILE cBitmap
SET BRUSH OF oWndMain TO oBrush
End
Return Nil

//****************************************

Static Function Inicio()
SET EPOCH TO 1990
SET DATE BRITISH
SET RESOURCES TO
SET DELETED ON
SET CONFIRM ON
SET AUTOPEN OFF
SET _3DLOOK ON
REQUEST DBFNTX,DBFCDX,DBFFPT
RDDSETDEFAULT("DBFCDX")
SetCancel(.F.)
SetHandleCount(150)
// AADD(aUsuarios,FwCurDir()) // Guardamos el directorio de la aplicacion
Return Nil

//*************************************************
function BrwClientes()

Local oBarBtn,oFont,oIcon,oBtns[10]

local oBrw, oIco, oBar, oClientes

If oClientes != nil
return nil
ENDIF
use cat_cli
//DEFINE ICON oIcon FILENAME "c:\fwh\samples\setup.ico"
DEFINE WINDOW oClientes MDIChild TITLE "ADMINISTRADOR DE CLIENTES" //OF oWndMain
//SET MESSAGE OF oClientes TO "ESPERO QUE FUNCIONE" CENTERED
//DEFINE BUTTONBAR oBar of oClientes
//DEFINE BUTTON oBar RESOURCE "OPEN" NOBORDER
// @ 2,0 LISTBOX oBrw FIELDS OF oClientes size 1000,500
use
//ON CHANGE ChangeClient()

// oClientes:SetControl( oBrw )

ACTIVATE WINDOW oClientes

//VALID( oClientes := nil, .t.)

return nil
//**************************************************

function BrwConceptos()
USE cat_con
Browse()
USE
return nil
//***************************************
function ChangeClient()

if oClient != nil
cName = AllTrim( Clientes->Last ) + ", " + Clients->First
oName:Refresh()
endif
RETURN NIL
//******************************************

FUNCTION SALIR()

oWndMain:End()
ACTIVATE WINDOW oWndMain MAXIMIZED ON INIT BmpBrush() Valid Finaliza()

return nil


return nil

Posted: Thu Feb 21, 2008 1:22 am
by horacio
Rubén:
Tenés un problema en la ventana principal, esta debería ser MDI porque la ventana que definís en BrwClientes() es una ventana hija. Es decir
Define Window oWndMain MDI From .......
Yo normalmente abro todas las bases al principio y las cierro cuando la aplicación finaliza. La función salír tiene la activación de la ventana principal. Para que ???. Espero te sirva
Salu2

Posted: Thu Feb 21, 2008 1:22 am
by Vital
Ruben, hay varios test de browse en los ejemplos , checalos yo creo que puedes ver algo que te funcione.

OK Horacio voy a probar

Posted: Thu Feb 21, 2008 2:10 pm
by Ruben
Ok Horacio deja provar y ahorita te comento haber que rollo
porque tambien quiero visualizar solo 3 campos del DBF, pero bueno primero lo primero

Posted: Thu Feb 21, 2008 2:56 pm
by Raymundo Islas M.
Hola Ruben


Tal y como te comento Vital, hay varios ejemplos muy buenos en la carpeta SAMPLES, de todos modos, creo que va a ser muy importante la decision que llegaras a tomar referente a la clase.

Actualmente a mi parecer tienes 3 opciones muy buenas todas :

- xBrowse Nativa de FWH
- SBrowse Del Maestro Mercado
- TWBrowse De Hernan


Saludos

Posted: Thu Feb 21, 2008 3:15 pm
by Ruben
Gracias Raymundo, estoy probando con el fwbrow.prg que vienen en c:\fwh\samples

Terminando de hacer pruebas les comento
muchas gracias y Saludos desde Tampico

Saludos

SIGO CON MI PROBLEMA

Posted: Thu Feb 21, 2008 3:40 pm
by Ruben
Vital buen dia y buen dia a todos, saben he estado probando el ejemplo que viene en SAMPLES de FW y al momento de correr mi prg me manda este error en el HEADERS

ERROR SYNTAX ERROR: "parse error at HEADERS

ES NUEVAMENTE EL LA FUNCION function BrwClientes() EN LAS LINEAS DONDE ESTA EL HEADERS

Les anexo el codigo, creamen que ya le di muchas vueltas y nada :cry:

#Include "FiveWin.Ch"

static oWnd, oClientes, oClient, oName
static cName

Function Main()
Local oBarBtn,oFont,oIcon,oBtns[10]
Public oWndMain,aUsuarios:={}, oDlg

USE cat_cli ALIAS Clientes
USE tab_emp New
Select Clientes

//Inicio()
// DEFINE ICON oIcon RESOURCE "aLogo"
DEFINE FONT oFont NAME "MS SANS SERIF" SIZE 10,-10
DEFINE WINDOW oWndMain FROM 1,1 TO 22,75 TITLE "Modulo de Cuentas por Cobrar" MENU CreaMenu() ICON oIcon
SET FONT OF oWndMain TO oFont
SET MESSAGE OF oWndMain TO Chr(169)+" Modulo de Cuentas por Cobrar - Alcide Fuentes y Asociados " KEYBOARD CLOCK DATE
DEFINE BUTTONBAR oBarBtn SIZE 25,25 3D TOP OF oWndMain
DEFINE BUTTON oBtns[1] RESOURCE "B_Emp" OF oBarBtn ;
TOOLTIP "Empresas"
DEFINE BUTTON oBtns[2] RESOURCE "B_Faces" OF oBarBtn ;
TOOLTIP "Conceptos"
DEFINE BUTTON oBtns[3] RESOURCE "B_Ctas" OF oBarBtn ;
TOOLTIP "Impresion" // ACTION SwCatCta() GROUP MESSAGE "mensaje"
DEFINE BUTTON oBtns[4] RESOURCE "B_Fin" OF oBarBtn ;
TOOLTIP "Salir" ACTION oWndMain:End() GROUP MESSAGE "Salir del programa"
ACTIVATE WINDOW oWndMain MAXIMIZED ON INIT BmpBrush() Valid Finaliza()
Return Nil

//*************************************************

Static Function CreaMenu()
Local oMenu
MENU oMenu
MENUITEM "&Catálogos"
MENU
MENUITEM "C&atalago de Clientes" ACTION BrwClientes() //GROUP MESSAGE "ADMINISTRADOR DE CLIENTES"
MENUITEM "&Catalago de Conceptos" ACTION BrwConceptos() //GROUP MESSAGE "CATALAGO DE CONCEPTOS"
MENUITEM "&Salir..."
ENDMENU
MENUITEM "&Documentos"
MENU
MENUITEM "&Captura de Documentos"
MENUITEM "&Captura de Pagos"
MENUITEM "&Notas de Crédito"
Separator
MENUITEM "&Movimiento de Documentos"
MENUITEM "&Movimiento de Pagos"
MENUITEM "&Movimiento de Notas de Crédito"
ENDMENU
MENUITEM "&Reportes y Consultas"
MENU
MENUITEM "&Auxiliares [Históricos]"
MENUITEM "E&stados de Cuenta"
MENUITEM "&Antiguedad de Saldos"
MENUITEM "&Acumulado de Clientes"
separator
MENUITEM "&Reporte Previo de Ingresos"
MENUITEM "&Reporte de Control de Folios"
MENUITEM "&Reporte Anual de Facturas"
MENUITEM "&Reporte de Ventas"
MENUITEM "&Reporte de Facturas"
ENDMENU
MENUITEM "&Utilerias"
MENU
MENUITEM "&Respaldo de Información"
MENUITEM "&Restaurar Información"
MENUITEM "G&eneración de Indices"
MENUITEM "&Parametros del Sistema"
MENUITEM "&Control de Usuarios"
MENUITEM "&Rec. de Pagos [Auxiliares]"
MENUITEM "&Rec. de Notas de Credito [Auxiliares]"
ENDMENU
MENUITEM "&Otros"
MENU
MENUITEM "&Cambio de Empresa"
MENUITEM "&Calculadora"
MENU
MENUITEM FILE "calc.bmp" ;
ACTION WinExec("Calc.exe")
ENDMENU
ENDMENU
MENUITEM "&Salir"
MENU
MENUITEM "&Salir de CXC" ACTION Salir()
ENDMENU
ENDMENU
Return oMenu

//*******************************************************

Static Function DispTit()
oWndMain:cTitle('Modulo de Cuentas por Cobrar'+' ['+aUsuarios[1]+']')
SET MESSAGE OF oWndMain TO Chr(169)+' Alcide Fuentes y Asociados' CLOCK DATE KEYBOARD
Return Nil

//****************************************************
Static Function Finaliza()

If MsgNoYes(" Salir del Sistema ?","Modulo CXC")
DBCOMMITALL() ; DBUNLOCKALL() ; DBCLOSEALL()
SET RESOURCES TO
Return .T.
End
Return .F.

//*****************************************

Static Function BmpBrush()
Local cBitmap := "LOGO.BMP",oBrush
If !Empty( cBitmap )
DEFINE BRUSH oBrush FILE cBitmap
SET BRUSH OF oWndMain TO oBrush
End
Return Nil

//****************************************

Static Function Inicio()
SET EPOCH TO 1990
SET DATE BRITISH
SET RESOURCES TO
SET DELETED ON
SET CONFIRM ON
SET AUTOPEN OFF
SET _3DLOOK ON
REQUEST DBFNTX,DBFCDX,DBFFPT
RDDSETDEFAULT("DBFCDX")
SetCancel(.F.)
SetHandleCount(150)
// AADD(aUsuarios,FwCurDir()) // Guardamos el directorio de la aplicacion
Return Nil

//*************************************************
function BrwClientes()

local oDlg
local oLbx
local cVar

USE Cat_cli

if RecCount() == 0
APPEND BLANK
endif

INDEX ON Cat_Cli->Nombre TO Nombre
SET INDEX TO Nombre

GO TOP

DEFINE DIALOG oDlg FROM 3, 3 TO 26, 85 TITLE "Administrador de Clientes"

@ 0, 1 SAY " &Listado de Clientes" OF oDlg

@ 1, 1 LISTBOX oLbx FIELDS;
Clientes->Clave, AllTrim( Clientes->Nombre ),;
Clientes->RFC,;

HEADERS "CLAVE", "NOMBRE", "RFC";
FIELDSIZES 8, 40, 15;
SIZE 284, 137 OF oDlg

oLbx:aJustify = { .f., .f., .t., .f., .t. }

@ 8.7, 1.4 BUTTON "&Agregar" OF oDlg //ACTION EditClient( oLbx, .t. ) SIZE 40, 12
@ 8.7, 9.4 BUTTON "&Modificar" OF oDlg //ACTION EditClient( oLbx, .f. ) SIZE 40, 12
@ 8.7, 17.4 BUTTON "&Borrar" OF oDlg //ACTION DelClient( oLbx ) SIZE 40, 12
@ 8.7, 25.4 BUTTON "&Buscar" OF oDlg //ACTION SeekClient( oLbx ) SIZE 40, 12

@ 8.7, 33.4 BUTTON "&Imprimir" OF oDlg ;
//ACTION oLbx:Report( "clients Report", .t. ) ; // .t. --> wants preview
//SIZE 40, 12

@ 8.7, 42 BUTTON "&Salir" OF oDlg ACTION oDlg:End() SIZE 40, 12

ACTIVATE DIALOG oDlg

USE

AEval( aHBitmaps, { | hBmp | DeleteObject( hBmp ) } )

return nil

//**************************************************

function BrwConceptos()
USE cat_con
Browse()
USE
return nil
//***************************************
function ChangeClient()

if oClient != nil
cName = AllTrim( Clientes->Last ) + ", " + Clients->First
oName:Refresh()
endif
RETURN NIL
//******************************************

FUNCTION SALIR()

oWndMain:End()
ACTIVATE WINDOW oWndMain MAXIMIZED ON INIT BmpBrush() Valid Finaliza()

return nil


return nil
[/url]

Posted: Thu Feb 21, 2008 10:40 pm
by Raymundo Islas M.
Quita la coma que esta despues del campo CLIENTES->RFC


Con eso debe funcionar correctamente.


Saludos

Gracias Raymundo

Posted: Thu Feb 21, 2008 10:44 pm
by Ruben
Gracias Raymundo ya quedo de maravilla

Ahorita ya estoy con la edicion de _ por si hay modificaciones o nuevos registros, voy a programar los botones

cuando haga pruebas les comento por si llego a tener ciertas dudas, que es lo mas seguro.


Saludos desde Tampico Tamps
Mexico