表控制Table Control使用方法总结

合集下载

Javascript利用方向键(上下键)控制表格的行选中(兼容各个浏览器)IT驿站

Javascript利用方向键(上下键)控制表格的行选中(兼容各个浏览器)IT驿站

Javascript利用方向键(上下键)控制表格的行选中(兼容各个浏览器)IT驿站[ad#content]这两天正在做一个通过Javascript实现用键盘的方向键来控制表格的行选中功能,自己写了个小脚本,放到这里方便以后使用。

这个脚本一共两个文件,首先是JS文件(tablecontrol.js):1.var currentLine=-1, offsetTr = 0;2.var $ =function(id){ return document.getElementById(id); }3.function keyDownEvent(e){4.var e = window.event||e;5.if(e.keyCode==38){6.offsetTr = 0;7.currentLine--;8.changeItem();9.}else if(e.keyCode==40){10.offsetTr = 150;11.currentLine++;12.changeItem();13.}else if(e.keyCode==13&&currentLine>-1){14.addUser();15.}16.return false;17.}18.function changeItem(){19.if(!$('buddyListTable')) return false;20.var it = $('buddyListTable');21.if(document.all){22.it = $('buddyListTable').children[0];23.}24.changeBackground();25.if(currentLine<0) currentLine = it.rows.length-1;26.if(currentLine >= it.rows.length) currentLine = 0;27.it.rows[currentLine].className = "buddyListHighLight";28.if($('allBuddy')){29.$('allBuddy').scrollTop = it.rows[currentLine].offsetT op-offsetTr;30.}31.}32.function changeBackground(){33.var it = $('buddyListTable');34.if(document.all){35.it = $('buddyListTable').children[0];36.}37.for(var i=0; i<it.rows.length; i++){38.if(i%2==0){39.it.rows[i].className = "buddyListOdd";40.}else{41.it.rows[i].className = "buddyListEven";42.}43.}44.}45.function addUser(){46.var it = $('buddyListTable');47.if(document.all){48.it = $('buddyListTable').children[0];49.}50.var trBody = it.rows[currentLine].innerHTML;51.$('result').innerHTML = $('result').innerHTML+trBody;52.}下面是HTML文件:1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">2.<html xmlns="/1999/xhtml">3.<head>4.<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />5.<script language="javascript" src="tablecontrol.js"></script>6.<style type="text/css">7..buddyListOdd{8.background-color:#f0f0f0;9.}10..buddyListEven{11.background-color:#ffffff;12.}13..buddyListHighLight{14.background-color:#DCE2E8;15.}16.</style>17.</head>18.<body>19.<div style="width: 312px; height: 180px; overflow-y: scroll; overflow-x: hidden;color:#747678" id="allBuddy">20.<table cellspacing="0" cellpadding="0" border="0" width="100%" id="buddyListTable"><tbody>21.<tr class="buddyListOdd">23.<td align="left" valign="middle">AAAAAA</td>24.<td align="left">+861311111111</td>25.</tr>26.<tr class="buddyListEven">27.<td width="26px"><input type="checkbox"></td>28.<td align="left" valign="middle">BBBBBB</td>29.<td align="left">+861322222222</td>30.</tr>31.<tr class="buddyListOdd">32.<td width="26px"><input type="checkbox"></td>33.<td align="left" valign="middle">CCCCCC</td>34.<td align="left">+861333333333</td>35.</tr>36.<tr class="buddyListEven">37.<td width="26px"><input type="checkbox"></td>38.<td align="left" valign="middle">DDDDDD</td>39.<td align="left">+861344444444</td>40.</tr>41.<tr class="buddyListOdd">42.<td width="26px"><input type="checkbox"></td>43.<td align="left" valign="middle">EEEEEE</td>44.<td align="left">+861355555555</td>45.</tr>46.<tr class="buddyListEven">47.<td width="26px"><input type="checkbox"></td>48.<td align="left" valign="middle">FFFFFF</td>49.<td align="left">+861366666666</td>50.</tr>51.<tr class="buddyListOdd">53.<td align="left" valign="middle">GGGGGG</td>54.<td align="left">+861366666666</td>55.</tr>56.<tr class="buddyListEven">57.<td width="26px"><input type="checkbox"></td>58.<td align="left" valign="middle">HHHHHH</td>59.<td align="left">+861377777777</td>60.</tr>61.<tr class="buddyListOdd">62.<td width="26px"><input type="checkbox"></td>63.<td align="left" valign="middle">IIIIII</td>64.<td align="left">+861388888888</td>65.</tr>66.<tr class="buddyListEven">67.<td width="26px"><input type="checkbox"></td>68.<td align="left" valign="middle">GGGGGG</td>69.<td align="left">+861300000000</td>70.</tr>71.<tr class="buddyListOdd">72.<td width="26px"><input type="checkbox"></td>73.<td align="left" valign="middle">KKKKKK</td>74.<td align="left">+861321111111</td>75.</tr>76.<tr class="buddyListEven">77.<td width="26px"><input type="checkbox"></td>78.<td align="left" valign="middle">LLLLLL</td>79.<td align="left">+861322222222</td>80.</tr>81.<tr class="buddyListOdd">83.<td align="left" valign="middle">MMMMMM</td>84.<tdalign="left">+86132****3333</td>85.</tr>86.<tr class="buddyListEven">87.<td width="26px"><input type="checkbox"></td>88.<td align="left" valign="middle">NNNNNN</td>89.<td align="left">+861311111111</td>90.</tr>91.</tbody>92.</table>93.</div>94.<div>95.首先把鼠标焦点放入下面的输入框,然后按键盘的上下键,可以看到表格中的行被高亮选中<br />96.<input type="text" onkeyup="return keyDownEvent(event);"/><br />97.按回车后,相对应的表格项会出现在下面,当然这只是一个简单的Demo,复杂的操作开发者可以自己添加<br />98.<table id="result"></table>99.</div>100.</body>101.</html>。

ABAP table control

ABAP table control

ABAP table controlTable control用于在screen上以表格的形式显示数据,在table control中,可以使用table elements,keywords,,templates,radio buttons,radio button groups和pushbuttons。

一行可以有255个columns。

每个column可以有一个title。

Table control可以用来显示single structured lines。

Table control的特点:●Resizable table for displaying and editing data●用户或者程序可以改变列的宽度和位置并可以保存下来用于下次调用●Check column for marking lines,marked lines are highlighted in a differentcolor●Line selection single lines multiple lines all lines and deselection●Column headings double as pushbuttons for marking columns●Scroll bars for horizontal and vertical scrolling●Any number of key columns can be set●Cell attributes are variable at runtimeTable control可以存储display variants完全在客户端运行的table control action有:●Horizontal scrolling●Swapping columns●Changing column width●Selecting columns●Selecting linesScroll vertically或者save user configuration都会trigger PAI processing block除了name start poison on screen和static size,table control还有很多特殊的属性,这些属性决定了table control的table type,display options以及用户是否可以配置table control。

第3章 使用表格控制网页布局重点内容: 在页面中使用表格

第3章 使用表格控制网页布局重点内容: 在页面中使用表格
要添加行或列选择修改表格插入行或列命令在出现的对话框中设置插入行数和位置等参三编辑表格和单元格3拆分与合并单元格用户可以选择修改表格菜单中的子命令来拆分和合并单元格
第3章 使用表格控制网页布局
重点内容:
• 在页面中使用表格
• 设置表格和单元格格式
• 编辑表格和单元格
一、 在页面中使用单元格
1、在页面中插入表格 在Dreamweaver 8中, 用户可以选择“插 入”|“表格”命令,或在 “常用”工具栏中单击 “插入表格”按钮,使用 打开的“表格”对话框来 插入表格。
本章小结:
•掌握在页面中插入表格和添加表格内容的方法。 •掌握更改表格属性的方法。 •熟练进行表格的拆分与合并等操作。
三、编辑表格和单元格
3、拆分与合并单元格 用户可以选择“修改”|“表格”菜单中的子命令来拆分和 合并单元格。若要拆分某个单元格,可先选择需要拆分的单 元格,然后选择“修改”|“表格”|“拆分单元格”命令。 4、剪切、拷贝和粘贴单元格 若用户要剪切或拷贝单元格, 可选择一组连续的且形状为矩形的 单元格,然后选择“编辑”|“剪切” 命令或“编辑”|“拷贝”命令,剪 切或复制单元格。
二、设置表格和单元格格式
3、使用预制表格 在Dreamweaver 8中, 除了可以自行设计表格外, 还可以利用默认的表格格 式。用户可以通过选择 “命令”|“格式化表格” 命令,在打开的的“格式 化表格”对话框中,进行 相应的设置。
三、编辑表格和单元格
1、调整表格大小 用户在选择表格后表格上会出现3个控制点,并会显示表 格的宽度信息。用户可以通过调整这几个控制点来调整表格 的大小。 2、添加及删除行或列 用户可以使用“修改”|“表 格”菜单中的子命令来添加或 删除行和列。要添加行或列, 选择“修改”|“表格”|“插入行 或列”命令,在出现的对话框 中设置插入、行数和位置等参 数。

表控制Table Control设计

表控制Table Control设计

第七章表控制Table Control设计表控制(Table Control)是SAP应用中最重要的对象之一,业务单据的输入、基础数据的表格输入等都是使用Table Control控件,本章主要介绍:(1) 在屏幕设计中通过向导来制作表控制对象,由系统生成程序;(2) 非向导设计Table Control控件;(3) 通过系统生成数据表维护程序,并在程序中调用;(4) 表格设计技巧;(5) 通过表格维护变更内表数据,并将内表数据提交数据库。

7.1使用向导制作Table Control本节先建立一个内表,通过向导建立一个表格控件使用该内表。

7.1.1建立程序先建立程序,定义内表,屏幕有退出按钮,代码如下。

逻辑流程序:*PBO显示屏幕前的处理PROCESS BEFORE OUTPUT.MODULE STATUS_0100.*PAI用户输入后的处理PROCESS AFTER INPUT.MODULE USER_COMMAND_0100.主程序:REPORT YTEST020.*功能码返回值DATA:OK_CODE TYPE SY-UCOMM,SA VE_OK LIKE OK_CODE.*定义内表,注意,两种写法一样*DATA SP1 LIKE SPFLI OCCURS 0 WITH HEADER LINE.DATA SP1 LIKE TABLE OF SPFLI WITH HEADER LINE.*增加内表数据SELECT * INTO CORRESPONDING FIELDS OF TABLE SP1 FROM SPFLI.*测试输出数据*LOOP AT SP1.* WRITE: / SP1-CARRID,SP1-CITYFROM.*ENDLOOP.*直接调用窗口CALL SCREEN 100.*用户交互MODULE USER_COMMAND_0100 INPUT.SA VE_OK = OK_CODE.CLEAR OK_CODE.*退出按钮时退出程序CASE SA VE_OK.‘EXIT’.WHENPROGRAM.LEA VEENDCASE.ENDMODULE.*定义状态条、包括菜单、工具条按钮、系统按钮等MODULE STATUS_0100 OUTPUT.SET PF-STATUS ‘STATUS1’.ENDMODULE.7.1.2 使用向导建立Table Control控件启动屏幕编辑器,选“表控制”按钮(),在屏幕上建立该对象后,系统启动导航界面,如图7-1所示.。

ABAP中使用TABLE CONTROL 显示数据以及操作要点小结:

ABAP中使用TABLE CONTROL 显示数据以及操作要点小结:

TABLE CONTROL操作要点小结1.屏幕号:1002.在屏幕100中应用table control*声明control T1应用于屏幕100CONTROLS T1 TYPE TABLEVIEW USING SCREEN 100.“T1代表自定义的table control的名字3.要想给table control中自动赋值,则需把table control 中的字段名定义为:WA_SPFLI-CARRID格式。

主程序代码:*&---------------------------------------------------------------------**& Report ZTABLECONTROL02_*&---------------------------------------------------------------------**&CREATOR:*&---------------------------------------------------------------------*REPORT ZTABLECONTROL02_LIUMING.*引入表spfliTABLES:SPFLI.*定义结构体TYPES:BEGIN OF TY_DATA,CARRID LIKE SPFLI-CARRID,CONNID LIKE SPFLI-CONNID,COUNTRYFR LIKE SPFLI-COUNTRYFR,CITYFROM LIKE SPFLI-CITYFROM,AIRPFROM LIKE SPFLI-AIRPFROM,FLAG TYPE C,END OF TY_DATA.*定义内表和工作区DATA:IT_SPFLI TYPE TABLE OF TY_DATA,WA_SPFLI LIKE LINE OF IT_SPFLI.*获取数据SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABL E IT_SPFLI.*定义分页所需参数DATA: PAGESIZE TYPE I VALUE23, "每页条数NUM TYPE I, "判断是否刚好是整页COUNT TYPE I, "总条数AFTER TYPE I, "下一页的第一条PAGECOUNT TYPE I, "总共有几页PAGENUM TYPE I VALUE1. "第几页DESCRIBE TABLE IT_SPFLI LINES COUNT.NUM = COUNT MOD PAGESIZE.IF NUM <> 0 .PAGECOUNT = COUNT DIV PAGESIZE + 1.ELSE.PAGECOUNT = COUNT DIV PAGESIZE.ENDIF.*声明变量DATA:OK_CODE TYPE SY-UCOMM,SAVE_OK TYPE SY-UCOMM.*声明control T1应用于屏幕100CONTROLS T1 TYPE TABLEVIEW USING SCREEN100.*调用屏幕100CALL SCREEN100.*打印数据IF NOT IT_SPFLI IS INITIAL.LOOP AT IT_SPFLI INTO WA_SPFLI .WRITE:/2 WA_SPFLI-CARRID,10 WA_SPFLI-CONNID,18 WA_SPFLI-COUNTRYFR,26 WA_SPFLI-CITYFROM,34 WA_SPFLI-AIRPFROM .ENDLOOP.ENDIF.*&---------------------------------------------------------------------**& Module STATUS_0100 OUTPUT*&---------------------------------------------------* 退出图标*----------------------------------------------------------------------*MODULE STATUS_0100 OUTPUT.SET PF-STATUS 'STATUS01'.* SET TITLEBAR 'xxx'.ENDMODULE. " STATUS_0100 OUTPUT*&---------------------------------------------------------------------**& Module USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------** 实现用户命令*----------------------------------------------------------------------*MODULE USER_COMMAND_0100 INPUT.SAVE_OK = OK_CODE.CLEAR OK_CODE.CASE SAVE_OK.WHEN'ISWRITE'. "读写转换PERFORM ISWRITE.WHEN'ASC'. "升序处理SORT IT_SPFLI BY CARRID CONNID ASCENDING.WHEN'DES'. "降序处理SORT IT_SPFLI BY CARRID DESCENDING CONNID DESCENDING.WHEN'SHOW'. "用弹出框显示选中行信息PERFORM SHOW.WHEN'FIRSTPAGE'. "显示首页PERFORM FIRSTPAGE.WHEN'PREVIOUS'. "上一页PERFORM PREVIOUS.WHEN'NEXT'. "下一页PERFORM NEXT.WHEN'LAST'. "最后一页PERFORM LAST.WHEN'SELECTALL'. "选中全部PERFORM SELECTALL.WHEN'SELBLOCK'. "选中光标所在行PERFORM SELBLOCK.WHEN'DESELALL'. " 取消全选PERFORM DESELALL.WHEN'INSERTROW'. "插入一行(内表)PERFORM INSERTROW.WHEN'DELETEROW'. "删除选中行(未成功)PERFORM DELETEROW.WHEN'LEAVE'. "回到初始屏幕SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABL E IT_SPFLI.LEAVE TO SCREEN0.ENDCASE.ENDMODULE. " USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------**& Form ISWRITE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "读写转换*----------------------------------------------------------------------*FORM ISWRITE .DATA COL LIKE LINE OF T1-COLS.LOOP AT T1-COLS INTO COL.IF SY-TABIX = 1OR SY-TABIX = 2.COL-SCREEN-INPUT = 1.ELSE.IF COL-SCREEN-INPUT = 0.COL-SCREEN-INPUT = 1.ELSE.COL-SCREEN-INPUT = 0.ENDIF.ENDIF.MODIFY T1-COLS FROM COL.ENDLOOP.ENDFORM. " ISWRITE*&---------------------------------------------------------------------**& Form SHOW*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "用弹出框显示选中行信息*----------------------------------------------------------------------*FORM SHOW .DATA:C_LINE TYPE I, "定义点击的行idC_INDEX TYPE I. "定义对应的内表中的idGET CURSOR LINE C_LINE. "鼠标所在的行C_INDEX = T1-TOP_LINE + C_LINE - 1."TOP_LINE对应第一条数据READ TABLE IT_SPFLI INTO WA_SPFLI INDEX C_INDEX.CALL FUNCTION'POPUP_TO_DISPLAY_TEXT'EXPORTINGTITEL = 'HAHA 'TEXTLINE1 = WA_SPFLI-CARRIDTEXTLINE2 = WA_SPFLI-CONNIDSTART_COLUMN = 25START_ROW = 6.ENDFORM. " SHOW*&---------------------------------------------------------------------**& Form FIRSTPAGE*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "显示首页*----------------------------------------------------------------------*FORM FIRSTPAGE .SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE IT_SPFLI.IF PAGENUM <> 1.PAGENUM = 1.ELSE.PAGENUM = 1.MESSAGE S000(Z001) WITH'该页为首页'.ENDIF.ENDFORM. " FIRSTPAGE*&---------------------------------------------------------------------**& Form PREVIOUS*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "上一页*----------------------------------------------------------------------*FORM PREVIOUS .SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TAB LE IT_SPFLI.IF PAGENUM > 2.AFTER = ( PAGENUM - 2 ) * PAGESIZE. "上两页的最后一条DELETE IT_SPFLI FROM1TO AFTER.PAGENUM = PAGENUM - 1.ELSEIF PAGENUM = 2.PAGENUM = PAGENUM - 1.ELSEIF PAGENUM = 1.PAGENUM = 1.MESSAGE S000(Z001) WITH'该页是第一页'.ENDIF.ENDFORM. " PREVIOUS*&---------------------------------------------------------------------**& Form NEXT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "下一页*----------------------------------------------------------------------*FORM NEXT .SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABL E IT_SPFLI.AFTER = PAGENUM * PAGESIZE. "该页的最后一条DATA AFTER1 TYPE I.AFTER1 = ( PAGENUM - 1 ) * PAGESIZE.IF PAGENUM = 1.DELETE IT_SPFLI FROM1TO PAGESIZE.ELSEIF PAGENUM = PAGECOUNT.PAGENUM = PAGENUM.DELETE IT_SPFLI FROM1TO AFTER1.MESSAGE S000(Z001) WITH'该页为最后一页'.ELSE.PAGENUM = PAGENUM + 1.DELETE IT_SPFLI FROM1TO AFTER.IF PAGENUM = PAGECOUNT.PAGENUM = PAGENUM.ELSE.PAGENUM = PAGENUM + 1.ENDIF.ENDIF.ENDFORM. " NEXT*&---------------------------------------------------------------------**& Form LAST*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "最后一页*----------------------------------------------------------------------*FORM LAST .SELECT * FROM SPFLI INTO CORRESPONDING FIE LDS OF TABLE IT_SPFLI.DATA P TYPE I.P = PAGECOUNT - 1.AFTER = P * PAGESIZE.IF PAGENUM = PAGECOUNT.DATA AFTER1 TYPE I.AFTER1 = ( PAGENUM - 1 ) * PAGESIZE.DELETE IT_SPFLI FROM1TO AFTER1.PAGENUM = PAGENUM.MESSAGE S000(Z001) WITH'该页为最后一页'.ELSE.DELETE IT_SPFLI FROM1TO AFTER.PAGENUM = PAGECOUNT.ENDIF.ENDFORM. " LAST*&---------------------------------------------------------------------**& Form SELECTALL*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "选中全部*----------------------------------------------------------------------*FORM SELECTALL .LOOP AT IT_SPFLI INTO WA_SPFLI.IF WA_SPFLI-FLAG = ''.WA_SPFLI-FLAG = 'X'.MODIFY IT_SPFLI FROM WA_SPFLI.ENDIF.ENDLOOP.ENDFORM. " SELECTALL*&---------------------------------------------------------------------**& Form SELBLOCK*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "选中光标所在行*----------------------------------------------------------------------*FORM SELBLOCK .DATA:S_LINE TYPE I, "定义点击的行idS_INDEX TYPE I. "定义对应的内表中的idGET CURSOR LINE S_LINE. "鼠标所在的行S_INDEX = T1-TOP_LINE + S_LINE - 1."TOP_LINE对应第一条数据READ TABLE IT_SPFLI INTO WA_SPFLI INDEX S_INDEX. WA_SPFLI-FLAG = 'X'.MODIFY IT_SPFLI FROM WA_SPFLI INDEX S_INDEX. ENDFORM. " SELBLOCK*&---------------------------------------------------------------------**& Form DESELALL*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> " 取消全选*----------------------------------------------------------------------*FORM DESELALL .LOOP AT IT_SPFLI INTO WA_SPFLI.IF WA_SPFLI-FLAG = 'X'.WA_SPFLI-FLAG = ''.MODIFY IT_SPFLI FROM WA_SPFLI.ENDIF.ENDLOOP.ENDFORM. " DESELALL*&---------------------------------------------------------------------**& Form INSERTROW*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "插入一行(内表)*----------------------------------------------------------------------*FORM INSERTROW .CLEAR WA_SPFLI.DATA: I_LINE TYPE I,I_INDEX TYPE I.GET CURSOR LINE I_LINE.INSERT WA_SPFLI INTO IT_SPFLI INDEX I_LINE. ENDFORM. " INSERTROW*&---------------------------------------------------------------------**& Form DELETEROW*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> "删除选中行*----------------------------------------------------------------------*FORM DELETEROW .LOOP AT IT_SPFLI INTO WA_SPFLI.IF WA_SPFLI-FLAG = 'X'.DELETE IT_SPFLI INDEX SY-TABIX.ENDIF.ENDLOOP.ENDFORM. " DELETEROW*&---------------------------------------------------------------------**& Module MODI INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE MODI INPUT.MODIFY IT_SPFLI FROM WA_SPFLI INDEX T1-CURRENT_LINE. ENDMODULE. " MODI INPUT屏幕100中的代码:PROCESS BEFORE OUTPUT.MODULE STATUS_0100.LOOP AT IT_SPFLI INTO WA_SPFLI WITH CONTROL T1.ENDLOOP.PROCESS AFTER INPUT.*MODULE CANCEL AT EXIT-COMMAND. LOOP AT IT_SPFLI.MODULE MODI.ENDLOOP.MODULE USER_COMMAND_0100.。

用向导创建table control并实现动态控制单元格编辑状态

用向导创建table control并实现动态控制单元格编辑状态

Table Control中我们可以根据每行记录的字段条件限制相关的单元格的编辑状态,如本例中根据'性别'来判断单元格编辑状态。

1、se38新建程序1.TYPES : BEGIN OF ty_emp_details,2. pernr TYPE pa0001-pernr ,3. gender TYPE gesch,4. input TYPE char10,5. sel TYPE char1,"table control左侧多选按钮6. END OF ty_emp_details.7.DATA : it_emp_details TYPE TABLE OF ty_emp_details,8. wa_emp_details TYPE ty_emp_details.9.START-OF-SELECTION.10. CALL SCREEN 2000.复制代码2、创建2000标准屏幕,定义ok_code3、绘制table control,点击“格式”用向导创建table control输入table control名称因为是自定义结构,不是直接参考数据字段,所以选择下面那种情况选择需要显示的字段,sel是table control左侧选择按钮对应的字段输入结构中,用于在table control左侧选择按钮对应的字段翻页、插入/删除行、全选/全不选用向导生成的代码放置在哪个include下,我们这里就都放在主程序下,实战中一个程序都包含多个include,用来分类不同类型的代码,便于阅读维护'性别'字段的属性4、逻辑流用向导生成代码,这里会自动生成相应的代码,我们需要PBO事件下,修改相应的module1.MODULE tc_2000_change_tc_attr OUTPUT.2. IF it_emp_details IS INITIAL.3. APPEND wa_emp_details TO it_emp_details.4. ENDIF.5. DESCRIBE TABLE it_emp_details LINES tc_2000-lines.6.ENDMODULE. "TC_2000_CHANGE_TC_ATTR OUTPUT复制代码1.MODULE tc_2000_get_lines OUTPUT.2. g_tc_2000_lines = sy-loopc.3.4. LOOP AT SCREEN.5. IF screen-name = 'WA_EMP_DETAILS-INPUT'.6. IF wa_emp_details-gender NE '1'.7. screen-input = '1'.8. ELSE.9. screen-input = '0'.10. ENDIF.11. MODIFY SCREEN.12. ENDIF.13. ENDLOOP.14.ENDMODULE. "TC_2000_GET_LINES OUTPUT 复制代码5、程序执行效果:6、程序完整代码:1.TYPES : BEGIN OF ty_emp_details,2. pernr TYPE pa0001-pernr ,3. gender TYPE gesch,4. input TYPE char10,5. sel TYPE char1,"table control左侧多选按钮6. END OF ty_emp_details.7.DATA : it_emp_details TYPE TABLE OF ty_emp_details,8. wa_emp_details TYPE ty_emp_details.9.10.*&SPWIZARD: DECLARATION OF TABLECONTROL 'TC_2000' ITSELF11.CONTROLS: tc_2000 TYPE TABLEVIEW USING SCREEN 2000.12.13.*&SPWIZARD: LINES OF TABLECONTROL 'TC_2000'14.DATA: g_tc_2000_lines LIKE sy-loopc.15.16.DATA: ok_code LIKE sy-ucomm.17.18.START-OF-SELECTION.19. CALL SCREEN 2000.20.21.*&SPWIZARD: OUTPUT MODULE FOR TC 'TC_2000'. DO NOT CHANGE THIS LINE!22.*&SPWIZARD: UPDATE LINES FOR EQUIV ALE NT SCROLLBAR23.MODULE tc_2000_change_tc_attr OUTPUT.24. IF it_emp_details IS INITIAL.25. APPEND wa_emp_details TO it_emp_details.26. ENDIF.27. DESCRIBE TABLE it_emp_details LINES tc_2000-lines.28.ENDMODULE. "TC_2000_CHANGE_TC_ATTR OUTPUT29.30.*&SPWIZARD: OUTPUT MODULE FOR TC 'TC_2000'. DO NOT CHANGE THIS LINE!31.*&SPWIZARD: GET LINES OF TABLECONTROL32.MODULE tc_2000_get_lines OUTPUT.33. g_tc_2000_lines = sy-loopc.34.35. LOOP AT SCREEN.36. IF screen-name = 'WA_EMP_DETAILS-INPUT'.37. IF wa_emp_details-gender NE '1'.38. screen-input = '1'.39. ELSE.40. screen-input = '0'.41. ENDIF.42. MODIFY SCREEN.43. ENDIF.44. ENDLOOP.45.ENDMODULE. "TC_2000_GET_LINES OUTPUT46.47.*&SPWIZARD: INPUT MODULE FOR TC 'TC_2000'. DO NOT CHANGE THIS LINE!48.*&SPWIZARD: MODIFY TABLE49.MODULE tc_2000_modify INPUT.50. MODIFY it_emp_details51. FROM wa_emp_details52. INDEX tc_2000-current_line.53.ENDMODULE. "TC_2000_MODIFY INPUT54.55.*&SPWIZARD: INPUT MODUL FOR TC 'TC_2000'. DO NOT CHANGE THIS LINE!56.*&SPWIZARD: MARK TABLE57.MODULE tc_2000_mark INPUT.58. DATA: g_tc_2000_wa2 LIKE LINE OF it_emp_details.59. IF tc_2000-line_sel_mode = 160. AND wa_emp_details-sel = 'X'.61. LOOP AT it_emp_details INTO g_tc_2000_wa262. WHERE sel = 'X'.63. g_tc_2000_wa2-sel = ''.64. MODIFY it_emp_details65. FROM g_tc_2000_wa266. TRANSPORTING sel.67. ENDLOOP.68. ENDIF.69. MODIFY it_emp_details70. FROM wa_emp_details71. INDEX tc_2000-current_line72. TRANSPORTING sel.73.ENDMODULE. "TC_2000_MARK INPUT74.75.*&SPWIZARD: INPUT MODULE FOR TC 'TC_2000'. DO NOT CHANGE THIS LINE!76.*&SPWIZARD: PROCESS USER COMMAND77.MODULE tc_2000_user_command INPUT.78. ok_code = sy-ucomm.79. PERFORM user_ok_tc USING 'TC_2000'80. 'IT_EMP_DETAILS'81. 'SEL'82. CHANGING ok_code.83. sy-ucomm = ok_code.84.ENDMODULE. "TC_2000_USER_COMMAND INPUT85.86.*----------------------------------------------------------------------*87.* INCLUDE TABLECONTROL_Forms *88.*----------------------------------------------------------------------*89.90.*&---------------------------------------------------------------------*91.*& Form USER_OK_TC *92.*&---------------------------------------------------------------------*93.FORM user_ok_tc USING p_tc_name TYPE dynfnam94. p_table_name95. p_mark_name96. CHANGING p_ok LIKE sy-ucomm.97.98.*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*99. DATA: l_ok TYPE sy-ucomm,100. l_offset TYPE i.101.*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 102.103.*&SPWIZARD: Table control specific operations * 104.*&SPWIZARD: evaluate TC name and operations * 105. SEARCH p_ok FOR p_tc_name.106. IF sy-subrc <> 0.107. EXIT.108. ENDIF.109. l_offset = STRLEN( p_tc_name ) + 1.110. l_ok = p_ok+l_offset.111.*&SPWIZARD: execute general and TC specific operations * 112. CASE l_ok.113. WHEN 'INSR'. "insert row114. PERFORM fcode_insert_row USING p_tc_name115. p_table_name.116. CLEAR p_ok.117.118. WHEN 'DELE'. "delete row119. PERFORM fcode_delete_row USING p_tc_name120. p_table_name121. p_mark_name.122. CLEAR p_ok.123.124. WHEN 'P--' OR "top of list125. 'P-' OR "previous page126. 'P+' OR "next page127. 'P++'. "bottom of list128. PERFORM compute_scrolling_in_tc USING p_tc_name129. l_ok.130. CLEAR p_ok.131.* WHEN 'L--'. "total left132.* PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.133.*134.* WHEN 'L-'. "column left135.* PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.136.*137.* WHEN 'R+'. "column right138.* PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.139.*140.* WHEN 'R++'. "total right141.* PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.142.*143. WHEN 'MARK'. "mark all filled lines 144. PERFORM fcode_tc_mark_lines USING p_tc_name145. p_table_name146. p_mark_name .147. CLEAR p_ok.148.149. WHEN 'DMRK'. "demark all filled lines 150. PERFORM fcode_tc_demark_lines USING p_tc_name151. p_table_name152. p_mark_name .153. CLEAR p_ok.154.155.* WHEN 'SASCEND' OR156.* 'SDESCEND'. "sort column157.* PERFORM FCODE_SORT_TC USING P_TC_NAME158.* l_ok.159.160. ENDCASE.161.162.E NDFORM. " USER_OK_TC163.164.*&---------------------------------------------------------------------* 165.*& Form FCODE_INSERT_ROW * 166.*&---------------------------------------------------------------------* 167.F ORM fcode_insert_row168. USING p_tc_name TYPE dynfnam169. p_table_name .170.171.*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* 172. DATA l_lines_name LIKE feld-name.173. DATA l_selline LIKE sy-stepl.174. DATA l_lastline TYPE i.175. DATA l_line TYPE i.176. DATA l_table_name LIKE feld-name.177. FIELD-SYMBOLS <tc> TYPE cxtab_control.178. FIELD-SYMBOLS <table> TYPE STANDARD TABLE.179. FIELD-SYMBOLS <lines> TYPE i.180.*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 181.182. ASSIGN (p_tc_name) TO <tc>.183.184.*&SPWIZARD: get the table, which belongs to the tc * 185. CONCATENATE p_table_name '[]' INTO l_table_name. "table body186. ASSIGN (l_table_name) TO <table>. "not headerline187.188.*&SPWIZARD: get looplines of TableControl * 189. CONCATENATE 'G_' p_tc_name '_LINES' INTO l_lines_name.190. ASSIGN (l_lines_name) TO <lines>.191.192.*&SPWIZARD: get current line * 193. GET CURSOR LINE l_selline.194. IF sy-subrc <> 0. " append line to table195. l_selline = <tc>-lines + 1.196.*&SPWIZARD: set top line * 197. IF l_selline > <lines>.198. <tc>-top_line = l_selline - <lines> + 1 .199. ELSE.200. <tc>-top_line = 1.201. ENDIF.202. ELSE. " insert line into table203. l_selline = <tc>-top_line + l_selline - 1.204. l_lastline = <tc>-top_line + <lines> - 1.205. ENDIF.206.*&SPWIZARD: set new cursor line * 207. l_line = l_selline - <tc>-top_line + 1.208.209.*&SPWIZARD: insert initial line * 210. INSERT INITIAL LINE INTO <table> INDEX l_selline.211. <tc>-lines = <tc>-lines + 1.212.*&SPWIZARD: set cursor * 213. SET CURSOR LINE l_line.214.215.E NDFORM. " FCODE_INSERT_ROW216.217.*&---------------------------------------------------------------------* 218.*& Form FCODE_DELETE_ROW * 219.*&---------------------------------------------------------------------* 220.F ORM fcode_delete_row221. USING p_tc_name TYPE dynfnam222. p_table_name223. p_mark_name .224.225.*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* 226. DATA l_table_name LIKE feld-name.227.228. FIELD-SYMBOLS <tc> TYPE cxtab_control.229. FIELD-SYMBOLS <table> TYPE STANDARD TABLE.230. FIELD-SYMBOLS <wa>.231. FIELD-SYMBOLS <mark_field>.232.*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 233.234. ASSIGN (p_tc_name) TO <tc>.235.236.*&SPWIZARD: get the table, which belongs to the tc * 237. CONCATENATE p_table_name '[]' INTO l_table_name. "table body238. ASSIGN (l_table_name) TO <table>. "not headerline239.240.*&SPWIZARD: delete marked lines * 241. DESCRIBE TABLE <table> LINES <tc>-lines.242.243. LOOP AT <table> ASSIGNING <wa>.244.245.*&SPWIZARD: access to the component 'FLAG' of the table header * 246. ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>. 247.248. IF <mark_field> = 'X'.249. DELETE <table> INDEX syst-tabix.250. IF sy-subrc = 0.251. <tc>-lines = <tc>-lines - 1.252. ENDIF.253. ENDIF.254. ENDLOOP.255.256.E NDFORM. " FCODE_DELETE_ROW257.258.*&---------------------------------------------------------------------* 259.*& Form COMPUTE_SCROLLING_IN_TC260.*&---------------------------------------------------------------------* 261.* text262.*----------------------------------------------------------------------* 263.* -->P_TC_NAME name of tablecontrol264.* -->P_OK ok code265.*----------------------------------------------------------------------* 266.F ORM compute_scrolling_in_tc USING p_tc_name267. p_ok.268.*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* 269. DATA l_tc_new_top_line TYPE i.270. DATA l_tc_name LIKE feld-name.271. DATA l_tc_lines_name LIKE feld-name.272. DATA l_tc_field_name LIKE feld-name.273.274. FIELD-SYMBOLS <tc> TYPE cxtab_control.275. FIELD-SYMBOLS <lines> TYPE i.276.*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 277.278. ASSIGN (p_tc_name) TO <tc>.279.*&SPWIZARD: get looplines of TableControl * 280. CONCATENATE 'G_' p_tc_name '_LINES' INTO l_tc_lines_name.281. ASSIGN (l_tc_lines_name) TO <lines>.282.283.284.*&SPWIZARD: is no line filled? * 285. IF <tc>-lines = 0.286.*&SPWIZARD: yes, ... *287. l_tc_new_top_line = 1.288. ELSE.289.*&SPWIZARD: no, ... * 290. CALL FUNCTION 'SCROLLING_IN_TABLE'291. EXPORTING292. entry_act = <tc>-top_line293. entry_from = 1294. entry_to = <tc>-lines295. last_page_full = 'X'296. loops = <lines>297. ok_code = p_ok298. overlapping = 'X'299. IMPORTING300. entry_new = l_tc_new_top_line301. EXCEPTIONS302.* NO_ENTRY_OR_PAGE_ACT = 01303.* NO_ENTRY_TO = 02304.* NO_OK_CODE_OR_PAGE_GO = 03305. OTHERS = 0.306. ENDIF.307.308.*&SPWIZARD: get actual tc and column * 309. GET CURSOR FIELD l_tc_field_name310. AREA l_tc_name.311.312. IF syst-subrc = 0.313. IF l_tc_name = p_tc_name.314.*&SPWIZARD: et actual column * 315. SET CURSOR FIELD l_tc_field_name LINE 1.316. ENDIF.317. ENDIF.318.319.*&SPWIZARD: set the new top line * 320. <tc>-top_line = l_tc_new_top_line.321.322.323.E NDFORM. " COMPUTE_SCROLLING_IN_TC324.325.*&---------------------------------------------------------------------* 326.*& Form FCODE_TC_MARK_LINES327.*&---------------------------------------------------------------------* 328.* marks all TableControl lines329.*----------------------------------------------------------------------* 330.* -->P_TC_NAME name of tablecontrol331.*----------------------------------------------------------------------* 332.F ORM fcode_tc_mark_lines USING p_tc_name333. p_table_name334. p_mark_name.335.*&SPWIZARD: EGIN OF LOCAL DATA-----------------------------------------* 336. DATA l_table_name LIKE feld-name.337.338. FIELD-SYMBOLS <tc> TYPE cxtab_control.339. FIELD-SYMBOLS <table> TYPE STANDARD TABLE.340. FIELD-SYMBOLS <wa>.341. FIELD-SYMBOLS <mark_field>.342.*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 343.344. ASSIGN (p_tc_name) TO <tc>.345.346.*&SPWIZARD: get the table, which belongs to the tc * 347. CONCATENATE p_table_name '[]' INTO l_table_name. "table body348. ASSIGN (l_table_name) TO <table>. "not headerline349.350.*&SPWIZARD: mark all filled lines * 351. LOOP AT <table> ASSIGNING <wa>.352.353.*&SPWIZARD: access to the component 'FLAG' of the table header * 354. ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>. 355.356. <mark_field> = 'X'.357. ENDLOOP.358.E NDFORM. "fcode_tc_mark_lines 359.360.*&---------------------------------------------------------------------* 361.*& Form FCODE_TC_DEMARK_LINES362.*&---------------------------------------------------------------------* 363.* demarks all TableControl lines364.*----------------------------------------------------------------------* 365.* -->P_TC_NAME name of tablecontrol366.*----------------------------------------------------------------------* 367.F ORM fcode_tc_demark_lines USING p_tc_name368. p_table_name369. p_mark_name .370.*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* 371. DATA l_table_name LIKE feld-name.372.373. FIELD-SYMBOLS <tc> TYPE cxtab_control.374. FIELD-SYMBOLS <table> TYPE STANDARD TABLE.375. FIELD-SYMBOLS <wa>.376. FIELD-SYMBOLS <mark_field>.377.*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 378.379. ASSIGN (p_tc_name) TO <tc>.380.381.*&SPWIZARD: get the table, which belongs to the tc * 382. CONCATENATE p_table_name '[]' INTO l_table_name. "table body383. ASSIGN (l_table_name) TO <table>. "not headerline384.385.*&SPWIZARD: demark all filled lines * 386. LOOP AT <table> ASSIGNING <wa>.387.388.*&SPWIZARD: access to the component 'FLAG' of the table header * 389. ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>. 390.391. <mark_field> = space.392. ENDLOOP.393.E NDFORM. "fcode_tc_mark_lines。

table的用法和例句

table的用法和例句

table的用法和例句一、table的概述和用途表格(table)是网页设计中常用的一种元素,能够以整齐、有序的方式展示数据。

在HTML(超文本标记语言)中,可以通过使用table标签来创建表格。

这篇文章将介绍table标签的基本用法和举例说明。

二、创建简单表格在HTML中,要创建一个简单的表格,首先需要使用table标签来定义表格,并使用tr(table row)标签定义行。

接着,在每一行里使用td(table data)标签来定义列。

以下是一个简单的示例:```<table><tr><td>第一列</td><td>第二列</td><td>第三列</td></tr><tr><td>内容1</td><td>内容2</td><td>内容3</td><tr><td>内容4</td><td>内容5</td><td>内容6</td></tr></table>```在上述示例中,我们创建了一个包含三行三列的简单表格。

三、设置表头和单元格合并在实际应用中,经常需要设置表头以使其突出显示,并且可能还需要合并某些单元格以呈现更复杂的布局。

下面是几个常用的设置:1. 表头:可以通过使用th(table header)标签来定义表头,如下所示:```<table><tr><th>姓名</th><th>年龄</th><th>性别</th></tr><td>张三</td><td>25</td><td>男</td></tr>...</table>```2. 合并单元格:有时候需要将某几个单元格合并为一个大的单元格,可以使用colspan属性来实现。

ABAP表控制TableControl设计

ABAP表控制TableControl设计

ABAP表控制TableControl设计表控制(Table Control)是SAP应用中最重要的对象之一,业务单据的输入、基础数据的表格输入等都是使用Table Control控件,本章主要介绍:(1)在屏幕设计中通过向导来制作表控件对象,由系统生成程序;(2)非向导设计Table Control控件;(3)通过系统生成数据表维护程序,并在程序中调用;(4)表格设计技巧;(5)通过表格维护变更内表数据,并将内表数据提交数据库。

1、使用向导制作Table Control本节先建立一个内表,通过向导建立一个表格控件使用该内表。

1.1、建立程序先建立程序,定义内表,屏幕有退出按钮,主程序代码如下[plain] view plaincopyprint?1.REPORT YTEST20160615002.2.3.DATA: OK_CODE TYPE SY-UCOMM,4.SAVE_OK LIKE OK_CODE.5.6.*定义内表,注意两种写法一样7.*DATA SH1 LIKE YTJAYSCHOOL OCCURS 0 WITH HEADER LINE.8.DATA SH1 LIKE TABLE OF YTJAYSCHOOL WITH HEADER LI NE.9.*增加内表数据10.SELECT * INTO CORRESPONDING FIELDS OF TABLE SH 1 FROM YTJAYSCHOOL.11.12.*测试输出数据13.LOOP AT SH1.14.WRITE:/ SH1-YCT_ID, SH1-YSH_ID, SH1-YSH_NAME, SH1-YSH_ADDR.15.ENDLOOP.16.17.*直接调用窗口18.CALL SCREEN 100.19.20.*用户交互21.MODULE USER_COMMAND_0100 INPUT.22.SAVE_OK = OK_CODE.23.CLEAR OK_CODE.24.*退出按钮时退出程序25.CASE SAVE_OK.26.WHEN 'CANCEL'.27.LEAVE PROGRAM.28.ENDCASE.29.ENDMODULE.30.31.MODULE STATUS_0100 OUTPUT.32.SET PF-STATUS 'STATUS1'.33.ENDMODULE.REPORT YTEST20160615002. DATA: OK_CODE TYPE SY-UCOMM, SAVE_OK LIKE OK_CODE. *定义内表,注意两种写法一样*DATA SH1 LIKE YTJAYSCHOOL OCCURS 0 WITH HEADER LINE. DATA SH1 LIKE TABLE OF YTJAYSCHOOL WITH HEADER LINE. *增加内表数据SELECT * INTO CORRESPONDING FIELDS OF TABLE SH1 FROM YTJAYSCHOOL. *测试输出数据 LOOP AT SH1. WRITE:/ SH1-YCT_ID, SH1-YSH_ID, SH1-YSH_NAME, SH1-YSH_ADDR. ENDLOOP. *直接调用窗口 CALL SCREEN 100. *用户交互 MODULEUSER_COMMAND_0100 INPUT. SAVE_OK = OK_CODE. CLEAR OK_CODE. *退出按钮时退出程序 CASE SAVE_OK. WHEN 'CANCEL'. LEAVE PROGRAM. ENDCASE. ENDMODULE. MODULE STATUS_0100 OUTPUT. SET PF-STATUS 'STATUS1'. ENDMODULE.逻辑流程序[plain] view plaincopyprint?1.PROCESS BEFORE OUTPUT.2.MODULE STATUS_0100.3.4.PROCESS AFTER INPUT.5.MODULE USER_COMMAND_0100.PROCESS BEFORE OUTPUT. MODULE STATUS_0100. PROCESS AFTER INPUT. MODULE USER_COMMAND_0100.1.2、使用向导建立Table Control控件启动屏幕编辑器,选“表控件”按钮,在屏幕上建立该对象后,系统自动导航界面,如图输入Table Control的名称,继续选择从内表建立,输入内表名称SH1(在主程序中已建立该内表)如果程序没有激活,会提示需要激活,此时再打开一个SESSION 激活程序,此前我们已经激活该程序。

X-Y Table数值控制平台

X-Y Table数值控制平台

實驗九X-Y Table數值控制平台一、實驗題目1.請使用麥克筆與紙在XY平台上繪出菱形2.請使用麥克筆與紙在XY平台上繪出橢圓形3.請使用麥克筆與紙在XY平台上繪出空心的英文字母v4.請使用麥克筆與紙在XY平台上繪出阿拉伯數字55.請使用麥克筆與紙在XY平台上繪出’十’字6.讓平台以快慢快的速度作直線運動7.請使用麥克筆與紙以30秒的時間在XY平台上繪出一條10公分的直線8.請使用麥克筆與紙以60秒的時間在XY平台上繪出一半徑3公分的圓二、實驗目的本實驗在於介紹如何使用NC CODE來控制XY TABLE。

使用NC CODE 來控制XY TABLE是目前常用的一種方式,也是非常簡單的一種方式。

過程中同學將學習到如何編寫NC CODE程式來對XY TABLE進行控制,並熟悉目前NC CODE的一些常用的格式與XY TABLE的控制。

三、實驗儀器XY TABLE 平台步進馬達驅動器與微處理器個人電腦麥克筆與紙四、實驗原理TC-4017(X-Y平台定位模組)控制系統,係一開放迴路控制(OPEN LOOP CONTROL)。

本模組提供使用者操作機台的軟件(SOFTWARE)和微處理器(MICROPROCESS)經過標準通信介面傳輸RS-232-C與個人電腦連線,所以使用者可以在個人電腦上規劃機台(TABLE)移動的路徑和操作方式。

一般稱為編輯NC(數值控制)程式。

這些數據(NC程式)經由個人電腦內RS-232-C傳輸至微處理器。

微處理器內部有CPU(6809系列)和RAM-ROM-I/0介面……等,解讀由RS-232-C收到的串列數據,並且執行機能碼(G-CODE)已經規劃完成的機械移動路徑數學方程式,而使X軸或Y 軸做單軸移動或雙軸同時移動的機械位移。

微處理器每次輸出一個脈衝(PULSE)信號,可以使步進馬達(STEPMOTOR)旋轉1.8degree,所以經由軸連接器連接滾珠導螺桿(BALLSCREW)而驅動滑台(SLIDER)移動,這些驅動機械位移的脈衝信號皆由人為的電氣信號所控制。

excel表单控件使用方法

excel表单控件使用方法

如何在工作表中的工作表上使用表单控件Excel 摘要Microsoft Excel为对话框工作表提供了多个控件,这些控件可用于从列表中选择项目。

控件的示例包括列表框、组合框、旋转按钮和滚动条。

有关工作表中的表单控件Excel,请参阅表单、表单控件和ActiveX工作表上的控件概述。

详细信息以下方法显示如何使用列表框、组合框、旋转按钮和滚动条。

这些示例使用相同的列表、单元格链接和Index 函数。

启用"开发工具"选项卡若要使用2010 Excel及更高版本中的表单控件,必须启用"开发工具"选项卡。

请按以下步骤完成此操作:1.单击“文件”,然后单击“选项”。

2.3.单击左窗格中的"自定义功能区"。

4.5.选中右侧"主选项卡"下的"开发工具"复选框,然后单击"确定"。

6.若要在2007 Excel表单控件,必须启用"开发工具"选项卡。

请按以下步骤完成此操作:1.单击“Microsoft Office 按钮”,然后单击“Excel 选项”。

2.3.单击"常用",选中"在功能区中显示开发工具"选项卡复选框,然后单击"确定"。

4.设置列表、单元格链接和索引1.在新的工作表中,在H1:H20 区域键入以下项:2.H1:花样滑冰3.H2:VCR4.H3 :桌面5.H4 :小队6. H5 :汽车7. H6:安装计算机8. H7 :Launcher9. H8 :自行车10. H9:电话11. H10:中国12. H11:Candy13. H12:扬声器14. H13:服装15. H14:毛16. H15:中国17.H16:Guitar18.H17:中国19.H18:工具集20.H19:VCR21.H20:硬盘22.23.在单元格A1 中,键入以下公式:=INDEX (H1:H20,G1,0)24.列表框示例1.若要在Excel 2007 及更高版本中添加列表框,请单击"开发工具"选项卡,单击"控件"组中"插入",然后单击"表单控件"下的"列表框窗体" ("控件) "。

devexpress table cell 表达式

devexpress table cell 表达式

Devexpress是一个面向开发人员的软件开发公司,该公司开发的产品被广泛用于各种软件开发项目中。

其中,Devexpress的表格控件(Table Control)是非常常用的功能之一。

而在表格控件中,表格单元格(Table Cell)的表达式功能也是开发人员经常会用到的一个功能。

在Devexpress的表格单元格中,可以通过表达式来实现一些动态的计算、显示和控制。

这些表达式可以帮助开发人员在表格中展示计算结果、根据条件显示不同的内容、对数据进行格式化等等。

下面将介绍一些关于Devexpress表格单元格表达式的使用方法和一些常见问题的解决方案。

一、表达式的基本语法在Devexpress的表格单元格中,可以使用一些特定的语法来表示表达式,常见的语法包括:1. 字段名:通过字段名来引用表格中的数据,比如 [字段名]。

2. 数学运算符:可以使用加减乘除等数学运算符进行数值的计算。

3. 逻辑运算符:可以使用逻辑运算符进行条件的判断和控制。

4. 函数:可以使用一些内置函数来实现特定的功能,比如格式化日期、字符串处理等。

二、表达式的应用场景在实际的软件开发项目中,表格单元格的表达式功能可以应用于很多场景,比如:1. 计算金额:可以通过表达式来实现对表格中数值字段的汇总计算,比如计算订单总金额。

2. 条件显示:可以根据某些条件来控制表格单元格的显示和隐藏,比如根据订单状态来显示不同的文本。

3. 数据格式化:可以通过表达式来对数据进行格式化,比如将日期显示为特定的格式,或者将数值字段显示为货币格式等。

三、常见问题及解决方案在使用Devexpress的表格单元格表达式功能时,经常会遇到一些常见的问题,下面将介绍一些常见问题的解决方案:1. 表达式计算错误:当表达式中有语法错误或者数据类型不匹配时,会导致表达式计算错误。

此时需要仔细检查表达式语法和数据类型,保证其正确性。

2. 条件判断失效:在使用逻辑运算符进行条件判断时,需要确保条件表达式的逻辑正确性。

表控——表格程序控制器系列

表控——表格程序控制器系列

表控——表格程序控制器系列表格程序控制器是通用型程序控制器,力求操作应用简便,无需编程,让更多人员步入工业自动化行列。

表格程序控制器采用填表设置的方法代替繁琐的编程工作,在实际应用中只要知道所控制设备的工作原理、需要达到的功能、如何让设备动作或运行,进行简单的表格设置操作,即可快速实现所需的应用功能,达到程序控制设备或电器自动运行的目的。

本控制器最突出的特点是:操作便捷、简单实用、功能强,可以显著降低应用过程的难度和开发周期。

一、基本外形表格程序控制器根据输入、输出路数及功能不同分为多种型号,各种基本类型如图2所示。

图2a TPC4-4TD型表格程序控制器图2b TPC8-8TD型表格程序控制器图2c TPC8-16TD型表格程序控制器图2d TPC8-8TD型表格程序控制器图2e TPC8-8TD型表格程序控制板图2f TPC16-16TD型表格程序控制板图2g TPC12-12TD型表格程序控制板二、外部结构介绍外部结构主要分为控制器和控制板两大类,带有外壳的为控制器,不带外壳的为控制板。

本文以TPC8-8TD型表格程序控制器及TPC16-16TD型表格程序控制板为例分别进行介绍:TPC 8-8 TD型控制器:TPC 8-8 TD型表格程序控制器是带有外壳的控制器,具有8路输入端和8路输出端,其中8路输入端可连接开关或传感器,例如:启动开关、停止开关、限位开关、安全开关、光电开关、接近开关等开关量输入信号。

8路输出端可以分别驱动多路电磁阀、液压阀、继电器、接触器、电磁铁及电机等执行电器工作。

8路输入端为输入端X1-X8,用Xn表示,8路输出端为输出端Y1-Y8,用Yn表示,其他型号以此类推。

控制器的前后分别设有两排接线端子,前面一排是输入端子,后面一排是输出端子,前排端子旁设有一个下载接口,面板上设有1个电源指示灯POW、1个运行指示灯RUN、8个输入指示灯和8个输出指示灯,输入指示灯显示每个输入端的输入状态,输出指示灯分别显示每个输出端的状态,输出有效时指示灯亮。

数据库table用法

数据库table用法

数据库table用法数据库表(table)是关系数据库中的基本组成单元,用于组织和存储数据。

下面是关于数据库表的一些基本用法:创建表:使用数据库管理系统提供的CREATE TABLE语句可以创建一个新的表。

在CREATE TABLE语句中指定表的名称和表的列(字段),以及每个列的数据类型和约束条件。

定义列和数据类型:在表中定义列时,需要指定每列的名称和数据类型。

数据类型决定了该列可以存储的数据的类型,例如整数、字符串、日期等。

主键约束:在表的列中选择一个或多个作为主键(Primary Key),用于唯一标识表中的每一行。

主键的值在表中必须是唯一的,并且不能为空。

外键约束:外键(Foreign Key)用于建立表之间的关联关系。

它指向另一个表的主键,用于确保数据的完整性和一致性。

通过外键,可以实现表之间的关联查询和数据的引用。

插入数据:使用INSERT INTO语句可以向表中插入新的数据行。

在INSERT INTO语句中指定要插入的表名和要插入的值。

查询数据:使用SELECT语句可以从表中检索数据。

可以指定要查询的列、过滤条件和排序方式,以获取满足条件的数据。

更新数据:使用UPDATE语句可以更新表中的数据。

通过指定要更新的列和新的值,以及更新条件,可以修改表中的特定行或多行数据。

删除数据:使用DELETE FROM语句可以从表中删除数据行。

可以指定删除条件,以删除满足条件的特定行或多行数据。

修改表结构:使用ALTER TABLE语句可以修改已存在的表结构。

可以添加新的列、删除列、修改列的数据类型等。

索引:索引是提高数据库查询性能的一种方式。

通过在表的列上创建索引,可以加快查询操作的速度。

Control-M简明操作手册

Control-M简明操作手册

C o n t r o l-M简明操作手册work Information Technology Company.2020YEARControl-M简明操作手册本手册仅列出一些重要的操作方法,因时间关系,次要的不在此列出,请参考Control-M用户手册。

1.调度的启停1.1Control-M/EM启停用ctem用户登录EM服务器,键入root_menu命令,看到以下菜单:选择其中的“1 - Activation Menu”,进入子菜单:即可根据情况启动或停止相应的服务。

同时,这个菜单下还可进行EM各服务运行的检查。

1.2Control-M/Server启停用ctm用户登录Control-M/Server服务器,键入ctm_menu命令,看到以下菜单:选择其中的“1 - CONTROL-M Manager”,进入子菜单:根据情况启动或停止相应的服务。

同时,这个菜单下还可进行Server运行的检查。

1.3Control-M/Agent启停启动Control-M/Agent:用root用户登录Agent节点,进入Agent安装目录下的ctm/scripts子目录(如果Server和Agent安装在同一节点上则进入ctm_agent/ctm/scripts目录,下同),并执行start-ag –u ctm。

使用root用户启停Agent的原因是只有root才能调用任何一个用户的任何命令。

停止Control-M/Agent:用root用户登录Agent节点,进入Agent安装目录下的ctm/scripts子目录,并执行shut-ag –u ctm。

2.参数配置Control-M/EM的参数已在安装过程中设置完毕。

2.1Control-M/Server参数设置用ctm用户登录Control-M/Server服务器,键入ctm_menu命令,可见以下菜单:1)选择主菜单中的“6 – Parameter Customization”可查看或设置包括各通讯端口在内的重要参数:进一步选择1 - Basic Communication and Operational Parameters可以查看或设置“Agent to Server Port”和“Configuration agent Port”等参数,前者在Agent的连接设置中需要使用,后者在用客户端的CONTROL-M Configuraton Manager设置Gateway时需指定。

ABAP中的Table Control编程

ABAP中的Table Control编程

ABAP中的Table Control编程SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑。

简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通屏幕元素的区别。

如果我们对一个Table Control定义其内表为itab,工作区域为wa。

那么在PBO中,系统将逐一取itab 的某行到wa,然后将wa的内容转换成屏幕元素,即Table Control的一行,如此反复。

换句话说,Table Control的每一行是跟wa交互的,与itab没有直接的关联。

反过来在PAI中,系统将根据Table Control的录入情况,逐行取数据到wa(前提是该行的内容不为空),然后我们即可根据wa的内容往itab修改或添加一行记录。

1. 如何设置TC的行数如果我们定义了TC的名称为tc_0100,则TC向导将生成如下一行代码:CONTROLS: tc_0100 TYPE TABLEVIEW USING SCREEN 0100.调试可知,tc_0100是个Deep Structure,拥有很多属性,它实现了对表格控件的所有属性的封装。

这里我们先介绍属性:lines。

lines代表该表控件一共有多少行可供用户查看或输入。

如果是查看状态,则一般可为其赋值LINES( itab )。

如果是编辑状态,为了允许用户添加条目,则必须大于itab的行数。

而如果TC的该属性小于内表行数呢?则只有内表中的前面几行可以显示,后面的内容将不会出现在SCREEN 中,当然实际中我们不会这么操作。

2. 如何设置TC中某单元格编辑与否对于普通的屏幕元素,我们都很清楚,用LOOP AT SCREEN可以实现。

对于TC,当然也是一样的。

TC向导会生成如下的Screen Flow Logic:LOOP AT itab INTO wa WITH CONTROL tc_0100 CURSOR tc_0100-current_line.MODULE tc_0100_change_field_attr.ENDLOOP.这是什么意思呢?事实上,如果我们设置了tc_0100-lines = 50,那么该Module将被执行50次。

表格程序控制器说明书6.328

表格程序控制器说明书6.328











图 1 原理框图
2、基本外形 表格程序控制器根据输入、输出路数及功能不同分为多种型号,各种基本类型如图 2 所 示。
图 2a TPC4-4TD 型表格程序控制器
图 2b TPC8-8TD 型表格程序控制器
7
北京表控科技有限公司 电话:010-63362533 手机:13701372773 网址: QQ 技术:489832773
图 2c TPC8-16TD 型表格程序控制器
图 2d TPC8-8TD 型表格程序控制器
图 2e TPC8-8TD 型表格程序控制板
图 2f TPC16-16TD 型表格程序控制板
图 2g TPC12-12TD 型表格程序控制板 3、外部结构介绍 外部结构主要分为控制器和控制板两大类,带有外壳的为控制器,不带外壳的为控制板。 本文以 TPC8-8TD 型表格程序控制器及 TPC16-16TD 型表格程序控制板为例分别进行介绍: TPC 8-8 TD 型控制器: TPC 8-8 TD 型表格程序控制器是带有外壳的控制器,具有 8 路输入端和 8 路输出端,其 中 8 路输入端可连接开关或传感器,例如:启动开关、停止开关、限位开关、安全开关、光 电开关、接近开关等开关量输入信号。8 路输出端可以分别驱动多路电磁阀、液压阀、继电 器、接触器、电磁铁及电机等执行电器工作。8 路输入端为输入端 X1-X8,用 Xn 表示,8 路
BGCKQ
表控
Байду номын сангаас
表格程序控制器
说明书
通用版本:TPC V6.328
北京表控科技有限公司
(原北京多维精控)
北京表控科技有限公司 电话:010-63362533 手机:13701372773 网址: QQ 技术:489832773

ASP.NETTable表格控件的使用方法

ASP.NETTable表格控件的使用方法

Table表格控件的使⽤⽅法⼀个Table对象包含多个⾏TableRow,每⼀⾏⼜包含TableCell,TableCell中可以包含其他的HTML或者服务器控件作为Web 服务器控件。

⼀、Table中的属性Table对象:BackImageUrl表格的背景图像的URLCaption表格标题CaptionAlign标题⽂本对齐⽅式CellPadding Table单元格内容和单元格边框之间的空间量(单位:像素)CellSpacing相邻单元格之间的空间量Rows Table控件中⾏的集合TableRow对象:HorizontalAlign获取或设置⾏内容的⽔平对齐⽅式VerticalAlign获取或设置⾏内容的垂直对齐⽅式Cells获取TableCell对象的集合,这些对象表⽰Table控件中的⾏的单元格TableCell对象:ColumnSpan获取或设置单元格在Table跨越的列数RowSpan跨越的⾏数Text获取或设置单元格的⽂本⼆、实例代码单击按钮产⽣表格的后台代码:复制代码代码如下:protected void Button1_Click(object sender, EventArgs e){int a =int.Parse( DropDownList1.SelectedValue); //⽤于取得⾏数int b = int.Parse(DropDownList2.SelectedValue); //⽤于取的列数,int.Parse();和Convert.ToInt32作⽤相同,是将转换为整型。

Table1.BorderColor = System.Drawing.Color.DarkGoldenrod;Table1.BorderWidth = 2; //这两句⽤于设置表格的属性for (int i = 0; i < a; i++){TableRow w = new TableRow(); //实例化⾏对象for (int j = 0; j < b; j++){TableCell q = new TableCell(); //实例化单元格对象q.BackColor = System.Drawing.Color.Blue; //设置单元格的背景颜⾊属性。

ABAP 表格控制(Table Control)和 步循环(STEP-LOOP)

ABAP 表格控制(Table Control)和 步循环(STEP-LOOP)

ABAP 表格控制(Table Control)和步循环(STEP-LOOP)表格控制(Table Control)和步循环1. 两个标准Demo: SAPMTZ60, SAPMTZ612. 简介3. 建立Table Control程序的基本流程4. 使用步循环5. 表格控制(Table Control)和步循环注意事项6. 在屏幕表格中循环和在内表与屏幕表格中同时循环的区别7. 确定屏幕循环的记录条目8. MODIFY2. 简介表格控制和步循环是用于屏幕表格显示的对象。

表格控制只是增强了的步循环,它可以使用桌面应用程序中表格工具的“Look”和“Feel”来显示数据。

表格控制还提供使表格易于查看和使用的专用格式化功能步循环的一个特点是它们的表行能够在屏幕上跨越多行。

相反,表格控制中的行总是单行,但可以很长。

(表格控制的行能够滚动。

)通常表格控制所提供的许多特征由系统的SAPGUI 前端操纵,因此,不必在ABAP/4 事务中编制任何特征(除了竖直滚动)。

LOOP 语句的任务LOOP 语句负责读取往返传递于屏幕和ABAP/4 程序之间的屏幕表格值。

因此必须同时在PBO 和PAI 事件中为屏幕中的每一个表格编制LOOP语句。

至少在此应有一个空LOOP...ENDLOOP语句。

LOOP 语句还用于驱动滚动。

在PBO事件中,LOOP使用一个参数告诉从表格的何处开始循环。

该参数因此导致下一个屏幕表格显示的更新(对于表格控制,该参数是表格控制结构中的TOP_LINE 字段;对于步循环,该参数为用于LOOP 语句的CURSOR参数。

)。

ABAP/4 程序和系统都可以设置该参数。

注意,屏幕表格中所显示的行数可以改变。

当屏幕表格可调整并且用户更改窗口的高度时就会出现这种情况。

在这种情况下,PAI中的下一个LOOP就更改PAI中传到ABAP/4程序的表格行数。

LOOP 语句有两种重要的格式:LOOP如果正在使用表格控制,就必须包括附加的WITH CONTROL参数:LOOP WITH CONTROL <table-control>.<actions>...ENDLOOP .该语句在屏幕表格行中循环( Table Control 有多少行就循环多少次) ,同时在每个块和程序的对应ABAP/4 字段之间往复传送数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TableControl使用方法
TalbeControl使用方法总结
一.自己手动制作TableControl(我最喜欢用的方法)1) 定义内表
DATA wa type mseg.
DATA itab like table of wa.
2) 定义表控制对象
CONTROL: TC1 type TABLEVIEW USING SCREEN 0100.
3) PBO
*将内表中的值传至TableControl中显示出来.
*内表=>屏幕
LOOP AT itab into wa
WITH CONTROL TC1
CURSOR TC1-current_line.

*将内表或变量中的值传给TableControl中相应的字段.MODULE TC1_change_field_attr.
ENDLOOP.
4) PAI
*将TableControl中的值传至内表
*屏幕=>内表
LOOP AT itab
CHAIN.
FIELD itab-co1.
FIELD itab-co2.

*将TableControl中相应字段的值传给内表或变量
MODULE TC1_modify ON CHAIN-REQUEST.

ENDCHAIN.
ENDLOOP.
5) Module
module TC1_modify input.
modify itab from wa index TC1-current_line.
endmodule.
二、通过向导建立TableControl
1)进入Screen Painter;
2)将Table Control拖入屏幕,进入向导界面;
3)输入Table Control名称,继续;
4)输入内表名称( 注意,应该先在程序中建立好内表);
5)选择表字段,继续;
6)设置Input/output attributes、Columns、Line selectability属性;7)设置是否有Scroll;
8)输入生成程序的名称,可以用默认;
9)单击“完成”;
10)观察程序,TableContrl和相应代码都已自动生成,建立成功。

三、与TableContrl相关的一些知识
我总结如下:
TableControl-LINES 表格控件总行数。

相关文档
最新文档