La ideas es que escribo codigo JavaScript y que al compilar el archivo preprocesado con extensión ppo sea codigo xharbour.
El codigo no es nada complicado como para que el preprocesador no lo pueda generar y poder codificar para web y escritorio en un sola vez.
Ejemplo de codigo JavaScript
function imphtm(n)
{
vzkcolocul=1
tabla="so";
codrepo="adusgm";
paginacion=150;
vaduan=vzget("adu");
vregi=vzget("reg");
vclien=vzget("vcli");
vdespa=vzget("vdesp");
tpdte=vzget("PDTE");
ttoe=vzget("TOE");
if (ttoe=="T")
{
ccc=" FCH_ENTREG='0000-00-00' "
}else{
ccc=" FCH_ENTREG<>'0000-00-00' "
}
if (vaduan=="")
{
}else{
ccc=ccc+" AND CODI_ADUAN='"+vaduan+"'"
}
if (vregi=="")
{
}else{
ccc=ccc+" AND CODI_REGI='"+vregi+"'"
}
if (vclien=="")
{
}else{
ccc=ccc+" AND COD_CLIEN='"+vclien+"'"
}
if (vdespa=="")
{
}else{
ccc=ccc+" AND DESP='"+vdespa+"'"
}
switch(tpdte)
{
case "L":
ccc=ccc+" AND ETA>'"+dtomy(vzdate())+"'"
break;
case "N":
ccc=ccc+" AND N_DECLAR=''"
break;
case "C":
ccc=ccc+" AND FCH_CANCEL>'"+dtomy(vzdate())+"'"
break;
case "R":
ccc=ccc+" AND FCH_REGUL>'"+dtomy(vzdate())+"'"
break;
}
cleft1=""
cleft2=""
cleft3=""
cwhere=ccc
cgroup=""
chaving=""
corder="NUME_ORDEN DESC"
climit=""
}
La idea es que el archivo ppo lo convierta a xharbour que seria algo asi
function imphtm(n)
vzkcolocul=1
tabla="so";
codrepo="adusgm";
paginacion=150;
vaduan=vzget("adu");
vregi=vzget("reg");
vclien=vzget("vcli");
vdespa=vzget("vdesp");
tpdte=vzget("PDTE");
ttoe=vzget("TOE");
if ttoe=="T"
ccc=" FCH_ENTREG='0000-00-00' "
else
ccc=" FCH_ENTREG<>'0000-00-00' "
endif
if vaduan==""
else
ccc=ccc+" AND CODI_ADUAN='"+vaduan+"'"
endif
if vregi==""
else
ccc=ccc+" AND CODI_REGI='"+vregi+"'"
endif
if vclien==""
else
ccc=ccc+" AND COD_CLIEN='"+vclien+"'"
endif
if vdespa==""
else
ccc=ccc+" AND DESP='"+vdespa+"'"
endif
do case
{
case tpdte="L"
ccc=ccc+" AND ETA>'"+dtomy(vzdate())+"'"
case tpdte="N"
ccc=ccc+" AND N_DECLAR=''"
case tpdte="C"
ccc=ccc+" AND FCH_CANCEL>'"+dtomy(vzdate())+"'"
case tpdte="R"
ccc=ccc+" AND FCH_REGUL>'"+dtomy(vzdate())+"'"
}
cleft1=""
cleft2=""
cleft3=""
cwhere=ccc
cgroup=""
chaving=""
corder="NUME_ORDEN DESC"
climit=""
retu .t.