{ Unsecure any query-pages owned by the Bill Of Materials Editor }
BOM_EDITOR_QUERY_PAGE END

{ Remove all unsecured query-pages }
REMOVE_QUERY_PAGE ALL CONFIRM

{ Create demonstration Editor query-pages with standard attributes.
  See description of MAKE_QUERY_PAGE for complete command syntax.
  These shortened forms of the command create pages with default colors
  and column setup.  The first column of each page is set up to echo
  the STRUCTURE_NUMBER option and the 'structure number' to allow direct
  picking of parts using column 1. }
MAKE_QUERY_PAGE 'bom1'
ATTRIBUTE Db_structure 19 'Structure' COLUMN "STRUCTURE_NUMBER @q1"
ATTRIBUTE Db_name 18 'Part Name'
ATTRIBUTE Db_revision 5 'Rev.'
ATTRIBUTE Db_version  5 'Ver.'
ATTRIBUTE Db_in_use 10 'User'
ATTRIBUTE Db_owner 12
ATTRIBUTE Db_quantity 5 'Qty.' COLUMN RIGHT
END

MAKE_QUERY_PAGE 'bom2'
ATTRIBUTE Db_structure 19 'Structure' COLUMN "STRUCTURE_NUMBER @q1"
ATTRIBUTE Db_name 18 'Part Name'
ATTRIBUTE Db_permissions 10
ATTRIBUTE Db_create_date 22
ATTRIBUTE Db_quantity 5 'Qty.' COLUMN RIGHT
END

MAKE_QUERY_PAGE 'bom3'
ATTRIBUTE Db_structure 19 'Structure' COLUMN "STRUCTURE_NUMBER @q1"
ATTRIBUTE Db_name 18
ATTRIBUTE Db_permissions 5
ATTRIBUTE Db_owner 10
ATTRIBUTE Db_group 10
ATTRIBUTE Db_quantity 5 'Qty.' COLUMN RIGHT
END

MAKE_QUERY_PAGE 'bom4'
ATTRIBUTE Db_structure 19 'Structure' COLUMN "STRUCTURE_NUMBER @q1"
ATTRIBUTE Db_name 18
ATTRIBUTE Db_class 10
ATTRIBUTE Db_release_date 20
ATTRIBUTE Db_quantity 5 'Qty.' COLUMN RIGHT
END

{ Register the new query-pages into the Bill Of Materials Editor }
BOM_EDITOR_QUERY_PAGE 'bom1' 'bom2' 'bom3' 'bom4' END

{ Default to editing full part trees.  This is the power-on default.
  This statement is here to show the command syntax.  Assembly mode,
  enabled with BOM_ASSEMBLY_MODE ON is simpler and faster than the
  full tree mode. }
BOM_ASSEMBLY_MODE OFF

{ Default to showing and editing part elements only.  This is the
  power-on default.  If BOM_PARTS_ONLY OFF is selected any elements
  in the database may be viewed and related }
BOM_PARTS_ONLY ON

{ Default to 2 spaces of indent for each level of exploded part
  displays.  This is the power-on default and the command is
  only here to show the syntax. }
BOM_NAME_INDENT 2

{ Unsecure any query-pages owned by the Bill Of Materials Formatter }
BOM_FORMATTER_QUERY_PAGE END

{ Remove all unsecured query-pages }
REMOVE_QUERY_PAGE ALL CONFIRM

{ Create demonstration Formatter query-pages with standard attributes.
  See description of MAKE_QUERY_PAGE for complete command syntax.
  These shortened forms of the command create pages with default colors }
MAKE_QUERY_PAGE 'name'
ATTRIBUTE Db_name        45     Db_name{ID}
ATTRIBUTE Db_revision    4      Db_revision
ATTRIBUTE Db_version    4       Db_version      COLUMN RIGHT FORMAT 3
{ ATTRIBUTE 'DESCRIPTION' 30      'DESCRIPTION' }
END

MAKE_QUERY_PAGE 'dms_bom_A'
ATTRIBUTE Db_position   4       Db_position      COLUMN RIGHT FORMAT 2
ATTRIBUTE Db_name        20     Db_name{ID}
ATTRIBUTE Db_revision    4      Db_revision
ATTRIBUTE Db_version    4       Db_version      COLUMN RIGHT FORMAT 3
ATTRIBUTE Db_quantity   3       Db_quantity     COLUMN RIGHT FORMAT 2
{ ATTRIBUTE 'DESCRIPTION' 30      'DESCRIPTION' }
END

MAKE_QUERY_PAGE 'dms_bom_B'
ATTRIBUTE Db_position   4       Db_position      COLUMN RIGHT FORMAT 2
ATTRIBUTE Db_name        20     Db_name{ID}
ATTRIBUTE Db_revision    4      Db_revision
ATTRIBUTE Db_version    4       Db_version      COLUMN RIGHT FORMAT 3
ATTRIBUTE Db_quantity   3       Db_quantity     COLUMN RIGHT FORMAT 2
ATTRIBUTE Db_owner      8       Db_owner
{ ATTRIBUTE 'DESCRIPTION' 30      'DESCRIPTION' }
END

MAKE_QUERY_PAGE 'dms_bom_C'
ATTRIBUTE Db_position   4       Db_position      COLUMN RIGHT FORMAT 2
ATTRIBUTE Db_name        20     Db_name{ID}
ATTRIBUTE Db_revision    4      Db_revision
ATTRIBUTE Db_version    4       Db_version      COLUMN RIGHT FORMAT 3
ATTRIBUTE Db_quantity   3       Db_quantity     COLUMN RIGHT FORMAT 2
ATTRIBUTE Db_owner      8       Db_owner
ATTRIBUTE Db_create_date 8      Db_create_date
ATTRIBUTE Db_release_date 8     Db_release_date
{ ATTRIBUTE 'DESCRIPTION' 30      'DESCRIPTION' }
END

MAKE_QUERY_PAGE 'dms_bom_D'
ATTRIBUTE Db_position   4       Db_position      COLUMN RIGHT FORMAT 2
ATTRIBUTE Db_name        20     Db_name{ID}
ATTRIBUTE Db_revision    4      Db_revision
ATTRIBUTE Db_version    4       Db_version      COLUMN RIGHT FORMAT 3
ATTRIBUTE Db_quantity   3       Db_quantity     COLUMN RIGHT FORMAT 2
ATTRIBUTE Db_owner      8       Db_owner
ATTRIBUTE Db_create_date 8      Db_create_date
ATTRIBUTE Db_release_date 8     Db_release_date
ATTRIBUTE Db_archive_date 8     Db_archive_date
{ ATTRIBUTE 'DESCRIPTION' 30      'DESCRIPTION' }
END

MAKE_QUERY_PAGE 'dms_bom_E'
ATTRIBUTE Db_position   4       Db_position      COLUMN RIGHT FORMAT 2
ATTRIBUTE Db_name       20      Db_name{ID}
ATTRIBUTE Db_revision   4       Db_revision
ATTRIBUTE Db_version    4       Db_version      COLUMN RIGHT FORMAT 3
ATTRIBUTE Db_quantity   3       Db_quantity     COLUMN RIGHT FORMAT 2
ATTRIBUTE Db_owner      8       Db_owner
ATTRIBUTE Db_group      8       Db_group
ATTRIBUTE Db_create_date 8      Db_create_date
ATTRIBUTE Db_release_date 8     Db_release_date
ATTRIBUTE Db_released_by 8      Db_released_by
ATTRIBUTE Db_archive_date 8     Db_archive_date
{ ATTRIBUTE 'DESCRIPTION' 30      'DESCRIPTION' }
END

{ Register the new query-pages into the Bill Of Materials Formatter }
BOM_FORMATTER_QUERY_PAGE        'dms_bom_A' 'dms_bom_B' 'dms_bom_C'
				'dms_bom_D' 'dms_bom_E' 'name' END

{ ********************************************* }
{ Bill Of Material Editor Display Table Setup }

LOAD_MACRO 'bom_macro'   { ready for LOAD_MACRO }

DEFINE Bom_load_posno
  INQ_ENV 0
  IF (NOT (POS (INQ 301) 'ME10v'))
    LOAD_MACRO 'bom_macro.2'
  END_IF
END_DEFINE

Bom_load_posno

DELETE_MACRO Bom_load_posno

{ Declare the Editor Table, it is referred to by this variable from now on }
LET Bedt 'dms_bom_dt'

DEFINE Bm_table_off_action
	PARAMETER tab_name

	('SHOW_TABLE OFF "' + tab_name + '"')
END_DEFINE

TABLE_LAYOUT Bedt
	     'dms_bom_editor' { This name is required for proper functioning }
  Table_display_color
  Table_background_color
  ROWS 15
  FRAME_WIDTH 1
  HORIZONTAL Table_horizontal_line_color
	     Table_results_horizontal_line_type
  VERTICAL   Table_vertical_line_color Table_vertical_line_type
  SCROLL_BAR Table_scroll_bar_display_color
	     Table_scroll_bar_background_color 20

  { 79 character wide display table }
  TITLE_LAYOUT
	Headline_height_db
	{ Row 1 titles: boxes for header and 8 4-character buttons }
	((RPT ' ' 39) + (RPT ('|'+(RPT ' ' 4)) 8))
	{ Row 2 titles: boxes for 3 19-character buttons and 4 4-char buttons }
	Text_slot_height_db
	((RPT ' ' 19) + (RPT ('|'+(RPT ' ' 19)) 2) + (RPT ('|'+(RPT ' ' 4)) 4))
	{ Row 3 titles: 1 19 character and 4 14 character boxes for status }
	((RPT ' ' 19) + (RPT ('|' + (RPT ' ' 14)) 4))
	{ Last row title layout are defined by the Editor Query Pages }
	' '
  END
  COLUMN_LAYOUT
  { Column layouts are defined by the Editor Query Pages }
  ' '
  END

TABLE_TITLE Bedt
  { Title row #1 buttons }
  { Editor header and with preassigned and spare unassigned command buttons }
  Tbl_fg_col_blk_1 Tbl_bg_col_yel 'Bill Of Materials Editor [@s0 Entries]' ''          1 1
  Tbl_fg_col_wht_1 Tbl_bg_col_blu ''  ''                                 1 2
  Tbl_fg_col_wht_1 Tbl_bg_col_blu ''  ''                                 1 3
  Tbl_fg_col_wht_1 Tbl_bg_col_blu ''  ''                                 1 4
  Tbl_fg_col_wht_1 Tbl_bg_col_blu ''  ''                                 1 5
  Tbl_fg_col_wht_1 Tbl_bg_col_blu ''  ''                                 1 6
  { Buttons for paging using SHOW_TABLE_PAGE which has more options }
  Tbl_fg_col_wht_1 Tbl_bg_col_blu
			  'Prev' ("SHOW_TABLE_PAGE PREVIOUS '"+Bedt+"'") 1 7
  Tbl_fg_col_wht_1 Tbl_bg_col_blu
			  'Next' ("SHOW_TABLE_PAGE NEXT '"+Bedt+"'")     1 8
  Tbl_fg_col_wht_1 Tbl_bg_col_blu
			  'OFF'  Bm_table_off_action Bedt                1 9
  { Title row #2 buttons }
  { Buttons for repeating most-used menu commands in more convenient place }
  Tbl_fg_col_wht_1 Tbl_bg_col_blu 'Add Part'    'BOM_ADD_PART'           2 1
  Tbl_fg_col_wht_1 Tbl_bg_col_blu 'Remove Part' 'BOM_REMOVE_PART'        2 2
  Tbl_fg_col_wht_1 Tbl_bg_col_blu 'Change Qty'  'BOM_SET_QUANTITY'       2 3
  Tbl_fg_col_wht_1 Tbl_bg_col_blu ''  ''                                 2 4
  { Buttons for paging using SHOW_TABLE_PAGE which has more options }
  Tbl_fg_col_wht_1 Tbl_bg_col_blu
			    'Frst' ("SHOW_TABLE_PAGE FIRST '"+Bedt+"'")  2 5
  Tbl_fg_col_wht_1 Tbl_bg_col_blu
			    'Last' ("SHOW_TABLE_PAGE LAST '"+Bedt+"'")   2 6
  { Option for BOM_REMOVE_PART: remove entire quantity of child from parent }
  Tbl_fg_col_wht_1 Tbl_bg_col_blk 'All'  'ALL'                           2 7
  { Status output in logical table titles:
    Title 1 - Current open part name
    Title 2 - Current display depth: Integer or ALL
    Title 3 - Current format: INDENTED, EXPLODED or FLAT
    Title 4 - Current show setting: ASSEMBLY or PARTS
    Title 5 - Current editor mode: ASSEMBLY or TREE
    Title 6 - Current indent spaces: Integer - not assigned in display table
  }
  Tbl_fg_col_wht_1 Tbl_bg_col_blk '@s1' "@t1"                          3 1
  Tbl_fg_col_wht_1 Tbl_bg_col_blk 'Depth: @s2'  '@s2'                    3 2
  Tbl_fg_col_wht_1 Tbl_bg_col_blk '@s3'         '@s3'                    3 3
  Tbl_fg_col_wht_1 Tbl_bg_col_blk 'Show: @s4'   '@s4'                    3 4
  Tbl_fg_col_wht_1 Tbl_bg_col_blk 'Mode: @s5'   '@s5'                    3 5
END

{ Register the display table with the application }
BOM_EDITOR_DISPLAY_TABLE Bedt

MOVE_TABLE Bedt UPPER LEFT END

LET Bom_bubble_val 1

CREATE_LTAB 20 2 'dms_bom_posno'
{ Display table definition }

TABLE_LAYOUT     'dms_bom_posno_dt'
		 'dms_bom_posno'
		 WHITE BLACK
		 WIDTH 22.000000 ROWS 24.000000
		 FRAME_WIDTH 2
		 HORIZONTAL WHITE DOTTED
		 VERTICAL WHITE SOLID
		 SCROLL_BAR WHITE BLUE 24
		 TITLE_LAYOUT
		 20 '             |   '
		    '  |              '
		 END
		 COLUMN_LAYOUT
		    '  |              '
END

TABLE_TITLE 'dms_bom_posno_dt'
		  BLACK YELLOW "PARTS TREE" "" 1 1
		  WHITE BLUE "OFF" ("END " + Bm_table_off_action 'dms_bom_posno_dt')  1 2
		  BLACK CYAN '@s2' ''  2 1
		  BLACK CYAN '@s1' ''  2 2
END
TABLE_COLUMN 'dms_bom_posno_dt'
		 COLUMN 1 GREEN BLACK 2 FORMAT 0 RIGHT
		 COLUMN 2 GREEN BLACK 1 FORMAT 0 LEFT
			"@Q1"
END
{ table position is window size specific, should not be }
MOVE_TABLE 'dms_bom_posno_dt'  LOWER RIGHT END

LET Bom_query_depth     ALL
LET Bom_query_type      FLAT
LET Bom_query_part      ALL
LET Bom_default_page    "dms_bom_A"

CREATE_LTAB 40 10 'dms_bom_formatter'

