提供树表报和Visio 展示两种方式。基于标准程序RHSTRU00改造。
*&-----------------------------------------------------------------*& Report ZHR_REP_01
*&------------------------------------------------------------------*& Program Name : ZHR_REP_01
*& Description : XX组织结构图
*& Author :
*& Date :
*& Tcode :
*& Note : Based on standard report RHSTRU00. Calls MS
Visio object.
*&------------------------------------------------------------------REPORT ZHR_REP_01.
TYPE-POOLS: icon.
TABLES: objec, t77eo, gdstr, gdset, pdstr.
TYPES: BEGIN OF t_node ,
id LIKE struc-seqnr,
parent LIKE struc-seqnr,
tree_id TYPE lvc_nkey,
text(25),
text4(40),
short(14),
otype(2),
realo TYPE realo,
istat(1),
begda(10),
endda(10),
vistat(1),
vbegda(10),
vendda(10),
prozt(8),
objid LIKE objec-objid,
END OF t_node.
TYPES: BEGIN OF type_trec,
key TYPE lvc_nkey,
id LIKE struc-seqnr,
END OF type_trec.
TYPES: BEGIN OF parent_stack_line,
level TYPE struc-level,
id LIKE struc-seqnr,
END OF parent_stack_line.
*----------------------------------------------------------------------*
* error handling (for internal errors)
*----------------------------------------------------------------------*
* type for ABAP callstack
TYPES: BEGIN OF t_s_abap_callstack,
mainprogram LIKE sy-repid,
include LIKE sy-repid,
line TYPE i,
eventtype LIKE abdbg-leventtype,
event LIKE abdbg-levent,
flag_system,
END OF t_s_abap_callstack.
* variable for ABAP callstack
DATA: g_callstack TYPE STANDARD TABLE OF t_s_abap_callstack, g_callstack_wa TYPE t_s_abap_callstack.
* macro should never be called ;-)
DEFINE internal_error. "&1 action that lead to error
* get callstack
call 'ABAP_CALLSTACK' id 'DEPTH' field 99
id 'CALLSTACK' field g_callstack.
* get current form/event
read table g_callstack into g_callstack_wa index 1.
message i001(aq_ad_hoc) with g_callstack_wa-event
&1. "action.
END-OF-DEFINITION.
DATA: it_node TYPE STANDARD TABLE OF t_node,
it_tab TYPE STANDARD TABLE OF t_node,
wa_node TYPE t_node.
DATA: BEGIN OF waobjec,
stext LIKE objec-stext,
short LIKE objec-short,
realo LIKE objec-realo,
plvar LIKE objec-plvar,
otype LIKE objec-otype,
objid LIKE objec-objid,
begda LIKE objec-begda,
endda LIKE objec-endda,
istat LIKE objec-istat,
seqnr LIKE struc-seqnr,
END OF waobjec.
DATA: ok_code LIKE sy-ucomm,
save_ok LIKE sy-ucomm.
CLASS cl_gui_object DEFINITION LOAD.
DATA: control_container TYPE REF TO cl_gui_custom_container, alv_tree_control TYPE REF TO cl_gui_alv_tree,
alv_html_header TYPE REF TO cl_gui_html_viewer,
fieldcatalog TYPE STANDARD TABLE OF lvc_s_fcat, hierarchy_header TYPE treev_hhdr.
DATA: lt_list_commentary TYPE slis_t_listheader,
gs_variant TYPE disvariant.
DATA: s_node TYPE lvc_nkey.
DATA: otype TYPE otype.
DATA: answer(1).
DATA: it_toolbar_excluding TYPE ui_functions.
DATA: excl_tab TYPE TABLE OF sy-ucomm.
DATA: it_recursions TYPE STANDARD TABLE OF type_trec,
exist_rec TYPE flag_x.
DATA: repid LIKE sy-repid,
sel_table TYPE TABLE OF rsparams.
DATA: g_optimize_flag TYPE flag VALUE ' ', "note 76840 5
g_optimize_button TYPE smp_dyntxt. "#EC NEEDED
* parent handling
DATA: g_parent_stack TYPE STANDARD TABLE OF parent_stack_line,
g_parent_stack_wa TYPE parent_stack_line.
DATA: lv_string TYPE string.
DATA: gx_acc_mode_on TYPE abap_bool.
TYPES: BEGIN OF t_data,
id TYPE struc-seqnr,
parent TYPE struc-seqnr,
oname TYPE hrp1000-short,
sname TYPE hrp1000-short,
pname TYPE hrp1000-short,
orgid TYPE hrp1000-objid,
posid TYPE hrp1000-objid,
perid TYPE hrp1000-objid,
kname TYPE hrp1000-short,
kccid TYPE hrp1000-objid,
graph TYPE i,
imagefile TYPE char40,
END OF t_data.
DATA: gt_data TYPE STANDARD TABLE OF t_data.
DATA: wa_data TYPE t_data.
DATA: g_visio_path TYPE string,
g_visio_para TYPE string.
* OLE对象
DATA: g_aplicacion TYPE ole2_object. "Aplicacion Visio
DATA: g_documentos TYPE ole2_object. "Coleccion de Documentos Visi o
DATA: g_documento TYPE ole2_object. "Documento Visio
DATA: g_addon TYPE ole2_object. "Addon
DATA: g_addons TYPE ole2_object. "Addons
DATA: g_sistema TYPE ole2_object. "Addons
DATA: g_template_path TYPE string.
DATA: g_template_file TYPE string.
DATA: g_data_file TYPE string.
DATA: g_workdir TYPE string.
DATA: g_parametro_macro TYPE string,
g_orgwiz TYPE string VALUE 'OrgCWIZ'.
*----------------------------------------------------------------------*
* SELECTION SCREEN *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK block1
WITH FRAME
TITLE text-001.
* technical depth
PARAMETERS : tdepth LIKE gdstr-tdepth.
SELECTION-SCREEN SKIP.
* recursion check
PARAMETERS: recurs RADIOBUTTON GROUP g2 LIKE pppch-recurs DEFAULT 'X' .
PARAMETERS: visio RADIOBUTTON GROUP g2 TYPE flag_x .
SELECTION-SCREEN END OF BLOCK block1.
*PARAMETERS: ORG_PATH TYPE STRING DEFAULT 'C:\Program Files\Microsoft Office\Office12\ORGWIZ.EXE'.
*----------------------------------------------------------------------*
* INITIALIZATION *
*----------------------------------------------------------------------*
INITIALIZATION.
* Structured evaluation
$pch$-acces = $structured$.
pchtimed = 'D'.
* initialize variables
CLEAR: waobjec,
it_node[].
repid = sy-repid.
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
* perform report for all objects?
IF pchobjid[] IS INITIAL AND pchsobid[] IS INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = '消息'(027)
text_question = '查询所有部门?'(015)
display_cancel_button = ' '
IMPORTING
answer = answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
internal_error 'FUNCTION POPUP_TO_CONFIRM' . "#EC NOTEXT ENDIF.
* back to selection screen
IF answer = '2'.
CLEAR sel_table[].
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = repid
TABLES
selection_table = sel_table
EXCEPTIONS
not_found = 1
no_report = 2
OTHERS = 3.
IF sy-subrc <> 0.
internal_error 'RS_REFRESH_FROM_SELECTOPTIONS'. "#EC NOTEXT ENDIF.
SUBMIT rhstru00
VIA SELECTION-SCREEN
WITH SELECTION-TABLE sel_table.
ENDIF.
ENDIF.
* Branchwise authority
$pch$-stru_authy = 'A'.
* Check recursions
IF recurs = 'X'.
$pch$-recurs = 'X'.
ENDIF.
* technical depth
$pch$-tdepth = tdepth.
$pch$-refre = $off$.
*----------------------------------------------------------------------*
* GET OBJEC *
*----------------------------------------------------------------------*
GET objec.
CLEAR waobjec.
MOVE-CORRESPONDING objec TO waobjec.
waobjec-seqnr = struc-seqnr.
* set the current id of the node
wa_node-id = struc-seqnr.
* determine the correct parent id
IF struc-pup = 0.
* there is no parent as this is the topmost node
CLEAR: g_parent_stack, g_parent_stack_wa.
wa_node-parent = struc-pup.
* add the current node as parent to the stack
g_parent_stack_wa-level = struc-level.
g_parent_stack_wa-id = struc-seqnr.
INSERT g_parent_stack_wa INTO g_parent_stack
INDEX 1.
ELSE.
* there was a parent
READ TABLE g_parent_stack
INDEX 1
INTO g_parent_stack_wa.
IF sy-subrc = 0.
*there is a parent in the stack available now check if the levels mat ch
IF g_parent_stack_wa-level >= struc-level.
* delete the entries that are deeper in the structure
* as they can not be the parents
DELETE g_parent_stack
WHERE level >= struc-level.
ENDIF.
* read again the topmost entry from the stack
READ TABLE g_parent_stack
INDEX 1
INTO g_parent_stack_wa.
IF sy-subrc = 0.
* there is a parent
wa_node-parent = g_parent_stack_wa-id.
* add the current node as parent to the stack
g_parent_stack_wa-level = struc-level.
g_parent_stack_wa-id = struc-seqnr.
INSERT g_parent_stack_wa INTO g_parent_stack
INDEX 1.
ELSE.
* there is no parent this is the topmost node others where skip ped
wa_node-parent = struc-pup.
* add the current node as parent to the stack
g_parent_stack_wa-level = struc-level.
g_parent_stack_wa-id = struc-seqnr.
INSERT g_parent_stack_wa INTO g_parent_stack
INDEX 1.
ENDIF.
ELSE.
* there is no parent this is the topmost node others where skippe d
wa_node-parent = struc-pup.
* add the current node as parent to the stack
g_parent_stack_wa-level = struc-level.
g_parent_stack_wa-id = struc-seqnr.
INSERT g_parent_stack_wa INTO g_parent_stack
INDEX 1.
ENDIF.
ENDIF.
* node text
IF NOT waobjec-stext IS INITIAL.
wa_node-text4 = waobjec-stext.
ELSE.
wa_node-text4 = waobjec-short.
ENDIF.
wa_node-short = waobjec-short.
* Object key
wa_node-otype = waobjec-otype.
wa_node-realo = waobjec-realo.
* Status validity
wa_node-istat = waobjec-istat .
WRITE waobjec-begda TO wa_node-begda.
WRITE waobjec-endda TO wa_node-endda.
* Relation
IF struc-vistat IS NOT INITIAL.
wa_node-vistat = struc-vistat .
WRITE struc-vbegda TO wa_node-vbegda.
WRITE struc-vendda TO wa_node-vendda.
ENDIF.
* Percentage
IF struc-vistat IS NOT INITIAL AND struc-vprozt IS NOT INITIAL.
WRITE struc-vprozt TO wa_node-prozt(6) RIGHT-JUSTIFIED .
WRITE ' %' TO wa_node-prozt+6(2).
ENDIF.
wa_node-objid = waobjec-objid.
* Add icon when recursion
IF NOT recurs IS INITIAL AND
struc-rflag = 'X'.
wa_node-text = text-014.
exist_rec = 'X'.
ENDIF.
APPEND wa_node TO it_node.
CLEAR wa_node.
CLEAR waobjec.
*----------------------------------------------------------------------*
* END-OF-SELECTION
*
*----------------------------------------------------------------------*
END-OF-SELECTION.
IF visio = 'X'.
PERFORM sub_create_dir.
PERFORM sub_download_photo.
PERFORM sub_fill_data_c1.
PERFORM sub_set_parametro_macro2 USING g_parametro_macro.
* PERFORM sub_set_parametro_macro USING g_parametro_macro.
PERFORM sub_download_data.
PERFORM sub_open_document.
ELSE.
CALL SCREEN 100.
ENDIF.
*--------------------------------------------------------------------
-*
* MODULE STATUS_0100 OUTPUT
*---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
* structural graphic is not available in web gui
CALL FUNCTION 'GET_ACCESSIBILITY_MODE'
IMPORTING
accessibility = gx_acc_mode_on
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0 OR
gx_acc_mode_on = abap_true OR
cl_gui_object=>www_active = 'X'.
APPEND 'GSTR' TO excl_tab.
ENDIF.
* show button for recursions ?
IF recurs NE 'X'.
APPEND 'SHRE' TO excl_tab.
ENDIF.
PERFORM set_optimization_text.
SET PF-STATUS 'MAIN' EXCLUDING excl_tab.
SET TITLEBAR 'MAINTITLE'.
ENDMODULE. "STATUS_0100 OUTPUT
*---------------------------------------------------------------------*
* MODULE init_tree OUTPUT
*---------------------------------------------------------------------*
MODULE init_tree OUTPUT.
* create container for alv_tree_control
IF control_container IS INITIAL.
CREATE OBJECT control_container
EXPORTING
container_name = 'CUSTOM_CONTROL'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
internal_error '创建Container对象失败' . "#EC NOTEXT
ENDIF.
IF alv_tree_control IS INITIAL.
* initialization-fieldcatalog
PERFORM build_fieldcatalog
CHANGING fieldcatalog.
* create info-table for html-header
PERFORM build_comment
USING lt_list_commentary.
* create alv_tree control
CREATE OBJECT alv_tree_control
EXPORTING
parent = control_container
node_selection_mode = cl_gui_column_tree=>node_sel_ mode_single
item_selection = 'X'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7
OTHERS = 8.
IF sy-subrc <> 0.
internal_error '创建ALV_TREE对象失败' . "#EC NOTEXT
ENDIF.
* define hierarchy header
PERFORM define_hierarchy_header
CHANGING hierarchy_header.
* excluding function from toolbar
APPEND cl_alv_tree_base=>mc_fc_calculate
TO it_toolbar_excluding.
gs_variant-report = sy-repid.
CALL METHOD alv_tree_control->set_table_for_first_display EXPORTING
is_variant = gs_variant
i_save = 'A'
i_default = 'X'
is_hierarchy_header = hierarchy_header
it_list_commentary = lt_list_commentary
it_toolbar_excluding = it_toolbar_excluding
CHANGING
it_outtab = it_tab
it_fieldcatalog = fieldcatalog.
* create hierarchy
PERFORM fill_col_tree .
* Get Header Object
CALL METHOD alv_tree_control->get_html_header_object
CHANGING
er_html_header = alv_html_header.
* Set description
IF alv_html_header IS BOUND.
lv_string = '标题'(026).
CALL METHOD alv_html_header->set_accdescription
EXPORTING
accdescription = lv_string
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
internal_error 'SET_ACCDESCRIPTION alv_html_header' . "#EC NOTEXT
ENDIF.
ELSE.
internal_error 'GET_HTML_HEADER_OBJECT alv_tree_control' . "# EC NOTEXT
ENDIF.
CALL METHOD alv_tree_control->frontend_update.
CALL METHOD cl_gui_cfw=>flush.
ENDIF.
ENDIF.
ENDMODULE. "init_tree
*---------------------------------------------------------------------*
* MODULE user_command_0100 INPUT
*---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CALL METHOD cl_gui_cfw=>dispatch.
PERFORM get_sel_item CHANGING s_node.
CASE save_ok.
WHEN 'DESC'.
PERFORM show_object USING s_node.
WHEN 'MAIN'.
PERFORM maintenance_object USING s_node.
WHEN 'SHRE'.
PERFORM show_recursion.
WHEN 'STRU'. "New evaluation path PERFORM new_path USING s_node.
WHEN 'TICK'. "New with same depth PERFORM new_list USING s_node.
WHEN 'GSTR'. "Structural graphic PERFORM show_graphichs USING s_node.
WHEN 'OPTI'.
PERFORM optimization_columns.
WHEN 'OPTIHEAD'.
PERFORM optimization_with_header.
WHEN 'OPTICONT'.
PERFORM optimization_with_content.
WHEN 'EXIT'.
* LEAVE PROGRAM.
LEAVE TO SCREEN 0.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'RW'.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ok_code = save_ok.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
* build table for FIELDCATALOG
*----------------------------------------------------------------------*
FORM build_fieldcatalog
CHANGING fieldcatalog TYPE lvc_t_fcat.
DATA: ls_fieldcatalog TYPE lvc_s_fcat.
CLEAR fieldcatalog[].
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'SHORT'.
ls_fieldcatalog-ref_field = 'SHORT'.
ls_fieldcatalog-ref_table = 'OBJEC'.
ls_fieldcatalog-colddictxt = 'R'.
ls_fieldcatalog-col_pos = 1.
APPEND ls_fieldcatalog TO fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'OTYPE'.
ls_fieldcatalog-ref_field = 'OTYPE'.
ls_fieldcatalog-ref_table = 'OBJEC'.
ls_fieldcatalog-colddictxt = 'L'.
ls_fieldcatalog-col_pos = 2.
APPEND ls_fieldcatalog TO fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'REALO'.
ls_fieldcatalog-ref_field = 'REALO'.
ls_fieldcatalog-ref_table = 'OBJEC'.
ls_fieldcatalog-colddictxt = 'L'.
ls_fieldcatalog-col_pos = 3.
APPEND ls_fieldcatalog TO fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'ISTAT'.
ls_fieldcatalog-reptext = '状态(对象)'(002).
ls_fieldcatalog-colddictxt = 'R'.
ls_fieldcatalog-tooltip = 'Status des Objekts'(023).
ls_fieldcatalog-col_pos = 4.
ls_fieldcatalog-just = 'R'.
APPEND ls_fieldcatalog TO fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'BEGDA'.
ls_fieldcatalog-reptext = '开始日期(对象)'(003).
ls_fieldcatalog-tooltip = 'Beginndatum des Objekts'(022). ls_fieldcatalog-colddictxt = 'R'.
ls_fieldcatalog-col_pos = 5.
ls_fieldcatalog-just = 'R'.
APPEND ls_fieldcatalog TO fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'ENDDA'.
ls_fieldcatalog-reptext = '结束日期(对象)'(006).
ls_fieldcatalog-tooltip = 'Endedatum des Objekts'(017).
ls_fieldcatalog-colddictxt = 'R'.
ls_fieldcatalog-col_pos = 6.
ls_fieldcatalog-just = 'R'.
APPEND ls_fieldcatalog TO fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'VISTAT'.
ls_fieldcatalog-reptext = '状态(关系)'(005).
ls_fieldcatalog-tooltip = 'Status der Verkn黳fung'(004).
ls_fieldcatalog-colddictxt = 'R'.
ls_fieldcatalog-col_pos = 7.
ls_fieldcatalog-just = 'R'.
APPEND ls_fieldcatalog TO fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'VBEGDA'.
ls_fieldcatalog-reptext = '开始日期(关系)'(018).
ls_fieldcatalog-tooltip = 'Beginndatum der Verkn黳fung'(019).
ls_fieldcatalog-colddictxt = 'R'.
ls_fieldcatalog-col_pos = 8.
ls_fieldcatalog-just = 'R'.
APPEND ls_fieldcatalog TO fieldcatalog.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'VENDDA'.
ls_fieldcatalog-reptext = '结束日期(关系)'(020).
ls_fieldcatalog-tooltip = 'Endedatum der Verkn黳fung'(021).
ls_fieldcatalog-colddictxt = 'R'.
ls_fieldcatalog-col_pos = 9.
ls_fieldcatalog-just = 'R'.
APPEND ls_fieldcatalog TO fieldcatalog.
* CLEAR ls_fieldcatalog.
* ls_fieldcatalog-fieldname = 'PROZT'.
* ls_fieldcatalog-ref_field = 'VPROZT'.
* ls_fieldcatalog-ref_table = 'STRUC'.
* ls_fieldcatalog-colddictxt = 'L'.
* ls_fieldcatalog-col_pos = 10.
* ls_fieldcatalog-just = 'R'.
* APPEND ls_fieldcatalog TO fieldcatalog.
* append column recurs only if recursion exist
IF NOT recurs IS INITIAL.
IF exist_rec = 'X'.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'TEXT'.
ls_fieldcatalog-reptext = '递归报表'(007).
ls_fieldcatalog-colddictxt = 'R'.
ls_fieldcatalog-col_pos = 11.
ls_fieldcatalog-outputlen = 30.
APPEND ls_fieldcatalog TO fieldcatalog.
CLEAR exist_rec.
ENDIF.
ENDIF.
ENDFORM. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form define_hierarchy_header
*&---------------------------------------------------------------------*
* define hierarchy-header-information
*----------------------------------------------------------------------*
* -->P_L_HIERARCHY_HEADER structure for hierarchy-header
*----------------------------------------------------------------------*
FORM define_hierarchy_header CHANGING
p_hierarchy_header TYPE treev_hhdr.
p_hierarchy_header-heading = 'Objektbezeichner'(300).
p_hierarchy_header-tooltip = 'Objektbezeichner'(300).
p_hierarchy_header-width = 48.
p_hierarchy_header-width_pix = ' '.
ENDFORM. " define_hierarchy_header
*&---------------------------------------------------------------------*
*& Form build_header
*&---------------------------------------------------------------------*
* define header
*----------------------------------------------------------------------*
FORM build_comment USING pt_list_commentary TYPE slis_t_listheader.
DATA: ls_line TYPE slis_listheader,
l_obeg(24),
wegidtx(50).
* planversion
ls_line-typ = 'S'.
ls_line-key = '计划版本:'(008).
ls_line-info = pchplvar.
APPEND ls_line TO pt_list_commentary.
* evaluation path
ls_line-key = '评估路径:'(009).
SELECT SINGLE wtext INTO wegidtx FROM t77at
WHERE langu = sy-langu AND
wegid = pchwegid.
CONCATENATE pchwegid ' (' wegidtx ')' INTO ls_line-info.
APPEND ls_line TO pt_list_commentary.
* evaluation depth
ls_line-key = '深度:'(010).
ls_line-info = gdstr-depth.
APPEND ls_line TO pt_list_commentary.
* status
ls_line-key = '状态向量:'(011).
ls_line-info = pc-svect.
APPEND ls_line TO pt_list_commentary.
* evaluation period
IF pchobeg = pchoend.
ls_line-key = '关键日期'(012).
WRITE pchobeg TO l_obeg.
ls_line-info = l_obeg.
ELSE.
ls_line-key = '评估期间:'(013).
WRITE pchobeg TO l_obeg.
WRITE '-' TO l_obeg+12(1).
WRITE pchoend TO l_obeg+14(10).
ls_line-info = l_obeg.
ENDIF.
APPEND ls_line TO pt_list_commentary.
ENDFORM. "build_comment
用visio画组织结构图 1.前言 其实,组织架构图很多人都会画(包括07版本及以上版本自带的“组织结构图”和各种山寨版本),也会用visio画,稍微高端大气上档次一点的同事,用aris 画,小资213青年用mindmanager或者其他软件画,比如,PS等,像我等屌丝青年,通常使用免费还好用看得见的visio来画图,包括各种流程图、甘特图、电路图等各种图,当然,组织图也在其中。 但是有一点,很多visio用户,尤其是小白们,在显示属性上没有搞清楚咋整,比如,公司喜欢保留三个字段“职位/岗位”、“姓名”、“编制”,但是,visio自带的通常只有两个字段属性,于是,我们看到最多的是:直接回车,写上去。此等山寨功夫,本教程的目的就是:让这种屌丝做法稍微带点高富帅的气质,起码,对于广大的屌丝而言,可以作为把妹的一个技术吧——你想想以下当你解决了妹纸这个困扰已久的困难后,妹纸(包括女神,女神在这方面是一等一的小白)投来的何种程度的羡慕崇拜眼神,就为这个,你看完这篇教程也值了。 2.打开组织图编辑窗口: 2.1步骤: 打开visio后,选择创建组织结构图: 各位观众应该看得出来,这个图有PS痕迹哈~ 2.2结果: 下图为打开后的编辑窗口。 简单地说,中间密密麻麻的网格区域就是编辑区域,左边写的很清楚,就不解释了,最上面是菜单栏,有用的~
3.创建组织图: 3.1选择,比如“总经理”,然后将其拖进编辑区域: 3.2自定义属性: 系统默认两个显示属性:“姓名”及“职务”,但通常来说,我们想自定义属性,以便于自己修改方便。 假设我们将这个岗位的属性定义为“岗位”、“姓名”、“编制”三个属性,这样你会发现,和原来系统默认不太一样,操作如下: 步骤1:选中职位框,右键,选择属性(如下图): 单击之后,会得到这样一个结果: 上述是系统自带的几个属性,我们可以进行自定义添加,其实修改也可以的,相同的哈,不解释。 步骤2:单击“定义”,得到以下结果: 这样,我们就可以进行编辑了。 步骤3:新建自定义属性: 单击“新建”,得到以下对话框: 步骤4:自定义属性: 我们刚才想要的是“编制”,所以我们将“属性6”改为“编制”,为了显示的方便,我们也将其作为字符串而存在,因为当将的格式定义为“数值”的时候,我发现,竟然在最后的结果中不显示,这样,看不起来不直观,尽管这有些山寨:这样我们就看到,在“标签”(即属性)栏中,有编制了。 3.3选择显示的属性 我们刚才说了,系统默认只显示两个属性,但是我们需要显示三个,所以也需要自定义。需要以下步骤:
公司人员组织结构图怎么做 导语: 公司人员组织架构图可以用于活动或大型事项安排的时候使用,通过架构图,管理员可以就图进行准确的分工安排。组织架构图的绘制并不困难,只需下载安装专业的软件即可! 免费获取组织架构图软件:https://www.wendangku.net/doc/bd1584990.html,/orgchart/ 有哪些人员组织架构图工具软件? 画人员组织结构图的软件还是比较多的,一些比较有名的都是国外的,但国内也有优秀的组织架构图软件,比如说亿图图示。这是一款国产的、可以画专业组织架构图的软件,操作十分符合国人的习惯。除了组织架构图以外,亿图图示同时也支持绘制思维导图、工业设计、流程图等,集200种以上的绘图工具于一身。软件提供矢量基础的20000个以上的符号、1000个以上的模板和例子以便用户绘图使用。同时,亿图图示也支持多种类型文件的导入导出,导入如Visio、SVG,导出如Visio、SVG、HTML、PS、JPG、PNG、PDF、Office文件等等。
如何使用亿图图示制作人员组织架构图? 第1步:在模板中,选择需要的模板类型,双击,进入编辑界面。 第2步:从左侧符号库中,双击、或者拖拽一个“职位”图形到画布上。
第3步:将鼠标放到图形上,此时会出现一个类似=号的按钮,点击,就可以快速添加下一级。并根据企业组织结构,点击按钮,将整个结构框架画出来。 第4步:架构画好之后,点击图形,再根据实际情况,将职位一一输入到对应的图形中,点击空白处可以结束文字编辑。
第5步:可能有时候我们画完所有的结构后,会发现整个图变得很宽,严重影响我们正常的浏览。这种情况,我们只需要将横向的图形,竖向显示就可以大大节约空间。 操作方法很简单,鼠标单击选中图形后,图形的四周会出现几个绿色的点,拖动这些点,就可以将图形缩窄、拉长,而且图形上的文字,也可以变成竖向的显示的文字。 温馨提示:使用开始菜单下“排列”中的“大小”功能,可以快速将多个图形设置为等宽、等高、相同大小。 第6步:按住Ctrl键,鼠标一个一个选中图形,或者鼠标左键不松手,拉出一个选框,将需要修改颜色的图形,全部选中。然后在“开始”菜单的“样式”设置中,选择需要的颜色类型,点击颜色,就可以立即进行替换。反复这个操作,可以将整个结构图用不同的颜色,将部分区分开。
实验二、基于Visio 的组织结构和业务流程图信息系统分析与设计是方法、工具与技术三个部分的有机整体,本 章主要介绍信息系统分析与设计中常用工具的安装过程和基本操作,包 括Visio 2003软件、Rational Rose 。 一、实验目的 1. 掌握需求分析的内涵 2. 熟练绘制组织结构图 3. 掌握业务流程图的绘制方法。 二、实验器材 1.计算机一台。 2.Visio工具软件。 三、Visio 的安装实验 3.1.1 Visio 2003简介 Visio 2003 是一个图表绘制程序,它可以帮助用户描述复杂设想及系统的业务和技术图 表。使用 Visio 创建的图表可使用户将信息形象化,并能够以清楚简明的方式有效地交流信 息,这是只使用文字和数字所无法实现的。Visio 还可通过与数据源直接同步自动形象化数 据,以提供最新的图表;用户还可以对Visio 进行自定义,以满足组织的需要。 1.易于理解的概念、过程和关系 ◆使用Visio可以轻松创建业务和技术图表,以便仔细研究、组织和更好地理解 复杂的设想、过程和系统。 ◆通过拖曳预定义的Microsoft SmartShapes 符号可以很容易地组合图表。 ◆使用为特定专门学科而设计的工具,以满足贯穿整个组织的对业务和技术图表 绘制的要求。 ◆从现有数据可生成常见的图表类型。 ◆可以从Web 访问定期更新的区分上下文帮助和适用于特定任务的模板 2.清楚而有效地交流 ◆将设想、信息和系统形象化并与他人进行交流。 ◆要创建视觉效果丰富的图表,以给观众留下尽可能深刻的印象。 ◆可以小组的Microsoft Windows SharePoint 服务站点上共享工作区文件中的 图表。 ◆在Tablet PC 上,可使用数字墨迹以更自然的方式批注图表。 ◆可利用新增的审阅模式跟踪审阅者对形状和数字墨迹所做的批注与更改。 ◆利用改进后的Save as Web Page(另存为Web页)功能,在Web上发布和共享图表。
人员组织架构图是怎么做的 导语: 人员组织架构图可以用于活动或大型事项安排的时候使用,通过架构图,管理员可以就图进行准确的分工安排。组织架构图的绘制并不困难,只需下载安装专业的软件即可! 免费获取组织架构图软件:https://www.wendangku.net/doc/bd1584990.html,/orgchart/ 有哪些人员组织架构图工具软件? 画人员组织结构图的软件还是比较多的,一些比较有名的都是国外的,但国内也有优秀的组织架构图软件,比如说亿图图示。这是一款国产的、可以画专业组织架构图的软件,操作十分符合国人的习惯。除了组织架构图以外,亿图图示同时也支持绘制思维导图、工业设计、流程图等,集200种以上的绘图工具于一身。软件提供矢量基础的20000个以上的符号、1000个以上的模板和例子以便用户绘图使用。同时,亿图图示也支持多种类型文件的导入导出,导入如Visio、SVG,导出如Visio、SVG、HTML、PS、JPG、PNG、PDF、Office文件等等。
如何使用亿图图示制作人员组织架构图? 第1步:在模板中,选择需要的模板类型,双击,进入编辑界面。 第2步:从左侧符号库中,双击、或者拖拽一个“职位”图形到画布上。
第3步:将鼠标放到图形上,此时会出现一个类似=号的按钮,点击,就可以快速添加下一级。并根据企业组织结构,点击按钮,将整个结构框架画出来。 第4步:架构画好之后,点击图形,再根据实际情况,将职位一一输入到对应的图形中,点击空白处可以结束文字编辑。
第5步:可能有时候我们画完所有的结构后,会发现整个图变得很宽,严重影响我们正常的浏览。这种情况,我们只需要将横向的图形,竖向显示就可以大大节约空间。 操作方法很简单,鼠标单击选中图形后,图形的四周会出现几个绿色的点,拖动这些点,就可以将图形缩窄、拉长,而且图形上的文字,也可以变成竖向的显示的文字。 温馨提示:使用开始菜单下“排列”中的“大小”功能,可以快速将多个图形设置为等宽、等高、相同大小。 第6步:按住Ctrl键,鼠标一个一个选中图形,或者鼠标左键不松手,拉出一个选框,将需要修改颜色的图形,全部选中。然后在“开始”菜单的“样式”设置中,选择需要的颜色类型,点击颜色,就可以立即进行替换。反复这个操作,可以将整个结构图用不同的颜色,将部分区分开。
用v i s i o画组织结构图 Prepared on 22 November 2020
用visio画组织结构图 1.前言 其实,组织架构图很多人都会画(包括07版本及以上版本自带的“组织结构图”和各种山寨版本),也会用visio画,稍微高端大气上档次一点的同事,用aris画,小资213青年用mindmanager或者其他软件画,比如,PS等,像我等屌丝青年,通常使用免费还好用看得见的visio来画图,包括各种流程图、甘特图、电路图等各种图,当然,组织图也在其中。 但是有一点,很多visio用户,尤其是小白们,在显示属性上没有搞清楚咋整,比如,公司喜欢保留三个字段“职位/岗位”、“姓名”、“编制”,但是,visio自带的通常只有两个字段属性,于是,我们看到最多的是:直接回车,写上去。此等山寨功夫,本教程的目的就是:让这种屌丝做法稍微带点高富帅的气质,起码,对于广大的屌丝而言,可以作为把妹的一个技术吧——你想想以下当你解决了妹纸这个困扰已久的困难后,妹纸(包括女神,女神在这方面是一等一的小白)投来的何种程度的羡慕崇拜眼神,就为这个,你看完这篇教程也值了。 2.打开组织图编辑窗口: 2.1步骤: 打开visio后,选择创建组织结构图:
各位观众应该看得出来,这个图有PS痕迹哈~ 2.2结果: 下图为打开后的编辑窗口。
简单地说,中间密密麻麻的网格区域就是编辑区域,左边写的很清楚,就不解释了,最上面是菜单栏,有用的~ 3.创建组织图: 3.1选择,比如“总经理”,然后将其拖进编辑区域: 3.2自定义属性:
系统默认两个显示属性:“姓名”及“职务”,但通常来说,我们想自定义属性,以便于自己修改方便。 假设我们将这个岗位的属性定义为“岗位”、“姓名”、“编制”三个属性,这样你会发现,和原来系统默认不太一样,操作如下: 步骤1:选中职位框,右键,选择属性(如下图): 单击之后,会得到这样一个结果:
实验二、基于Visio 的组织结构和业务流程图 信息系统分析与设计是方法、工具与技术三个部分的有机整 体, 本章主要介绍信息系统分析与设计中常见工具的安装过程和 基本操作, 包括Visio 软件、 Rational Rose 。 一、实验目的 1. 掌握需求分析的内涵 2. 熟练绘制组织结构图 3. 掌握业务流程图的绘制方法。 二、实验器材 1.计算机一台。 2.Visio工具软件。 三、 Visio 的安装实验 3.1.1 Visio 简介 Visio 是一个图表绘制程序, 它能够帮助用户描述复杂设想及系统的业务和技术图 表。使用Visio 创立的图表可使用户将信息形象化, 并能够以清楚简明的方式有效地交流信 息, 这是只使用文字和数字所无法实现的。Visio 还可经过与数据源直接同步自动形象化数 据, 以提供最新的图表; 用户还能够对Visio 进行自定义, 以满足组织的需要。 1.易于理解的概念、过程和关系 使用Visio能够轻松创立业务和技术图表, 以便仔细研究、组织和更好地理解复杂的设想、过程和系统。
◆经过拖曳预定义的Microsoft SmartShapes 符号能够很容易地组合 图表。 ◆使用为特定专门学科而设计的工具, 以满足贯穿整个组织的对业务 和技术图表绘制的要求。 ◆从现有数据可生成常见的图表类型。 ◆能够从Web 访问定期更新的区分上下文帮助和适用于特定任务的模板 2.清楚而有效地交流 ◆将设想、信息和系统形象化并与她人进行交流。 ◆要创立视觉效果丰富的图表, 以给观众留下尽可能深刻的印象。 ◆能够小组的Microsoft Windows SharePoint 服务站点上共享工作区文件中的图表。 ◆在T ablet PC 上, 可使用数字墨迹以更自然的方式批注图表。 ◆可利用新增的审阅模式跟踪审阅者对形状和数字墨迹所做的批注与 更改。 ◆利用改进后的Save as Web Page(另存为Web页)功能, 在Web上发布和 共享图表。 ◆可导入和导出可缩放向量图形( Scalable Vector Graphics , SVG) 格式的力表, 这 种格式是一种新的基于XML 的Web 图形标准。 3.集成和自动处理系统与过程 ◆使用 Visio 可完成更复杂的工作、加深人们的理解和提高生产力, 从而促进您的业务发展。 ◆经过将数据从 Visio图表中提取出来, 然后导入到Microsoft Excel、 Microsoft Word 、 Microsoft Access和Microsoft SQL Server中, 或转换为XML和其它格式, 可将业务过程和系统集成在一起。可将
用Visio绘制组织结构图 要创建显示隶属关系的组织结构图,请先添加"总经理"形状或"经理"形状,然后将代表雇员的形状放到代表其上级的形状上。Visio将自动在有隶属关系的两个形状之间放置并添加连接线。 开始创建组织结构图 1启动Visio。在"选择绘图类型"窗口的"类别"下,单击"组织结构图"。 2在"模板"下,单击"组织结构图"。 3从"组织结构图形状"中,将"总经理"形状拖到绘图页上。随即出现"连接形状"对话框,并动态演示放置和连接形状的过程。如果希望该演示不再出现,请选取"不再显示此消息"复选框并单击"确定"。 4将"经理"形状直接拖到"总经理"形状上。Visio会将"经理"形状放在"总经理"形状下方,并在它们之间添加一条连接线建立隶属关系。 5重复步骤 4,添加更多经理。 6要在经理及其下属间建立关系,请将"职位"形状直接拖到"经理"形状上。 7重复步骤 6,添加更多职位。 8要在两个职位间建立第二个隶属关系,请将"虚线报告"形状从"形状"窗口中拖到绘图上。将连接线的一个端点拖到隶属关系中的一个形状的连接点上,然后将另一个端点拖到另一个形状上。 9要表示其他职位类型并建立隶属关系,请将"顾问"、"空缺"和"助理"形状拖到代表其上级的形状上。 10要用雇员的姓名和职位替换默认的形状文本,请在双击形状后,键入姓名并按Enter键,然后再键入职位。 在组织结构图中存储数据 您可以将数据作为自定义属性存储在组织结构图的形状中。并将这些数据用于图表的报告、引用或形状文本。组织结构图形状的默认自定义属性包括"部门"、"电话"、"姓名"、"职位"和"电子邮件"。默认情况下,形状中会显示"姓名"和"职位"属性。而其他默认的自定义属性和您创建的其他属性都随形状一并存储,但不显示在图中。您可以选择是将它们隐藏还是显示在形状中。 将自定义属性数据与组织结构图形状一并存储 1选择要向其添加数据的形状。 2在"形状"菜单上,单击"自定义属性"。 3在"自定义属性"对话框的每个字段中键入数据,然后单击"确定"。 查看未显示在组织结构图形状中的自定义属性 ?右击形状,然后在快捷菜单上单击"属性"。 添加、更改或删除自定义属性 1右击形状,然后在快捷菜单上单击"属性"。 2在"自定义属性"对话框中,单击"定义",然后在"定义自定义属性"对话框中,添加、更改或删属性,然后单击"确定"。 设置组织结构图中的信息和形状的格式 默认情况下,组织结构图形状中会显示"姓名"和"职位"自定义属性;不过,您也可以在形状中显示其他默认的自定义属性,包括"部门"、"电话"和"电子邮件"。您还可以在形状中插入雇员照片;将一种颜色用于一个部门的所有形状,以此来区分各个部门;更改图的设计主题或配色方案。 在组织结构图形状中显示雇员信息并设置其格式