# Ricette - [Ricette](#ricette) - [Gestione formati e tag x ricette](#gestione-formati-e-tag-x-ricette) - [Definizione tag ricette](#definizione-tag-ricette) - [Esempio tracciato Template](#esempio-tracciato-template) - [Esempio tracciato configurazione complessivo](#esempio-tracciato-configurazione-complessivo) - [Campi Calcolati](#campi-calcolati) # Gestione formati e tag x ricette Nelle ricette ci possono essere campi liberi, campi da enum (da configurare nel json) e campi calcolati. E' utile riportare un esempio di tracciato finale desiderato insieme ad un file template tpl da cui attingere x la realizzazione insieme ai campi definiti x testata e corpo. In particolare sia per testata che corpo sono indicati casi di dati enumerativi (in modo che sia usato uno tra i valori ammessi) ## Definizione tag ricette I tag ammessi x le ricette sono di seguito riassunti e definiti: | Cod | Significato | Definizione | |-----|-------------|--------------------------------------------| | C | Calcolato | Campo calcolato (NON modificabile) | | E | Enum | IdxODL numerico | | F | Fixed | IdxODL numerico | | S | Suggested | Campo calcolato e suggerito (modificabile) | IN particolare gli Enum sono poi da riportare nella struttura degli EnumVal che deve completare i valori di testata o di corpo. ## Esempio tracciato Template Ecco un esempio di template ```csharp { "A_Recipe": { "DesRecipe": { "DesData": { ||PlaceholderHeader|| }, "ColRecipe": [ ||SROW:{"ColData":{|| ||PlaceholderRows|| ||EROW":}}|| ] } } ``` il blocco ||PlaceholderHeader|| verrà sostituito per intero dai valori di testata. Il blocco delel righe è invece più complesso e composto da 3 parti: * nel primo blocco, ||SROW:{"ColData":{||, si cerca start riga e si prende il valore compreso tra ||SROW:: e || come testata riga da ripetere * nel secondo blocco si sostituiscono tutti i valori della riga i-esima * nel terzo blocco ||EROW":}}|| si sistema la chiusura della riga (end row) ## Esempio tracciato configurazione complessivo ```json { "TemplateFile": "TemplateOutput.tpl", "NumRow": 2, "HeadConf": { "ListKeys": { "CustDrumCode": "F:", "Taglio-N": "F:1", "LotID": "C:IdxPODL", "OrderCode": "C:CodePODL", "Prio": "E:Priority", "DrumType": "E:DrumType", "Customer": "Tenditalia", "Design": "DESIGN", "Quantity-kg": "1.00" }, "EnumVal": { "Priority": { "N": "Normal", "H": "Hight" }, "DrumType": { "1": "Small", "2": "Medium", "3": "Big" } } }, "RowsConf": { "ListKeys": { "Weight-gr-prev": "F:0.00", "CompNumber": "C:RowNum", "ColourCode": "C001", "Description": "COLOR1", "TypComp": "E:ColType", "PartsWeight": "1.00", "PartsPerc": "0.10", "Weight-gr": "30.00" }, "EnumVal": { "ColType": { "C": "Color", "A": "Thickener", "X": "Auxiliaries" } } } } ``` Come si può notare, il tracciato di configurazione comprende i seguenti blocchi: | Blocco | descrizione | |-------------------|--------------------------------------| | HeadConf | Configurazione campi testata | | HeadConf:ListKeys | Elenco chiavi/valori x testata | | HeadConf:EnumVal | Elenco enumerativi ammessi x testata | | RowsConf | Configurazione campi riga | | RowsConf:ListKeys | Elenco chiavi/valori x righe | | RowsConf:EnumVal | Elenco enumerativi ammessi x righe | ## Campi Calcolati I tag noti x decodifica riguardano i campi calcolati; hard coded, e riconosciuti, sono i seguenti: | ID | Note | Format | Esempio | |--------------|-----------------------------------------|------------------|-----------------| | IdxPODL | IdxODL numerico | - | 123 | | CodePODL | Codice alfanumerico partendo da IdxPODL | PODL{0:00000000} | PODL00000123 | | CodArticolo | Campo CodArticolo | - | Art000123 | | DescArticolo | Campo DescArticolo | - | Articol 123 blu | | RowNum | Numero riga | - | 1 | | RowTot | Totale righe | - | 10 |