Sage X3 procedure to launch a report

Here how-to run an X3 report  programmatically.

$TEST_11_B

  #Variable for report parameters
  Local Char TBPAR_BP(15)(1..50),TBVAL_BP(30)(1..50)

  If clalev([F:SDH]) = 0 Then Local File SDELIVERY [F:SDH] : Endif
  Read [F:SDH]SDH0 = "S0112BDF00138"

  #Set parameters value
  TBPAR_BP(1) = "Livraisondeb" : TBVAL_BP(1) = [F:SDH]SDHNUM
  TBPAR_BP(2) = "Livraisonfin" : TBVAL_BP(2) = [F:SDH]SDHNUM
  TBPAR_BP(3) = "numedt" : TBVAL_BP(3) = "0" #num$(ARM_REQ_BP)
  TBPAR_BP(4) = "sitedeb" : TBVAL_BP(4) = [F:SDH]STOFCY
  TBPAR_BP(5) = "sitefin" : TBVAL_BP(5) = [F:SDH]STOFCY
  TBPAR_BP(6) = "clientdeb" : TBVAL_BP(6) = [F:SDH]BPCORD
  TBPAR_BP(7) = "clientfin" : TBVAL_BP(7) = [F:SDH]BPCORD
  TBPAR_BP(8) = "codimp" : TBVAL_BP(8) = "2"

  #Call at the standard X3 Subprog to execute the report
  #The Subprog ETAT needs these parameters:
  #1 - "BONLIV" Name of the report (is not the name of the rpt Crystal file)
  #2 - "ANTEPRIMA" Name of the destination
  #3 - "FRA" Language, leave this blanc to use the default language
  #4 - 0 or 1 it shows or not the info message 'print executed'
  #5 - TBPAR_BP
  #6 - TBVAL_BP

  # Run the report with the info message 'print executed'
  #Call ETAT("BONLIV","VTPRTCED01","",1,"",TBPAR_BP,TBVAL_BP) From AIMP3

  # Run the report without the info message
  Call ETAT("BONLIV","ANTEPRIMA","",0,"",TBPAR_BP,TBVAL_BP) From AIMP3

Return

 

3 Replies to “Sage X3 procedure to launch a report”

  1. Do you know how to save the report to a file via code? I have tried setting up a destination with the output as file, and setting _ExportFile to a location on my server but no errors or files seem to be produced.
    Call ETAT(STRREPORT, “ZPDF”, “”, 1, “”, TBPAR, TBVAL) From AIMP3

    1. HI,

      You can set the output file name through the entry point IMPRIME of the program AIMP3.

      Set the Entry point in X3 for program AIMP3 (Men├╣: Development > Processes > Entry Point)

      In your program write this (tested in X3 version 145):

      [sourcecode language=”vb”]
      $ACTION
      Case ACTION
      When "IMPRIME" : Gosub IMPRIME
      Endcase
      Return

      $IMPRIME

      #ETAT : Name of reports
      #DESTINATION : 4 = File

      If DESTINATION = 4 and ETAT = ‘BONLIV’ Then
      #Set the export file name
      FICHIER = "c:mylocalfile.pdf"

      #If you need to force the export file format …
      #FMTFIC = 29 #29 = PDF Format (see Local Menu 91)
      Endif
      Return
      [/sourcecode]

      Remember to logout-login in order to ‘activate’ the new entry point

      Matteo

Leave a Reply