Ir al contenido principal

Call Screens through Code in Sage X3


Fuente origen: https://www.greytrix.com/blogs/sagex3/2012/10/10/call-screens-through-code-in-sage-x3/

By  | October 10, 2012

Off lately, we have been exploring ways to calling pop up screens in Sage X3. Now let us add one more leaf, though bit more technical, in this series.
Although, calling up screens through action is the more preferred way, however, we came across a situation wherein a single action execution needs to be capable of calling different screens based on the data or type of the parent screen. Let me explain it in the context of the project that I am working on:
I have a developed a Screen say “XSCR0” that can be called from multiple modules viz, Sales, Purchase, Manufacturing etc. Now, there is a button (action) in this screen that again pulls up a another screen that has data (fields) relevant to the Module from which the “XSCR0” has been called. To achieve this functionality, I have created screens that have fields relevant to the modules I am working with. On the button click, I call up the required screen by using the following switch statement:
Case SOURCEMASK
When “Purchase”        : Call SHOW_POINFO
When “Sales”                : Call SHOW_SOINFO
When Default
Endcase
Now each case will contain following code snip function:
Subprog SHOW_ POINFO
Local Integer A_REPONSE
Global Integer GPRE_VIEW
If dim(A_WINDPREV)<=0 : Local Char A_WINDPREV(30) : Endif
Local Mask XSCR0[XSCR1] Local Inpbox “Windowname” From GFONCTION At A_STAMP With A_WINDPREV Mask [XSCR1] As [SIM_] Boxact [SIM_] Boxinp [SIM_] Using A_REPONSE
#You can also access fields on the pop up screen.
DETAILS = [M:XSCR1]FLD001
#Once the screen is closed.
Close Local Inpbox [SIM_] Close Local Mask [XSCR1] Kill GPRE_VIEW
End
I know this is a bit technical but definitely effective. I am still looking for better “no code” alternative for this scenario but as of now, this gives me what I need. Hope this might be helpful to you as well.

Entradas populares de este blog

SAGE X3 SILENT IMPORT (IMPORTSIL) WITH ERROR CATCHING

FUENTE ORIGINAL: https://pluginx3.com/en/blog/post/sage-x3-silent-import-importsil-with-error-catching.html You already know how to manually generate a CSV file in order to import it threw a template in Sage X3. But If you wonder how to catch detailed errors after a silent import here is the solution. Sometimes you need to catch the incoming errors in order to alert the end-user regarding an issue. Closed period, wrong date etc …. Unfortunalty the standard Sage X3 silent import function doesn’t natively show the detailed errors during the import process. Call IMPORTSIL([M:IMP2]MODIMP,[M:IMP2]NOMIMP) From GIMPOBJ And the standard function ERR_IMPORT will only show the overall status of the importation and not the detailed errors. IMPORTSIL function is pushing all the log data into a tracefile in order to avoid any popup on end-user screen. So you have a log file available in order to search for errors in it. Sage X3 runtime is using the same principals standards as any shell for log...

Sage X3 Create a new CLOB Text

Here how to create a CLOB text Funprog F_CRELOB ( YABRFIC , YTEXTE ) Value Char YABRFIC Value Char YTEXTE Local Char XXRTFTXT ( 250 ) ( 3 ) XXRTFTXT ( 0 ) = "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 MS Sans Serif;}}\viewkind4\uc1\pard\f0\fs17 " XXRTFTXT ( 1 ) = YTEXTE XXRTFTXT ( 2 ) = "\par}" Local Char X_RET Local Integer XXOK Local Char XCHAMPLIEN : XCHAMPLIEN = "YYYY" Global Char YYYY : YYYY = YABRFIC Local Clbfile WWCLOB Local Mask ACLOB [ M :ACL ] Setlob WWCLOB With XXRTFTXT [ M :ACL ] CLOB = WWCLOB Call CRE_CLOB_ACL ( XCHAMPLIEN , XXOK ) From TRTX3TEX Close Local Mask [ M :ACL ] X_RET = YYYY Kill YYYY End X_RET

How To Add a Custom Selector for the Screen Field

Fuente original del artículo:   https://www.rklesolutions.com/blog/how-to-add-a-custom-selector-for-the-screen-field January 5, 2022 By RKL Team Leave a Comment There may be times when you want to add a pop-up window to select a field for a screen. Sometimes this can be handled automatically if the field is a standard X3 object field (i.e. when selecting a product with a type of ITM from the ITMMASTER table). There may be other times where a standard look-up is not available, and some custom code is required to do the selection window. We'll show you how to add a custom selector of your choosing to the screen field. ADD SELECT ON SCREEN FIELD The first step is to add the appropriate code to the field on the screen in Sage X3: Go to  Development > Script Dictionary > Screens Select Your Screen Select the field to have the lookup for  by moving your cursor to it on the screen. The field should show with a blue background. Select a type of "Selection" , and an  ac...