UNIT pageutls; INTERFACE CONST emp_logonid = '$own$'; flag_on = 'y'; flag_off = 'n'; pcs_phys_termtype = 'PCS'; min_integer = -2100000000; max_integer = 2100000000; invalid_integer = 2147483647; invalid_timestamp = invalid_integer; invalid_saldo = invalid_integer; invalid_short = 32767; invalid_duration = invalid_short; undefined_sreal = -32767; invalid_taris_time = -9999; no_time = -9998; no_allowance = no_time; min_year = 25; no_year_high = 2100; only_valid_blockid = 6309; sign_offset = 128; seconds_per_day = 86400; max_allowance = 2880; empty_integer = -2147483647; empty_short = -32767; no_variable = empty_integer; keydata_len = 60; break_add_on = 64; first_search_char = 32; last_search_char = 255; type_char = 256; type_unsigned_byte = 257; type_short = 512; type_mod = 513; type_duration = 514; type_dduration = 515; type_allowance = 516; type_long = 768; type_saldo = 769; type_dsaldo = 770; type_balance = 771; type_date = 1024; type_time = 1025; type_emplno = -32512; type_deptno = -32511; type_costid = -32510; tyoe_employcat = -32509; type_commtype = -32508; emplno_len = 10; deptno_len = 10; employcat_len = 4; adjustcat_len = 4; firstname_len = 20; surname_len = 30; badgeno_len = 10; long_badgeno_len = 20; objectid_len = 8; logonid_len = 8; chapter_len = 10; objecttype_len = 8; phys_filename_len = 32; processname_len = 32; code_len = 4; long_record_len = 32000; exit_code_len = 6; error_text_len = 60; perror_text_len = 80; part_of_error_text_len = 57; vos_modulename_len = 32; time_zone_len = 3; tmon_command_line_len = 300; input_line_len = 1024; comm_buffer_len = 4096; double_comm_buffer_len = 8192; cci_header_len = 4; long_text_len = 30; time_array_len = 5; rpoolid_len = 12; max_no_of_attributes = 8; attribid_len = 12; parproid_len = 12; projectid_len = 12; taskid_len = 12; versionid_len = 4; export_data_len = 249; pcs_request_len = 200; costid_type_len = 20; costid_ext_type_len = 22; search_set_len = 20; cust_conv_table_common_type_len = 16001; tstat_tab_len = 36; max_repvar_len = 16; userid_len = 16; recid_len = 8; fieldid_len = 16; queryid_len = 8; maxaccesses = 400; maxallowances = 5; maxalt_wpats = 8; maxbreaks = 6; maxdaytypes = 10; maxdiffs_from_plan = 12; maxseverity_codes = 8; maxshifts_per_cycle = 64; maxacmasks = 96; maxaccodes = 48; maxtermcats = 4; max_menue_lines = 12; max_select_options = 16; maxacsel = 48; maxclients = 5; maxmethods = 26; maxdaysloaded = 5; max_search_sets_in_list = 24; max_prcon2_printers = 20; max_costno_grupps = 178; maxtp = 50; maxtimepairs = 16; maxtimepairs_per_record = 4; maxtimepair_records = 4; maxtimes_booked = 32; max_daily_inc_corrections = 40; maxtimes = 64; maxcodes = 32; maxrecords = 8; maxcorr_incomes = 10; maxvacations = 4; maxzones = 64; max_no_of_balances = 24; max_no_of_oem_balances = 8; max_no_of_inc_groups = 8; max_inc_per_group = 5; first_no_basic_bal_ids = 33; max_no_basic_bal_ids = 48; max_sel_inc_per_group = 10; max_no_sel_inc_bal_ids = 98; max_empl_corr_values = 4; max_comp_balances = 40; adjust_rule_tab_len = 72; mcconf_rule_tab_len = 5; first_memory = 224; last_memory = 233; rule_applies = 'y'; rule_applies_not = 'n'; rule_applies_possibly = ' '; max_query_records = 15; query_def_len = 200; queryt_def_len = 3000; max_fields_per_record = 234; max_selected_fields = 500; selection_line_len = 2000; max_winc_incomes = 36; max_winc_codeids = 70; max_winc2_codeids = 109; max_winc_dayincs = 10; max_standard_cols = 10; no_value = chr (3); total_value = chr (4); planned_days_value = chr (5); current_value = chr (6); target_value = chr (7); created_until_value = chr (8); vl_max_cols = 32; vl_dinfo_string_len = 30; vl_output_line_len = 78; vl_index_output_line_len = 75; vl_filler_var_len = 3000; dslang_key_len = 64; dslang_year_offset = 2000; dbg_option_default = 0; dbg_append = 1; dbg_timestamp = 2; dbg_header = 4; dbg_force_flush = 8; dbg_indent = 16; dbg_lineheader = 32; dbg_max_sessions = 100; dbg_max_levels = 10; dbg_max_progs = 100; dbg_default = 1; dbg_debug = 2; dbg_dump = 3; dbg_deep_dump = 4; dbg_special = 5; maxprogs = 250; awtime_max_projects_per_day = 69; select_emplno = 'e'; select_deptno = 'd'; select_employcat = 'E'; select_name = 'n'; select_factory = 'f'; select_costid = 'c'; select_no_sort = 'q'; select_mach_job = 'm'; max_installations = 32; max_zones = 200; tps_per_access_range = 3; startup_string_len = 512; parm_tab_len = 24; parm_tab_line_len = 60; no_export = 'n'; pids = 'y'; siport = 's'; siport_badgeno_len = 14; CreateTimeZone = 'c'; DeleteTimeZone = 'd'; CreatePers = 'p'; DeletePers = 'l'; SetPersInfo = 'i'; SetDayType = 's'; AccessPers = 'a'; RefreshAllTimeZones = 'r'; RefreshAllDayType = 't'; RefreshAllPers = 'f'; NoAction = ' '; maxdefault_time_incomes = 4; maxcostbookings = 32; maxcostbookingst = 64; center = 'c'; right = 'r'; left = 'l'; justify_center = 'c'; justify_right = 'r'; justify_left = 'l'; prt_messages = 'p'; prt_errors = 'q'; ret_errors = 'r'; lm_normal = 'n'; lm_change = 'c'; lm_update = 'u'; lm_insert = 'i'; lm_old = ' '; lm_lsg = 'd'; orderno_len = 16; fault_reasonid_len = 4; prod_operationid_len = 4; piece_work_type_len = 4; fkey_maxpages = 3; fkey_maxlines = 6; fkey_maxcols = 4; fkey_max_per_page = 8; unused_return_value = 0; request_ok = 1; request_error = 2; invalid_badgeno = 3; invalid_costid = 4; booking_in_core_time = 5; last_going_automatic = 6; invalid_pin_code = 7; invalid_terminal = 8; unsufficient_allowance = 9; invalid_emplno = 10; rc_dummy5 = 11; rc_dummy6 = 12; rc_dummy7 = 13; rc_dummy8 = 14; rc_dummy9 = 15; rc_dummy10 = 16; unknown_error = 17; not_valid_input = 18; not_valid_master_data = 19; no_sfc_error = 20; more_employees_than_planned = 21; more_prod_steps_than_planned = 22; no_next_pstep_found = 23; not_in_tolerances = 24; unexpected_machine = 25; booking_forced = 26; less_employees_than_planned = 27; prod_step_overlap = 28; cost_booking_failed = 29; employee_already_registrated = 30; not_all_employees_have_completed = 31; not_interrupted = 32; no_timestamp_found = 33; prod_step_not_active = 34; prod_step_already_registrated = 35; prod_step_already_completed = 36; prod_step_not_registrated = 37; sequence_error = 38; tolerance_exceeded = 39; employee_has_already_completed = 40; too_many_prod_steps = 41; too_many_employees = 42; employee_not_on_prod_step = 43; unknown_machine = 44; unknown_message_type = 45; unknown_request_type = 46; wrong_machine = 47; unknown_sfc_badgeno = 48; unknown_prod_step = 49; unknown_order = 50; too_less_employees = 51; prod_status_is_hold = 52; sfc_queue_error = 53; employee_not_registrated = 54; sfc_file_error = 55; already_interrupted = 56; already_resumed = 57; sfc_booking_ignored = 58; unknown_fault_reason = 59; too_many_messages_per_second = 60; undefined_sfc_code = 61; employee_on_too_many_machines = 62; no_sfc_permission = 63; created_employee_completion = 64; auto_empl_completion_failed = 65; machine_overlap = 66; sfc_booking_while_absent = 67; employee_on_too_many_psteps = 68; special_interruption = 69; no_sfc_info_error = 70; inherit_quantity_active = 71; predecessors_not_completed = 72; predecessors_completed = 73; unknown_machine_order = 74; undefined_parallelity = 75; quantity_changed = 76; no_space_for_splitting = 77; msg_type_not_allowed = 78; employee_not_valid = 79; auto_empl_registration_failed = 80; employee_not_startup_registrated = 81; employee_already_startup_registrated = 82; quantity_change_failed = 83; quantity_too_small = 84; more_costtypes = 85; other_msg_type_expected = 86; offline_booking = 87; no_answer_from_terminal = 88; responsibility_change_request = 89; responsibility_change_successful = 90; responsibility_table_error = 91; sfc_custom_error = 100; check_balance_base = 2140000000; ts_req_msgno = 1; ts_rpl_msgno = 2; read_reqno = 1; more_reqno = 2; change_reqno = 3; print_reqno = 4; demp_download_reqno = 5; delete_reqno = 6; get_codeid_reqno = 10; get_wpatid_reqno = 11; get_special_service_reqno = 12; load_abbr_list_reqno = 13; get_vemp_reqno = 14; get_mach_job_reqno = 15; get_cycleid_reqno = 16; fill_timepair_info_reqno = 17; update_dscalen_tab_reqno = 18; read_abilities_reqno = 19; read_requirements_reqno = 20; load_empl_data_reqno = 21; load_external_empl_reqno = 22; load_empl_list_reqno = 23; load_reassigned_empls_reqno = 24; write_schedule_reqno = 25; get_accesses_reqno = 26; load_staff_list_reqno = 27; get_wpatid_from_cycle_reqno = 28; load_empl_djob_data_reqno = 29; write_djob_tab_reqno = 30; load_squal_list_reqno = 31; nvvlist_reqno = 32; get_caschid_reqno = 33; write_staff_tab_reqno = 34; save_cascw_tab_reqno = 35; save_cascj_tab_reqno = 36; get_cascjid_reqno = 37; get_cascwid_reqno = 38; get_dscols_reqno = 39; get_ruleid_reqno = 40; get_casceid_reqno = 41; read_dscalen_reqno = 42; read_dssgnoff_reqno = 43; write_dssgnoff_reqno = 44; update_comms_reqno = 46; dkeys_abbr_tab_len = 500; function_code_len = 1; change_insert = 'i'; change_update = 'u'; change_delete = 'd'; change_copy = 'c'; change_rename = 'r'; change_copy_new = 'n'; change_insert_new = 'w'; variants_current = 'c'; variants_newest = 'n'; variants_future = 'f'; variants_all = 'a'; variants_oneday = 'h'; variants_onlyone = 'o'; acalen_msg_ct = 80; acalen_max_lines = 160; accemp_rpl_ct = 30; anlbal_rpl_ct = 221; atcomp_rpl_ct = 39; awtime_rpl_ct = 31; awtime_comment_rpl_ct = 44; awtime_task_rpl_ct = 78; bookmsg_rpl_ct = 16; bmsg_rpl_ct = bookmsg_rpl_ct; ccomp_rpl_ct = 45; comm_rpl_ct = 36; comm_update_ct = 50; corder_rpl_ct = 11; cols_rpl_ct = 18; cplan_rpl_ct = 27; cplane_rpl_ct = cplan_rpl_ct; cplanm_rpl_ct = cplan_rpl_ct; cplanp_rpl_ct = 28; cusers_rpl_ct = 11; dabsemp_rpl_ct = 14; dabsgrp_rpl_ct = 12; dacce_rpl_ct = 100; daccv_rpl_ct = 30; daccz_rpl_ct = 49; dcbal_rpl_ct = 22; dcost_rpl_ct = 45; demp_rpl_ct = 18; demp_download_ct = 225; derrors_rpl_ct = 16; dfrsn_rpl_ct = 49; dkeys_rpl_ct = 20; dmonth_rpl_ct = 40; dmsg_rpl_ct = 26; dorder_rpl_ct = 44; dperror_rpl_ct = 39; dpres_rpl_ct = 19; dprint_rpl_ct = 12; dprint2_rpl_ct = 3540; dpsopn_rpl_ct = 60; dpstep_rpl_ct = 66; dpwarn_rpl_ct = 22; dscom_rpl_ct = 50; dscom_update_ct = 50; dsplan_rpl_ct = 28; dstatus_rpl_ct = 58; dswarn_rpl_ct = 12; dvisit_rpl_ct = 34; dwarn_rpl_ct = 12; dzone_rpl_ct = 45; empvar_rpl_ct = 59; emplac_rpl_ct = 60; lmsg_rpl_ct = bookmsg_rpl_ct; lpstep_rpl_ct = 48; ltime_rpl_ct = 17; ltime_update_ct = 60; mcbal_rpl_ct = 15; menue_rpl_ct = 40; monov_rpl_ct = 40; msg_rpl_ct = 8; order_rpl_ct = 50; pbar_rpl_ct = 30; plan_rpl_ct = 13; plan_tab_max = 27; pconf_rpl_ct = 12; pconf_update_ct = 24; pnet_rpl_ct = pbar_rpl_ct; ppbook_line_ct = 130; ppbook2_line_ct = 59; ppord_rpl_ct = 64; prstat_rpl_ct = 17; prstat_dsp_rpl_ct = 3660; pscap_rpl_ct = 80; psprod_rpl_ct = 80; pstruc_rpl_ct = 23; pwbal_rpl_ct = 12; query_rpl_ct = 25; queryd_rpl_ct = 36; dscost_rpl_ct = 18; tstat_rpl_ct = 36; upstep_rpl_ct = 50; vds_rpl_ct = 49; recobh_rpl_ct = 58; smsg_rpl_ct = 75; time_rpl_ct = 1; ttline_rpl_ct = 13; wcycst_rpl_ct = 30; chlog_rpl_ct = 70; rcalen_rpl_ct = 12; mplace_rpl_ct = 2; comm_text_buffer_len = 1080; max_fields_per_mask = 200; term_ct = 10; job_rpl_ct = 20; pemploy_rpl_ct = 10; reass_rpl_ct = 24; reass_rpl3_ct = 10; reass_upd_ct = 15; reass_cqg_ct = 199; aemploy_rpl_ct = 10; avemp_rpl_ct = 60; res_rpl_ct = 57; profil_rpl_ct = 59; max_pmreq_tab_len = 68; statusid_len = 8; schedu_rpl_ct = 2; opspla_rpl_ct = 2; emsche_rpl_ct = 10; ts_schedu_load_abbr_list_ct = 25; ts_schedu_read_able_ct = 40; ts_schedu_read_reqs_ct = 10; ts_schedu_load_empl_list_ct = 8; ts_schedu_load_emplno_list_ct = 200; ts_schedu_max_empls_ct = 250; ts_schedu_max_jobs_ct = 64; ts_schedu_load_reass_empls_ct = 7; ts_schedu_load_empl_data_ct = 20; ts_schedu_write_schedule_ct = 10; schedu_max_conflicts = 20; ts_schedu_max_staff_ct = 10; schedu_sums_tab_len = 403; ts_schedu_load_djob_ct = 140; ts_scheds_max = 96; max_comms_for_opspla = 18; casch_rpl_ct = 50; wasc_rpl_ct = 19; wasc_page_length = 50; cascj_tab_len = 200; cascw_tab_len = 300; NUMBERBALANCE = 8; numbalance = 8; numb_breaks = 3; MAX_ADP_VALUE = 1000; ADP_ERROR_BASIC_VALUE = 600; ADP_MESSAGE_BASIC_VALUE = 600; ADP_WARNING_BASIC_VALUE = 69; MAX_CHAR_REASON_OF_ABSENCE = 2; djob_rpl_ct = 0; ts_schedu_write_djob_tab_ct = 100; squal_rpl_ct = 10; nvvlist_rpl_ct = 128; nvvlist_req_ct = 875; mode_dkeys = 'k'; mode_prog = 'p'; action_getinfo = 'g'; action_dinfo = '0'; action_new = '1'; action_unselect = 'u'; action_dkeys = 'k'; action_saved = 'a'; action_quit = 'v'; action_select = 's'; action_update = '2'; action_copy = '3'; action_delete = '4'; action_info = '5'; action_print = '6'; action_rename = '7'; action_modify = '8'; action_mpdata = 'm'; action_change_all = '9'; action_plan = 'p'; action_cancel = 'q'; action_smach = 'S'; action_restore = 'r'; action_copy_order = 'z'; action_booktime = 't'; action_msg = 'i'; action_dpstep = 'd'; action_add_pstep = 'e'; action_remove_pstep = 'f'; action_start = 'w'; action_ppbook = 'P'; action_startterm = 'b'; action_stopterm = 'c'; action_download = 'h'; action_balload = 'j'; action_starttrace = 'l'; action_stoptrace = 'n'; action_timesync = 'o'; action_dmsg = 'D'; action_line_len = 76; attribute_normal = 'n'; attribute_hide = 'h'; attribute_grey = 'g'; attribute_selected = 's'; attribute_gridlines = 'q'; attribute_colored = 'c'; attribute_noedit = 'e'; invert_flag = 'i'; cit_yesterday = 0; cit_today = 1; modify_deleted = 0; modify_original = 1; modify_inserted = 2; modify_by_empl = 3; modify_changed = 4; modify_by_job = 10; modify_by_timepairs = 11; deptno_error_index = 32766; employcat_error_index = 32765; costid_error_index = 32764; select_options_error_index = 32763; short_table_len = 64000; index_table_len = 4000; dscode_key_primary = 'p'; dscode_key_scodeid_holiday = 'h'; dscode_key_scodeid_day_off = 'd'; dscode_key_scodeid_workday = 'w'; dscode_key_holiday_keys = 'H'; dscode_key_day_off_keys = 'D'; dscode_key_workday_keys = 'W'; dscode_key_all_keys = 'A'; max_cwrp_days = 400; cusers_name_len = 30; max_cols = 4096; max_bytes_per_table = 5000; clientno_tab_len = 256; language_tab_len = 32; codepage_tab_len = 256; local_printername = 'LPT'; ul_block_len = 4096; ul_read_first = 1; ul_read_last = 2; ul_read_next = 3; ul_read_prev = 4; ul_read_new_pos = 5; ul_append = 6; ul_delete_first = 7; ul_delete_last = 8; ul_change = 9; ul_change_new_pos = 10; ul_create = 11; ul_destroy = 12; ix_keys_in_block = 10; ix_hashtab_mod = 11; ix_hashtab_max = 10; ix_position = 1; ix_read_next = 2; ix_insert = 3; ix_create = 4; ix_destroy = 5; ix_delete = 6; open_file_dc = 01; close_file_dc = 02; seq_read_dc = 10; seq_write_dc = 11; seq_position_dc = 12; seq_delete_dc = 13; keyed_read_dc = 20; keyed_write_dc = 21; keyed_position_dc = 22; keyed_delete_dc = 23; keyed_rewrite_dc = 24; maxfiles = 200; minkey_short = -9999; input = 1; output = 2; value_undefined_char = 128; taris_time_array_len = 8; no_year_low = 1900; no_month_low = 1; no_day_low = 1; root_year = 1980; seconds_per_year = 31536000; seconds_per_hour = 3600; sysname_len = 10; min_chars_for_move = 0; eend_of_file = 1025; erecord_too_long = 1026; eobject_not_found = 1032; einvalid_io_operation = 1040; eusage_given = 1044; einvalid_io_type = 1070; etimeout = 1081; einvalid_duplicate_key = 1111; erecord_not_found = 1112; ealready_locked = 1206; ecaller_must_wait = 1277; einvalid_arg = 1371; eform_aborted = 1453; ebeginning_of_file = 1773; erecord_in_use = 2408; DiskReadError = 100; DiskWriteError = 101; FileNotAssignedError = 102; FileNotOpenError = 103; FileNotOpenForInputError = 104; FileNotOpenForOutputError = 105; InvalidNumericFormatError = 106; tm_CopyLine = 101; tm_AppendWin = 102; tm_RemoveWin = 103; tm_DKeysReturn = 104; tm_DeleteRecord = 105; tm_ReReadList = 106; tm_Keyboard = 107; tm_Escape = 108; tm_Arrows = 109; tm_GetCurEmplno = 110; tm_GetPrevEmplno = 111; tm_GetNextEmplno = 112; tm_Read = 113; tm_setFocus = 114; tm_FkeyPressed = 115; tm_UpdateData = 116; tm_SetWinProgno = 117; tm_WindowsOpen = 118; tm_MultipleSel = 119; tm_UpdateMask = 120; tm_UnselectList = 121; tm_NewLogon = 122; tm_SqualReturn = 123; tm_GetPrognoHandle = 124; tm_WriteStatic = 125; tm_SetColor = 126; tm_GetColor = 127; tm_OtherKeys = 128; tm_GetProgno = 129; tm_ReadStatic = 130; tm_CloseDemp = 131; tm_CallDemp = 132; tm_MsgCustLeitz = 133; tm_PingPong = 199; OkId = 101; MoreId = 102; CancelId = 103; LessId = 104; ExecuteId = 104; DuplicateId = 105; SkipId = 105; DeleteId = 106; SelectId = 107; NewId = 108; UpdateId = 109; AuswahlId = 110; FarbId = 111; AktualisierenId = 112; ReadId = 113; PrinterId = 114; AllOkId = 115; AllSkipId = 116; tarisAllok = 101; tarisAllSkip = 102; PrevEmplnoId = 801; CurEmplnoId = 802; NextEmplnoId = 803; error_text_fname = 'errtxt.dat'; error_index_fname = 'errtxt.ind'; max_message_code = 21999; index_step = 10; MCTEntriesPerTable = 21000; MaxMCTEntries = 80000; user_opts_versionno = 2; user_opts_filename = 'Useropt.dat'; bt_alpha = 'a'; bt_short = 'n'; bt_mod_type = 't'; bt_duration = 'p'; bt_dduration = 'v'; bt_long = 'N'; bt_saldo = 's'; bt_dsaldo = 'V'; bt_date = 'd'; bt_time = 'u'; bt_costid = 'c'; bt_flag_type = 'f'; bt_cycle = 'F'; bt_allowance = 'w'; bt_char = 'C'; bt_unsigned_byte = 'b'; bt_balance = 'B'; bt_mptime = 'm'; bt_dbalance = 'D'; bt_sreal = 'S'; bt_ireal = 'I'; bt_prod_stepno = 'P'; bt_timearray = '['; bt_ogpdraw = ']'; bt_dcbal = 'l'; bt_owndraw = 'o'; bt_color = 'r'; bt_percentage = 'G'; bt_emplcorrvalue = 'H'; bt_specialsaldo = 'J'; bt_effort = 'K'; bt_pduration = 'L'; max_intervals = 80; nii = -10001; LptDev = 1; ScreenDev = 2; FileDev = 3; NoDongle = 1000; time_apply = 240; first_allowance_apply = 241; last_allowance_apply = 245; max_gacce_emplnos = 240; matchcode_table_size = 4; matchcode_table_text_len = 100; max_no_of_bal_rec = 13; tree_plus = '+'; tree_minus = '-'; tree_blank = ' '; indentation_const = 12; benz_did_len = 200; general_base_module = 1; taris_base_module = 2; tse_base_module = 3; general_income_module = 11; taris_income_module = 12; tse_income_module = 13; general_access_module = 21; taris_access_module = 22; tse_access_module = 23; general_pop_module = 31; taris_pop_module = 32; tse_pop_module = 33; general_cost_module = 41; taris_cost_module = 42; tse_cost_module = 43; general_ttbal_module = 51; taris_ttbal_module = 52; tse_ttbal_module = 53; general_statistik_module = 61; taris_statistik_module = 62; tse_statistik_module = 63; general_bde1_module = 71; taris_bde1_module = 72; tse_bde1_module = 73; general_bde2_module = 81; taris_bde2_module = 82; tse_bde2_module = 83; general_canteen_module = 91; taris_canteen_module = 92; tse_canteen_module = 93; general_bde3_module = 101; taris_bde3_module = 102; tse_bde3_module = 103; general_win_module = 111; taris_win_module = 112; tse_win_module = 113; general_time_acc_module = 121; taris_time_acc_module = 122; tse_time_acc_module = 123; general_screen_module = 131; taris_screen_module = 132; tse_screen_module = 133; general_online_module = 141; taris_online_module = 142; tse_online_module = 143; general_web_module = 151; taris_web_module = 152; tse_web_module = 153; general_telefon_module = 161; taris_telefon_module = 162; tse_telefon_module = 163; general_time_acc2_module = 171; taris_time_acc2_module = 172; tse_time_acc2_module = 173; general_planner_module = 181; taris_planner_module = 182; tse_planner_module = 183; general_analysis_module = 191; taris_analysis_module = 192; tse_analysis_module = 193; general_mobile_module = 201; taris_mobile_module = 202; tse_mobile_module = 203; general_aeneis_module = 211; taris_aeneis_module = 212; tse_aeneis_module = 213; tse_multi_clients_addon = 223; tse_cycle_addon = 233; tse_income_addon = 243; tse_adjust_addon = 253; tse_apply_and_grant_addon = 263; taris_installation = 271; ase_installation = 272; test_installation = 273; oem_installation = 274; botime_installation = 280; botime_standard_installation = 281; botime_extended_installation = 282; botime_enterprise_installation = 283; palmOk = 0; palmGeneralError = -1; palmNoSequence = -2; palmWrongSequence = -3; palmNotConnected = -4; palmUnknownCommand = -5; palmNoCommand = -6; palmLoginWithoutUser = -7; palmLoginConnectionFailed = -8; palmLogoutDisconnectFailed = -9; palmBookingFailed = -10; palmWrongAnswerFromServer = -11; palmTimeout = -12; palmFatalError = -13; palmUnknownEntity = -14; palm_str_array_len = 16; palm_act_array_len = 8; palm_id_array_len = 1024; palm_flag_del = 1; palm_flag_sync = 2; palm_flag_mode = 4; palm_flag_bearb = 8; module_table_len = 30; moduleid_text_len = 40; start_moduleid_taris231 = 1; end_moduleid_taris231 = 25; start_moduleid_ase231 = 32; end_moduleid_ase231 = 50; pin_flag_on = 'l'; pin_flag_off = 'a'; NO_SAP = 'n'; KK1 = 'y'; HR_PDC = 'h'; SAP_BC = HR_PDC; UNKNOWN_DB = 0; AIX_DB2 = 1; AIX_ORACLE = 2; AS400_DB2 = 10; AS400_DB2_ESQL = 11; LINUX_DB2 = 20; LINUX_ORACLE = 21; NT_DB2 = 30; NT_ORACLE = 31; NT_SQLSERVER = 32; participant_array_len = 32; dsmdlptp_code_len = 1; dsmdsum_code_len = 17; hex_block_len = 16; byte_block_len = 8; minutes_per_day = 1440; tslicence_read_dsmdsum = 1; tslicence_read_key = 2; tslicence_read_timer = 3; tslicence_get_debug = 4; tslicence_set_debug = 5; tslicence_kill_server = 6; tslicence_for_javaproxy = 7; no_of_readers = 24; benz_readers = 16; max_conv_tab_value = 16364; max_conv_tab_value_short = 8182; maxctcustbuffersize = 32000; TYPE {pspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp} {short.inc} short = -32768..32767; ulong = longword; {pspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp} {types.inc} long_text_type = ARRAY [1..long_text_len] OF char; very_long_text_type = ARRAY [1..60] OF char; objectid_type = ARRAY [1..objectid_len] OF char; objecttype_type = ARRAY [1..objecttype_len] OF char; flag_type = char; indexname_type = ARRAY [1..32] OF char; sqlstate_type = ARRAY [1..6] OF char; error_text_type = ARRAY [1..error_text_len] OF char; perror_text_type = ARRAY [1..perror_text_len] OF char; repvar_type = ARRAY [1..max_repvar_len] OF char; timer_text_type = ARRAY [1..80] OF char; languageid_type = ARRAY [1..2] OF char; packed_1_type = ARRAY [1..1] OF char; packed_2_type = ARRAY [1..2] OF char; packed_3_type = ARRAY [1..3] OF char; packed_4_type = ARRAY [1..4] OF char; packed_5_type = ARRAY [1..5] OF char; packed_6_type = ARRAY [1..6] OF char; packed_7_type = ARRAY [1..7] OF char; packed_8_type = ARRAY [1..8] OF char; packed_9_type = ARRAY [1..9] OF char; packed_10_type = ARRAY [1..10] OF char; packed_11_type = ARRAY [1..11] OF char; packed_12_type = ARRAY [1..12] OF char; packed_13_type = ARRAY [1..13] OF char; packed_14_type = ARRAY [1..14] OF char; packed_15_type = ARRAY [1..15] OF char; packed_16_type = ARRAY [1..16] OF char; packed_20_type = ARRAY [1..20] OF char; packed_21_type = ARRAY [1..21] OF char; packed_22_type = ARRAY [1..22] OF char; packed_23_type = ARRAY [1..23] OF char; packed_24_type = ARRAY [1..24] OF char; packed_25_type = ARRAY [1..25] OF char; packed_26_type = ARRAY [1..26] OF char; packed_27_type = ARRAY [1..27] OF char; packed_28_type = ARRAY [1..28] OF char; packed_29_type = ARRAY [1..29] OF char; packed_30_type = ARRAY [1..30] OF char; packed_32_type = ARRAY [1..32] OF char; packed_40_type = ARRAY [1..40] OF char; packed_42_type = ARRAY [1..42] OF char; packed_48_type = ARRAY [1..48] OF char; packed_50_type = ARRAY [1..50] OF char; packed_52_type = ARRAY [1..52] OF char; packed_60_type = ARRAY [1..60] OF char; packed_64_type = ARRAY [1..64] OF char; packed_75_type = ARRAY [1..75] OF char; packed_80_type = ARRAY [1..80] OF char; packed_120_type = ARRAY [1..120] OF char; packed_252_type = ARRAY [1..252] OF char; packed_256_type = ARRAY [1..256] OF char; packed_32000_type = ARRAY [1..32000] OF char; pc_date_time_type = ARRAY [1..17] OF char; a_char = char; wpatid_type = ARRAY [1..4] OF char; codeid_type = packed_2_type; long = LongInt; SYSNAME = ARRAY [1..sysname_len] OF char; dummy_type = short; fkey_mask_type = ARRAY [1..32] OF char; message_type = ARRAY [1..80] OF char; dcindexname_type = indexname_type; function_type = RECORD { 1} operation_id: short; { 3} position_id: short; { 5} read_type: char {= 5} END; qcode_type = ARRAY [1..2] OF char; status_type = ARRAY [1..76] OF char; index_array = ARRAY [0..2199] OF RECORD { 1} first: short; { 3} pos: short {=8800} END; PCopyLineRec = ^TCopyLineRec; TCopyLineRec = RECORD { 1} Id: short; { 3} FormatNo: short; { 5} RecAddr: long {= 8} END; mct_pt = ^mct_type; mct_entry = RECORD { 1} n: short; { 3} t: char {= 3} END; mct_type = ARRAY [1..MCTEntriesPerTable] OF mct_entry; ccb_type = RECORD { 1} timeout_used: long; { 5} rc: short; { 7} time_array: ARRAY [1..8] OF char; { 15} alignment1: ARRAY [1..2] OF char; { 17} timeout_planned: long; { 21} portid: short; { 23} event_flag: flag_type; { 24} commtype: char; { 25} used_protocol: char; { 26} charset_conv_flag: flag_type; { 27} buflen: short; { 29} hostname: ARRAY [1..32] OF char; { 61} programname: ARRAY [1..32] OF char; { 93} conversationid: long; { 97} rc1: long; { 101} rc2: long; { 105} timeout_std: long; { 109} {event_handle: hWnd;} { 110} cci_status: char; { 111} use_cci_header_flag: flag_type; { 112} clientname: ARRAY [1..32] OF char; { 144}{ svc_stop_evt: THandle;} { 145}{ cci_stop_evt: THandle;} { 146}{ cci_write_evt: THandle;} { 147}{ cci_read_pending_evt: THandle;} { 148}{ read_thread: THandle;} { 149} cci_id: long {= 152} END; user_opts_type = RECORD { 1} version: short; { 3} debug_flag: flag_type; { 4} mask_names_flag: flag_type; { 5} old_menu_flag: flag_type; { 6} alignment1: char; { 7} debug_level: short {= 8} END; objectid_s_type = string; objecttype_s_type = string; long_text_s_type = string; indexname_s_type = string; repvar_s_type = string; error_text_s_type = string; wpatid_s_type = string; codeid_s_type = string; frsn_index_type = STRING [20]; search_set_type = STRING [search_set_len]; pcb_type = RECORD { 1} line_cnt: long; { 5} page_cnt: long; { 9} page_len: short; { 11} after: short; { 13} f: file {= 13} END; order_by_type = ARRAY [1..256] OF char; interval_range = INTEGER; interval_type = ARRAY [1..2] OF interval_range; TIntervalData = ARRAY [0..max_intervals] OF interval_type; TColorData = ARRAY [1..max_intervals] OF long; processid_type = ulong; buffer_type = ARRAY [1..2] OF char; timestamp = long; rec_header_type = RECORD { 1} byte: buffer_type; { 3} reference_count: short; { 5} last_modified: timestamp {= 8} END; fcb_type = RECORD { 1} accessno: short; { 3} last_error: short; { 5} last_msgid: long; { 9} io_type: short; { 11} filename: objectid_type; { 19} filler: short {= 20} END; schedu_abbr_type = ARRAY [1..2] OF char; vl_cols_dinfo_tab_type = RECORD { 1} pos: short; { 3} len: short; { 5} col_dist: short; { 7} dinfo: short {= 8} END; vl_cols_dinfo_type = RECORD { 1} tab: ARRAY [1..vl_max_cols] OF vl_cols_dinfo_tab_type; { 257} no_cols: short {= 258} END; vl_output_line_type = ARRAY [1..vl_output_line_len] OF char; vl_index_output_line_type = ARRAY [1..vl_index_output_line_len] OF char; vl_rec_type_tab_record_type = RECORD { 1} rec_type: char; { 2} justification: char {= 2} END; vl_rec_type_tab_type = ARRAY [1..vl_max_cols] OF vl_rec_type_tab_record_type; vl_filler_var = ARRAY [1..vl_filler_var_len] OF char; vl_colsusage_type = ARRAY [1..vl_max_cols] OF boolean; unsigned_byte = char; signed_byte = char; filler_type = unsigned_byte; color_type = long; color_attr_type = RECORD { 1} color: color_type; { 5} attr: unsigned_byte; { 6} filler_ca: ARRAY [1..3] OF filler_type {= 8} END; one_masks_colors_type = ARRAY [1..10] OF color_attr_type; special_colors_type = ARRAY [1..16] OF color_attr_type; emplcorrvalue_type = long; specialsaldo_type = short; percentage_type = short; phoneno_type = ARRAY [1..24] OF char; url_type = ARRAY [1..254] OF char; alias_type = ARRAY [1..15] OF char; commtype_type = ARRAY [1..4] OF char; firstname_type = ARRAY [1..firstname_len] OF char; surname_type = ARRAY [1..surname_len] OF char; email_address_type = ARRAY [1..32] OF char; m_timestamp = long; mod_type = short; duration_type = short; dduration_type = short; dbalance_type = duration_type; allowance_type = duration_type; saldo_type = long; dsaldo_type = long; balance_type = saldo_type; chapter_type = ARRAY [1..chapter_len] OF char; phys_filename_type = ARRAY [1..phys_filename_len] OF char; print_queue_name_type = ARRAY [1..32] OF char; expanded_filename_type = ARRAY [1..256] OF char; processname_type = ARRAY [1..processname_len] OF char; code_type = ARRAY [1..code_len] OF char; exit_code_type = ARRAY [1..exit_code_len] OF char; vos_modulename_type = ARRAY [1..vos_modulename_len] OF char; userid_type = ARRAY [1..userid_len] OF char; time_zone_type = ARRAY [1..time_zone_len] OF char; fkey_mask_array = ARRAY [1..32] OF char; fkey_set_type = SET OF 1..32; fkey_subst_type = ARRAY [1..32] OF short; fkey_tab_type = ARRAY [-1..32] OF short; char_set_type = SET OF char; operator_type = (add, subtract); encode_decode_type = (encode, decode); return_value_type = (undefined, good_value, bad_value); pcs_request_type = ARRAY [1..pcs_request_len] OF char; codetype_type = char; termcat_type = packed_8_type; logonid_type = ARRAY [1..logonid_len] OF char; username_type = ARRAY [1..32] OF char; menue_title_type = ARRAY [1..46] OF char; menue_line_type = ARRAY [1..50] OF char; menue_info_type = ARRAY [1..10] OF char; operationid_type = ARRAY [1..8] OF char; deptno_type = ARRAY [1..deptno_len] OF char; emplno_type = ARRAY [1..emplno_len] OF char; badgeno_type = ARRAY [1..badgeno_len] OF char; long_badgeno_type = ARRAY [1..long_badgeno_len] OF char; select_options_type = ARRAY [1..max_select_options] OF char; input_line_type = ARRAY [1..input_line_len] OF char; startup_type = ARRAY [1..startup_string_len] OF char; cb_state_type = (cb_uninitialized, cb_initialized, cb_open, cb_connected); object_state_type = short; object_enum_type = short; conv_table_type_pointer = ^conv_table_type; conv_table_type = RECORD { 1} int_len: short; { 3} ext_len: short; { 5} no_of_values: short; { 7} cust_start_pos: short; { 9} CASE dummy: short OF {+ 2} 0: (value_tab: ARRAY [1..max_conv_tab_value] OF char); {+ 2} 1: (short_tab: ARRAY [1..max_conv_tab_value_short] OF short); {=16374} END; conv_table_common_type = RECORD { 1} no_of_tables: short; { 3} CASE max_no_of_tables: short OF {+ 2} 0: (index_table: ARRAY [1..index_table_len] OF RECORD {+ 2} table_name: long_text_type; {+ 32} filler: short; {+ 34} start_pos: long {=14400} END;); {+ 2} 1: (short_table: ARRAY [1..short_table_len] OF short); {=14400} END; half_conv_table_common_type = RECORD { 1} info: ARRAY [1..16000] OF short; {32001} conv_key: short {=32002} END; whole_conv_table_common_type = RECORD { 1} CASE dummy: long OF {+ 4} 0: (split: ARRAY [1..2] OF half_conv_table_common_type); {+ 4} 1: (normal: conv_table_common_type); {=14400} END; cust_conv_table_common_type = ARRAY [1..cust_conv_table_common_type_len] OF short; cust_conv_table_type = RECORD { 1} no_of_cust_values: short; { 3} CASE switch: short OF {+ 2} 0: (value_tab: ARRAY [1..max_conv_tab_value] OF char); {+ 2} 1: (short_tab: ARRAY [1..max_conv_tab_value_short] OF short); {=16368} END; short_pointer = ^short; convert_pointer_type = RECORD { 1} CASE useless: short OF {+ 2} 0: (p1: short_pointer); {+ 2} 1: (p2: conv_table_type_pointer); {= 8} END; cust_conv_table_type_ptr = ^cust_conv_table_type; cust_convert_pointer_type = RECORD { 1} CASE useless: short OF {+ 2} 0: (p1: short_pointer); {+ 2} 1: (p2: cust_conv_table_type_ptr); {= 8} END; video_attributes_type = RECORD { 1} mask_title_color: ARRAY [1..1] OF char; { 2} title_color: ARRAY [1..1] OF char; { 3} input_color: ARRAY [1..1] OF char; { 4} help_text_color: ARRAY [1..1] OF char; { 5} background_color: ARRAY [1..1] OF char; { 6} mask_title_inv_flag: flag_type; { 7} mask_title_ul_flag: flag_type; { 8} title_ul_flag: flag_type; { 9} input_high_flag: flag_type; { 10} error_inv_flag: flag_type; { 11} filler: ARRAY [1..6] OF char {= 16} END; codes_table_record_type = RECORD { 1} color: long; { 5} codeid: codeid_type; { 7} attr: unsigned_byte; { 8} filler: char {= 8} END; codes_table_type = ARRAY [1..31] OF codes_table_record_type; acccatid_type = ARRAY [1..4] OF char; accpatid_type = ARRAY [1..4] OF char; jobid_type = objectid_type; qualificationid_type = objectid_type; mach_job_type = RECORD { 1} machineid: objectid_type; { 9} jobid: objectid_type {= 16} END; abbr_type = ARRAY [1..2] OF char; abbr_key_type = RECORD { 1} deptno: deptno_type; { 11} abbr: abbr_type {= 12} END; importance_type = ARRAY [1..1] OF char; costid_type = ARRAY [1..costid_type_len] OF char; costid_ext_type = ARRAY [1..costid_ext_type_len] OF char; cost_bookings_record_type = RECORD { 1} switch_time: mod_type; { 3} costid: costid_type {= 22} END; cost_bookings_type = ARRAY [1..maxcostbookings] OF cost_bookings_record_type; cycleid_type = ARRAY [1..4] OF char; shiftid_type = ARRAY [1..4] OF char; ruleid_type = ARRAY [1..2] OF char; employcat_type = ARRAY [1..employcat_len] OF char; rcalenid_type = ARRAY [1..4] OF char; event_type = ARRAY [1..2] OF char; tariffarea_type = ARRAY [1..4] OF char; costno_type = ARRAY [1..10] OF char; adjustcat_type = ARRAY [1..adjustcat_len] OF char; chain_balance_tab_type = ARRAY [1..max_no_of_balances] OF short; continued_pay_len_type = short; msg_header_type = RECORD { 1} byte: buffer_type; { 3} reqno: short; { 5} error_code: code_type; { 9} vos_error: short; { 11} queue_name: ARRAY [1..10] OF char; { 21} callerno: short; { 23} notify_flag: flag_type; { 24} filler1: char; { 25} queue_timestamp: timestamp; { 29} reserved: short {= 30} END; switch_msg = RECORD { 1} taskid: short; { 3} objectid: objectid_type; { 11} objecttype: objecttype_type {= 18} END; long_msg_header_type = RECORD { 1} byte: buffer_type; { 3} reqno: short; { 5} error_code: code_type; { 9} vos_error: short; { 11} reserved: ARRAY [1..10] OF short; { 31} msgtype: short; { 33} switchmsg: switch_msg {= 50} END; file_param_type = RECORD { 1} phys_filename: phys_filename_type; { 33} organization: short; { 35} maxreclen: short; { 37} logging_flag: flag_type; { 38} logging_align: char; { 39} length_in_pages: short; { 41} starting_recordno: short; { 43} time_limit: long {= 46} END; open_param_type = RECORD { 1} io_type: short; { 3} locking_mode: short; { 5} access_mode: short {= 6} END; string_date_type = ARRAY [1..8] OF char; string_time_type = ARRAY [1..5] OF char; date_type = RECORD { 1} yy: short; { 3} mo: short; { 5} dd: short {= 6} END; time_type = RECORD { 1} hh: short; { 3} mi: short; { 5} ss: short {= 6} END; date_and_time_type = RECORD { 1} date: date_type; { 7} time: time_type {= 12} END; task_context_type = RECORD { 1} byte: ARRAY [1..100] OF char {= 100} END; income_type = ARRAY [1..4] OF char; wrk_code_type = RECORD { 1} codeid: codeid_type; { 3} codetype: codetype_type {= 3} END; error_log_rec = RECORD { 1} rec_header: rec_header_type; { 9} date_and_time: date_and_time_type; { 21} millisec: short; { 23} error_code: code_type; { 27} severity_code: char; { 28} filler1: ARRAY [1..1] OF filler_type; { 29} userid: userid_type; { 45} processname: processname_type; { 77} versionno: short; { 79} vos_error: short; { 81} fileid: objectid_type; { 89} error_text: error_text_type; { 149} exit_code: exit_code_type; { 155} filler: ARRAY [1..2] OF filler_type; { 157} counter: long; { 161} emplno: emplno_type; { 171} filler2: ARRAY [1..20] OF filler_type {= 190} END; error_text_rec = RECORD { 1} error_code: code_type; { 5} severity_code: char; { 6} error_text: error_text_type {= 65} END; recid_type = ARRAY [1..recid_len] OF char; fieldid_type = ARRAY [1..fieldid_len] OF char; fieldtype_type = short; queryid_type = ARRAY [1..queryid_len] OF char; selection_line_type = ARRAY [1..selection_line_len] OF char; selected_fields_type = ARRAY [1..max_selected_fields] OF fieldid_type; month_unsigned_byte_type = ARRAY [1..31] OF unsigned_byte; month_char_type = ARRAY [1..31] OF char; month_codes_type = ARRAY [1..31] OF codeid_type; month_short_type = ARRAY [1..31] OF short; abs_table_pointer = ^abs_table_type; abs_table_type = RECORD { 1} tab_start: date_type; { 7} tab_months: short; { 9} offduty_reasons: ARRAY [1..24] OF month_codes_type; { 1497} ondutytypes: ARRAY [1..24] OF month_char_type {=2240} END; ccbal_rule_display_type = RECORD { 1} d_method: unsigned_byte; { 2} d_corr_value_1: packed_8_type; { 10} d_transbalanceid_1: unsigned_byte; { 11} d_corr_value_2: packed_8_type; { 19} d_transbalanceid_2: unsigned_byte {= 19} END; adjust_date_tab_type = ARRAY [1..adjust_rule_tab_len] OF date_type; chain_step_tab_type = ARRAY [1..max_no_of_balances] OF short; memory_tab_type = ARRAY [1..10] OF balance_type; balance_index_tab_type = ARRAY [1..max_no_of_balances] OF short; balance_set_type = SET OF 1..max_no_of_balances; mcbal_sections_type = RECORD { 1} first: balance_index_tab_type; { 49} last: balance_index_tab_type; { 97} mcbal_balances: balance_set_type {= 97} END; rule_apply_type = flag_type; rule_apply_tab_type = ARRAY [1..adjust_rule_tab_len] OF rule_apply_type; return_code_type = short; record_no_type = short; empl_corr_values_type = ARRAY [1..max_empl_corr_values] OF saldo_type; cwrp_result_tab_type = RECORD { 1} wpatid: wpatid_type; { 5} codeid: codeid_type; { 7} ruleid: ruleid_type {= 8} END; cwrp_period_result_tab_type = ARRAY [1..max_cwrp_days] OF cwrp_result_tab_type; attribid_type = ARRAY [1..attribid_len] OF char; attributes_type = ARRAY [1..max_no_of_attributes] OF attribid_type; parproid_type = ARRAY [1..parproid_len] OF char; projectid_type = ARRAY [1..projectid_len] OF char; rpoolid_type = ARRAY [1..rpoolid_len] OF char; taskid_type = ARRAY [1..taskid_len] OF char; versionid_type = ARRAY [1..versionid_len] OF char; balancetype_array_type = ARRAY [1..4] OF unsigned_byte; search_list_type = RECORD { 1} length: short; { 3} search_sets: ARRAY [1..max_search_sets_in_list] OF search_set_type {= 26} END; scb_type = RECORD { 1} dsaempfcb: fcb_type; { 21} dsvempfcb: fcb_type; { 41} last_error: short; { 43} best_search_list_length: short; { 45} current_search_set: short; { 47} key_len: short; { 49} last_invalid_from: date_type; { 55} last_key: ARRAY [1..30] OF char; { 85} last_emplno: emplno_type; { 95} use_last_key: flag_type; { 96} first_pattern: ARRAY [1..30] OF char; { 126} last_pattern: ARRAY [1..30] OF char; { 156} best_key: char; { 157} sorted_by_name: flag_type; { 158} subkey_used: flag_type; { 159} filler: ARRAY [1..14] OF char {= 172} END; semp_type = RECORD { 1} variant_no: short; { 3} from_date: date_type; { 9} to_date: date_type; { 15} deptno: deptno_type; { 25} employcat: employcat_type; { 29} costid: costid_type; { 49} badgeno: long_badgeno_type; { 69} emplno: emplno_type; { 79} surname: surname_type; { 109} select_options: select_options_type; { 125} get_all_selected_variants: flag_type; { 126} check_permission: flag_type; { 127} employcat_filled: char; { 128} check_interval: flag_type; { 129} factory: packed_12_type; { 141} mach_job: mach_job_type; { 157} adjustcat: adjustcat_type; { 161} tariffarea: tariffarea_type; { 165} cycleid: cycleid_type; { 169} cycle_start: short; { 171} rpoolid: rpoolid_type; { 183} accesscat: acccatid_type; { 187} filler: ARRAY [1..14] OF char {= 200} END; sreal_type = short; ireal_type = long; prod_stepno_type = long; orderno_type = ARRAY [1..orderno_len] OF char; fault_reasonid_type = ARRAY [1..fault_reasonid_len] OF char; prod_status_type = char; prod_operationid_type = ARRAY [1..prod_operationid_len] OF char; piece_work_type_type = ARRAY [1..piece_work_type_len] OF char; prod_step_key_type = RECORD { 1} orderno: orderno_type; { 17} prod_stepno: prod_stepno_type; { 21} prod_stepno_var: prod_stepno_type {= 24} END; pwtype_key_type = RECORD { 1} piece_work_type: piece_work_type_type; { 5} invalid_from: date_type {= 10} END; dsinst_rec = RECORD { 1} rec_header: rec_header_type; { 9} flags: RECORD {+ 0} customer_code: char; {+ 1} costid_to_next_day: flag_type; {+ 2} update_dsttraf_flag: flag_type; {+ 3} pcsstat_flag: flag_type; {+ 4} saldo_ztariff_flag: flag_type; {+ 5} adj_income_flag: flag_type; {+ 6} dabsemp_calculation: char; {+ 7} monthly_schedu: flag_type; {+ 8} more_costbookings: flag_type; {+ 9} dabs_change_past: flag_type; {+ 10} use_3hour_guaranty: flag_type; {+ 11} scodeid_mtbal: flag_type; {+ 12} dsaldo_two_digits: flag_type; {+ 13} unique_badgeno_over_all_clients: flag_type; {+ 14} plan_info: char; {+ 15} holiday_single: flag_type; {+ 16} schedu_info: char; {+ 17} export_available: char; {+ 18} zdel_quick: flag_type; {+ 19} SAP_interface: char; {+ 20} flag1: flag_type; {+ 21} flag2: flag_type; {+ 22} flag3: flag_type; {+ 23} filler: ARRAY [1..9] OF filler_type {= 32} END; { 41} country: char; { 42} overtime_1_2_method: char; { 43} auto_badgeno: long_badgeno_type; { 63} sfc_installed: flag_type; { 64} prw_installed: flag_type; { 65} medical_solution_installed: flag_type; { 66} canteen_installed: flag_type; { 67} sfm_installed: flag_type; { 68} client_installed: flag_type; { 69} proj_management_installed: flag_type; { 70} timeclt_installed: flag_type; { 71} type_of_pps: char; { 72} sfc_costid_usage: char; { 73} absence_balance: short; { 75} time_lost_balance: short; { 77} missing_coretime_balance: short; { 79} fkey_tab: fkey_tab_type; { 147} companyname: ARRAY [1..70] OF char; { 217} basis_module_installed: flag_type; { 218} income_calc_installed: flag_type; { 219} access_control_installed: flag_type; { 220} pop_installed: flag_type; { 221} cost_acc_installed: flag_type; { 222} ttbal_installed: flag_type; { 223} p3_installed: flag_type; { 224} statistic_installed: flag_type; { 225} severity_codes: ARRAY [1..maxseverity_codes] OF char; { 233} beep_severity_codes: ARRAY [1..maxseverity_codes] OF char; { 241} timer: ARRAY [1..8] OF char; { 249} balance_type_tab: ARRAY [1..max_no_of_balances] OF char; { 273} sfc_auto_registration: char; { 274} sfc_auto_completion: char; { 275} install_flag17: flag_type; { 276} install_flag18: flag_type; { 277} install_flag19: flag_type; { 278} install_flag20: flag_type; { 279} keep_time: short; { 281} aemp_time: short; { 283} past_income_change_flag: flag_type; { 284} ztariff_v130_mode: char; { 285} today_date: date_type; { 291} dabsgrp_display_mode: char; { 292} ztariff_optimization: char; { 293} cost_pos_to_no: ARRAY [1..3] OF short; { 299} cost_no_to_pos: ARRAY [1..3] OF short; { 305} cost_maxlen: ARRAY [1..3] OF short; { 311} cost_prestype: ARRAY [1..3] OF char; { 314} sfc_variable_registration_mode: char; { 315} sfc_auto_completion_mode: char; { 316} flag4: flag_type; { 317} cost_delimiter: ARRAY [1..2] OF char; { 319} cost_alt_delimiter: ARRAY [1..2] OF char; { 321} install_flag21: flag_type; { 322} install_flag22: flag_type; { 323} install_flag23: flag_type; { 324} valid_for_overtime: flag_type; { 325} real_worktime: flag_type; { 326} sickness_codeid2: codeid_type; { 328} install_flag24: flag_type; { 329} sfc_apply_pwtype_daily: flag_type; { 330} cost_checks: ARRAY [1..3] OF flag_type; { 333} menue_mode: char; { 334} codeid_worked: codeid_type; { 336} codeid_day_off: codeid_type; { 338} day_filler: codeid_type; { 340} day_invalid: codeid_type; { 342} real_delimiter: char; { 343} video_attributes: video_attributes_type; { 359} week_first_day_ztariff: char; { 360} codeid_no_permission: codeid_type; { 362} sickness_codeid: codeid_type; { 364} sfc_parallelity_mode: char; { 365} sfc_cost_priority: flag_type; { 366} sfc_send_time_to_pps: char; { 367} sfc_calc_partial_ps: flag_type; { 368} change_from_date_text: packed_16_type; { 384} tm_change_from_date_text: packed_16_type; { 400} tarislib1: ARRAY [1..10] OF char; { 410} tarislib2: ARRAY [1..10] OF char; { 420} tarislib3: ARRAY [1..10] OF char; { 430} use_prtempday: flag_type; { 431} digits_from_orderno: short; { 433} digits_from_prod_stepno: short; { 435} pos_from_orderno: short; { 437} basic_income: income_type; { 441} prw_costtype: costid_type; { 461} sfc_time: short; { 463} v180_inst_date: date_type; { 469} v220_inst_stamp: timestamp; { 473} v230_inst_stamp: timestamp; { 477} v240_inst_stamp: timestamp; { 481} bankholtype: ARRAY [3..maxdaytypes] OF char; { 489} balance_calc_tab: ARRAY [1..max_no_of_balances] OF char; { 513} plan_time: short; { 515} warn_time: short; { 517} acclog_time: short; { 519} errlog_time: short; { 521} daily_delimiter: char; { 522} unit_continued_payment: char; { 523} duration_continued_payment: short; { 525} codes_continued_payment: ARRAY [1..5] OF codeid_type; { 535} vacation_balance: short; { 537} negative_time_border: mod_type; { 539} primary_languageid: languageid_type; { 541} balance_order_tab: ARRAY [1..max_no_of_balances] OF short; { 589} empl_corr_values_type_tab: ARRAY [1..8] OF char; { 597} lang_timer: packed_8_type; { 605} custdata: long; { 609} custdata1: ARRAY [1..96] OF unsigned_byte; { 705} min_pwd_len: short; { 707} max_logon_tries: short; { 709} email_on_request: flag_type; { 710} email_on_approval: flag_type; { 711} use_break_for_schedu: flag_type; { 712} use_break_for_schedud: flag_type; { 713} picture_url: url_type; { 967} filler3: ARRAY [1..1] OF filler_type; { 968} proj_time_acc_installed: flag_type; { 969} dsmtbix_projno_flag: flag_type; { 970} dsmtbix_costno_flag: flag_type; { 971} dsmtbix_cttype_flag: flag_type; { 972} dsmtbix_costid_flag: flag_type; { 973} regular_worktime: duration_type; { 975} empl_cost_factor: sreal_type; { 977} commtype_wasc: commtype_type; { 981} schedu_balance: short; { 983} dsabs_future_months: short; { 985} emplnotime_to_pps: char; { 986} new_timer: timer_text_type; { 1066} filler1: ARRAY [1..1] OF filler_type; { 1067} pin_valid_len: short; { 1069} max_pin_try: short; { 1071} duration_form: char; { 1072} filler2: ARRAY [1..79] OF filler_type {=1150} END; allowances_type = ARRAY [1..maxallowances] OF allowance_type; timepairs_record_type = RECORD { 1} time_in: mod_type; { 3} time_out: mod_type; { 5} timepair_code: codeid_type {= 6} END; timepairs_type = ARRAY [1..maxtimepairs] OF timepairs_record_type; balance_rounding_type = RECORD { 1} min_unit: short; { 3} round_up: short; { 5} minimum: short; { 7} filler: short {= 8} END; l_form_type = ARRAY [1..7] OF char; l_data_type = ARRAY [1..1910] OF char; l_modes_type = ARRAY [1..500] OF short; l_message_type = ARRAY [1..78] OF char; day_emplno_type = RECORD { 1} date: date_type; { 7} emplno: emplno_type {= 16} END; emplno_day_seq_type = RECORD { 1} emplno: emplno_type; { 11} date: date_type; { 17} sequenceno: short {= 18} END; emplno_day_type = RECORD { 1} emplno: emplno_type; { 11} date: date_type {= 16} END; emplno_year_type = RECORD { 1} emplno: emplno_type; { 11} year: short {= 12} END; breakusage_ext_type = ARRAY [1..maxbreaks] OF boolean; filter_result_type = (yes, no, abort); progname_type = short; parm_tab_line_type = ARRAY [1..parm_tab_line_len] OF char; parm_tab_type = ARRAY [1..parm_tab_len] OF parm_tab_line_type; pin_code_type = ARRAY [1..4] OF char; break_pattern_type = RECORD { 1} time_from: mod_type; { 3} time_to: mod_type; { 5} paid_breaklen: duration_type; { 7} unpaid_breaklen: duration_type {= 8} END; fkey_line_type = ARRAY [1..78] OF char; fkcb_type = RECORD { 1} pageno: short; { 3} no_of_pages: short; { 5} fkey_line: ARRAY [1..fkey_maxlines] OF fkey_line_type; { 473} line1: fkey_line_type; { 551} line2: fkey_line_type {= 628} END; long_record_type = ARRAY [1..long_record_len] OF char; long_record_ptr_type = ^long_record_type; mode_type = char; action_type = char; action_ctab_type = ARRAY [1..32] OF char; action_subst_type = ARRAY [1..32] OF short; action_set_type = SET OF char; action_line_type = ARRAY [1..action_line_len] OF char; action_mask_type = RECORD { 1} line1: action_line_type; { 77} line2: action_line_type {= 152} END; keydata_type = ARRAY [1..keydata_len] OF char; prog_param_type = RECORD { 1} CASE action: action_type OF {+ 1} action_getinfo: (fileid: ARRAY [1..10] OF char; {+ 11} title_ctab: long_text_type; {+ 41} keylen: short; {+ 43} total_keylen: short; {+ 45} progno: short; {+ 47} variants: flag_type; {+ 48} org_value: keydata_type; {+ 108} alignment1: char); {+ 1} action_update: (keydata: keydata_type; {+ 61} itemid: short); {+ 1} action_rename: (old_keydata: keydata_type; {+ 61} new_keydata: keydata_type); {= 122} END; buffer_pointer = ^buffer_type; comm_buffer_pointer = ^comm_buffer_type; comm_buffer_type = ARRAY [1..comm_buffer_len] OF char; time_array_type = ARRAY [1..time_array_len] OF char; date_array_type = ARRAY [1..8] OF char; taris_time_array_type = ARRAY [1..taris_time_array_len] OF char; cci_header_type = RECORD { 1} data_len: long {= 4} END; cusers_name_type = ARRAY [1..cusers_name_len] OF char; mcb_type = RECORD { 1} reserved: short; { 3} getcursorpos: short; { 5} key_code: short; { 7} f4_window: short; { 9} redisplay_flag: boolean {= 9} END; mc_param_type = RECORD { 1} status: short; { 3} message: message_type; { 83} beep_flag: boolean {= 83} END; dschlog_data_type = ARRAY [1..4000] OF unsigned_byte; dschlog_rec = RECORD { 1} rec_header: rec_header_type; { 9} date_and_time: date_and_time_type; { 21} millisec: short; { 23} emplno: emplno_type; { 33} recno: record_no_type; { 35} first_reclen: short; { 37} second_reclen: short; { 39} logonid: logonid_type; { 47} os_logonid: packed_16_type; { 63} terminalname: objectid_type; { 71} updatetype: char; { 72} filler: ARRAY [1..27] OF char; { 99} rec_data_len: short; { 101} rec_data: dschlog_data_type {=4100} END; tstat_tabline_type = RECORD { 1} termid: objectid_type; { 9} termno: short; { 11} state: unsigned_byte; { 12} term_code: char; { 13} phys_termtype: objectid_type; { 21} location: ARRAY [1..16] OF char; { 37} error: code_type; { 41} number_in: long; { 45} error_in: long; { 49} number_out: long; { 53} error_out: long {= 56} END; tstat_tab_type = ARRAY [1..tstat_tab_len] OF tstat_tabline_type; terminal_state_type = ARRAY [1..2] OF char; pcs_term_state_type = RECORD { 1} serialnumber: ARRAY [1..11] OF char; { 12} align1: char; { 13} driver: ARRAY [1..4] OF char; { 17} bb: ARRAY [1..4] OF char; { 21} dispcontrol: ARRAY [1..4] OF char; { 25} rtk: ARRAY [1..4] OF char; { 29} tcl: ARRAY [1..4] OF char; { 33} sterminal: terminal_state_type; { 35} sbb: terminal_state_type; { 37} sdispcontrol: terminal_state_type; { 39} sbbm: ARRAY [1..8] OF terminal_state_type; { 55} display: ARRAY [1..80] OF char {= 134} END; print_msg_type = RECORD { 1} msg_header: msg_header_type; { 31} msgtype: short; { 33} command: ARRAY [1..512] OF char; { 545} logonid: logonid_type; { 553} start_datetime: date_and_time_type; { 565} priority: packed_2_type; { 567} printerid: objectid_type; { 575} printerfile: phys_filename_type; { 607} outfile: phys_filename_type; { 639} clientno: buffer_type; { 641} languageid: languageid_type {= 642} END; staff_key_type = RECORD { 1} mach_job: mach_job_type; { 17} time_from: mod_type; { 19} time_to: mod_type; { 21} whole_day: flag_type; { 22} link: alias_type; { 37} invalid_from: date_type {= 42} END; djob_key_type = RECORD { 1} emplno: emplno_type; { 11} date: date_type; { 17} time: mod_type {= 18} END; table_col_record_type = RECORD { 1} datatype: char; { 2} alignment1: ARRAY [1..3] OF char; { 5} len: long {= 8} END; table_col_type = ARRAY [1..MAX_COLS] OF table_col_record_type; clientno_tab_type = ARRAY [1..clientno_tab_len] OF buffer_type; language_tab_type = ARRAY [1..language_tab_len] OF languageid_type; codepage_tab_type = ARRAY [0..255] OF char; ul_block_ptr_type = ^ul_block_type; ul_block_type = RECORD { 1} chars: ARRAY [1..ul_block_len] OF char; { 4097} nextpt: ul_block_ptr_type; { 4101} prevpt: ul_block_ptr_type {=4104} END; ul_pos_type = RECORD { 1} blockpt: ul_block_ptr_type; { 5} recordno: short {= 6} END; ulcb_type = RECORD { 1} last_error: short; { 3} reclen: short; { 5} new_cur_pos: ul_pos_type; { 11} filler1: ARRAY [1..2] OF char; { 13} no_of_records: long; { 17} first_pos: ul_pos_type; { 23} filler2: ARRAY [1..2] OF char; { 25} last_pos: ul_pos_type; { 31} filler3: ARRAY [1..2] OF char; { 33} cur_pos: ul_pos_type {= 38} END; ix_block_ptr_type = ^ix_block_type; ix_pos_type = RECORD { 1} blockpt: ix_block_ptr_type; { 5} recordno: short {= 6} END; ix_block_type_keytab = RECORD { 1} keyno: long; { 5} next_pos: ix_pos_type; { 11} alignment1: ARRAY [1..2] OF char; { 13} data_pos: ul_pos_type {= 18} END; ix_block_type = RECORD { 1} keytab: ARRAY [1..ix_keys_in_block] OF ix_block_type_keytab; { 181} nextpt: ix_block_ptr_type; { 185} prevpt: ix_block_ptr_type {= 188} END; ixcb_type = RECORD { 1} last_error: short; { 3} alignment1: ARRAY [1..2] OF char; { 5} first_pos: ix_pos_type; { 11} alignment2: ARRAY [1..2] OF char; { 13} last_pos: ix_pos_type; { 19} alignment3: ARRAY [1..2] OF char; { 21} cur_pos: ix_pos_type; { 27} alignment6: ARRAY [1..2] OF char; { 29} hashtab: ARRAY [0..ix_hashtab_max] OF RECORD {+ 0} h_first_pos: ix_pos_type; {+ 6} alignment4: ARRAY [1..2] OF char; {+ 8} h_last_pos: ix_pos_type; {+ 14} alignment5: ARRAY [1..2] OF char {= 176} END; { 205} free_first_pos: ix_pos_type; { 211} alignment7: ARRAY [1..2] OF char; { 213} free_last_pos: ix_pos_type {= 218} END; matchcode_table_element = RECORD { 1} input_code: ARRAY [1..matchcode_table_text_len] OF char; { 101} is_blank: boolean; { 102} has_matchcode: boolean; { 103} matchcode_pos: short; { 105} matchcode_char: char; { 106} index: indexname_type; { 138} alignment1: char; { 139} priority: short {= 140} END; matchcode_table_type = ARRAY [1..matchcode_table_size] OF matchcode_table_element; benzing_req = RECORD { 1} dbgid: char; { 2} dbdid: char; { 3} dbbzus: char; { 4} dbsaum: ARRAY [1..2] OF char; { 6} dbuhrk: char; { 7} dbyear: ARRAY [1..2] OF char; { 9} dbmon: ARRAY [1..2] OF char; { 11} dbday: ARRAY [1..2] OF char; { 13} dbhh: ARRAY [1..2] OF char; { 15} dbmm: ARRAY [1..2] OF char; { 17} dbss: ARRAY [1..2] OF char; { 19} dbfiller: char; { 20} dbid: ARRAY [1..benz_did_len] OF char {= 219} END; benzing_reply = RECORD { 1} awsaum: ARRAY [1..2] OF char; { 3} awinat: ARRAY [1..42] OF char {= 44} END; var_balance_type = RECORD { 1} start_pos: short; { 3} max_len: short; { 5} no_of_bal: short; { 7} offset: short {= 8} END; var_balance_tab_type = ARRAY [1..max_no_of_bal_rec] OF var_balance_type; var_balance_type_tab = ARRAY [1..max_no_of_balances] OF char; tse_rec = RECORD { 1} tse_installed: boolean; { 2} tse_multi_clients_installed: boolean; { 3} tse_cycle_installed: boolean; { 4} tse_income_installed: boolean; { 5} tse_adjust_installed: boolean; { 6} tse_apply_and_grant_installed: boolean; { 7} tse_cost_installed: boolean; { 8} tse_proj_installed: boolean; { 9} tse_pop_installed: boolean; { 10} tse_access_installed: boolean {= 10} END; pntoln_badgeno_type = ARRAY [1..20] OF char; pntoln_key_type = char; token_type = short; Ptree_node_type = ^tree_node_type; tree_node_type = RECORD { 1} next_child_left: Ptree_node_type; { 5} next_child_right: Ptree_node_type; { 9} token: token_type; { 11} fieldid: fieldid_type; { 27} condition_value: ARRAY [1..32] OF char {= 58} END; moduleid_text_type = ARRAY [1..moduleid_text_len] OF char; module_table_elem_type = RECORD { 1} moduleid: short; { 3} moduleid_text: moduleid_text_type; { 43} alignment1: ARRAY [1..2] OF char; { 45} maxemplno: long; { 49} db_size: long; { 53} db_all_size: long; { 57} participant: char {= 57} END; project_time_type = RECORD { 1} costid: costid_type; { 21} duration: duration_type; { 23} comment: long_text_type {= 52} END; project_tab_type = ARRAY [1..awtime_max_projects_per_day] OF project_time_type; licence_elem_type = RECORD { 1} moduleid: short; { 3} filler: ARRAY [1..2] OF filler_type; { 5} used: long; { 9} in_clientno: long; { 13} in_all: long {= 16} END; licence_table_type = ARRAY [1..participant_array_len] OF licence_elem_type; short_block_type = ARRAY [1..8] OF short; hex_block_type = ARRAY [1..16] OF char; flag_block_type = ARRAY [1..64] OF flag_type; dsmdlptp_code_type = ARRAY [1..dsmdlptp_code_len] OF hex_block_type; dsmdsum_code_type = ARRAY [1..dsmdsum_code_len] OF hex_block_type; participant_flag_array_type = ARRAY [1..participant_array_len] OF flag_type; participant_long_array_type = ARRAY [1..participant_array_len] OF long; uemploy_table_elem_type = RECORD { 1} ind_module: char; { 2} alignment1: char; { 3} old_moduleid: short; { 5} old_moduleid_text: moduleid_text_type; { 45} new_moduleid: short; { 47} new_moduleid_text: moduleid_text_type {= 86} END; tsuemploy_table_elem_type = RECORD { 1} ind_module: char; { 2} filler: filler_type; { 3} old_moduleid: short; { 5} new_moduleid: short {= 6} END; tsuemploy_table_type = ARRAY [1..module_table_len] OF tsuemploy_table_elem_type; eload_table_elem_type = RECORD { 1} moduleid: short; { 3} moduleid_text: moduleid_text_type; { 43} position: short {= 44} END; tseload_table_elem_type = RECORD { 1} moduleid: short; { 3} position: short {= 4} END; eload_table_type = ARRAY [1..module_table_len] OF eload_table_elem_type; tseload_table_type = ARRAY [1..module_table_len] OF tseload_table_elem_type; input_pduration_type = ARRAY [1..9] OF char; pduration_type = long; byte_8_type = ARRAY [1..8] OF byte; byte_28_type = ARRAY [1..28] OF byte; byte_32_type = ARRAY [1..32] OF byte; byte_48_type = ARRAY [1..48] OF byte; byte_56_type = ARRAY [1..56] OF byte; byte_64_type = ARRAY [1..64] OF byte; licence_module_type = RECORD { 1} installed: boolean; { 2} ase: boolean; { 3} number: byte; { 4} alignment1: char; { 5} size: long {= 8} END; licencerec_type = RECORD { 1} clientno: buffer_type; { 3} ok: boolean; { 4} client_depend: boolean; { 5} test_timer: boolean; { 6} alignment1: char; { 7} number: short; { 9} max_clientnos: short; { 11} test_end_date: date_type; { 17} test_max: long; { 21} ASE_timer: boolean; { 22} timer: timer_text_type; { 102} ckey: packed_8_type; { 110} as400bib: packed_10_type; { 120} alignment2: char; { 121} module_table: ARRAY [1..26] OF licence_module_type {= 328} END; pduration_positions_type = RECORD { 1} total_no_of_positions: short; { 3} positions: ARRAY [1..10] OF short {= 22} END; awtime_text_type = ARRAY [1..26] OF char; ccsid_tab_type = RECORD { 1} visible_on_as400: char; { 2} ord_ebcdic: packed_3_type; { 5} ord_uppercase: packed_3_type; { 8} ord_unmodified: packed_3_type; { 11} ord_ansi: packed_3_type; { 14} ord_pcsterminal: packed_3_type; { 17} ord_ascii: packed_3_type; { 20} special1_ord: packed_3_type; { 23} special2_ord: packed_3_type; { 26} special3_ord: packed_3_type; { 29} special4_ord: packed_3_type; { 32} special5_ord: packed_3_type {= 34} END; clientvalues_elem_ptr = ^clientvalues_elem_type; clientvalues_elem_type = RECORD { 1} check: boolean; { 2} clientno: buffer_type; { 4} alignment1: char; { 5} dsinstrec: dsinst_rec; { 1155} alignment2: ARRAY [1..2] OF char; { 1157} licencerec: licencerec_type; { 1485} next: clientvalues_elem_ptr {=1488} END; siport_badgeno_type = ARRAY [1..siport_badgeno_len] OF char; zone_range_tab_type = RECORD { 1} clientno: buffer_type; { 3} termid: objectid_type; { 11} from_zone: short; { 13} to_zone: short; { 15} tariffarea: tariffarea_type; { 19} zexport_termid: objectid_type {= 26} END; zone_range_pointer = ^zone_range_list_type; zone_range_list_type = RECORD { 1} next_pt: zone_range_pointer; { 5} zone_range_tab: zone_range_tab_type {= 30} END; mask_cost_tab_rec_type = RECORD { 1} costid: costid_type; { 21} switch_time: mod_type; { 23} termno: short; { 25} modify_code: short; { 27} to_time: mod_type; { 29} filler1: ARRAY [1..4] OF filler_type {= 32} END; projno_array_type = RECORD { 1} projno: ARRAY [1..20] OF char {= 20} END; projno_tab_type = ARRAY [1..max_costno_grupps] OF projno_array_type; statusid_type = ARRAY [1..statusid_len] OF char; statustype_type = char; wrk_status_type = RECORD { 1} statusid: statusid_type; { 9} statustype: statustype_type {= 9} END; {comdecl2} {CONST lens12.inc ???} {dbrecs.inc was?} accat_type = ARRAY [1..8] OF char; pensum_type = ARRAY [1..4] OF char; emplno_qual_type = RECORD { 1} emplno: emplno_type; { 11} qualificationid: qualificationid_type {= 18} END; alt_wpatids_type = ARRAY [1..maxalt_wpats] OF wpatid_type; alt_wpatids_flag_type = ARRAY [1..maxalt_wpats] OF flag_type; zone_perm_tab_type = ARRAY [1..max_zones] OF char; calenid_type = RECORD { 1} tariffarea: tariffarea_type; { 5} year: short {= 6} END; dtimeid_type = RECORD { 1} day_emplno: day_emplno_type; { 17} sequenceno: char {= 17} END; income_group_type = ARRAY [1..max_inc_per_group] OF income_type; income_group_tab_type = ARRAY [1..max_no_of_inc_groups] OF income_group_type; adjust_key_type = RECORD { 1} adjustcat: adjustcat_type; { 5} invalid_from: date_type; { 11} sequenceno: short {= 12} END; selopt_key_type = RECORD { 1} seloptno: char; { 2} selopt: char {= 2} END; balance_adj_type = RECORD { 1} balance: unsigned_byte; { 2} bal_unit: char; { 3} count: short; { 5} adjust_day: date_type; { 11} method: short; { 13} transbalanceid_1: short; { 15} transbalanceid_2: short; { 17} corr_value_1: saldo_type; { 21} corr_value_2: saldo_type {= 24} END; balance_cbal_type = RECORD { 1} balance: balance_type; { 5} cycle_terminated: flag_type; { 6} alignment1: filler_type; { 7} sum_of_positive: short {= 8} END; adjust_rule_tab_type = ARRAY [1..adjust_rule_tab_len] OF balance_adj_type; cbal_balance_tab_type = ARRAY [1..max_no_of_balances] OF balance_cbal_type; add_value_tab_type = ARRAY [1..max_no_of_balances] OF balance_type; plan_key_type = RECORD { 1} emplno: emplno_type; { 11} date_to: date_type {= 16} END; rule_key_type = RECORD { 1} ruleid: ruleid_type; { 3} invalid_from: date_type {= 8} END; timepair_type = RECORD { 1} codeid: codeid_type; { 3} time_in: mod_type; { 5} terminal_in: short; { 7} modify_in: short; { 9} time_out: mod_type; { 11} terminal_out: short; { 13} modify_out: short {= 14} END; wpat_key_type = RECORD { 1} wpatid: wpatid_type; { 5} invalid_from: date_type {= 10} END; dsabs_rec = RECORD { 1} rec_header: rec_header_type; { 9} absid: emplno_day_type; { 25} codeid_tab: month_codes_type; { 87} last_filled_day: short; { 89} ondutytype_tab: month_char_type; { 120} filler1: ARRAY [1..1] OF filler_type; { 121} ondutylen_tab: month_short_type; { 183} filler: ARRAY [1..18] OF filler_type {= 200} END; dsaccat_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} default_perm: char; { 18} cat: ARRAY [1..24] OF RECORD {+ 0} employcat: employcat_type; {+ 4} perm: char {= 120} END; { 138} filler: ARRAY [1..43] OF char {= 180} END; dsaccomm_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} default_perm: char; { 18} comm: ARRAY [1..24] OF RECORD {+ 0} commtype: commtype_type; {+ 4} perm: char {= 120} END; { 138} filler: ARRAY [1..23] OF unsigned_byte {= 160} END; dsaccop_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} default_perm: char; { 18} cop: ARRAY [1..24] OF RECORD {+ 0} operationid: operationid_type; {+ 8} perm: char {= 216} END; { 234} filler: ARRAY [1..27] OF unsigned_byte {= 260} END; dsaccost_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} default_perm: char; { 18} cost: ARRAY [1..24] OF RECORD {+ 0} costid: costid_type; {+ 20} perm: char {= 504} END; { 522} filler: ARRAY [1..28] OF char {= 549} END; deptno_permission_type = RECORD { 1} deptno: deptno_type; { 11} perm: char {= 11} END; dsacdept_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} default_perm: char; { 18} dept: ARRAY [1..48] OF deptno_permission_type; { 546} filler: ARRAY [1..15] OF char {= 560} END; accode_perm_type = RECORD { 1} codeid: codeid_type; { 3} codetype: codetype_type; { 4} perm: char {= 4} END; dsaccode_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} sequenceno: short; { 19} default_perm: char; { 20} codeid: codeid_type; { 22} codetype: codetype_type; { 23} perm: char; { 24} filler: ARRAY [1..1] OF char {= 24} END; dsacinc_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} default_perm: char; { 18} inc: ARRAY [1..24] OF RECORD {+ 0} income: income_type; {+ 4} perm: char {= 120} END; { 138} filler: ARRAY [1..39] OF char {= 176} END; acmask_perm_type = RECORD { 1} maskid: objectid_type; { 9} perm: char; { 10} permission_code: char {= 10} END; dsacmask_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} sequenceno: short; { 19} default_perm: char; { 20} mask: acmask_perm_type; { 30} filler: ARRAY [1..3] OF char {= 32} END; dsacprog_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} default_perm: char; { 18} filler1: ARRAY [1..3] OF a_char; { 21} prog: ARRAY [1..24] OF RECORD {+ 0} progid: objectid_type; {+ 8} perm: char; {+ 9} filler: char {= 240} END; { 261} filler: ARRAY [1..40] OF char {= 300} END; dsacsel_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} sequenceno: short; { 19} default_perm: char; { 20} selopt_key: selopt_key_type; { 22} perm: char {= 22} END; acsel_perm_type = RECORD { 1} seloptno: char; { 2} selopt: char; { 3} perm: char {= 3} END; dsacterm_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} default_perm: char; { 18} term: ARRAY [1..24] OF RECORD {+ 0} termid: objectid_type; {+ 8} perm: char {= 216} END; { 234} filler: ARRAY [1..67] OF char {= 300} END; dsaczone_rec = RECORD { 1} rec_header: rec_header_type; { 9} catid: accat_type; { 17} default_perm: char; { 18} zone_perm_tab: zone_perm_tab_type; { 218} filler: ARRAY [1..23] OF filler_type {= 240} END; dsadjusr_rec = RECORD { 1} rec_header: rec_header_type; { 9} adjust_key: adjust_key_type; { 21} balance_adj: balance_adj_type; { 45} filler: ARRAY [1..16] OF filler_type {= 60} END; dsadjust_rec = RECORD { 1} rec_header: rec_header_type; { 9} adjust_key: adjust_key_type; { 21} valid_from: date_type; { 27} adjust_text: long_text_type; { 57} chain_balance_tab: chain_balance_tab_type; { 105} income_group: income_group_tab_type; { 265} useable: flag_type; { 266} filler: ARRAY [1..35] OF filler_type {= 300} END; dsadjustt_rec = RECORD { 1} dsadjustrec: dsadjust_rec; { 301} rule_tab: adjust_rule_tab_type {=2028} END; dsccbal_rec = RECORD { 1} rec_header: rec_header_type; { 9} ccbalid: emplno_day_type; { 25} add_value_tab: add_value_tab_type; { 121} filler: ARRAY [1..40] OF filler_type {= 160} END; dsccbalr_rec = RECORD { 1} rec_header: rec_header_type; { 9} ccbalrid: emplno_day_seq_type; { 27} filler1: ARRAY [1..2] OF filler_type; { 29} balance_adj: balance_adj_type; { 53} filler: ARRAY [1..28] OF filler_type {= 80} END; dsccbalt_rec = RECORD { 1} rec_header: rec_header_type; { 9} ccbalid: emplno_day_type; { 25} add_value_tab: add_value_tab_type; { 121} rule_tab: adjust_rule_tab_type; { 1849} use_method_tab: rule_apply_tab_type; { 1921} balance_numbers: ARRAY [1..max_no_of_balances] OF unsigned_byte {=1944} END; dsadmbno_rec = RECORD { 1} rec_header: rec_header_type; { 9} date_and_time: date_and_time_type; { 21} millisec: short; { 23} badgeno: badgeno_type; { 33} physical_key: ARRAY [1..20] OF char; { 53} key_type: char; { 54} key_state: char; { 55} logonid: logonid_type; { 63} owner: ARRAY [1..10] OF char; { 73} filler: ARRAY [1..18] OF char {= 90} END; dsaemp_const_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} deptno: deptno_type; { 29} employcat: employcat_type; { 33} filler3: ARRAY [1..1] OF filler_type; { 34} factory: packed_12_type; { 46} tariffarea: tariffarea_type; { 50} pin_code: pin_code_type; { 54} manager_emplno: emplno_type; { 64} firstname: firstname_type; { 84} surname: surname_type; { 114} vacation_method: unsigned_byte; { 115} vacation: ARRAY [1..maxvacations] OF dbalance_type; { 123} allowances_workdays: allowances_type; { 133} allowances_freedays: allowances_type; { 143} accesscat: packed_4_type; { 147} hometerm: objectid_type; { 155} termcats: ARRAY [1..maxtermcats] OF termcat_type; { 187} dist_deduct_on_call: ARRAY [1..2] OF duration_type; { 191} v_invalid_from: date_type; { 197} v_valid_from: date_type; { 203} start_date: date_type; { 209} ref_period_work_time: saldo_type; { 213} ref_period_len: short; { 215} phoneno: packed_14_type; { 229} auto_cost_switch: flag_type; { 230} individual_distance: flag_type; { 231} valid_from: date_type; { 237} valid_to: date_type; { 243} cycleid: cycleid_type; { 247} cycle_start: short; { 249} std_effect_rate: sreal_type; { 251} dist_deduct: ARRAY [1..2] OF duration_type; { 255} adjustcat: adjustcat_type; { 259} mean_std_worktime: duration_type; { 261} mean_std_worktime_week: duration_type; { 263} continued_pay_len: continued_pay_len_type; { 265} filler4: ARRAY [1..7] OF filler_type; { 272} working_location: unsigned_byte; { 273} costid: costid_type; { 293} sfc_participant: flag_type; { 294} multi_machine_user: char; { 295} birthdate: date_type; { 301} mach_job: mach_job_type; { 317} badgeno: long_badgeno_type; { 337} select_options: select_options_type; { 353} empl_corr_values: empl_corr_values_type; { 369} empl_corr_values_add: empl_corr_values_type; { 385} filler5: packed_16_type {= 400} END; dsaemp_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} deptno: deptno_type; { 29} employcat: employcat_type; { 33} filler3: ARRAY [1..1] OF filler_type; { 34} factory: packed_12_type; { 46} tariffarea: tariffarea_type; { 50} pin_code: pin_code_type; { 54} manager_emplno: emplno_type; { 64} firstname: firstname_type; { 84} surname: surname_type; { 114} vacation_method: unsigned_byte; { 115} vacation: ARRAY [1..maxvacations] OF dbalance_type; { 123} allowances_workdays: allowances_type; { 133} allowances_freedays: allowances_type; { 143} accesscat: acccatid_type; { 147} hometerm: objectid_type; { 155} termcats: ARRAY [1..maxtermcats] OF termcat_type; { 187} dist_deduct_on_call: ARRAY [1..2] OF duration_type; { 191} v_invalid_from: date_type; { 197} v_valid_from: date_type; { 203} start_date: date_type; { 209} ref_period_work_time: saldo_type; { 213} ref_period_len: short; { 215} phoneno: packed_14_type; { 229} auto_cost_switch: flag_type; { 230} individual_distance: flag_type; { 231} valid_from: date_type; { 237} valid_to: date_type; { 243} cycleid: cycleid_type; { 247} cycle_start: short; { 249} std_effect_rate: sreal_type; { 251} dist_deduct: ARRAY [1..2] OF duration_type; { 255} adjustcat: adjustcat_type; { 259} mean_std_worktime: duration_type; { 261} mean_std_worktime_week: duration_type; { 263} continued_pay_len: continued_pay_len_type; { 265} filler4: ARRAY [1..7] OF filler_type; { 272} working_location: unsigned_byte; { 273} costid: costid_type; { 293} sfc_participant: flag_type; { 294} multi_machine_user: char; { 295} birthdate: date_type; { 301} mach_job: mach_job_type; { 317} badgeno: long_badgeno_type; { 337} select_options: select_options_type; { 353} empl_corr_values: empl_corr_values_type; { 369} email_address: email_address_type; { 401} postal_code: ARRAY [1..8] OF char; { 409} home_town: ARRAY [1..32] OF char; { 441} street: ARRAY [1..40] OF char; { 481} phoneno1: phoneno_type; { 505} handyno1: phoneno_type; { 529} phoneno2: phoneno_type; { 553} handyno2: phoneno_type; { 577} photo_location: url_type; { 831} filler6: ARRAY [1..1] OF filler_type; { 832} user_template: logonid_type; { 840} password: ARRAY [1..8] OF unsigned_byte; { 848} alias: alias_type; { 863} no_of_blank_lines: short; { 865} position_number: short; { 867} rpoolid: rpoolid_type; { 879} hourly_wage: sreal_type; { 881} last_change_pin: date_type; { 887} last_change_pwd: date_type; { 893} pin_locked: flag_type; { 894} pwd_locked: flag_type; { 895} filler5: ARRAY [1..106] OF filler_type {=1000} END; dsaltpat_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} first_day: date_type; { 25} altpat_tab: ARRAY [1..7] OF alt_wpatids_type; { 249} warn_altpat_tab: ARRAY [1..7] OF alt_wpatids_flag_type; { 305} filler: ARRAY [1..36] OF filler_type {= 340} END; dsacalen_rec = RECORD { 1} rec_header: rec_header_type; { 9} tariffarea: tariffarea_type; { 13} special_day: date_type; { 19} special_day_text: long_text_type; { 49} cal_function: char; { 50} daytype: unsigned_byte; { 51} date_offset: short; { 53} time_difference: mod_type; { 55} filler: ARRAY [1..26] OF filler_type {= 80} END; special_day_daytype_type = ARRAY [1..31] OF unsigned_byte; dscalen_rec = RECORD { 1} rec_header: rec_header_type; { 9} calenid: calenid_type; { 15} calen_text: long_text_type; { 45} industry_day_1: short; { 47} special_day_daytype: ARRAY [1..12] OF special_day_daytype_type; { 419} time_difference: mod_type; { 421} filler: ARRAY [1..30] OF char {= 450} END; dscant_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} datetime: date_and_time_type; { 31} modify_id: short; { 33} termid: objectid_type; { 41} amount: long; { 45} termno: short; { 47} articleno: objectid_type; { 55} quantity: short; { 57} filler: ARRAY [1..44] OF char {= 100} END; dscbal_rec = RECORD { 1} rec_header: rec_header_type; { 9} cbalid: emplno_day_type; { 25} prev_section_date: date_type; { 31} next_section_date: date_type; { 37} balance_tab: cbal_balance_tab_type; { 229} filler: ARRAY [1..12] OF filler_type {= 240} END; dsccsid_rec = RECORD { 1} rec_header: rec_header_type; { 9} ccsid_tab: ccsid_tab_type {= 42} END; dsccalen_rec = RECORD { 1} rec_header: rec_header_type; { 9} tariffarea: tariffarea_type; { 13} date: date_type; { 19} sequenceno: short; { 21} commt_text: long_text_type {= 50} END; dscemp_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} working_location: unsigned_byte; { 20} filler1: ARRAY [1..1] OF filler_type; { 21} manager_emplno: emplno_type; { 31} email_address: email_address_type; { 63} filler2: ARRAY [1..26] OF filler_type; { 89} rpoolid: rpoolid_type; { 101} postal_code: ARRAY [1..8] OF char; { 109} home_town: ARRAY [1..32] OF char; { 141} street: ARRAY [1..40] OF char; { 181} phoneno1: phoneno_type; { 205} handyno1: phoneno_type; { 229} phoneno2: phoneno_type; { 253} handyno2: phoneno_type; { 277} photo_location: url_type; { 531} filler5: ARRAY [1..1] OF filler_type; { 532} alias: alias_type; { 547} no_of_blank_lines: short; { 549} position_number: short; { 551} hourly_wage: sreal_type; { 553} filler3: ARRAY [1..54] OF filler_type; { 607} text_1: ARRAY [1..60] OF char; { 667} text_2: ARRAY [1..60] OF char; { 727} last_date_auto_schedu: date_type; { 733} last_closing: date_type; { 739} qual_for_job: flag_type; { 740} reserved01: char; { 741} planned_until: date_type; { 747} filler4: ARRAY [1..54] OF filler_type; { 801} last_change_pin: date_type; { 807} pin_locked: flag_type; { 808} pwd_locked: flag_type; { 809} last_change_pwd: date_type; { 815} user_template: logonid_type; { 823} filler: ARRAY [1..1178] OF filler_type {=2000} END; dscitem_rec = RECORD { 1} rec_header: rec_header_type; { 9} articleno: objectid_type; { 17} price: ARRAY [1..3] OF long; { 29} article_text: long_text_type; { 59} kind: char; { 60} incomeid: income_type; { 64} filler1: ARRAY [1..1] OF char; { 65} invalid_from: date_type; { 71} valid_from: date_type; { 77} filler: ARRAY [1..4] OF char {= 80} END; dscode_rec = RECORD { 1} rec_header: rec_header_type; { 9} wrk_code: wrk_code_type; { 12} wrk_codetype_long: char; { 13} wrk_codetext: long_text_type; { 43} vacation_code: flag_type; { 44} warning_if_absence: flag_type; { 45} balanceid: short; { 47} free_shift: flag_type; { 48} worktime: char; { 49} valid_for_overtime: flag_type; { 50} overtime_allowance_possible: flag_type; { 51} allowance_possible: flag_type; { 52} real_worktime: flag_type; { 53} valid_on_free_day: flag_type; { 54} continue_code: char; { 55} combination_code: char; { 56} sv_day_flag: flag_type; { 57} u_day_flag: flag_type; { 58} debit_time_deduct_flag: flag_type; { 59} note_break: flag_type; { 60} flextime_allowed_flag: flag_type; { 61} incomeid: income_type; { 65} priority: short; { 67} scodeid_day_off: codeid_type; { 69} scodeid_holiday: codeid_type; { 71} invalid_from: date_type; { 77} valid_from: date_type; { 83} scodeid_workday: codeid_type; { 85} costid: costid_type; { 105} color: color_attr_type; { 113} wizard_mark: char; { 114} standby_as_planned: flag_type; { 115} useable: flag_type; { 116} inside_normaltime: flag_type; { 117} filler: ARRAY [1..24] OF filler_type {= 140} END; cols_key_type = RECORD { 1} filetype: ARRAY [1..10] OF char; { 11} logonid: logonid_type; { 19} formatno: short; { 21} col_no: short {= 22} END; dscols_rec = RECORD { 1} rec_header: rec_header_type; { 9} cols_key: cols_key_type; { 31} rec_pos: short; { 33} rec_type: ARRAY [1..1] OF char; { 34} title_one_line_flag: flag_type; { 35} col_len: short; { 37} title1: ARRAY [1..15] OF char; { 52} title2: ARRAY [1..15] OF char; { 67} col_dist: short; { 69} conv_table_name: long_text_type; { 99} justify: char; { 100} fieldid: fieldid_type; { 116} filler: ARRAY [1..21] OF char {= 136} END; commid_type = RECORD { 1} emplno: emplno_type; { 11} date: date_type; { 17} commtype: commtype_type; { 21} sequenceno: short {= 22} END; dscomm_rec = RECORD { 1} rec_header: rec_header_type; { 9} commid: commid_type; { 31} modify_code: short; { 33} comment: ARRAY [1..60] OF char; { 93} following_line: flag_type; { 94} filler: ARRAY [1..7] OF unsigned_byte {= 100} END; dscommt_rec = RECORD { 1} rec_header: rec_header_type; { 9} commtype: commtype_type; { 13} commt_text: long_text_type; { 43} filler: ARRAY [1..18] OF unsigned_byte {= 60} END; dscusers_rec = RECORD { 1} rec_header: rec_header_type; { 9} jobid: cusers_name_type; { 39} logonid: logonid_type; { 47} os_username: cusers_name_type; { 77} login_time: date_and_time_type; { 89} clientname: cusers_name_type; { 119} servername: cusers_name_type; { 149} clientadr: cusers_name_type; { 179} serveradr: cusers_name_type; { 209} filler1: ARRAY [1..2] OF filler_type; { 211} clientport: short; { 213} serverport: short; { 215} last_planner: char; { 216} tcp_serverjob: cusers_name_type; { 246} filler: ARRAY [1..35] OF unsigned_byte {= 280} END; dscycle_rec = RECORD { 1} rec_header: rec_header_type; { 9} cycleid: cycleid_type; { 13} cycle_text: long_text_type; { 43} begin_date: date_type; { 49} filler1: ARRAY [1..1] OF filler_type; { 50} wizard_mark: char; { 51} length: short; { 53} shiftid: ARRAY [1..maxshifts_per_cycle] OF shiftid_type; { 309} filler: ARRAY [1..42] OF filler_type {= 350} END; dsdbal_rec = RECORD { 1} rec_header: rec_header_type; { 9} dbalid: emplno_day_type; { 25} dbal: ARRAY [1..max_no_of_balances] OF dbalance_type; { 73} auto_break: duration_type; { 75} filler: ARRAY [1..6] OF filler_type {= 80} END; dsdept_rec = RECORD { 1} rec_header: rec_header_type; { 9} deptno: deptno_type; { 19} dept_text: long_text_type; { 49} filler: ARRAY [1..12] OF char {= 60} END; dsdic_rec = RECORD { 1} rec_header: rec_header_type; { 9} recid: recid_type; { 17} fieldid: fieldid_type; { 33} dic_text: long_text_type; { 63} keyfield: short; { 65} pos: short; { 67} fieldtype: fieldtype_type; { 69} len: short; { 71} conv_table_name: long_text_type; { 101} filler: ARRAY [1..40] OF filler_type {= 140} END; record_definition_type = ARRAY [1..max_fields_per_record] OF dsdic_rec; dist_deduct_tab_type = ARRAY [1..11] OF short; dsdist_rec = RECORD { 1} rec_header: rec_header_type; { 9} dist_deduct_tabid: ARRAY [1..4] OF char; { 13} dist_deduct_tab: ARRAY [1..10] OF dist_deduct_tab_type; { 233} filler: ARRAY [1..168] OF char {= 400} END; dsdtime_rec = RECORD { 1} rec_header: rec_header_type; { 9} dtimeid: dtimeid_type; { 26} record_locked: char; { 27} no_of_timepairs: short; { 29} no_of_del_timepairs: short; { 31} timepair_tab: ARRAY [1..maxtimepairs_per_record] OF timepair_type; { 87} filler: ARRAY [1..14] OF char {= 100} END; all_timepairs_tab_type = ARRAY [1..maxtimepairs] OF timepair_type; dsdtimet_rec = RECORD { 1} rec_header: rec_header_type; { 9} dtimet_key: day_emplno_type; { 25} filler1: char; { 26} record_locked: char; { 27} no_of_timepairs: short; { 29} no_of_del_timepairs: short; { 31} timepair_tab: all_timepairs_tab_type; { 255} del_timepair_tab: all_timepairs_tab_type; { 479} filler: ARRAY [1..22] OF char {= 500} END; dsecalen_rec = RECORD { 1} rec_header: rec_header_type; { 9} mach_job: mach_job_type; { 25} date: date_type; { 31} event: event_type; { 33} del_flag: flag_type; { 34} filler1: filler_type; { 35} from_time: mod_type; { 37} to_time: mod_type; { 39} filler2: ARRAY [1..12] OF filler_type {= 50} END; dseload_rec = RECORD { 1} rec_header: rec_header_type; { 9} parametername: ARRAY [1..8] OF char; { 17} eload_text: long_text_type; { 47} emplno_pos: short; { 49} input_emplno_len: short; { 51} manager_emplno_pos: short; { 53} input_manager_emplno_len: short; { 55} badgeno_pos: short; { 57} input_badgeno_len: short; { 59} costid_pos: short; { 61} input_costid_len: short; { 63} v_valid_from_yy_pos: short; { 65} v_valid_from_mo_pos: short; { 67} v_valid_from_dd_pos: short; { 69} valid_from_yy_pos: short; { 71} valid_from_mo_pos: short; { 73} valid_from_dd_pos: short; { 75} valid_to_yy_pos: short; { 77} valid_to_mo_pos: short; { 79} valid_to_dd_pos: short; { 81} start_date_pos: ARRAY [1..3] OF short; { 87} birthdate_pos: ARRAY [1..3] OF short; { 93} select_options_pos: ARRAY [1..max_select_options] OF short; { 125} empl_corr_values_pos: ARRAY [1..max_empl_corr_values] OF short; { 133} input_empl_corr_values_len: short; { 135} vacation_pos: ARRAY [1..maxvacations] OF short; { 143} input_vacation_len: short; { 145} allowances_pos: ARRAY [1..10] OF short; { 165} input_allowances_len: short; { 167} name_pos: short; { 169} input_name_len: short; { 171} surname_pos: short; { 173} input_surname_len: short; { 175} firstname_pos: short; { 177} input_firstname_len: short; { 179} deptno_pos: short; { 181} input_deptno_len: short; { 183} hometerm_pos: short; { 185} input_hometerm_len: short; { 187} tariffarea_pos: short; { 189} input_tariffarea_len: short; { 191} termcats_pos: short; { 193} input_termcats_len: short; { 195} pincode_pos: short; { 197} input_pincode_len: short; { 199} employcat_pos: short; { 201} input_employcat_len: short; { 203} phoneno_pos: short; { 205} input_phoneno_len: short; { 207} factory_pos: short; { 209} input_factory_len: short; { 211} accesscat_pos: short; { 213} input_accesscat_len: short; { 215} cycleid_pos: short; { 217} input_cycleid_len: short; { 219} cycle_start_pos: short; { 221} ref_p_len_pos: short; { 223} ref_p_work_time_pos: short; { 225} adjustcat_pos: short; { 227} input_adjustcat_len: short; { 229} mean_std_w_pos: short; { 231} input_mean_std_w_len: short; { 233} mean_std_w_w_pos: short; { 235} inp_mean_std_w_w_len: short; { 237} cont_pay_len_pos: short; { 239} inp_cont_pay_len_len: short; { 241} machineid_pos: short; { 243} input_machineid_len: short; { 245} jobid_pos: short; { 247} input_jobid_len: short; { 249} working_location_pos: short; { 251} input_working_location_len: short; { 253} email_address_pos: short; { 255} input_email_address_len: short; { 257} position_number_pos: short; { 259} input_position_number_len: short; { 261} no_of_blank_lines_pos: short; { 263} input_no_of_blank_lines_len: short; { 265} alias_pos: short; { 267} input_alias_len: short; { 269} text_1_pos: short; { 271} input_text_1_len: short; { 273} text_2_pos: short; { 275} input_text_2_len: short; { 277} street_pos: short; { 279} input_street_len: short; { 281} postal_code_pos: short; { 283} input_postal_code_len: short; { 285} home_town_pos: short; { 287} input_home_town_len: short; { 289} telephoneno_pos: short; { 291} input_telephoneno_len: short; { 293} auto_cost_switch_pos: short; { 295} dist_from_terminal_pos: short; { 297} sfc_participant_pos: short; { 299} multi_machine_user_pos: short; { 301} vacation_method_pos: short; { 303} input_vacation_method_len: short; { 305} phoneno1_pos: short; { 307} input_phoneno1_len: short; { 309} phoneno2_pos: short; { 311} input_phoneno2_len: short; { 313} handyno1_pos: short; { 315} input_handyno1_len: short; { 317} handyno2_pos: short; { 319} input_handyno2_len: short; { 321} photo_location_pos: short; { 323} input_photo_location_len: short; { 325} user_template_pos: short; { 327} input_user_template_len: short; { 329} password_pos: short; { 331} input_password_len: short; { 333} rpoolid_pos: short; { 335} input_rpoolid_len: short; { 337} hourly_wage_pos: short; { 339} module: ARRAY [1..32] OF tseload_table_elem_type; { 467} v_valid_to_yy_pos: short; { 469} v_valid_to_mo_pos: short; { 471} v_valid_to_dd_pos: short; { 473} filler: ARRAY [1..54] OF filler_type {= 526} END; dsevent_rec = RECORD { 1} rec_header: rec_header_type; { 9} event: event_type; { 11} event_text: long_text_type; { 41} invalid_from: date_type; { 47} valid_from: date_type; { 53} event_percent: long; { 57} event_absolute: long; { 61} event_delay: short; { 63} no_of_days: short; { 65} allocation: char; { 66} filler1: ARRAY [1..3] OF filler_type; { 69} manual_allocation: ARRAY [1..7] OF long; { 97} color: color_attr_type; { 105} filler2: ARRAY [1..6] OF filler_type {= 110} END; dsfbadge_rec = RECORD { 1} rec_header: rec_header_type; { 9} badgeno: long_badgeno_type; { 29} hostno: short; { 31} host_clientno: buffer_type; { 33} host_termid: objectid_type; { 41} host_termno: short; { 43} host_termcat: termcat_type; { 51} filler: ARRAY [1..30] OF filler_type {= 80} END; dsff10_rec = RECORD { 1} key10: ARRAY [1..10] OF unsigned_byte; { 11} data90: ARRAY [1..90] OF unsigned_byte {= 100} END; dsff16_rec = RECORD { 1} key16: ARRAY [1..16] OF unsigned_byte; { 17} data64: ARRAY [1..64] OF unsigned_byte {= 80} END; export_interface_type = ARRAY [1..2] OF char; export_line_type = ARRAY [1..2] OF char; export_status_type = ARRAY [1..2] OF char; export_data_type = ARRAY [1..export_data_len] OF char; export_key_type = RECORD { 1} export_interface: export_interface_type; { 3} line_type: export_line_type; { 5} date_time_written: date_and_time_type; { 17} millisec: short {= 18} END; dsexport_rec = RECORD { 1} rec_header: rec_header_type; { 9} export_key: export_key_type; { 27} export_status: export_status_type; { 29} export_data: export_data_type; { 278} filler: ARRAY [1..123] OF char {= 400} END; dsfsick_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} date_to: date_type; { 25} date_from: date_type; { 31} codeid: codeid_type; { 33} ref_date: date_type; { 39} filler: ARRAY [1..22] OF char {= 60} END; dsjobflg_rec = RECORD { 1} rec_header: rec_header_type; { 9} jobflag: ARRAY [1..3] OF char; { 12} jobflg_txt: ARRAY [1..50] OF char; { 62} filler: ARRAY [1..9] OF filler_type {= 70} END; dslang_rec = RECORD { 1} rec_header: rec_header_type; { 9} tableno: record_no_type; { 11} languageid: languageid_type; { 13} foreign_key: ARRAY [1..dslang_key_len] OF char; { 77} long_key1: long; { 81} long_key2: long; { 85} unsigned_key1: ARRAY [1..8] OF unsigned_byte; { 93} date: date_type; { 99} foreign_text: long_text_type; { 129} filler: ARRAY [1..12] OF filler_type {= 140} END; lodist_deduct_tab_type = ARRAY [1..10] OF short; dslodist_rec = RECORD { 1} rec_header: rec_header_type; { 9} lodist_deduct_tabid: ARRAY [1..4] OF char; { 13} lodist_deduct_tab: ARRAY [1..50] OF lodist_deduct_tab_type; { 1013} filler: ARRAY [1..188] OF filler_type {=1200} END; dslogatt_rec = RECORD { 1} rec_header: rec_header_type; { 9} userid: packed_20_type; { 29} login_time: date_and_time_type; { 41} jobid: cusers_name_type; { 71} os_username: cusers_name_type; { 101} clientname: cusers_name_type; { 131} access_granted: flag_type {= 131} END; dsltime_rec = RECORD { 1} rec_header: rec_header_type; { 9} ltimeid: date_and_time_type; { 21} termid: objectid_type; { 29} termno: short; { 31} req_code: char; { 32} cost_req_code: char; { 33} costid: costid_type; { 53} badgeno: long_badgeno_type; { 73} codeid: codeid_type; { 75} book_date_time: date_and_time_type; { 87} ignore_time: short; { 89} reason: short; { 91} codeidtype: char; { 92} filler1: filler_type; { 93} amount: long; { 97} quantity: short; { 99} citemno: objectid_type; { 107} millisec: short; { 109} emplno: emplno_type; { 119} filler: ARRAY [1..2] OF filler_type {= 120} END; booklog_rec = dsltime_rec; dsmasks_rec = RECORD { 1} rec_header: rec_header_type; { 9} menuename: objectid_type; { 17} menue_title: menue_title_type; { 63} languageid: languageid_type; { 65} prog_tab: ARRAY [1..max_menue_lines] OF RECORD {+ 0} menue_line: menue_line_type; {+ 50} progname: objectid_type; {+ 58} info_field: menue_info_type {= 816} END; { 881} filler: ARRAY [1..70] OF filler_type {= 950} END; short_adjust_rule_type = RECORD { 1} method: short; { 3} transbalanceid_1: short; { 5} transbalanceid_2: short; { 7} filler: ARRAY [1..2] OF filler_type; { 9} corr_value_1: saldo_type; { 13} corr_value_2: saldo_type {= 16} END; dsmcconf_rec = RECORD { 1} rec_header: rec_header_type; { 9} operationid: operationid_type; { 17} operation_text: long_text_type; { 47} balanceid: short; { 49} add_value: saldo_type; { 53} rule_tab: ARRAY [1..mcconf_rule_tab_len] OF short_adjust_rule_type; { 133} value_suggestion: saldo_type; { 137} show_cond_min: saldo_type; { 141} show_cond_max: saldo_type; { 145} check_cond_min: saldo_type; { 149} check_cond_max: saldo_type; { 153} filler: ARRAY [1..48] OF char {= 200} END; dsperror_rec = RECORD { 1} rec_header: rec_header_type; { 9} logonid: logonid_type; { 17} start_datetime: date_and_time_type; { 29} rowno: short; { 31} date_time_written: date_and_time_type; { 43} error_code: code_type; { 47} vos_error: short; { 49} error_text: error_text_type; { 109} severity_code: char; { 110} emplno: emplno_type; { 120} exit_code: exit_code_type; { 126} filler: ARRAY [1..25] OF unsigned_byte {= 150} END; dsplan_rec = RECORD { 1} rec_header: rec_header_type; { 9} plan_key: plan_key_type; { 25} date_from: date_type; { 31} allowances: allowances_type; { 41} wpatid: wpatid_type; { 45} ruleid: ruleid_type; { 47} codeid: codeid_type; { 49} employcat: employcat_type; { 53} tariffarea: tariffarea_type; { 57} costid: costid_type; { 77} cycleid: cycleid_type; { 81} cycle_start: short; { 83} special_service: codeid_type; { 85} from_time: mod_type; { 87} to_time: mod_type; { 89} ondutylen_from_cur_wpat: char; { 90} filler: ARRAY [1..31] OF unsigned_byte {= 120} END; apply_key_type = RECORD { 1} emplno: emplno_type; { 11} date_to: date_type; { 17} apptype: short; { 19} time: mod_type {= 20} END; dsapply_rec = RECORD { 1} rec_header: rec_header_type; { 9} apply_key: apply_key_type; { 29} date_from: date_type; { 35} allowance: allowance_type; { 37} allowance_remainder: allowance_type; { 39} date_applied: date_type; { 45} date_granted: date_type; { 51} state: char; { 52} granted_by_head: flag_type; { 53} granted_by_pd: flag_type; { 54} filler: ARRAY [1..15] OF filler_type {= 68} END; dsprstat_rec = RECORD { 1} rec_header: rec_header_type; { 9} username: username_type; { 41} logonid: logonid_type; { 49} jobname: packed_10_type; { 59} filler1: ARRAY [1..2] OF char; { 61} processno: ulong; { 65} start_datetime: date_and_time_type; { 77} end_datetime: date_and_time_type; { 89} print_file: phys_filename_type; { 121} printerid: objectid_type; { 129} jobstatus: char; { 130} filler: ARRAY [1..31] OF unsigned_byte {= 160} END; dsquery_rec = RECORD { 1} rec_header: rec_header_type; { 9} queryid: queryid_type; { 17} sequenceno: short; { 19} query_text: long_text_type; { 49} root_recid: recid_type; { 57} query_definition: ARRAY [1..query_def_len] OF char; { 257} filler: ARRAY [1..44] OF filler_type {= 300} END; dsqueryt_rec = RECORD { 1} rec_header: rec_header_type; { 9} queryid: queryid_type; { 17} query_text: long_text_type; { 47} root_recid: recid_type; { 55} query_definition: ARRAY [1..queryt_def_len] OF char {=3054} END; dsrcalen_rec = RECORD { 1} rec_header: rec_header_type; { 9} rcalenid: rcalenid_type; { 13} rcalen_text: long_text_type; { 43} tariffarea: tariffarea_type; { 47} date: date_type; { 53} date_last_year: date_type; { 59} modified: char; { 60} first_day: flag_type; { 61} filler: ARRAY [1..20] OF filler_type {= 80} END; dsrcalls_rec = RECORD { 1} rec_header: rec_header_type; { 9} mach_job: mach_job_type; { 25} date: date_type; { 31} time_from: mod_type; { 33} no_calls: long; { 37} time_to: mod_type; { 39} average_time: short; { 41} no_lost_calls: long; { 45} filler: ARRAY [1..18] OF filler_type {= 62} END; dsrooms_rec = RECORD { 1} rec_header: rec_header_type; { 9} roomnumber: ARRAY [1..4] OF char; { 13} mpoint: char; { 14} room_text: ARRAY [1..100] OF char; { 114} filler: ARRAY [1..7] OF filler_type {= 120} END; dsrule_rec = RECORD { 1} rec_header: rec_header_type; { 9} rule_key: rule_key_type; { 17} valid_from: date_type; { 23} rule_text: long_text_type; { 53} offduty_code: codeid_type; { 55} auto_time_come: char; { 56} break_code: codeid_type; { 58} auto_time_go: char; { 59} calculation_rule: short; { 61} code_come_auto_time: char; { 62} code_come_warn_flag: flag_type; { 63} code_go_auto_time: char; { 64} code_go_warn_flag: flag_type; { 65} balance_less_employment: char; { 66} allowance_1_absolute: flag_type; { 67} interval_go: short; { 69} balance_priority: ARRAY [1..3] OF char; { 72} round_point_of_time: char; { 73} balance_rounding_tab: ARRAY [1..3] OF balance_rounding_type; { 97} interval_come: short; { 99} round_up_come: short; { 101} round_up_go: short; { 103} late_arrival: short; { 105} early_leave: short; { 107} late_arrive_code: codeid_type; { 109} early_leave_code: codeid_type; { 111} abs_warn_flag: flag_type; { 112} closed_model_flag: flag_type; { 113} time_of_rest: duration_type; { 115} oncall_overtime_min: duration_type; { 117} ondutylen_from_cur_wpat: flag_type; { 118} wizard_mark: char; { 119} useable: flag_type; { 120} filler: ARRAY [1..21] OF filler_type {= 140} END; dsselopt_rec = RECORD { 1} rec_header: rec_header_type; { 9} selopt_key: selopt_key_type; { 11} selopt_text: long_text_type; { 41} filler: ARRAY [1..20] OF char {= 60} END; dsshift_rec = RECORD { 1} rec_header: rec_header_type; { 9} shiftid: shiftid_type; { 13} shift_text: long_text_type; { 43} ruleid: ruleid_type; { 45} shift_unit: char; { 46} alt_wpatid_for_type: flag_type; { 47} count: short; { 49} wpatid_dayno: ARRAY [1..maxdaytypes] OF wpatid_type; { 89} wpatid_daytype: ARRAY [1..maxdaytypes] OF wpatid_type; { 129} alt_wpatid: ARRAY [1..maxdaytypes] OF alt_wpatids_type; { 449} warn_alt_wpatid: ARRAY [1..maxdaytypes] OF alt_wpatids_flag_type; { 529} codeid: ARRAY [1..maxdaytypes] OF codeid_type; { 549} wizard_mark: char; { 550} filler: ARRAY [1..91] OF filler_type {= 640} END; ttraf_key_type = RECORD { 1} termno: short; { 3} dd: short {= 4} END; dsttraf_rec = RECORD { 1} rec_header: rec_header_type; { 9} ttraf_key: ttraf_key_type; { 13} number_in: long; { 17} error_in: long; { 21} number_out: long; { 25} error_out: long; { 29} filler: ARRAY [1..12] OF char {= 40} END; dsuser_rec = RECORD { 1} rec_header: rec_header_type; { 9} logonid: logonid_type; { 17} emplno: emplno_type; { 27} password: objectid_type; { 35} menuename: objectid_type; { 43} acterm_cat: accat_type; { 51} acmask_cat: accat_type; { 59} acdept_cat: accat_type; { 67} accat_cat: accat_type; { 75} acinc_cat: accat_type; { 83} accode_cat: accat_type; { 91} username: username_type; { 123} password_check_flag: flag_type; { 124} change_old_data_flag: flag_type; { 125} acprog_cat: accat_type; { 133} own_data_perm: char; { 134} video_attributes: video_attributes_type; { 150} aczone_cat: accat_type; { 158} accost_cat: accat_type; { 166} time_manager: flag_type; { 167} accop_cat: accat_type; { 175} accomm_cat: accat_type; { 183} printerid: objectid_type; { 191} password_locked: flag_type; { 192} password_overall: flag_type; { 193} password_timestamp: long; { 197} password_validity: short; { 199} acsel_cat: accat_type; { 207} accost_enter_cat: accat_type; { 215} project_planer: flag_type; { 216} master_proj_perm: char; { 217} emplno_pattern: flag_type; { 218} filler1: ARRAY [1..3] OF filler_type; { 221} special_colors: special_colors_type; { 349} mask_colors: ARRAY [1..20] OF one_masks_colors_type; { 1949} filler: ARRAY [1..12] OF filler_type {=1960} END; dsusers_rec = RECORD { 1} rec_header: rec_header_type; { 9} logonid: logonid_type; { 17} prog_init: ARRAY [1..300] OF unsigned_byte; { 317} emplno: emplno_type; { 327} filler1: ARRAY [1..2] OF filler_type; { 329} dmonth_date: date_type; { 335} dmonth_balanceid: ARRAY [1..4] OF short; { 343} dmonth_printerid: objectid_type; { 351} dmonth_display_daily_incomes: flag_type; { 352} filler2: ARRAY [1..1] OF filler_type; { 353} dpres_date: date_type; { 359} dpres_time: mod_type; { 361} dpres_deptno: costid_type; { 381} dpres_wpatid: ARRAY [1..3] OF wpatid_type; { 393} dpres_select_options: select_options_type; { 409} dpres_printerid: objectid_type; { 417} dpres_selection: char; { 418} dpres_org_type: char; { 419} dpres_codeid: ARRAY [1..5] OF codeid_type; { 429} dabsemp_date: date_type; { 435} dabsemp_no_of_months: short; { 437} dabsemp_fix_code: ARRAY [1..4] OF codeid_type; { 445} dabsemp_printerid: objectid_type; { 453} dabsgrp_date: date_type; { 459} dabsgrp_deptno: deptno_type; { 469} dabsgrp_costid: costid_type; { 489} dabsgrp_select_options: select_options_type; { 505} dabsgrp_printerid: objectid_type; { 513} dabsgrp_mark_warning_flags: flag_type; { 514} dabsgrp_mark_presence_flags: flag_type; { 515} dabsgrp_offduty_char: char; { 516} dabsgrp_codeid: ARRAY [1..5] OF codeid_type; { 526} filler3: ARRAY [1..3] OF filler_type; { 529} dcbal_deptno: deptno_type; { 539} dcbal_balanceid: ARRAY [1..4] OF short; { 547} dcbal_costid: costid_type; { 567} dcbal_select_options: select_options_type; { 583} dcbal_bal_type: char; { 584} dcbal_sort: char; { 585} dcbal_balance_min: long; { 589} dcbal_balance_max: long; { 593} dcbal_target_date: date_type; { 599} dcbal_created_until_date: date_type; { 605} dcbal_printerid: objectid_type; { 613} dcbal_employcat: employcat_type; { 617} dcbal_cols_extension: char; { 618} dcbal_adj_balance_flags: ARRAY [1..4] OF flag_type; { 622} filler4: ARRAY [1..3] OF filler_type; { 625} derrors_date_time: date_and_time_type; { 637} derrors_severity_codes: ARRAY [1..8] OF char; { 645} derrors_jobnames: ARRAY [1..60] OF char; { 705} derrors_username: userid_type; { 721} derrors_no_of_days: short; { 723} derrors_printerid: objectid_type; { 731} filler5: ARRAY [1..2] OF filler_type; { 733} tstat_date: date_type; { 739} tstat_terminalid: objectid_type; { 747} filler6: ARRAY [1..2] OF filler_type; { 749} dwarn_date_time: date_and_time_type; { 761} dwarn_no_of_days: short; { 763} dwarn_warningtype: char; { 764} dwarn_status: char; { 765} dwarn_emplno: emplno_type; { 775} dwarn_deptno: deptno_type; { 785} dwarn_employcat: employcat_type; { 789} dwarn_badgeno: long_badgeno_type; { 809} dwarn_costid: costid_type; { 829} dwarn_select_options: select_options_type; { 845} dwarn_printerid: objectid_type; { 853} demp_printerid: objectid_type; { 861} dcost_date_from: date_type; { 867} dcost_date_to: date_type; { 873} dcost_sum_1: char; { 874} dcost_sum_2: char; { 875} dcost_deptno: deptno_type; { 885} dcost_employcat: employcat_type; { 889} dcost_select_options: select_options_type; { 905} dcost_costid: costid_type; { 925} dcost_income: income_type; { 929} dcost_printerid: objectid_type; { 937} dcost_regular_costid: costid_type; { 957} schedu_deptno: deptno_type; { 967} schedu_start_date: date_type; { 973} schedu_no_of_weeks: short; { 975} schedu_printerid: objectid_type; { 983} schedu_quote: short; { 985} schedu_unit: char; { 986} filler7: ARRAY [1..3] OF filler_type; { 989} daccz_zoneid: short; { 991} daccz_from_date_and_time: date_and_time_type; { 1003} daccz_to_date_and_time: date_and_time_type; { 1015} daccz_deptno: deptno_type; { 1025} daccz_printerid: objectid_type; { 1033} dacce_zoneid: short; { 1035} dacce_from_date_and_time: date_and_time_type; { 1047} dacce_to_date_and_time: date_and_time_type; { 1059} dacce_printerid: objectid_type; { 1067} filler8: ARRAY [1..2] OF filler_type; { 1069} dzone_zoneid: short; { 1071} dzone_start_dat: date_and_time_type; { 1083} dzone_deptno: deptno_type; { 1093} dzone_pres_time: duration_type; { 1095} dzone_duration: duration_type; { 1097} dzone_printerid: objectid_type; { 1105} dvisit_update_table: flag_type; { 1106} filler9: ARRAY [1..3] OF filler_type; { 1109} pstep_orderno: orderno_type; { 1125} pstep_prod_stepno: ARRAY [1..5] OF char; { 1130} pstep_prod_stepno_var: ARRAY [1..5] OF char; { 1135} pstep_formno: ARRAY [1..10] OF char; { 1145} pstep_machid: objectid_type; { 1153} pstep_coll_orderid: orderno_type; { 1169} dmsg_orderno: orderno_type; { 1185} dmsg_date_time: date_and_time_type; { 1197} dmsg_prod_stepno: prod_stepno_type; { 1201} dmsg_prod_stepno_var: prod_stepno_type; { 1205} dmsg_emplno: emplno_type; { 1215} dmsg_machid: objectid_type; { 1223} filler10: ARRAY [1..2] OF filler_type; { 1225} dstatus_orderno: orderno_type; { 1241} dstatus_prod_stepno: prod_stepno_type; { 1245} dstatus_prod_stepno_var: prod_stepno_type; { 1249} dstatus_prod_operationid: prod_operationid_type; { 1253} dstatus_emplno: emplno_type; { 1263} dstatus_date_time: date_and_time_type; { 1275} dstatus_machid: objectid_type; { 1283} dstatus_fault_reasonid: fault_reasonid_type; { 1287} dstatus_status: char; { 1288} filler11: ARRAY [1..1] OF filler_type; { 1289} dswarn_prod_stepno: prod_stepno_type; { 1293} dswarn_prod_stepno_var: prod_stepno_type; { 1297} dswarn_date_time: date_and_time_type; { 1309} dswarn_no_of_days: short; { 1311} dswarn_state: char; { 1312} dswarn_warning_type: char; { 1313} dswarn_emplno: emplno_type; { 1323} dswarn_orderno: orderno_type; { 1339} dswarn_machid: objectid_type; { 1347} dswarn_printerid: objectid_type; { 1355} filler12: ARRAY [1..2] OF filler_type; { 1357} dpsopn_begin_date_time: date_and_time_type; { 1369} dpsopn_end_date_time: date_and_time_type; { 1381} dpsopn_machid: objectid_type; { 1389} dpsopn_prod_operationid: prod_operationid_type; { 1393} dpsopn_only_ready: flag_type; { 1394} dpsopn_printerid: objectid_type; { 1402} filler13: ARRAY [1..3] OF filler_type; { 1405} lpstep_orderno: orderno_type; { 1421} lpstep_machid: objectid_type; { 1429} lpstep_prod_operationid: prod_operationid_type; { 1433} lpstep_begin_date_time: date_and_time_type; { 1445} lpstep_end_date_time: date_and_time_type; { 1457} lpstep_pstep_status: char; { 1458} lpstep_printerid: objectid_type; { 1466} filler14: ARRAY [1..3] OF filler_type; { 1469} dorder_orderno: orderno_type; { 1485} dorder_text: long_text_type; { 1515} dorder_articleno: ARRAY [1..16] OF char; { 1531} dorder_order_state: char; { 1532} dorder_state: char; { 1533} dorder_planned_begin: date_and_time_type; { 1545} dorder_planned_end: date_and_time_type; { 1557} dorder_current_data: char; { 1558} filler15: ARRAY [1..3] OF filler_type; { 1561} dfrsn_from_date: date_type; { 1567} dfrsn_to_date: date_type; { 1573} dfrsn_machid: objectid_type; { 1581} dfrsn_fault_reasonid: fault_reasonid_type; { 1585} dfrsn_emplno: emplno_type; { 1595} dfrsn_sum1: char; { 1596} dfrsn_sum2: char; { 1597} dfrsn_printerid: objectid_type; { 1605} reass_date: date_type; { 1611} reass_printerid: objectid_type; { 1619} filler16: ARRAY [1..2] OF filler_type; { 1621} corder_orderno: orderno_type; { 1637} corder_machid: objectid_type; { 1645} corder_prod_operationid: prod_operationid_type; { 1649} corder_pstep_state: char; { 1650} corder_additional_psteps: char; { 1651} filler17: ARRAY [1..2] OF filler_type; { 1653} ccomp_orderno: orderno_type; { 1669} ccomp_machid: objectid_type; { 1677} ccomp_prod_operationid: prod_operationid_type; { 1681} pwbal_date: date_type; { 1687} pwbal_emplno: emplno_type; { 1697} upstep_orderno: orderno_type; { 1713} upstep_machid: objectid_type; { 1721} upstep_pw_type: piece_work_type_type; { 1725} upstep_state: char; { 1726} upstep_prod_operationid: prod_operationid_type; { 1730} filler18: ARRAY [1..3] OF filler_type; { 1733} ltime_begin_date_time: date_and_time_type; { 1745} ltime_end_date_time: date_and_time_type; { 1757} ltime_badgeno: long_badgeno_type; { 1777} ltime_function_code: unsigned_byte; { 1778} filler19: ARRAY [1..3] OF filler_type; { 1781} anlbal_balanceid: short; { 1783} anlbal_target_date: date_type; { 1789} anlbal_created_until_date: date_type; { 1795} filler20: ARRAY [1..2] OF filler_type; { 1797} cplanm_deptno: deptno_type; { 1807} cplanm_costid: costid_type; { 1827} cplanm_select_options: select_options_type; { 1843} cplanm_state: char; { 1844} cplanm_sort_char: char; { 1845} comm_commtype: commtype_type; { 1849} comm_printerid: objectid_type; { 1857} comm_cover: flag_type; { 1858} filler21: ARRAY [1..3] OF filler_type; { 1861} monov_date: date_type; { 1867} monov_balanceid: ARRAY [1..3] OF short; { 1873} filler22: ARRAY [1..4] OF filler_type; { 1877} dscost_emplno: emplno_type; { 1887} dscost_date_from: date_type; { 1893} dscost_date_to: date_type; { 1899} dscost_deptno: deptno_type; { 1909} dscost_select_options: select_options_type; { 1925} dscost_costid: costid_type; { 1945} dscost_machid: objectid_type; { 1953} dscost_orderno: orderno_type; { 1969} dscost_prod_stepno: ARRAY [1..5] OF char; { 1974} dscost_prod_stepno_var: ARRAY [1..5] OF char; { 1979} dscost_articleno: ARRAY [1..16] OF char; { 1995} dscost_summation1: char; { 1996} dscost_summation2: char; { 1997} dscost_summation3: char; { 1998} dscost_printerid: objectid_type; { 2006} filler23: ARRAY [1..3] OF filler_type; { 2009} pscap_machid: objectid_type; { 2017} pscap_costid: costid_type; { 2037} pscap_date_from: date_type; { 2043} pscap_date_to: date_type; { 2049} pscap_cw: ARRAY [1..2] OF char; { 2051} filler24: ARRAY [1..2] OF filler_type; { 2053} psprod_machid: objectid_type; { 2061} psprod_costid: costid_type; { 2081} psprod_date_from: date_type; { 2087} psprod_date_to: date_type; { 2093} psprod_cw: ARRAY [1..2] OF char; { 2095} pspord_orderno: orderno_type; { 2111} psprod_printerid: objectid_type; { 2119} filler25: ARRAY [1..2] OF filler_type; { 2121} accemp_emplno: emplno_type; { 2131} accemp_zoneid: short; { 2133} accemp_printerid: objectid_type; { 2141} schedu_schedsid: objectid_type; { 2149} schedu_select_options: select_options_type; { 2165} schedu_use_prtempday: flag_type; { 2166} schedu_filter_sort_char1: char; { 2167} schedu_filter_sort_char2: char; { 2168} schedu_filter_sort_char3: char; { 2169} schedu_filter_sort_char4: char; { 2170} schedu_ascid: objectid_type; { 2178} filler26: ARRAY [1..3] OF filler_type; { 2181} plan_printerid: objectid_type; { 2189} stpgm_printerid: objectid_type; { 2197} ppord_printerid: objectid_type; { 2205} pscap_printerid: objectid_type; { 2213} pstruc_projectid: projectid_type; { 2225} pstruc_versionid: versionid_type; { 2229} pstruc_parproid: parproid_type; { 2241} pnet_projectid: projectid_type; { 2253} pnet_versionid: versionid_type; { 2257} pnet_taskid: taskid_type; { 2269} pnet_attributes: attributes_type; { 2365} pnet_rpool_assigned: rpoolid_type; { 2377} pnet_emplno_assigned: emplno_type; { 2387} pnet_processing_rate_min: sreal_type; { 2389} pnet_processing_rate_max: sreal_type; { 2391} filler27: ARRAY [1..2] OF filler_type; { 2393} pbar_projectid: projectid_type; { 2405} pbar_versionid: versionid_type; { 2409} pbar_taskid: taskid_type; { 2421} pbar_attributes: attributes_type; { 2517} pbar_rpool_assigned: rpoolid_type; { 2529} pbar_emplno_assigned: emplno_type; { 2539} pbar_processing_rate_min: sreal_type; { 2541} pbar_processing_rate_max: sreal_type; { 2543} filler28: ARRAY [1..6] OF filler_type; { 2549} res_start_date: date_type; { 2555} res_unitlen: short; { 2557} res_unittype: char; { 2558} res_rpoolid: rpoolid_type; { 2570} res_emplno: emplno_type; { 2580} res_projectid: projectid_type; { 2592} res_versionid: versionid_type; { 2596} filler29: ARRAY [1..7] OF filler_type; { 2603} dpwarn_start_date: date_type; { 2609} dpwarn_start_time: time_type; { 2615} dpwarn_projectid: projectid_type; { 2627} dpwarn_versionid: versionid_type; { 2631} dpwarn_parproid: parproid_type; { 2643} dpwarn_taskid: taskid_type; { 2655} dpwarn_rpoolid: rpoolid_type; { 2667} dpwarn_emplno: emplno_type; { 2677} dpwarn_state: char; { 2678} dpwarn_pmwarn_char: char; { 2679} filler30: ARRAY [1..2] OF filler_type; { 2681} dsplan_printerid: objectid_type; { 2689} dsplan_from: date_type; { 2695} dsplan_to: date_type; { 2701} cplane_outlook: flag_type; { 2702} filler31: ARRAY [1..3] OF filler_type; { 2705} awtime_pm_kontierungen: flag_type; { 2706} filler32: ARRAY [1..3] OF filler_type; { 2709} filler: ARRAY [1..792] OF filler_type {=3500} END; dsvisit_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} surname: surname_type; { 49} firstname: firstname_type; { 69} company: long_text_type; { 99} badgeno: long_badgeno_type; { 119} accesscat: acccatid_type; { 123} filler1: ARRAY [1..2] OF filler_type; { 125} valid_from_date: date_type; { 131} valid_from_time: mod_type; { 133} valid_to_date: date_type; { 139} valid_to_time: mod_type; { 141} carlicid: ARRAY [1..12] OF char; { 153} contact: long_text_type; { 183} pin_code: pin_code_type; { 187} factory: packed_12_type; { 199} filler: ARRAY [1..62] OF filler_type {= 260} END; warn_log_rec = RECORD { 1} rec_header: rec_header_type; { 9} req_code: char; { 10} book_code: char; { 11} emplno: emplno_type; { 21} old_badgeno: badgeno_type; { 31} state: char; { 32} seqno: unsigned_byte; { 33} date_time_written: date_and_time_type; { 45} work_day: date_type; { 51} time: mod_type; { 53} termid: objectid_type; { 61} logonid: logonid_type; { 69} warntype: short; { 71} warnparameter: ARRAY [1..20] OF char; { 91} badgeno: long_badgeno_type; { 111} filler: ARRAY [1..20] OF filler_type {= 130} END; special_service_type = RECORD { 1} special_code: codeid_type; { 3} from_time: mod_type; { 5} to_time: mod_type {= 6} END; dswopen_rec = RECORD { 1} rec_header: rec_header_type; { 9} wopenid: emplno_day_type; { 25} wpatid: wpatid_type; { 29} ruleid: ruleid_type; { 31} allowances: allowances_type; { 41} daily_codeid: codeid_type; { 43} reass_flag: flag_type; { 44} ondutylen_from_cur_wpat: flag_type; { 45} alt_wpatids_flag: flag_type; { 46} tariffarea: tariffarea_type; { 50} employcat: employcat_type; { 54} breakusage: unsigned_byte; { 55} auto_break_tot_max: allowance_type; { 57} cycle_wpatid: wpatid_type; { 61} original_wpatid: wpatid_type; { 65} costid: costid_type; { 85} special_service: ARRAY [1..3] OF special_service_type; { 103} filler: ARRAY [1..8] OF filler_type {= 110} END; dswpat_rec = RECORD { 1} rec_header: rec_header_type; { 9} wpat_key: wpat_key_type; { 19} valid_from: date_type; { 25} wpat_text: long_text_type; { 55} wpat: ARRAY [1..3] OF RECORD {+ 0} time_from: mod_type; {+ 2} time_to: mod_type; {+ 4} ondutylen: duration_type {= 18} END; { 73} freeshift: duration_type; { 75} break_pattern: ARRAY [1..maxbreaks] OF break_pattern_type; { 123} break_tot_min: duration_type; { 125} break_tot_max: duration_type; { 127} break_time: mod_type; { 129} work_min_break: duration_type; { 131} onduty_inc: duration_type; { 133} break_inc: duration_type; { 135} break_percent: short; { 137} break_interval: RECORD {+ 0} time_come: mod_type; {+ 2} time_go: mod_type {= 4} END; { 141} day_allowance: RECORD {+ 0} time_from: mod_type; {+ 2} time_to: mod_type {= 4} END; { 145} daybreak: mod_type; { 147} daybreak_tariff: mod_type; { 149} open_checkout: mod_type; { 151} work_mean_break: duration_type; { 153} break_tot_mean: duration_type; { 155} interval_ind_come: char; { 156} interval_ind_go: char; { 157} charge_break_flag: flag_type; { 158} break_limit_on_worktime: flag_type; { 159} sliding_break: flag_type; { 160} wizard_mark: char; { 161} min_work_length: duration_type; { 163} selid: ARRAY [1..2] OF char; { 165} block_break_time: duration_type; { 167} break_tot_block: duration_type; { 169} useable: flag_type; { 170} filler: ARRAY [1..11] OF filler_type {= 180} END; placeno_type = ARRAY [1..2] OF char; roomnumber_type = ARRAY [1..4] OF char; mpoint_type = char; jobflag_type = ARRAY [1..3] OF char; dswplace_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} work_day: date_type; { 25} placeno: placeno_type; { 27} climno: char; { 28} mpoint: char; { 29} jobflag: jobflag_type; { 32} roomnumber: roomnumber_type; { 36} district_payment: ARRAY [1..3] OF char; { 39} pay_method: char; { 40} gedingeno: ARRAY [1..2] OF char; { 42} bpu: char; { 43} worker_rank: ARRAY [1..4] OF char; { 47} journey: char; { 48} bonus1: ARRAY [1..3] OF char; { 51} filler1: ARRAY [1..2] OF filler_type; { 53} amount1: long; { 57} bonus2: ARRAY [1..3] OF char; { 60} filler2: filler_type; { 61} amount2: long; { 65} bonus3: ARRAY [1..3] OF char; { 68} filler3: filler_type; { 69} amount3: long; { 73} Info1: ARRAY [1..10] OF char; { 83} Info2: ARRAY [1..10] OF char; { 93} Info3: ARRAY [1..10] OF char; { 103} Info4: ARRAY [1..10] OF char; { 113} Info5: ARRAY [1..10] OF char {= 122} END; fmsglog_rec = RECORD { 1} rec_header: rec_header_type; { 9} date_time_written: date_and_time_type; { 21} millisec: short; { 23} termid: objectid_type; { 31} termno: short; { 33} badgeno: badgeno_type; { 43} emplno: emplno_type; { 53} filler: ARRAY [1..18] OF unsigned_byte; { 71} data: ARRAY [1..40] OF char {= 110} END; fmsglog2_rec = RECORD { 1} rec_header: rec_header_type; { 9} date_time_written: date_and_time_type; { 21} millisec: short; { 23} termid: objectid_type; { 31} termno: short; { 33} badgeno: long_badgeno_type; { 53} emplno: emplno_type; { 63} filler: ARRAY [1..8] OF filler_type; { 71} data: ARRAY [1..100] OF char {= 170} END; help_page_line_rec = ARRAY [1..78] OF char; help_page_rec = RECORD { 1} rec_header: rec_header_type; { 9} chapter: chapter_type; { 19} sequenceno: short; { 21} line_tab: ARRAY [1..18] OF help_page_line_rec {=1424} END; helptable_rec = RECORD { 1} rec_header: rec_header_type; { 9} maskname: objectid_type; { 17} chapter: chapter_type {= 26} END; spiinf_rec = RECORD { 1} rec_header: rec_header_type; { 9} pgmname: packed_10_type; { 19} std_spi: packed_10_type; { 29} subpgm01: packed_10_type; { 39} subpgm02: packed_10_type; { 49} subpgm03: packed_10_type; { 59} subpgm04: packed_10_type; { 69} subpgm05: packed_10_type; { 79} subpgm06: packed_10_type; { 89} subpgm07: packed_10_type; { 99} subpgm08: packed_10_type; { 109} subpgm09: packed_10_type; { 119} subpgm10: packed_10_type; { 129} subpgm11: packed_10_type; { 139} subpgm12: packed_10_type; { 149} subpgm13: packed_10_type; { 159} subpgm14: packed_10_type; { 169} subpgm15: packed_10_type; { 179} subpgm16: packed_10_type; { 189} subpgm17: packed_10_type; { 199} subpgm18: packed_10_type; { 209} subpgm19: packed_10_type; { 219} subpgm20: packed_10_type; { 229} subpgm21: packed_10_type; { 239} subpgm22: packed_10_type; { 249} subpgm23: packed_10_type; { 259} subpgm24: packed_10_type; { 269} subpgm25: packed_10_type; { 279} subpgm26: packed_10_type; { 289} subpgm27: packed_10_type; { 299} subpgm28: packed_10_type; { 309} subpgm29: packed_10_type; { 319} subpgm30: packed_10_type; { 329} subpgm31: packed_10_type; { 339} subpgm32: packed_10_type; { 349} subpgm33: packed_10_type; { 359} subpgm34: packed_10_type; { 369} subpgm35: packed_10_type; { 379} subpgm36: packed_10_type; { 389} subpgm37: packed_10_type; { 399} subpgm38: packed_10_type; { 409} subpgm39: packed_10_type; { 419} subpgm40: packed_10_type; { 429} subpgm41: packed_10_type; { 439} subpgm42: packed_10_type; { 449} subpgm43: packed_10_type; { 459} subpgm44: packed_10_type; { 469} subpgm45: packed_10_type; { 479} subpgm46: packed_10_type; { 489} subpgm47: packed_10_type; { 499} subpgm48: packed_10_type; { 509} subpgm49: packed_10_type; { 519} subpgm50: packed_10_type; { 529} subpgm51: packed_10_type; { 539} subpgm52: packed_10_type; { 549} subpgm53: packed_10_type; { 559} subpgm54: packed_10_type; { 569} subpgm55: packed_10_type; { 579} subpgm56: packed_10_type; { 589} subpgm57: packed_10_type; { 599} subpgm58: packed_10_type; { 609} subpgm59: packed_10_type; { 619} subpgm60: packed_10_type; { 629} subpgm61: packed_10_type; { 639} subpgm62: packed_10_type; { 649} subpgm63: packed_10_type; { 659} subpgm64: packed_10_type; { 669} subpgm65: packed_10_type; { 679} subpgm66: packed_10_type; { 689} subpgm67: packed_10_type; { 699} subpgm68: packed_10_type; { 709} subpgm69: packed_10_type; { 719} subpgm70: packed_10_type; { 729} subpgm71: packed_10_type; { 739} subpgm72: packed_10_type; { 749} subpgm73: packed_10_type; { 759} subpgm74: packed_10_type; { 769} subpgm75: packed_10_type; { 779} subpgm76: packed_10_type; { 789} subpgm77: packed_10_type; { 799} subpgm78: packed_10_type; { 809} subpgm79: packed_10_type; { 819} subpgm80: packed_10_type; { 829} subpgm81: packed_10_type; { 839} subpgm82: packed_10_type; { 849} subpgm83: packed_10_type; { 859} subpgm84: packed_10_type; { 869} subpgm85: packed_10_type; { 879} subpgm86: packed_10_type; { 889} subpgm87: packed_10_type; { 899} subpgm88: packed_10_type; { 909} subpgm89: packed_10_type; { 919} subpgm90: packed_10_type; { 929} subpgm91: packed_10_type; { 939} subpgm92: packed_10_type; { 949} subpgm93: packed_10_type; { 959} subpgm94: packed_10_type; { 969} subpgm95: packed_10_type; { 979} subpgm96: packed_10_type; { 989} subpgm97: packed_10_type; { 999} subpgm98: packed_10_type; { 1009} subpgm99: packed_10_type; { 1019} subpgm100: packed_10_type; { 1029} subpgm101: packed_10_type; { 1039} subpgm102: packed_10_type; { 1049} subpgm103: packed_10_type; { 1059} subpgm104: packed_10_type; { 1069} subpgm105: packed_10_type; { 1079} subpgm106: packed_10_type; { 1089} subpgm107: packed_10_type; { 1099} subpgm108: packed_10_type; { 1109} subpgm109: packed_10_type; { 1119} subpgm110: packed_10_type; { 1129} subpgm111: packed_10_type; { 1139} subpgm112: packed_10_type; { 1149} subpgm113: packed_10_type; { 1159} subpgm114: packed_10_type; { 1169} subpgm115: packed_10_type; { 1179} subpgm116: packed_10_type; { 1189} subpgm117: packed_10_type; { 1199} subpgm118: packed_10_type; { 1209} subpgm119: packed_10_type; { 1219} subpgm120: packed_10_type; { 1229} heapsize_first: long; { 1233} heapsize_max: long; { 1237} stacksize: long; { 1241} cobolcaps: packed_10_type; { 1251} cmdname: packed_10_type; { 1261} originalname: packed_30_type; { 1291} qtcpneeded: flag_type; { 1292} reserved_01: packed_10_type; { 1302} reserved_02: packed_10_type; { 1312} reserved_03: packed_10_type; { 1322} reserved_04: packed_10_type; { 1332} reserved_05: packed_10_type; { 1342} reserved: ARRAY [1..100] OF char {=1441} END; ipcb_type = RECORD { 1} dsabsfcb: fcb_type; { 21} dsadjustfcb: fcb_type; { 41} dscalenfcb: fcb_type; { 61} dscodefcb: fcb_type; { 81} dsdtimefcb: fcb_type; { 101} dsplanfcb: fcb_type; { 121} dsshiftfcb: fcb_type; { 141} dsvempfcb: fcb_type; { 161} dswopenfcb: fcb_type; { 181} dswpatfcb: fcb_type; { 201} dsrulefcb: fcb_type; { 221} logonid: logonid_type; { 229} dsinstrec: dsinst_rec; { 1379} ask_user: boolean; { 1380} codes_only: boolean; { 1381} is_plan: boolean; { 1382} consider_code_priorities: boolean; { 1383} dsabsrec: dsabs_rec; { 1583} dsabsrec_read: boolean; { 1584} dsabsrec_changed: boolean; { 1585} no_new: short; { 1587} no_changed: short; { 1589} dsvemprec: dsaemp_rec; { 2589} version_number: short {=2590} END; chosen_day_type = cit_yesterday..cit_today; chosen_day_set = SET OF chosen_day_type; info_rec_type = (dswopen, dsdtime, dswpat); info_rec_set = SET OF info_rec_type; common_info_pointer = ^common_info_type; common_info_type = RECORD { 1} dswopen_read: boolean; { 2} dsdtime_read: boolean; { 3} dswpat_read: boolean; { 4} write_dswopen: boolean; { 5} org_dswopenrec: dswopen_rec; { 115} dswopenrec: dswopen_rec; { 225} org_dsdtimetrec: dsdtimet_rec; { 725} dsdtimetrec: dsdtimet_rec; { 1225} dswpatrec: dswpat_rec; { 1405} old_no_of_timepairs: short; { 1407} old_no_of_del_timepairs: short; { 1409} current_index: short; { 1411} current_is_coming: boolean; { 1412} alt_wpat_chosen: boolean {=1412} END; common_info_tab = ARRAY [cit_yesterday..cit_today] OF common_info_pointer; vl_dscolsrec_tab_tab_type = RECORD { 1} dscolsrec: dscols_rec; { 137} conv_table_pos: short; { 139} filler: ARRAY [1..2] OF char {= 140} END; vl_dscolsrec_tab_type = RECORD { 1} cols: ARRAY [1..vl_max_cols] OF vl_dscolsrec_tab_tab_type; { 4481} no_cols: short {=4482} END; dsdocno_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} date_from: date_type; { 25} documentno: long; { 29} codeid: codeid_type; { 31} time_from: mod_type; { 33} time_to: mod_type; { 35} income: income_type; { 39} costid: costid_type; { 59} filler: ARRAY [1..2] OF filler_type {= 60} END; info_text_type = ARRAY [1..13] OF char; sapid_type = RECORD { 1} badgeno: badgeno_type; { 11} valid_from: date_type {= 16} END; dssap_rec = RECORD { 1} rec_header: rec_header_type; { 9} sapid: sapid_type; { 25} valid_to: date_type; { 31} info: ARRAY [1..10] OF info_text_type; { 161} filler: ARRAY [1..30] OF char {= 190} END; booklog_sap_rec = RECORD { 1} satza: ARRAY [1..3] OF char; { 4} terid: ARRAY [1..4] OF char; { 8} ldate: ARRAY [1..8] OF char; { 16} ltime: ARRAY [1..6] OF char; { 22} erdat: ARRAY [1..8] OF char; { 30} ertim: ARRAY [1..6] OF char; { 36} zausw: ARRAY [1..8] OF char; { 44} abwgr: ARRAY [1..4] OF char; { 48} exlga: ARRAY [1..4] OF char; { 52} hrazl: ARRAY [1..9] OF char; { 61} zeinh: ARRAY [1..3] OF char; { 64} hrbet: ARRAY [1..9] OF char; { 73} cr: char; { 74} lf: char {= 74} END; lhzzma_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} date: date_type; { 25} worked_time: short; { 27} balance_3: short; { 29} balance_9: short; { 31} filler: ARRAY [1..10] OF char {= 40} END; taris_rec = RECORD { 1} clientno: buffer_type; { 3} termid: objectid_type; { 11} year: packed_2_type; { 13} month: packed_2_type; { 15} day: packed_2_type; { 17} hour: packed_2_type; { 19} minute: packed_2_type; { 21} second: packed_2_type; { 23} badgeno: badgeno_type; { 33} req_code: char; { 34} access_req_code: char; { 35} codeidtype: char; { 36} codeid: codeid_type; { 38} citemno: objectid_type; { 46} amount: packed_11_type; { 57} quantity: packed_6_type; { 63} costid: costid_type; { 83} long_badgeno: long_badgeno_type {= 102} END; dspntoln_rec = RECORD { 1} rec_header: rec_header_type; { 9} physical_key: pntoln_badgeno_type; { 29} logical_key: pntoln_badgeno_type; { 49} key_type: pntoln_key_type; { 50} filler: ARRAY [1..10] OF filler_type {= 59} END; dsqual_rec = RECORD { 1} rec_header: rec_header_type; { 9} qualificationid: qualificationid_type; { 17} qualification_text: long_text_type; { 47} delete_period: short; { 49} qual_refresh: short; { 51} qual_warn: short; { 53} filler: ARRAY [1..18] OF filler_type {= 70} END; dsable_rec = RECORD { 1} rec_header: rec_header_type; { 9} able_key: emplno_qual_type; { 27} first_date: date_type; { 33} last_date: date_type; { 39} no_of_days: short; { 41} no_of_days_corr: short; { 43} filler: ARRAY [1..28] OF char {= 70} END; dsmdlptp_rec = RECORD { 1} rec_header: rec_header_type; { 9} emplno: emplno_type; { 19} badgeno: long_badgeno_type; { 39} code: dsmdlptp_code_type; { 55} filler: ARRAY [1..40] OF filler_type {= 94} END; dsmdsum_rec = RECORD { 1} rec_header: rec_header_type; { 9} code: dsmdsum_code_type; { 281} filler: ARRAY [1..40] OF filler_type {= 320} END; dscostgr_rec = RECORD { 1} rec_header: rec_header_type; { 9} costid_grp: costid_type; { 29} costid_grp_text: long_text_type; { 59} seq_no: short; { 61} costno: costid_type; { 81} projno: costid_type; { 101} cttype: costid_type; { 121} filler: ARRAY [1..20] OF filler_type {= 140} END; dspmstat_rec = RECORD { 1} rec_header: rec_header_type; { 9} wrk_status: wrk_status_type; { 18} status_committed: wrk_status_type; { 27} status_rejected: wrk_status_type; { 36} status_text: long_text_type; { 66} catid: accat_type; { 74} wrk_code: wrk_code_type; { 77} filler: ARRAY [1..24] OF filler_type {= 100} END; {pspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp} {dbconf.inc} mod_objecttype_type = RECORD { 1} moduleid: objectid_type; { 9} objecttype: objecttype_type {= 16} END; dsfconf_rec = RECORD { 1} rec_header: rec_header_type; { 9} fileid: objectid_type; { 17} file_text: long_text_type; { 47} logging_flag: flag_type; { 48} standard_file: flag_type; { 49} maskid: objectid_type; { 57} record_length: short; { 59} fileno: short; { 61} transaction_flag: flag_type; { 62} filler: ARRAY [1..39] OF filler_type {= 100} END; dspconf_rec = RECORD { 1} rec_header: rec_header_type; { 9} programid: objectid_type; { 17} programname: phys_filename_type; { 49} print_file: phys_filename_type; { 81} priority: short; { 83} no_of_parameters: short; { 85} privileged_flag: flag_type; { 86} pconf_text: long_text_type; { 116} filler: ARRAY [1..35] OF unsigned_byte {= 150} END; parameter_type = RECORD { 1} parm_text: ARRAY [1..16] OF char; { 17} parmname: ARRAY [1..16] OF char; { 33} parmtype: char; { 34} form_flag: flag_type; { 35} minimum: short; { 37} maximum: short; { 39} max_length: short; { 41} max_occurrences: short; { 43} required_flag: flag_type; { 44} parm_default: parm_tab_line_type; { 104} conv_table_name: long_text_type; { 134} filler: ARRAY [1..3] OF filler_type {= 136} END; dspconfp_rec = RECORD { 1} rec_header: rec_header_type; { 9} programid: objectid_type; { 17} sequenceno: short; { 19} parameter: parameter_type; { 155} filler: ARRAY [1..26] OF filler_type {= 180} END; dspconft_rec = RECORD { 1} dspconfrec: dspconf_rec; { 151} parameter_tab: ARRAY [1..parm_tab_len] OF parameter_type {=3414} END; dsprconf_rec = RECORD { 1} rec_header: rec_header_type; { 9} printerid: objectid_type; { 17} print_queue_name: print_queue_name_type; { 49} printer_text: long_text_type; { 79} printerfile: phys_filename_type; { 111} filler: ARRAY [1..90] OF char {= 200} END; dstconf_rec = RECORD { 1} rec_header: rec_header_type; { 9} termid: objectid_type; { 17} termno: short; { 19} termtype: objecttype_type; { 27} term_code: char; { 28} term_address: objecttype_type; { 36} phys_termtype: objecttype_type; { 44} download_fileid: objectid_type; { 52} moduleid: objectid_type; { 60} filler3: filler_type; { 61} dist_deduct_grp: short; { 63} termname_in: phys_filename_type; { 95} termname_out: phys_filename_type; { 127} filler1: ARRAY [1..1] OF filler_type; { 128} location: long_text_type; { 158} telno: ARRAY [1..16] OF char; { 174} deptno: deptno_type; { 184} user: long_text_type; { 214} termcat: termcat_type; { 222} perm_download: flag_type; { 223} telno_modem: ARRAY [1..14] OF char; { 237} info_path: objectid_type; { 245} entry_pointname: phys_filename_type; { 277} ignore_time: short; { 279} forms_input: flag_type; { 280} printerid: objectid_type; { 288} costid: costid_type; { 308} exit_allowed: flag_type; { 309} tariffarea: tariffarea_type; { 313} life_check_interval: short; { 315} life_check_timeout: short; { 317} time_sync_interval: short; { 319} from_zoneid: short; { 321} to_zoneid: short; { 323} door_open_time: short; { 325} door_signal_time: short; { 327} log_entry: flag_type; { 328} log_exit: flag_type; { 329} log_rejected: flag_type; { 330} count_entry: flag_type; { 331} count_exit: flag_type; { 332} auto_booking: char; { 333} log_storno_entry: flag_type; { 334} log_storno_exit: flag_type; { 335} pin_code: flag_type; { 336} off_line_mode: char; { 337} entry_from_any_zone: flag_type; { 338} filler2: ARRAY [1..11] OF filler_type; { 349} dist_deduct_come: duration_type; { 351} dist_deduct_go: duration_type; { 353} filler: ARRAY [1..8] OF filler_type {= 360} END; dstmasks_rec = RECORD { 1} rec_header: rec_header_type; { 9} progno: short; { 11} maskname: objectid_type; { 19} masktitle: menue_line_type {= 68} END; {pspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp} {tsvrmsg.inc} ts_msg_header_type = RECORD { 1} byte: buffer_type; { 3} msgno: short; { 5} queue_name: ARRAY [1..1] OF char; { 6} filler: ARRAY [1..1] OF unsigned_byte; { 7} logonid: logonid_type; { 15} sessionid: short; { 17} seqno: long; { 21} reqno: short; { 23} progno: short; { 25} old_key: keydata_type {= 84} END; line_flags_type = RECORD { 1} selected: char; { 2} attribute: char {= 2} END; mask_perm_array = ARRAY [1..maxacmasks] OF acmask_perm_type; mask_accesses_type = RECORD { 1} catid: accat_type; { 9} default_perm: char; { 10} filler: ARRAY [1..3] OF char; { 13} mask: mask_perm_array {= 972} END; selopt_perm_array = ARRAY [1..maxacsel] OF acsel_perm_type; selopt_accesses_type = RECORD { 1} catid: accat_type; { 9} default_perm: char; { 10} selopt_tab: selopt_perm_array {= 153} END; common_type = RECORD { 1} menuename: objectid_type; { 9} termno: short; { 11} termname: phys_filename_type; { 43} own_data_perm: char; { 44} default_perm: char; { 45} dept_accesses: dsacdept_rec; { 605} no_dept_exceptions: short; { 607} no_mask_exceptions: short; { 609} mask_accesses: mask_accesses_type; { 1581} dsusersrec: dsusers_rec; { 5081} logonid_emplno: emplno_type; { 5091} logonid_surname: surname_type; { 5121} logonid_firstname: firstname_type; { 5141} logonid_email: email_address_type; { 5173} emplno: emplno_type; { 5183} date: date_type; { 5189} project_planer: flag_type; { 5190} filler1: ARRAY [1..1] OF char; { 5191} alignment1: ARRAY [1..2] OF char; { 5193} mask_colors: ARRAY [1..20] OF one_masks_colors_type; { 6793} special_colors: special_colors_type; { 6921} color_masks: ARRAY [1..20] OF menue_line_type; { 7921} printer_name: objectid_type; { 7929} logonid: logonid_type; { 7937} deptno: deptno_type; { 7947} employcat: employcat_type; { 7951} no_selopt_exceptions: short; { 7953} selopt_accesses: selopt_accesses_type; { 8106} programname: ARRAY [1..20] OF objectid_type {=8265} END; code_perm_array = ARRAY [1..maxaccodes] OF accode_perm_type; code_accesses_type = RECORD { 1} catid: accat_type; { 9} default_perm: char; { 10} code: code_perm_array {= 201} END; accesses_type = RECORD { 1} logonid: logonid_type; { 9} logonid_emplno: emplno_type; { 19} logonid_surname: surname_type; { 49} logonid_firstname: firstname_type; { 69} logonid_email: email_address_type; { 101} ownid: objectid_type; { 109} own_taskid: short; { 111} own_data_perm: char; { 112} default_perm: char; { 113} time_manager: flag_type; { 114} change_old_data: flag_type; { 115} master_proj_perm: char; { 116} filler1: ARRAY [1..1] OF char; { 117} no_cat_exceptions: short; { 119} cat_accesses: dsaccat_rec; { 299} code_accesses: code_accesses_type; { 500} filler5: ARRAY [1..1] OF char; { 501} no_code_exceptions: short; { 503} comm_accesses: dsaccomm_rec; { 663} no_comm_exceptions: short; { 665} no_cop_exceptions: short; { 667} cop_accesses: dsaccop_rec; { 927} cost_accesses: dsaccost_rec; { 1476} filler2: ARRAY [1..1] OF char; { 1477} no_cost_exceptions: short; { 1479} dept_accesses: dsacdept_rec; { 2039} no_dept_exceptions: short; { 2041} no_inc_exceptions: short; { 2043} inc_accesses: dsacinc_rec; { 2219} filler3: ARRAY [1..2] OF char; { 2221} no_mask_exceptions: short; { 2223} mask_accesses: mask_accesses_type; { 3195} prog_accesses: dsacprog_rec; { 3495} no_prog_exceptions: short; { 3497} no_zone_exceptions: short; { 3499} zone_accesses: dsaczone_rec; { 3739} search_list_acdept: search_list_type; { 3765} search_list_accat: search_list_type; { 3791} search_list_accost: search_list_type; { 3817} search_list_acsel: search_list_type; { 3843} no_selopt_exceptions: short; { 3845} selopt_accesses: selopt_accesses_type; { 3998} filler4: ARRAY [1..1] OF char; { 3999} no_cost_enter_exceptions: short; { 4001} cost_enter_accesses: dsaccost_rec {=4549} END; ts_req_msg_pointer = ^ts_req_msg_type; ts_req_msg_type = RECORD { 1} msg_header: ts_msg_header_type; { 85} indexname: indexname_type; { 117} function_code: ARRAY [1..function_code_len] OF char; { 118} filler: ARRAY [1..15] OF char; { 133} reqdata: buffer_type {= 134} END; ts_copy_pointer = ^ts_copy_type; ts_copy_type = RECORD { 1} old_key: keydata_type; { 61} new_key: keydata_type {= 120} END; ts_print_pointer = ^ts_print_type; ts_print_type = RECORD { 1} byte: buffer_type; { 3} programid: objectid_type; { 11} printerid: objectid_type; { 19} parm_tab: parm_tab_type; { 1459} prstatkey: packed_30_type {=1488} END; prt_zone_type = short; mask_timepair_tab_type = ARRAY [1..64] OF RECORD { 1} timepair: timepair_type; { 15} modify_in: char; { 16} modify_out: char; { 17} time_in_hrec: ARRAY [1..7] OF char; { 24} time_out_hrec: ARRAY [1..7] OF char {=1920} END; ts_cplan_pointer = ^ts_cplan_type; ts_cplan_type = RECORD { 1} calling_client: short; { 3} emplno: emplno_type; { 13} deptno: deptno_type; { 23} costid: costid_type; { 43} select_options: select_options_type; { 59} state: unsigned_byte; { 60} sort_char: char; { 61} indexname: indexname_type; { 93} cur_deptno: deptno_type; { 103} cur_costid: costid_type; { 123} cur_firstname: firstname_type; { 143} cur_surname: surname_type; { 173} cur_emplno: emplno_type; { 183} cur_date: date_type; { 189} cur_date_to: date_type; { 195} cur_time: mod_type; { 197} cur_apptype: short; { 199} last_deptno: deptno_type; { 209} last_costid: costid_type; { 229} emplno_apply_read: emplno_type; { 239} filler: ARRAY [1..2] OF filler_type; { 241} scb: scb_type {= 412} END; ts_next_page_type = ARRAY [1..8] OF unsigned_byte; ts_rpl_msg_pointer = ^ts_rpl_msg_type; ts_rpl_msg_type = RECORD { 1} msg_header: ts_msg_header_type; { 85} error_code: code_type; { 89} sys_error: short; { 91} error_index: short; { 93} error_text: error_text_type; { 153} no_of_lines: short; { 155} more_flag: flag_type; { 156} filler: ARRAY [1..1] OF char; { 157} next_page: ts_next_page_type; { 165} rpldata: buffer_type {= 166} END; ts_rpl_line_pointer = ^ts_rpl_line_type; ts_rpl_line_type = RECORD { 1} formatno: long; { 5} line_flags: line_flags_type; { 7} line_data: buffer_type {= 8} END; ts_cplan_lpt = ^ts_cplan_rpl_line; ts_cplan_rpl_line = RECORD { 1} formatno: long; { 5} line_flags: line_flags_type; { 7} emplno: emplno_type; { 17} name: ARRAY [1..15] OF char; { 32} filler: ARRAY [1..3] OF char; { 35} deptno: deptno_type; { 45} plantype: unsigned_byte; { 46} state: char; { 47} date_from: date_type; { 53} date_to: date_type; { 59} days: short; { 61} time: mod_type; { 63} allowance_days: short; { 65} allowance: allowance_type; { 67} allowance_remainder: allowance_type; { 69} date_applied: date_type; { 75} date_granted: date_type; { 81} email_employee: email_address_type {= 112} END; ts_cplan_rpl_pointer = ^ts_cplan_rpl_type; ts_cplan_rpl_type = RECORD { 1} vacation_claim: balance_type; { 5} old_vacation: balance_type; { 9} vacation_taken: balance_type; { 13} vacation_planned: balance_type; { 17} vacation_to_plan: balance_type; { 21} balance1: balance_type; { 25} balance2: balance_type; { 29} balance3: balance_type; { 33} balance_date: date_type; { 39} indexname: indexname_type; { 71} cur_deptno: deptno_type; { 81} cur_costid: costid_type; { 101} cur_firstname: firstname_type; { 121} cur_surname: surname_type; { 151} cur_emplno: emplno_type; { 161} cur_date: date_type; { 167} cur_date_to: date_type; { 173} cur_apptype: short; { 175} cur_time: mod_type; { 177} email_self: email_address_type; { 209} email_manager: email_address_type; { 241} firstname_manager: firstname_type; { 261} surname_manager: surname_type; { 291} emplno_apply_read: emplno_type; { 301} last_deptno: deptno_type; { 311} last_costid: costid_type; { 331} self_inquiry_flag: flag_type; { 332} manager_flag: flag_type; { 333} read_all_flag: flag_type; { 334} low_vacation: flag_type; { 335} scb: scb_type; { 507} alignment1: ARRAY [1..2] OF char; { 509} line_tab: ARRAY [1..cplan_rpl_ct] OF ts_cplan_rpl_line {=3532} END; ts_cplan_update_pointer = ^ts_cplan_update_type; ts_cplan_update_type = RECORD { 1} old_line: ts_cplan_rpl_line; { 113} new_line: ts_cplan_rpl_line; { 225} vacation_claim: balance_type; { 229} old_vacation: balance_type; { 233} vacation_taken: balance_type; { 237} vacation_planned: balance_type; { 241} vacation_to_plan: balance_type; { 245} balance1: balance_type; { 249} balance2: balance_type; { 253} balance3: balance_type; { 257} balance_date: date_type; { 263} calling_client: short; { 265} self_inquiry_flag: flag_type; { 266} update_apply_type: char; { 267} read_new_flag: flag_type; { 268} low_vacation: flag_type {= 268} END; comm_buffer_conv_pointer = ^comm_buffer_conv_type; comm_buffer_conv_type = RECORD { 1} CASE cb_type: long OF {+ 4} 1: (byte: buffer_type); {+ 4} 2: (buffer: comm_buffer_type); {+ 4} 3: (req: ts_req_msg_type; {+ 138} alignment1: ARRAY [1..2] OF char); {+ 4} 4: (rpl: ts_rpl_msg_type; {+ 170} alignment2: ARRAY [1..2] OF char); {=4100} END; page_pointer = ^page_type; page_type = RECORD { 1} prev_page: page_pointer; { 5} next_page: page_pointer; { 9} page: comm_buffer_conv_type {=4108} END; list_cb_pointer = ^list_cb_type; list_cb_type = RECORD { 1} current_line: short; { 3} selected: short; { 5} no_of_lines: short; { 7} max_nol_in_page: short; { 9} first_page: page_pointer; { 13} last_page: page_pointer; { 17} no_of_top_lines: short; { 19} no_of_bottom_lines: short; { 21} const_page: page_pointer; { 25} use_attributes: boolean; { 26} filler1: ARRAY [1..1] OF char; { 27} selected_col: short; { 29} user_cursor: short; { 31} reserved_cursor: short {= 32} END; {pspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp} {ts_demp-inc} ts_demp_pointer = ^ts_demp_type; ts_demp_type = RECORD { 1} byte: buffer_type; { 3} emplno: emplno_type; { 13} start_emplno: emplno_type; { 23} deptno: deptno_type; { 33} start_deptno: deptno_type; { 43} surname: surname_type; { 73} start_surname: surname_type; { 103} badgeno: long_badgeno_type; { 123} start_badgeno: long_badgeno_type; { 143} costid: costid_type; { 163} start_costid: costid_type; { 183} select_options: select_options_type; { 199} accesscat: acccatid_type; { 203} employcat: employcat_type; { 207} start_employcat: employcat_type; { 211} jobid: jobid_type; { 219} start_jobid: jobid_type; { 227} machineid: jobid_type; { 235} start_machineid: jobid_type; { 243} adjustcat: adjustcat_type; { 247} tariffarea: tariffarea_type; { 251} cycleid: cycleid_type; { 255} cycle_start: short; { 257} variants: char; { 258} fileid: ARRAY [1..10] OF char; { 268} first_page: flag_type; { 269} date_from: date_type; { 275} date_to: date_type; { 281} start_date: date_type; { 287} is_first_variant: flag_type; { 288} employ_flag: flag_type; { 289} visit_flag: flag_type; { 290} femp_flag: flag_type; { 291} company: long_text_type; { 321} carlicid: ARRAY [1..12] OF char; { 333} factory: packed_12_type; { 345} foreign_clientno: buffer_type; { 347} foreign_emplno: emplno_type; { 357} rpoolid: rpoolid_type; { 369} scb: scb_type {= 540} END; ts_demp_download_lpt = ^ts_demp_download_line; ts_demp_download_line = RECORD { 1} emplno: emplno_type; { 11} clientno: buffer_type; { 13} sign: char; { 14} filler: ARRAY [1..3] OF char {= 16} END; ts_demp_download_pointer = ^ts_demp_download_type; ts_demp_download_type = RECORD { 1} no_of_lines: short; { 3} no_of_ok_lines: short; { 5} more_flag: flag_type; { 6} first_call: flag_type; { 7} filler: ARRAY [1..2] OF char; { 9} line_tab: ARRAY [1..demp_download_ct] OF ts_demp_download_line {=3608} END; ts_demp_lpt = ^ts_demp_rpl_line; ts_demp_rpl_line = RECORD { 1} formatno: long; { 5} line: line_flags_type; { 7} emplno: emplno_type; { 17} pseudo_date: date_type; { 23} deptno: deptno_type; { 33} line_data: ARRAY [1..75] OF char; { 108} sfc_participant: flag_type; { 109} v_valid_from: date_type; { 115} employee: ARRAY [1..34] OF char; { 149} clientno: buffer_type; { 151} sign: char; { 152} position: signed_byte {= 152} END; ts_demp_rpl_pointer = ^ts_demp_rpl_type; ts_demp_rpl_type = RECORD { 1} byte: buffer_type; { 3} last_emplno: emplno_type; { 13} last_deptno: deptno_type; { 23} last_surname: surname_type; { 53} last_badgeno: long_badgeno_type; { 73} last_costid: costid_type; { 93} last_employcat: employcat_type; { 97} last_machineid: jobid_type; { 105} last_jobid: jobid_type; { 113} indexname: indexname_type; { 145} scb: scb_type; { 317} next_date: date_type; { 323} is_first_variant: flag_type; { 324} title1: vl_index_output_line_type; { 399} title2: vl_index_output_line_type; { 474} filler: ARRAY [1..9] OF char; { 483} cols_dinfo_tab: vl_cols_dinfo_type; { 741} vl_rec_type_tab: vl_rec_type_tab_type; { 805} line_tab: ARRAY [1..demp_rpl_ct] OF ts_demp_rpl_line {=3540} END; {pspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp} get_line_pointer_type = FUNCTION (page: page_pointer; ind: short): ts_rpl_line_pointer; copy_line_to_page_type = PROCEDURE (line: ts_rpl_line_pointer; page: page_pointer; ind: short); VAR {pspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp} demp_list : list_cb_type; message_code : code_type; FUNCTION get_demp_line (page: page_pointer; line: short): ts_rpl_line_pointer; {$I pageutlsH.inc} IMPLEMENTATION CONST versionno = 230; { *********************** init_list *************************************** } PROCEDURE init_list (VAR list: list_cb_type; max_nol: short) ; { initialisiert 'list_cb_type' } BEGIN WITH list DO BEGIN current_line := 1; no_of_lines := 0; first_page := nil; last_page := nil; max_nol_in_page := max_nol; no_of_top_lines := 0; no_of_bottom_lines := 0; const_page := nil; END; END; { init_list } { *********************** dispose_list ************************************ } PROCEDURE dispose_list (VAR list: list_cb_type) ; { gibt den Speicher der Liste frei und initialisiert 'list_cb_type' } VAR page_temp: page_pointer; BEGIN WITH list DO BEGIN WHILE first_page <> nil DO BEGIN page_temp := first_page; first_page := first_page^.next_page; DISPOSE (page_temp); END; WHILE const_page <> nil DO BEGIN page_temp := const_page; const_page := const_page^.next_page; DISPOSE (page_temp); END; init_list (list, max_nol_in_page); END; END; { dispose_list } { *********************** copy_list *************************************** } PROCEDURE copy_list (source: list_cb_type; VAR dest: list_cb_type) ; { erstellt eine identische Kopie der Liste source } VAR p, source_ptr, dest_ptr: page_pointer; BEGIN dispose_list (dest); dest := source; dest.first_page := nil; dest.last_page := nil; dest.const_page := nil; source_ptr := source.first_page; dest_ptr := nil; WHILE source_ptr <> nil DO BEGIN new (p); IF p = nil THEN EXIT(**); { memory allocation failure } p^.prev_page := dest_ptr; p^.next_page := nil; p^.page := source_ptr^.page; IF dest_ptr = nil THEN dest.first_page := p ELSE dest_ptr^.next_page := p; dest.last_page := p; dest_ptr := p; source_ptr := source_ptr^.next_page; END; source_ptr := source.const_page; dest_ptr := nil; WHILE source_ptr <> nil DO BEGIN new (p); IF p = nil THEN EXIT(**); { memory allocation failure } p^.prev_page := dest_ptr; p^.next_page := nil; p^.page := source_ptr^.page; IF dest_ptr = nil THEN dest.const_page := p ELSE dest_ptr^.next_page := p; dest_ptr := p; source_ptr := source_ptr^.next_page; END; END; { copy_list } { ************************ get_line *************************************** } PROCEDURE get_line (list: list_cb_type; line: short; VAR page: page_pointer; VAR ind: short) ; { setzt page/ind auf Zeile Nummer 'line' (fortlaufend) } BEGIN page := list.first_page; ind := line; IF line < 1 THEN page := nil; WHILE page <> nil DO BEGIN IF ind <= page^.page.rpl.no_of_lines THEN EXIT(**); ind := ind - page^.page.rpl.no_of_lines; page := page^.next_page; END; END; { get_line } { ************************ get_const_line ********************************* } PROCEDURE get_const_line (list: list_cb_type; line: short; VAR page: page_pointer; VAR ind: short) ; { setzt page/ind auf Zeile Nummer 'line' (fortlaufend) in den festen Zeilen } BEGIN page := list.const_page; ind := line; IF line < 1 THEN page := nil; WHILE page <> nil DO BEGIN IF ind <= page^.page.rpl.no_of_lines THEN EXIT(**); ind := ind - page^.page.rpl.no_of_lines; page := page^.next_page; END; END; { get_const_line } { ************************ get_next_line ********************************** } PROCEDURE get_next_line (list: list_cb_type; VAR page: page_pointer; VAR ind: short) ; { holt den Nachfolger von page/ind } { Parameter 'list' obsolete } VAR cur_last_line: short; BEGIN IF page = nil THEN EXIT(**); ind := ind + 1; cur_last_line := page^.page.rpl.no_of_lines; WHILE (page <> nil) AND (ind > cur_last_line) DO BEGIN page := page^.next_page; ind := 1; IF page <> nil THEN cur_last_line := page^.page.rpl.no_of_lines; END; END; { get_next_line } { ************************ get_prev_line ********************************** } PROCEDURE get_prev_line (list: list_cb_type; VAR page: page_pointer; VAR ind: short) ; { holt den Vorgaenger von page/ind } { Parameter 'list' obsolete } BEGIN IF page = nil THEN EXIT(**); ind := ind - 1; WHILE (page <> nil) AND (ind < 1) DO BEGIN page := page^.prev_page; IF page <> nil THEN ind := page^.page.rpl.no_of_lines; END; END; { get_prev_line } { ************************ get_next_visible_line ************************** } PROCEDURE get_next_visible_line (list: list_cb_type; VAR page: page_pointer; VAR ind: short; VAR line: short; get_line_pointer: get_line_pointer_type) ; { holt den naechsten sichtbaren Nachfolger von page/ind; erhoeht 'line' um die bis dahin ueberlesenen versteckten Zeilen } VAR attribute: char; selection: char; BEGIN REPEAT get_next_line (list, page, ind); get_line_flags (page, ind, selection, attribute, get_line_pointer); IF attribute = attribute_hide THEN line := line + 1; UNTIL (page = nil) OR (attribute <> attribute_hide); END; { get_next_visible_line } { ************************ get_first_visible_line ************************** } PROCEDURE get_first_visible_line (list: list_cb_type; VAR cur: short; VAR page: page_pointer; VAR ind: short; VAR line: short; get_line_pointer: get_line_pointer_type); VAR attribute: char; selection: char; hidden: short; BEGIN hidden := 0; get_line (list, cur, page, ind); get_line_flags (page, ind, selection, attribute, get_line_pointer); IF attribute = attribute_hide THEN BEGIN hidden := 1; get_next_visible_line (list, page, ind, hidden, get_line_pointer); END; line := line + hidden; cur := cur + hidden; END; { ************************ get_prev_visible_line ************************** } PROCEDURE get_prev_visible_line (list: list_cb_type; VAR page: page_pointer; VAR ind: short; VAR line: short; get_line_pointer: get_line_pointer_type) ; { holt den naechsten sichtbaren Vorgaenger von page/ind; erniedrigt 'line' um die bis dahin ueberlesenen versteckten Zeilen } VAR attribute: char; selection: char; BEGIN REPEAT get_prev_line (list, page, ind); get_line_flags (page, ind, selection, attribute, get_line_pointer); IF attribute = attribute_hide THEN line := line - 1; UNTIL (page = nil) OR (attribute <> attribute_hide); END; { get_prev_visible_line } { ************************* append_page *********************************** } PROCEDURE append_page (VAR list: list_cb_type; buffer_ptr: ts_rpl_msg_pointer; to_page: page_pointer) ; { haengt die Reply 'buffer_ptr' als Seite an 'to_page' an } VAR p: page_pointer; BEGIN NEW (p); IF p = nil THEN EXIT(**); { memory allocation failure } MOVE (buffer_ptr^.msg_header.byte[1], p^.page.byte[1], comm_buffer_len); list.no_of_lines := list.no_of_lines + buffer_ptr^.no_of_lines; IF to_page = nil THEN BEGIN p^.prev_page := nil; p^.next_page := nil; END ELSE BEGIN p^.prev_page := to_page; p^.next_page := to_page^.next_page; to_page^.next_page := p; IF p^.next_page <> nil THEN p^.next_page^.prev_page := p; END; IF list.first_page = nil THEN BEGIN list.first_page := p; list.last_page := p; END ELSE IF list.last_page = to_page THEN list.last_page := p; END; { append_page } { ************************* append_const_page ***************************** } PROCEDURE append_const_page (VAR list: list_cb_type; buffer_ptr: ts_rpl_msg_pointer; to_page: page_pointer) ; { haengt die Reply 'buffer_ptr' als Seite an 'to_page' der festen Zeilen an } VAR p: page_pointer; BEGIN NEW (p); IF p = nil THEN EXIT(**); { memory allocation failure } MOVE (buffer_ptr^.msg_header.byte[1], p^.page.byte[1], comm_buffer_len); list.no_of_bottom_lines := list.no_of_bottom_lines + buffer_ptr^.no_of_lines; IF to_page = nil THEN BEGIN p^.prev_page := nil; p^.next_page := nil; END ELSE BEGIN p^.prev_page := to_page; p^.next_page := to_page^.next_page; to_page^.next_page := p; IF p^.next_page <> nil THEN p^.next_page^.prev_page := p; END; IF list.const_page = nil THEN BEGIN list.const_page := p; list.const_page := p; END; END; { append_const_page } { ************************* create_const_page ***************************** } PROCEDURE create_const_page (VAR list: list_cb_type; notl, nobl: short; buffer_ptr: ts_rpl_msg_pointer) ; { erzeugt die Seite fuer Anzeige konstanter Zeilen in der display_logic; die Seite wird mit 'notl' (no_of_top_lines), 'nobl' (no_of_bottom_lines) und 'buffer_ptr' initialisiert; eine Aufruf mit 0,0,nil ist erlaubt } BEGIN { erzeuge konstante Seite } IF list.const_page <> nil THEN EXIT(**); NEW (list.const_page); IF list.const_page = nil THEN EXIT(**); { memory allocation failure } { fuelle Seite } IF buffer_ptr <> nil THEN MOVE (buffer_ptr^.msg_header.byte[1], list.const_page^.page.byte[1], comm_buffer_len); list.const_page^.prev_page := nil; list.const_page^.next_page := nil; list.no_of_top_lines := notl; list.no_of_bottom_lines := nobl; END; { create_const_page } { ************************* more ****************************************** } FUNCTION more (list: list_cb_type): boolean ; { gibt das more_flag der Liste zurueck } BEGIN IF list.last_page = nil THEN more := false ELSE more := (list.last_page^.page.rpl.more_flag = flag_on); END; { more } { ************************* nol_in_page *********************************** } FUNCTION nol_in_page (page: page_pointer): short ; { no of lines in page } BEGIN IF page = nil THEN nol_in_page := 0 ELSE nol_in_page := page^.page.rpl.no_of_lines; END; { nol_in_page } { ************************* set_nol_in_list ******************************* } PROCEDURE set_nol_in_page (page: page_pointer; nol: short) ; { Setze 'no of lines in page' auf einen neuen Wert } BEGIN IF page <> nil THEN page^.page.rpl.no_of_lines := nol; END; { set_nol_in_page } { ************************* change_line *********************************** } PROCEDURE change_line (VAR list: list_cb_type; mode: char; lpt: ts_rpl_line_pointer; dest_page: page_pointer; dest_ind: short; get_line_pointer: get_line_pointer_type; copy_line_to_page: copy_line_to_page_type ) ; { Kopieren, Loeschen und Einfuegen einer Zeile in eine Seite: Kopieren : kopiere lpt nach dest change_line (list, change_copy, $ADDR (line), dest_page, dest_ind); Loeschen : loesche dest change_line (list, change_delete, nil, dest_page, dest_ind); Einfuegen: fuege lpt vor dest ein change_line (list, change_insert, $ADDR (line), dest_page, dest_ind); } VAR i: short; nol : short; buffer: comm_buffer_conv_type; BEGIN CASE mode OF change_delete: { loescht eine Zeile } BEGIN FOR i := dest_ind + 1 TO nol_in_page (dest_page) DO copy_line_to_page (get_line_pointer (dest_page, i), dest_page, i - 1); list.no_of_lines := list.no_of_lines - 1; set_nol_in_page (dest_page, nol_in_page (dest_page) - 1); END; change_insert: { fuegt eine Zeile vor 'dest' ein; falls die Zeile auf der geforderten Seite keinen Platz hat, wird eine neue Seite eingefuegt } BEGIN IF dest_page = nil THEN IF (list.first_page <> nil) AND (list.no_of_lines = 0) THEN BEGIN { Liste enthaelt nur leere Seiten } dest_page := list.first_page; dest_ind := 1; END ELSE BEGIN { die angesprochene Seite existiert nicht: fuege leere Seite an; falls bereits eine existiert, dann verwende diese bereits initialisierte Seite } IF list.first_page <> nil THEN buffer.buffer := list.first_page^.page.buffer; buffer.rpl.no_of_lines := 0; buffer.rpl.more_flag := flag_off; append_page (list, @buffer.rpl , list.last_page); dest_page := list.last_page; dest_ind := 1; IF dest_page = nil THEN EXIT(**); END; IF nol_in_page (dest_page) = list.max_nol_in_page THEN { es musz eine neue Seite eingefuegt werden } BEGIN nol := list.no_of_lines; { merke Anzahl Zeilen } { dupliziere dest_page und fuege sie hinter dest_page ein } append_page (list, @dest_page^.page.rpl , dest_page); { ueberschreibe dest_ind mit neuer Zeile } copy_line_to_page (lpt, dest_page, dest_ind); { loesche alle weiteren Zeilen in dieser Seite } set_nol_in_page (dest_page, dest_ind); { loesche die Zeilen 1 bis dest_ind - 1 in zweiter Seite } FOR i := 1 TO dest_ind - 1 DO change_line (list, change_delete, nil, dest_page^.next_page, 1, get_line_pointer, copy_line_to_page); list.no_of_lines := nol + 1; { restauriere Anzahl Zeilen } END ELSE BEGIN { verschiebe nachfolgende Zeilen } FOR i := nol_in_page (dest_page) DOWNTO dest_ind DO copy_line_to_page (get_line_pointer (dest_page, i), dest_page, i + 1); { kopiere Zeile in freigewordenen Platz } copy_line_to_page (lpt, dest_page, dest_ind); { erhoehe Anzahl Zeilen } list.no_of_lines := list.no_of_lines + 1; set_nol_in_page (dest_page, nol_in_page (dest_page) + 1); END; END; change_copy: { kopiert die Zeile lpt nach dest } copy_line_to_page (lpt, dest_page, dest_ind); ELSE(**) END; END; { change_line } { ************************ get_last_const_page **************************** } FUNCTION get_last_const_page (list: list_cb_type): page_pointer; { holt letzte Seite in den 'festen' Zeilen } VAR page: page_pointer; BEGIN page := list.const_page; IF page <> nil THEN WHILE page^.next_page <> nil DO page := page^.next_page; get_last_const_page := page; END; { get_last_const_page } { ************************* change_const_line ***************************** } PROCEDURE change_const_line (VAR list: list_cb_type; mode: char; lpt: ts_rpl_line_pointer; dest_page: page_pointer; dest_ind: short; get_line_pointer: get_line_pointer_type; copy_line_to_page: copy_line_to_page_type ) ; { Version fuer 'feste Zeilen' } { Kopieren, Loeschen und Einfuegen einer Zeile in eine Seite: Kopieren : kopiere lpt nach dest change_line (list, change_copy, $ADDR (line), dest_page, dest_ind); Loeschen : loesche dest change_line (list, change_delete, nil, dest_page, dest_ind); Einfuegen: fuege lpt vor dest ein change_line (list, change_insert, $ADDR (line), dest_page, dest_ind); } VAR i: short; nol : short; buffer: comm_buffer_conv_type; BEGIN CASE mode OF change_delete: { loescht eine Zeile } BEGIN FOR i := dest_ind + 1 TO nol_in_page (dest_page) DO copy_line_to_page (get_line_pointer (dest_page, i), dest_page, i - 1); list.no_of_bottom_lines := list.no_of_bottom_lines - 1; set_nol_in_page (dest_page, nol_in_page (dest_page) - 1); END; change_insert: { fuegt eine Zeile vor 'dest' ein; falls die Zeile auf der geforderten Seite keinen Platz hat, wird eine neue Seite eingefuegt } BEGIN IF dest_page = nil THEN IF (list.const_page <> nil) AND (list.no_of_bottom_lines = 0) THEN BEGIN { Liste enthaelt nur leere Seiten } dest_page := list.const_page; dest_ind := 1; END ELSE BEGIN { die angesprochene Seite existiert nicht: fuege leere Seite an; falls bereits eine existiert, dann verwende diese bereits initialisierte Seite } IF list.const_page <> nil THEN buffer.buffer := list.const_page^.page.buffer; buffer.rpl.no_of_lines := 0; buffer.rpl.more_flag := flag_off; append_const_page (list, @buffer.rpl , get_last_const_page (list)); dest_page := get_last_const_page (list); dest_ind := 1; IF dest_page = nil THEN EXIT(**); END; IF nol_in_page (dest_page) = list.max_nol_in_page THEN { es musz eine neue Seite eingefuegt werden } BEGIN nol := list.no_of_bottom_lines; { merke Anzahl Zeilen } { dupliziere dest_page und fuege sie hinter dest_page ein } append_const_page (list, @dest_page^.page.rpl , dest_page); { ueberschreibe dest_ind mit neuer Zeile } copy_line_to_page (lpt, dest_page, dest_ind); { loesche alle weiteren Zeilen in dieser Seite } set_nol_in_page (dest_page, dest_ind); { loesche die Zeilen 1 bis dest_ind - 1 in zweiter Seite } FOR i := 1 TO dest_ind - 1 DO change_const_line (list, change_delete, nil, dest_page^.next_page, 1, get_line_pointer, copy_line_to_page); list.no_of_bottom_lines := nol + 1; { restauriere Anzahl Zeilen } END ELSE BEGIN { verschiebe nachfolgende Zeilen } FOR i := nol_in_page (dest_page) DOWNTO dest_ind DO copy_line_to_page (get_line_pointer (dest_page, i), dest_page, i + 1); { kopiere Zeile in freigewordenen Platz } copy_line_to_page (lpt, dest_page, dest_ind); { erhoehe Anzahl Zeilen } list.no_of_bottom_lines := list.no_of_bottom_lines + 1; set_nol_in_page (dest_page, nol_in_page (dest_page) + 1); END; END; change_copy: { kopiert die Zeile lpt nach dest } copy_line_to_page (lpt, dest_page, dest_ind); ELSE(**) END; END; { change_const_line } { ************************* set_line_flags ******************************** } PROCEDURE set_line_flags (page: page_pointer; ind: short; select, attribute: char; get_line_pointer: get_line_pointer_type) ; { Setze Zeilenattribute der Zeile page/ind auf select/attribute: select = ' ' keine Aenderung select = invert_flag, dann invertiere 'selected' attribute = ' ' keine Aenderung } VAR lpt: ts_rpl_line_pointer; BEGIN lpt := get_line_pointer (page, ind); IF lpt <> nil THEN BEGIN IF select <> ' ' THEN IF select = invert_flag THEN IF (lpt^.line_flags.selected = flag_on) OR (lpt^.line_flags.selected = action_select) OR (lpt^.line_flags.selected = chr(1)) THEN lpt^.line_flags.selected := flag_off ELSE lpt^.line_flags.selected := flag_on ELSE lpt^.line_flags.selected := select; IF attribute <> ' ' THEN lpt^.line_flags.attribute := attribute; END; END; { set_line_flags } { ************************* get_line_flags ******************************** } PROCEDURE get_line_flags (page: page_pointer; ind: short; VAR select, attribute: char; get_line_pointer: get_line_pointer_type) ; { holt die Attribute der Zeile } VAR lpt: ts_rpl_line_pointer; BEGIN lpt := get_line_pointer (page, ind); IF lpt = nil THEN BEGIN select := flag_off; attribute := attribute_normal; END ELSE BEGIN select := lpt^.line_flags.selected; attribute := lpt^.line_flags.attribute; END; END; { get_line_flags } { ************************* is_selected *********************************** } FUNCTION is_selected (list: list_cb_type; page: page_pointer; ind: short; get_line_pointer: get_line_pointer_type): boolean ; { prueft auf Selektion einer Zeile: eine Zeile ist selektiert, wenn 'line_flags.selected' = flag_on oder action_selected oder chr(1) oder 'liste.selected' auf dieser Zeile steht } VAR selpage : page_pointer; selind : short; selected : char; attribute: char; BEGIN get_line (list, list.selected, selpage, selind); IF (page = nil) OR (selpage = nil) THEN BEGIN is_selected := false; EXIT(**) END; IF (page = selpage) AND (ind = selind) THEN is_selected := true ELSE BEGIN get_line_flags (page, ind, selected, attribute, get_line_pointer); is_selected := (selected = flag_on) OR (selected = action_select) OR (selected = chr(1)); END; END; { is_selected } { ************************* set_list_line_flags *************************** } PROCEDURE set_list_line_flags (VAR list: list_cb_type; select, attribute: char; get_line_pointer: get_line_pointer_type ) ; { Setze alle Zeilenattribute der Liste auf die neuen Werte (siehe 'set_line_flags') } VAR page: page_pointer; ind : short; BEGIN page := list.first_page; ind := 1; WHILE page <> nil DO BEGIN set_line_flags (page, ind, select, attribute, get_line_pointer); get_next_line (list, page, ind); END; END; { set_list_line_flags } { ************************* get_next_selected_line ************************ } PROCEDURE get_next_selected_line (VAR list: list_cb_type; VAR page: page_pointer; VAR ind: short; get_line_pointer: get_line_pointer_type) ; { holt den naechsten selektierten Nachfolger von page/ind } VAR selected : char; attribute: char; BEGIN REPEAT get_next_line (list, page, ind); list.selected := list.selected + 1; IF page = nil THEN EXIT(**); get_line_flags (page, ind, selected, attribute, get_line_pointer); IF (selected = flag_on) OR (selected = action_select) OR (selected = chr(1)) THEN EXIT(**); UNTIL false; END; { get_next_selected_line } { ************************* get_prev_selected_line ************************ } PROCEDURE get_prev_selected_line (VAR list: list_cb_type; VAR page: page_pointer; VAR ind: short; get_line_pointer: get_line_pointer_type) ; { holt den naechsten selektierten Vorgaenger von page/ind } VAR selected : char; attribute: char; BEGIN REPEAT get_prev_line (list, page, ind); list.selected := list.selected - 1; IF page = nil THEN EXIT(**); get_line_flags (page, ind, selected, attribute, get_line_pointer); IF (selected = flag_on) OR (selected = action_select) OR (selected = chr(1)) THEN EXIT(**); UNTIL false; END; { get_prev_selected_line } { ************************* get_first_selected_line_m *********************** } PROCEDURE get_first_selected_line_m (VAR list: list_cb_type; VAR page: page_pointer; VAR ind: short; get_line_pointer: get_line_pointer_type) ; { holt die erste selektierte Zeile der Liste } VAR selected : char; attribute: char; BEGIN list.selected := 1; get_line (list, 1, page, ind); get_line_flags (page, ind, selected, attribute, get_line_pointer); IF (selected = flag_on) OR (selected = action_select) OR (selected = chr(1)) THEN EXIT(**); get_next_selected_line (list, page, ind, get_line_pointer); END; { get_first_selected_line_m } { ************************* get_first_selected_line ************************ } PROCEDURE get_first_selected_line (VAR list: list_cb_type; VAR page: page_pointer; VAR ind: short; get_line_pointer: get_line_pointer_type) ; { holt die erste selektierte Zeile der Liste } BEGIN get_line (list, 1, page, ind); IF page = nil THEN EXIT(**); IF is_selected (list, page, ind, get_line_pointer) THEN EXIT(**); list.selected := 1; get_next_selected_line (list, page, ind, get_line_pointer); END; { get_first_selected_line } { ************************* get_selected_emplno *************************** } CONST cur_emplno = 1; next_emplno = 2; prev_emplno = 3; TYPE {hie war $I tsdemp.inc} conv_demp_type = RECORD CASE ptr_type: integer OF 1: (buffer_ptr: buffer_pointer); 2: (req_ptr : ts_demp_pointer); 3: (rpl_ptr : ts_demp_rpl_pointer); END; lpt_demp_ptr_type = RECORD CASE ptr_type: integer OF 1: (lpt : ts_demp_lpt); 2: (rpl_lpt : ts_rpl_line_pointer); END; FUNCTION get_demp_line (page: page_pointer; line: short): ts_rpl_line_pointer; VAR c1: conv_demp_type; c2: lpt_demp_ptr_type; BEGIN get_demp_line := nil; IF (line < 1) OR (line > demp_rpl_ct) THEN page := nil; IF page = nil THEN EXIT(**); c1.buffer_ptr := @page^.page.rpl.rpldata ; c2.lpt := @c1.rpl_ptr^.line_tab(.line.) ; get_demp_line := c2.rpl_lpt; END; { get_demp_line } FUNCTION get_selected_emplno (which_emplno: short): string; VAR c1: lpt_demp_ptr_type; page: page_pointer; line: short; old_selected : short; BEGIN get_selected_emplno := ''; old_selected := demp_list.selected; get_line (demp_list, demp_list.selected, page, line); IF page = nil THEN BEGIN message_code := '6601'; EXIT(**) END; IF which_emplno = next_emplno THEN get_next_selected_line (demp_list, page, line, get_demp_line); IF which_emplno = prev_emplno THEN get_prev_selected_line (demp_list, page, line, get_demp_line); IF page = nil THEN BEGIN demp_list.selected := old_selected; IF which_emplno = prev_emplno THEN message_code := '6602'; IF which_emplno = next_emplno THEN message_code := '6603'; END ELSE BEGIN c1.rpl_lpt := get_demp_line (page, line); {pspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp} { get_selected_emplno := STRI (@c1.lpt^.emplno, SizeOf (c1.lpt^.emplno)) ;} END; END; { get_selected_emplno } { ************************* get_next_selected_emplno *********************** } FUNCTION get_next_selected_emplno : string ; BEGIN get_next_selected_emplno := get_selected_emplno (next_emplno); END; { get_next_selected_emplno } { ************************* get_prev_selected_emplno *********************** } FUNCTION get_prev_selected_emplno : string ; BEGIN get_prev_selected_emplno := get_selected_emplno (prev_emplno); END; { get_prev_selected_emplno } BEGIN END; PROCEDURE timestamp_to_date (at_timestamp : long; VAR date: date_type) ; { converts a number of days (where 1.1.1901 is 1) into a date } LABEL 1; { number of days passed, when the i+1-st month starts } (* CONST month_days : ARRAY [0..11] of short = (0,31,59,90,120,151,181,212,243,273,304,334); *) VAR i, no_of_leap_years: short; BEGIN IF at_timestamp <= 0 THEN WITH date DO BEGIN yy := 0; mo := 0; dd := 0; EXIT(**) END; date.yy := (at_timestamp DIV 365) + 1901; no_of_leap_years := (date.yy - 1901) DIV 4; IF no_of_leap_years >= (at_timestamp MOD 365) THEN BEGIN date.yy := date.yy - 1; at_timestamp := 365 - (no_of_leap_years - (at_timestamp MOD 365)); IF ((date.yy MOD 4) = 0) THEN at_timestamp := at_timestamp + 1; {leap year is not yet completed, but one day has already been subtracted before} END ELSE at_timestamp := (at_timestamp MOD 365) - no_of_leap_years; IF ((date.yy MOD 4) = 0) AND (at_timestamp = 60) THEN BEGIN date.mo := 2; date.dd := 29; EXIT(**) END ELSE BEGIN FOR i := 1 TO 11 DO IF at_timestamp <= month_days[i] THEN BEGIN date.mo := i; date.dd := at_timestamp - month_days[i-1]; GOTO 1; END; date.mo := 12; date.dd := at_timestamp - month_days[11]; END; 1: IF ((date.yy MOD 4) = 0) AND (date.mo > 2) THEN {subtract one day} IF date.dd = 1 THEN BEGIN date.mo := date.mo - 1; {last day of date.mo} date.dd := month_days[date.mo] - month_days[date.mo - 1]; END ELSE date.dd := date.dd - 1; END; { timestamp_to_date } (* end of location *) BEGIN END.