ayuda urgente, para abrir archivo con nombre guardado en otr

Post Reply
norte_67
Posts: 46
Joined: Mon Jul 31, 2006 7:02 pm

ayuda urgente, para abrir archivo con nombre guardado en otr

Post by norte_67 »

Saludos amigos, les reitero esta pregunta con este problema que me esta
volviendo loco, el tema es el siguiente.

1) trabajo con FW 2.4, blinker 4.0, clipper 5.2.

el asunto es que tengo varias bases o tablas con datos, que son:

NOMBRE ARCHIVO CAMPOS
B_Empresa.dbf --- numero(1N), nombre
B_Area.Dbf --- numero(2N), nombre
B_Contrato --- numero(3N), nombre

TABLA.DBF --- EMPRESA(n1) ,AREA(N2), CONTRATO(n3), BASE (8c)

el tema es que realizo lo siguiente

1 CREA PROYECTO, ME SALE BIEN
2 PROY2(), ME PASA DATOS BIEN DE UN ARCHIVO TEMPORAL AL ARCHIVO QUE SE CREA POR LA SUMAS DE LOS

CAMPOS DE LA OPCION 1.
3. PROY3(), ACA ESTA EL PROBLEMA ME SALE EL ERROR QUE SE MENCIONA AL FINAL Y EN LE FONDO ES QUE

CUANDO VOY AL ARCHIVO TABLA, Y ESCOJO EL CAMPO QUE TIENE EL CONTENIDO P123, Y CON EL QUIERO ABRIR
ESTE ARCHIVO QUE SE CREO EN EL PUNTO 1, ME SALE ESTO.

Application
===========
Path and name: C:\EAA\GESTION.dwd
Size: 0 bytes
Max files handles permited: ( SetHandleCount() ) 100
Error ocurred at: 07/01/2008, 17:56:46
Error description: Error _DBFCDX/1020 Data type error: P010

Stack Calls
===========
Called from LOCKERRHAN(0)
Called from (b)INITHANDL$(0)
Called from DBUSEAREA(0)
Called from NET_USE(74)
Called from X_ASOCIA01(6409)
Called from (b)PROY03(6359)
Called from TSBROWSE:LDBLCLICK(4266)
Called from TSBROWSE:HANDLEEVEN(0)
Called from TSBROWSE:HANDLEEVEN(8604)
Called from DIALOGBOX(0)
Called from TDIALOG:ACTIVATE(0)
Called from PROY03(6387)
Called from (b)BUILDMENU(164)
Called from TMENU:COMMAND(0)
Called from TMDIFRAME:COMMAND(0)
Called from TMDIFRAME:COMMAND(0)
Called from TMDIFRAME:HANDLEEVEN(0)
Called from WINRUN(0)
Called from TMDIFRAME:ACTIVATE(0)
Called from MAIN(121)

System
======
CPU type: 486
Hardware memory: 16128 (15 megas)

Free System resources: % 90
GDI resources: % 90
User resources: % 90

Windows and MsDos versions: 3.95, 5. 0
Windows total applications running: 3
1 Explorer.EXE
2 medcx.exe
3 C:\WINDOWS\SYSTEM32\USER.EXE
4 C:\EAA\GESTION.DLL
5 C:\EAA\GESTION.dwd
6 C:\CLIPPER5\WORKSHOP\WORKSHOP.EXE
7 C:\CLIPPER5\WORKSHOP\WORKED3.DLL
8 C:\WINDOWS\SYSTEM32\MMSYSTEM.DLL
9 C:\WINDOWS\SYSTEM32\WOWEXEC.EXE

Variables in use
================
Procedure Type Value
==========================
LOCKERRHAN
Param 1: O Class: ERROR
Param 2: B { || ... } CodeBlock
(b)INITHANDL$
Param 1: O Class: ERROR
DBUSEAREA
Param 1: L .F.
Param 2: U
Param 3: C "P010"
Param 4: U
Param 5: L .F.
Param 6: L .F.
NET_USE
Param 1: C "P010"
Param 2: L .T.
Param 3: N 1
Local 1: U
Local 2: U
Local 3: U
X_ASOCIA01
Param 1: O Class: TSBROWSE
Local 1: U
Local 2: U
Local 3: U
Local 4: U
Local 5: U
Local 6: U
Local 7: U
Local 8: U
Local 9: U
Local 10: U
Local 11: U
Local 12: U
Local 13: U
Local 14: U
Local 15: U
Local 16: U
Local 17: U
Local 18: U
Local 19: U
Local 20: U
Local 21: U
Local 22: U
Local 23: U
Local 24: U
Local 25: U
Local 26: U
Local 27: U
Local 28: U
Local 29: C "P010"
(b)PROY03
Param 1: N 57
Param 2: N 299
Param 3: N 1



ACA VAN LOS PROCESOS...


Function CREA_PROY(cRut_Emp,cCod_Area,cRut_Con,cMandante,cEmpresa,cContrato)
Local cDbf,aDbf
Local cRDD :=RddSetDefault()

cDbf:=" "
aDbf := { {'Rut_Emp' ,'C',12,0},;
{'Rut_Con' ,'C',12,0},;
{'Cod_Area' ,'C',20,0},;
{'Rut_Tra' ,'C',12,0},;
{'Cod_Ane' ,'C',20,0},;
{'Tip_Mov' ,'N',01,0} }

Select 1
Seek cRut_Emp
if found()
cMandante:= "P"+Alltrim(Str(B_Emp->Numero)) // SI NUMERO = 0, ENTONCES MANDANTE = P0
endif

Select 2
Seek cCod_Area
if found()
cContrato:= Alltrim(Str(B_Area->Numero)) // SI NUMERO = 1, ENTONCE CONTRATO = 1
endif

Select 3
Seek cRut_Con
if found()
cEmpresa:= Alltrim(Str(B_Cont->Numero)) // SI CONTRATO = 0, ENTONCES EMPRESA = 0
endif

cDbf:=ALLTRIM(cMandante+cEmpresa+cContrato) // ENTONCES CDBF = "P010"

SELECT 90 // ESTO MANEJA TABLA
SEEK cDbf
If found()
MsgStop( "Este levantamiento ya existe... Verifique" )
Else
Append Blank
Replace Tabla->Base with cDbf
Replace Tabla->Rut_Emp with cRut_Emp
Replace Tabla->Rut_Con with cRut_Con
Replace Tabla->Cod_Area with cCod_Area

DbCreate( cDbf, aDbf, cRdd ) // ESTE PROCESO SE REALIZA BIEN, ES DECIR
Endif // ME CREA BIEN EL ARCHIVO P123.DBF

Return Nil


ahora si este archivo P123.dbf, le guardo datos, me los almacena bien, es decir si

Function Proy02()
Local oDlg02
Local Cod_Suma,N,oLbx0
Local oSay,oFte03,oFte04,oFte05,oEstado,cEstado
Local oBoton1,oBoton2,oBoton3
Local cBoton1,cBoton2,cBoton3
close database

N := 0

Select 50
N := 1
Do While .t.
ARCHI = "TEM_ASO" + StrZero(N,1)
If net_use(ARCHI,.T.,1)
zap
exit
Else
N++
IF N > 5
RETURN
ENDIF
Endif
Enddo

Select 80
Do While .T.
If NET_USE("His_Tra",.F.,1)
Set Index TO His_Tra1
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 01
Do While .T.
If NET_USE("B_Emp",.F.,1)
Set Index TO B_Emp1,B_Emp2
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 02
Do While .T.
If NET_USE("B_Area",.F.,1)
Set Index TO B_Area3, B_Area2
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 04
Do While .T.
If NET_USE("B_Trab",.F.,1)
Set Index to B_Trab1,B_Trab2
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 03
Do While .T.
If NET_USE("B_Cont",.F.,1)
Set Index TO B_Cont1,B_Cont2
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 90
Do While .T.
If NET_USE("Tabla",.F.,1)
Set Index TO Tabla
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

DEFINE FONT oFte03 NAME "Arial" SIZE 0,-14
Define Font oFte04 Name "Arial" Size 0,-12 Bold
Define Font oFte05 Name "Arial" Size 0,-14 Bold

DEFINE DIALOG oDlg02 RESOURCE "BROWSE02" TITLE "Ingreso de Trabajadores Asociados a Proyecto"

Font oFte05

Redefine BtnBmp oBot1 Id 1001 Resource "BTO_PRINT" Of oDlg02;
ACTION (PRINT_EMPRESA(cRut_Emp,cNom_Emp,mArchi,MENSAJE) );
Message "Ingresa Nuevo Registro"

Redefine BtnBmp oBot3 Id 1002 Resource "B_SALIR01" Of oDlg02;
Action (oLbx0:Refresh(),oDlg02:End());
NoBorder;
Message "Salida"

Select 90
go top
Set Relation to Tabla->Rut_Emp into B_Emp, Tabla->Rut_Con into B_Cont, Tabla->Cod_Area into

B_Area
Redefine Browse oLbx0 Id 1000 Of oDlg02 FONT oFte04;
ON LEFT DBLCLICK (xAsocia01(oLbx0,Archi), oLbx0:Refresh());
COLORS RGB(64,0,128), RGB(170,230,250),rgb(0,0,255), Rgb(117,208,181)

Add Column To Browse oLbx0 Data B_Emp->Nom_Emp;
Head "E.Mandante";
Width 200 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx0 Data B_Cont->Nom_Con;
Head "Contratista";
PICTURE "!!!!!!!!!!!!!!!!!!!!!!!!!";
Width 200 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx0 Data B_Area->Nom_Area;
Head "Proyecto/Contrato";
Width 200 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx0 Data Tabla->Base;
Head "Base";
Width 100 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

oLbx0:nLineStyle := 4
oLbx0:nHeightCell += 6
oLbx0:nHeightHead += 6
oLbx0:GoTop()

Activate Dialog oDlg02 Centered
close database
Return Nil

Function XASOCIA01(oLbx0,Archi)
Local oDlg01
Local Cod_Suma,N
Local oSay,oFont1,oFont2,oFuente
Local oRut_Emp ,cRut_Emp ,oNom_Emp ,cNom_Emp
Local oRut_Con ,cRut_Con ,oNom_Con ,cNom_Con
Local oCod_Area,cCod_Area,oNom_Area,cNom_Area,cFte_Area
Local oBoton1,oBoton2,oBoton3
Local cBoton1,cBoton2,cBoton3
Local cFecha,olbx1,Base

cFecha:=date()
Base:=" "
Base:=Tabla->Base // ACA SE BUSCA EL NOMBRE DEL ARCHIVO

DEFINE FONT oFont1 NAME "Arial" SIZE 0,-12 Bold
Define Font oFont2 Name "Aria" Size 0,-11 Bold

DEFINE DIALOG oDlg01 RESOURCE "ASOCIA01" TITLE "Asociacion de Trabajadores.."+;
ALLTRIM(B_Emp->Nom_Emp)+" / "+ALLTRIM(B_Cont->Nom_Con)+" / "+ ALLTRIM(B_Area->Nom_Area)+" --

"+ ALLTRIM(Base)

Select 50
For i = 1 to 200
append blank
Replace (Archi)->item with I
Next i

go top
Set Relation to (archi)->rut_tra into B_Trab

Redefine Browse oLbx1 Id 1000 Of oDlg01;
ON LEFT DBLCLICK (ITEMS_TRAB(OlBX1,Archi,cFecha),oLbx1:Refresh());
UPDATE ;
FONT oFont1;
COLORS RGB(64,0,128), RGB(170,230,250),rgb(0,0,0), Rgb(200,255,200);
CELLED

Add Column To Browse oLbx1 Data (Archi)->Item;
Head "Item" Width 50 Align 2,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx1;
DATA FieldWBlock("Rut_Tra",Select(Archi));
EDITABLE;
3DLOOK TRUE MOVE DT_MOVE_RIGHT;
PICTURE "!!!!!!!!-!";
Head "Trabajador" Width 90 Align 0,1;
COLORS nRgb(0,0,0),nRgb(160,235,170);
Post Edit( ITEMS_TRAB(oLbx1,Archi,cFecha),oLbx1:Refresh())

Add Column To Browse oLbx1 Data (Archi)->Nom_Tra;
Head "Nombre" Width 350 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx1;
DATA FieldWBlock("Fin_Tra",Select(Archi));
EDITABLE;
3DLOOK TRUE MOVE DT_MOVE_DOWN;
Head "F.Ingreso" Width 80 Align 2,1;
COLORS nRgb(0,0,0),nRgb(160,235,170)

oLbx1:SetColor( { 13, 14 }, { CLR_WHITE, CLR_3 } )
oLbx1:nLineStyle := 4 //1 normal, 2 filas sin linea, 3 columnas sin linea
oLbx1:nHeightCell += 6 // altura de las filas
oLbx1:nHeightHead += 6 // altura titulos
oLbx1:ChangeFont( oFont2,,2 ) // ( oFont, nCol, nLevel )

REDEFINE Button oBoton1 Var cBoton1 Id 801 Of oDlg01 ;
ACTION (GRA_PROYECTO(Archi,Base),oDlg01:End() )

REDEFINE Button oBoton2 Var cBoton2 Id 802 Of oDlg01 Cancel;
ACTION oDlg01:End()

Activate Dialog oDlg01 Centered
Select 50
zap
RETURN(Nil)


FUNCTION GRA_PROYECTO(Archi,Base) // SE DA LA ORDEN DE GUARDAR LOS DATOS EN ESTE ARCHIVO
Local xBase
xBase:=" "

SELECT 91
Do While .t.
xARCHI = ALLTRIM(BASE)
If net_use(xARCHI,.T.,1)
Index on (xArchi)->rut_tra to (xArchi)
exit
Endif
Enddo

SELECT 50
GO TOP
DO WHILE .NOT. EOF()
if !empty((Archi)->Rut_Tra)
SELECT 91
APPEND BLANK
replace (xArchi)->Rut_Emp with Tabla->Rut_Emp
replace (xArchi)->Cod_Area with Tabla->Cod_Area
replace (xArchi)->Rut_Con with Tabla->Rut_Con
replace (xArchi)->Fin_Pro with (Archi)->Fin_tra
replace (xArchi)->Rut_Tra with (Archi)->Rut_Tra
replace (xArchi)->Nom_Tra with (Archi)->Nom_Tra
endif
Select 50
skip
ENDDO
Select 90
go top
RETURN NIL


PERO EL ASUNTO MALO ESTA POR ACA


Function Proy03()
Local oDlg02
Local Cod_Suma,N,oLbx0
Local oSay,oFte03,oFte04,oFte05,oEstado,cEstado
Local oBoton1,oBoton2,oBoton3
Local cBoton1,cBoton2,cBoton3
Local xBase
xBase:=" "
close database

N := 0

Select 80
Do While .T.
If NET_USE("His_Tra",.F.,1)
Set Index TO His_Tra1
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 01
Do While .T.
If NET_USE("B_Emp",.F.,1)
Set Index TO B_Emp1,B_Emp2
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 02
Do While .T.
If NET_USE("B_Area",.F.,1)
Set Index TO B_Area3, B_Area2
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 04
Do While .T.
If NET_USE("B_Trab",.F.,1)
Set Index to B_Trab1,B_Trab2
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 03
Do While .T.
If NET_USE("B_Cont",.F.,1)
Set Index TO B_Cont1,B_Cont2
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

Select 90
Do While .T.
If NET_USE("Tabla",.F.,1)
Set Index TO Tabla
Set Order to 1
Exit
Else
ESTADO_DBF()
RETURN
Endif
Enddo

DEFINE FONT oFte03 NAME "Arial" SIZE 0,-14
Define Font oFte04 Name "Arial" Size 0,-12 Bold
Define Font oFte05 Name "Arial" Size 0,-14 Bold

DEFINE DIALOG oDlg02 RESOURCE "BROWSE02" TITLE "Ingreso de Trabajadores Asociados a Proyecto"

Font oFte05

Redefine BtnBmp oBot1 Id 1001 Resource "BTO_PRINT" Of oDlg02;
ACTION (PRINT_EMPRESA(cRut_Emp,cNom_Emp,mArchi,MENSAJE) );
Message "Ingresa Nuevo Registro"

Redefine BtnBmp oBot3 Id 1002 Resource "B_SALIR01" Of oDlg02;
Action (oLbx0:Refresh(),oDlg02:End());
NoBorder;
Message "Salida"

Select 90
go top
Set Relation to Tabla->Rut_Emp into B_Emp, Tabla->Rut_Con into B_Cont, Tabla->Cod_Area into

B_Area
Redefine Browse oLbx0 Id 1000 Of oDlg02 FONT oFte04;
ON LEFT DBLCLICK (x_Asocia01(oLbx0), oLbx0:Refresh());
COLORS RGB(64,0,128), RGB(170,230,250),rgb(0,0,255), Rgb(117,208,181)

Add Column To Browse oLbx0 Data B_Emp->Nom_Emp;
Head "E.Mandante";
Width 200 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx0 Data B_Cont->Nom_Con;
Head "Contratista";
PICTURE "!!!!!!!!!!!!!!!!!!!!!!!!!";
Width 200 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx0 Data B_Area->Nom_Area;
Head "Proyecto/Contrato";
Width 200 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx0 Data Tabla->Base;
Head "Base";
Width 100 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

oLbx0:nLineStyle := 4
oLbx0:nHeightCell += 6
oLbx0:nHeightHead += 6
oLbx0:GoTop()

Activate Dialog oDlg02 Centered
close database
Return Nil


Function X_ASOCIA01(oLbx0)
Local oDlg01
Local Cod_Suma,N
Local oSay,oFont1,oFont2,oFuente
Local oRut_Emp ,cRut_Emp ,oNom_Emp ,cNom_Emp
Local oRut_Con ,cRut_Con ,oNom_Con ,cNom_Con
Local oCod_Area,cCod_Area,oNom_Area,cNom_Area,cFte_Area
Local oBoton1,oBoton2,oBoton3
Local cBoton1,cBoton2,cBoton3
Local cFecha,olbx1,Base

Base:=" "
Base:=Tabla->Base

SELECT 91
Do While .t.
BASE = ALLTRIM(BASE)
If net_use(BASE,.T.,1)
Index on (BASE)->rut_tra to (BASE)
exit
Endif
Enddo

DEFINE FONT oFont1 NAME "Arial" SIZE 0,-12 Bold
Define Font oFont2 Name "Aria" Size 0,-11 Bold

DEFINE DIALOG oDlg01 RESOURCE "ASOCIA01" TITLE "Asociacion de Trabajadores.."+;
ALLTRIM(B_Emp->Nom_Emp)+" / "+ALLTRIM(B_Cont->Nom_Con)+" / "+ ALLTRIM(B_Area->Nom_Area)+" --

"+;
ALLTRIM(Base)

Select 91
go top
Set Relation to (archi)->rut_tra into B_Trab

Redefine Browse oLbx1 Id 1000 Of oDlg01;
ON LEFT DBLCLICK (ITEMS_TRAB(OlBX1,Archi,cFecha),oLbx1:Refresh());
UPDATE ;
FONT oFont1;
COLORS RGB(64,0,128), RGB(170,230,250),rgb(0,0,0), Rgb(200,255,200);
CELLED

Add Column To Browse oLbx1 Data (Archi)->Item;
Head "Item" Width 50 Align 2,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx1;
DATA FieldWBlock("Rut_Tra",Select(Archi));
EDITABLE;
3DLOOK TRUE MOVE DT_MOVE_RIGHT;
PICTURE "!!!!!!!!-!";
Head "Trabajador" Width 90 Align 0,1;
COLORS nRgb(0,0,0),nRgb(160,235,170);
Post Edit( ITEMS_TRAB(oLbx1,Archi,cFecha),oLbx1:Refresh())

Add Column To Browse oLbx1 Data (Archi)->Nom_Tra;
Head "Nombre" Width 350 Align 0,1;
COLORS RGB(0,0,255),RGB(255,255,224)

Add Column To Browse oLbx1;
DATA FieldWBlock("Fin_Tra",Select(Archi));
EDITABLE;
3DLOOK TRUE MOVE DT_MOVE_DOWN;
Head "F.Ingreso" Width 80 Align 2,1;
COLORS nRgb(0,0,0),nRgb(160,235,170)

oLbx1:SetColor( { 13, 14 }, { CLR_WHITE, CLR_3 } )
oLbx1:nLineStyle := 4 //1 normal, 2 filas sin linea, 3 columnas sin linea
oLbx1:nHeightCell += 6 // altura de las filas
oLbx1:nHeightHead += 6 // altura titulos
oLbx1:ChangeFont( oFont2,,2 ) // ( oFont, nCol, nLevel )

REDEFINE Button oBoton1 Var cBoton1 Id 801 Of oDlg01 ;
ACTION (GRA_PROYECTO(Archi,Base),oDlg01:End() )

REDEFINE Button oBoton2 Var cBoton2 Id 802 Of oDlg01 Cancel;
ACTION oDlg01:End()

Activate Dialog oDlg01 Centered
Select 50
zap
RETURN(Nil)
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Post by ADBLANCO »

Hola, revisa que indices te está tratando de abrir, Pareciera que intenta abrir una tabla con el indice de otra.


(tirandola a pegar!!)


Angel
Post Reply