Testata/Dettaglio
Jump to navigation
Jump to search
In una videata di testa/Dettaglio non è possibile utilizzare un campo in testata come filtro dei record
Per la fase di importazione/esportazione vedere la voce apposita in import/export
Esempio di codice (utilizzato per esempio per le certificazioni prodotto)
# CAMPI DA DICHIARARE NELLA VIDEATA DI DETTAGLIO # UPDFLG C 4 (nascosto) # CREFLG C 4 (nascosto) # <chiave di riga> L 8 (nascosto; vengono attribuiti valori multipli di 1000; # deve essere presente anche nella TABELLA di dettaglio) # per esempio # YIDRIGA L 8 # # In videata di dettaglio non vanno inseriti i campi chiave di testata perchè altrimenti non vengono valorizzati nel record # # CAMPO NBLIG: # - da inserire nella tabella di dettaglio (tipo ABS, Inserito) # - da mettere nella colonna Parametro nel blocco Riquadro della videata usato per i dettagli # - impostare come azioni del campo NBLIG: # C DIVLINCONT (controllo inserimento riga) # post_riga DIVLINNUM (attribuzione numero riga) # queste azioni hanno un parametro LIG (in comune) che deve essere valorizzato con <chiave di riga> (YIDRIGA) # # Definire nell'oggetto legato alla tabella di testata, nel folder ambiente, la tabella di dettaglio # # NB: nelle codice delle azioni campo usare (nolign-1) come indice (per es. [M:YCC1]YSEQMAR(nolign-1)=VALEUR ) # se si fa transclass invece il nolign è valido senza fare -1 (vedi nolign) #################################################################### # #################################################################### $ACTION Case ACTION When "OUVRE" : Gosub OUVRE When "FILTRE" : Gosub FILTRE When "SETBOUT" : Gosub SETBOUT When "CREATION" : Gosub CREATION When "APRES_CRE" : Gosub APRES_CRE When "LIENS" : Gosub LIENS When "MODIF" : Gosub MODIF When "APRES_MOD" : Gosub APRES_MOD When "ANNULE" : Gosub ANNULE When "DEFLIG" : Gosub DEFLIG When "INICRE_LIG" : Gosub INI_LIG When "INIMOD_LIG" : Gosub INI_LIG When Default Endcase Return #################################################################### $OUVRE Gosub DECLARE From TABLEAUX Return #################################################################### $FILTRE Default File [YPH] #Abbreviazione tabella di Testata Return #################################################################### $SETBOUT If GREP = "" CHAINE+="A" Else Call VIREBOUT(CHAINE,"A") From GOBJET Endif Return #################################################################### $CREATION Gosub CREATION From TABLEAUX If GOK < 1 Return Endif Return #################################################################### $APRES_CRE # -- Ricarico degli indicatori UPDFLG e CREFLG # Gosub LIENS From TABLEAUX Return #################################################################### $LIENS # -- Carico delle righe nella tabella Gosub LIENS From TABLEAUX #in questo punto tutti gli eventi LIENS_LIG sono stati elaborati Return #################################################################### $LIENS_LIG #evento al caricamento di ciascuna riga # eventuali chiamate su campi #Call AM_YSEQMAR([M:YCC1]YSEQMAR(nolign-1)) Return #################################################################### $MODIF Gosub MODIF From TABLEAUX If GOK < 1 Return Endif Return #################################################################### $APRES_MOD # -- Ricarico degli indicatori UPDFLG e CREFLG # Gosub LIENS From TABLEAUX Return ############################################################### $ANNULE Gosub ANNULE From TABLEAUX : # Cancellazione delle righe If GOK < 1 Return Endif Return ############################################################### $DEFLIG #-----------------------------------# # Definizione del file di dettaglio # #-----------------------------------# # Criterio di lettura (CRIT) # # Nome del file (FICLIG) # # Abbreviazione del file (ABLIG) # # Campo numero riga (ZONLIG) # #-----------------------------------# Default Mask [YCC1] # Abbrevv. videata di dettaglio Default File [YCD] # Abbrevv. tabella di dettaglio # criterio per legare la tabella di dettaglio alla tabella di testata (nome campo tabella dettaglio = [M]nome campo testata # se il campo è numerico va senza singoli apici (usando num$()) # per date? ... "' & YDATAI = ["+num$([M:YPR0]YDATAI)+"] & YDATAF = ["+[M:YPR0]YDATAI+"]" CRIT = "YFAMCER = '"+[M:YCC0]YFAMCER+"' & YPASSOVIE = '"+[M:YCC0]YPASSOVIE+"' & YNROMOL = "+num$([M:YCC0]YNROMOL) FICLIG = "YCERTPRODD" # nome tabella di dettaglio ABLIG = "YCD" # abbreviazione nome tabella di dettaglio ZONLIG = "YIDRIGA" # nome campo chiave di riga che gestisce la linea nel dettaglio Return #################################################################### $INI_LIG # -- Valorizzazione testata #commento: vengono copiati i valori di testata sui campi di dettaglio # YCD file dettaglio, YCC file testata [F:YCD]YFAMCER = [F:YCC]YFAMCER [F:YCD]YPASSOVIE = [F:YCC]YPASSOVIE [F:YCD]YNROMOL = [F:YCC]YNROMOL Return ###################################################################################### ## Etichetta aggiunta dal supervisore (videata YPR1) 05/11/2013 15:46:55 (ADMIN) ###################################################################################### # L'articolo deve essere inserito nel listino di riferimento Subprog C_ITMREF(VALEUR) Variable Char VALEUR() Local Integer YERR Call YCHK_ART(VALEUR,[M:YPR0]X_NAT,[M:YPR0]YDATAI,[M:YPR0]YDATAF,YERR) Case YERR When 0 mkstat = 2 GMESSAGE = "Articolo non trovato in listino per i dati impostati in testata: articolo non inseribile" When 2 mkstat = 2 GMESSAGE = "Più righe listino trovate per i dati impostati in testata: verificare listini" Endcase End ###################################################################################### Subprog YCHK_ART(YART, YLIS, YDATA1, YDATA2, YERR) Value Char YART, YLIS Value Date YDATA1, YDATA2 Variable Integer YERR Local File SPRICLIST [F:YSPL] Filter [F:YSPL] Where PLICRI1 = YART and PLICRI2 = YLIS and PLISTRDAT <= YDATA1 and PLIENDDAT >= YDATA2 YERR = rowcount([F:YSPL]) # deve esserci solo una riga per questo filtro, altrimenti è una anomalia Filter [F:YSPL] End ######################################################################################