rotate.dlg

来自「是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到」· DLG 代码 · 共 999 行 · 第 1/2 页

DLG
999
字号
/*
	rotate

*!  VERSION 1.0.1  24mar2005

*/

VERSION 9.0

INCLUDE _std_large
DEFINE _dlght 340
INCLUDE header

HELP hlp1, view("help rotate")
RESET res1

DIALOG main, tabtitle("Main")	///
	label("rotate - Orthogonal and oblique rotations after factor and pca")
BEGIN
  GROUPBOX gb_method		_lft	_top	_iwd	190,		///
	label("Rotation method")
  RADIO    rb_ortho		_indent	_ss	_comb3_2	.,	///
  	first								///
	label("Orthogonal rotation")					///
	onclickon("script ortho_on")

  COMBOBOX lb_ortho		40       _ss     _comb3_4	.,	///
	label("Rotation method") dropdownlist				///
	contents(main_ortho_contents)					///
	values(main_ortho_values)					///
	onselchangelist(main_ortho_scripts)

  RADIO    rb_oblique		_ilft	+55	_comb3_2	.,	///
  	last								///
	label("Oblique rotation")					///
	onclickon("script oblique_on")

  COMBOBOX lb_oblique		40       _ss     _comb3_4	.,	///
	label("Rotation method") dropdownlist				///
	contents(main_oblique_contents)					///
	values(main_oblique_values)					///
	onselchangelist(main_oblique_scripts)

// for promax power only
  EDIT     en_propow		_lft3_3	125	_en7wd		.,	///
	numonly default(3)						///
	label("Promax power")
  TEXT     tx_propow		_en7sep	@	80		.,	///
	label("Promax power")

// for oblimin only
  TEXT     tx_oblimin_or	_lft3_3	30	_cwd3_2		.,	///
	label("Use gamma = #")
  EDIT     en_oblimin_or	_lft3_3	_ss	_en7wd		.,	///
	numonly default(0)						///
	label("Oblimin criterion")
  TEXT     tx_obliminnum_or	_en7sep	@	80		.,	///
	label("#")

  TEXT     tx_oblimin_ob	_lft3_3	105	_cwd3_2		.,	///
	label("Use gamma = #")
  EDIT     en_oblimin_ob	_lft3_3	_ss	_en7wd		.,	///
	numonly default(0)						///
	label("Oblimin criterion")
  TEXT     tx_obliminnum_ob	_en7sep	@	80		.,	///
	label("#")

// for cf only
  TEXT     tx_cf_or		_lft3_3	30	_cwd3_2		.,	///
	label("Use kappa = #")
  EDIT     en_cf_or		_lft3_3	_ss	_en7wd		.,	///
	numonly 							///
	label("Kappa value")
  TEXT     tx_cfnum_or		_en7sep	@	80		.,	///
	label("0 <= # <= 1")

  TEXT     tx_cf_ob		_lft3_3	105	_cwd3_2		.,	///
	label("Use kappa = #")
  EDIT     en_cf_ob		_lft3_3	_ss	_en7wd		.,	///
	numonly 							///
	label("Kappa value")
  TEXT     tx_cfnum_ob		_en7sep	@	80		.,	///
	label("0 <= # <= 1")

// for target only
  TEXT     tx_target_or		_lft3_3	30	_cwd3_2		.,	///
	label("Rotate toward matrix (Tg):")
  COMBOBOX cb_target_or		@       _ss     _vnwd		.,	///
	label("Matrix Tg")						///
	dropdown 							///
	contents(matrix)
  TEXT     tx_target_ob		_lft3_3	105	_cwd3_2		.,	///
	label("Rotate toward matrix (Tg):")
  COMBOBOX cb_target_ob		@       _ss     _vnwd		.,	///
	label("Matrix Tg")						///
	dropdown 							///
	contents(matrix)

// for partial only
  TEXT     tx_partial_or	_lft3_3	30	_cwd3_2		.,	///
	label("Rotate toward matrix (Tg):")
  COMBOBOX cb_partial_or	@       _ss     _vnwd		.,	///
	label("Matrix Tg")						///
	dropdown 							///
	contents(matrix)
  TEXT     tx_weighted_or	@	_ms	_cwd3_2		.,	///
	label("Weighted matrix (W):")
  COMBOBOX cb_weighted_or	@       _ss     _vnwd		.,	///
	label("Matrix W")						///
	dropdown 							///
	contents(matrix)

  TEXT     tx_partial_ob	_lft3_3	105	_cwd3_2		.,	///
	label("Rotate toward matrix (Tg):")
  COMBOBOX cb_partial_ob	@       _ss     _vnwd		.,	///
	label("Matrix Tg")						///
	dropdown 							///
	contents(matrix)
  TEXT     tx_weighted_ob	@	_ms	_cwd3_2		.,	///
	label("Weighted matrix (W):")
  COMBOBOX cb_weighted_ob	@       _ss     _vnwd		.,	///
	label("Matrix W")						///
	dropdown 							///
	contents(matrix)

// other options
  GROUPBOX gb_opt		_lft	210	_iwd		_ht9,	///
	label("Option")
  CHECKBOX ck_clear		_ilft	_ss	_ibwd		.,	///
	option(clear)							///
  	onclickon(program ck_clear_on)					///
  	onclickoff(program ck_clear_off)				///
	label("Remove rotation results from the estimation command (i.e. clear)")
  CHECKBOX ck_horst		@	_ms	@		.,	///
	option(horst)							///
	label("Apply the Horst normalization")
  CHECKBOX ck_factors		_ilft	_ms	_iwd		.,	///
  	onclickon(script ck_factors_on)					///
  	onclickoff(script ck_factors_off)				///
	label("Specify the number of factors or components to be rotated")
  SPINNER  sp_factors		_cksep	_ss	_spwd		.,	///
	min(1) default(1) max(10000)					///
	option(factors)							///
	label("Number of factors")
  TEXT     tx_factors		_spsep	@	_cksprb		.,	///
	label("#")
END

SCRIPT ck_factors_on
BEGIN
	main.sp_factors.enable
	main.tx_factors.enable
END

SCRIPT ck_factors_off
BEGIN
	main.sp_factors.disable
	main.tx_factors.disable
END

PROGRAM ck_clear_on
BEGIN
	if main.rb_ortho {
		call program desel_ortho
		call main.lb_ortho.disable
	}
	if main.rb_oblique {
		call program desel_oblique
		call main.lb_oblique.disable
	}
	call main.gb_method.disable
	call main.rb_ortho.disable
	call main.rb_oblique.disable
	call main.ck_horst.disable
	call main.ck_factors.disable
	if main.ck_factors {
		call main.sp_factors.disable
		call main.tx_factors.disable
	}
	call report.ck_blanks.disable
	if report.ck_blanks {
		call report.en_blanks.disable
		call report.tx_blanks.disable
	}
	call report.ck_detail.disable
	if report.ck_detail {
		call report.ck_format.disable
		if report.ck_format {
			call report.en_format.disable
		}
		call report.ck_noloading.disable
		call report.ck_norotation.disable
	}
	if !(main.rb_ortho & main.lb_ortho.equals("")) {
		call script rotate_opt_opts_disable
	}
END

PROGRAM ck_clear_off
BEGIN
	if main.rb_ortho {
		call main.lb_ortho.enable
		if main.lb_ortho.equals("oblimin") {
			call main.tx_oblimin_or.show
			call main.en_oblimin_or.show
			call main.tx_obliminnum_or.show
		}
		if main.lb_ortho.equals("cf") {
			call main.tx_cf_or.show
			call main.en_cf_or.show
			call main.tx_cfnum_or.show
		}
		if main.lb_ortho.equals("target") {
			call main.tx_target_or.show
			call main.cb_target_or.show
		}
		if main.lb_ortho.equals("partial") {
			call main.tx_partial_or.show
			call main.cb_partial_or.show
			call main.tx_weighted_or.show
			call main.cb_weighted_or.show
		}
	}
	if main.rb_oblique {
		call main.lb_oblique.enable
		if main.lb_oblique.equals("promax") {
			call main.tx_propow.show
			call main.en_propow.show
		}
		if main.lb_oblique.equals("oblimin") {
			call main.tx_oblimin_ob.show
			call main.en_oblimin_ob.show
			call main.tx_obliminnum_ob.show
		}
		if main.lb_oblique.equals("cf") {
			call main.tx_cf_ob.show
			call main.en_cf_ob.show
			call main.tx_cfnum_ob.show
		}
		if main.lb_oblique.equals("target") {
			call main.tx_target_ob.show
			call main.cb_target_ob.show
		}
		if main.lb_oblique.equals("partial") {
			call main.tx_partial_ob.show
			call main.cb_partial_ob.show
			call main.tx_weighted_ob.show
			call main.cb_weighted_ob.show
		}
	}
	call main.gb_method.enable
	call main.rb_ortho.enable
	call main.rb_oblique.enable
	call main.ck_horst.enable
	call main.ck_factors.enable
	if main.ck_factors {
		call main.sp_factors.enable
		call main.tx_factors.enable
	}
	call report.ck_blanks.enable
	if report.ck_blanks {
		call report.en_blanks.enable
		call report.tx_blanks.enable
	}
	call report.ck_detail.enable
	if report.ck_detail {
		call report.ck_format.enable
		if report.ck_format {
			call report.en_format.enable
		}
		call report.ck_noloading.enable
		call report.ck_norotation.enable
	}
	if !(main.rb_ortho & main.lb_ortho.equals("")) {
		call script rotate_opt_opts_enable
	}
END

SCRIPT POSTINIT
BEGIN
	main.tx_propow.hide
	main.en_propow.hide

	main.tx_oblimin_or.hide
	main.en_oblimin_or.hide
	main.tx_obliminnum_or.hide
	main.tx_oblimin_ob.hide
	main.en_oblimin_ob.hide
	main.tx_obliminnum_ob.hide

	main.tx_cf_or.hide
	main.en_cf_or.hide
	main.tx_cfnum_or.hide
	main.tx_cf_ob.hide
	main.en_cf_ob.hide
	main.tx_cfnum_ob.hide

	main.tx_target_or.hide
	main.cb_target_or.hide
	main.tx_target_ob.hide
	main.cb_target_ob.hide

	main.tx_partial_or.hide
	main.cb_partial_or.hide
	main.tx_weighted_or.hide
	main.cb_weighted_or.hide
	main.tx_partial_ob.hide
	main.cb_partial_ob.hide
	main.tx_weighted_ob.hide
	main.cb_weighted_ob.hide
	script rotate_opt_opts_disable
END

LIST main_ortho_contents
BEGIN
	"Varimax (default)"
	"Varimax via the GPF algorithm"
	"Quartimax"
	"Equamax"
	"Parsimax"
	"Minimum entropy"
	"Comrey's tandem 1 principle"
	"Comrey's tandem 2 principle"
	"Oblimin"
	"Crawford-Ferguson family"
	"Bentler's invariant pattern simplicity"
	"Oblimax"
	"Quartimin"
	"Rotate toward matrix Tg"
	"Rotate toward matrix Tg, weighted by matrix W"
END

LIST main_ortho_values
BEGIN
	""
	vgpf
	quartimax
	equamax
	parsimax
	entropy
	tandem1
	tandem2
	oblimin
	cf
	bentler
	oblimax
	quartimin
	target
	partial
END

LIST main_ortho_scripts
BEGIN
	program varimax_on
	program vgpf_on
	program quartimax_on
	program equamax_on
	program parsimax_on
	program entropy_on
	program tandem1_on
	program tandem2_on
	program oblimin_on
	program cf_on
	program bentler_on
	program oblimax_on
	program quartimin_on
	program target_on
	program partial_on
END

LIST main_oblique_contents
BEGIN
	"Promax"
	"Oblimin"
	"Crawford-Ferguson family"
	"Bentler's invariant pattern simplicity"
	"Oblimax"
	"Quartimin"
	"Rotate toward matrix Tg"
	"Rotate toward matrix Tg, weighted by matrix W"
END

LIST main_oblique_values
BEGIN
	promax
	oblimin
	cf
	bentler
	oblimax
	quartimin
	target
	partial
END

LIST main_oblique_scripts
BEGIN
	program promax_on
	program oblimin_on
	program cf_on
	program bentler_on
	program oblimax_on
	program quartimin_on
	program target_on
	program partial_on
END

PROGRAM varimax_on
BEGIN
	call main.tx_oblimin_or.hide
	call main.en_oblimin_or.hide
	call main.tx_obliminnum_or.hide
	call main.tx_cf_or.hide
	call main.en_cf_or.hide
	call main.tx_cfnum_or.hide
	call main.tx_target_or.hide
	call main.cb_target_or.hide
	call main.tx_partial_or.hide
	call main.cb_partial_or.hide
	call main.tx_weighted_or.hide
	call main.cb_weighted_or.hide
	call script rotate_opt_opts_disable
END

PROGRAM vgpf_on
BEGIN
	call main.tx_oblimin_or.hide
	call main.en_oblimin_or.hide
	call main.tx_obliminnum_or.hide
	call main.tx_cf_or.hide
	call main.en_cf_or.hide
	call main.tx_cfnum_or.hide
	call main.tx_target_or.hide
	call main.cb_target_or.hide
	call main.tx_partial_or.hide
	call main.cb_partial_or.hide
	call main.tx_weighted_or.hide
	call main.cb_weighted_or.hide
	call script rotate_opt_opts_enable
END

PROGRAM quartimax_on
BEGIN
	call main.tx_oblimin_or.hide
	call main.en_oblimin_or.hide
	call main.tx_obliminnum_or.hide
	call main.tx_cf_or.hide
	call main.en_cf_or.hide
	call main.tx_cfnum_or.hide
	call main.tx_target_or.hide
	call main.cb_target_or.hide
	call main.tx_partial_or.hide
	call main.cb_partial_or.hide
	call main.tx_weighted_or.hide
	call main.cb_weighted_or.hide
	call script rotate_opt_opts_enable
END

PROGRAM equamax_on
BEGIN
	call main.tx_oblimin_or.hide
	call main.en_oblimin_or.hide
	call main.tx_obliminnum_or.hide
	call main.tx_cf_or.hide
	call main.en_cf_or.hide
	call main.tx_cfnum_or.hide
	call main.tx_target_or.hide
	call main.cb_target_or.hide
	call main.tx_partial_or.hide
	call main.cb_partial_or.hide
	call main.tx_weighted_or.hide
	call main.cb_weighted_or.hide
	call script rotate_opt_opts_enable
END

PROGRAM parsimax_on
BEGIN
	call main.tx_oblimin_or.hide
	call main.en_oblimin_or.hide
	call main.tx_obliminnum_or.hide
	call main.tx_cf_or.hide
	call main.en_cf_or.hide
	call main.tx_cfnum_or.hide
	call main.tx_target_or.hide
	call main.cb_target_or.hide
	call main.tx_partial_or.hide
	call main.cb_partial_or.hide
	call main.tx_weighted_or.hide
	call main.cb_weighted_or.hide
	call script rotate_opt_opts_enable
END

PROGRAM entropy_on
BEGIN
	call main.tx_oblimin_or.hide
	call main.en_oblimin_or.hide
	call main.tx_obliminnum_or.hide
	call main.tx_cf_or.hide
	call main.en_cf_or.hide
	call main.tx_cfnum_or.hide
	call main.tx_target_or.hide

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?