Newsgroup: it.comp.appl.access
Titolo: altezza righe di un report

buongiorno a tutti, 
 
ho un report con un sottoreport voci e dovrei cliccando un pulsante 
 
ricevere l'altezza attuale fra una riga e l'altra in cm (suppongo sia l'altezza del corpo del sottoreport)
 
e poi settare un valore diverso di altezza riga con un altro pulsante
 
sapete indicarmi la retta via?
 
grazie a tutti.


volevo dire che dovrei settare un altezza diversa dell'altezza del corpo del sottoreport
 
è possibile?


sono riuscito in questo modo:
 
    DoCmd.OpenReport "sottoreportvoci", acViewDesign, , , acHidden
    Reports![sottoreportvoci].Report.Section(acDetail).Height = miovalore
    DoCmd.Close acReport, "sottoreportvoci", acSaveYes
 
 

 DoCmd.Close acReport, "sottoreportvoci", acSaveYes
 
Tieni conto che tale soluzione non funziona se poi creerai il file .Accde
 
Saluti

 Saluti
 
P:S:  Ad ogni modo, a meno che non sia cambiato qualcosa in recenti versioni, su evento "apertura" del sottoreport puoi personalizzare a Runtime il .Height del Corpo.


Infatti ho il seguente problema:
al cliente ho installato ovviamente il file ACCDE e mi esce il messaggio che con quel formato non è possibile aprire in struttura il report quindi non posso usare la mia soluzione
 
avevo anche provato ad assegnare su formattazione del sottoreport qualcosa tipo me.section(AcDetail).height=300 
ma mi è uscito un messaggio che la proprietà era in sola lettura
 
qualcuno sa come posso fare a riuscire a cambiare l'altezza a runtime in modo che tale funzionalità funzioni anche con il formato accde?
 
grazie.
 
 
 
 
 

Il giorno venerdì 9 settembre 2022 alle 11:43:13 UTC+2 Simone Calligaris ha scritto:

Stavo pensando per esempio ad avere il report in un db esterno ma immagino che questa soluzione mostrerebbe un altra sessione di access che si apre quando richiamo il report esterno al db principale.

Il giorno venerdì 9 settembre 2022 alle 11:43:13 UTC+2 Simone Calligaris ha scritto:

fonte: 
https://support.microsoft.com/it-it/office/propriet%C3%A0-height-12010a9c-4009-4398-9e6c-fc65a74283be
 
 
cito:
Per le sezioni dei report, non è possibile usare una macro o il codice VBA per impostare la proprietà Height quando si stampa o si visualizza l'anteprima di un report. Per i controlli dei report, è possibile impostare la proprietà Height quando si stampa o si visualizza l'anteprima di un report solo usando una macro o una routine evento specificata nell'impostazione della proprietà evento OnFormat di una sezione.

 qualcuno sa come posso fare a riuscire a cambiare l'altezza a runtime in modo che tale funzionalità funzioni anche con il formato accde? 
 
Ma non te l'avevo già scritto? 
Evento open sottoreport: puoi impostare a codice il .height del corpo.
 
Saluti


Pardon mi era sfuggito, ora provo grazie.

Se quanto suggerito da Simone non funziona metti un controllo nascosto ed usalo per ridimensionare la Sezione come ti serve.
 
@Alex

 @Alex
 
grazie per il consiglio, quanto suggerito da Simone funziona che è una meraviglia, non capisco perché allora Microsoft come da mia citazione messaggio precedente scriva che non si può a runtime, forse ho capito male io.
 
ho un altro problemino, se cambio altezza corpo vorrei che i campi qta prezzounitario e totale fossero perfettamente al centro rispetto all'altezza del corpo
ovviamente non la descrizione che partirà da metà e poi si estende
 
ho fatto così ma qualcosa non torna non è perfettamente centrato
 
Me.Qta.TopMargin = ((Me.Section(acDetail).Height - Me.Qta.Height) / 2)
 
ovvero se il corpo è alto 1500 twip e la casella di testo qta è alta 50 twip il marginetop sarà
(1500-50)/2 =725
 
forse però è più corretto sottrarre metà dell'altezza di qta?
 
 
 


confermo funziona anche con accde grazie., su open però imposta un valore unico per tutti, sai se è possibile farlo anche per ogni singola riga?
esempio 3 righe
 
1 riga alta 1000 twip
1 riga alta 500 twip
1 riga alta 1300 twip
 
 

 1 riga alta 1300 twip
 
Quanto chiedi, a meno che non sia cambiato qualcosa in recenti versioni, non è fattibile.
Utilizzando un oggetto nascosto (nella Sezione) da ridimensionare a Runtime, puoi aumentare anche su evento "formattazione" la dimensione della sezione Corpo, però poi vale per tutte le Righe.
 
Saluti
 
 


Sei certo di questa affermazione...?
L'evento Format della Sezione si verifica quando viene generata la Sezione Stessa, ogni volta che viene generata, e,  secondo me se tu modifichi la proprietà Height della Sezione, questa a Runtime cambia per OGNI sezione in modo indipendente.
 
Magari verificalo anche tu, io una prova veloce l'ho fatta e mi pare cos'.
 
@Alex 

 Magari verificalo anche tu, io una prova veloce l'ho fatta e mi pare cos'. 
 
Probabilmente ricordo male, ora non ho proprio tempo per testare la cosa: mi fido di quanto scrivi ;-)
 
Saluti
 
P:S: Quindi, è realizzabile la richiesta di tmtu?  (altezza differente della sezione corpo per "ogni" riga)  ... sicuro?


Bella questa "...mi fido di quanto scrivi", ma chiedi se sono sicuro...! ;-)
Che devo dire...? Fate voi.
 
@Alex

 Bella questa "...mi fido di quanto scrivi", ma chiedi se sono sicuro...! ;-) 
 
Beh, senti: se ti va di provare facci sapere, altrimenti resteremo nel dubbio.
 
Saluti
 


Ma hai letto quello che avevo scritto...?
Mi sa di no...
 
@Alex

 > > Magari verificalo anche tu, io una prova veloce l'ho fatta e mi pare cos'. 
 
Allora, ora la prova l'ho fatta pure io: non ricordavo affatto che la proprietà .Height del Corpo fosse modificabile a Runtime su eventi diversi da "Apertura".
E invece funziona senza problemi "su formattazione" anche con versioni antiche di Access (perlomeno dalla 2003).
 
Quindi, in definitiva, è possibile alzare e abbassare il corpo di un Report "riga per riga".
 
Saluti
 


opperbacco, veramente? 
 
a questo punto potrei mettere un campo altezza nella tabella fatturevoci e dare ad ogni riga l'altezza che voglio?
 
mi pareva di aver provato e mi aveva dato un messaggio tipo "proprietà di sola lettura" mettendo su formattazione questo codice
me.section(acdetail).height=500
 
mi mandi l'istruzione che hai usato su formattazione per avere righe di altezza diversa?
 
 
 
 
 
 

 mi mandi l'istruzione che hai usato su formattazione per avere righe di altezza diversa?
 
 
Mah, "su formattazione" della sezione ho semplicemente forzato il  me.<NomeSezione>.Height=<Valore>
Ma è la stessa cosa che hai fatto tu: strano che non ti vada...
 
Che versione di Access utilizzi?
 
Saluti


Oggi riprovo poi ti aggiorno


niente da fare ho aggiunto un campo altezza alla tabella voci del report
ho messo valori diversi tipo una riga alta 0,82 cm un altra altra 4,00 cm che poi moltiplico per 567 che sono i twip di un centimetro
in formattazione report voci ho messo
 
    Me.Section(acDetail).Height = Me.AltezzaRiga * 567
 
se eseguo il debug vedo scorrere i vari valori 0,82 per la prima riga e 4 per la seconda ma poi in anteprima sono tutte alte 4 cm
un aiuto?
 
 
 
 
 
 

 un aiuto?
 
Strano, che versione di Access?
 
Saluti


Sicuro che sei in ANTEPRIMA w non in modalità  LAYOUT...?
 
@Alex