电脑程序编码是怎么回事

电脑程序编码是怎么回事,第1张

编码是根据一定的协议或格式把模拟信息转换成比特流的过程。

在计算机硬件中,编码(coding)是在一个主题或单元上为数据存储,管理和分析的目的而转换信息为编码值(典型地如数字)的过程。在软件中,编码意味着逻辑地使用一个特定的语言如C或C++来执行一个程序。在密码学中,编码是指在编码或密码中写的行为。

将数据转换为代码或编码字符,并能译为原数据形式。是计算机书写指令的过程,程序设计中的一部分。在地图自动制图中,按一定规则用数字与字母表示地图内容的过程,通过编码,使计算机能识别地图的各地理要素。

n位二进制数可以组合成2n个不同的信息,给每个信息规定一个具体码组,这种过程也叫编码。

数字系统中常用的编码有两类,一类是二进制编码,另一类是二—十进制编码。

单据编码是ERP系统中必备的功能,用于生成各种单据的流水号,常常借助于日期时间等字符来生成一个唯一的单据号码。

从软件的角度来说,就是为生成数据表的主键值(参考编号),从用户的角度来说,就是给业务单据制定编码规范。之后做到见名知意。

举个例子:比如销售订单号是SO201508190001,采购订单号码是PO201508190001。

1 基础单据编码 Document serialization basic 

单据编码主表,用于存放单据及其编码规则。

CREATE TABLE [dbo][DocumentSerialization](

    [SeriesCode] [NVARCHAR](8) NOT NULL,

    [Description] [NVARCHAR](40) NOT NULL,

    [Suspended] [NVARCHAR](1) NULL,

    [SerialLength] [DECIMAL](2, 0) NULL,

    [PrefixLength] [DECIMAL](2, 0) NULL,

    [Prefix] [NVARCHAR](12) NULL,

    [NextSeqNo] [DECIMAL](10, 0) NULL,

    [AllowOverride] [NVARCHAR](1) NULL,

    [CreatedDate] [DATETIME] NULL,

    [CreatedBy] [NVARCHAR](10) NULL,

    [RevisedDate] [DATETIME] NULL,

    [RevisedBy] [NVARCHAR](10) NULL,

    [WithReset] [NVARCHAR](1) NULL,

    [PrevResetDate] [DATETIME] NULL,

    [PrefixDefault] [NVARCHAR](12) NULL,

 CONSTRAINT [PK_DocumentSerialization] PRIMARY KEY CLUSTERED 

(

    [SeriesCode] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

举例说明,这些字段值的含义。

处理销售订单功能SLSOSO,它的单据编码总长度是12,序号前缀长度是6,序号前缀规则是SO@Y@M,@Y表示两位数的年,@M表示两位数的月份,下一个单据编码流水号是4,所以当产生处理销售订单的单据编码时,它是SO1508000004。

2 宏处理 Macro

有时候我们需要根据情况选择一种或多种序列号生成方式,在生成序号的时候d出窗体,让我们选择要哪一种前缀编码方案,比如采购订单的编码规则,有时候是PO201508180001,有时候是OE201508180001,它们的前缀(Prefix)是不一样的。为达到这种目的,我们给DocumentSerialization增加子表。

CREATE TABLE [dbo][DocumentSerializationDetail]

(

[Index] [int] NOT NULL,

[SeriesCode] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

[Prefix] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

[TextPattern] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT ,

[NextSeqNo] [decimal] (10, 0) NULL,

[CreatedDate] [datetime] NULL,

[CreatedBy] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[RevisedDate] [datetime] NULL,

[RevisedBy] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[Suspended] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

) ON [PRIMARY]

GO

ALTER TABLE [dbo][DocumentSerializationDetail] ADD CONSTRAINT [PK_DocumentSerializationDetail] PRIMARY KEY CLUSTERED  ([Index], [SeriesCode]) ON [PRIMARY]

GO

ALTER TABLE [dbo][DocumentSerializationDetail] ADD CONSTRAINT [FK_DocumentSerializationDetail_DocumentSerialization] FOREIGN KEY ([SeriesCode]) REFERENCES [dbo][DocumentSerialization] ([SeriesCode])

GO

参考下面的数据例子来理解这个表的含义:

使用问号作为占位符,在运行时d出窗体让用户选择哪一种单据编码方案,用户选择PO,则生成PO201508前缀的采购订单编码,如用户选择OE,则生成OE201508前缀的采购订单编码。

为了加深对占位符号的理解,举例说明以下几种情况。

1  前缀定义值是 ABC,用户选择XY,则返回前缀结果XYABC。 

2  前缀定义ABC,用户选择XY,返回结果前坠XY_ABC,对于不多余的占位符号用下划线替代。 

3  前缀定义@D@M@YABC,当前日期是2015年8月19日,则生成的前缀值是150819ABC。

3 基于用户的需要编码方案 User-based document serialization

有时候不同的用户有不同的单据编码规则,我们需要依照用户来创建编码规则。先创建数据库。

CREATE TABLE [dbo][DocumentSerializationUser]

(

[Index] [int] NOT NULL,

[SeriesCode] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

[UserId]  nvarchar(10)  NOT NULL  COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

[Prefix] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

[TextPattern] [varchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT ,

[NextSeqNo] [decimal] (10, 0) NULL,

[CreatedDate] [datetime] NULL,

[CreatedBy] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[RevisedDate] [datetime] NULL,

[RevisedBy] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[Suspended] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

) ON [PRIMARY]

GO

这个表也是序号编码DocumentSerialization的子表,主键增加了用户编码字段UserId,记录每个用户要编码规则。

在系统中,优先使用基于用户的编码规则,其次是宏替换处理,最后才是应用基础的编码规则。

4 并发处理 Concurrency

当两个并发用户同时创建或保存一张同样的业务单据时,系统会返回两个相同的单据编码,产生了并发问题。

A 方案

打开业务功能时,立即为当前单据创建单据编码,比如产生单据编码SO15080004,在单据保存时,发现这张单据编码被其它的用户使用过,则重新产生一个新的业务单据编码SO15080005,如有发现此编码仍然被占用,依此向下搜寻,直到找到可以保存的单据编码。

这种方案的优点是总是可以保存单据,缺点是界面中看到的单据编码,不一定是最终保存的单据编码。

B 方案

打开业务功能时,不产生单据编码,只有在单据保存时才产生单据编码。避免了单据并发冲突。

这种方案优点是没有并发冲突,缺点是只有单据保存之后才可以看到单据编码。

5 编码规则程序设计 Document serialization programming

在单据保存时,调用接口产生编码规则,参考下面的程序片段。

EcnEntity ecn

if (ecnIsNew && seriesCode != stringEmpty)

{

     IDocumentSerializationManager serializationManager =ProxyInstance<IDocumentSerializationManager>();

     ecnEcnNo = serializationManagerGetNextSerialNo(sessionId, seriesCode, ecnEcnNo, ecn);

}

如果业务单据的实体保存时发生异常,则需要重置用户编码,清除产生的序号编码。

catch

{

     adapterRollback();

     if (ecnIsNew && stringCompareOrdinal(ecnEcnNo, currentRefNo) != 0)

     {

         try

         {

                ecnEcnNo = currentRefNo;

                serializationManagerResetNextSequenceNo(seriesCode);

         }

         catch

         {

         }

     }

     throw;

}

6 固定编码规则  Fixed document serialization

以上实现了基于流水号的单据编码规则,如果单据的编码规则相对固定,则以上方法行不通。请先阅读下面的需求说明:

接到客户订单,订立合同编号:HT201508003;接着做合同评审,产生一个合同评审单号PS201508003;合同评审通过以后,再到ERP系统中做销售单,销售单号是XSD201508003;如果一个合同分三个销售订单下单,则会分别产生XSD201508003-01,XSD201508003-02,XSD201508003-03 三个销售订单号。继续为销售订单发货,销售订单XSD201508003所产生的发货单号应该是XSFH201508003,如果销售订单XSD201508003分三次发货,则依次产生的三张销售发货单号是XSFH201508003-01,XSFH201508003-02,XSFH201508003-03。

单据编号201508003从销售合同到销售发货都是同一个单据号,只是编码前缀不同。

这种编码方案要求一个单据号码贯穿整个流程,单据编号从起始点业务单据传递到最终业务单据,仅仅是前缀不同。

要实现这种固定格式的单据编码,需要对流转的每个单据进行编程处理,业务单据也应该有固定的下推流程,做不到通用性,但是优点是很明显的,一个号码贯穿整个业务单据,非常清晰明了。

参考:博客园

文件编码建议按如下规则:

1

文件编码结构:

11

抬头码:通常是公司简写

12

文件阶层码:表明文件是哪一层的,比如,属于质量手册的用QM来表示

13

文件类别码:代表过程,比如:用5来代表与管理职责相关的

14

文件序列码:比如,在第5部分,用01来表示质量目标,用02来表示管理评审等等

15

文件版本码:表明文件的版本

2

各部分详细规则:

21

抬头码:

公司简写,用大写英文表示

22

文件阶层码:

用大写英文表示,其中,一级文件质量手册用QM表示,二级文件程序文件用QP表示,三级作业文件等三级文件用QW表示,四级表单用QR表示,外来文件用ED表示。

23

文件类别码:

代表文件所属过程,为管理规范,用一位阿拉伯数字表示。特规定为文件类别码与ISO9001各个大点相对应:

代码表示过程标准

4

与体系策划、文件、记录管理相关的质量管理体系

5

与管理职责、质量目标、管理评审相关管理职责

6

与资源管理相关资源管理

7

与产品实现过程相关产品实现

8

与产品、过程测量和监视、持续改进有关测量、分析与改进

24

文件序列码:

为两位阿拉伯数字,本部分,从01开始,直到99,在实际编写中,尽量与标准条文小点对应,比如:

比如,在第5部分,用01来表示质量目标,用02来表示管理评审等等

25

文件版本码:

表明文件的版本,用一位大写英文字母和一位阿拉伯数字组成,如:A/0。

比如:

ABC/QP/501—A/0

阅读者能够很清楚地知道,这个文件是一个关于管理职责部分的A/0版程序文件

ABC/QW/501—A/1

关于管理职责部分的A/1版本的三级文件

ABC/QR/501—A/1

关于管理职责部分的A/1版本的记录表单

ABC/ED/501—A/1

关于管理职责部分的A/1版本的外来文件

采用上述编码规则的好处在于:

阅读者清楚文件分类和属性

编写者清楚,在新编一个文件的时候,如何进行明确准确编码。

希望对你有用~~~~~~~~~~~~~~~~~~~~~~

:)

ISO体系文件编号,各企业根据自己的实际需要编号就好了。没有死办法。但是,一定要有规律,最好从编号上就可以看出文件的类别。编号要遵守“唯一性原则”。

习惯上编号包括公司缩写,部门缩写,文件性质代码,序列号。

给你某单位的文件编码控制程序,你参考一哈子:)

文件编码程序

10 目的

规定文件的编号,以便于识别各类文件。

20 适用范围

适用于公司ISO9002质量体系文件的编码。

30职责

31 管理者代表编制各种文件编码。

32 文件管理员负责文件的编码。

40 程序

41文件编号规定

411 公司码

本公司名称“嘉禾新城物业管理有限公司”公司码取“JH”。

412文件类别码

文件类别码取其英语的简称,即质量手册规定为“QM”,程序文件规

定为“QP”,其他三级文件(工作指引与 *** 作规程等)规定为“WI”,各质

量记录用的表格规定为“FM”。

413体系要素码

各要素的编码参照ISO-9002-94各要素的序号码,要素码为两位数

字,如ISO要素“46采购”即为06。

414序号码

同要素文件的编制顺序,序号码取两位数,从01开始。

415部门码

部门码按以下规定进行或取部门名称两个字的汉语拼音的声母组成:

部门名称 部门码 部门名称 部门码 部门名称 部门码

绿化队 LH 水电工程队 SD 资料室 ZL

保安队 BA 商业经营 特约服务队 SF

综合业务队 ZW

清洁队 QJ

备注:ISO9002质量体系方面的文件都规定为资料室的文件

42质量手册的编号

质量手册的编码以“公司码-文件类别码”形式进行,即JH-QM

43 程序文件编号

程序文件的编号方式按“公司码--文件类别码--要素码--序号码”进行。

例如:《文件编码程序》的编号

JH-QP-05-02

序号码,文件编制顺序

要素码,文件控制

文件类别码

公司码

44 三级文件的编号

三级文件的编号按“特征码-部门码-序号码”方式进行。

例如:《清洁队工作指引》的编号

WI-LH-01

序号码,文件编制顺序,表示为该部门编制的第一份文件;

部门类别码,表示为绿化队的文件;

文件特征码 ,表示为三级文件;

45质量记录表格的编号

质量记录表格的编号按“特征码-部门码-序号码-版次码”方式进行,规定版次码从01,02.....依次按顺序进行;

例如:《管理评审计划 》表格的编号

FM-ZL-01-01

版次码,表示该表格的版次为第一版次

序号码,表示为资料室的第一份表格

部门类别码,表示为资料室的表格

表格的特征码。

从我手头的培训资料中,复制一段关于文件、记录控制的ISO资料给你:

文件控制里面,我们先来说说什么是有效版本,必须具备这么三个条件,第一,必须经过批准(这里说的是文件的适用性)经过批准的文件才可以发布;第二,必须有识别有效版本的标识(编号或受控状态);第三,必须从正常渠道获得,(应有发放、回收记录)。为什么要对文件进行控制?就是为了保证适用文件的状态。试想如果一个组织内部不同的岗位在按照不同的文件内容执行,怎么会不出差错?

文件控制里面另外一个要说的是外来文件的控制,先来解释一下什么是外来文件,一般来讲,外来文件包括顾客提供的图样,有关的技术文件,还有就是引用的标准,包括国家标准、行业标准等的有效版本。对于这些外来文件需要采取措施进行控制,应该进行登记,或者进行编目管理。外来文件是受控文件的一种,所以要规定控制的方法。

对于文件的控制应该形成文件。

记录是一种特殊类型的文件,这里大家要明确一下,在记录中要分清楚记录和表格。表格就是记录的格式,我们在记录一些信息的时候会设计一些表格以方便填写,在没有填写内容之前,可以叫做表格,在填写内容之后就成为记录了,表格的内容和文件一样,需要进行控制,必要的时候可以采取与文件一样的控制方法来控制表格的备案、修改和作废。作为记录来讲,和文件最大的不同就是纪录不需要审批,每天都要产生大量的记录,为什么要做记录?是因为记录是一种手段,一种提供可追溯的手段,所以,记录要保存,如何保存,谁来保存,保存多久,这就应该在记录控制的文件里面进行描述,也就是要形成文件。

423 文件控制

质量管理体系所要求的文件应予以控制。记录是一种特殊类型的文件,应依据424 的要求进行控制。

应编制形成文件的程序,以规定以下方面所需的控制:

a) 文件发布前得到批准,以确保文件是充分与适宜的;

b) 必要时对文件进行评审与更新,并再次批准;

c) 确保文件的更改和现行修订状态得到识别;

d) 确保在使用处可获得适用文件的有关版本;

e) 确保文件保持清晰、易于识别;

f) 确保外来文件得到识别,并控制其分发;

g) 防止作废文件的非预期使用,若因任何原因而保留作废文件时,对这些文件进行适当的标识。

424 记录控制

应建立并保持记录,以提供符合要求和质量管理体系有效运行的证据。记录应保持清晰、易于识别和检索。应编制形成文件的程序,以规定记录的标识、贮存、保护、检索、保存期限和处置所需的控制。

条文理解

这一节讲的是文件的要求,在2000版的标准里面,对于文件的要求是比较宽松的,那就是根据组织自身的特点和具体情况来决定文件的多少,但是,还是有一些文件是必须形成的,这的规定有6个地方,分别是刚才说的文件控制、记录控制、还有后面要讲到的822内部审核、83不合格品控制、852纠正措施、853预防措施,在编制文件的时候,可以将纠正措施和预防措施合并起来编写。事实上,其他的条款虽然没有强制规定形成文件,但从控制的角度看,有些文件还是必需的。

以上就是关于电脑程序编码是怎么回事全部的内容,包括:电脑程序编码是怎么回事、ERP系统单据编码规则、谁有ISO质量管理体系的文件编码规则 谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10093290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存