martes, 1 de febrero de 2011

WebSpeed: Subir Fichero.

El siguiente fragmente de código muestra un ejemplo de cómo subir archivos usando protocolo HTTP desde una página Web con WebSpeed.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<META NAME="AUTHOR" CONTENT="Your Name">
<TITLE>WebSpeed Script</TITLE>
</HEAD>

<BODY>
<form name="formu" method="POST" action="pagina1.html" ENCTYPE="multipart/form-data">
Archivo:<input type="file" value="" name="archivito" />
<input type="submit" value="enviar" name="smt" />
</form>
<SCRIPT LANGUAGE="SpeedScript">
IF REQUEST_METHOD = "POST" THEN
DO:
DEFINE VAR mFile AS MEMPTR NO-UNDO.
DEFINE VAR cfile AS CHAR NO-UNDO.
ASSIGN mFile = get-binary-data("archivito").
ASSIGN cfile = get-value("archivito").
DEF VAR oFile AS CHAR NO-UNDO.
oFile = GET-CONFIG("fileUploadDirectory") + "\" + cfile.
{&out} 'Binario ' oFile.
COPY-LOB FROM mFile TO FILE oFile NO-CONVERT.
END.
</SCRIPT>
</BODY>
</HTML>

jueves, 27 de enero de 2011

Obtener Datos de la Conexion desde el Cliente

DEF VAR id AS CHAR FORMAT "X(32)".

INPUT THROUGH hostname.
SET id.
ASSIGN id.
INPUT CLOSE.

MESSAGE id
    VIEW-AS ALERT-BOX INFO BUTTONS OK.
UTILIDADES

NUM-DBS : Devuelve el número de bases de datos conectadas.
LDBNAME : Devuelve el nombre lógico de la base de datos.
PDBNAME : Devuelve el nombre físico de la base de datos.
DBPARAM : Devuelve los parámetros de conexión.
DICTDB: Alias de la Primera de las Bases de Datos Conectadas.

miércoles, 26 de enero de 2011

Moverse por un Browser.

Posicionarse:
    REPOSITION brw:handle TO ROW numFila.

Seleccionar varias:
        DEFINE VARIABLE iCont AS INTEGER NO-UNDO.
        DEFINE VARIABLE cAux AS CHARACTER NO-UNDO.
        DEFINE VARIABLE hBrowse AS HANDLE NO-UNDO.

        hBrowse = DYNAMIC-FUNCTION('getBrowseHandle':U IN h_handleBrowse).
        REPEAT iCont = 1 TO hBrowse:NUM-SELECTED-ROWS:
            hBrowse:FETCH-SELECTED-ROW(iCont).
            cAux = DYNAMIC-FUNCTION('colValues' IN h_sdo, INPUT '<lista de campos>').
    /* Ahora en cAux tendrás los valores */
        END.


Browser estatico:
    DEFINE VARIABLE hBrowse AS HANDLE NO-UNDO.
    DEFINE VARIABLE hAux AS HANDLE NO-UNDO.
    DEFINE VARIABLE iAux AS INTEGER NO-UNDO.

    hBrowse = DYNAMIC-FUNCTION('getBrowseHandle':U IN h_handleBrowse).
    /* Si tuvieramos directamente accesible el browse no haría falta dado que ya tendríamos el handle del mismo */

    hAux = hBrowse:QUERY.
    hAux = hAux:GET-BUFFER-HANDLE.
    hAux = hAux:BUFFER-FIELD("<nombre campo>").
    REPEAT iAux = 1 TO hBrowse:NUM-SELECTED-ROWS:
        hBrowse:FETCH-SELECTED-ROW(iAux).
        MESSAGE hAux:BUFFER-VALUE VIEW-AS ALERT-BOX.
    END.

martes, 25 de enero de 2011

Instalar Progress ODBC de 32 bits, en una maquina de 64 bits.

La solución es ejecutar en el directorio C:\WINDOWS\SysWOW64, el siguiente comando (siempre instalando la versión 10.2A):
C:\>odbcconf /a {INSTALLDRIVER "Progress OpenEdge 10.2A|Driver=c:\progress\openedge10.2A\bin\pgoe1023.dll|Setup=c:\progress\openedge10.2A\bin\pgoe1023.dll|DriverODBCVer=3.50|FileUsage=0|ConnectFunctions=YYN|APILevel=1|UsageCount=1"}