* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Aprile 16, 2024, 06:35:38 pm

Inserisci il nome utente, la password e la durata della sessione.

79 Visitatori, 0 Utenti

Autore Topic: lazreport - primi passi  (Letto 5602 volte)

petrusic

  • Hero Member
  • *****
  • Post: 588
  • Karma: +0/-0
Re:lazreport - primi passi
« Risposta #30 il: Aprile 09, 2022, 12:00:36 pm »

Mi pare che'unica via sicura percorribile sia quella di indicare il percorso completo del file .lrf

Che però ti dovresti ricordare di modificare se metti l'eseguibile da un'altra parte.
Se invece fa quello che ti è stato suggerito ieri, qualche post più sopra, il tuo codice non avrà più problemi, indipendentemente da dove salvi l'eseguibile.

Ciao, Mario

Sono d'accodo con te e, teoricamnte, non fa una grinza, ma, come ho dimostrato nei miei post precedenti, l'istruzione ExtractfilePath, e non capisco perché,  NON ha funzionato. Quindi non mi posso fidare.
ciao ciao

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1266
  • Karma: +43/-0
  • Prima ascoltare, poi decidere
Re:lazreport - primi passi
« Risposta #31 il: Aprile 09, 2022, 12:08:18 pm »

Mi pare che'unica via sicura percorribile sia quella di indicare il percorso completo del file .lrf

Che però ti dovresti ricordare di modificare se metti l'eseguibile da un'altra parte.
Se invece fa quello che ti è stato suggerito ieri, qualche post più sopra, il tuo codice non avrà più problemi, indipendentemente da dove salvi l'eseguibile.

Ciao, Mario

Sono d'accodo con te e, teoricamnte, non fa una grinza, ma, come ho dimostrato nei miei post precedenti, l'istruzione ExtractfilePath, e non capisco perché,  NON ha funzionato. Quindi non mi posso fidare.

Ti ho già spiegato perchè non ha funzionato. E anche consigliato come fare affinchè nel futuro non si riverifichi più il problema.
La problematica delle directory di lavoro e dei file ausiliari abbinati deve essere risolta con l'organizzazione.

I file devono essere raccolti in  "posti" noti e certi. La path assoluta non la imposti a programma, ma la rilevi a runtime. In questo modo non avrai alcun problema.

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

tito_livio

  • Full Member
  • ***
  • Post: 146
  • Karma: +3/-0
Re:lazreport - primi passi
« Risposta #32 il: Aprile 09, 2022, 12:42:04 pm »
Ciao,
io penso che tu abbia il progetto in una cartella ed il report (il file .lrf) in un'altra.
Se è successo questo è perché, quando crei un nuovo report, il designer di lazreport, di default, lo salva nell'ultima cartella utilizzata (per esempio da un altro progetto) che può differire dalla cartella dell'eseguibile.
E' uno scherzetto che faceva pure il Delphi, almeno nelle versioni che ho usato io.
Quindi secondo me tu apri il progetto che si trova in:
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/bin/x86_64-linux
mentre il report, insieme ad altre cose, in:
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio.

petrusic

  • Hero Member
  • *****
  • Post: 588
  • Karma: +0/-0
Re:lazreport - primi passi
« Risposta #33 il: Aprile 09, 2022, 03:26:33 pm »
La problematica delle directory di lavoro e dei file ausiliari abbinati deve essere risolta con l'organizzazione.

I file devono essere raccolti in  "posti" noti e certi. La path assoluta non la imposti a programma, ma la rilevi a runtime. In questo modo non avrai alcun problema.
Forse ho capito cosa vuoi dire. Credo che tu ti riferisca alla finestra Opzioni Progetto -> Percorsi
Ho visto che tutti gli eseguibili dei progetti prodotti sono finiti in :
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/bin/x86_64-linux

in base alla seguente impostazione di base relativa alla destinazione:
../bin/$(TargetCPU)-$(TargetOS)/DomusRatio

Ma io mi sono addentrato nella suddetta finestra solo una volta per aggiungere il percorso relativo alle mie procedure di utilità. Per il resto non mi sono mai preoccupato di nient'altro, pensando che la directory di lavoro per ciascun mio progetto venisse assunta automaticamente all'interno del percorso indicato al momento del 1° salvataggio di un nuovo progetto, cioè:
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/Nome_Nuovo_progetto

Ora mi tocca scoprire quale parte di percorso sia attribuita a  $(TargetCPU) e $(TargetOS).

io penso che tu abbia il progetto in una cartella ed il report (il file .lrf) in un'altra.
Quindi secondo me tu apri il progetto che si trova in:
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/bin/x86_64-linux
mentre il report, insieme ad altre cose, in:
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio.
Si, alla luce di quanto emerso oggi e di cui non avevo mai avuto percezione, è così, come hai  dedotto tu.

 :-[


ciao ciao

petrusic

  • Hero Member
  • *****
  • Post: 588
  • Karma: +0/-0
Re:lazreport - primi passi
« Risposta #34 il: Aprile 09, 2022, 03:52:10 pm »
Ho rivisto le impostazioni interni alla finestra Opzioni Progetto -> Percorsi che ho modificato per puntare sempre alla directory del progetto corrente (DomusRatio) ed allego le immagini relative al suo contenuto di prima e dopo.
Spero che non ci sia altro da modificare.

Poi ho riportato l'istruzione LoadFromFile allo stato iniziale:
Codice: [Seleziona]
  frreport1.LoadFromFile('pdfOrd.lrf');
ed ho riavviato il progetto per verificarne il funzionamento.

Ora non da più Errore per file pdfOrd.lrf non trovato.
ciao ciao

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1266
  • Karma: +43/-0
  • Prima ascoltare, poi decidere
Re:lazreport - primi passi
« Risposta #35 il: Aprile 09, 2022, 06:19:12 pm »
ExpandFileName non cerca ne testa il "nomfile". Ti propone solo dove dovrebbe "essere" se aperto da un SYSTEM UTILITY.

Ovviamente normalmente il file lo "vuole" nella directory di esecuzione, e quella directory verrà sempre indicata dall funzione (a meno che non si usino funzioni particolari di cambio directory di lavoro).

Consiglio spassionato, ma che indica anche una buona organizzazione della logica del programma:

- caricate DB, Report, INIFIles, XML in una sottodirectory della cartella di escuzione, ad esempio "Database" in modo da riferirla sempre in modo univoco (in relativo ./Database/........... o in assoluto come ho accennato in un precedente post).

N.B.: Io uso sempre la path assoluta, perchè in particolari condizioni (ad esempio con tecniche di impersonificazione di profili) può accadere che la directory corrente sia diversa da quella di esecuzione. Da quando usai tali tecniche, con l'"assoluta" non ho mai avuto problemi.

Ciao

L'importante è risolvere .... io intendevo questo (penso che tu abbia saltato di leggerlo) ...
Usa sempre la path assoluta, ma ricavata come ti avevo indicato ... a runtime .... così non puoi sbagliare.

Poi setta pure come hai fatto le path nelle opzioni progetto. Però, secondo me, METTI il file ".lrf" in una sottodirectory. Il tutto verrà più pulito, con l'eseguibile e le eventuali librerie dinamiche in una cartella, e in una sottocartella il file lrf, eventuali DB e altri file di ausilio (json, xml, ini).

Ad esempio, seguendo quello che hai riportato:

/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/                                      <---- File di Progetto
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin/DomusRatio             <---- Eseguibile
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin/DomusRatio/Dati/    <---- Dati (come .lrf, DB, .xml, .ini)

Copiando solo la cartella "bin" e le sottocartelle avrai così il "binario" del tuo progetto che girerà ovunque tu lo metta.

Se usi la path assoluta a runtime, ovunque sia la tua cartella (completa di sottocartella) il tuo programma verrà sempre eseguito.
La path assoluta a runtime non sbaglia mai.

Puoi usare la path relativa comunque se non fai "cose strane".
 
Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1266
  • Karma: +43/-0
  • Prima ascoltare, poi decidere
Re:lazreport - primi passi
« Risposta #36 il: Aprile 09, 2022, 06:37:22 pm »
Giusto come esempio (vedi allegato):

Directory principale solo con eseguibili e DLL, sottocartelle con il resto. A destra l'unica sottocartella importante, DATABASE che contiene i file dati e di configurazione (e anche l'HELP in linea).

Le altre cartelle vengono create a runtime e contengono file ausiliari (log, video generati, etc ....).

Nessuno ti obbliga a fare così, ma in questo modo è più "pulito" il tutto e quando devi distribuire il tuo SW non puoi sbagliare.

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

petrusic

  • Hero Member
  • *****
  • Post: 588
  • Karma: +0/-0
Re:lazreport - primi passi
« Risposta #37 il: Aprile 10, 2022, 03:34:32 pm »
Se usi la path assoluta a runtime, ovunque sia la tua cartella (completa di sottocartella) il tuo programma verrà sempre eseguito.
La path assoluta a runtime non sbaglia mai.

Sapere razionalizzare significa dare ordine pratico e mentale al proprio ambiente e aiutare a ricordare più facilmente in futuro. Ma per potere razionalizzare bisogna imparare.
Per me imparare significa anche capire ciò che mi si consiglia per organizzarmi.
Quindi, come prima operazione da compiere, dovrei capire come agire per generare la path assoluta a runtime. É la prima volta che sento parlare di un tale criterio di organizzazione propria.
Pensavo di avere capito agendo in ciascun programma Lazarus in: Opzioni Progetto -> Percorsi, ma da quello che mi dici vedo che sono completamente fuori strada.
Dando per scontato per tutti che il Percorso assoluto è quello che comincia dalla radice (/), quello che non riesco a capire come posso generare un percorso assoluto a runtime (runtime del SO. o di Lazarus ?)
Allora ti prego di essere paziente e spiegarmi con semplicità cosa dovrei fare per arrivare a generare il
"Percorso Assoluto a RunTime"
a cui ti riferisci
« Ultima modifica: Aprile 10, 2022, 03:36:37 pm da petrusic »
ciao ciao

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1266
  • Karma: +43/-0
  • Prima ascoltare, poi decidere
Re:lazreport - primi passi
« Risposta #38 il: Aprile 10, 2022, 04:09:52 pm »
Quando lanci un eseguibile lo stesso usa per default la cartella dove ESISTE per fare tutte le attività "standard", come ricerca delle librerie dinamiche, apertura e chiusura di file, database, etc ....

Questa cartella la trovi a RUNTIME con:
Codice: [Seleziona]
var Percorso: string;
Percorso := ExtractfilePath(Application.ExeName);

Percorso, in esecuzione varrà (per esempio nel tuo caso):

Codice: [Seleziona]
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/

perchè il file eseguibile si trova li.

Se tu lo copiassi in "/tmp" ad esempio e lanciassi il file da "/tmp" la variabile avrebbe come valore "/tmp/"

Quindi, se tu a runtime davanti al nome dei file che devi aprire di preponi la variabile "Percorso" non avrai problem perchè aprirai i file nella stessa cartella dell'eseguibile, ovunque sia.

Nel tuo caso accadrebbe che:

Codice: [Seleziona]
var Percorso, FileReport: string;
Percorso := ExtractfilePath(Application.ExeName);
FileReport := Percorso + 'pdfOrd.lrf';

aprirebbe il file
Codice: [Seleziona]
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/pdfOrd.lrf"

Se invece lo lanci da "/tmp" (ovviamente eseguibile e lrf devono esistere in "/tmp") il codice sarà uguale ma:

Codice: [Seleziona]
var Percorso, FileReport: string;
Percorso := ExtractfilePath(Application.ExeName);  <---- Percorso varrebbe '/tmp/'
FileReport := Percorso + 'pdfOrd.lrf';

aprirebbe il file
Codice: [Seleziona]
/tmp/pdfOrd.lrf"

A runtime quindi puoi avere la "path" assoluta semplicemente nel modo che ti ho indicato. Vale per tutto e in tutte le condizioni.

Ora, aggiungendo un passo in più, per PULIZIA dell'ambiente è opportuno che il file "pdfOrd.lrf" non stia nella cartella dell'eseguibile a in una sottocartella (ad esempio Dati). In questo caso dovrai cambiare in Lazreport (PER LA PARTE PROGETTUALE) la directory di destinazione del LRF e cambiare il tuo codice affinchè a runtime vi ci acceda in:

Codice: [Seleziona]
var Percorso, FileReport: string;
Percorso := ExtractfilePath(Application.ExeName);
FileReport := Percorso + 'Dati/pdfOrd.lrf';

Ma questo è un passo in più.

Ciao
« Ultima modifica: Aprile 10, 2022, 04:13:43 pm da DragoRosso »
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1266
  • Karma: +43/-0
  • Prima ascoltare, poi decidere
Re:lazreport - primi passi
« Risposta #39 il: Aprile 10, 2022, 10:18:07 pm »
Allora ti prego di essere paziente e spiegarmi con semplicità cosa dovrei fare per arrivare a generare il
"Percorso Assoluto a RunTime"
a cui ti riferisci

Il percorso  di Lazarus (ossia del progetto) lo scegli tu, ed è quello che hai fatto settando l'ambiente di compilazione del progetto in DOMUSRATIO.

E' il runtime dell'eseguibile che deve rilevare questo. Anzi come ti ho spiegato rileva da dove l'eseguibile viene lanciato, consentendoti di non settare path "assolute" nel codice stesso.

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

petrusic

  • Hero Member
  • *****
  • Post: 588
  • Karma: +0/-0
Re:lazreport - primi passi
« Risposta #40 il: Aprile 11, 2022, 03:20:39 pm »
Poi setta pure come hai fatto le path nelle opzioni progetto. Però, secondo me, METTI il file ".lrf" in una sottodirectory. Il tutto verrà più pulito, con l'eseguibile e le eventuali librerie dinamiche in una cartella, e in una sottocartella il file lrf, eventuali DB e altri file di ausilio (json, xml, ini).

Ad esempio, seguendo quello che hai riportato:

/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/                                      <---- File di Progetto
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin/DomusRatio             <---- Eseguibile
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin/DomusRatio/Dati/    <---- Dati (come .lrf, DB, .xml, .ini)

Copiando solo la cartella "bin" e le sottocartelle avrai così il "binario" del tuo progetto che girerà ovunque tu lo metta.

Ho fatto come mi hai consigliato. Ho però dovuto impostare il percorso di destinazione dell'eseguibile, perchè ho provato a non impostarlo ed ho notato che l'eseguibile è stato salvato in:
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/bin/x86_64-linux.

Riporto pertanto in allegato l'immagine relativa alla finestra Opzioni progetto > Percorsi
riporto qui sotto la tree della direcotry DomusRatio, dove puoi vedere l'organizzazione data alla varie sottodirectory
Codice: [Seleziona]
petrus@petrus-pc:~$ tree /media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio
├── Appunti_programma
│   ├── BilancioFineAnnoù.odt
│   ├── ContDomgli.ods
│   └── PianoConti_struttura_teorica.pdf
├── backup
│   ├── DomusRatio.lpi
│   ├── DomusRatio.lpi.bak
│   ├── DomusRatio.lpr
│   ├── DomusRatio.lps
│   ├── DomusRatio.lps.bak
│   ├── frm21.lfm
│   ├── frm21.pas
│   ├── frm21.pas.bak
│   ├── frm2_20211026.pas
│   ├── frm2.lfm
│   ├── frm2.pas
│   ├── frm2ricmovv.lfm
│   ├── frm2ricmovv.pas
│   ├── frm2RicMovv.pas
│   ├── frm3.lfm
│   ├── frm3.pas
│   ├── frm4.lfm
│   ├── frm4.pas
│   ├── frm5.lfm
│   ├── frm5.lfm.bak
│   ├── frm5.pas
│   ├── frm5.pas.bak
│   ├── frm6.lfm
│   ├── frm6.pas
│   ├── frm6.pas.bak
│   ├── frm7.lfm
│   ├── frm7.pas
│   ├── frmmain.lfm
│   ├── frmmain.lfm.bak
│   ├── frmmain.pas
│   └── frmmain.pas.bak
├── bin
│   └── DomusRatio
│       ├── Dati
│       │   └── pdfOrd.lrf
│       ├── DomusRatioRun
│       └── DomusRatioRun.dbg
├── DomusRatioForm2.png
├── DomusRatio.ico
├── DomusRatio.lpi
├── DomusRatio.lpr
├── DomusRatio.lps
├── DomusRatio.res
├── frm2_20211026.pas
├── frm2.lfm
├── frm2.pas
├── frm3.lfm
├── frm3.pas
├── frm4.lfm
├── frm4.pas
├── frm5.lfm
├── frm5.pas
├── frm6.lfm
├── frm6.pas
├── frm7.lfm
├── frm7.pas
├── frmmain.lfm
├── frmmain.pas
├── griglia_e_matita.jpg
├── grigliaMovvCto_2.png
├── grigliaMovvCto.png
├── grigliaMovv.png
├── imgdef_domusRatio.png
└── img_domuRatio.jpg

5 directories, 64 files

Devo chiederti tuttavia qual'é l'utilità di destinare l'eseguibile in fondo al percorso: /media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin/DomusRatio             <---- Eseguibile

No sarebbe bastato fare:
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/Dati/    <---- Dati (come .lrf, DB, .xml, .ini)
 ::)
« Ultima modifica: Aprile 11, 2022, 03:27:56 pm da petrusic »
ciao ciao

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1266
  • Karma: +43/-0
  • Prima ascoltare, poi decidere
Re:lazreport - primi passi
« Risposta #41 il: Aprile 11, 2022, 06:06:49 pm »

Devo chiederti tuttavia qual'é l'utilità di destinare l'eseguibile in fondo al percorso: /media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin/DomusRatio             <---- Eseguibile

No sarebbe bastato fare:
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/Dati/    <---- Dati (come .lrf, DB, .xml, .ini)
 ::)

C'è stato un malinteso, così dovrebbe essere:

Citazione

/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin/                                    <--- Cartella dell'eseguibile con sottocartelle dei dati   
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin/DomusRatio.EXE          <---- Eseguibile NEL SENSO DI FILE ESEGUIBILE NON DI DIRECTORY (in Linux si chiamera DomusRatio ... senza ".EXE" è per quello che l'avevo chiamato così ....
/media/dirdati/dativari/lazarus_progetti/lazarus_progetti_miei/DomusRatio/bin/Dati/                            <---- Cartella contenente i file dei Dati (come .lrf, DB, .xml, .ini)

Nella configurazione del progetto (compilazione) in "Nome File destinazione (-o):" ci metti

Citazione
../DomusRatio/bin/DomusRatio.EXE

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

petrusic

  • Hero Member
  • *****
  • Post: 588
  • Karma: +0/-0
Re:lazreport - primi passi
« Risposta #42 il: Aprile 11, 2022, 06:56:46 pm »
Nella configurazione del progetto (compilazione) in "Nome File destinazione (-o):" ci metti

Citazione
../DomusRatio/bin/DomusRatio.EXE

Si, ho già fatto così. Ora ci siamo. Però .Exe non mi piace. Il file eseguibile l'ho chiamato DomusRatioRun, tanto per avere un riferimento mnmonico immediato,  per impostare da questo momento un criterio univoco personale.

Grazie!
ciao ciao

petrusic

  • Hero Member
  • *****
  • Post: 588
  • Karma: +0/-0
Re:lazreport - primi passi
« Risposta #43 il: Aprile 13, 2022, 07:01:50 pm »
Purtroppo ho ancora difficoltà a compilare il report di stampa.
Nel mio primo report di stampa ho definito:
- una Band per il titolo del Report, contenente una Memo
- una Band per l'intestazione di pagina, contenente più Memo
- una Band per i Dati principali, contenente più Memo.

I campi interni alla Memo, nella Band per il titolo del Report ho inserito, oltre alle costanti, anche i nomi dei campi dichiarati nella Form6. Il primo é interno all'oggetto frReport1.Title, gli altri due sono stati dichiarati nella sezione Implementation della Form.

L'ho fatto dopo avere letto nel manuale "REPORT GENERATOR - FreeReport v2.32 - for LAZARUS, al capitolo 6.2":
Citazione
Using strings and variables
You can use string constants in expressions. As in Pascal, string is a sequence of characters,
rounded by single quotes, for example: ‘Hello, World!'. If a string contains a single quote, it is necessary
to duplicate it: ‘What's new' becomes ‘What''s new'.
You can also use variables or DB fields in expressions, for example: “[Total amount] / 2” is a
valid expression. A valid variable can be a field from any accessible table. Reference to a field should
have the following format: [FormName.TableName.”FieldName”], where FormName is form name or
data module name, where the table is located; TableName is name of the table; FieldName is a field
name in the table. If a field name does not contain blanks, then the quotes may be omitted. If the
parameter FormName is not used, FR searches for the table on the current form (or data module). If the
parameter TableName is not used, FR search for FieldName in current table (current for band, in which
expression is contained).


Ebbene, in esecuzione, ottengo un errore che ho riportato nella 2a immagine allegata, mentre la 1a, é quella relativa al Designer del report.

Probabilmente c'é un errore sintattico, ma rileggendo il manuale, non l'ho capito.
ciao ciao

tito_livio

  • Full Member
  • ***
  • Post: 146
  • Karma: +3/-0
Re:lazreport - primi passi
« Risposta #44 il: Aprile 13, 2022, 07:27:30 pm »
Ciao, per il titolo, e per tutto quello che non dipende da un campo di una tabella, devi usare le variabili del report.
Più tardi metto un esempio.

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18769
  • Topic in totale: 2232
  • Online Today: 83
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 79
Total: 79

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.