CREATE"Excel.Application":U h_excel_application NO-ERROR.
h_workbook = h_excel_application:Workbooks:Add().
h_worksheet = h_excel_application:Sheets:Item(1).
CREATEQUERY h_qh.
h_qh:SET-BUFFERS(p_th:DEFAULT-BUFFER-HANDLE).
h_qh:QUERY-PREPARE("FOR EACH ":U + p_th:NAME).
h_bh = h_qh:GET-BUFFER-HANDLE(1).
h_qh:QUERY-OPEN().
DO h_ct =1TO p_br:NUM-COLUMNS:
h_tmp = GetExcelColumnLetter(h_ct)+"1":U.
h_ch = p_br:GET-BROWSE-COLUMN(h_ct).
h_worksheet:Range(h_tmp):Value=REPLACE(TRIM(h_ch:LABEL),"!":U," ":U).
h_worksheet:Columns(GetExcelColumnLetter(h_ct)):ColumnWidth = h_ch:WIDTH-CHARS.
END.
h_qh:GET-FIRST().
h_row =1.
DO WHILE h_bh:AVAIL:
h_row = h_row +1.
fld_blk:
DO h_ct =1TO h_bh:NUM-FIELDS:
DO h_ct2 =1 TO NUM-ENTRIES(p_skip_list):
h_skip =INT(ENTRY(h_ct2,p_skip_list))NO-ERROR.
IF h_skip = h_ct
THENNEXT fld_blk.
END.
h_bf = h_bh:BUFFER-FIELD(h_ct).
h_tmp = GetExcelColumnLetter(h_ct)+STRING(h_row).
IF h_bf:DATA-TYPE="CHARACTER":U OR h_bf:DATA-TYPE="LOGICAL":U
THEN h_worksheet:Range(h_tmp):Value="'":U + h_bf:BUFFER-VALUENO-ERROR.
ELSE h_worksheet:Range(h_tmp):Value= h_bf:BUFFER-VALUENO-ERROR.
END.
h_qh:GET-NEXT().
END.