print_xref_info = { # 2013-05-29 - gas - changed to show the label (which initially feel like the thing I will want to see), and made the fieldset optional with a parameter # 2013-05-29 - GMF - Fixed issue with label not being resolved correctly in some cases. label = "Print Cross-reference Group Information" shortcut = "pxi" requires_profile = true parameters = { show_fieldset = { shortcut = "sf" default = false } } expression = ` #echo("internal.profile_name: " . internal.profile_name); node profile = 'profiles'{internal.profile_name}; #echo("profile: " . profile); node cross_reference_groups = profile{"database"}{"cross_reference_groups"}; #echo("cross_reference_groups: " . cross_reference_groups); node cross_reference_group; #int xrefgroupnum = 0; node fields; node labelnode; string label; node fieldi; int numxrefgroups = num_subnodes(cross_reference_groups); for (int xrefgroupnum = 0; xrefgroupnum != numxrefgroups; xrefgroupnum++) ( #foreach cross_reference_group cross_reference_groups ( node cross_reference_group = cross_reference_groups[xrefgroupnum]; #echo("cross_reference_group: " . node_as_string(cross_reference_group)); fields = cross_reference_group{"fields"}; labelnode = cross_reference_group{"label"}; #echo("labelnode: " . node_as_string(labelnode)); label = expand(@labelnode); string fieldslist = ''; foreach fieldi fields ( #echo("fieldi: " . fieldi); if (fieldslist ne '') then fieldslist .= ','; fieldslist .= node_name(fieldi); ); # foreach fields #3echo("fieldslist: " . fieldslist); string tablename = 'xref' . xrefgroupnum; table t = database_sql_query('select count(*) from ' . tablename, false, false); int numrows = table_get_cell_value(t, 0, 0); #int numrows = 0; #echo('xref ' . xrefgroupnum . ' (' . numrows . ' rows): ' . fieldslist); ## if show fieldset is specified, show it if (show_fieldset) then ( echo('xref ' . xrefgroupnum . ' (' . numrows . ' rows): ' . label . fieldslist); ) ## otehrwise leave it off else echo('xref ' . xrefgroupnum . ' (' . numrows . ' rows): ' . label); # xrefgroupnum++; ); # foreach cross_reference_groups ` } # print_xref_info