Esempi di programmazione

From SageDev KB
Jump to navigation Jump to search

Calcolo del massimo in una tabella[edit]

 Filter [F:YCE]      # Azzero eventuale filtro precedente
 Filter [F:YCE] Where YCODMAR = [M:YCE0]YCODMAR Order By YSEQMAR Desc       # filtro
 For [F:YCE]  
   MASSIMO = [F:YCE]YSEQMAR
   Break
 Next
 Filter [F:YCE] # tolgo filtro


Utilizzo nolign[edit]

Questo esempio carica in un riquadro di una scheda dell'articolo una lista di documenti presenti in una apposita tabella tramite transclass.

NBDOC è la variabile di linea del riquadro (colonna PARAMETRO nella scheda Generale della videata)

$LIENS
    Filter [F:YDO] Where YDOCITMREF=[M:ITM0]ITMREF
    nolign=0
    For [F:YDO] 
        nolign +=1
        [M:YT9] = [F:YDO]                              #ATTENZIONE per la transclass nolign parte da 1
        [M:YT9]CAMPOXXX(nolign-1) = [F:YDO]CAMPOXXX    #ATTENZIONE per vettori usare nolign-1 (parte da zero)
    Next
    [M:YT9]NBDOC=nolign
Return

Questo esempio scrive tutte le righe di un riquadro in una tabella (in questo caso non viene gestita la modifica di una riga già esistente, bisogna cancellare tutto e poi qui vengono riscritte tutte le righe)

######################################################################################
$WRITEDOC
    Trbegin [F:YDO]                
      For nolign=1 To [M:YT9]NBDOC        
        [F:YDO] = [M:YT9]        
        [F:YDO]YDOCITMREF = [M:ITM0]ITMREF        #NB: questa riga va messa DOPO la transclass, altrimenti i campi non corrispondenti vengono sbiancati
        Write [F:YDO]
        If fstat Then
            GMESSAGE= "Errore in scrittura dei documenti"
            Break
        Endif
      Next
    If GMESSAGE <> ""
        Rollback
    Else
        Commit
    Endif
Return
######################################################################################
$DELETEDOC
    Trbegin [F:YDO]
     Filter [F:YDO] Where [F:YDO]YDOCITMREF=[M:ITM0]ITMREF
     Delete [F:YDO] Where 1=1
     Filter [F:YDO]
    Commit    
Return