文档库 最新最全的文档下载
当前位置:文档库 › BDC程序示例

BDC程序示例

BDC程序示例
BDC程序示例

BDC程序示例

=========================================================== 作者: mmccking(https://www.wendangku.net/doc/1f15124836.html,)

发表于:2007.09.12 11:28

分类: SAP和ABAP/4

出处:https://www.wendangku.net/doc/1f15124836.html,/post/33129/394781

---------------------------------------------------------------

1,调用事物方法

2,传统方法

3,凑合着看吧~!

REPORT Z_ABAPDEMOprojload

NO STANDARD PAGE HEADING LINE-SIZE 255.

*

*INCLUDE Z_ABAPDEMOprojload_top.

*&---------------------------------------------------------------------*

*& Include Z_ABAPDEMOPROJLOAD_TOP *

*&---------------------------------------------------------------------* TABLES Z_ABAPDEMOproj.

DATA : BEGIN OF i_proj OCCURS 0,

project LIKE Z_ABAPDEMOproj-project,

proj_desc LIKE Z_ABAPDEMOproj-proj_desc,

stdat(10) TYPE c,

enddat(10) TYPE c,

customer LIKE Z_ABAPDEMOproj-customer,

location LIKE Z_ABAPDEMOproj-location,

END OF i_proj.

DATA i_bdctab LIKE bdcdata OCCURS 0 WITH HEADER LINE.

DATA messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

*INCLUDE Z_ABAPDEMOprojload_form.

*&---------------------------------------------------------------------*

*& Include Z_ABAPDEMOPROJLOAD_FORM *

*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*& Form insert

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM insert .

*这里面的代码不是手动输入的,是通过一个录屏程序生成的,录屏程序的TR-CODE是SM35,在此你还需要

*指定一个transaction。

* perform open_group.

LOOP AT i_proj.

CLEAR i_bdctab[].

PERFORM bdc_dynpro USING 'Z_ABAPDEMO_D9_DIALOG' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'Z_ABAPDEMOPROJ-PROJECT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'Z_ABAPDEMOPROJ-PROJECT'

i_proj-project.

PERFORM bdc_dynpro USING 'Z_ABAPDEMO_D9_DIALOG' '0200'.

PERFORM bdc_field USING 'BDC_CURSOR'

'Z_ABAPDEMOPROJ-LOCATION'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SAVE'.

PERFORM bdc_field USING 'Z_ABAPDEMOPROJ-PROJ_DESC'

i_proj-proj_desc.

PERFORM bdc_field USING 'Z_ABAPDEMOPROJ-STDAT'

i_proj-stdat.

PERFORM bdc_field USING 'Z_ABAPDEMOPROJ-ENDDAT'

i_proj-enddat.

PERFORM bdc_field USING 'Z_ABAPDEMOPROJ-CUSTOMER'

i_proj-customer.

PERFORM bdc_field USING 'Z_ABAPDEMOPROJ-LOCATION'

i_proj-location.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0500'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=OPT1'.

PERFORM bdc_dynpro USING 'Z_ABAPDEMO_D9_DIALOG' '0200'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/EEXIT'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LPROJID'.

PERFORM transaction USING 'Z_ABAPDEMOPROJ1'.

ENDLOOP.

* perform close_group.

ENDFORM. " insert

*&---------------------------------------------------------------------*

*& Form process

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM process .

ENDFORM. " process

*&---------------------------------------------------------------------*

*& Form upload

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM upload .

*上传文本文件,这是一个以TAB分隔的表内容文件,它的字段以我后面的数据库表字段的顺序排列*这里使用的是GUI_UPLOAD,还可以是WS_UPLOAD,大同小异

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = 'C:Documents and Settingsxincheng24DesktopPROJ.TXT'

filetype = 'ASC'

has_field_separator = '#'

* HEADER_LENGTH = 0

* READ_BY_LINE = 'X'

* DAT_MODE = ' '

* CODEPAGE = ' '

* IGNORE_CERR = ABAP_TRUE

* REPLACEMENT = '#'

* CHECK_BOM = ' '

* IMPORTING

* FILELENGTH =

* HEADER =

TABLES

data_tab = i_proj

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

OTHERS = 17

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " upload

*&--------------------------------------------------------------------* *& Form BDC_DYNPRO

*&--------------------------------------------------------------------* * text

*---------------------------------------------------------------------* * -->PROGRAM text

* -->DYNPRO text

*---------------------------------------------------------------------* FORM bdc_dynpro USING program dynpro.

*该子程序也是由录屏程序生成的

CLEAR i_bdctab.

i_bdctab-program = program.

i_bdctab-dynpro = dynpro.

i_bdctab-dynbegin = 'X'.

APPEND i_bdctab.

ENDFORM. "BDC_DYNPRO

*&--------------------------------------------------------------------* *& Form bdc_field

*&--------------------------------------------------------------------* * text

*---------------------------------------------------------------------*

* -->FNAM text

* -->FVAL text

*---------------------------------------------------------------------*

FORM bdc_field USING fnam fval.

*该子程序同样由录屏程序生成

CLEAR i_bdctab.

i_bdctab-fnam = fnam.

i_bdctab-fval = fval.

APPEND i_bdctab.

ENDFORM. "DBC_FIELD

*&--------------------------------------------------------------------*

*& Form transaction

*&--------------------------------------------------------------------*

* text

*---------------------------------------------------------------------*

* -->FNAM text

* -->FVAL text

*---------------------------------------------------------------------*

FORM transaction USING tcode.

*这就是调用事务类型的体现,需要主意的就是模式MODE和UPDATE。AS的组合就是显示所有log *同步更新

REFRESH messtab.

CALL TRANSACTION tcode USING i_bdctab

MODE 'A'

UPDATE 'S'

MESSAGES INTO messtab.

ENDFORM. "TRANSACTION

*Main program

START-OF-SELECTION.

*upload the data from text file to internal table

PERFORM upload.

*process the data type. mainly used to convert date type

PERFORM process.

*insert the data from internal table to database table

PERFORM insert.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

传统方法:

*&---------------------------------------------------------------------*

*& *

*& Report Zsapdemo_BDC_SESSION *

*& *

*& This program Obtain a list report for Customer Debt including each *

*& note created for the documents. *

*&---------------------------------------------------------------------* *& Change Log: *

*& *

*&---------------------------------------------------------------------* *& Init.| Who | Date | Text |*

*&---------------------------------------------------------------------* REPORT zsapdemo_bdc_session

NO STANDARD PAGE HEADING

LINE-COUNT 150(5)

LINE-SIZE 135 .

*----------------------------------------------------------------------* * Constants

*----------------------------------------------------------------------* DATA: g_repid TYPE sy-repid,

strfilelocn TYPE string.

*----------------------------------------------------------------------* * DB-Tables

*----------------------------------------------------------------------* TABLES: zshilpa_1.

*----------------------------------------------------------------------* * Variables/Internal Tables

*----------------------------------------------------------------------* DATA: it_tab TYPE zshilpa_1 OCCURS 0 WITH HEADER LINE,

it_bdctab TYPE bdcdata OCCURS 0 WITH HEADER LINE,

it_messtab TYPE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

*----------------------------------------------------------------------* * Select options / parameters *

*----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. PARAMETERS: sfileloc LIKE rlgrap-filename

DEFAULT 'C:Documents and Settingsxincheng24Desktopzshilpa_1.txt' OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

*----------------------------------------------------------------------* * Initialization *

*----------------------------------------------------------------------* INITIALIZATION.

*-- Initialize Values

PERFORM initialize_values.

*----------------------------------------------------------------------* * Selection screen checks *

*----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR sfileloc.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = g_repid

IMPORTING

file_name = sfileloc.

*----------------------------------------------------------------------* * *** MAIN PROCESSING *** *

*----------------------------------------------------------------------* START-OF-SELECTION.

strfilelocn = sfileloc.

PERFORM upload_data.

END-OF-SELECTION.

PERFORM bdc_session.

CHECK sy-subrc IS INITIAL.

MESSAGE s002(zsapdemo_msg_class).

*&---------------------------------------------------------------------* *& Form initialize_values

*&---------------------------------------------------------------------* * text

*----------------------------------------------------------------------* * --> p1 text

* <-- p2 text

*----------------------------------------------------------------------* FORM initialize_values .

*-- Get the Program Name

g_repid = sy-repid.

ENDFORM. " initialize_values

*&---------------------------------------------------------------------*

*& Form upload_data

*&---------------------------------------------------------------------* * text

*----------------------------------------------------------------------* * --> p1 text

* <-- p2 text

*----------------------------------------------------------------------* FORM upload_data .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = strfilelocn

filetype = 'ASC'

has_field_separator = '#'

TABLES

data_tab = it_tab

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

OTHERS = 17.

IF sy-subrc <> 0.

* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " upload_data

*&---------------------------------------------------------------------* *& Form fill_bdcdata

*&---------------------------------------------------------------------* * text

*----------------------------------------------------------------------*

* -->P_0129 text

* -->P_0130 text

* -->P_0131 text

* -->P_0132 text

* -->P_0133 text

*----------------------------------------------------------------------* FORM fill_bdcdata USING value(bdc_program)

value(bdc_dynpro)

value(bdc_dynbegin)

value(bdc_fnam)

value(bdc_fval).

it_bdctab-program = bdc_program.

it_bdctab-dynpro = bdc_dynpro.

it_bdctab-dynbegin = bdc_dynbegin.

it_bdctab-fnam = bdc_fnam.

it_bdctab-fval = bdc_fval.

APPEND it_bdctab.

CLEAR it_bdctab.

ENDFORM. " fill_bdcdata

*&---------------------------------------------------------------------* *& Form bdc_session

*&---------------------------------------------------------------------* * text

*----------------------------------------------------------------------* * --> p1 text

* <-- p2 text

*----------------------------------------------------------------------* FORM bdc_session .

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

client = sy-mandt

group = 'Zsapdemo_BDC'

user = 'FIUSER'

prog = sy-cprog

EXCEPTIONS

client_invalid = 1

destination_invalid = 2

group_invalid = 3

group_is_locked = 4

holddate_invalid = 5

internal_error = 6

queue_error = 7

running = 8

system_lock_error = 9

user_invalid = 10

OTHERS = 11.

IF sy-subrc <> 0.

WRITE: / 'Error Occured while Opening BDC Group.'. ENDIF.

LOOP AT it_tab.

PERFORM fill_bdcdata USING :

'SAPMSVMA' '0100' 'X' ' ' ' ',

' ' ' ' ' ' 'BDC_CURSOR' 'VIEWNAME',

' ' ' ' ' ' 'BDC_OKCODE' '=UPD',

' ' ' ' ' ' 'VIEWNAME' 'ZSHILPA_1',

' ' ' ' ' ' 'VIMDYNFLDS-LTD_DTA_NO' 'X',

'SAPLZSHILPA_1' '0001' 'X' ' ' ' ',

' ' ' ' ' ' 'BDC_CURSOR' 'ZSHILPA_1-ZMAT_NO(01)', ' ' ' ' ' ' 'BDC_OKCODE' '=NEWL',

'SAPLZSHILPA_1' '0002' 'X' ' ' ' ',

' ' ' ' ' ' 'BDC_CURSOR' 'ZSHILPA_1-ZMAN',

' ' ' ' ' ' 'BDC_OKCODE' '=SAVE',

' ' ' ' ' ' 'ZSHILPA_1-NAME' it_tab-name,

' ' ' ' ' ' 'ZSHILPA_1-ZMAT_NO' it_tab-zmat_no,

' ' ' ' ' ' 'ZSHILPA_1-ZMAN' it_tab-zman,

'SAPLZSHILPA_1' '0002' 'X' ' ' ' ',

' ' ' ' ' ' 'BDC_CURSOR' 'ZSHILPA_1-ZMAT_NO',

' ' ' ' ' ' 'BDC_OKCODE' '=SAVE',

' ' ' ' ' ' 'ZSHILPA_1-ZMAT_NO' 'it_tab-zmat_no', ' ' ' ' ' ' 'ZSHILPA_1-ZMAN' 'it_tab-zman',

'SAPLZSHILPA_1' '0002' 'X' ' ' ' ',

' ' ' ' ' ' 'BDC_CURSOR' 'ZSHILPA_1-ZMAT_NO',

' ' ' ' ' ' 'BDC_OKCODE' '=UEBE',

' ' ' ' ' ' 'ZSHILPA_1-ZMAT_NO' '2',

' ' ' ' ' ' 'ZSHILPA_1-ZMAN' '2',

'SAPLZSHILPA_1' '0001' 'X' ' ' ' ',

' ' ' ' ' ' 'BDC_CURSOR' ' ZSHILPA_1-ZMAT_NO(01)', ' ' ' ' ' ' 'BDC_OKCODE' '=BACK',

实例程序

以下为CPP源文件代码,工程建立参见《VC指导》 示例1:设备打开和关闭 #include #include #include "driver.h" void main() { DWORD dwErrCde; ULONG lDevNum; long lDriverHandle; lDevNum=0; dwErrCde = DRV_DeviceOpen( lDevNum,&lDriverHandle); if ( dwErrCde != SUCCESS ) { printf("设备打开错误!\n"); return ; } else { printf("设备打开成功!\n"); printf("设备句柄:%ld\n",lDriverHandle); } dwErrCde = DRV_DeviceClose( &lDriverHandle ); if ( dwErrCde != SUCCESS ) { printf("设备关闭错误!\n"); return ; } else { printf("设备关闭成功!\n"); } }

示例2:读取AI单通道采样值 #include #include #include "driver.h" void main() { long DriverHandle; PT_AIConfig ptAIConfig; PT_AIVoltageIn ptAIVoltageIn; float advalue; DRV_DeviceOpen(0,&DriverHandle); //打开设备 //AI配置 ptAIConfig.DasChan=0;//AI通道0 ptAIConfig.DasGain=0;//Gain Code,+/-5V DRV_AIConfig(DriverHandle, (LPT_AIConfig)&ptAIConfig); //读取指定AI通道的电压值 ptAIVoltageIn.chan = 0;//通道0 ptAIVoltageIn.gain = 0;//Gain Code,+/-5V ptAIVoltageIn.TrigMode = 0; //内部触发 ptAIVoltageIn.voltage = (FLOAT far *)&advalue;//返回电压值 DRV_AIVoltageIn(DriverHandle,(LPT_AIVoltageIn)&ptAIVoltageIn); printf("AD value=%f!\n",advalue); DRV_DeviceClose( &DriverHandle ); //关闭设备 } 示例3:单通道AO输出 #include #include #include "driver.h" void main() { long DriverHandle; PT_AOConfig ptAOConfig; PT_AOVoltageOut ptAOVoltageOut;

数控车床由浅入深的宏程序实例

宏程序 裳华职业技术中专鲍新涛 宏程序概述 其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。.宏一般分为A类宏和B类宏。A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广。 宏程序的作用 数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。 宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。较大地简化编程;扩展应用范围。 宏的分类 B类宏 由于现在B类宏程序的大量使用,很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如发那科(FANUC)OTD系统中由于它的MDI键盘上没有公

式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用; A类宏 A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的,xx 的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM.#xx就是变量号,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~#100~#149~#500~#531.关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代码,大家可以看到A 类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义: 应用 以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行, 基本指令 H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中 G65H01P#101Q#10:把#10赋予到#101中 H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋

8279示例程序

8279键盘和显示程序 Z8279 EQU 08701H //8279状态/命令口地址 D8279 EQU 08700H //8279 数据口地址 LEDMOD EQU 10H //左端输入八位字符显示 //外部译码键扫描方式,双键互锁 LEDFEQ EQU 38H //扫描速率 LEDCLS EQU 0D1H //清除 LEDWR0 EQU 80H //设定的将要写入的显示RAM地 址 ORG 0000H AJMP START ORG 0040H START: MOV SP,#60H LCALL INIT8279 //初始化8279 W AIT: MOV DPTR,#Z8279 MOVX A,@DPTR ANL A,#0FH JZ WAIT MOV A,#40H MOVX @DPTR,A MOV DPTR,#D8279 MOVX A,@DPTR ANL A,#3FH MOV R4,#00H MOV R5,A LCALL DISLED SJMP W AIT INIT8279: //8279初始化子程序 PUSH DPH //保存现场 PUSH DPL PUSH ACC LCALL DELAY //延时 MOV DPTR ,#Z8279 MOV A,#LEDMOD //置8279工作方式 MOVX @DPTR,A MOV A,#LEDFEQ //置键盘扫描速率 MOVX @DPTR,A MOV A,#LEDCLS //清除 LED 显示 MOVX @DPTR,A LCALL DELAY //延时 MOV DPTR,#Z8279 MOV A,#90H MOV DPTR,#D8279 MOV A, #40H MOVX @DPTR,A MOV A,#40H MOVX @DPTR,A MOV A,#0H MOVX @DPTR,A MOV A,#0H MOVX @DPTR,A MOV A, #0EFH MOVX @DPTR,A MOV A,#27H MOVX @DPTR,A MOV A,#5BH MOVX @DPTR,A MOV A, #7FH MOVX @DPTR,A POP ACC //恢复现场 POP DPL POP DPH RET 显示字符子程序 输入:R4,位置:R5 DISLED: PUSH DPH //保存现场 PUSH DPL PUSH ACC MOV A,#LEDWR0 //置显示起始地址 ADD A,R4 //加位置偏移量 MOV DPTR,#Z8279

数控铣宏程序实例

第四章数控铣宏程序实例 §4、1 椭圆加工(编程思路:以一小段直线代替曲线) 例1 整椭圆轨迹线加工(假定加工深度为2mm) 方法一:已知椭圆的参数方X=acosθ Y=bsinθ 变量数学表达式 设定θ= #1(0°~ 360° ) 那么 X= #2 = acos[#1] Y= #3= bsin[#1] 程序 O0001; S1000 M03; G90 G54 G00 Z100; G00 Xa Y0; G00 Z3; G01 Z-2 F100; #1=0; N99 #2=a*cos[#1]; #3=b*sin[#1]; G01 X#2 Y#3 F300; #1=#1+1; IF[#1LE360]GOTO99; GOO Z50; M30;

例2 斜椭圆且椭心不在原点的轨迹线加工(假设加工深度为2mm) 椭圆心不在原点的参数方程 X=a*COS[#1]+ M Y=b*SIN[#1]+ N 变量数学表达式 设定θ=#1; (0°~360°) 那么X=#2=a*COS[#1]+ M Y=#3=b*SIN[#1]+ N 因为此椭圆绕(M ,N)旋转角度为A 可运用坐标旋转指令G68 格式 G68 X - Y - R - X,Y:旋转中心坐标; R: 旋转角度 程序 O0002; S1000 M03; G90 G54 G00 Z100; GOO X0 Y0; GOO Z3; G68 XM YN R45; #1=0; N99 #2=a*COS[#1]+M; #3=b*SIN[#1]+N;

GO1 X#2 Y#3 F300; G01 Z-2 F100; #1=#1+1; IF[#1LE360]GOTO99; G69 GOO Z100; M30; 例3:椭圆轮廓加工(深度2mm) 采用椭圆的等距加工方法使椭圆的长半轴与短半轴同时减少一个行距的方法直到短半轴小于刀具的半径R 根据椭圆的参数方程可设 变量表达式θ=#1(0°~360°) a=#2 b=#3(b-R~R) X=#2*COS[#1]=#4 Y=#3*SIN[#1]=#5 程序 O0003; S1000 M03; G90 G54 G00 Z100;

24个汇编实例小程序文件

24个汇编小程序 题目列表: 逆序输出字符串“BASED ADDRESSING” 从键盘上输入两个数,分别放到x,y单元,求出它们的和 试编写一段程序,要求在长度为10h的数组中,找出大于42h的无符号数的个数并存入地址为up开始区域,找出小于42h的无符号数的个数并存入地址为down的开始区域 键盘输入一段字符串,其中小写字母以大写字母输出,其他字符不变输出 从键盘上就收一个小写字母,找出它的前导字符和后续字符,在顺序显示这三个字符 把一个包含20个数据的数组M分成两组:正整数组P和负整数组N,分别把这两个数组中的数据的个数显示出来 求出首地址为data的100个字数组中的最小偶数,并把它放在ax中 输入两船字符串string1和string2,并比较两个字符串是否相等,相等就显示“match”,否则显示“no match” 从键盘接收一个四位的十六进制数,并在终端显示与它等值的二进制数 从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果 有一个首地址为mem的100个字的数组,试编程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零 从键盘上输入一串字符(用回车键结束,使用10号功能调用)放在string中,是编制一个程序测试字符串中是否存在数字。如有,则把cl的第五位置1,否则将该位置置0 在首地址为data的字数组中,存放了100h的16位字数据,试编写一个程序,求出平均值放在ax寄存器中,并求出数组中有多少个数小于此平均值,将结果放在bx寄存器中(f分别考虑有符号数、无符号数情况) 一直数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中 设在A、B和D单元中分别存放着三个数。若三个数都不是0,则求出三个数的和并存放在S 单元,若其中有一个数为0,则把其它两个单元也清零。请编写此程序

Prolog 程序范例

3的阶乘: predicates factorial(unsigned,real) clauses factorial(1,1):-!. factorial(X,FactX):- Y=X-1, factorial(Y,FactY), FactX = X*FactY. goal X=3, factorial(X,Y). 输出表 domains list = integer* predicates write_a_list(list) clauses write_a_list([]). write_a_list([H|T]):- write(H),nl, write_a_list(T). goal write_a_list([1,2,3]). 统计表元素个数 domains list = integer* predicates length_of(list,integer) clauses length_of([], 0). length_of([_|T],L):- length_of(T,TailLength), L = TailLength + 1. goal length_of([1,2,3],L). 每个元素加1 domains list = integer* predicates add1(list,list) clauses add1([], []). add1([Head|Tail],[Head1|Tail1]):- Head1= Head+1,

add1(Tail,Tail1). goal add1([1,2,3,4],NewList). 删除整数表中的负数 domains list = integer* predicates discard_negatives(list,list) clauses discard_negatives([],[]). discard_negatives([H|T],ProcessedTail):- H < 0,!, discard_negatives(T, ProcessedTail). discard_negatives([H|T],[H|ProcessedTail]):- discard_negatives(T, ProcessedTail). goal discard_negatives([2,-45,3,468],X). 判断表成员 domains namelist = name* name = symbol predicates member(name,namelist) clauses member(Name,[Name|_]). member(Name,[_|Tail]):- member(Name,Tail). goal member(susan,[ian,susan,john]). 合并表 domains integerlist = integer* predicates append(integerlist,integerlist,integerlist) clauses append([],List,List). append([H|L1],List2,[H|L3]):- append(L1,List2,L3). goal append([1,2,3],[5,6],L). 输出表中元素 domains integerlist = integer* namelist = symbol* predicates

新代宏程序实例

新代宏程序实例文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

1、R E P E A T直到型循环REPEAT <循环体> UNTIL <条件表达式> END_REPEAT; 说明:REPEAT直到型循环控制,先执行循环体,后判断条件表达式,当条件满足时退出循环。 例如: % @MACRO ,为了;?倾向于;?关于;?当作; conj.因为,由于;? FOR <循环变量> := <表达式1> TO <表达式2> [ BY <表达式3>] DO <循环体> END_FOR; 说明:FOR循环控制,式中各参数意义如下 循环变量——控制循环次数的变量; 表达式1——循环计数的起始值,可为整数或表达式; 表达式2——循环计数的终止值,可为整数或表达式; 表达式3——循环计数每次的累加值,可为整数或表达式; 循环体——循环每次执行内容; FOR循环执行过程为:先给循环变量赋起始值,然后判断循环变量是否为终止值,当循环变量已为终止值时退出循环,否则执行循环体,再对循环变量加上每次累加值, 4、无条件转移

GOTO转移语句 语法: GOTO n; 说明:无条件地跳到指定的n行号执行,其中n可为整数或表达式。GOTO常和IF语句搭配使用,那就是说当程序检查到某个条件满足时用GOTO语句去进一步处理,但应尽量少用该语句以提高程序可读性。 范例: % @MACRO Z10.; … N100 G01 X30. Z30.; … M02; EXIT循环中断语句 语法:EXIT; 说明:循环中断,跳离循环控制;用在循环控制中,通常EXIT都和IF 语句搭配使用,当某个条件满足后就跳离循环。请参考WHILE范例。

简单C语言程序的例子

例子: #include main () { tips(); /*caller*/ printf(“\n Success is about banging on after others have let go”); } tips() /*caller*/ { printf (“\n When you reach the end of the rope tie a knot & hang on”,)0; } [上述程序的输出结果如下: When you reach the end of the ropt tie a knot & hang on. Success is about hanging on after others have let go.] #include main() { int a,fact; printf(“\nEnter any number”); scanf(“%d”,&a); fact=rec(a); printf(“Factorial value is%d”,fact); } rec(x); int x; { int f; if(x==1) return(1); else f=x*rec(x-1); return(f); } [其显示的结果为:Factorial value is 2.] 比较两个数较大的那个: #include main()

{ int a,b,max; scanf (“%d%d”,&a,&b); if (a>b) max=a; else max=b; printf (“%d”,max); } 输出a+b的值: #include void main() { int a,b,x; scanf (“%d%d”,&a,&b); x=a+b; printf (“%d”,x); } 输出a,b中最大的一位数: #include int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); } void main() { int a,b,c; scanf (“%d%d”,&a,&b); c=max(a,b); printf (“%d\n”,c); } 输出Hello: #include int main() { printf (“Hello!”);

VS编写程序实例

VS2010编写C++示例程序 2012-04-02 13:11:25| 分类:C++学习| 标签:|字号大中小订阅 以前经常使用VC++6.0编写C++程序,但是看到微软已经不再更新和维护VC++6.0了,我就想着用Visual Studio 2010来编写C++程序。以前试过几次,都没有成功,也不知道为什么以前的C++程序在VS2010中运行不了,很困惑。后来又听人说VS2010中的C++和VC++6.0中的C++开发库已经很不同了,于是就没有再试。 前几天突然来了兴趣,于是又开始试着在VS2010上编写C++程序。查了很多资料,试了很多方法,终于成功了,高兴之际就写下了这篇文章。 用VS2010做C++确实比较方便,特别是做桌面应用程序,比VC++6.0中的MFC要好用的多,操作也简单了很多。但是VS2010也有缺点:.NET使用了类似于Java虚拟机一样的东西,在VS上编写的C++程序运行速度要慢一些,而且VS2010集成的东西多,编译速度也比VC++6.0慢。 但是毕竟VS2010对C++新特性的支持更好,使用的技术也更新近,而且微软在不断更新VS系列开发工具,建议对C++语法比较熟的人还是使用VS2010好一点。VS2010所支持的C++标准,已经到了V9版,而VC++6.0里,只到V6版,V9版和V6版,有些东西是改动了的,VS2010能支持的C++标准更高。VS2010保留了VC++6.0中的一些东西,所以我们在VS2010中仍然可以像以前一样编写C++程序,只是要先把头文件写对。 下面在VS2010中创建一个C++控制台程序,这个程序会给我们一种熟悉感——我们曾经编写过这样的程序。 1.创建新项目,在“文件”菜单中,指向“新建”,然后单击“项目...”。 在“项目类型”区域中,单击“Win32”。然后,在“Visual Studio 已安装的模板”窗格中,单击“Win32 控制台应用程序”。点击“确定”启动“Win32 应用程序向导”。 2. 在“Win32 应用程序向导”对话框的“概述”页中,单击“下一步”。 在“应用程序类型”下的“应用程序设置”页,选择“控制台应用程序”。选择“其他选项”下的“空项目”设置并单击“完成”。 3.添加.cpp和.h文件,开始编写C++程序。 下面的例子使用了新的C++命名空间:using namespace std;

EXCEL宏编程实例.doc

Excel 宏编程举例说明 学习宏编程,需要VB基础,如果一点VB基础和面向对象的概念,建议先去补补VB,不然即使自认为学好了也只能拿着高射炮打蚊子! 一)、宏学习 首先需要明确的是,本文不可能教会您关于宏的所有内容。您需要学会利用"录制宏"的方法来学习宏:点击Excel"工具"下拉菜单中"宏"下?quot;录制新宏",此后可象平时一样进行有关操作,待完成后停止录制。然后再点击"工具"下拉菜单中"宏"下"宏"的"编辑"选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写。 二)、基本概念 为了学习Excel中的宏,我们需要先了解以下一些基本概念。 1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbook Workbooks集合包含Excel中所有当前打开的Excel工作簿,亦即所有打开的Excel文件;Workbook对应Workbooks中的成员,即其中的Excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的Excel文件;ThisWorkbook代表其中有Visual Basic代码正在运行的工作簿。 在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks(1)、Workbooks("年度报表.xls")。而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。 2、工作表:Worksheets、Worksheet、ActiveSheet Worksheets集合包含工作簿中所有的工作表,即一个Excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表。 可用Worksheets(index)来引用Worksheet对象,其中index为工作表名称或索引号;如Worksheets(1)、Worksheets("第一季度数据")。工作表索引号表明该工作表在工作表标签中的位置:第一个(最左边的)工作表的索引号为1,最后一个(最右边的)为Worksheets.Count。需要注意的是:在使用过程中Excel会自动重排工作表索引号,保持按照其在工作表标签中的从左至右排列,工作表的索引号递增。因此,由于可能进行的工作表添加或删除,工作表索引号不一定始终保持不变。3、图表:Chart 、Charts、ChartObject、ChartObjects、ActiveChart Chart代表工作簿中的图表。该图表既可为嵌入式图表(包含在ChartObject中),也可为一个分开的(单独的)图表工作表。 Charts代表指定工作簿或活动工作簿中所有图表工作表的集合,但不包括嵌入式在工作表或对话框编辑表中的图表。使用Charts(index) 可引用单个Chart图表,其中index是该图表工作表的索引号或名称;如Charts(1)、Charts("销售图表")。图表工作表的索引号表示图表工作表在工作簿的工作表标签栏上的位置。Charts(1)是工作簿中第一个(最左边的)图表工作表;Charts(Charts.Count)为最后一个(最右边的)图表工作表。 ChartObject代表工作表中的嵌入式图表,其作用是作为Chart对象的容器。利用ChartObject 可以控制工作表上嵌入式图表的外观和尺寸。 ChartObjects代表指定的图表工作表、对话框编辑表或工作表上所有嵌入式图表的集合。可由ChartObjects(index)引用单个ChartObject,其中index为嵌入式图表的编号或名称。如

新代宏程序实例

1、REPEAT直到型循环 REPEAT <循环体> UNTIL <条件表达式> END_REPEAT; 说明:REPEAT直到型循环控制,先执行循环体,后判断条件表达式,当条件满足时退出循环。 例如: % @MACRO // 启动MACRO语法% @MACRO (宏指令开始) #1=-0.2 REPEAT REPEAT(重复) G01Z#1F80; G1X-20.F700; #2=#1-0.2; G1Z#2F80; G1X-53.F700; #1=#1-0.4; UNTIL (#1<-2.6) END_REPEAT; UNTIL(到…为止,在…以前)END(结束,终止)M30; 2、WHILE当型循环 WHILE <条件表达式> DO→<循环体>→END_WHILE; 说明:WHILE当型循环控制,先判断条件表达式,当条件满足时执行循环体,否则退出循环。例如: % @MACRO; #1=-0.2; WHILE (#14>-2.6) DO WHILE(虽然; 在…期间; 与…同时) IF #1<-2.6THEN EXIT; EXIT(退出; 退场; 离开; 去世) END_IF; G01Z#1F80; G1X-20.F700; #2=#1-0.2; G1Z#2F80; G1X-53.F700; #1=#1-0.4; END_WHILE; M30 3、FOR循环 FOR 翻译:p rep.为,为了; 倾向于; 关于; 当作; conj.因为,由于; FOR <循环变量> := <表达式1> TO <表达式2> [ BY <表达式3>] DO <循环体> END_FOR;

Java九大示例程序

JAVA面向对象九个经典例子程序 1 Hello world例子 (1) 2 类的基本组成示例 (1) 3静态与非静态变量及方法的使用 (3) 4 类继承的例子 (3) 5类的访问修饰符 (4) 6抽象类及其实现示例 (5) 7接口及其实现 (6) 8 抽象类与接口混合编程例子 (7) 9 接口回调与多态性 (8) 1 Hello world例子 package Example; //定义自己的包名 public class Example1 //定义一个类 { public static void main(String[] args) //系统可以执行的main方法,这里是一个公有静态无返回值的方法 { System.out.println("Hello world!"); //调用https://www.wendangku.net/doc/1f15124836.html,ng包中的System类的PrintLine方法输出Hello world! } } 2 类的基本组成示例 package Example; class Person { public int age; //声明公共字段age private String name; //声明私有字段name,此时name为类的属性,下面通过公有方法进行访问 public String getName() { return name;

} public void setName(String name) { https://www.wendangku.net/doc/1f15124836.html, = name; } public void eat() //定义无参数的eat方法 { System.out.println("Person can eat"); } public void eat(String s) //定义带参数的eat方法,实现方法重载 { System.out.println("Person can eat"+s); } public Person() //定义无参构造函数,注意无返回值定义,方法与类同名 { } public Person(int age, String name) //重写一个带参数构造函数,注意无返回值定义,方法与类同名 { this.age = age; //前一个age为对象的字段,由this指定,后一个age为函数形参 https://www.wendangku.net/doc/1f15124836.html, = name; //前一个name为对象的属性,由this指定,因为在本类中可直接访问,后一个name为函数形参 } } public class Example2 { public static void main(String[] args) { Person person1 = new Person(); //调用类的无参构造函数 person1.age = 20; //给对象的公有字段直接赋值 person1.setName("zhangsan"); //必须使用公共方法才能给对象的属性赋值 System.out.println("第一个人信息,姓名:"+person1.getName()+"年 龄:"+person1.age); person1.eat(); //调用对象的无参方法 Person person2 = new Person(18, "lisi");//调用类的有参构造函数 System.out.println("第二个人信息,姓名:"+ person2.getName() + "年龄:"+ person2.age); person2.eat(" 馒头"); //调用对象的有参方法 } }

数控宏程序实例

第7章宏程序 7.3 宏程序调用 7.3.1 宏程序调用指令(G65) 在主程序中可以用G65调用宏程序。指令格式如下: G65 P L 〈自变量赋值〉; 其中:P指定宏程序号:L为重复调用次数(1—9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。 例如: 主程序: O7002 ... G65 P7100 L2 A1.0 B2.0 ... M30 宏程序: #3=#1+#2; IF [#3 GT 360] GOTO 9; G00 G91 X#3 N9 M99 7.3.2 自变量赋值 自变量赋值有两种类型。自变量I使用除去G,L,N,O,P以外的其他字母作为地址,自变量II可以使用A,B,C每个字母一次,I,J,K每个字母可使用十次作为地址。表7—3和7—4分别为两种类型自变量赋值的地址和变量号码之间的对应关系: 表7—3 自变量赋值的地址和变量号码之间的对应关系

时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。 7.4 变量的控制和运算指令 7.4.1 算术运算和逻辑运算 在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。

运算的优先顺序如下: 1)函数。 2)乘除,逻辑与。 3)加减,逻辑或,逻辑异或。 可以用[ ]来改变顺序 7.4.2 控制指令 1.无条件转移(GOTO语句) 语句格式为: GOTO n 其中n为顺序号(1—9999),可用变量表示。例如: GOTO 1; GOTO #10; 2. 条件转移(IF 语句) 语句格式为: IF [条件式] GOTO n 条件式成立时,从顺序号为n的程序段开始执行;条件式不成立时,执行下一个程序段。 条件式有以下几类: # j EQ # K # j NE # K # j GT # K # j LT # K # j GE # K # j LE # K 条件式中变量#J或#K可以是常量也可以是表达式,条件式必须用括弧括起来。下面的程序可以得到1到10的和: O7100 #1=0 #2=1 N1 IF [#2 GT 10] GOTO 2 #1=#1+#2 #2=#2+1 GOTO 1 N2 M30 3循环语句(WHILE 语句) 语句格式为: WHILE [条件式] DO m (m=1,2,3) … END m 当条件语句成立时,程序执行从DO m到END m之间的程序段;如果条件不成立,则执行

vb初学经典程序示例

VB典型程序! 1、设计采用欧几里德算法求解两个自然数的最大公约数的程序。 Private Sub command1_click() Dim m As Long, n As Long Dim r As Long m = Val(Text1.Text) n = Val(Text2.Text) If m < 1 Or n < 1 Then Text3.Text = "数据错误" Else Do r = m Mod n m = n n = r Loop Until r = 0 Text3.Text = CStr(m) End If End Sub 2、从由字母、数字组成的字符串中找出所有大写字母并逆序输出的程序 Private Sub Command1_Click() Dim s As String, d As String, t As String Dim i As Integer Text1.SetFocus s = Text1.Text For i = 1 To Len(s) If Mid(s, i, 1) >= "A" And Mid(s, i, 1) <= "Z" Then t = t & Mid(s, i, 1) End If Next i For i = Len(t) To 1 Step -1 d = d & Mid(t, i, 1) Next i Text2.Text = d End Sub 3、编写程序,找出所有三位水仙花数。所谓水仙花,是指各位数字的立方和等于该数本身的数。例如,153=1^3+5^3+3^3,,所以153是一个水仙花数。 Option Explicit Private Sub command1_click() Dim I As Integer, a As Integer, b As Integer, c As Integer Dim st As String For a = 1 To 9 For b = 0 To 9 For c = 0 To 9

【免费下载】数控宏程序实例

第7章 宏 程 序7.3 宏程序调用7.3.1 宏程序调用指令(G65)在主程序中可以用G65调用宏程序。指令格式如下:G65 P L 〈自变量赋值〉;其中:P 指定宏程序号:L 为重复调用次数(1—9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。例如:主程序:O7002...G65 P7100 L2 A1.0 B2.0...M30宏程序:#3=#1+#2;IF [#3 GT 360] GOTO 9; G00 G91 X#3 N9 M99 7.3.2 自变量赋值 自变量赋值有两种类型。自变量I 使用除去G ,L ,N ,O ,P 以外的其他字母作为地址,自变量II 可以使用A ,B ,C 每个字母一次,I ,J ,K 每个字母可使用十次作为地址。表7—3和7—4分别为两种类型自变量赋值的地址和变量号码之间的对应关系:表7—3 自变量赋值的地址和变量号码之间的对应关系地 址宏程序中变量地 址宏程序中变量A #1Q #17 B #2R #18 C #3S #19 D #7T #20 E #8U #21 F #9V #22H #11W #23I #4X #24J #5Y #25K #6Z #26对全部高中资料试卷电气设备,在安装过程中以

M #13表7—4 自变量II 的地址与变量号码之间的对应关系地 址宏程序中变量地 址宏程序中变量 A #1#18 B #2#19 C #3#20#4#21#5#22#6#23#7#24#8#25#9#26#10#27#11#28#12#29#13#30#14#31#15#32#16#33#17 上表中的I ,J ,K 的下标只表示顺序,并不写在实际命令中。在G65的程序段中,可以同时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。 7.4 变量的控制和运算指令7.4.1 算术运算和逻辑运算在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。表7—5 算术和逻辑运算运算格式说明赋值#i=#j 加 #i=#j+#k 减#i=#j-#k 乘#i=#j*#k 除#i=#j/#k 正弦#i=sin[#j]余弦#i=cos[#j]正切#i=tan[#j]反正切#i=atan[#j] 角度单位为度平方根#i=sqrt[#j]绝对值#i=abs[#j]壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

程序编写示例

8.1预防措施控制程序 8.7.1《预防措施控制程序》编写背景 K公司是一个建筑工程公司,其组织结构图如下: 由于涉及大量大型工程项目,包括多种方面的情况,特别是财务状况与工程质量两个部分,都十分容易发生问题,因此要求采取预警系统,杜绝可能发生的问题。另外实现通报手段,将质量、财务、工期等重大问题向各基层组织通报,引起注意,及时采取预防措施。公司下发通报时,要求填报通报附页,这样可以将基层讨论的结果汇总,收集下属的意见和建议,有利于公司及时采取预警措施。 8.7.2《预防措施控制程序》正文 1.适用范围 公司经营过程中发生不合格以后,或公司领导认为有必要时,根据本程序要求识别预防措施,以消除潜在不合格原因,防止不合格发生。 2.职责分配 2.1 管理者代表主持,企管办具体负责预防措施的制订和实施; 2.2 各相关部门参与预防措施的制订和实施; 2.3 企管办负责《质量情况通报》的编制、发放与信息回收、整理; 2.4 财务部、质检部分别负责对财务部情况和工程质量情况的预警系统进行操作。

3.2 《财务状况预警系统》

3.3 《工程质量预警系统》 3.4 预防措施的制订、实施和评审 4.程序说明 4.1《质量情况通报》,下简称《通报》 4.1.1 企管办每季度第一个月10日前,将编制的《通报》发放到公司领

导及各部门和班组,内容包括: a.上季度公司质量情况总体分析; b.上季度出现各类不合格情况统计资料,包括不合格项数,分布,纠正结果,造成损 失,主要原因等; c.重大不合格情况,包括具体情况介绍,纠正情况,损失情况,原因分析,责任部门, 处理意见等; d.纠正措施和预防措施的执行情况; e.质量活动中先进事例的表扬和懈怠情况的批评; f.质量工作部署,包括公司决定,决议,领导的指示,有关专家的分析,下一步工作的 步骤等。 4.1.2 质检部,财务部和其他相关部门在每季度结束前五天将有关资料与信息交企管办; 4.1.3 企管办负责收集资料,编写《通报》,报管理者代表审核,总经理签发; 4.1.4《通讯》属内部文件,作为受控文件管理; 4.1.5 各部门和班组收到《通报》后,十天内组织全体人员学习和讨论,并填写《通报》附 页,报企管办。 4.1.6《通报》附页将作为预防措施的记录,由企管办负责保存、备案。 4.2《财务状况预警系统》 4.2.1 每月5日财务部除了向总经理和有关领导报送财务报表外,附报财务状况预警报告,出 现下述情况,财务部将不受月初的限制随时递送预警报告: a.当某项或若干规定的预警指数超过限定范围; b.总经理认为有必要时规定递送的内容; 财务预警报告,内容包括: a.超过限定范围的状态,包括正常允许范围及当前值; b.与超标相关的财务数据; 4.2.2 总经理接到超标的预警报告可以采取下列措施: a.召集相关部门讨论超标的原因及处理办法; b.可以批转或责成相关部门研究分析后听取汇报。 4.2.3 预警指数清单包括其正常值与允许范围由财务部提出方案,每年在管理评审时进行确 认和修改。 4.3《工程质量预警系统》 4.3.1每月10日质检部向总经理和总工程师报送《工程质量预警报告》。 出现下述情况,质检部不受月初的限制随时递送预警报告:

相关文档