Riceverai il messaggio di errore "Errore di sintassi" quando si verifica la funzione definita dall'utente in report writer in FoxPro

Traduzione articoli Traduzione articoli
Identificativo articolo: 113754 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato archiviato. L?articolo, quindi, viene offerto ?così come è? e non verrà più aggiornato.
Espandi tutto | Chiudi tutto

Sommario

Quando si verifica una funzione definita dall'utente (UDF, User Defined Function) nel Generatore di espressioni, viene visualizzato un "Errore di sintassi". Il messaggio di "Errore di sintassi" si verifica perché il Generatore di espressioni Impossibile valutare funzioni definite dall'utente e prevede invece di trovare una funzione interna.

Tuttavia, se la funzione UDF() esiste come file autonomo .PRG e in precedenza è stata testata, la funzione funzionerà correttamente in un rapporto quando il report viene visualizzato in anteprima o stampato.

Informazioni

Un UDF è una routine di programma che deve sempre restituire un valore di un tipo. Può essere creato in due formati: interni ed esterni. Una funzione interna è una subroutine all'interno di un file .PRG e il nome deve essere preceduto dall'istruzione FUNCTION. Una funzione esterna è un unico file .PRG, con un massimo di otto caratteri per il nome.

Il modulo esterno deve essere utilizzato in modo che il report writer possa individuare il come file autonomo .PRG nella directory predefinita o SET PATH elenco (SET PROCEDURE TO non verrà valutato).

Dopo aver creato la funzione, è possibile richiamarlo da finestra di comando o da verificare la funzione un programma. Nell'esempio seguente, è necessaria una funzione per stampare un timestamp (risoluzione minuto) su ogni record. A tale scopo, creare il file STAMP.PRG, che contiene questa riga singola:
   RETURN LTRIM(STR(SECONDS()/60))+':'+LTRIM(STR(SECONDS()%60,10,3))
				
questa funzione restituisce il numero di secondi dalla mezzanotte diviso 60 per visualizzare il numero di minuti (non decimali), concatenato con il modulo di SECONDS per visualizzare il resto della secondi e centesimi di secondi. Per provare questa funzione, digitare i seguenti comandi nella finestra di comando:
   SET TALK ON  && if not on already
   ? Stamp()
				
FoxPro è in deve di restituire una stringa di caratteri composta dai minuti, i due punti (:), i secondi, un separatore decimale e i centesimi di secondi. Anche se il nome della funzione è l'indicatore, devono essere richiamato come STAMP() affinché FoxPro cercare una funzione interna lo stesso nome. Quando non è possibile trovare, FoxPro cercherà quindi esternamente un file con lo stesso nome.

Dopo la funzione è stata correttamente verificata, è possibile utilizzare nel report. Per utilizzare la funzione, è necessario creare un campo nel report e immettere il nome della funzione seguito da una parentesi sinistro e destro, come illustrato nel test precedente.

Proprietà

Identificativo articolo: 113754 - Ultima modifica: sabato 1 marzo 2014 - Revisione: 3.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft FoxPro 2.0
  • Microsoft FoxPro 2.6a Professional Edition per Macintosh
  • Microsoft FoxBASE+ 2.5 per MS-DOS
Chiavi: 
kbnosurvey kbarchive kbmt kberrmsg KB113754 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 113754
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com