Error en runtime

Foros Néfele 4 Harbour Foros Dudas Error en runtime

Topic Resolution: Resolved
  • Este debate tiene 12 respuestas, 5 mensajes y ha sido actualizado por última vez el 3 años, 6 meses por DanielDaniel. This post has been viewed 529 times
Mostrando 7 respuestas a los debates
  • Autor
    Entradas
    • #1028
      DanielDaniel
      Participante

      Estoy haciendo mi primera aplicación y voy con lo básico del wizard

      Persolanicé el footer, compilé y anda todo bien.

      Pongo una wRebar con un wSideNav copiando y pegando el de nefele_samples, dejando solamente un item en el menu ( :AddItem("Inicio","Inicio","home", xc_SideNavOption))

      Luego agrego el método "Inicio" en el main (en TCgi) compilo sin errores y

      Finalmente ejecuto apareciendo este error:

      El siguiente error ha ocurrido: Argument error
      LEN
      BASE 1111
      Arguments: [ 1] = Tipo: U Valor: NIL
      Error code: 0
      Llamado desde LEN(0)
      Llamado desde WREBAR:CREATE(72)  <-------------- esta linea en el codigo fuente es una linea cometada
      Llamado desde APPMENU(105)
      Llamado desde MAINPAGE(20)
      Llamado desde (b)TCGI(33)
      Llamado desde TCGI:MAINFUNCTION(0)
      Llamado desde __OBJSENDMSG(0)
      Llamado desde TCGI:RUN(1243)
      Llamado desde CGI_INIT(22)
      Llamado desde MAIN(16) <--------------------------- esta linea en el código fuente es una inea en blanco

      Hice decenas de pruebas para ver dónde realmente se da el error, comentando lineas y/o bloques enteros y no consigo encontrar el problema.

      Este trozo de código en nefele_samples no da error, pero en mi prueba si.

      ¿Alguna idea de que puedo estar haciendo mal?

       

      Desde ya muchas gracias.

      Daniel

      Loading spinner
    • #1029
      AvatarGabriel Ornelas
      Participante

      Daniel al igual que tu estamos empezando este es mi codigo que de igual manera son pegados de los ejemplos

      Y la funcion donde pone wRebar

      Espero y te pueda dar una luz

      Saludos!

      Loading spinner
      • #1032
        DanielDaniel
        Participante

        Gabriel,

        Muchas gracias por compartir tu código, lo he revisado y salvo un #define que yo tengo, el resto está bastante parecido, propiedad mas propiedad menos.

         

        Saludos

        Daniel

        Loading spinner
      • #1033
        DanielDaniel
        Participante

        Gabriel,

        Una consulta, ¿como hiciste para "pegar" tu código y que quede dentro de un cuadrado bien formateado y coloreado?

        Muchas gracias

        Saludos

        Daniel

        Loading spinner
    • #1031
      Alfredo SanzAlfredo Sanz
      Superadministrador

      Daniel, necesito ver el código de la función AppMenu y el código donde llamas a esta función. Me parece que te está faltando algo.

      Loading spinner
      • #1034
        DanielDaniel
        Participante

        Alfredo,

        Gracias por tu ayuda.

        Este es mi código,

        //Función principal de la app Web
        PROCEDURE MainPage()

        // Comenzamos instanciando la Página Web que queremos crear
        With Object TWebPage():New()
        // Para no tener que estar repitiendo código, la construcción del wRebar y del wSideNav lo tengo en un PROCEDURE
        // que puedo llamar desde todo el proyecto
        AppMenu( :WO )
        :lValign := .T.
        // :cIcon := "MacroSistemas"
        :cTitle := "VirtualMenú"
        :cTitleFooter := "MacroVentas ®"
        :cSubTitle := "Sistema de punto de venta y gestión"
        :cCopyright := '© VirtualMenú By MacroSistemas'
        :cClrCrText := "blue"
        :cClrFootPane := "black"

        // Dentro de la web montamos un primer contenedor bEvel que ocupa 4/12 anchura en pantallas grandes
        // en una mediana o pequeña se adaptará responsivamente ya que no le damos tamaño
        With Object WBevel():New(:WO)
        :aWidth[xc_L] := 4

        With Object WLabel():New(:WO)
        :nFontSize := 5
        :lBold := .T.
        :cAlign := xc_Center
        :lBR := .T.
        :cText := "Hola Mundo"
        :Create()
        End With
        :Create()
        End With

        oCgi:SendPage( :Create() ) // Se crea el HTML final y se envía al navegador saliendo del ejecutable CGI

        End With

        RETURN

        //------------------------------------------------------------------------------
        // Aquí contruyo el wRebar y el wSideNav, al estar en un PROCEDURE aparte puedo crearlos dentro de cualquiera de
        // las tWebPage del proyecto
        // Necesito tWebPage donde he de crearlos, asi que se lo paso como parametro en oParent
        PROCEDURE AppMenu(oParent, cTitle)
        local cRestaurante

        #ifdef POPEYE
        cRestaurante := 'Restaurante Popei'
        cTitle := 'Restaurante Popei'
        #endif POPEYE

        // Instanciamos el wSideNav (El menú lateral)
        with object WSideNav():New(oParent)
        // Como todas las propiedades image de Néfele podemos asiganerle una URL, un path de nuestro Apache o un BASE64
        :cBackImage := "/images/Velero.jpeg"
        :cId := "Menu"
        :cTitle := cRestaurante
        :cClrTiTle := "white"
        :cText := "Menú"
        :cClrText := "white"
        :lShadow := .T. // Esta sombra afecta a los cText y a cTitle y se utiliza para que resalten sobre la imagen del fondo
        // vamos a añadirle opciones a nuesto menú
        // AddItem( cText, cFunction, cIcon, nStyle, aParams, cAction, aBadge {cText,cClass} )
        :AddItem("Inicio","Inicio","home", xc_SideNavOption)
        // :AddItem("Formularios","MainForms","note_add", xc_SideNavOption)
        // :AddItem("Listas","MainListViews","contacts", xc_SideNavOption,,,"Novedad")
        // :AddItem("Alertas","MainAlert","highlight", xc_SideNavOption,,,{"Novedad","red pulse"})
        // :AddItem("Charts","MainCharts","data_usage", xc_SideNavOption,,,{"Novedad","blue pulse"})
        // Como siempre, una vez definidas todas la propiedades procedemos a la creación
        :Create()
        end with

        // Vamos con el wRebar
        with object WRebar():New(oParent)
        // Por defecto el wRebar esta creado para estar dividido en 3 areas, MenuNav, Titulo y Logo
        // Podemos no poner cualquiera de los tres elementos, e incluso podemos utilizar el wRebar como un contenedor
        // y crear dentro de el otros controles.
        :cClrPane := "blue darken-1"
        :lBeforeMain := .T. // Forzamos a que el wRebar este fuera del <main>
        :lMenuNav := .T. // Lleva el icono de apertuta del wSideNav
        :lBlock := .T. // Se queda fijo en la parte alta aunque se produzca un scroll
        :cTitle := cTitle
        :cTitleAlign := xc_Center // Podemos colocar el MenuNav, el Titulo y el Logo en cualquira de las tres posiciones left, center y right
        :cLogo := "/images/MacroSistemas.jpg"
        :cLogoAlign := xc_Right
        // :cUrlToGo := "https://nefele.dev" // Cuando picamos en el Logo nos lleva a esta URL
        :Create()
        end with

        RETURN

        //------------------------------------------------------------------------------

         

        Loading spinner
    • #1035
      DanielDaniel
      Participante

      Resuelto,

      De todas las pruebas que hice ayer faltó esta:

      Comenté las lineas que tiene #ifdef y #endif y ahora anda bien.

      Gracias a todos.

      Saludos

      Daniel

      Loading spinner
      • #1039
        Alfredo SanzAlfredo Sanz
        Superadministrador

        Ok. Ya veo.

        Es porque :cTitle no se puede dejar a Nil y si no está definido POPEYE, cRestaurante es Nil

        Tomo nota para corregirlo en la próxima versión.

        Loading spinner
        • Esta respuesta fue modificada 3 años, 6 meses por Alfredo SanzAlfredo Sanz.
    • #1036
      juan.novedadesjuan.novedades
      Participante

      Hola Daniel también soy nuevo en este foro pero para mostrar el código dentro de un cuadro lo que tienes que hacer (bueno a mi me funciono jejeje) es que en la edición del mensaje a publicar en la parte superior derecha están las opciones visual y HTML, te vas a HTML y te muestra una barra de herramientas como cabecera, te vas a "CRAYON" pegas tu código y listo!, espero ser correcto en la explicación. Saludos Cordiales.

      Loading spinner
      • #1040
        DanielDaniel
        Participante

        Probando pegar codigo

        Loading spinner
    • #1041
      DanielDaniel
      Participante

      Gracia Juan,

      Fucionó perfecto.

      Saludos

      Daniel

      Loading spinner
    • #1043
      Pedro AmaroPedro Amaro
      Superadministrador

      Como te cometa Fredy el error te lo da porque la propiedad cTitle de wRebar es Nil, ya esta corregido en la próxima versión para que no de error.

      Loading spinner
    • #1045
      DanielDaniel
      Participante

      Lo que me sucedió es que estoy acostumbrado a crear .ch donde pongo solamente "defines" sin valor a los efectos de que se compile o no,  partes del código, según personalizaciones que hago de acuerdo al cliente

      En particular en este caso, el .ch solo tiene (por ahora) un linea:

       

      Muchas gracias a todos por la ayuda.

      Daniel

      Loading spinner
Mostrando 7 respuestas a los debates
  • Debes estar registrado para responder a este debate.

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para «permitir cookies» y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar» estarás dando tu consentimiento a esto.

Cerrar