EXPORTAR DATOS FW A PRESTASHOP [SOLUCIONADO PROBLEMA IMAGEN]

EXPORTAR DATOS FW A PRESTASHOP [SOLUCIONADO PROBLEMA IMAGEN]

Postby JESUS MARIN » Mon Dec 26, 2022 8:43 am

Buenos dias a todos y Felices Fiestas.

Quiero, en este año nuevo, poder exportar desde mi aplicación a mi página web.
La verdad es que despues de leer los manuales de importación de Prestashop y todo lo relativo a ficheros CSV, no parece (a priori) complicado.
La idea es exportar los datos y tambien tener sincronizada la Base de Datos con la web.

Pero no se por dónde empezar.

Alguien me ayuda con un ejemplo ?

Gracias
Last edited by JESUS MARIN on Mon Jan 16, 2023 11:09 am, edited 1 time in total.
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby Antonio Linares » Mon Dec 26, 2022 8:49 am

Buenos dias Jesús,

Te responde chatGPT :-) https://chat.openai.com/chat

Para exportar datos desde una aplicación a una página web utilizando Prestashop, necesitarás seguir los siguientes pasos:

Prepara los datos que deseas exportar: Asegúrate de que tienes los datos que deseas exportar en un formato compatible con Prestashop, como un archivo CSV o XML.

Accede a la administración de Prestashop: Inicia sesión en tu panel de administración de Prestashop y ve a la página de importación de datos.

Selecciona el archivo que deseas importar: Haz clic en el botón "Examinar" y selecciona el archivo que contiene los datos que deseas importar.

Especifica el tipo de importación: Selecciona la opción "Importar a una nueva tabla" si deseas importar los datos a una tabla nueva en la base de datos de Prestashop. Si deseas actualizar los datos de una tabla existente, selecciona la opción "Actualizar datos existentes".

Configura las opciones de importación: Configura las opciones de importación según tus necesidades, como el idioma y la moneda que deseas utilizar para los datos importados.

Realiza la importación: Haz clic en el botón "Importar" para iniciar el proceso de importación de datos. Espera a que se complete el proceso y revisa los resultados para asegurarte de que todo ha ido bien.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby Antonio Linares » Mon Dec 26, 2022 8:51 am

Y sigue explicando...

Para exportar una base de datos en formato DBF a un archivo CSV utilizando Harbour, puedes utilizar la función DBF2CSV() de la siguiente manera:

DBF2CSV( cFile, cSeparator, lHeader )
Donde:

cFile es la ruta completa del archivo DBF que deseas exportar.
cSeparator es el separador de campos que deseas utilizar en el archivo CSV. Puedes utilizar cualquier carácter, como una coma (,) o una tabulación (\t).
lHeader es un valor lógico que indica si deseas incluir una fila de encabezados en el archivo CSV. Si estableces este valor en .T., se incluirá una fila con los nombres de los campos en el archivo CSV. Si estableces este valor en .F., no se incluirá ninguna fila de encabezados.
Por ejemplo, para exportar el archivo clientes.dbf a un archivo CSV con una coma como separador de campos y con una fila de encabezados, podrías utilizar la siguiente línea de código:

DBF2CSV( "clientes.dbf", ",", .T. )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby JESUS MARIN » Mon Dec 26, 2022 8:56 am

Buenos dias Antonio
Gracias por responder.

Désde que versión de Harbour está la función DBF2CSV( cFile, cSeparator, lHeader ) ?

Gracias
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby Antonio Linares » Mon Dec 26, 2022 9:02 am

chatGPT habla de una función DBF2CSV() inexistente e innecesaria ya que puedes usar directamente este comando de Harbour:

COPY TO <targetFile> ;
[FIELDS <fieldNames,...> ;]
[<Scope> ; ]
[WHILE <lWhileCondition> ;]
[FOR <lForCondition> ;]
[VIA <rddName>]
[SDF | DELIMITED [WITH BLANK | TAB | PIPE | <xDelimiter> ] ]
[CODEPAGE <cCodePage>] ;
DELIMITED WITH <xDelimiter>
The WITH option specifies the delimiting character to enclose values of Character fields in. <xDelimiter> can be specified as a literal character or a character expression enclosed in parentheses. <xDelimiter> can also be specified as an array with two elements: { <cCharacterDelimiter>, <cFieldDelimiter> }. If this option is used, the array must be enclosed in parentheses. It defines the delimiting characters for field values of type "C" and the delimiters between field values.
COPY TO newfile DELIMITED WTH ( '"', "," )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby VictorCasajuana » Mon Dec 26, 2022 3:06 pm

Utiliza el wsAPI que integra PrestaShop. Justamente es para lo que necesitas.
https://devdocs.prestashop-project.org/8/webservice/

Enviado desde mi motorola edge 20 mediante Tapatalk
--------
¿ Y porque no ?
¿ And why not ?
User avatar
VictorCasajuana
 
Posts: 265
Joined: Wed Mar 28, 2018 4:38 pm
Location: Vinaròs

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby JESUS MARIN » Tue Dec 27, 2022 4:37 am

Buenos dias.
Me he pasado un rato probando la funcion ....

Code: Select all  Expand view

COPY TO newfile DELIMITED WTH ( '"', "," )
 


Al final, para que si me genere correctamente el fichero he utilizado la instruccion

Code: Select all  Expand view
COPY TO newfile DELIMITED WITH ( { "",";" } )


Tal y como estaba redactado no funcionaba.

Sigo con las pruebas
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby VictorCasajuana » Tue Dec 27, 2022 8:38 am

Hola.
Te comparto una clase que hice de prueba para conectar con el Api de Prestashop. No la he utilizado nunca en producción pero las pruebas que lleva prueba.prg funcionan perfectamente :D

https://github.com/VictorCasajuanaMas/Prestashop

utilizo una clase para los xml que me dejó el maestro Cristobal Navarro, espero me permita también incluirla en el repositorio, de lo contrario la quito enseguida :wink: .

La clase TPrestashop es sencilla pero tiene las bases para entender el API y a partir de ahí hacerla crecer. Al principio yo también trabajé la conexión con prestashop mediante ficheros csv, pero para el usuario es más engorroso. Si trabajas a nivel de API lo puedes automatizar absolutamente todo.
Consejo: aunque se puede, no trabajes directamente con la BD MySql que lleva integrada, te puedes volver loco :twisted: .

Si te interesa la clase y la vas vitaminando, estaría bien trabajarla desde el repositorio para poder aprovechar las mejoras 8) .

Gracias y salud :D !
--------
¿ Y porque no ?
¿ And why not ?
User avatar
VictorCasajuana
 
Posts: 265
Joined: Wed Mar 28, 2018 4:38 pm
Location: Vinaròs

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby hmpaquito » Tue Dec 27, 2022 8:45 am

Víctor,

Muchas gracias de nuevo por otra de tus aportaciones.
En mi caso no lo necesito aún, pero da gusto ver tu código que a la misma vez que innova está muy bien diseñado.

Gracias y felicidades !
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby JESUS MARIN » Tue Dec 27, 2022 9:53 am

Muchas gracias Victor

Le daré un vistazo a fondo. (porque a primera vista estoy a años luz)
Ya he conseguido importar algo con el fichero CSV.
Como aquí soy el programador y tambien el usuario, me tendré que conformar.

Iré informando

Saludos y gracias de nuevo

JESUS MARIN
VALENCIA (ESPAÑA)
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby karinha » Tue Dec 27, 2022 12:37 pm

DBF2CSV.PRG

https://www.raymarron.com/clipper/

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7824
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby Marc Venken » Tue Dec 27, 2022 1:30 pm

If you can go for API, the do it !!! Best option if you can handle it.

Export : Spend many days in making csv compatible code etc for Presta.
(Hard in my case)

Finaly I made a dbf file with all data needed (pics, sizes, groups,...) and transformed to xls
I bought once a 3 party import module from Presta where you can select the fields to match the dbf fields and from that moment just update you data.
The import module did a great job, catagories and pics are difficult at Presta, but no problem with the import.
The extra spend money (+- 90 euros) was easily won, since a presta update will give you a update also.
You will spend much more time looking for solutions for problems with import.

Just my 2 cents...

I left Presta some years ago for security reasons, spam and hacking. If you have a good running Presta, keep it else... Consider changing now
Marc Venken
Using: FWH 23.04 with Harbour
User avatar
Marc Venken
 
Posts: 1434
Joined: Tue Jun 14, 2016 7:51 am
Location: Belgium

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby Marc Venken » Tue Dec 27, 2022 2:39 pm

If you would like to change the data of Presta direct, try this code. Just tried it myself and working (change your data, PW,..)

First you will see a xbrowse with the product data that can be changed online
Second a folder with some Xbrowses.
This will give you a start i think.

Code: Select all  Expand view
static function Prestabeheer()
   local oDlg, oFont, nWild := 1, cZoek:=""
   local cList, aFlds, aHdrs, oBold
   local nChoice, uDataSource, nCombo1:= 1 , nCombo2:= 1
   local aTabs:={"Kleuren","Volgorde"}
   local oBrw[5]
   Public oRsATT


  Public cServer     := "YOUR DATA HERE"
  Public cDataBase   := ""
  Public cUser       := ""
  Public cPassWord   := ""
  Public oCn, oRs, oRsATT, oRsVolgorde

  FWCONNECT oCn HOST cServer USER cUser PASSWORD cPassword DATABASE cDatabase

  if oCn == nil
     ? "Failed to connect"
     return nil
  endif

  oRsProduct := oCn:RowSet( "select * from ps_product_lang " )

  xbrowse(oRsProduct)

  cZoek := "1"
  oRs := oCn:RowSet( "select * from `ps_attribute` where `id_attribute` = ? ", { cZoek } )

  oRsAtt:= oCn:RowSet( "SELECT * FROM `ps_attribute_lang` where `id_lang` = ? ORDER BY id_attribute", { "1" } )
  cDbf:="c:\data\temp.dbf"
  oRsAtt:savework(cDbf)

  oRsGroepen:= oCn:RowSet( "SELECT * FROM `ps_category_lang` where `id_lang` = ? ", { "1" } )

  cZoekProduct := "77"

  oRsvolgorde:= oCn:RowSet( "SELECT * FROM `ps_category_product` where `id_category` = ? ", { cZoekProduct } )

  oRsvolgorde:= oCn:RowSet( "SELECT *,P.description_short AS PName FROM ps_category_product C LEFT JOIN ps_product_lang P ON C.id_product WHERE id_category = ?" )

   DEFINE FONT oBold NAME 'CALIBRI' SIZE 0,-12 BOLD
   DEFINE FONT oFont NAME "CALIBRI" SIZE 0,-12
   DEFINE FONT oFontS NAME "Segoe UI" SIZE 0,-09

   DEFINE DIALOG oDlg SIZE 1410,800 PIXEL TRUEPIXEL ;
   STYLE nOR( DS_MODALFRAME, WS_POPUP, WS_CAPTION, WS_SYSMENU,WS_MAXIMIZEBOX, WS_MINIMIZEBOX, WS_THICKFRAME );
   TITLE "Ploegen";
   GRADIENT { { 1, nRGB( 125, 155, 175 ), nRGB( 125, 155, 175 ) } }

   DEFINE BUTTONBAR oBar OF oDlg SIZE 56,56 2007

   @ 90,05 FOLDER oFld SIZE 1400,700 PIXEL OF oDlg ITEMS aTabs

/////////////////////////////////////////////////////////////////  BRW FOLDER 1 /////////////////////////////////////////////////

   aVelden1 :=  { ;
   { "id_attribute"   , "ID"          ,nil,  50 }, ; // 1
   { "id_lang"        , "Taal"        ,nil,  50 }, ; // 2
   { "name"           , "Kleurnaam"   ,nil, 100 }}   // 9

   @ 1,1 XBROWSE oBrw[1] size 1400,100 PIXEL OF  oFld:aDialogs[ 1 ] font oFont ;
      DATASOURCE oRsATT;
      COLUMNS aVelden1;
      AUTOSORT CELL LINES NOBORDER FOOTERS
      //FASTEDIT

     oBrw[1]:nEditTypes = EDIT_GET
     oBrw[1]:SetChecks()


     oBrw[1]:lF2KeyToEdit := .t.  // Edit when F2 is pressed
     oBrw[1]:nHeadStrAligns  := AL_CENTER

   WITH OBJECT oBrw[1]

      :lColChangeNotify := .t.

      :oHeaderFonts     := oBold

      :bClrEdits        := { || { CLR_BLACK, CLR_YELLOW }}
      :bClrRowFocus     := { || { CLR_BLACK, RGB(185,220,255) } }

      :nColDividerStyle := LINESTYLE_LIGHTGRAY
      :nRowDividerStyle := LINESTYLE_LIGHTGRAY
      :bClrRowFocus     := { || { CLR_BLACK, RGB(185,220,255) } }
      :nMarqueeStyle    := MARQSTYLE_HIGHLROWMS

      :bOnChange     := { || oRs:Requery( { oBrw[1]:ID:Value } ), oBrw[2]:refresh() }

      :bRClicked        := {|nRow, nCol| Prestapop( nRow,nCol, oBrw[1], oRsATT ),oBrw[1]:refresh() }

      :bKeyDown   := { |nKey| If( nKey == VK_DELETE,  oBrw[1]:kleurnaam:varput("##DEL"+oBrw[1]:kleurnaam:value), nil )  }

      :lFooter          := .t.
      :bRecSelHeader    := { || "RowNo" }
      :bRecSelData      := { |o| o:KeyNo }
      :bRecSelFooter    := { |o| o:nLen }
      :oRecSelFont      := oFont  // optional
      :nRecSelWidth     := "99999" // required size

   END

   oBrw[1]:CreateFromCode()

/////////////////////////////////////////////////////////////////  BRW FOLDER 2 /////////////////////////////////////////////////


   aVelden2 :=  { ;
   { "id_attribute"      , "ID"       ,nil,  50 }, ; // 1
   { "id_attribute_group", "Groep"    ,nil,  50 }, ; // 2
   { "color"             , "Kleur"    ,nil,  55 }, ;   // 9
   { "id_attribute"      , "File"     ,nil,  70 }}   // 9

   @ 105,1 XBROWSE oBrw[2] size 1400,200 PIXEL OF  oFld:aDialogs[ 1 ] font oFont ;
      DATASOURCE oRs;
      COLUMNS aVelden2;
      AUTOSORT CELL LINES NOBORDER FOOTERS

     oBrw[2]:nRowHeight:= 70
     oBrw[2]:nEditTypes = EDIT_GET
     oBrw[2]:SetChecks()

     oBrw[2]:lF2KeyToEdit := .t.  // Edit when F2 is pressed
     oBrw[2]:nHeadStrAligns  := AL_CENTER

     oBrw[2]:kleur:bClrStd := { || showcolors(oBrw[2]:kleur:Value)  }

   WITH OBJECT oBrw[2]

      :lColChangeNotify := .t.

      :oHeaderFonts     := oBold

      :nColDividerStyle := LINESTYLE_LIGHTGRAY
      :nRowDividerStyle := LINESTYLE_LIGHTGRAY

      WITH OBJECT :file
       :bStrImage     := { || "d:\pictures\kleuronline\"+alltrim(str(oBrw[2]:SelectedCol():Value))+".jpg" }
       :oDataFont     := oFontS
       :nDataStrAlign := AL_CENTER + AL_BOTTOM
       :nDataBmpAlign := AL_CENTER
       :aImgRect      := { nil, nil, -10, nil }

       END

   END

   oBrw[2]:CreateFromCode()

/////////////////////////////////////////////////////////////////  /////////////////////////////////////////////////
   aVelden4 :=  { ;
   { "
id_category"    , "Cat_ID"          ,nil,  50 }, ; // 1
   { "
name"           , "Naam"            ,nil,  200 }, ; // 2
   { "
position"       , "Pos"             ,nil,  50 }}   // 9

   @ 1,1 XBROWSE oBrw[4] size 1100,100 PIXEL OF  oFld:aDialogs[ 2 ] font oFont ;
      DATASOURCE oRsgroepen;
      COLUMNS aVelden4;
      AUTOSORT CELL LINES NOBORDER FOOTERS
      //FASTEDIT

     oBrw[4]:nEditTypes = EDIT_GET
     oBrw[4]:SetChecks()


     oBrw[4]:lF2KeyToEdit := .t.  // Edit when F2 is pressed
     oBrw[4]:nHeadStrAligns  := AL_CENTER

   WITH OBJECT oBrw[4]

      :lColChangeNotify := .t.

      :oHeaderFonts     := oBold

      :bClrEdits        := { || { CLR_BLACK, CLR_YELLOW }}
      :bClrRowFocus     := { || { CLR_BLACK, RGB(185,220,255) } }

      :nColDividerStyle := LINESTYLE_LIGHTGRAY
      :nRowDividerStyle := LINESTYLE_LIGHTGRAY
      :bClrRowFocus     := { || { CLR_BLACK, RGB(185,220,255) } }
      :nMarqueeStyle    := MARQSTYLE_HIGHLROWMS

      :lFooter          := .t.
      :bRecSelHeader    := { || "
RowNo" }
      :bRecSelData      := { |o| o:KeyNo }
      :bRecSelFooter    := { |o| o:nLen }
      :oRecSelFont      := oFont  // optional
      :nRecSelWidth     := "
99999" // required size

      :bOnChange     := { || oRSNewGroep(oBrw[4]:cat_id:Value), oBrw[3]:refresh() }

   END

   oBrw[4]:CreateFromCode()

/////////////////////////////////////////////////////////////////  BRW FOLDER 3 /////////////////////////////////////////////////
   aVelden3 :=  { ;
   { "
id_category"    , "Cat_ID"          ,nil,  50 }, ; // 1
   { "
id_product"     , "Product_ID"      ,nil,  70 }, ; // 2
   { "
position"       , "Pos"             ,nil,  50 }, ;   // 9
   { "
oRsProduct:description_short"       , "Naam"             ,nil,  150 }}   // 9

   @ 110,1 XBROWSE oBrw[3] size 1100,200 PIXEL OF  oFld:aDialogs[ 2 ] font oFont ;
      DATASOURCE oRsvolgorde;
      COLUMNS aVelden3;
      AUTOSORT CELL LINES NOBORDER FOOTERS FASTEDIT

     //oBrw[3]:nEditTypes = EDIT_GET
     oBrw[3]:SetChecks()

     oBrw[3]:lF2KeyToEdit := .t.  // Edit when F2 is pressed
     //oBrw[3]:nHeadStrAligns  := AL_CENTER

   WITH OBJECT oBrw[3]

      :lColChangeNotify := .t.

      //:oHeaderFonts     := oBold

      :bClrEdits        := { || { CLR_BLACK, CLR_YELLOW }}
      :bClrRowFocus     := { || { CLR_BLACK, RGB(185,220,255) } }

      :nColDividerStyle := LINESTYLE_LIGHTGRAY
      :nRowDividerStyle := LINESTYLE_LIGHTGRAY
      :bClrRowFocus     := { || { CLR_BLACK, RGB(185,220,255) } }
      :nMarqueeStyle    := MARQSTYLE_HIGHLROWMS


      //:bOnChange     := { || oRs:Requery( { oBrw[1]:ID:Value } ), oBrw[2]:refresh() }

      :lFooter          := .t.
      :bRecSelHeader    := { || "
RowNo" }
      :bRecSelData      := { |o| o:KeyNo }
      :bRecSelFooter    := { |o| o:nLen }
      :oRecSelFont      := oFont  // optional
      :nRecSelWidth     := "
99999" // required size

   END

   oBrw[3]:CreateFromCode()


/////////////////////////////////////////////////////////////////  /////////////////////////////////////////////////

//   BrwBarploegen( oBar, oBrw )

   ACTIVATE DIALOG oDlg CENTERED

   RELEASE FONT oFont
   oCn:close()

return nil
Marc Venken
Using: FWH 23.04 with Harbour
User avatar
Marc Venken
 
Posts: 1434
Joined: Tue Jun 14, 2016 7:51 am
Location: Belgium

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby cnavarro » Tue Dec 27, 2022 4:04 pm

VictorCasajuana wrote:Hola.
Te comparto una clase que hice de prueba para conectar con el Api de Prestashop. No la he utilizado nunca en producción pero las pruebas que lleva prueba.prg funcionan perfectamente :D

https://github.com/VictorCasajuanaMas/Prestashop

utilizo una clase para los xml que me dejó el maestro Cristobal Navarro, espero me permita también incluirla en el repositorio, de lo contrario la quito enseguida :wink: .

La clase TPrestashop es sencilla pero tiene las bases para entender el API y a partir de ahí hacerla crecer. Al principio yo también trabajé la conexión con prestashop mediante ficheros csv, pero para el usuario es más engorroso. Si trabajas a nivel de API lo puedes automatizar absolutamente todo.
Consejo: aunque se puede, no trabajes directamente con la BD MySql que lleva integrada, te puedes volver loco :twisted: .

Si te interesa la clase y la vas vitaminando, estaría bien trabajarla desde el repositorio para poder aprovechar las mejoras 8) .

Gracias y salud :D !


Si, yo tengo otra clase para la conexión e interaccion de aplicaciones Fivewin con Prestashop en producción diariamente y sin problema realizando un gran número de transacciones entre ambos entornos.
El consejo que te da Victor, es adecuado: no intentes acceder a las bases de datos MySql que utiliza Prestashop directamente porque luego te puede dar muchos quebraderos de cabeza. Es mucho mejor, y más seguro y limpio utilizar el API que proporcionan.
El proyecto contempla clases para el mantenimiento de Productos, categorias, Customers, Orders, además de otra clase base de la que derivan las anteriores.
Si hay alguien interesado, que se ponga en contacto conmigo

utilizo una clase para los xml que me dejó el maestro Cristobal Navarro, espero me permita también incluirla en el repositorio, de lo contrario la quito enseguida :wink:

Si, es una clase que no estaba publicada aún, pero no hay problema. Un regalito de Navidad
Saludos
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: EXPORTAR DATOS DESDE FW A PRESTASHOP

Postby sysctrl2 » Tue Dec 27, 2022 5:49 pm

Maestro Navarro, me lo compartes?
mi correo: SysCtrlSoftware AROBA.GMAIL.COM

SALUDOS.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 1020
Joined: Mon Feb 05, 2007 7:15 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 49 guests