Programmi specifici

From SageDev KB
Jump to navigation Jump to search

Aprire un URL con il browser della postazione client[edit]

Local Char URL(250)
URL="intranet.sagedev.it/bax/rdi3/check.asp?cod=wert" # usare apici singoli con dentro i doppi apici se necessario

Callui RETOUR="" With "UIAction="+chr$(1)+"OpenFile",
& "UILocalDir="+chr$(1) + "HTTP",
& "UILocalFile="+chr$(1) + URL
& ,
& "UIAdxPubSubFile=" + chr$(1) + "1"

Esempio:

Value Clbfile SREQUETE
Value Char PROTOCOL()

SREQUETE='kb.sagedev.it/index.php?title=Parametrizzazione'
PROTOCOL='HTTPS'  # l'altro valore possibile è 'HTTP'
Callui RETVALUE="" With     "UIAction=" + chr$(1) + "OpenFile",
&                           "UILocalDir=" + chr$(1) + PROTOCOL,
&                           "UILocalFile=" + chr$(1) + SREQUETE

Aprire un documento word[edit]

Dalla documentazione di Sage alla voce SYSTEM

 
Char FICHIERS(100)(50)
System FICHIERS = '#@'C:\Program Files\Microsoft Office\Office\WINWORD.EXE' 
'E:\tmp\document.doc''

Aprire un pdf[edit]

Local integer NBPAR_MAX: NBPAR_MAX =10
Local char TBPAR(20)(1..NBPAR_MAX)
Local char TBVAL(250)(1..NBPAR_MAX)

YFILE = "\\sagedev.it\PDF\dex\leg.pdf" #Il percorso del file deve essere in formato \\server\... e accessibile all'utente di sage

TBPAR(1) = "docjoin"
TBVAL(1) = YFILE

#mettere 0 per non avere il messaggio; 1 per visualizzarlo
Call ETAT("ADOC","","",0,"",TBPAR,TBVAL) From AIMP3

Su questo modo vedi anche alla pagina Stampe.

    Local Char V2(250)
    YFILE = "C:\USERS\ZAM\DOCUMENTS\CLIENTI\A.pdf"
    Call URL(YFILE,V2) From PRDINFLIB

Far eseguire un comando al sistema operativo[edit]

Local Integer YSTAT
YSTAT = 0
Call SYSTEME ("","C:\TMP\test.cmd","b",YSTAT) From ORDSYS
Infbox num$(YSTAT)

Per stampare un'etichetta su una stampante di rete tramite il sistema operativo:

Call SYSTEME("","type"-YFILE-"> \\serverX3\PM43c001","",YSTAT) From ORDSYS

Per aprire il browser con una certa pagina web:

Call SYSTEME("",'"C:\Program Files\Internet Explorer\iexplore.exe" "www.google.it"',"",YSTAT) From ORDSYS

Un altro modo (da verificare) di far eseguire un batch è:

System CHAINE="C:\test.bat" (fonte)

Stampa etichette[edit]

Chiamata a sistema[edit]

La stampa di un'etichetta da dos si effettua in uno di questi modi (porta 9100):

  • type file.eti > indirizzo_stampante (per es: type file.eti > \\serverX3\StampanteTermica)
  • echo "testo" > indirizzo_stampante

Per stampare un'etichetta su una stampante di rete tramite il sistema operativo:

Call SYSTEME("","type"-YFILE-"> \\serverX3\StampanteTermica","",YSTAT) From ORDSYS

Questa riga

echo %1 > %2

può essere messa dentro un file .bat e richiamarla da programma:

Call SYSTEME("","file.bat nomefile.eti indirizzo_stampante","",YSTAT) From ORDSYS

Action[edit]

E' possibile creare un ACTION (GESACT), per esempio YPRINT, con modello "Programma" e si indica il file sorgente YAAA che contiene il codice da richiamare.

E' possibile anche creare un ACTION (GESACT) con modello "Fuori modello"; si indica il file sorgente YAAA che contiene il codice da richiamare e in "Sotto-programma" si indica il SubprogAAA da richiamare.

In pratica il sistema farà una Call SubprogAAA(...) from YAAA. I parametri andranno specificati nella scheda "Parametri" dell'azione.

Ottenere info server/client[edit]

Conoscere hostname che esegue il client[edit]

Per esempio, può essere utile per sapere quale server citrix esegue il client

Getui RETOUR = "" With "ComputerName"
K = instr(1,RETOUR,"=")
Infbox "Hostname = " + right$(RETOUR,K+1)

Uso di adxmac e nomap[edit]

Il comando adxmac(NUMERO) restituisce il nome del server in cui si trova un'applicazione (indicata dal parametro da -2 a 8):

  • NUMERO= -2 indirizzo di rete della postazione client (esempio con citrix: "serverCitrix.sagedev.dmn")
  • NUMERO= -1 macchina sulla quale gira il runtime Adonix
  • NUMERO= 0 nome del server sul quale è installata l'applicazione corrente
  • NUMERO= 1-8 nome del server sul quale è installata la prima, seconda... ottava applicazione

Restituisce un Char; i valori restituiti da adxmac dipendono dai valori della variabile [S]adxmother (vedi in help .chm).

nomap(NUMERO) da il dossier corrente, figlio ecc...

  • nomap(0) da dossier corrente (esempio "SAGEDEV")
  • nomap(1) da dossier padre (esempio "DX")
  • nomap(2) da dossier corrente (esempio "X3")


Vi è perfetta corrispondenza tra adxmother(I) e nomap(I+1).

Sistema operativo[edit]

Local Char MACHINE(30) , OS(10)
MACHINE = adxmac(0)
Call GET_OS (MACHINE,OS) From ORDSYS

Restituisce “unix”, “DOS” or "Windows"..