Forum Replies Created

Page 1 of 2
  • Diego Mendoza Muñoz

    Member
    January 10, 2026 at 9:49 pm in reply to: Smartlist is outsmarting me

    Comentario aparte, usa la clase table como un modelo de entidad, o sea validaciones de negocio, por ejemplo precio no puede ser mayor al costo, tiene que tener email, no como un manager de base de datos, si usas un objeto usalo como modelo, entonces al momento de mandar un insert, iList (table class)
    if iList.$validate()

    iList.$dowork() returns flagOk

    if flagOk

    else

    notificationManager.$showOnScreen(iList.$statementobject.$nativeerrortext)
    end if

    else

    notificationManager.$showOnScreen(iList.$getErrorText())
    end if

  • Diego Mendoza Muñoz

    Member
    January 10, 2026 at 9:40 pm in reply to: Smartlist is outsmarting me

    Pequeño comentario al usar iList as $cinst estas anulando el uso real de la clase tabla, estas usandolo como una clase object, no seria mejor usar clases objetcts?? podrias crear el metodo getDefinedList, creo que te simplificaria, no tendrias que estar haciendo override y seria mas claro. anexo un proceso que yo uso con un helper de uso generico

    ——————-
    A small comment: when using iList as $cinst, you’re canceling the actual use of the table class; you’re treating it like an object class. Wouldn’t it be better to use object classes? You could create a getDefinedList method; I think it would simplify things, eliminate the need for overriding, and make things clearer.
    I’ve attached a process that I use with a generic helper.

  • Diego Mendoza Muñoz

    Member
    September 4, 2025 at 7:13 pm in reply to: Issues with oBrowser in a Complex Grid

    I managed to synchronize two complex grids using this function.

    In the left complex that manages the scroll, I put the event. When it receives the event, it transfers it to the other complex.

    On evHScrolled,evVScrolled
    Do $cinst.$objs.ListaBotones.$vscroll.$assign($cfield.$vscroll)

  • Diego Mendoza Muñoz

    Member
    February 27, 2025 at 10:16 pm in reply to: Reserved property name conflict

    look at this in this library I built a window with complex functions that use full notation.could be something interesting

    https://www.omnis.net/community/forums/forum/discussion/contribution-to-the-community-comment/

  • Diego Mendoza Muñoz

    Member
    February 19, 2025 at 11:31 pm in reply to: Reserved property name conflict

    It may not be answering your question, but this contribution may help you.

    Omnis has an interesting way of working with reserved names try this.

    Create a function on the window or some object and add the $customProp method and then add $customProp.$assign

    Then you can access the calculate function by directly calling the function. I will send you photos so you can understand better.

    The notation in fat client is super powerful but there are not enough examples to fully understand it, each one has to discover.

  • Diego Mendoza Muñoz

    Member
    January 27, 2025 at 4:27 am in reply to: Speed issues between Omnis and Postgres

    The best way to avoid latency in a web application is to make rest calls, create a restful remote task, if you can create a service api or else create a post /restenpoint/exectsql/{apikey} method and send a post the sql query , it works but you have to be careful with security.
    This way all calls are executed locally and will reach your webapp as soon as they finish executing..
    In my case I use pure javascript xhr and I respond to the form and it works well, I make several calls and while the server sends the data I capture and validate them

    • Diego Mendoza Muñoz

      Member
      January 28, 2025 at 3:08 am in reply to: Speed issues between Omnis and Postgres

      a simple example of the implementation.
      😀

      $sendall($ref.itWorks!!.$assign(ktrue),$ref.hasInteres=ktrue)
      Calculate formInst as $cinst
      JavaScript:var request = new XMLHttpRequest()
      JavaScript:request.open("GET", url, true)
      JavaScript: request.timeout = timeOut;
      JavaScript:request.onload = function() {
      JavaScript:console.log("queue status response REST "+this.status)
      JavaScript: if (this.status=="200"){
      JavaScript: formInst.callMethod("myPublicOrPrivateMethod",this.response);
      JavaScript: } else {
      JavaScript: formInst.callMethod("myPublicOrPrivateMethod",this.response);
      JavaScript: }
      JavaScript:}
      JavaScript:request.send(postData)
  • Diego Mendoza Muñoz

    Member
    January 14, 2025 at 12:41 am in reply to: Electronic Invoices – State of the Union?

    <font style=”vertical-align: inherit;”><font style=”vertical-align: inherit;”>In my country the e invoice are in xml my solution into a text block 😀 the xml object is very complex to use

    </font></font>

  • Diego Mendoza Muñoz

    Member
    January 11, 2025 at 4:53 am in reply to: Secure Logon to Omnis Web App

    My solution was to create a sessionState table.

    When connecting I have a service rest /getsessionid?user={user} returns a uuid and on each change I send a saveSession/user/key?value={value}.

    when starting command /getState/{key}

    first command “isLoged”, the service returns me (for isLoged){key=”isLoged”,keyResult=”true”,extraData=”{lastView=”sf_ViewSales”,lastParams=”2025-01-11″}” }

    where sf_ViewSales is a remote form.

    and when receiving I ask the main Form to show the page, taking into account that my application is a SPA and just to call setContentView the the app open a form

  • $sendcarryon.$assign(kTrue) is a async method the loop have to be inside the event

    aa.png is the “next” method

    captura is the progress $event method

  • Diego Mendoza Muñoz

    Member
    October 8, 2024 at 3:58 am in reply to: File upload/download

    first assign a variable to dataname in the File Control object (visual object), then you have to take the event (evFileUploaded or evDownloadSent), the file is load in the variable

  • Diego Mendoza Muñoz

    Member
    October 8, 2024 at 3:49 am in reply to: Passing a parameter to a subwindow

    you have to passing parameter before assign classname

  • Diego Mendoza Muñoz

    Member
    August 6, 2024 at 11:49 pm in reply to: IOS Dev : is it possible to Include AR Kit

    In android is very simple you can create yor own class in android studio and make the integrations with AndroidApp and Omnis Wrapper.
    In IOS idk, i live in south america and all the retail commerce work with android.
    if you have any question about how integrate a kotlin class to OmnisWrapper text me. 🙂

  • Diego Mendoza Muñoz

    Member
    July 27, 2024 at 4:08 am in reply to: Gantt y Calendario

    eres un bot? o hablas en otro idioma?

  • Diego Mendoza Muñoz

    Member
    January 27, 2025 at 4:35 am in reply to: Speed issues between Omnis and Postgres

    What would be the difference between using cte and subqueries?

    In your example it has the same result.

    SELECT 
    (SELECT count(1) as count1 FROM table1)
    ,(SELECT count(1) as count2 FROM table2)
Page 1 of 2