Hola !
Muy interesante !
Como se puede ver una demo o un instructivo, asi como los costos de bbj.
Saludos.
--
Has recibido este mensaje porque estás suscrito al grupo "MundoBBx" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a mundobbx+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Hola eso es P ro5 solamente?
0010 rem 10"ED630.www""6.3A*6""Ficha de Contactos ""CEMS, Aug, 31/2016
0020 begin ; setesc 9910; seterr 9330; call "^OFSET",1,"ED??",C$,N$,FID0$,OPER
0030 gosub 9010
0100 rem ^100
0110 rem "Verifica por la variable del formulario CONFIG
0120 call "^GETENV.TCP","config",CONFIG$,SINFONIX_ERROR$
0130 if CONFIG$="" then goto 0320
0140 let CONFIG$=ath(CONFIG$,err=0320)
0150 rem
0160 rem "Determina si el programa regresa
0170 let TEMP=dec(CONFIG$(1,4)),CGI_BIN$=CONFIG$(5,TEMP),CONFIG$=CONFIG$(5+TEM
0170:P)
0180 if CGI_BIN$<>"ED630.www" then goto 0320
0190 rem
0200 rem "Codigo del registro a actualizar
0210 let TEMP=dec(CONFIG$(1,4)),K0$=CONFIG$(5,TEMP),CONFIG$=CONFIG$(5+TEMP)
0220 goto 5010
0300 rem ^100
0310 rem "Verifica por la variable del Sistema QUERY_STRING
0320 call "^GETENV.TCP","query_string",QUERY_STRING$,SINFONIX_ERROR$
0330 let QUERY_STRING$=QUERY_STRING$+" "
0340 rem
0350 rem "cgi-bin
0360 let TEMP=pos(" "=QUERY_STRING$); if TEMP=0 then goto 0600
0370 let CGI_BIN$=QUERY_STRING$(1,TEMP-1),QUERY_STRING$=QUERY_STRING$(TEMP+1)
0380 if CGI_BIN$<>pgm(-1) then goto 0600
0390 rem
0400 rem "Codigo del Registro a ACTUALIZAR
0410 let TEMP=pos(" "=QUERY_STRING$); if TEMP=0 then goto 0600
0420 let SQL$=QUERY_STRING$(1,TEMP-1),QUERY_STRING$=QUERY_STRING$(TEMP+1)
0430 rem
0440 rem "Pagina a CARGAR
0450 let TEMP=pos(" "=QUERY_STRING$); if TEMP=0 then goto 0600
0460 let PAGE$=QUERY_STRING$(1,TEMP-1),QUERY_STRING$=QUERY_STRING$(TEMP+1)
0470 rem
0480 rem "Verifica la accion a realizar (Preview | Edit | .. )
0490 let TEMP=pos(" "=QUERY_STRING$); if TEMP=0 then goto 0600
0500 let ACTION$=QUERY_STRING$(1,TEMP-1),QUERY_STRING$=QUERY_STRING$(TEMP+1)
0510 let ACTION$=cvs(ACTION$,4)
0520 rem
0600 rem ^100
0610 gosub 8100
0620 if PAGE$="" then let PAGE$="0"; rem "Pagina por DEFAULT
0630 if cvs(ACTION$,4)="PREVIEW" then goto 8410
0700 rem ^100,2
0702 rem "Carga los Datos en Memoria
1000 rem 1000
1010 rem "Despliega el Registro en HTML
1020 let FUNTION=1; goto 1040
1030 let FUNTION=2
1040 call "^LHTML.TCP","ED63"+PAGE$,FUNTION,REMPLACE$,CONFIG_TCP$,ORG_REMPLACE
1040:$
1050 if FUNTION=0 then goto 9910
1060 if REMPLACE$="$KEY$" then let TEMP$=hta(K0$); goto 2330
1070 if REMPLACE$="$SITUACION$" then let TEMP$="53"; call "^TBLH.TCP",TEMP$,"K
1070:=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(1,1)+$00$; goto 2330
1080 if REMPLACE$="$DEFECHA$" then let TEMP=dec(R0$(2,3)); gosub 2510; goto 23
1080:30
1090 if REMPLACE$="$CLASIFICACION$" then let TEMP$="54",Z$=$00$; for Z=0 to 5;
1090: let Z$=Z$+str(dec(R0$(5+Z*2,2)))+$00$; next Z; call "^TBLH.TCP",TEMP$,"K
1090:=01,08,C R=01,30,D ","",0,"","SELECT"+Z$; goto 2330
1100 if REMPLACE$="$TIPO_PERSONA$" then let TEMP$="56"; call "^TBLH.TCP",TEMP$
1100:,"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(17,1)+$00$; goto 2330
1110 if REMPLACE$="$NOMBRE$" then let TEMP$=R0$(18,60); goto 2330
1120 if REMPLACE$="$TITULO$" then let TEMP$=R0$(78,60); goto 2330
1130 if REMPLACE$="$RIF$" then let TEMP$=R0$(138,15); goto 2330
1200 rem ^100
1210 rem "Datos de Telefonos
1220 if pos("$TLF_"=REMPLACE$)<>1 then goto 1310
1230 if TLF_NEXT$=CONFIG_TCP$(9,8) then goto 1250
1240 let TLF_NEXT$=CONFIG_TCP$(9,8)
1250 let N=(dec(TLF_NEXT$(7,2))-dec(TLF_NEXT$(5,2)))*21
1260 if REMPLACE$="$TLF_TITULO$" then let TEMP$="66T"; call "^TBLH.TCP",TEMP$,
1260:"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(748+N,1)+$00$; goto 2330
1270 if REMPLACE$="$TLF_DATA$" then let TEMP$=cvs(R0$(749+N,20),3); goto 2330
1280 goto 2320
1300 rem ^100
1310 rem "Datos de eMails & wSite
1320 if pos("$MAIL_"=REMPLACE$)<>1 then goto 1410
1330 if MAIL_NEXT$=CONFIG_TCP$(9,8) then goto 1350
1340 let MAIL_NEXT$=CONFIG_TCP$(9,8)
1350 let N=(dec(MAIL_NEXT$(7,2))-dec(MAIL_NEXT$(5,2)))*61
1360 if REMPLACE$="$MAIL_TITULO$" then let TEMP$="66E"; call "^TBLH.TCP",TEMP$
1360:,"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(958+N,1)+$00$; goto 233
1360:0
1370 if REMPLACE$="$MAIL_DATA$" then let TEMP$=cvs(R0$(959+N,60),3); goto 2330
1380 goto 2320
1400 rem ^100
1410 rem "Datos de Direcciones Postales
1420 if pos("$DIR_"=REMPLACE$)<>1 then goto 1610
1430 if DIR_NEXT$=CONFIG_TCP$(9,8) then goto 1450
1440 let DIR_NEXT$=CONFIG_TCP$(9,8)
1450 let N=(dec(DIR_NEXT$(7,2))-dec(DIR_NEXT$(5,2)))*119
1460 if REMPLACE$="$DIR_TITULO$" then let TEMP$="66D"; call "^TBLH.TCP",TEMP$,
1460:"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(153+N,1)+$00$; goto 2330
1470 if REMPLACE$="$DIR_DATA$" then let TEMP$=cvs(R0$(154+N,110),3); goto 2330
1480 if REMPLACE$="$DIR_KEY$" then let TEMP$=hta(cvs(R0$(264+N,8),3)); goto 23
1480:30
1490 if REMPLACE$="$DIR_ZP$" then let Z$=R0$(264+N,8); gosub 2910; goto 2330
1500 goto 2320
1600 rem ^100
1610 rem "Personas de Contacto
1620 if pos("$PER_"=REMPLACE$)<>1 then goto 2010
1700 rem ^100
1710 rem "Telefonos de la Persona de Contacto
1720 if pos("$PER_TLF_"=REMPLACE$)<>1 then goto 1800
1730 if PER_TLF_NEXT$=CONFIG_TCP$(9,8) then goto 1750
1740 let PER_TLF_NEXT$=CONFIG_TCP$(9,8)
1750 let N=(dec(PER_TLF_NEXT$(7,2))-dec(PER_TLF_NEXT$(5,2)))*21
1760 if REMPLACE$="$PER_TLF_TITULO$" then let TEMP$="66T"; call "^TBLH.TCP",TE
1760:MP$,"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+PER_R$(748+N,1)+$00$; go
1760:to 2330
1770 if REMPLACE$="$PER_TLF_DATA$" then let TEMP$=cvs(PER_R$(749+N,20),3); got
1770:o 2330
1780 goto 2320
1800 rem ^100
1810 rem "eMail & wPage de la Persona de Contacto
1820 if pos("$PER_MAIL_"=REMPLACE$)<>1 then goto 1900
1830 if PER_MAIL_NEXT$=CONFIG_TCP$(9,8) then goto 1850
1840 let PER_MAIL_NEXT$=CONFIG_TCP$(9,8)
1850 let N=(dec(PER_MAIL_NEXT$(7,2))-dec(PER_MAIL_NEXT$(5,2)))*61
1860 if REMPLACE$="$PER_MAIL_TITULO$" then let TEMP$="66E"; call "^TBLH.TCP",T
1860:EMP$,"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+PER_R$(958+N,1)+$00$; g
1860:oto 2330
1870 if REMPLACE$="$PER_MAIL_DATA$" then let TEMP$=cvs(PER_R$(959+N,60),3); go
1870:to 2330
1880 goto 2320
1900 rem ^100
1910 rem "Nombre de la Persona de Contacto
1920 if PER_NEXT$=CONFIG_TCP$(9,8) then goto 1940
1930 let PER_NEXT$=CONFIG_TCP$(9,8)
1940 let N=(dec(PER_NEXT$(7,2))-dec(PER_NEXT$(5,2)))*63
1950 let X$=R0$(1568+N,3); gosub 2810; let PER_K$=X$,PER_R$=Y$
1960 if REMPLACE$="$PER_DATA$" then let TEMP$=cvs(PER_R$(18,60),3); goto 2330
1970 if REMPLACE$="$PER_KEY$" then let TEMP$=hta(R0$(1568+N,3)); goto 2330
1980 if REMPLACE$="$PER_OBS$" then let TEMP$=cvs(R0$(1571+N,60),3); goto 2330
1990 goto 2320
2000 rem ^100
2010 rem "Enpresas Relacionadas
2020 if pos("$EMP_"=REMPLACE$)<>1 then goto 2110
2030 if EMP_NEXT$=CONFIG_TCP$(9,8) then goto 1940
2040 let EMP_NEXT$=CONFIG_TCP$(9,8)
2050 let N=(dec(EMP_NEXT$(7,2))-dec(EMP_NEXT$(5,2)))*63
2060 if REMPLACE$="$EMP_DATA$" then let TEMP$=R0$(2198+N,3); gosub 2810; goto
2060:2330
2070 if REMPLACE$="$EMP_KEY$" then let TEMP$=hta(R0$(2198+N,3)); goto 2330
2080 if REMPLACE$="$EMP_OBS$" then let TEMP$=cvs(R0$(2201+N,60),3); goto 2330
2090 goto 2320
2100 rem ^100
2110 rem "Datos Adicionales
2120 if REMPLACE$<>"$ADICIONAL?$" then goto 2160
2130 let TEMP$="0"
2140 find record(1,key="82"+bin(100,2)+bin(1,2),dom=2150); let TEMP$="1"
2150 goto 2330
2160 if pos("$REF_"=REMPLACE$)=1 then call "ED110.7.www",0,100,R0$(ADICIONAL),
2160:REMPLACE$,TEMP$,CONFIG_TCP$,""; goto 2330
2200 rem ^100
2210 if REMPLACE$="$IMAGE$" then call "^IMAGE.www",-1,hta(K0$),TEMP$; goto 233
2210:0
2220 if REMPLACE$="$CONFIG$" then gosub 2720; goto 2330
2230 goto 2320
2300 rem ^100
2310 let TEMP$="<% NOT CONVERT %>"+TEMP$; goto 2330
2320 let TEMP$=""
2330 let REMPLACE$=TEMP$
2340 goto 1030
2400 rem ^100
2410 let TEMP=pos(".CHECKED="=REMPLACE$)+9; if TEMP=9 then return
2420 let TEMP$=REMPLACE$(TEMP,pos("$"=REMPLACE$(TEMP)+"$")-1)
2430 if TEMP$=Z$ then let TEMP$=TEMP$+""" checked """
2440 return
2500 rem ^100
2510 rem "Calcula la fecha en formato gregoriano
2520 if TEMP=0 then let TEMP=F0
2530 call "^DATE",1,TEMP,0,TEMP$
2540 return
2600 rem ^100
2610 rem "Da formato a campos numericos
2620 if TEMP then let TEMP$=str(TEMP:TEMP$) else let TEMP$=""
2630 return
2700 rem ^100
2710 rem "Actualiza la variable del formulario CONFIG
2720 let TEMP$=""
2730 let Z$="ED630.www",TEMP=len(Z$),TEMP$=TEMP$+bin(TEMP,4)+Z$
2740 let TEMP=len(K0$),TEMP$=TEMP$+bin(TEMP,4)+K0$
2750 let TEMP$=hta(TEMP$)
2760 return
2800 rem ^100
2810 rem "Lee el registro de: Persona de Contacto o Empresa Relacionada
2820 if dec(X$) then read record(3,key=X$,dom=2830)Y$; goto 2850
2830 let Y$=fid(3),Y$=fill(dec(Y$(7,2)),$00$),Y$(1,4)="A"+bin(F0,3),Y$(17,136)
2830:="",Y$(153,119*5)=R66D$,Y$(748,21*10)=R66T$,Y$(958,61*10)=R66E$
2840 let X$=fill(3,$00$)
2850 rem
2860 let TEMP$=cvs(Y$(18,60),3)
2870 return
2900 rem ^100
2910 rem "Lee el registro de: Zona Postal
2920 let Z$="70"+cvs(Z$,2)+"?",TEMP$=""
2930 if len(Z$)>3 then let Z$=Z$(1,len(Z$)-1); find record(FILES+1,dom=2930,ke
2930:y=Z$)ZZ$; let Y$=cvs(ZZ$(1,60),3); if pos(ZZ$(78,1)="E") or pos(cvs(Y$,4)
2930:=cvs(TEMP$,4))=0 then let TEMP$=TEMP$+", "+fnTITLE$(ZZ$) fi; goto 2930
2940 if TEMP$>"" then let TEMP$=TEMP$(3)
2950 return
5000 rem 5000
5010 rem "Actualiza la Base de Datos
5020 call "^GETENV.TCP","button",BUTTON$,SINFONIX_ERROR$,"UNSPACE"
5030 gosub 8100
5040 rem
5050 if BUTTON$<>"Acepta" then goto 7810
5100 rem ^100
5110 rem "Valida los Datos del Contacto
5120 rem
5130 rem "Clasificacion (Clientes, Proveedores, Contactos, Empresas...)
5140 call "^GETENV.TCP","Clasificacion",TEMP$,SINFONIX_ERROR$,"UNSPACE"
5150 let K54$="",TEMP$=TEMP$+$0D0A$
5160 let Z=pos($0D0A$=TEMP$),Z$=TEMP$(1,Z-1),TEMP$=TEMP$(Z+2)
5170 let K54$=K54$+bin(num(ath(Z$)),2)
5180 if TEMP$>"" then goto 5160
5190 if K54$="" then let ERROR$=ERROR$+"Debe Seleccionar al Menos una Clasific
5190:acion<BR>"
5200 if len(K54$)>12 then let ERROR$=ERROR$+"El Maximo de clasificacion es de
5200:6<BR>"
5210 let W0$(5,12)=K54$+fill(12,$00$)
5220 rem
5230 rem "Tipo de Persona (1=Natural, 2=Juridica, 3=Entidad Publica)
5240 call "^GETENV.TCP","Tipo_Persona",TEMP$,SINFONIX_ERROR$,"UNSPACE"
5250 let K56$=ath(TEMP$)
5260 if K56$="" then let ERROR$=ERROR$+"Debe Seleccionar el Tipo de Persona<BR
5260:>"
5270 let W0$(17,1)=K56$
5280 let Z$="56"+K56$; gosub 9710; let R56$=Z$
5290 rem
5300 call "^GETENV.TCP","Nombre",TEMP$,SINFONIX_ERROR$,"UNSPACE"
5310 if TEMP$="" then let ERROR$=ERROR$+"debe indicar el Nombre (o Razon Socia
5310:l) del Contacto (o Entidad)<BR>"
5320 if len(TEMP$)>60 then let ERROR$=ERROR$+"el largo maximo del Nombre del C
5320:ontacto es de 60 caracteres<BR>"
5330 let W0$(18,60)=TEMP$
5340 rem
5350 call "^GETENV.TCP","Titulo",TEMP$,SINFONIX_ERROR$,"UNSPACE"
5360 if TEMP$="" then let ERROR$=ERROR$+"debe indicar un Titulo y/o Actividad
5360:que describa al Contacto<BR>"
5370 if len(TEMP$)>60 then let ERROR$=ERROR$+"el largo maximo del Titulo y/o A
5370:ctividad es de 60 caracteres<BR>"
5380 let W0$(78,60)=TEMP$
5390 rem
5400 call "^GETENV.TCP","RIF",RIF$,SINFONIX_ERROR$,"UNSPACE"
5410 if RIF$="" then goto 5490
5420 let TEMP$=cvs(RIF$,4)
5430 if pos(TEMP$(1,1)=R56$(31,5))=0 then let TEMP$=R56$(31,1)+TEMP$
5440 let PREF$=TEMP$(1,1); gosub 8310; if TEMP=0 then goto 5490
5450 if pos("."=R56$(31,30)) then let F=1000000 else let F=1
5460 let RIF$=PREF$+"-"+cvs(str(-abs(TEMP)/F:cvs(R56$(36,15),3)),3)
5470 let W0$(138,15)=RIF$
5480 goto 5500
5490 let ERROR$=ERROR$+"debe indicar un numero de RIF<BR>"
5500 if len(RIF$)>15 then let ERROR$=ERROR$+"el largo maximo del Numero de RIF
5500: es de 15 Caracteres<BR>"
5600 rem ^100
5610 rem "Numeros Telefonicos
5620 let TLF$=""; for ROWS=1 to 10; let XERROR$=""
5630 rem
5640 rem "Titulo del Telefono 1=Oficina, 2=Fax, 4=Celular...
5650 call "^GETENV.TCP","TLF_Titulo"+str(ROWS),TITLE$,SINFONIX_ERROR$,"UNSPACE
5650:"
5660 let TITLE$=ath(TITLE$)
5670 rem
5680 rem "Numero de Telefono: +58 (0212) 765 43 21
5690 call "^GETENV.TCP","TLF_Data"+str(ROWS),DATA$,SINFONIX_ERROR$,"UNSPACE"
5700 rem
5710 rem "Status de la Linea: "DELETE"=elimina sino: "(none)"=no Elimina
5720 call "^GETENV.TCP","TLF_Status"+str(ROWS),ST$,SINFONIX_ERROR$,"UNSPACE"
5730 rem
5740 if ST$="DELETE" or DATA$="" then goto 5790
5750 let Z$="66T"+TITLE$; gosub 9710; if pos(" "<>Z$)=0 then let XERROR$=XERRO
5750:R$+"Debe Indicar un titulo para el Telefono<BR>"
5760 if len(DATA$)>20 then let XERROR$=XERROR$+"El Largo Maximo para el Telefo
5760:no es de 20 Caracteres<BR>"
5770 let TITLE$=TITLE$+fill(1),DATA$=DATA$+fill(20)
5780 let TLF$=TLF$+TITLE$(1,1)+DATA$(1,20)
5790 rem
5800 if XERROR$>"" then let XERROR$="ERROR en la Linea "+str(ROWS)+" (Telefono
5800:s)<BR>"+XERROR$+"<BR>"
5810 let ERROR$=ERROR$+XERROR$
5820 next ROWS
5830 let W0$(748,210)=TLF$+fill(210)
5900 rem ^100
5910 rem "eMail & wSite
5920 let EMAIL$=""; for ROWS=1 to 10; let XERROR$=""
5930 rem
5940 rem "Titulo del eMail & wSite 1=eMail, 2=WebSite...
5950 call "^GETENV.TCP","MAIL_Titulo"+str(ROWS),TITLE$,SINFONIX_ERROR$,"UNSPAC
5950:E"
5960 let TITLE$=ath(TITLE$)
5970 rem
5980 rem "Codigo de eMail o wSite: cor...@gmail.com | www.gmail.com
5990 call "^GETENV.TCP","MAIL_Data"+str(ROWS),DATA$,SINFONIX_ERROR$,"UNSPACE"
6000 rem
6010 rem "Status de la Linea: "DELETE"=elimina sino: "(none)"=no Elimina
6020 call "^GETENV.TCP","MAIL_Status"+str(ROWS),ST$,SINFONIX_ERROR$,"UNSPACE"
6030 rem
6040 if ST$="DELETE" or DATA$="" then goto 6120
6050 let Z$="66E"+TITLE$; gosub 9710; if pos(" "<>Z$)=0 then let XERROR$=XERRO
6050:R$+"Debe Indicar un titulo para el eMail o wSite<BR>"
6060 if len(DATA$)>60 then let XERROR$=XERROR$+"El Largo Maximo para el eMail
6060:o wSite es de 60 Caracteres<BR>"
6070 let Z=2; if pos("EMAIL"=Z$(31,30)) then let Z=pos("@"=DATA$)
6080 let X=pos("."=DATA$,-1); if X then let X=len(DATA$(1+X))
6090 if Z<2 or X<2 or X>6 then let XERROR$=XERROR$+"el eMail o wSite no es Val
6090:ido<BR>"
6100 let TITLE$=TITLE$+fill(1),DATA$=DATA$+fill(60)
6110 let EMAIL$=EMAIL$+TITLE$(1,1)+DATA$(1,60)
6120 rem
6130 if XERROR$>"" then let XERROR$="ERROR en la Linea "+str(ROWS)+" (eMail &
6130:wSite)<BR>"+XERROR$+"<BR>"
6140 let ERROR$=ERROR$+XERROR$
6150 next ROWS
6160 let W0$(958,610)=EMAIL$+fill(610)
6200 rem ^100
6210 rem "Direcciones Postales
6220 let DIR$=""; for ROWS=1 to 5; let XERROR$=""
6230 rem
6240 rem "Titulo de la Direccion 1=Oficina, 2=Casa, 4=Habitacion...
6250 call "^GETENV.TCP","DIR_Titulo"+str(ROWS),TITLE$,SINFONIX_ERROR$,"UNSPACE
6250:"
6260 let TITLE$=ath(TITLE$)
6270 rem
6280 rem "Direccion: Avenida, Calle, Edificio, Piso, Oficina
6290 call "^GETENV.TCP","DIR_Data"+str(ROWS),DATA$,SINFONIX_ERROR$,"UNSPACE"
6300 rem
6310 rem "Zona Postal: Urbanizacion, Ciudad, Estado, Pais...
6320 call "^GETENV.TCP","DIR_Key"+str(ROWS),KEY$,SINFONIX_ERROR$,"UNSPACE"
6330 let KEY$=ath(KEY$)
6340 rem
6350 rem "Status de la Linea: "DELETE"=elimina, "(none)"=NO Elimina
6360 call "^GETENV.TCP","DIR_Status"+str(ROWS),ST$,SINFONIX_ERROR$,"UNSPACE"
6370 rem
6380 if ST$="DELETE" or (DATA$="" and KEY$="") then goto 6440
6390 let Z$="66D"+TITLE$; gosub 9710; if pos(" "<>Z$)=0 then let XERROR$=XERRO
6390:R$+"Debe Indicar un titulo para la Direccion<BR>"
6400 if DATA$="" then let XERROR$=XERROR$+"Debe Indicar la Avenida, Calle, Edi
6400:ficion...<BR>"
6410 if len(DATA$)>110 then let XERROR$=XERROR$+"El Largo Maximo para la Direc
6410:cion es de 110 Caracteres<BR>"
6420 let TITLE$=TITLE$+fill(1),DATA$=DATA$+fill(110),KEY$=KEY$+fill(8)
6430 let DIR$=DIR$+TITLE$(1,1)+DATA$(1,110)+KEY$(1,8)
6440 rem
6450 if XERROR$>"" then let XERROR$="ERROR en la Linea "+str(ROWS)+" (Direccio
6450:nes Postales)<BR>"+XERROR$+"<BR>"
6460 let ERROR$=ERROR$+XERROR$
6470 next ROWS
6480 let W0$(153,595)=DIR$+fill(595)
6500 rem ^100
6510 rem "Personas de Contacto
6520 let ITEM$="PER",ITEM_TITLE$="Personas de Contacto",WRITE=0; gosub 7200
6600 rem ^100
6610 rem "Empresas Relaciondas
6620 let ITEM$="EMP",ITEM_TITLE$="Empresas Relaciondas",WRITE=0; gosub 7200
6700 rem ^100
6710 rem "Valida los Campos Adicionales del CONTACTO
6720 let RECORD$=W0$(ADICIONAL)
6730 call "ED110.7.www",0,100,RECORD$,"WRITE!","","",ERROR$
6740 let W0$(ADICIONAL)=RECORD$
6750 rem
6760 rem "Valida si coloco una IMAGEN AL PRODUCTO
6770 call "^IMAGE.www",0,hta(K0$),"file_image",ERROR$
6780 rem
6790 if ERROR$>"" then goto 8410
6800 rem ^100
6810 rem "la informacion registrada en el formulario es VALIDA!
6900 rem ^100
6910 rem "Actualiza las Personas de Contacto
6920 let ITEM$="PER",ITEM_TITLE$="Personas de Contacto",WRITE=1; gosub 7200
6930 let W0$(1568,630)=ITEM_DATA$+fill(630)
7000 rem ^100
7010 rem "Actualiza las Empresas Relaciondas
7020 let ITEM$="EMP",ITEM_TITLE$="Empresas Relaciondas",WRITE=1; gosub 7200
7030 let W0$(2198,630)=ITEM_DATA$+fill(630)
7040 rem
7050 rem "Actualiza los datos del Contacto
7060 if K0$(1,3)<>$000000$ then goto 7080
7070 extract record(3,key="")Z$; let K0$(1,3)=Z$(29,3),Z$(29,3)=bin(dec($00$+Z
7070:$(29,3))+1,3); write record(3)Z$; find record(3,key=K0$(1,3),dom=7080); g
7070:oto 7070
7080 call "RC110.REC",0,3,K0$(1,3),W0$; write record(3,key=K0$(1,3))W0$
7090 call "^INDS",3,K0$,R0$,W0$,SORT$,PHONETIC$,PHONETIC_TABLE$
7100 rem
7110 rem "Actualiza si coloco una IMAGEN AL PRODUCTO
7120 call "^IMAGE.www",1,hta(K0$),"file_image",ERROR$
7130 rem
7140 let MESSAGE$="las modificaciones efectuadas al Contacto "+W0$(18,60)+"<BR
7140:>han sido realizadas"
7150 goto 8510
7200 rem ^100
7210 rem "Personas de Contacto (o Empresas Relacionadas)
7220 let ITEM_DATA$=""; for ROWS=1 to 10; let XERROR$="",ROWS$=""
7230 rem
7240 rem "Nombre (o Razon Social) del Contacto (o Entidad)
7250 call "^GETENV.TCP",ITEM$+"_Data"+str(ROWS),DATA$,SINFONIX_ERROR$,"UNSPACE
7250:"
7260 let ROWS$=ROWS$+crc(DATA$)
7270 rem
7280 rem "Codigo del Registro Interno (CRI)
7290 call "^GETENV.TCP",ITEM$+"_Key"+str(ROWS),KEY$,SINFONIX_ERROR$,"UNSPACE"
7300 let KEY$=ath(KEY$)
7310 let ROWS$=ROWS$+crc(KEY$)
7320 rem
7330 rem "Titulo y/o Actividad que Describa al Contacto (o Entidad)
7340 call "^GETENV.TCP",ITEM$+"_Obs"+str(ROWS),OBS$,SINFONIX_ERROR$,"UNSPACE"
7350 let ROWS$=ROWS$+crc(OBS$)
7360 rem
7370 rem "Status de la Linea: "DELETE"=elimina, "(none)"=NO Elimina
7380 call "^GETENV.TCP",ITEM$+"_Status"+str(ROWS),ST$,SINFONIX_ERROR$,"UNSPACE
7380:"
7390 rem
7400 if ST$="DELETE" then let ROWS$=""
7410 if DATA$="" then let XERROR$=XERROR$+"Debe Indicar un Nommbre para la "+I
7410:TEM_TITLE$+"<BR>"
7420 if len(DATA$)>60 then let XERROR$=XERROR$+"El Largo Maximo del Nommbre pa
7420:ra la "+ITEM_TITLE$+" se de 60 Caracteres<BR>"
7430 if len(OBS$)>60 then let ERROR$=ERROR$+"el largo maximo del Titulo y/o Ac
7430:tividad es de 60 caracteres<BR>"
7440 rem
7450 if XERROR$>"" then let XERROR$=XERROR$+"ERROR en la Linea "+str(ROWS)+" (
7450:"+ITEM_TITLE$+")<BR>"+XERROR$
7460 if WRITE=0 then goto 7500
7470 rem
7480 if pos($00$<>ROWS$) then gosub 7610
7490 rem
7500 if pos($00$<>ROWS$) then let ERROR$=ERROR$+XERROR$
7510 rem
7520 let KEY$=KEY$+$000000$
7530 let Z$=KEY$(1,3)+OBS$+fill(63); let ITEM_DATA$=ITEM_DATA$+Z$(1,63)
7540 rem
7550 next ROWS
7560 return
7600 rem ^100
7610 rem "Actualiza las Personas de Contactos o Empresas Relacionadas
7620 if dec(KEY$) then extract record(3,dom=7630,key=KEY$)Z0$; goto 7680
7630 let Z0$=fid(3),Z0$=fill(dec(Z0$(7,2)),$00$),Z0$(1,4)="A"+bin(F0,3),Z0$(17
7630:,136)="",Z0$(153,119*5)=R66D$,Z0$(748,21*10)=R66T$,Z0$(958,61*10)=R66E$
7640 let KEY$=fill(3,$00$)
7650 if ITEM$="PER" then let Z=91,Z$="1" else let Z=92,Z$="2"
7660 let Z0$(5,2)=bin(Z,2); rem "Persona de Contacto=91 / Empresa Relacionada=
7660:92
7670 let Z0$(17,1)=Z$; rem "Persona Natural = 1 / Persona Juridica =
7670: 2
7680 let Z1$=Z0$
7690 let Z1$(18,60)=DATA$; rem "Nombre (o Razon Social) del Contacto (o Entida
7690:d)
7700 let Z1$(78,60)=OBS$; rem "Titulo o Actividad del Contacto (o Entidad)
7710 rem
7720 rem "Actualiza los datos del Contacto
7730 if KEY$(1,3)<>$000000$ then goto 7750
7740 extract record(3,key="")Z$; let KEY$(1,3)=Z$(29,3),Z$(29,3)=bin(dec($00$+
7740:Z$(29,3))+1,3); write record(3)Z$; find record(3,key=KEY$(1,3),dom=7750);
7740: goto 7740
7750 call "RC110.REC",0,3,KEY$(1,3),Z1$; write record(3,key=KEY$(1,3))Z1$
7760 call "^INDS",3,KEY$,Z0$,Z1$,SORT$,PHONETIC$,PHONETIC_TABLE$
7770 return
7800 rem ^100
7810 rem "Elimina el Registro
7820 if BUTTON$<>"Elimina" then goto 7910
7830 let ERROR$="No esta permitido la Eliminacion de Contactos"
7840 goto 8410
7850 let MESSAGE$="la eliminacion del Contacto "+W0$(18,60)+"<BR>han sido real
7850:izadas"
7860 goto 8510
7900 rem ^100
7910 rem "Nuevo Documento
7920 if BUTTON$<>"Nuevo" then goto 8010
7930 let ERROR$=""
7940 goto 8510
8000 rem ^100
8010 rem "Boton no definido
8020 let ERROR$="no esta definido el valor para la variable: ""button$"""
8030 goto 8410
8100 rem ^100
8110 rem "Lee el registro a actualizar
8120 gosub 8230
8130 call "^NEXT",2,4,"75FICHA"+str(dec(S0$(CLIENTE,1)):"00"),$00$,S0$(2,pos("
8130: "<>S0$(2,8),-1)),0,"",0,dec(S0$(1,1))
8140 if dec(K0$) then extract record(3,dom=8150,key=K0$)R0$; goto 8170
8150 let R0$=fid(3),R0$=fill(dec(R0$(7,2)),$00$),R0$(1,4)="A"+bin(F0,3),R0$(17
8150:,136)="",R0$(153,119*5)=R66D$,R0$(748,21*10)=R66T$,R0$(958,61*10)=R66E$,R
8150:0$(2900,10)=CTRL$
8160 let K0$=fill(3,$00$)
8170 let N0=dec(K0$)
8180 if N0 and BUTTON$<>"Nuevo" then call "^NEXT",3,4,"75FICHA"+str(dec(S0$(CL
8180:IENTE,1)):"00"),$00$,S0$(2,pos(" "<>S0$(2,8),-1)),0,"",N0,dec(S0$(1,1))
8190 let K0$=bin(N0,3)
8200 let W0$=R0$,OLD_K0$=K0$
8210 return
8220 rem
8230 rem "Seleccion del Tipo de Registro
8240 let SQL$=ath(SQL$,err=8250)
8250 if K0$="" then let K0$=fill(3,$00$),K0$(1)=SQL$+K0$
8260 return
8270 rem "8000
8280 rem "Convierte un STRING de Bs. a NUMERICO
8290 let Z$="$(,.)"; goto 8330
8300 rem
8310 rem "Convierte un STRING en NUMERICO
8320 let Z$=""
8330 let CONVERT_NUM=0,TEMP=pos("."=TEMP$,-1),SIGN=1; if pos("-"=TEMP$) or pos
8330:("("=TEMP$) then let SIGN=-1
8340 let Z=max(pos("0">TEMP$),pos("9"<TEMP$)); if Z then if Z$="" or pos(TEMP$
8340:(Z,1)=Z$) then let CONVERT$=CONVERT$+TEMP$(Z,1),TEMP$=TEMP$(1,Z-1)+TEMP$(
8340:Z+1); if Z<TEMP then let TEMP=TEMP-1 fi; goto 8340
8350 if TEMP then let TEMP$=TEMP$(1,TEMP-1)+"."+TEMP$(TEMP)
8360 let TEMP=num(TEMP$,err=8370)*SIGN,TEMP$=str(TEMP),CONVERT_NUM=1
8370 return
8400 rem ^100
8410 let MESSAGE$="Error en los datos del formulario, revise los siguientes ca
8410:mpos:"
8420 goto 8560
8500 rem ^100
8510 if BUTTON$="Acepta" then let Z$="top.window.Link.document.forms[0].codigo
8510:.value="""+cvs(W0$(1,8),2)+""";" else let Z$=""
8520 let JAVASCRIPT$="<% NOT CONVERT %>"+Z$+"top.window.Link.location.href=""/
8520:cgi-bin/sinfonix.pl?"" + sii_system + ""%20ED630.www"
8530 call "^GETENV.TCP","PreView",PREVIEW$,SINFONIX_ERROR$,"UNSPACE"
8540 if RETURN$="ON" or (PREVIEW$>"" and PREVIEW$<>"OFF") then let JAVASCRIPT$
8540:=JAVASCRIPT$+"%20"+hta(K0$); if PREVIEW$>"" and PREVIEW$<>"OFF" then let
8540:JAVASCRIPT$=JAVASCRIPT$+"%20preview"
8550 let JAVASCRIPT$=JAVASCRIPT$+""";"
8560 run "stdio_form"
8570 rem
9000 rem 9000"DEFINITION SECTION
9010 let M$="-####,###,###.00",SORT$=bin(51,1),PHONETIC$="ED",CLIENTE=32
9020 let TITLE$=" RREG MMun pParr "
9030 rem
9040 find record(FILES+1,key="EDCTL"+FID0$)I0$; let I0$=I0$+bin(0,1)+bin(2,1)
9050 find record(FILES+3,key="")S0$; let ADICIONAL=3000
9060 rem
9070 rem "Verifica si usa el sistema RECOLECTOR
9080 let RCFILES=160,RECOLECT$="NO"; call "^OFSET",RCFILES+1,"RC??( 1)"; read
9080:record(RCFILES+1,key="",err=9100)RCS0$; let RECOLECT$="YES"
9090 let OPER=dec(RCS0$(1,2))*1000+OPER
9100 rem
9110 let X$="66T",X=21,R66T$=fill(X*10),Z$=R66T$; gosub 9170; let R66T$=Z$
9120 let X$="66E",X=61,R66E$=fill(X*10),Z$=R66E$; gosub 9170; let R66E$=Z$
9130 let X$="66D",X=119,R66D$=fill(X*5),Z$=R66D$; gosub 9170; let R66D$=Z$
9140 let CTRL$=fill(10),F0$=day; call "^DATE",2,num(F0$(1,2)+F0$(4,2)+F0$(7)),
9140:F0,F0$; let F1=F0,CTRL$(1)=FID0$,CTRL$(4)=bin(OPER,2)+bin(F0,3)+bin(int(t
9140:im*100),2)
9150 let Z$=fid(EDFILES+3),XED_R3$=fill(dec(Z$(7,2)),$00$),XED_R3$(1,4)="A"+bi
9150:n(F0,3),XED_R3$(17,136)="",XED_R3$(153,119*5)=R66D$,XED_R3$(748,21*10)=R6
9150:6T$,XED_R3$(958,61*10)=R66E$,XED_R3$(1568,63*20)=fill(63*20,$000000$+fill
9150:(60)),XED_R3$(2900,20)=CTRL$+CTRL$
9160 return
9170 let Z=1; read record(1,key=X$,dom=9180)
9180 if Z<len(Z$) then let K$=key(1,end=9190); if pos(X$=K$)=1 then read recor
9180:d(1)R$; if pos("DEFAULT"=R$(31)) then let Z$(Z,1)=K$(4,1),Z=Z+X; goto 918
9180:0
9190 return
9300 rem 9300"ROUTINE PROGRAM
9310 rem
9320 rem "ERROR I/O FILE
9330 call "^IOERR",err,tcb(5),"ED630.www"; retry
9400 rem 9400"EDIT DISPLAY MASK
9410 call "^MASK",9440; escape
9420 rem "DISPLAY MASK
9430 return
9440 rem
9700 rem 9700"READ TABLE
9710 let Z$=cvs(Z$,3); find record(EDFILES+1,key=Z$,dom=9720)Z$; return
9720 dim Z$(100); return
9730 def fnSEEK$(KEY$,FILE_ID$)=fnBIT$(KEY$,FILE_ID$,$FF$,len(KEY$))
9740 def fnBIT$(KEY$,FILE_ID$,MOST$,LENGTH)=KEY$(1,LENGTH-1)+chr(max(asc(KEY$(
9740:LENGTH)),1)-1)+MOST$(1,sgn(max(asc(FILE_ID$(2))-LENGTH,0)))
9750 def fnTITLE$(ZZ$)=cvs(cvs(TITLE$(1+max(1,pos(ZZ$(78,1)=TITLE$,10)),9),3)+
9750:" "+ZZ$(1,60),3)
9800 rem 9800"EDIT ERROR
9810 print (0,err=9810)'RB',; return
9900 rem 9900"END OF PROGRAM
9910 seterr 9920; exit
9920 release
9930 if TEMP$>"" then goto 5160
<html><head><title>Contactos</title><!--sii.load jqm_header --><div data-role="page" id="ED630"><div data-role="header" data-position="fixed" data-tap-toggle="false" data-theme="b"><a href="#MenuPanel" data-icon="bars" data-iconpos="notext">Menú</a><h1>Contactos</h1><a href="#" data-icon="search" data-iconpos="notext" class="ui-btn-right" title="Busquedas de Contactos" onclick="jQuery('#search_contact_form').toggle();jQuery('#search_contact_input').focus();">Search</a><form id="search_contact_form" style="display:none"><input id="search_contact_input" data-type="search" placeholder="Busqueda de Contactos (o Entidades)" data-theme="a"></form></div><!-- /header --><div data-role="main" id="single-Main" class="ui-content"><ul id="search_contact_id" data-role="listview" data-filter="true" data-inset="true" data-input="#search_contact_input" data-sii-pgm="ED63F.sql 1,editContact" data-theme="a" data-mini="true" ></ul></div><!-- /main --><div id="MenuPanel" data-role="panel" data-position-fixed="true" data-display="reveal"><ul data-role="listview" style="padding-right:10px"><li data-icon="back" data-theme="b"><a href="#" data-rel="close">Menú</a></li><li><a href="javascript:editContact('0')" data-transition="flip">Nuevo Contacto</a></li><li><a href="#IN492_RES">Configuracion</a></li><li><a href="#IN492_ACT">Actualización</a></li></ul></div><!-- /panel --></div><!-- page ED630 --><!--sii.load jqm_footer --></html>
<div data-role="page" id="ED631"><form action="/cgi-bin/sinfonix.pl?$sii.system$%20ED630.www" method="POST" enctype="multipart/form-data" name="myForm" target="connect9">
<div data-role="header" data-position="fixed" data-tap-toggle="false" data-theme="b">
<a data-icon="back" data-iconpos="notext" class="ui-btn-left" title="Volver Atrás" data-rel="back">Config</a><h1><div id="titleContact" class="editContact" style="display:none"></div><div class="editContact">Contactos</div></h1><a data-icon="edit" data-iconpos="notext" class="ui-btn-right" title="Editar Contacto" onclick="toggle_input_disabled();">Help</a></div><!-- /header --><div data-role="main" id="edit-Main" class="ui-content"><table border="0" width="100%" cellspacing="0" cellpadding="0"><tr><td width="5%" nowrap><a href="javascript:photo('Photo',myForm.Nombre.value);" class="input"><img id="Photo" src="$image$" title="Haz Click en la imagen para cambiarla" align="absbottom" border="0" width="67" height="67"></a> </td><td width="95%"><fieldset data-role="controlgroup"><select size="1" name="Clasificacion" data-mini="true" data-native-menu="false" multiple="multiple" class="input_select"><option>$Clasificacion$</option></select><select size="1" name="Tipo_Persona" data-mini="true" data-native-menu="false"><option>$Tipo_Persona$</option></select></fieldset></td></tr></table><input name="Nombre" value="$Nombre$" placeholder="Nombre (o Razon Social) del Contacto (o Entidad)" class="input"><input name="Titulo" value="$Titulo$" placeholder="Titulo y/o Actividad que describa al Contacto (o Entidad)" class="input"><input name="RIF" value="$RIF$" placeholder="Numero de Cedula o RIF" class="input"><div data-role="collapsibleset"><div data-role="collapsible"><h2>Teléfonos</h2><div class="ui-grid-a"><!--sii.for 10 --><div class="ui-block-a TLF$sii.next$" style="height:32px;width:30%;display:none"><select name="TLF_Titulo$sii.next$" size="1" data-mini="true" data-iconpos="none" data-native-menu="false" class="input"><option>$TLF_Titulo$</option></select></div><div class="ui-block-b TLF$sii.next$" style="height:32px;width:56%;display:none"><input name="TLF_Data$sii.next$" value="$TLF_Data$" placeholder="Numero Telefonico" data-mini="true" type="tel" class="input"></div><div class="ui-block-c TLF$sii.next$" style="height:32px;width:14%;display:none"><button onclick="DATA_InsDel('TLF','$sii.next$',10);return false" name="TLF_Icon$sii.next$" class="ui-btn ui-shadow ui-corner-all ui-btn-icon-notext ui-btn-inline ui-icon-minus input" data-mini="true">icon</button><input name="TLF_Status$sii.next$" value="" type="hidden" class="input"></div><!--sii.next --><div class="ui-block-a TLF" style="height:15px"></div></div><!-- /grid-a --></div><div data-role="collapsible"><h2><i>e</i>Mail & <i>w</i>Site</h2><div class="ui-grid-a"><!--sii.for 10 --><div class="ui-block-a MAIL$sii.next$" style="height:32px;width:30%;display:none"><select name="MAIL_Titulo$sii.next$" size="1" data-mini="true" data-iconpos="none" data-native-menu="false"><option>$MAIL_Titulo$</option></select></div><div class="ui-block-b MAIL$sii.next$" style="height:32px;width:56%;display:none"><input name="MAIL_Data$sii.next$" value="$MAIL_Data$" placeholder="eMail o Pagina Web" data-mini="true" type="email" class="input"></div><div class="ui-block-c MAIL$sii.next$" style="height:32px;width:14%;display:none"><button onclick="DATA_InsDel('MAIL','$sii.next$',10);return false" name="MAIL_Icon$sii.next$" class="ui-btn ui-shadow ui-corner-all ui-btn-icon-notext ui-btn-inline ui-icon-minus input" data-mini="true">icon</button><input name="MAIL_Status$sii.next$" value="" type="hidden" class="input"></div><!--sii.next --><div class="ui-block-a MAIL" style="height:13px"></div></div><!-- /grid-a --></div><div data-role="collapsible"><h2>Direcciones Postales</h2><div class="ui-grid-a"><!--sii.for 5 --><div class="ui-block-a DIR$sii.next$" style="height:32px;width:30%;display:none"><select name="DIR_Titulo$sii.next$" size="1" data-mini="true" data-iconpos="none" data-native-menu="false"><option>$DIR_Titulo$</option></select></div><div class="ui-block-b DIR$sii.next$" style="px;width:56%;display:none"><textarea name="DIR_Data$sii.next$" data-mini="true" placeholder="Avenida, Calle, Edificio..." class="input">$DIR_Data$</textarea><input name="DIR_Key$sii.next$" value="$DIR_Key$" type="hidden" id="DIR_ZP$sii.next$_Key" class="input"></div><div class="ui-block-c DIR$sii.next$" style="height:32px;width:14%;display:none"><button onclick="javascript:DATA_InsDel('DIR','$sii.next$',5);return false" name="DIR_Icon$sii.next$" class="ui-btn ui-shadow ui-corner-all ui-btn-icon-notext ui-btn-inline ui-icon-minus input" data-mini="true">icon</button><input name="DIR_Status$sii.next$" value="" type="hidden" class="input"></div><div class="ui-block-a DIR$sii.next$" style="height:32px;width:30%;display:none"></div><div class="ui-block-b DIR$sii.next$" style="height:32px;width:56%;display:none;"><input id="DIR_ZP$sii.next$" value="$DIR_ZP$" data-mini="true" data-type="search" placeholder="Urbanizacion, Ciudad, Estado, Pais... (Zona Postal)" class="input"></div><div class="ui-block-a DIR$sii.next$" style="width:100%;display:none;"><ul id="sii_search_ZP$sii.next$" data-role="listview" data-mini="true" data-inset="true" data-filter="true" data-input="#DIR_ZP$sii.next$" data-sii-pgm="ED62Z.sql 70,loadZP"></ul><hr></div><!--sii.next --></div><!-- /grid-a --></div><div data-role="collapsible"><h2>Personas de Contacto</h2><div class="ui-grid-a"><!--sii.for 10 --><div class="ui-block-a PER$sii.next$" style="height:32px;width:86%;display:none"><input name="PER_Data$sii.next$" value="$PER_Data$" data-mini="true" placeholder="Nombre de la Persona de Contacto" id="PER_Data$sii.next$" data-type="search" class="input"><input name="PER_Key$sii.next$" value="$PER_Key$" type="hidden" id="PER_Key$sii.next$_key" class="input"></div><div class="ui-block-b PER$sii.next$" style="height:25px;width:14%;display:none"><button onclick="DATA_InsDel('PER','$sii.next$',10);return false" name="PER_Icon$sii.next$" class="ui-btn ui-shadow ui-corner-all ui-btn-icon-notext ui-btn-inline ui-icon-minus input" data-mini="true">icon</button><input name="PER_Status$sii.next$" value="" type="hidden" class="input"></div><div class="ui-block-a PER$sii.next$" style="width:100%;display:none"><p><ul id="search_contact$sii.next$" data-role="listview" data-mini="true" data-inset="true" data-filter="true" data-input="#PER_Data$sii.next$" data-sii-pgm="ED63F.sql 1,loadContact"></ul></p></div><div class="ui-block-a PER$sii.next$" style="height:45px;width:86%;display:none"><input name="PER_Obs$sii.next$" value="$PER_Obs$" data-mini="true" placeholder="Titulo y/o Activida que describa a la Persona de Contacto" class="input"></div><div class="ui-block-a PER$sii.next$" style="width:100%;display:none;"><!--sii.for 3 --><div class="ui-block-a PER_TLF$sii.next_all$" style="height:32px;width:30%;display:none"><select name="PER_TLF_Titulo$sii.next_all$" size="1" data-mini="true" data-iconpos="none" data-native-menu="false" class="input"><option>$PER_TLF_Titulo$</option></select></div><div class="ui-block-b PER_TLF$sii.next_all$" style="height:32px;width:56%;display:none"><input name="PER_TLF_Data$sii.next_all$" value="$PER_TLF_Data$" placeholder="Numero Telefonico" data-mini="true" type="tel" class="input"></div><div class="ui-block-c PER_TLF$sii.next_all$" style="height:32px;width:14%;display:none"><button onclick="DATA_InsDel('PER_TLF','$sii.next_all$',3);return false" name="PER_TLF_Icon$sii.next_all$" class="ui-btn ui-shadow ui-corner-all ui-btn-icon-notext ui-btn-inline ui-icon-minus input" data-mini="true">icon</button><input name="PER_TLF_Status$sii.next_all$" value="" type="hidden" class="input"></div><!--sii.next --><!--sii.for 2 --><div class="ui-block-a PER_MAIL$sii.next_all$" style="height:32px;width:30%;display:none"><select name="PER_MAIL_Titulo$sii.next_all$" size="1" data-mini="true" data-iconpos="none" data-native-menu="false" class="input"><option>$PER_MAIL_Titulo$</option></select></div><div class="ui-block-b PER_MAIL$sii.next_all$" style="height:32px;width:56%;display:none"><input name="PER_MAIL_Data$sii.next_all$" value="$PER_MAIL_Data$" placeholder="eMail o Pagina Web" data-mini="true" type="email" class="input"></div><div class="ui-block-c PER_MAIL$sii.next_all$" style="height:32px;width:14%;display:none"><button onclick="DATA_InsDel('PER_MAIL','$sii.next_all$',2);return false" name="PER_MAIL_Icon$sii.next_all$" class="ui-btn ui-shadow ui-corner-all ui-btn-icon-notext ui-btn-inline ui-icon-minus input" data-mini="true">icon</button><input name="PER_MAIL_Status$sii.next_all$" value="" type="hidden" class="input"></div><!--sii.next --></div><div class="ui-block-a PER$sii.next$" style="width:100%;display:none;"><BR><hr></div><!--sii.next --></div><!-- /grid-a --></div><div data-role="collapsible"><h2>Empresas Relacionadas</h2><div class="ui-grid-a"><!--sii.for 10 --><div class="ui-block-a EMP$sii.next$" style="height:32px;width:86%;display:none"><input name="EMP_Data$sii.next$" value="$EMP_Data$" data-mini="true" placeholder="Razon Social de la Empresa Relacionada" class="input"><input name="EMP_Key$sii.next$" value="$EMP_Key$" type="hidden" class="input"></div><div class="ui-block-b EMP$sii.next$" style="height:32px;width:14%;display:none"><button onclick="DATA_InsDel('PER','$sii.next$',10);return false" name="EMP_Icon$sii.next$" class="ui-btn ui-shadow ui-corner-all ui-btn-icon-notext ui-btn-inline ui-icon-minus input" data-mini="true">icon</button><input name="EMP_Status$sii.next$" value="" type="hidden" class="input"></div><div class="ui-block-a EMP$sii.next$" style="height:45px;width:86%;display:none"><input name="EMP_Obs$sii.next$" value="$EMP_Obs$" data-mini="true" placeholder="Titulo y/o Activida que describa a la Empresa Relacionada" class="input"></div><!--sii.next --></div><!-- /grid-a --></div><!--sii.if $Adicional?$ --><div data-role="collapsible"><h2>Datos Adicionales</h2><!--sii.for 1 --><div class="ui-field-contain"><label>$ref_item$</label>$ref_data$</div><!--sii.next --></div><!--sii.fi --></div></div><!-- /main --><div id="footer" data-role="footer" data-position="fixed" data-tap-toggle="false" data-theme="b" style="display:none" class="editContact"><div data-role="navbar" data-iconpos="right"><ul><li><input type="button" data-icon="check" onclick="submit_ext('Acepta' );return false" data-iconpos="right" value="Guardar" ></li><li><input type="button" data-icon="delete" onclick="submit_ext('Elimina');return false" data-iconpos="right" value="Eliminar" ></li><!-- <li><a href="#edit2" data-icon="check" onclick="My_Submit('check' )" data-transition="slide">Actualiza</a></li><li><a href="#edit2" data-icon="delete" onclick="My_Submit('delete')" data-transition="flip" > Elimina </a></li> --></ul></div><!-- /navbar --></div><!-- /footer --><input type="hidden" name="button" value=""><input type="hidden" name="config" value="$config$"></form></div><!-- page ED631 -->
Hola !!
Wow !!!
Y como habran hecho para hacer esto...???
Alguna idea, tutorial, etc..??
Muy interesante !
Saludos....
--
Pero eso es cgi y bbx lo tiene de tiempo preteritos, sin desmerecer lo bueno de esto las tecnologías avanzan y bbj solo representa eso un avance de acuerdo a los tiempos.
--
T
Carlos,
Te agradezco tu punto de vista y comprensión.
Saludos cordiales.
IVAN VARGAS
Estimado Carlos
Se agradece enormemente por compartir tu experiencia.
Saludos cordiales
IVAN VARGAS
Hola !
Esto puede ser basado en Vpro5 o solamente con Pro5 ?
Saludos.
Gracias Carlos.
Lamentablemente no uso Pro5.
Precisamente hace mas de 15 años que trabajo con vpro5...uff
Probare.
Muchas gracias.
En Mundo Bbx ?

Jajajajaja
Bien bien
Que nostalgia.
Saludos
IVG


0006 print "Content-type: text/html"0007 print ""0008 print "<pre>"
--
Hola !
Una pregunta:
Por que puerto o 'pipe' es la comunicacion entre browser y pro5 o vpro5 ?
Si es por el 'tcp' me parece que la version de vpro5 1.5 no se puede abrir en puerto tcp en el config.
Saludos.
set OUTPUT_FILE = "&1"
echo "Content-type: text/html" > %OUTPUT_FILE%echo "" > %OUTPUT_FILE%echo "<pre>" > %OUTPUT_FILE%
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, jeh...@gmail.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Gracias por tu respuesta Carlos.
Por favor, cuando puedas, concedeme alguna informacion adicional al respecto.
Saludos.


Como ha evolucionado basis con sus productos desde esa foto del ayer hasta el hoy con sus productos bbj. Tremendo .El 23 de septiembre de 2016, 15:39, Ivan Vargas <vn....@gmail.com> escribió:Jajajajaja
Bien bien
Que nostalgia.Saludos
IVGEl 23/09/2016 15:37, "Fernando Cabrera" <cabreraf...@gmail.com> escribió:Un ejemplo de la modernizacion...Un equipo Basic-Four BBI, de los 70's corriendo BOSS I y BusinessBasic I
Cel: (+52 33)1760-0693Tlajomulco de Zuñiga, Jal.F3rn4nd0 C4br3r4 Ru1z.Lomas del Mirador
Circ. Sierra Santa Barbara Oeste · 608-CEl 22 de septiembre de 2016, 10:37, Fernando Cabrera <cabreraf...@gmail.com> escribió:Gracias Carlos por este esfuerzo que realizas para apoyar a la comunidad.Ya envié mi solicitud.Cel: (+52 33)1760-0693Tlajomulco de Zuñiga, Jal.F3rn4nd0 C4br3r4 Ru1zLomas del Mirador
Circ. Sierra Santa Barbara Oeste · 608-CEl 22 de septiembre de 2016, 10:08, Carlos E. Mendoza S. <inge...@gmail.com> escribió:Gracias Rafael,Me complace saber que no solamente funciona con las herramientas de BASIS Internacional, si no también con otras versiones del lenguajes Basic.Igualmente te invito a que participes en el grupo y hagas tus aportes, y a todos aquellos colegas que de alguna manera consideren poder sacar provecho a esta herramienta.Pronto continuare con el tema desarrollando desde cero y paso a paso la elaboración de un programa bajo este entorno, donde se involucrara código HTML/CSS/JS y por supuesto el lenguaje Basic.Saludos cordiales,Carlos Mendoza.El 22 de septiembre de 2016, 9:22, Rafael Berzunza <rafael....@gmail.com> escribió:Rafael BerzunzaSaludos y mis respetos a todos.Carlos,Mi respeto y admiración por lo que has creado, considero muy valioso tu aporte ya que hice una prueba y tu programa funciona muy bien incluso en PXBasic y Providex, esto mismo puede replicarse en lenguajes Basic similares o bien en python sin tener que sortear los trucos y trampas que las soluciones POO pueden ofrecer; mantener el estilo simple y básico de la programación a nuestro gusto. Por supuesto que para realizar validaciones en "fresco", se requiere utilizar un poco de JS o PHP pero nada que pueda hacer perder el sueño a un intrépido programador. Las validaciones Postmortem vendrán con mayor complejidad en tu código Basic así como las interacciones de base de datos o Archivos. Mi duda sería con los Grids, si alguien pudiese arrojar un poco de luz sobre cómo controlar una grid con validaciones, sería de agradecer.
El 21 de septiembre de 2016, 17:49, Carlos E. Mendoza S. <inge...@gmail.com> escribió:
Estimado Wilton,Lo que propongo es un conjunto de herramientas donde se involucra principalmente el lenguaje de programación de Basis Internacional (y no es precisamente la ultima versión de este), que interactúan entre si para el desarrollo de aplicaciones web, Debido a que es un tema que implica el uso y conocimiento de herramientas externas consideré prudente aislarlo de lo que tiene que ver con la programación en si del lenguaje Basic.Para ello he creado un grupo donde el tema principal a debatir es el ya planteado y trillado tema: "Como desarrollar paginas web con pro5 y Visual/Pro5", también es posible con Bbj.Te invito a que seas el primero en debatir sobre el tema en:
El 21 de septiembre de 2016, 17:43, Wilton Villar <wal...@gmail.com> escribió:En Mundo Bbx ?
El 21 sept. 2016 5:31 PM, "Carlos E. Mendoza S." <inge...@gmail.com> escribió:Estimado WiltonPuedes revisar nuevamente la pagina, ya coloque el script que permite levantar VPro5 desde maquinas con servidores Web en Windows.Saludos cordiales,El 20 de septiembre de 2016, 23:08, shalommen <shal...@gmail.com> escribió:Estimados bbj suple todas estas necesidadesPor el.momento no puedo poner una demo. Pero si puedo decirles que uonpase por toda estas formas y posibilidades y ninguna de compara a la simplicidad eficiencia de b bj.Enviado desde mi smartphone Samsung Galaxy.-------- Mensaje original --------De: Wilton Villar <wal...@gmail.com>Fecha: 20/09/2016 23:52 (GMT-03:00)Para: mund...@googlegroups.comAsunto: Re: [mundobbx:4076] BBJ modernizacionGracias Carlos.
Lamentablemente no uso Pro5.
Precisamente hace mas de 15 años que trabajo con vpro5...uff
Probare.
Muchas gracias.
El 20 sept. 2016 10:48 PM, "Carlos E. Mendoza S." <inge...@gmail.com> escribió:Hola WiltonSi es posible instalarlo en window pero no es tan facil como en linux ya que el manejo de los pipe funciona diferente, yo lo instale en window/XP hace 15 años y utilice perl para crear el cgi que interactuaba con pro5, espero que window haya mejorado al respecto.Saludos.2016-09-20 19:52 GMT-04:30 Wilton Villar <wal...@gmail.com>:Hola !
Esto puede ser basado en Vpro5 o solamente con Pro5 ?
Saludos.
El 20 sept. 2016 8:14 PM, "Ivan Vargas" <vn....@gmail.com> escribió:Estimado Carlos
Se agradece enormemente por compartir tu experiencia.
Saludos cordiales
IVAN VARGAS
El 20/09/2016 21:04, "Carlos E. Mendoza S." <inge...@gmail.com> escribió:lo prometido es deudaEl 19 de septiembre de 2016, 20:29, Pedro del Valle <pvj...@gmail.com> escribió:Estimado CarlosCreo que somos muchos los que estamos atentos y esperando poder aprender esta parte desconocida, al menos para mi.Primero felicitarte por este desarrollo y segundo agradecerte por compartirlo.saludosEl 19 de septiembre de 2016, 21:15, Carlos E. Mendoza S. <inge...@gmail.com> escribió:Estimado Ivan,Cuando coloque esos archivos mi intención no era que comprendieran como interactua todo esto, sino que comprendieran que estaban hechos con pro5, y que si analizaban un poco (tampoco que lo hicieran detenidamente) pues estos correspondían de alguna manera al resultado mostrado en el explorador web.Ya estoy re-escribiendo (nuevamente) el tutorial de como desarrollar aplicaciones web con pro5Tal vez la primera vez no supe explicarlo, espero que esta vez si.Saludos cordiales,Carlos Mendoza2016-09-19 20:02 GMT-04:00 Ivan Vargas <vn....@gmail.com>:Estimado Carlos:te agradecemos que haya compartidos tu experiencias entre datos del ambiente Pro5 vs la interacción con página Web.He revisado detenidamente las líneas de los tres programas que compartiste, pero no logro dimensionar si invoca o no al config.bbx del sistema y como logra levantar o ejecutar una sesión de pro5 desde el ambiente web.Te agradeceríamos si pudiera darnos una visión de como inter-actúa internamente entre el ambiente pro5 y el ambiente web, aunque sea una pincelada.Saludos Cordiales.IVAN VARGAS2016-09-16 16:57 GMT-04:00 Carlos E. Mendoza S. <inge...@gmail.com>:aquí te dejo el fuente para que lo analices.
0010 rem 10"ED630.www""6.3A*6""Ficha de Contactos ""CEMS, Aug, 31/2016
0020 begin ; setesc 9910; seterr 9330; call "^OFSET",1,"ED??",C$,N$,FID0$,OPER
0030 gosub 9010
0100 rem ^100
0110 rem "Verifica por la variable del formulario CONFIG
0120 call "^GETENV.TCP","config",CONFIG$,SINFONIX_ERROR$
0130 if CONFIG$="" then goto 0320
0140 let CONFIG$=ath(CONFIG$,err=0320)
0150 rem
0160 rem "Determina si el programa regresa
0170 let TEMP=dec(CONFIG$(1,4)),CGI_BIN$=CONFIG$(5,TEMP),CONFIG$=CONFIG$(5+TEM
0170:P)
0180 if CGI_BIN$<>"ED630.www" then goto 0320
0190 rem
0200 rem "Codigo del registro a actualizar
0210 let TEMP=dec(CONFIG$(1,4)),K0$=CONFIG$(5,TEMP),CONFIG$=CONFIG$(5+TEMP)
0220 goto 5010
0300 rem ^100
0310 rem "Verifica por la variable del Sistema QUERY_STRING
0320 call "^GETENV.TCP","query_string",QUERY_STRING$,SINFONIX_ERROR$
0330 let QUERY_STRING$=QUERY_STRING$+" "
0340 rem
0350 rem "cgi-bin
0360 let TEMP=pos(" "=QUERY_STRING$); if TEMP=0 then goto 0600
0370 let CGI_BIN$=QUERY_STRING$(1,TEMP-1),QUERY_STRING$=QUERY_STRING$(TEMP+1)
0380 if CGI_BIN$<>pgm(-1) then goto 0600
0390 rem
0400 rem "Codigo del Registro a ACTUALIZAR
0410 let TEMP=pos(" "=QUERY_STRING$); if TEMP=0 then goto 0600
0420 let SQL$=QUERY_STRING$(1,TEMP-1),QUERY_STRING$=QUERY_STRING$(TEMP+1)
0430 rem
0440 rem "Pagina a CARGAR
0450 let TEMP=pos(" "=QUERY_STRING$); if TEMP=0 then goto 0600
0460 let PAGE$=QUERY_STRING$(1,TEMP-1),QUERY_STRING$=QUERY_STRING$(TEMP+1)
0470 rem
0480 rem "Verifica la accion a realizar (Preview | Edit | .. )
0490 let TEMP=pos(" "=QUERY_STRING$); if TEMP=0 then goto 0600
0500 let ACTION$=QUERY_STRING$(1,TEMP-1),QUERY_STRING$=QUERY_STRING$(TEMP+1)
0510 let ACTION$=cvs(ACTION$,4)
0520 rem
0600 rem ^100
0610 gosub 8100
0620 if PAGE$="" then let PAGE$="0"; rem "Pagina por DEFAULT
0630 if cvs(ACTION$,4)="PREVIEW" then goto 8410
0700 rem ^100,2
0702 rem "Carga los Datos en Memoria
1000 rem 1000
1010 rem "Despliega el Registro en HTML
1020 let FUNTION=1; goto 1040
1030 let FUNTION=2
1040 call "^LHTML.TCP","ED63"+PAGE$,FUNTION,REMPLACE$,CONFIG_TCP$,ORG_REMPLACE
1040:$
1050 if FUNTION=0 then goto 9910
1060 if REMPLACE$="$KEY$" then let TEMP$=hta(K0$); goto 2330
1070 if REMPLACE$="$SITUACION$" then let TEMP$="53"; call "^TBLH.TCP",TEMP$,"K
1070:=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(1,1)+$00$; goto 2330
1080 if REMPLACE$="$DEFECHA$" then let TEMP=dec(R0$(2,3)); gosub 2510; goto 23
1080:30
1090 if REMPLACE$="$CLASIFICACION$" then let TEMP$="54",Z$=$00$; for Z=0 to 5;
1090: let Z$=Z$+str(dec(R0$(5+Z*2,2)))+$00$; next Z; call "^TBLH.TCP",TEMP$,"K
1090:=01,08,C R=01,30,D ","",0,"","SELECT"+Z$; goto 2330
1100 if REMPLACE$="$TIPO_PERSONA$" then let TEMP$="56"; call "^TBLH.TCP",TEMP$
1100:,"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(17,1)+$00$; goto 2330
1110 if REMPLACE$="$NOMBRE$" then let TEMP$=R0$(18,60); goto 2330
1120 if REMPLACE$="$TITULO$" then let TEMP$=R0$(78,60); goto 2330
1130 if REMPLACE$="$RIF$" then let TEMP$=R0$(138,15); goto 2330
1200 rem ^100
1210 rem "Datos de Telefonos
1220 if pos("$TLF_"=REMPLACE$)<>1 then goto 1310
1230 if TLF_NEXT$=CONFIG_TCP$(9,8) then goto 1250
1240 let TLF_NEXT$=CONFIG_TCP$(9,8)
1250 let N=(dec(TLF_NEXT$(7,2))-dec(TLF_NEXT$(5,2)))*21
1260 if REMPLACE$="$TLF_TITULO$" then let TEMP$="66T"; call "^TBLH.TCP",TEMP$,
1260:"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(748+N,1)+$00$; goto 2330
1270 if REMPLACE$="$TLF_DATA$" then let TEMP$=cvs(R0$(749+N,20),3); goto 2330
1280 goto 2320
1300 rem ^100
1310 rem "Datos de eMails & wSite
1320 if pos("$MAIL_"=REMPLACE$)<>1 then goto 1410
1330 if MAIL_NEXT$=CONFIG_TCP$(9,8) then goto 1350
1340 let MAIL_NEXT$=CONFIG_TCP$(9,8)
1350 let N=(dec(MAIL_NEXT$(7,2))-dec(MAIL_NEXT$(5,2)))*61
1360 if REMPLACE$="$MAIL_TITULO$" then let TEMP$="66E"; call "^TBLH.TCP",TEMP$
1360:,"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(958+N,1)+$00$; goto 233
1360:0
1370 if REMPLACE$="$MAIL_DATA$" then let TEMP$=cvs(R0$(959+N,60),3); goto 2330
1380 goto 2320
1400 rem ^100
1410 rem "Datos de Direcciones Postales
1420 if pos("$DIR_"=REMPLACE$)<>1 then goto 1610
1430 if DIR_NEXT$=CONFIG_TCP$(9,8) then goto 1450
1440 let DIR_NEXT$=CONFIG_TCP$(9,8)
1450 let N=(dec(DIR_NEXT$(7,2))-dec(DIR_NEXT$(5,2)))*119
1460 if REMPLACE$="$DIR_TITULO$" then let TEMP$="66D"; call "^TBLH.TCP",TEMP$,
1460:"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+R0$(153+N,1)+$00$; goto 2330
1470 if REMPLACE$="$DIR_DATA$" then let TEMP$=cvs(R0$(154+N,110),3); goto 2330
1480 if REMPLACE$="$DIR_KEY$" then let TEMP$=hta(cvs(R0$(264+N,8),3)); goto 23
1480:30
1490 if REMPLACE$="$DIR_ZP$" then let Z$=R0$(264+N,8); gosub 2910; goto 2330
1500 goto 2320
1600 rem ^100
1610 rem "Personas de Contacto
1620 if pos("$PER_"=REMPLACE$)<>1 then goto 2010
1700 rem ^100
1710 rem "Telefonos de la Persona de Contacto
1720 if pos("$PER_TLF_"=REMPLACE$)<>1 then goto 1800
1730 if PER_TLF_NEXT$=CONFIG_TCP$(9,8) then goto 1750
1740 let PER_TLF_NEXT$=CONFIG_TCP$(9,8)
1750 let N=(dec(PER_TLF_NEXT$(7,2))-dec(PER_TLF_NEXT$(5,2)))*21
1760 if REMPLACE$="$PER_TLF_TITULO$" then let TEMP$="66T"; call "^TBLH.TCP",TE
1760:MP$,"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+PER_R$(748+N,1)+$00$; go
1760:to 2330
1770 if REMPLACE$="$PER_TLF_DATA$" then let TEMP$=cvs(PER_R$(749+N,20),3); got
1770:o 2330
1780 goto 2320
1800 rem ^100
1810 rem "eMail & wPage de la Persona de Contacto
1820 if pos("$PER_MAIL_"=REMPLACE$)<>1 then goto 1900
1830 if PER_MAIL_NEXT$=CONFIG_TCP$(9,8) then goto 1850
1840 let PER_MAIL_NEXT$=CONFIG_TCP$(9,8)
1850 let N=(dec(PER_MAIL_NEXT$(7,2))-dec(PER_MAIL_NEXT$(5,2)))*61
1860 if REMPLACE$="$PER_MAIL_TITULO$" then let TEMP$="66E"; call "^TBLH.TCP",T
1860:EMP$,"K=01,01,C R=01,30,D ","",0,"","SELECT"+$00$+PER_R$(958+N,1)+$00$; g
1860:oto 2330
1870 if REMPLACE$="$PER_MAIL_DATA$" then let TEMP$=cvs(PER_R$(959+N,60),3); go
1870:to 2330
1880 goto 2320
1900 rem ^100
1910 rem "Nombre de la Persona de Contacto
1920 if PER_NEXT$=CONFIG_TCP$(9,8) then goto 1940
1930 let PER_NEXT$=CONFIG_TCP$(9,8)
1940 let N=(dec(PER_NEXT$(7,2))-dec(PER_NEXT$(5,2)))*63
1950 let X$=R0$(1568+N,3); gosub 2810; let PER_K$=X$,PER_R$=Y$
1960 if REMPLACE$="$PER_DATA$" then let TEMP$=cvs(PER_R$(18,60),3); goto 2330
1970 if REMPLACE$="$PER_KEY$" then let TEMP$=hta(R0$(1568+N,3)); goto 2330
1980 if REMPLACE$="$PER_OBS$" then let TEMP$=cvs(R0$(1571+N,60),3); goto 2330
1990 goto 2320
2000 rem ^100
2010 rem "Enpresas Relacionadas
2020 if pos("$EMP_"=REMPLACE$)<>1 then goto 2110
2030 if EMP_NEXT$=CONFIG_TCP$(9,8) then goto 1940
2040 let EMP_NEXT$=CONFIG_TCP$(9,8)
2050 let N=(dec(EMP_NEXT$(7,2))-dec(EMP_NEXT$(5,2)))*63
2060 if REMPLACE$="$EMP_DATA$" then let TEMP$=R0$(2198+N,3); gosub 2810; goto
2060:2330
2070 if REMPLACE$="$EMP_KEY$" then let TEMP$=hta(R0$(2198+N,3)); goto 2330
2080 if REMPLACE$="$EMP_OBS$" then let TEMP$=cvs(R0$(2201+N,60),3); goto 2330
2090 goto 2320
2100 rem ^100
2110 rem "Datos Adicionales
2120 if REMPLACE$<>"$ADICIONAL?$" then goto 2160
2130 let TEMP$="0"
2140 find record(1,key="82"+bin(100,2)+bin(1,2),dom=2150); let TEMP$="1"
2150 goto 2330
2160 if pos("$REF_"=REMPLACE$)=1 then call "ED110.7.www",0,100,R0$(ADICIONAL),
2160:REMPLACE$,TEMP$,CONFIG_TCP$,""; goto 2330
2200 rem ^100
2210 if REMPLACE$="$IMAGE$" then call "^IMAGE.www",-1,hta(K0$),TEMP$; goto 233
2210:0
2220 if REMPLACE$="$CONFIG$" then gosub 2720; goto 2330
2230 goto 2320
2300 rem ^100
2310 let TEMP$="<% NOT CONVERT %>"+TEMP$; goto 2330
2320 let TEMP$=""
2330 let REMPLACE$=TEMP$
2340 goto 1030
2400 rem ^100
2410 let TEMP=pos(".CHECKED="=REMPLACE$)+9; if TEMP=9 then return
2420 let TEMP$=REMPLACE$(TEMP,pos("$"=REMPLACE$(TEMP)+"$")-1)
2430 if TEMP$=Z$ then let TEMP$=TEMP$+""" checked """
2440 return
2500 rem ^100
2510 rem "Calcula la fecha en formato gregoriano
2520 if TEMP=0 then let TEMP=F0
2530 call "^DATE",1,TEMP,0,TEMP$
2540 return
2600 rem ^100
2610 rem "Da formato a campos numericos
2620 if TEMP then let TEMP$=str(TEMP:TEMP$) else let TEMP$=""
2630 return
2700 rem ^100
2710 rem "Actualiza la variable del formulario CONFIG
2720 let TEMP$=""
2730 let Z$="ED630.www",TEMP=len(Z$),TEMP$=TEMP$+bin(TEMP,4)+Z$
2740 let TEMP=len(K0$),TEMP$=TEMP$+bin(TEMP,4)+K0$
2750 let TEMP$=hta(TEMP$)
2760 return
2800 rem ^100
2810 rem "Lee el registro de: Persona de Contacto o Empresa Relacionada
2820 if dec(X$) then read record(3,key=X$,dom=2830)Y$; goto 2850
2830 let Y$=fid(3),Y$=fill(dec(Y$(7,2)),$00$),Y$(1,4)="A"+bin(F0,3),Y$(17,136)
2830:="",Y$(153,119*5)=R66D$,Y$(748,21*10)=R66T$,Y$(958,61*10)=R66E$
2840 let X$=fill(3,$00$)
2850 rem
2860 let TEMP$=cvs(Y$(18,60),3)
2870 return
2900 rem ^100
2910 rem "Lee el registro de: Zona Postal
2920 let Z$="70"+cvs(Z$,2)+"?",TEMP$=""
2930 if len(Z$)>3 then let Z$=Z$(1,len(Z$)-1); find record(FILES+1,dom=2930,ke
2930:y=Z$)ZZ$; let Y$=cvs(ZZ$(1,60),3); if pos(ZZ$(78,1)="E") or pos(cvs(Y$,4)
2930:=cvs(TEMP$,4))=0 then let TEMP$=TEMP$+", "+fnTITLE$(ZZ$) fi; goto 2930
2940 if TEMP$>"" then let TEMP$=TEMP$(3)
2950 return
5000 rem 5000
5010 rem "Actualiza la Base de Datos
5020 call "^GETENV.TCP","button",BUTTON$,SINFONIX_ERROR$,"UNSPACE"
5030 gosub 8100
5040 rem
5050 if BUTTON$<>"Acepta" then goto 7810
5100 rem ^100
5110 rem "Valida los Datos del Contacto
5120 rem
5130 rem "Clasificacion (Clientes, Proveedores, Contactos, Empresas...)
5140 call "^GETENV.TCP","Clasificacion",TEMP$,SINFONIX_ERROR$,"UNSPACE"
5150 let K54$="",TEMP$=TEMP$+$0D0A$
5160 let Z=pos($0D0A$=TEMP$),Z$=TEMP$(1,Z-1),TEMP$=TEMP$(Z+2)
5170 let K54$=K54$+bin(num(ath(Z$)),2)
5180 if TEMP$>"" then goto 5160
5190 if K54$="" then let ERROR$=ERROR$+"Debe Seleccionar al Menos una Clasific
5190:acion<BR>"
5200 if len(K54$)>12 then let ERROR$=ERROR$+"El Maximo de clasificacion es de
5200:6<BR>"
5210 let W0$(5,12)=K54$+fill(12,$00$)
5220 rem
5230 rem "Tipo de Persona (1=Natural, 2=Juridica, 3=Entidad Publica)
5240 call "^GETENV.TCP","Tipo_Persona",TEMP$,SINFONIX_ERROR$,"UNSPACE"
5250 let K56$=ath(TEMP$)
5260 if K56$="" then let ERROR$=ERROR$+"Debe Seleccionar el Tipo de Persona<BR
5260:>"
5270 let W0$(17,1)=K56$
5280 let Z$="56"+K56$; gosub 9710; let R56$=Z$
5290 rem
5300 call "^GETENV.TCP","Nombre",TEMP$,SINFONIX_ERROR$,"UNSPACE"
5310 if TEMP$="" then let ERROR$=ERROR$+"debe indicar el Nombre (o Razon Socia
5310:l) del Contacto (o Entidad)<BR>"
5320 if len(TEMP$)>60 then let ERROR$=ERROR$+"el largo maximo del Nombre del C
5320:ontacto es de 60 caracteres<BR>"
5330 let W0$(18,60)=TEMP$
5340 rem
5350 call "^GETENV.TCP","Titulo",TEMP$,SINFONIX_ERROR$,"UNSPACE"
5360 if TEMP$="" then let ERROR$=ERROR$+"debe indicar un Titulo y/o Actividad
5360:que describa al Contacto<BR>"
5370 if len(TEMP$)>60 then let ERROR$=ERROR$+"el largo maximo del Titulo y/o A
5370:ctividad es de 60 caracteres<BR>"
5380 let W0$(78,60)=TEMP$
5390 rem
5400 call "^GETENV.TCP","RIF",RIF$,SINFONIX_ERROR$,"UNSPACE"
5410 if RIF$="" then goto 5490
5420 let TEMP$=cvs(RIF$,4)
5430 if pos(TEMP$(1,1)=R56$(31,5))=0 then let TEMP$=R56$(31,1)+TEMP$
5440 let PREF$=TEMP$(1,1); gosub 8310; if TEMP=0 then goto 5490
5450 if pos("."=R56$(31,30)) then let F=1000000 else let F=1
5460 let RIF$=PREF$+"-"+cvs(str(-abs(TEMP)/F:cvs(R56$(36,15),3)),3)
5470 let W0$(138,15)=RIF$
5480 goto 5500
5490 let ERROR$=ERROR$+"debe indicar un numero de RIF<BR>"
5500 if len(RIF$)>15 then let ERROR$=ERROR$+"el largo maximo del Numero de RIF
5500: es de 15 Caracteres<BR>"
5600 rem ^100
5610 rem "Numeros Telefonicos
5620 let TLF$=""; for ROWS=1 to 10; let XERROR$=""
5630 rem
5640 rem "Titulo del Telefono 1=Oficina, 2=Fax, 4=Celular...
5650 call "^GETENV.TCP","TLF_Titulo"+str(ROWS),TITLE$,SINFONIX_ERROR$,"UNSPACE
5650:"
5660 let TITLE$=ath(TITLE$)
5670 rem
5680 rem "Numero de Telefono: +58 (0212) 765 43 21
5690 call "^GETENV.TCP","TLF_Data"+str(ROWS),DATA$,SINFONIX_ERROR$,"UNSPACE"
5700 rem
5710 rem "Status de la Linea: "DELETE"=elimina sino: "(none)"=no Elimina
5720 call "^GETENV.TCP","TLF_Status"+str(ROWS),ST$,SINFONIX_ERROR$,"UNSPACE"
5730 rem
5740 if ST$="DELETE" or DATA$="" then goto 5790
5750 let Z$="66T"+TITLE$; gosub 9710; if pos(" "<>Z$)=0 then let XERROR$=XERRO
5750:R$+"Debe Indicar un titulo para el Telefono<BR>"
5760 if len(DATA$)>20 then let XERROR$=XERROR$+"El Largo Maximo para el Telefo
5760:no es de 20 Caracteres<BR>"
5770 let TITLE$=TITLE$+fill(1),DATA$=DATA$+fill(20)
5780 let TLF$=TLF$+TITLE$(1,1)+DATA$(1,20)
5790 rem
5800 if XERROR$>"" then let XERROR$="ERROR en la Linea "+str(ROWS)+" (Telefono
5800:s)<BR>"+XERROR$+"<BR>"
5810 let ERROR$=ERROR$+XERROR$
5820 next ROWS
5830 let W0$(748,210)=TLF$+fill(210)
5900 rem ^100
5910 rem "eMail & wSite
5920 let EMAIL$=""; for ROWS=1 to 10; let XERROR$=""
5930 rem
5940 rem "Titulo del eMail & wSite 1=eMail, 2=WebSite...
5950 call "^GETENV.TCP","MAIL_Titulo"+str(ROWS),TITLE$,SINFONIX_ERROR$,"UNSPAC
5950:E"
5960 let TITLE$=ath(TITLE$)
5970 rem
5980 rem "Codigo de eMail o wSite: cor...@gmail.com | www.gmail.com
5990 call "^GETENV.TCP","MAIL_Data"+str(ROWS),DATA$,SINFONIX_ERROR$,"UNSPACE"
6000 rem
6010 rem "Status de la Linea: "DELETE"=elimina sino: "(none)"=no Elimina
6020 call "^GETENV.TCP","MAIL_Status"+str(ROWS),ST$,SINFONIX_ERROR$,"UNSPACE"
6030 rem
6040 if ST$="DELETE" or DATA$="" then goto 6120
6050 let Z$="66E"+TITLE$; gosub 9710; if pos(" "<>Z$)=0 then let XERROR$=XERRO
6050:R$+"Debe Indicar un titulo para el eMail o wSite<BR>"
6060 if len(DATA$)>60 then let XERROR$=XERROR$+"El Largo Maximo para el eMail
6060:o wSite es de 60 Caracteres<BR>"
6070 let Z=2; if pos("EMAIL"=Z$(31,30)) then let Z=pos("@"=DATA$)
6080 let X=pos("."=DATA$,-1); if X then let X=len(DATA$(1+X))
6090 if Z<2 or X<2 or X>6 then let XERROR$=XERROR$+"el eMail o wSite no es Val
6090:ido<BR>"
6100 let TITLE$=TITLE$+fill(1),DATA$=DATA$+fill(60)
6110 let EMAIL$=EMAIL$+TITLE$(1,1)+DATA$(1,60)
6120 rem
6130 if XERROR$>"" then let XERROR$="ERROR en la Linea "+str(ROWS)+" (eMail &
6130:wSite)<BR>"+XERROR$+"<BR>"
6140 let ERROR$=ERROR$+XERROR$
6150 next ROWS
6160 let W0$(958,610)=EMAIL$+fill(610)
6200 rem ^100
6210 rem "Direcciones Postales
6220 let DIR$=""; for ROWS=1 to 5; let XERROR$=""
6230 rem
6240 rem "Titulo de la Direccion 1=Oficina, 2=Casa, 4=Habitacion...
6250 call "^GETENV.TCP","DIR_Titulo"+str(ROWS),TITLE$,SINFONIX_ERROR$,"UNSPACE
6250:"
6260 let TITLE$=ath(TITLE$)
6270 rem
6280 rem "Direccion: Avenida, Calle, Edificio, Piso, Oficina
6290 call "^GETENV.TCP","DIR_Data"+str(ROWS),DATA$,SINFONIX_ERROR$,"UNSPACE"
6300 rem
6310 rem "Zona Postal: Urbanizacion, Ciudad, Estado, Pais...
6320 call "^GETENV.TCP","DIR_Key"+str(ROWS),KEY$,SINFONIX_ERROR$,"UNSPACE"
6330 let KEY$=ath(KEY$)
6340 rem
6350 rem "Status de la Linea: "DELETE"=elimina, "(none)"=NO Elimina
6360 call "^GETENV.TCP","DIR_Status"+str(ROWS),ST$,SINFONIX_ERROR$,"UNSPACE"
6370 rem
6380 if ST$="DELETE" or (DATA$="" and KEY$="") then goto 6440
6390 let Z$="66D"+TITLE$; gosub 9710; if pos(" "<>Z$)=0 then let XERROR$=XERRO
6390:R$+"Debe Indicar un titulo para la Direccion<BR>"
6400 if DATA$="" then let XERROR$=XERROR$+"Debe Indicar la Avenida, Calle, Edi
6400:ficion...<BR>"
6410 if len(DATA$)>110 then let XERROR$=XERROR$+"El Largo Maximo para la Direc
6410:cion es de 110 Caracteres<BR>"
6420 let TITLE$=TITLE$+fill(1),DATA$=DATA$+fill(110),KEY$=KEY$+fill(8)
6430 let DIR$=DIR$+TITLE$(1,1)+DATA$(1,110)+KEY$(1,8)
6440 rem
6450 if XERROR$>"" then let XERROR$="ERROR en la Linea "+str(ROWS)+" (Direccio
6450:nes Postales)<BR>"+XERROR$+"<BR>"
6460 let ERROR$=ERROR$+XERROR$
6470 next ROWS
6480 let W0$(153,595)=DIR$+fill(595)
6500 rem ^100
6510 rem "Personas de Contacto
6520 let ITEM$="PER",ITEM_TITLE$="Personas de Contacto",WRITE=0; gosub 7200
6600 rem ^100
6610 rem "Empresas Relaciondas
6620 let ITEM$="EMP",ITEM_TITLE$="Empresas Relaciondas",WRITE=0; gosub 7200
6700 rem ^100
6710 rem "Valida los Campos Adicionales del CONTACTO
6720 let RECORD$=W0$(ADICIONAL)
6730 call "ED110.7.www",0,100,RECORD$,"WRITE!","","",ERROR$
6740 let W0$(ADICIONAL)=RECORD$
6750 rem
6760 rem "Valida si coloco una IMAGEN AL PRODUCTO
6770 call "^IMAGE.www",0,hta(K0$),"file_image",ERROR$
6780 rem
6790 if ERROR$>"" then goto 8410
6800 rem ^100
6810 rem "la informacion registrada en el formulario es VALIDA!
6900 rem ^100
6910 rem "Actualiza las Personas de Contacto
6920 let ITEM$="PER",ITEM_TITLE$="Personas de Contacto",WRITE=1; gosub 7200
6930 let W0$(1568,630)=ITEM_DATA$+fill(630)
7000 rem ^100
7010 rem "Actualiza las Empresas Relaciondas
7020 let ITEM$="EMP",ITEM_TITLE$="Empresas Relaciondas",WRITE=1; gosub 7200
7030 let W0$(2198,630)=ITEM_DATA$+fill(630)
7040 rem
7050 rem "Actualiza los datos del Contacto
7060 if K0$(1,3)<>$000000$ then goto 7080
7070 extract record(3,key="")Z$; let K0$(1,3)=Z$(29,3),Z$(29,3)=bin(dec($00$+Z
7070:$(29,3))+1,3); write record(3)Z$; find record(3,key=K0$(1,3),dom=7080); g
7070:oto 7070
7080 call "RC110.REC",0,3,K0$(1,3),W0$; write record(3,key=K0$(1,3))W0$
7090 call "^INDS",3,K0$,R0$,W0$,SORT$,PHONETIC$,PHONETIC_TABLE$
7100 rem
7110 rem "Actualiza si coloco una IMAGEN AL PRODUCTO
7120 call "^IMAGE.www",1,hta(K0$),"file_image",ERROR$
7130 rem
7140 let MESSAGE$="las modificaciones efectuadas al Contacto "+W0$(18,60)+"<BR
7140:>han sido realizadas"
7150 goto 8510
7200 rem ^100
7210 rem "Personas de Contacto (o Empresas Relacionadas)
7220 let ITEM_DATA$=""; for ROWS=1 to 10; let XERROR$="",ROWS$=""
7230 rem
7240 rem "Nombre (o Razon Social) del Contacto (o Entidad)
7250 call "^GETENV.TCP",ITEM$+"_Data"+str(ROWS),DATA$,SINFONIX_ERROR$,"UNSPACE
7250:"
7260 let ROWS$=ROWS$+crc(DATA$)
7270 rem
7280 rem "Codigo del Registro Interno (CRI)
7290 call "^GETENV.TCP",ITEM$+"_Key"+str(ROWS),KEY$,SINFONIX_ERROR$,"UNSPACE"
7300 let KEY$=ath(KEY$)
7310 let ROWS$=ROWS$+crc(KEY$)
7320 rem
7330 rem "Titulo y/o Actividad que Describa al Contacto (o Entidad)
7340 call "^GETENV.TCP",ITEM$+"_Obs"+str(ROWS),OBS$,SINFONIX_ERROR$,"UNSPACE"
7350 let ROWS$=ROWS$+crc(OBS$)
7360 rem
7370 rem "Status de la Linea: "DELETE"=elimina, "(none)"=NO Elimina
7380 call "^GETENV.TCP",ITEM$+"_Status"+str(ROWS),ST$,SINFONIX_ERROR$,"UNSPACE
7380:"
7390 rem
7400 if ST$="DELETE" then let ROWS$=""
7410 if DATA$="" then let XERROR$=XERROR$+"Debe Indicar un Nommbre para la "+I
7410:TEM_TITLE$+"<BR>"
7420 if len(DATA$)>60 then let XERROR$=XERROR$+"El Largo Maximo del Nommbre pa
7420:ra la "+ITEM_TITLE$+" se de 60 Caracteres<BR>"
7430 if len(OBS$)>60 then let ERROR$=ERROR$+"el largo maximo del Titulo y/o Ac
7430:tividad es de 60 caracteres<BR>"
7440 rem
7450 if XERROR$>"" then let XERROR$=XERROR$+"ERROR en la Linea "+str(ROWS)+" (
7450:"+ITEM_TITLE$+")<BR>"+XERROR$
7460 if WRITE=0 then goto 7500
7470 rem
7480 if pos($00$<>ROWS$) then gosub 7610
7490 rem
7500 if pos($00$<>ROWS$) then let ERROR$=ERROR$+XERROR$
7510 rem
7520 let KEY$=KEY$+$000000$
7530 let Z$=KEY$(1,3)+OBS$+fill(63); let ITEM_DATA$=ITEM_DATA$+Z$(1,63)
7540 rem
7550 next ROWS
7560 return
7600 rem ^100
7610 rem "Actualiza las Personas de Contactos o Empresas Relacionadas
7620 if dec(KEY$) then extract record(3,dom=7630,key=KEY$)Z0$; goto 7680
7630 let Z0$=fid(3),Z0$=fill(dec(Z0$(7,2)),$00$),Z0$(1,4)="A"+bin(F0,3),Z0$(17
7630:,136)="",Z0$(153,119*5)=R66D$,Z0$(748,21*10)=R66T$,Z0$(958,61*10)=R66E$
7640 let KEY$=fill(3,$00$)
7650 if ITEM$="PER" then let Z=91,Z$="1" else let Z=92,Z$="2"
7660 let Z0$(5,2)=bin(Z,2); rem "Persona de Contacto=91 / Empresa Relacionada=
7660:92
7670 let Z0$(17,1)=Z$; rem "Persona Natural = 1 / Persona Juridica =
7670: 2
7680 let Z1$=Z0$
7690 let Z1$(18,60)=DATA$; rem "Nombre (o Razon Social) del Contacto (o Entida
7690:d)
7700 let Z1$(78,60)=OBS$; rem "Titulo o Actividad del Contacto (o Entidad)
7710 rem
7720 rem "Actualiza los datos del Contacto
7730 if KEY$(1,3)<>$000000$ then goto 7750
7740 extract record(3,key="")Z$; let KEY$(1,3)=Z$(29,3),Z$(29,3)=bin(dec($00$+
7740:Z$(29,3))+1,3); write record(3)Z$; find record(3,key=KEY$(1,3),dom=7750);
7740: goto 7740
7750 call "RC110.REC",0,3,KEY$(1,3),Z1$; write record(3,key=KEY$(1,3))Z1$
7760 call "^INDS",3,KEY$,Z0$,Z1$,SORT$,PHONETIC$,PHONETIC_TABLE$
7770 return
7800 rem ^100
7810 rem "Elimina el Registro
7820 if BUTTON$<>"Elimina" then goto 7910
7830 let ERROR$="No esta permitido la Eliminacion de Contactos"
7840 goto 8410
7850 let MESSAGE$="la eliminacion del Contacto "+W0$(18,60)+"<BR>han sido real
7850:izadas"
7860 goto 8510
7900 rem ^100
7910 rem "Nuevo Documento
7920 if BUTTON$<>"Nuevo" then goto 8010
7930 let ERROR$=""
7940 goto 8510
8000 rem ^100
8010 rem "Boton no definido
8020 let ERROR$="no esta definido el valor para la variable: ""button$"""
8030 goto 8410
8100 rem ^100
8110 rem "Lee el registro a actualizar
8120 gosub 8230
8130 call "^NEXT",2,4,"75FICHA"+str(dec(S0$(CLIENTE,1)):"00"),$00$,S0$(2,pos("
8130: "<>S0$(2,8),-1)),0,"",0,dec(S0$(1,1))
8140 if dec(K0$) then extract record(3,dom=8150,key=K0$)R0$; goto 8170
8150 let R0$=fid(3),R0$=fill(dec(R0$(7,2)),$00$),R0$(1,4)="A"+bin(F0,3),R0$(17
8150:,136)="",R0$(153,119*5)=R66D$,R0$(748,21*10)=R66T$,R0$(958,61*10)=R66E$,R
8150:0$(2900,10)=CTRL$
8160 let K0$=fill(3,$00$)
8170 let N0=dec(K0$)
8180 if N0 and BUTTON$<>"Nuevo" then call "^NEXT",3,4,"75FICHA"+str(dec(S0$(CL
8180:IENTE,1)):"00"),$00$,S0$(2,pos(" "<>S0$(2,8),-1)),0,"",N0,dec(S0$(1,1))
8190 let K0$=bin(N0,3)
8200 let W0$=R0$,OLD_K0$=K0$
8210 return
8220 rem
8230 rem "Seleccion del Tipo de Registro
8240 let SQL$=ath(SQL$,err=8250)
8250 if K0$="" then let K0$=fill(3,$00$),K0$(1)=SQL$+K0$
8260 return
8270 rem "8000
8280 rem "Convierte un STRING de Bs. a NUMERICO
8290 let Z$="$(,.)"; goto 8330
8300 rem
8310 rem "Convierte un STRING en NUMERICO
8320 let Z$=""
8330 let CONVERT_NUM=0,TEMP=pos("."=TEMP$,-1),SIGN=1; if pos("-"=TEMP$) or pos
8330:("("=TEMP$) then let SIGN=-1
8340 let Z=max(pos("0">TEMP$),pos("9"<TEMP$)); if Z then if Z$="" or pos(TEMP$
8340:(Z,1)=Z$) then let CONVERT$=CONVERT$+TEMP$(Z,1),TEMP$=TEMP$(1,Z-1)+TEMP$(
8340:Z+1); if Z<TEMP then let TEMP=TEMP-1 fi; goto 8340
8350 if TEMP then let TEMP$=TEMP$(1,TEMP-1)+"."+TEMP$(TEMP)
8360 let TEMP=num(TEMP$,err=8370)*SIGN,TEMP$=str(TEMP),CONVERT_NUM=1
8370 return
8400 rem ^100
8410 let MESSAGE$="Error en los datos del formulario, revise los siguientes ca
8410:mpos:"
8420 goto 8560
8500 rem ^100
8510 if BUTTON$="Acepta" then let Z$="top.window.Link.document.forms[0].codigo
8510:.value="""+cvs(W0$(1,8),2)+""";" else let Z$=""
8520 let JAVASCRIPT$="<% NOT CONVERT %>"+Z$+"top.window.Link.location.href=""/
8520:cgi-bin/sinfonix.pl?"" + sii_system + ""%20ED630.www"
8530 call "^GETENV.TCP","PreView",PREVIEW$,SINFONIX_ERROR$,"UNSPACE"
8540 if RETURN$="ON" or (PREVIEW$>"" and PREVIEW$<>"OFF") then let JAVASCRIPT$
8540:=JAVASCRIPT$+"%20"+hta(K0$); if PREVIEW$>"" and PREVIEW$<>"OFF" then let
8540:JAVASCRIPT$=JAVASCRIPT$+"%20preview"
8550 let JAVASCRIPT$=JAVASCRIPT$+""";"
8560 run "stdio_form"
8570 rem
9000 rem 9000"DEFINITION SECTION
9010 let M$="-####,###,###.00",SORT$=bin(51,1),PHONETIC$="ED",CLIENTE=32
9020 let TITLE$=" RREG MMun pParr "
9030 rem
9040 find record(FILES+1,key="EDCTL"+FID0$)I0$; let I0$=I0$+bin(0,1)+bin(2,1)
9050 find record(FILES+3,key="")S0$; let ADICIONAL=3000
9060 rem
9070 rem "Verifica si usa el sistema RECOLECTOR
9080 let RCFILES=160,RECOLECT$="NO"; call "^OFSET",RCFILES+1,"RC??( 1)"; read
9080:record(RCFILES+1,key="",err=9100)RCS0$; let RECOLECT$="YES"
9090 let OPER=dec(RCS0$(1,2))*1000+OPER
9100 rem
9110 let X$="66T",X=21,R66T$=fill(X*10),Z$=R66T$; gosub 9170; let R66T$=Z$
9120 let X$="66E",X=61,R66E$=fill(X*10),Z$=R66E$; gosub 9170; let R66E$=Z$
9130 let X$="66D",X=119,R66D$=fill(X*5),Z$=R66D$; gosub 9170; let R66D$=Z$
9140 let CTRL$=fill(10),F0$=day; call "^DATE",2,num(F0$(1,2)+F0$(4,2)+F0$(7)),
9140:F0,F0$; let F1=F0,CTRL$(1)=FID0$,CTRL$(4)=bin(OPER,2)+bin(F0,3)+bin(int(t
9140:im*100),2)
9150 let Z$=fid(EDFILES+3),XED_R3$=fill(dec(Z$(7,2)),$00$),XED_R3$(1,4)="A"+bi
9150:n(F0,3),XED_R3$(17,136)="",XED_R3$(153,119*5)=R66D$,XED_R3$(748,21*10)=R6
9150:6T$,XED_R3$(958,61*10)=R66E$,XED_R3$(1568,63*20)=fill(63*20,$000000$+fill
9150:(60)),XED_R3$(2900,20)=CTRL$+CTRL$
9160 return
9170 let Z=1; read record(1,key=X$,dom=9180)
9180 if Z<len(Z$) then let K$=key(1,end=9190); if pos(X$=K$)=1 then read recor
9180:d(1)R$; if pos("DEFAULT"=R$(31)) then let Z$(Z,1)=K$(4,1),Z=Z+X; goto 918
9180:0
9190 return
9300 rem 9300"ROUTINE PROGRAM
9310 rem
9320 rem "ERROR I/O FILE
9330 call "^IOERR",err,tcb(5),"ED630.www"; retry
9400 rem 9400"EDIT DISPLAY MASK
9410 call "^MASK",9440; escape
9420 rem "DISPLAY MASK
9430 return
9440 rem
9700 rem 9700"READ TABLE
9710 let Z$=cvs(Z$,3); find record(EDFILES+1,key=Z$,dom=9720)Z$; return
9720 dim Z$(100); return
9730 def fnSEEK$(KEY$,FILE_ID$)=fnBIT$(KEY$,FILE_ID$,$FF$,len(KEY$))
9740 def fnBIT$(KEY$,FILE_ID$,MOST$,LENGTH)=KEY$(1,LENGTH-1)+chr(max(asc(KEY$(
9740:LENGTH)),1)-1)+MOST$(1,sgn(max(asc(FILE_ID$(2))-LENGTH,0)))
9750 def fnTITLE$(ZZ$)=cvs(cvs(TITLE$(1+max(1,pos(ZZ$(78,1)=TITLE$,10)),9),3)+
9750:" "+ZZ$(1,60),3)
9800 rem 9800"EDIT ERROR
9810 print (0,err=9810)'RB',; return
9900 rem 9900"END OF PROGRAM
9910 seterr 9920; exit
9920 release
9930 if TEMP$>"" then goto 5160El 16 de septiembre de 2016, 16:48, BBX Vpro <shal...@gmail.com> escribió:ok en que esta desarrollado ese ejemplo?El 16 de septiembre de 2016, 17:47, Carlos E. Mendoza S. <inge...@gmail.com> escribió:El ejemplo que deje puedes ejecutarlo en cualquier plataforma (celular, tablet, etc.), solo se requiere de un explorador web.prueba ejecutar el link en cualquier celular y te funcionara.El 16 de septiembre de 2016, 16:45, BBX Vpro <shal...@gmail.com> escribió:si claro pero cuando lo quieres sacar a la web? y cuando usar archivos de datos mkeyed?El 16 de septiembre de 2016, 17:43, Carlos E. Mendoza S. <inge...@gmail.com> escribió:como veras del lado servidor utilizo pro5, esto quiere decir que no tengo que parchar nada, simplemente escribo en los archivo directamente y ya, igualmente lo puedes hacer con Bbj.El 16 de septiembre de 2016, 16:41, Carlos E. Mendoza S. <inge...@gmail.com> escribió:Ya entiendo cuando hablas de parches.El 16 de septiembre de 2016, 16:38, BBX Vpro <shal...@gmail.com> escribió:Quiero hacer una comparativa1.- la metodologia que ocupaba en primera instancia era la siguiente: teniamos una plataforma web desarrollada en .net en la cual haciamos los pedidos y cotizaciones, estos se almacenaban en mysql , en el servidor teniamos un demonio hecho en vpro5 leyendo la mysql y mediante la activacion de un flag mandaba la info a los archivos de datos de vpro5 ,, obiamente esta plataforma puede ser en html c# etc.....El 16 de septiembre de 2016, 17:28, Carlos E. Mendoza S. <inge...@gmail.com> escribió:si decides por cambiar a Bbj y quieres sacar el máximo potencial de el, igualmente tendrás que desarrollar nuevamente tus aplicaciones.El 16 de septiembre de 2016, 16:26, Carlos E. Mendoza S. <inge...@gmail.com> escribió:pensé que te referías a la modernización de tus aplicaciones, en todo caso lo que planteo es la modernización de las aplicaciones bajo un habiente de desarrollo que para mi es hacia donde se encamina todo esto (la web), unos utilizan python, otros PHP, yo con pro5.El 16 de septiembre de 2016, 16:18, Carlos E. Mendoza S. <inge...@gmail.com> escribió:para que tengas una idea mas clara, pro5 viene siendo lo que en otros entornos utilizan LAMP (Linux, Apache, MySQL & PHP).El 16 de septiembre de 2016, 16:11, Carlos E. Mendoza S. <inge...@gmail.com> escribió:Al igual que cualquier aplicación web, pro5 actúa del lado servidor, del lado cliente debes usar html, ccs, jscript.El 16 de septiembre de 2016, 16:02, BBX Vpro <shal...@gmail.com> escribió:Hola eso es P ro5 solamente?
El 16/9/2016 17:00, "Carlos E. Mendoza S." <inge...@gmail.com> escribió:Estimados colegas,La modernización es relativa, muy bien puedes modernizar tus aplicaciones con pro5.Aquí les dejo una aplicación desarrollada en pro5 que puedes ejecutar en cualquier plataforma, solo se requiere de un explorador web para su ejecución.pronto colocare los fuentes para que puedan adaptarlos a sus necesidades.Saludos Cordiales,Carlos MendozaEl 16 de septiembre de 2016, 13:35, Wilton Villar <wal...@gmail.com> escribió:Hola !
Muy interesante !
Como se puede ver una demo o un instructivo, asi como los costos de bbj.
Saludos.
--El 16 sept. 2016 1:31 PM, "BBX Vpro" <shal...@gmail.com> escribió:Buenas tardes colegas.--Hace mucho rato que mi posición con referente a la migracion de vpro5 hacia bbj no la encontraba beneficiosa y demasiado costosa debido a que no conocía el potencial de bbj orientado a los negocios en particular.Creo que esto me llevo a permanecer en la idea de mantenerme en vpro5 y en el tiempo y de alguna forma desarrollar "parches" que me permitieran conectar la aplicación hacia el exterior teniendo que pasar por escritorio remoto u otros en la forma de acceso a ella.Sin embargo gracia a Jose Aguilar he tenido la posibilidad de conocer el mundo de bbj y las grandes posibilidades que ofrece y poniendo en la balanza el costo de bbj y sus licencias en un lado y en el otro los beneficios que este nos da, de este modo se compensa en todo sentido.Les invito a que puedan involucrarse en la modernización hacia BBJ, creo en mi opinión bbj es igual a ( VPRO5 + BBJ(SUS COMANDOS) + JAVA y otras cosas por descubrir, mezclando todo esto se obtiene que nuestra simple aplicación este disponible por la red virtual incluyendo celulares tables etc, en cualquier plataforma que pueda ejecutar java, esto nos amplia la visión de los negocios compensando en todo sentido el costo anteriormente mencionado.Les invito a que puedan interiorizarse mas en BBJ es lo que hoy, todo programador de vpro5 necesita ya que este suple lo que le faltaba a vpro5 hacia el exterior.AtentamenteMarcos Pizarro C.Analista de Sistemas
Has recibido este mensaje porque estás suscrito al grupo "MundoBBx" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a mundobbx+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Has recibido este mensaje porque estás suscrito al grupo "MundoBBx" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a mundobbx+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
--
Has recibido este mensaje porque estás suscrito al grupo "MundoBBx" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a mundobbx+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Has recibido este mensaje porque estás suscrito al grupo "MundoBBx" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a mundobbx+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--Pedro del Valle
el sabio sabe que ignora (confucio)
Si lo recuerdo..!!!
Yo comence con esa consola. Las que teniamos aqui en Dominicana eran azules...uff
Luego adquirimos aquel equipo que los discos eran extraibles, con pantallas cremas....
Que buenos tiempos....
Estoy muy interesado en el tema de la modernizacion, ya tengo instalado el servidor Apache, intentare el siguiente, espero me puedan asistir.
Gracias.
Pues sabemos varios que en esa época estuvimos en Mai. Yo estuve en 1978, cuando el director era el Sr. Manzo (papá de los dos americanistas) y el gerente de Sistemas era Rafael, su secretaria era Tere y estaban los ings. Solis, Caballero, Maldonado, etc.
Gustó saber de compañeros de esa época.
Gracias Carlos.
Un abrazo.