Forum Replies Created

Page 19 of 20
  • Andreas Pfeiffer

    Administrator
    April 18, 2023 at 1:24 pm in reply to: user-defined constants

    Thank you for your idea.

    This will be integrated in Omnis Studio 11.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    April 3, 2023 at 9:50 am in reply to: Removing items from a list with $sendall

    Hi Uwe,

    The problem is that you cannot perform a $remove on the list line. Instead you would need to do this on the entire list.

    So if we assume that no line is selected (please note this is different from the current line) then we can simply use the parameter to remove all non selected lines:

    Do lList.$search(1=2) ## remove any selection

    Do lList.$remove(kListKeepSelected)

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    February 20, 2023 at 12:23 pm in reply to: RetstFul with XAMPP

    Hello Angelo,

    You can follow this tech note from Omnis: https://www.omnis.net/developers/resources/technotes/tnjs0003.jsp

    Best regards,

    Andreas

  • Andreas Pfeiffer

    Administrator
    February 20, 2023 at 10:33 am in reply to: How to ‘unload’ a form from a subform?

    Hi Uwe,

    Did you try to leave the name empty? i.e something like:

    Do $cinst.$objs.mysubform.$classname.$assign(“”)

    On the other hand I would probably use an empty form to be displayed when no other form is used. The advantage of this is that you could use any kind of picture or logo that shows the user that no form is chosen.

    Note that this only works if $multipleclasses is set to kFalse which I would recommend. Otherwise you would need to close the individual instance.

    Hope this helps.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    February 9, 2023 at 8:03 am in reply to: Easy way to send library WITH database?

    Hi Uwe,

    There is probably no easy way. And even then somebody would need to extract the problem.

    So in some cases it is worth trying to break the part out where the problem is. In some cases that leads to find out what is going wrong if it is a logical error for example. And if the problem still exists then it is easier to present this to the Omnis support team.

    Best regards,

    Andreas

  • Andreas Pfeiffer

    Administrator
    February 6, 2023 at 9:41 am in reply to: Easy way to send library WITH database?

    Hello Uwe,

    It is possible to store any binary information in the $userinfo of a class i.e.

    Say you want to show a problem that occurs in a certain remote form with a data grid and you need to have your data in a list to show this. You can do the following:

    1. Copy the remote form into a new library. You can do this using drag&drop.

    2. Put a breakpoint in your original library after the data have been loaded into the list variable.

    3. When the code stops at the breakpoint and the list is loaded add a line of code to copy the list into the $userinfo of the class that is in the other library:

    Do $libs.newLibrary.$classes.myRemoteForm.$userinfo.$assign(iDataList)

    Save class newLibrary.myRemoteForm

    Note that we do not want to store the list data into the class of the current library. The command “save class” ensures that the change is written back to the hard drive. Alternatively you could have left the class open in design mode and hit the “save” button to save the class.

    4. Finally comment out the code that loads the list in the remote form that is now in the new library and add a new line to it so that it copies the data from the $userinfo property of the class back into the list:

    Calculate iDataList as $cinst.$class().$userinfo

    You might need to add an empty remote task to make the remote form working in the new library. Also make sure to remove the line of code in your original library that copies the data over to the $userinfo property in the class of the other library.

    5. Test if the remote form runs now from within the new library and if you are able to reproduce the original problem there.

    I hope this helps!

    Best regards,

    Andreas

  • Andreas Pfeiffer

    Administrator
    December 20, 2022 at 8:32 am in reply to: Remove kill button from Forum entry form

    Hello Uwe,

    Thank you for reporting this issue. I have forwarded this to the web team. We will fix this.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    December 9, 2022 at 9:49 am in reply to: Contacts Web Application

    Hi Francesco,

    It might be that the label and the entry field is grouped. To get its properties just ungroup those, please.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    December 2, 2022 at 12:05 pm in reply to: $sessionPools

    Hello Franco,

    If using a session pool you can use a public method to determine the port and database name. The 6th argument of the $makepool method takes the name of the method which will be called for every session in the session pool.

    This method will then have a parameter of type item reference which points to the new session and you can then set its $port and any other session property.

    However nowadays I would not recommend using session pools because creating a new session to a database is very quick and does not take much time. So if you do a logon in the $construct of your remote task using a task variable you will have a session object as a task variable that can then be used whenever you need it to talk to the database. Since the task is encapsulated for every user it is save to do so. For example I have a $logon method in the remote task that is called from its $construct like this (tSessionObj is a task variable of type object, you can assign the subtype if you do not need to set this dynamically):

    # logon to PostgreSQL DB

    Do $extobjects.PGSQLDAM.$objects.PGSQLSESS.$new() Returns tSessionObj

    Do tSessionObj.$port.$assign(iniObj.$getSectionParam(‘DB’,’PORT’))

    Do tSessionObj.$database.$assign(iniObj.$getSectionParam(‘DB’,’DATABASE’))

    Do tSessionObj.$schema.$assign(iniObj.$getSectionParam(‘DB’,’SCHEMA’))

    Do tSessionObj.$logon(iniObj.$getSectionParam(‘DB’,’HOST’),iniObj.$getSectionParam(‘DB’,’USER’,iniObj),iniObj.$getSectionParam(‘DB’,’PASSWORD’)) Returns ok

    Quit method ok

    Note: the iniObj returns information from a text file.

    So in the $construct of your super table class you would do something like this:

    Do $cinst.$sessionobject.$assign(tSessionObj)

    Hope this helps.

    Best,

    Andreas 😀

  • Andreas Pfeiffer

    Administrator
    October 25, 2022 at 1:37 pm in reply to: Omnis Data Bridge Client-side connection management

    Hi Kon,

    I would not recommend running the ODB server on a laptop machine for exactly this reason. As it is a server it supposed to stay available for the clients.

    I hope this helps.

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    October 24, 2022 at 2:25 pm in reply to: Omnis Data Bridge Client-side connection management

    Hello Kon,

    what Omnis version and what ODB version are you using?

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    September 30, 2022 at 11:19 am in reply to: Payload in $listen

    Franco,

    No worries. You have this documented here: https://www.omnis.net/developers/resources/onlinedocs/index.jsp?detail=Programming/09serv.html#notification-channels

    Have a great day!

    Best,

    Andreas

  • Andreas Pfeiffer

    Administrator
    September 30, 2022 at 6:55 am in reply to: Payload in $listen

    Hello Franco,

    Did you declare a parameter of type row in the $notify method? It should then have the payload as one of the values within that row.

    I hope this helps,

    Best regards,

    Andreas

  • Andreas Pfeiffer

    Administrator
    December 9, 2022 at 10:14 am in reply to: Contacts Web Application

    No worries.

    Have fun!

    Best,

    Andreas

Page 19 of 20