?>Array ( [lang] => es [id] => 88 )
Scénario de test & Cas d'usage
Se crean dos tablas. Primero, `clientes_ventas`, que contiene los datos de los clientes. Segundo, `tabla_control_formatos`, que define las reglas para dos formatos: `paisfmt` para mapear países a territorios y `nivelgastofmt` para categorizar el gasto.
| 1 | DATA clientes_ventas; |
| 2 | LENGTH pais $2 cliente_id 8 gasto 8; |
| 3 | INPUT cliente_id pais $ gasto; |
| 4 | DATALINES; |
| 5 | 101 US 1500 |
| 6 | 102 DE 800 |
| 7 | 103 FR 350 |
| 8 | 104 UK 2100 |
| 9 | 105 ES 950 |
| 10 | ; |
| 11 | RUN; |
| 12 | |
| 13 | DATA tabla_control_formatos; |
| 14 | LENGTH FmtName $32 Start $20 Label $50; |
| 15 | /* Formato para Territorios */ |
| 16 | FmtName='paisfmt'; Start='US'; Label='Norteamérica'; OUTPUT; |
| 17 | FmtName='paisfmt'; Start='DE'; Label='Europa Central'; OUTPUT; |
| 18 | FmtName='paisfmt'; Start='FR'; Label='Europa Occidental'; OUTPUT; |
| 19 | FmtName='paisfmt'; Start='UK'; Label='Europa Occidental'; OUTPUT; |
| 20 | FmtName='paisfmt'; Start='ES'; Label='Europa Occidental'; OUTPUT; |
| 21 | /* Formato para Nivel de Gasto */ |
| 22 | FmtName='nivelgastofmt'; Start='low'; END='900'; Label='Bajo Valor'; OUTPUT; |
| 23 | FmtName='nivelgastofmt'; Start='901'; END='1600'; Label='Medio Valor'; OUTPUT; |
| 24 | FmtName='nivelgastofmt'; Start='1601'; END='high'; Label='Alto Valor'; OUTPUT; |
| 25 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.loadTable / caslib='CASUSER' path='%sysfunc(pathname(work))/clientes_ventas.sashdat' casout={name='CLIENTES_VENTAS', replace=true}; |
| 3 | TABLE.loadTable / caslib='CASUSER' path='%sysfunc(pathname(work))/tabla_control_formatos.sashdat' casout={name='TABLA_CONTROL_FORMATOS', replace=true}; |
| 4 | QUIT; |
| 1 | PROC CAS; |
| 2 | sessionprop.addFmtLib / |
| 3 | fmtLibName='MarketingFmts' |
| 4 | name='TABLA_CONTROL_FORMATOS' |
| 5 | caslib='CASUSER' |
| 6 | replace=true; |
| 7 | QUIT; |
| 1 | PROC CAS; |
| 2 | TABLE.setTableFmtLib / TABLE={caslib='CASUSER', name='CLIENTES_VENTAS'} fmtLibName='MarketingFmts'; |
| 3 | SIMPLE.crossTab / |
| 4 | TABLE={name='CLIENTES_VENTAS', caslib='CASUSER', groupBy={{name='pais', FORMAT='paisfmt'}, {name='gasto', FORMAT='nivelgastofmt'}}}; |
| 5 | QUIT; |
La salida de la acción `crossTab` debe mostrar los datos de los clientes agregados según las etiquetas definidas en los formatos. Por ejemplo, los clientes de 'FR', 'UK' y 'ES' deben estar agrupados bajo la etiqueta 'Europa Occidental', y el cliente con gasto 2100 debe aparecer en la categoría 'Alto Valor'. Esto confirma que la biblioteca de formatos se creó y aplicó correctamente.