#!/bin/sh
:	'(c) Copyright	Empress Software Inc.	1983, 2003'


if test "$EMPRESSPATH" = "" 
then
	echo "EMPRESSPATH not set"
	exit 1

elif test ! -d $EMPRESSPATH
then
	echo "invalid EMPRESSPATH"
	exit 1
else
	RDBMSPATH=$EMPRESSPATH/rdbms
	export RDBMSPATH
fi

PROGNAME=`$EMPRESSPATH/common/sys_bin/basename $0`
USAGE="*** Usage ***  $PROGNAME [-terse] db application_name"

. $RDBMSPATH/util_bin/banner

NLSECHO="$EMPRESSPATH/common/nls/nlsecho"
UE_E0_WINCON=10008
UI_E0_APPLIC=10006
UI_E0_APPNOTEXIST=10014
UI_E0_FIELD=10009
UI_E0_FIELDDEFSAVNAME=10010
UI_E0_FIELDRANGE=10011
UI_E0_FIELDSCRIPT=10012
UI_E0_KEY=10013
UI_E0_SCRIPT=10067
UI_E0_WINDOW=10007

LOWER="$EMPRESSPATH/common/sys_bin/lower"

OPTION=`$LOWER $1`

case "$OPTION" in
 -terse)
	shift
	MSQLSELCOLSEP='  '
	MSQLSELGROUPSEP=''
	MSQLSELGROUPCOLCROSS=''
	MSQLSELHEADSEP=' '
	MSQLSELHEADCOLCROSS=''
	MSQLSELROWSEP=''
	MSQLSELROWCOLCROSS=''
	;;
 *)
	MSQLSELCOLSEP=' | '
	MSQLSELGROUPSEP='='
	MSQLSELGROUPCOLCROSS='==='
	MSQLSELHEADSEP='='
	MSQLSELHEADCOLCROSS='==='
	MSQLSELROWSEP='-'
	MSQLSELROWCOLCROSS='-+-'
	;;
esac
MSQLSELKEEPDUPLICATE=''
TMP=`$EMPRESSPATH/common/sys_bin/tmpdir`/"emp4$$"

export MSQLSELCOLSEP
export MSQLSELGROUPSEP MSQLSELGROUPCOLCROSS
export MSQLSELHEADSEP MSQLSELHEADCOLCROSS
export MSQLSELROWSEP MSQLSELROWCOLCROSS
export MSQLSELKEEPDUPLICATE

case $# in
 2)
	;;
 *)
	echo "$USAGE"
	exit 1
	;;
esac

DB=$1
AP=$2
export AP

if $EMPRESSPATH/bin/empcmd "$DB" "select application_name from sys_4gl_application" > $TMP
then
	:
else
	exit 1
fi

if grep "$AP" $TMP > /dev/null 2>&1
then
	$EMPRESSPATH/bin/empbatch $DB <<@

	set FIELDSPEC to 'width 16';
	set SCRIPTNAMESPEC to 'width 16';
	set WINDOWSPEC to 'width 16';

	set AP_SCRIPTSPEC to 'width 130 wrapmargin 20';
	set FLD_SCRIPTSPEC to 'width 40 wrapmargin 20';
	set KEY_SCRIPTSPEC to 'width 85 wrapmargin 20';
	set SCRIPTSPEC to 'width 100 wrapmargin 20';

	set MSLINECONT to 'LINECONT';
	set NEWPAGE to "!echo 'LINECONT'";

        ! $NLSECHO  "*** Application: '%s' ***" $UI_E0_APPLIC $AP
	! echo
	select enter_script print 'ENTER' \$AP_SCRIPTSPEC
		from sys_4gl_application
		where application_name = '$AP';
	!echo
	select exit_script print 'EXIT' \$AP_SCRIPTSPEC
		from sys_4gl_application
		where application_name = '$AP';
	!echo
	!echo

	select links print 'LINK APPLICATIONS' \$FLD_SCRIPTSPEC,
		global_keys print 'GLOBAL KEY CONTEXTS' \$FLD_SCRIPTSPEC
		from sys_4gl_application
		where application_name = '$AP';

	\$NEWPAGE
        ! $NLSECHO  "*** Window ***" $UI_E0_WINDOW
	! echo
	select name print 'WINDOW' \$WINDOWSPEC,
		minrow print 'MIN_ROW',
		mincol print 'MIN_COL',
		maxrow print 'MAX_ROW',
		maxcol print 'MAX_COL',
		draw_box print 'BOX',
		form_name print 'FORM',
		form_instance print 'FORM_INSTANCE'
		from sys_4gl_window
		where application_name = '$AP'
		sort by name;
	!echo
	!echo
	!echo

        !$NLSECHO  "*** Window Context ***" $UE_E0_WINCON
	!echo
	select name print 'WINDOW' \$WINDOWSPEC,
		key_context print 'KEY CONTEXT'
		from sys_4gl_window
		where application_name = '$AP'
		and key_context != null
		sort by name;

	\$NEWPAGE
        ! $NLSECHO  "*** Field ***" $UI_E0_FIELD
	! echo
	select window_name print 'WINDOW' \$WINDOWSPEC,
		name print 'FIELD' \$FIELDSPEC,
		number print 'NUMBER',
		attr 'mode' print 'MODE',
		data_type print 'DATATYPE',
		previous print 'PREVIOUS' \$FIELDSPEC,
		previous_number print 'NUMBER',
		next print 'NEXT' \$FIELDSPEC,
		next_number print 'NUMBER'
		from sys_4gl_field
		where application_name = '$AP'
		group by window_name
		sort by window_name, name;

	\$NEWPAGE
        ! $NLSECHO  "*** Field Default and Save Name ***" $UI_E0_FIELDDEFSAVNAME
	! echo
	select window_name print 'WINDOW' \$WINDOWSPEC,
		name print 'FIELD' \$FIELDSPEC,
		number print 'NUMBER',
		default_expression print 'DEFAULT EXPRESSION' \$FLD_SCRIPTSPEC,
		save_name print 'SAVE NAME' \$FIELDSPEC
		from sys_4gl_field
		where application_name = '$AP'
		group by window_name
		sort by window_name, name;

	\$NEWPAGE
        ! $NLSECHO  "*** Field Range ***" $UI_E0_FIELDRANGE
	! echo
	select window_name print 'WINDOW' \$WINDOWSPEC,
		name print 'FIELD' \$FIELDSPEC,
		number print 'NUMBER',
		attr 'range' print 'RANGE' \$FLD_SCRIPTSPEC
		from sys_4gl_field
		where application_name = '$AP'
		group by window_name
		sort by window_name, name;

	\$NEWPAGE
        ! $NLSECHO  "*** Field Script ***" $UI_E0_FIELDSCRIPT
	! echo
	select window_name print 'WINDOW' \$WINDOWSPEC,
		name print 'FIELD' \$FIELDSPEC,
		number print 'NUMBER',
		enter_script print 'ENTER' \$FLD_SCRIPTSPEC,
		exit_script print 'EXIT' \$FLD_SCRIPTSPEC
		from sys_4gl_field
		where application_name = '$AP'
		group by window_name
		sort by window_name, name;

	\$NEWPAGE
        ! $NLSECHO  "*** Key ***" $UI_E0_KEY
	! echo
	select key_context print 'KEY CONTEXT' \$WINDOWSPEC,
		name print 'KEY',
		attr 'disable' print 'DISABLE',
		script print 'SCRIPT' \$KEY_SCRIPTSPEC
		from sys_4gl_key
		where application_name = '$AP'
		group by key_context
		sort by key_context, name;

	\$NEWPAGE
	! $NLSECHO  "*** Script ***" $UI_E0_SCRIPT
	! echo
	select name print 'NAME' \$SCRIPTNAMESPEC,
		script print 'SCRIPT' \$SCRIPTSPEC
		from sys_4gl_script
		where application_name = '$AP'
		sort by name;
@
	rm -f $TMP
	exit 0
else
	rm -f $TMP
	$NLSECHO  "Application '%s' does not exist" $UI_E0_APPNOTEXIST $AP
	exit 1
fi
