Difference between revisions of "Programmazione"

From SageDev KB
Jump to navigation Jump to search
 
 
(4 intermediate revisions by 3 users not shown)
Line 31: Line 31:
 
# [[Transazioni_tabella|Transazioni su tabella]]
 
# [[Transazioni_tabella|Transazioni su tabella]]
 
# [[Traduzioni|Traduzioni]]
 
# [[Traduzioni|Traduzioni]]
 +
 +
== Esempi vari ==
 +
# aprire [[mappa goggle|google maps]]
 +
# [[funzione replace]]
  
 
== Appunti ==
 
== Appunti ==
Line 40: Line 44:
 
#CONTOBJW è un'azione che permette di disattivare il controllo d'esistenza nella tabella, con parametro OBJET che deve essere impostato con il codice dell'oggetto (per  azione di tipo oggetto - vedi YIC)
 
#CONTOBJW è un'azione che permette di disattivare il controllo d'esistenza nella tabella, con parametro OBJET che deve essere impostato con il codice dell'oggetto (per  azione di tipo oggetto - vedi YIC)
 
#CONTOBJN è un'azione che permette di disattivare tutti i controllo dell'oggetto (per  azione di tipo oggetto)
 
#CONTOBJN è un'azione che permette di disattivare tutti i controllo dell'oggetto (per  azione di tipo oggetto)
#filpath(CARTELLA,nomefile,estensione) costruisce il path assoluto di un file:
 
se CARTELLA inizia per "\\" mantiene la cartella così come passata nel parametro <br />
 
se CARTELLA inizia per "\" da un percordo del tipo "C:\CARTELLA"<br />
 
se CARTELLA non inizia con la barra, da un percorso del tipo "C:\SAGE\SAGEX3\Folders\DOSSIER\CARTELLA\nomefile.estensione"
 
 
#Per recuperare il  percorso base di un dossier ci sono due modi, SETPARAM o filpath:
 
#Per recuperare il  percorso base di un dossier ci sono due modi, SETPARAM o filpath:
 
<pre>
 
<pre>
Line 60: Line 60:
 
&+ " " +func AFNC.TEXTRA("ATABDIV","LNGDES","6033",[F:YFD]YFVVALCOD)
 
&+ " " +func AFNC.TEXTRA("ATABDIV","LNGDES","6033",[F:YFD]YFVVALCOD)
 
</pre>
 
</pre>
# per compilare un sorgente da codice
+
# per compilare un sorgente da codice (compilazione sorgente da programma)
 
<pre>LOCAL Integer MYOK
 
<pre>LOCAL Integer MYOK
 
CALL VALID("TRT","SPEITM", nomap, MYOK) From VALMSKSUB         
 
CALL VALID("TRT","SPEITM", nomap, MYOK) From VALMSKSUB         
</pre>
 
#per recuperare nomi campi di un blocco (riporto codice per MEMO):<br /> 
 
<pre>
 
######################################################################################
 
# SU APERTURA FINESTRA. una sola volta
 
# Utilizzare abbreviazioni per tabelle NON STANDARD. cambiare AMZ in YMZ!
 
$OUVRE
 
  #If GUSER='IT102' Dbgaff : Endif
 
 
   
 
   
 
  # Apro le tabelle utilizzate
 
  If !clalev ([F:YII])  : Local File YITMINF [YII] :  Endif
 
  If !clalev ([F:YII_]) : Local File YITMINF [YII_] :  Endif
 
  If !clalev ([F:YIIT]) : Local File YITMINF [YIIT] :  Endif # riferimento tabella YITMINF x controllare unicità YCODARTCLI
 
  If !clalev ([F:YITM]) : Local File ITMMASTER [YITM] :  Endif
 
 
 
 
 
  #
 
  #Gestione di Blocchi di campi.
 
  #Registrazione utente/data/ora inserimento/modifica/cancellazione su blocco di controlli
 
  #
 
 
  #
 
  #Dichiarazione array con nomi campi contenuti nei riquadri da gestire
 
  #Local Integer MAXCAMPIBLOCK : MAXCAMPIBLOCK=13
 
  #Local Char BLKBUFFER(30)(MAXCAMPIBLOCK)
 
 
  #Local Integer NRBLKYIT1
 
  #Local Integer C
 
  #Local Char TEST(30)
 
  # Recuperare il numero di blocchi da gestire e loro dimensioni
 
  #If !clalev ([F:YMZ]) : Local File AMSKZON [YMZ] : Else Filter [F:YMZ] :ENDIF
 
  #NRBLKYIT1 = func GETNRBLOC('YIT1')
 
  #Local Integer VIDYIT1(NRBLKYIT1)
 
  #Local Char BLK01(30)(NRBLKYIT1)
 
 
 
  #Local Char BLK1(30)(MAXCAMPIBLOCK)
 
  #Local Char BLK2(30)(MAXCAMPIBLOCK)
 
  #Local Char BLK3(30)(MAXCAMPIBLOCK)
 
  #Local Char BLK4(30)(MAXCAMPIBLOCK)
 
  #Local Char BLK5(30)(MAXCAMPIBLOCK)
 
  #Local Char BLK6(30)(MAXCAMPIBLOCK)
 
  #Local Char BLK7(30)(MAXCAMPIBLOCK)
 
  #Local Char BLK8(30)(MAXCAMPIBLOCK)
 
  #Local Char BLK9(30)(MAXCAMPIBLOCK)
 
  #Local Char BLK10(30)(MAXCAMPIBLOCK)
 
 
 
  # partire dal code by AZ
 
  #For C=1 To NRBLKYIT1
 
  #  Call GETBLOCKNAMES('YIT1', C, BLKBUFFER) From YSS02SPEITM   
 
  #  For K=0 To MAXCAMPIBLOCK-1
 
  #      #Assign 'BLK'+num$(I)+'('+num$(K)+')' With evalue('BLKBUFFER('+num$(K)+')')
 
  #      Assign 'BLK'+num$(C)+'('+num$(K)+')' With evalue('BLKBUFFER')
 
  #  Next K
 
  #Next C
 
# fine inizializzazione array con nomi campi x blocco
 
# code by AZ
 
 
#Local Char A(30)
 
#MAXB = func SPEITM.GETNRBLOC('YIT1')
 
#Local Char BLK1(30)(10)
 
#Local Char BLK2(30)(10)
 
#Local Char BLK3(30)(10)
 
#Local Char BLK4(30)(10)
 
#Local Char BLK5(30)(10)
 
#Local Char BLK6(30)(10)
 
#Local Char BLK7(30)(10)
 
#Local Char BLK8(30)(10)
 
#Local Char BLK9(30)(10)
 
#Local Char BLK10(30)(10)
 
#Dbgaff
 
#For I=1 To MAXB
 
#    A='BLK'+num$(I)
 
#    #Call GETBLOCKNAMES('YIT1', I, evalue(A)) From SPEITM   
 
#    Call GETBLOCKNAMES('YIT1', I, BLK10) From SPEITM   
 
#    For K=0 To 9
 
#        Assign 'BLK'+num$(I)+'('+num$(K)+')' With evalue('BLK10('+num$(K)+')')
 
#    Next
 
#Next
 
#Infbox BLK1(0)-BLK1(1)-BLK1(2)-'#'-BLK2
 
 
#End code AZ
 
 
 
  #Filter [F:YMZ]
 
  #Filter [F:YMZ] Where [F:AMZ]CODMSK='YIT2' Order By [F:AMZ]NUMBLOC Desc
 
  #Local Integer VIDYIT2(func GETNRBLOC('YIT2'))
 
 
 
  #Filter [F:YMZ]
 
  #Filter [F:YMZ] Where [F:AMZ]CODMSK='YIT3' Order By [F:AMZ]NUMBLOC Desc
 
  #Local Integer VIDYIT3(func GETNRBLOC('YIT3'))
 
 
 
  # Define variabili flag per registare se vengono fatti cambiamenti ai campi.
 
  # IN registrazione verrà salvato il timestamp di salvataggio
 
Return
 
 
 
</pre>
 
</pre>

Latest revision as of 10:12, 24 June 2021

Programmazione base[edit]

  1. Istruzioni base
  2. Lettura tabelle
  3. Gestione file e cartelle
  4. Gestione videate e campi
  5. Variabili globali predefinite
  6. Choose
  7. Entry Points
  8. Esempi

Programmazioni specifiche[edit]

  1. Aprire un URL con il browser della postazione client
  2. Far eseguire un comando al sistema operativo
  3. Stampa di un pdf
  4. Conoscere hostname che esegue il client
  5. Istruzioni SQL
  6. Gestione tracce
  7. Gestione errori a run time
  8. Finestre di dialogo
  9. Far eseguire SPV e SUB prima dello SPE

Programmazioni composte[edit]

Vengono elencate di seguito delle programmazioni che richiedono sia codice che parametrizzazione:

  1. Come fare debug
  2. Import/Export
  3. Gestione testata/dettaglio
  4. Invio mail
  5. Numeratori
  6. Transazioni su tabella
  7. Traduzioni

Esempi vari[edit]

  1. aprire google maps
  2. funzione replace

Appunti[edit]

  1. AFFZO: il no-lign non è necessario, aggiorna sempre tutta la colonna di una tabella
  2. NBLIG è il numero di riga di visualizzazione, non è uno dei campi chiave
  3. all'interno di una subroutine si può fare il casting tra CLBfile(Clob) e char
    da metodo chiamante a metodo chiamato invece la differenza di tipo tra argomento e parametro genera errore
  4. E' possibile inserire delle azioni all'interno di un tipo dato: un esempio è il tipo dato YIT (con funzioni YGESTYIT, YSTRYIT, YCTRYIT)
  5. Per vedere in quali punti è utilizzato un tipo dato eseguire la seguente query in sql server:
    select * from SAGEDEV.AMSKZON where CODTYP_o='YIT'
  6. CONTOBJW è un'azione che permette di disattivare il controllo d'esistenza nella tabella, con parametro OBJET che deve essere impostato con il codice dell'oggetto (per azione di tipo oggetto - vedi YIC)
  7. CONTOBJN è un'azione che permette di disattivare tutti i controllo dell'oggetto (per azione di tipo oggetto)
  8. Per recuperare il percorso base di un dossier ci sono due modi, SETPARAM o filpath:
filpath("","","")

Local Char    MACHIN(20)                         
Local Char    IRS(2)                               
Local Char    OS(20)
Local Integer I
Local Char YDIR(250)
Call SETPARAM(YDIR,MACHIN,IRS,OS,I) From PARFICBAN
  1. Per andare a capo a metà di una riga di codice basta mettere come primo carattere della nuova riga un &
        [M:YI3]YFVABBR(nolign-1) = [F:YFD]YFVVALCOD + " " +func AFNC.TEXTRA("ATABDIV","SHODES","6033",[F:YFD]YFVVALCOD)
&+ " " +func AFNC.TEXTRA("ATABDIV","LNGDES","6033",[F:YFD]YFVVALCOD)
  1. per compilare un sorgente da codice (compilazione sorgente da programma)
LOCAL Integer MYOK
CALL VALID("TRT","SPEITM", nomap, MYOK) From VALMSKSUB