Page 1 of 1

error al compilar

Posted: Thu Oct 02, 2008 7:56 pm
by jlaranguizp
Aun tengo error al compilar este prg.

#include "FiveWin.ch"
function main()
Local ownd
local title
local xx22
local swx
local swz1
define window ownd from 0,0 to 20,70

activate window ownd
SELE 1
USE FACTU01
INDEX ON _rut->RUT TO FACTU01
set index to FACTU01

SELE 2
USE FACTU02
index on _nfact->nFACT tag factu02
SET INDEX to FACTU02
go bottom

TItle := "ingreso"
xx22 := 1
SWX := .T.
DO WHILE SWX;
@00,25 SAY "INGRESO DE FACTURA";
@02,00 SAY "Encabezado Factura";
@04,00 say "º Num. Factura : Estado : º";
@05,00 say "º Fecha Emision: Fecha Pago : º";
@06,00 say "º Rut Cliente : º";
@07,00 say "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
@08,00 say "º Datos Cliente º";
@09,00 say "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
@10,00 say "º Nombre : º";
@11,00 say "º Direccion : º";
@12,00 say "º Giro : º";
@13,00 say "º Fono : º";
@14,00 say "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
@15,00 say "º Detalle Factura º" ;
@16,00 say "ÌÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍËÍÍÍÍÍÍÍËÍÍÍÍÍÍ͹";
@17,00 say "º Items º Descripcion Servicio ºNeto $ º Iva $ ºTotal $º";
@18,00 say "ÌÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍ͹";
@19,00 say "º º º º º º";
@20,00 say "º º º º º º";
@21,00 say "º º º º º º" ;
@22,00 say "º º º º º º" ;
@21,00 say "º º º º º º" ;
@22,00 say "º º º º º º" ;
@23,00 say "º º º º º º";
@24,00 say "º º º º º º";
@25,00 say "º º º º º º";
@26,00 say "º º º º º º";
@27,00 say "º º º º º º" ;
@28,00 say "º º º º º º" ;
@29,00 say "º º º º º º";
@30,00 say "º º º º º º";
@31,00 say "º º º º º º" ;
@32,00 say "ÌÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÎÍÍÍÍÍÍ͹";
@33,00 say "º º º º º";
@34,00 say "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÊÍÍÍÍÍÍͼ";
action ruti2;
swx=.f.;
ENDDO;
function RUTI2;
SWZ1 :=.T. ;
DO WHILE SWZ1;
DESDET :="";
clasif := "0";
swdet := 0;
c07 := 0;
rutc := space(10);
nombrec := "";
direcc :="";
giroc :="";
fonoc :="";
ava :=0;
x21d :=0;
x12 := date();
x12p := date();
X15 := 0;
@ 04,18 GET X15;
read;
SELE 2;
SEEK X15;
IF .NOT. EOF();
@36,00 SAY SPACE(80);
@36,05 SAY "Numero Factura Ya Existe .....presione cualquier tecla";
INKEY(0);
@36,05 SAY SPACE(60);
loop;
ENDIF;
@ 04,49 say "Por Cobrar";
@ 05,18 get x12 pict "##/##/##";
@ 05,49 get x12p pict "##/##/##";
@ 06,18 get rutc;
@ 36,00 SAY SPACE(80);
@ 36,05 SAY "[F1] Ayuda... [ESC] Retrocede... ";
SET KEY 28 action AYUot;
READ;
IF (lastkey(x15)=27);
SWz1 :=.F.;
LOOP;
ENDIF;
READ;
@ 10,18 say nombrec;
@ 11,18 say direcc;
@ 12,18 say giroc;
@ 13,18 say fonoc;
swtipo:= .T.;
item := "1";
detal :=space(30);
neto :=0;
iva :=0;
total :=0;
tot1 :=0;
tot2 :=0;
tot3 :=0;
linP := 19;
deta := .T.;
x13 := space(5);
DO WHILE deta;
@36,00 SAY SPACE(80);
@36,05 SAY "Presione [ESC] para Grabar y Finalizar....";
@ linP,01 get item pict "##";
read;
if (lastkey(item)=27);
deta :=.F.;
SET COLOR TO;
action graba;
return;
ENDIF;
@linP,13 GET detal ;
@linP,56 get neto pict"999,999";
read;
@linp,64 say (neto*19)/100 pict "999,999";
@linp,72 say neto+(neto*19)/100 pict "999,999";
tot1 :=tot1+neto;
tot2 :=tot2+(neto*19)/100;
tot3 :=tot1+tot2;
@33,56 say tot1 pict"999,999";
@33,64 say tot2 pict"999,999";
@33,72 say tot3 pict"999,999";
swmaq :=.t.;
X1 := "S";
@36,00 SAY SPACE(80);
@36,05 SAY "Los Datos Ingresados Son Correctos (N/S):";
@36,48 GET X1;
READ;
x1 :=upper(x1);
IF X1 = "N";
detal :=space(30);
neto :=0;
iva :=0;
total :=0;
PROF :=.F.;
LOOP;
tot1 :=tot1-neto;
tot2 :=tot2-(neto+(neto*19)/100);
tot3 :=-tot1-tot2;
ELSE;
XX22 := XX22+1;
prof :=.f.;
ENDIF;
LINP :=LINP+1 ;
IF LINP > 22;
LINP :=19;
@19,00 say "º º º º º º º º º" ;
@20,00 say "º º º º º º º º º" ;
@21,00 say "º º º º º º º º º" ;
@22,00 say "º º º º º º º º º" ;
ENDIF;
X16 :=0;
ENDDO;
@19,00 say "º º º º º º º º º" ;
@20,00 say "º º º º º º º º º" ;
@21,00 say "º º º º º º º º º" ;
@22,00 say "º º º º º º º º º" ;
@24,00 SAY SPACE(80);
@10,00 say "º Proceso : º";
@11,00 say "º Detenci¢n : º";
@12,00 say "º Cod. Recurso : º";
@13,00 say "º º";
@04,00 say "º Cod. Piezaÿ : º";
@05,00 say "º Descrip ÿ : º";
@06,00 say "º Programa Mes : º";
ENDDO;
function Graba;
SELE 2;
Append blank;
repla rut with rutc;
repla nfact with x15;
repla fecha_E with x12;
repla fecha_p with X12p;
Repla neto with tot1;
REPLA iva WITH tot2;
repla total with tot3;
repla estado with "Por Cobrar";
Return;
FUNCTION AYUot;
save scre to panx1;
SELECT 1;
@36,00 SAY SPACE(80);
SET KEY 28 TO;
DECLARE NOM_CAM[5],NOM_TITU[5],NOM_PICT[5];
NOM_CAM[1] :="rut";
NOM_CAM[2] :="nombre";
NOM_CAM[3] :="direc";
NOM_CAM[4] :="giro";
NOM_CAM[5] :="fono";
NOM_TITU[1] :="R.U.T";
NOM_TITU[2] :="Nombre Cliente";
NOM_TITU[3] :="Direccion";
NOM_TITU[4] :="Giro";
NOM_TITU[5] :="Telefono";
NOM_PICT[1] :="@!";
NOM_PICT[2] :="@!";
NOM_PICT[3] :="@!";
NOM_PICT[4] :="@!";
NOM_PICT[5] :="@!";
@36,00 SAY SPACE(80);
@36,02 SAY "[ENTER] Selecciona... [ESC] Salir...";
@06,02 to 23,78 double;
dbedit(07,03,22,77,nom_cam,"",nom_pict,nom_titu,.t.,.t.);
if (lastkey()=13);
store rut to rutc;
store nombre to nombrec;
store direc to direcc;
store giro to giroc;
store fono to fonoc;
keyboard chr(13);
endif;
rest scre from panx1;
set key 28 action ayuot;
return
return nil

c:\control\dist002.prg(234) error e0030 syntax error "syntax error at '"@'"

Posted: Fri Oct 03, 2008 2:02 am
by Armando Picon
Quita los ";" de tus sentencias...!!!

Posted: Fri Oct 03, 2008 4:50 am
by wmormar
Creo primero debes de cambiar la forma de pensar, el código mostrado es un código para consola, para FW debes de cambiar unos detalles, coloco el código FW para hacer lo que tu código sugiere.

Code: Select all

#include "FiveWin.ch"

STATIC ownd
STATIC title
STATIC cfactura
STATIC dfecha

FUNCTION main()

   // Se inicializan las variables de captura
   cfactura := Space(10)
   dfecha   := Date()

   // Colocamos en uso las dbf por medio de una funcion
   usedbf()

   title := "DEMO WINDOW CON PETICION DE NOMBRE"
   DEFINE WINDOW ownd FROM 0,0 TO 20,70 TITLE title
      paintwindow()
   ACTIVATE WINDOW ownd ;
      VALID (DBCloseAll(),.t.)

   RETURN NIL

/*******************************************************************************/
STATIC FUNCTION usedbf()
   USE FACTU01 ALIAS "fact1"
   INDEX ON _rut->RUT TO FACTU01
   set index to FACTU01

   USE FACTU02 ALIAS "fact2"
   index on _nfact->nFACT tag factu02
   SET INDEX to FACTU02
   go bottom

   RETURN NIL

/*******************************************************************************/
STATIC FUNCTION paintwindow()
   // Se pintan los SAY
   @ 1,  1 SAY "Factura: " COLOR CLR_BLUE OF ownd
   @ 3,  1 SAY "Fecha: " COLOR CLR_BLUE OF ownd

   // Se asignan los GET para captura, véase que no se necesita READ como en modo consola
   @ 1, 10 GET cfactura PICTURE "@!" OF ownd
   @ 3, 10 GET dfecha   PICTURE "@d" OF ownd

   RETURN nil

/*******************************************************************************/
bueno, espero te sea de ayuda.