Page 1 of 1

Para Antonio Y los Duros De FWH " Error al abrir 3 Arch

Posted: Sat Feb 02, 2008 4:44 pm
by JHON JAIRO VALENCIA DIAZ
:oops:
Amigos del foro;

Estamos realizando una aplicación en la cual queremos manejar 3 archivos, en la primera ventana mostramos el archivo mediante TWBROWS como se ve en la imagen; al seleccionar un registro lo mostramos en la siguiente ventana, despues abrimos el segundo archivo y es cuando se presenta el error que aparece en la imagen. este es el fuente.

//-------------------------------------------------------------//
STATIC FUNCTION Avalu
//-------------------------------------------------------------//
#define AVALUO 5
local oChild,oCOL,a_RADIO
cbuscar := SPACE(30)
dbSelectArea(2)
Catastro->(OrdSetFocus("codigo"))
Catastro->(OrdSetFocus("propietario"))
Catastro->(OrdSetFocus("direccion"))

dbSelectArea(3)
Tempava->(OrdSetFocus("vigiva"))

dbSelectArea(4)
Avaluo1->(OrdSetFocus("codava"))

DEFINE DIALOG oDlg13 RESOURCE AVALUO of oWnd
oBrw := TXBrowse():New( oDlg13 )

Catastro->(OrdSetFocus("codigo"))
dbSelectArea(2)

oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:nRowDividerStyle := LINESTYLE_BLACK
oBrw:lColDividerComplete := .t.
oBrw:SetRDD()

oBrw:bClrStd := {|| {CLR_BLACK, iif( Field->color1, CLR_WHITE, CLR_HCYAN ) } }
oBrw:CreateFromResource( 101 )

oCol := oBrw:AddCol()
oCol:bStrData := { || _FIELD->CODIP01}
oCol:cHeader := "Código Catastral"
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
oCol:nWidth := 130

oCol := oBrw:AddCol()
oCol:bStrData := { || _FIELD->NOMIP01}
oCol:cHeader := "Propietario"
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
oCol:nWidth := 250

oCol := oBrw:AddCol()
oCol:bStrData := { || _FIELD->DIRIP01}
oCol:cHeader := "Dirección"
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
oCol:nWidth := 200

oBrw:DelCol(10)
oBrw:DelCol(9)
oBrw:DelCol(8)
oBrw:DelCol(7)
oBrw:DelCol(6)
oBrw:DelCol(5)
oBrw:DelCol(4)
oBrw:DelCol(3)
oBrw:DelCol(2)
oBrw:DelCol(1)

dbSelectArea(2)

oDlg13:oClient := oBrw
oBrw:Refresh() // Repintamos el ListBox

REDEFINE RADIO a_RADIO VAR nOrden OF oDlg13 ON CHANGE Orden(nOrden,oBrw) ;
ID 102, 103, 104 UPDATE


ACTIVATE DIALOG oDlg13 CENTER ON INIT BARRAVA()

return nil

//----------------------------------------------------------//
FUNCTION BARRAVA
//----------------------------------------------------------//


local oImageList,oBar,oToolBar

DEFINE IMAGELIST oImageList SIZE 32, 32
DEFINE IMGBITMAP OF oImageList NAME "nuevo" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "editar" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "eliminar" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "buscar3" COLOR nRGB( 255, 0, 255 )

DEFINE TOOLBAR oToolBar OF oDlg13 SIZE 45, 45 ;
IMAGELIST oImageList BALLOON // tooltips balloon style

oToolBar:SetTextRows( 2 )

DEFINE TBBUTTON OF oToolBar ;
ACTION Nueava(oBrw,.F.) ;
TOOLTIP "Nuevo" ;
PROMPT "&Nuevo"

DEFINE TBBUTTON OF oToolBar ;
ACTION Nuevo(oBrw2,.F.) ;
TOOLTIP "Editar" ;
PROMPT "&Editar"

DEFINE TBBUTTON OF oToolBar ;
ACTION DelClient(oBrw2, .F. ) ;
TOOLTIP "Borrar" ;
PROMPT "&Borrar"

DEFINE TBSEPARATOR OF oToolBar

DEFINE TBBUTTON OF oToolBar ;
ACTION BUSPLAN( oBrw, norden ) ;
TOOLTIP "Buscar" ;
PROMPT "&Buscar"

RETURN NIL

//----------------------------------------------------------//
STATIC FUNCTION Nueava( oBrw, lNuevo )
//----------------------------------------------------------//
#define PANTAVA 6

local oCol2,oCol1
local oCodigo,oPropie,oCbxiden,oNuiden,oDire,ohecta,omts,oConst,oVigen,oAva,oResolu
local oBoton1,oBoton2,oBoton3
LOCAL lSalir1 := .F.
local txbro :=.f.
local vPropie:=space(33)
local videntif:=space(1)
local vNuiden:=0
local vDire:=space(34)
local vhecta:=0
local vmts:=0
local vConst:=0
local vVigen:=space(4)
local vAva:=0
local vResolu:=space(10)
LOCAL mcbxident:={"C","N","X"}
LOCAL lSalir := .F.
LOCAL lSalvar := .F.
LOCAL nRecNo2

DEFAULT lNuevo := .F.

IF lNuevo
GOTO BOTTOM
SKIP
ENDIF
vCodigo:= catastro->codip01
vPropie:= catastro->nomip01
videntif:=catastro->tipip01
vNuiden:=catastro->ideip01
vDire:= catastro->dirip01
vhecta:=catastro->supip01
vmts:=catastro->areip01
vConst:=catastro->Conip01

DEFINE DIALOG oDlg1 RESOURCE PANTAVA of oDlg13

REDEFINE get oCodigo var vCodigo PICTURE "##################" ID 101 OF oDlg1 WHEN lNuevo
REDEFINE say oPropie var vPropie PICTURE "@!" ID 102 OF oDlg1
REDEFINE say oPropie var videntif PICTURE "@!" ID 103 OF oDlg1
REDEFINE say oNuiden var vNuiden PICTURE "99999999999-9" ID 109 OF oDlg1
REDEFINE say oDire var vDire PICTURE "@#" ID 105 OF oDlg1
REDEFINE say ohecta var vhecta PICTURE "9,999,999" ID 106 OF oDlg1
REDEFINE say omts var vmts PICTURE "9,999" ID 107 OF oDlg1
REDEFINE say oConst var vConst PICTURE "999,999" ID 108 OF oDlg1

REDEFINE BTNBMP RESOURCE "nuevo" ID 111 TOOLTIP "NUEVO" OF oDlg1 ;
ACTION INGRE ( vCodigo )

REDEFINE BTNBMP RESOURCE "editar" ID 112 TOOLTIP "EDITAR" OF oDlg1 NOBORDER

REDEFINE BTNBMP RESOURCE "eliminar" ID 113 TOOLTIP "ELIMINAR" OF oDlg1 NOBORDER

REDEFINE BUTTONBMP oBoton3 ID 115 OF oDlg1 ;
ACTION ( lSalir1 := .T. , oDlg1:End() )

dbSelectArea(3)
tempava->(OrdSetFocus("vigiva"))

oBrw3 := TXBrowse():New( oDlg1 )
oBrw3:nMarqueeStyle := MARQSTYLE_HIGHLROW
oBrw3:nColDividerStyle := LINESTYLE_BLACK
oBrw3:lColDividerComplete := .t.


oBrw3:SetRDD()
oBrw3:CreateFromResource( 104 )

oCol1 := oBrw3:AddCol()
oCol1:bStrData := { || _FIELD->CODIP02}
oCol1:cHeader := "Código Catastral"
oCol1:nHeadStrAlign := AL_CENTER
oCol1:nDataStrAlign := AL_LEFT
oCol1:nWidth := 130

oCol1 := oBrw3:AddCol()
oCol1:bStrData := { || _FIELD->VIGIP02}
oCol1:cHeader := "Vigencia"
oCol1:nHeadStrAlign := AL_CENTER
oCol1:nDataStrAlign := AL_CENTER
oCol1:nWidth := 100

oCol1:= oBrw3:AddCol()
oCol1:bStrData := { || transform(_FIELD->AVAIP02,"999,999,999")}
oCol1:cHeader := "Avaluo Catastral"
oCol1:nHeadStrAlign := AL_CENTER
oCol1:nDataStrAlign := AL_RIGHT
oCol1:nWidth := 100

oDlg1:oClient := oBrw3
oBrw3:Refresh() // Repintamos el ListBox

oBrw3:DelCol(3)
oBrw3:DelCol(2)
oBrw3:DelCol(1)



ACTIVATE DIALOG oDlg1 CENTER

IF lSalir1
Return Nil
endif

RETURN( NIL )

Image

Posted: Sat Feb 02, 2008 8:22 pm
by Antonio Linares
John,

Justo despues de esta línea:

oCol:bStrData := { || _FIELD->CODIP01}

LLama a:

MsgInfo( _FIELD->CODIP01 )

a ver que valor muestra

Posted: Sun Feb 03, 2008 12:50 am
by Armando
Jairo:

Creo que hace falta ver en que areas estan abiertas la DBF, según tu código la última DBF abierta es CATASTRO y al parece el campo CODIP01 no existe en la DBF CATASTRO


Code: Select all

dbSelectArea(2) 

oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW 
oBrw:nColDividerStyle := LINESTYLE_BLACK 
oBrw:nRowDividerStyle := LINESTYLE_BLACK 
oBrw:lColDividerComplete := .t. 
oBrw:SetRDD() 

oBrw:bClrStd := {|| {CLR_BLACK, iif( Field->color1, CLR_WHITE, CLR_HCYAN ) } } 
oBrw:CreateFromResource( 101 ) 

oCol := oBrw:AddCol() 
oCol:bStrData := { || _FIELD->CODIP01} 
Saludos

Posted: Tue Feb 05, 2008 3:51 pm
by JHON JAIRO VALENCIA DIAZ
:oops: yo realice lo que uted me dijo Antonio, cuando abro el primer formulario de txbrowse me sale la ventana de mensaje con el primer registro mostrado en el mensaje, le doy aceptar al mensaje y me sale el formulario TXBROWSE; hay selecciono cualquier registro y me muestra el segundo formulario con los datos del registro seleccionado en el primer formulario, luego abro un segundo archivo que me muestra unos datos adicionales, despues de esto me sale el mensaje de error, pero del primer formulario. cuando le quito la rutina que me abre el segundo archivo no me muestra ningun error; el campo codip01 existe en el archivo de catastro.

Posted: Tue Feb 05, 2008 9:58 pm
by Antonio Linares
No estarás cerrando la DBF ó cambiando de area de trabajo ?

Posted: Wed Feb 06, 2008 3:43 pm
by JHON JAIRO VALENCIA DIAZ
Claro que si Antonio, en el primer formulario habro el area de trabajo de 2 que es catastro, luego traslado _ de ese registro selecionado a una variable auxiliar que es la que muestra en el segundo formulario, despues de esto abro otra area de trabajo la 3.
Hay es donde esta el problema, cuando abro el area de trabajo 3, me da un error en el primer formulario.

Posted: Thu Feb 07, 2008 9:49 am
by RenOmaS
Tienes que cambiar la definiciones de las columnas y hacer referencia al area de trabajo al que pertenecen _

oCol:bStrData := { || Catastro->CODIP01}

Esto, porque al momento de refrescar el primer browse, el area de trabajo actual "tempava" no tiene el campo CODP01

Salu2

Posted: Tue Feb 12, 2008 3:15 pm
by JHON JAIRO VALENCIA DIAZ
:lol: Gracias RenOmaS funcionó lo que nos dijiste.



Jhon.