Cómo obtener el título de OutlineBox con 'Obtener script'Hola,
Estoy intentando usar la función "Obtener script" para obtener información sobre un informe que puedo combinar en un archivo .jrp (similar a los detalles de esta publicación, excepto que voy a añadir algunos componentes adicionales que se ejecutarán al arrancar el archivo .jrp, por lo que no uso la función "Guardar ventana de informe"). El problema es que también necesito obtener los títulos de OutlineBox (cuyo nombre indica el script y se registran en caso de cambios en mi proyecto); de lo contrario, no puedo recrear el informe. Vea el ejemplo a continuación.
¿Me estoy perdiendo algo en la función 'obtener script' para incluir también los títulos de OutlineBox?
names default to here(1);
report_win = New Window("Testwindow",
Outline Box("tester",
Textbox("Test")
)
);
report_win << Get Script;
//RESULT: V List Box( V List Box( Outline Box( Text Box( "Test" ) ) ) )
//If I were to take that same script and try to recreate as a jrp file works....
//New Window("test", V List Box( V List Box( Outline Box( Text Box( "Test" ) ) ) ))
//resulting failure: expected character arg 1 in access or evaluation of 'Outline Box' , Outline Box/*###*/(Text Box( "Test" ))
Automatización y scriptingRe: Cómo obtener el título de OutlineBox con 'Obtener script'No estoy seguro de que puedas usar «Obtener script» para lo que intentas hacer. Lo que podrías/deberías hacer depende de tu objetivo final. Estoy bastante seguro de que me estoy perdiendo algo sobre por qué no podrías usar «Guardar informe de ventana», pero podría ser una opción.
Names Default To Here(1);
report_win = New Window("Testwindow", << Type("Report"), Outline Box("tester", Text Box("Test")));
report_win << Save Window Report("$TEMP/test.jrp");
s1 = report_win << get script;
wait(0);
s2 = Parse(Load Text File("$TEMP/test.jrp"));
wait(0);
Delete File("$TEMP/test.jrp");
Show(s1, s2);
ob_script = Extract Expr(s2, Outline Box(WildList()));
s1 = V List Box(V List Box(OutlineBox(Text Box("Test"))));
s2 = New Window("Testwindow", Outline Box("tester", Text Box("Test")));
Outline Box("tester", Text Box("Test"))
Re: Cómo obtener el título de OutlineBox con 'Obtener script'Creo que usar XPath podría ser más sencillo y directo. Vea esta ilustración:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = dt << Bivariate( Y( :weight ), X( :height ), Fit Line( 1 ) );
rpt = biv << Report;
outlineNames = (rpt << XPath( "//OutlineBox" )) << Get Title;