E' la struttura che contiene tutte le informazioni relative ad un documento.
Viene restituita da PowerDoc(WS_CREATE,...)
Sintassi
typedef struct {
//
// Caratteristiche del documento
//
PWD_LAY enLayStyle; // Stile del Layout di stampa (LR_PAGEFREE)
PWD_UM enMisure; // Unità di misura default
// 0= (default) 1/300 (trecentesimi di pollice) per compatibilità
CHAR * pszDeviceDefine; // Stringa in formato DeviceDefine (Se non presente uso stampante di default easyhand)
INT iOrientation; // LPT_LANDSCAPE (non usato se la stampante non è indicata)
DWORD dwPrinterFlags; // Flag : PD_COLLATE
INT iCopyNumber; // Numero di copie: Numero di copie
PWD_RECT rumMargin; // Margine in enMisure
INT iCharEncode; // 0=Default ANSI Es. SE_UTF8
//
// Caratteristiche fisiche (ricavate dal driver o indicate da software esterno Es PDF)
//
HDC hdcPrinter;
DEVMODE * pDevMode;
SIZE sizDotPerInch;
PWD_SIZE sumPage; // Larghezza ed altezza della pagina in scrittura
PWD_RECT rumPage; // Posizione e dimensione della pagina senza margini
PWD_SIZE sumPhysicalPage;
PWD_SIZE sumPaper; // Larghezza possibile (x e y) della pagina
//
// Layout preimpostato come report
//
BOOL fDate; // Inserisci data in alto a sinistra
CHAR * lpDate; // Parametro da passare a data_sep
BOOL fPag; // Visualizza il numero di pagina
INT iPagStyle; // 0=Pag. n 1= n
CHAR * lpTitolo; // Titolo della stampa
CHAR * lpSottoTitolo; // Sotto Titolo della stampa
BOOL fLineVertField; // Flag di separazione campi con linea verticale
INT iLineVertColor; // Colore linea verticale
BOOL fLineHorzField; // Flag di separazione campi con linea orizzontale
EH_COLOR colLineHorzColor; // Colore linea orizzontale
INT iLineHorzStyle; // PS_SOLID
BOOL bRowsDynamic; // true/false se ci sono da gestire linee dinamiche
PWD_VAL umHeadHeight; // Altezza testa del report Um di pollice (0=Automatica)
PWD_VAL umFootHeight; // Altezza piede del report Um di pollice (0=Automatica) -> era ptCueHeight
void * (*funcNotify)(EN_MESSAGE,LONG,void *); // Funzione per le notifiche esterne
PWD_RECT rumFieldPadding; // Padding dei campi
PWD_VAL umBodyHeight; // Altezza del corpo
PWD_VAL umBodyTop; // Posizione fisica verticale (in dot) dell'inizio del corpo "righe" (ex yHeadDot)
PWD_VAL umBodyBottom; // Posizione fisica verticale (in dot) della fine del corpo "righe"
PWD_VAL umHeadBottom; // Posizione fisica verticale della testata (senza il titolo del layout)
// double umFootHeight; // Altezza in dot della "footer" di stampa -> era yCueHeight
PWD_VAL umTitlePadded; // Altezza del titolo+padding sopra e sotto
PWD_VAL umRowPadded; // Altezza di una riga +padding sopra e sotto
INT iRowsSize; // Altezza in righe della linea (Es. ci può essere 1 sola riga di descrizione ma alta (3 righe) per la presenza di campi testo/note dinamici)
INT iFieldNum; // Reserved: Numero dei campi totali
INT iFieldPerRiga[LR_MAXLINERIGA]; // Reserved: Massimo 10 Linee (Numero di campi per linea)
PWD_FIELD **arsField; // Reserved: (Viene caricato dal LptReport)
INT iLinePerRiga; // Reserved: Numero di linee per riga (linee fisiche che contengono campi) (Viene calcolato in WS_ADD)
INT iPageCount; // Reserved: Contatore delle pagine
PWD_VAL umRowOffset; // Posizione fisica della linea corrente (new 2007) ex yCurrentLine
INT iVirtualLineCount; // Reserved: Contatore delle linee
INT iVirtualLinePerPage; // Reserved: Line "Virtuali" possibili per pagina
// INT iRowsLastLine; // Reserved: Ultime righe dell'ultima linea in costruzione (Per RowsDynamic)
PWD_VAL umRowLastHeight; // report: Altezza dell'ultima riga stampata
PWD_VAL umRowMaxHeight; // report: dimensioni massime di una riga in stampta
INT iRowLastVirtualLine;
// Usati solo durante il REALSET delle linee
BOOL bBold;
BOOL bItalic;
BOOL bUnderLine;
BOOL fGColor; // Abilito la modifica globale del colore
LONG lGColor;
BOOL fNoDecimal;
INT xChar;
PWD_VAL umRowHeight; // Altezza in um del carattere nella linea (senza padding) (era yChar)
//SINT iRowHeight; // Altezza fisica in dot del carattere nella linea (senza padding) > CALCOLATA
PWD_VAL umTitleHeight; // Altezza in UM del titolo (senza padding) (Ex yTitleChar)
//SINT iTitleHeight; // Altezza fisica in dot del titolo (senza padding) > CALCOLATA
CHAR * pszFontTitleDefault;
CHAR * pszFontBodyDefault;
CHAR * pszDocumentName; // Nome della stampa (=NULL viene assegnato dal programma)
BOOL fMessageProcess; // T/F se voglio il mouse_inp durante il loop di stampa
CHAR * lpszICCFilename; // Puntatore al file di gestione del colore NULL=Standard windows
//void * (*funcNotify)(void *, SINT cmd, LONG info,CHAR *str); // funzione esterna di notifica
LONG lParam; // Per uso esterno
BOOL bPageInProgress; // T/F se la pagina è corso di completamento
_DMI dmiFont;
CHAR * pszTempFolder; // NULL = Usa il folder di sistema, altrimenti quello indicato
#ifdef EH_PDF
BOOL bPdf; // T/F se faccio il PDF diretto
BOOL bPdfShow; // T/F se devo mostrare il pdf alla fine
BOOL bPdfChooseFile; // T/F se deve scegliere il file di output
CHAR * pszPdfEncode; // NULL = ISO8859-1
CHAR * pszPdfFileName; // NULL = Chiedo il nome
#endif
} EH_PWD; // Easyhand PowerDoc
//
// Definizione del subarea da stampare
// LptReportArea (per i Link)
//
typedef enum {
PDN_HEAD,
PDN_BODY,
PDN_FOOT
} EN_PDN; // Power Document Notify
Parametri
Valori di ritorno
Commenti