您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 7.0-TAC语言说明书
南北7.0TAC语言说明书北京南北天地科技有限公司版权所有第1页共107页南北7.0TAC语言说明书(意见稿)北京南北天地科技有限公司南北7.0TAC语言说明书北京南北天地科技有限公司版权所有第2页共107页1.前言南北7.0软件是采用100%纯Java语言,基于J2EE规范,具有三层架构的财务业务一体化软件。软件具有跨平台性,可在如Unix、Linux、Windows等操作系统上运行。支持从局域网和互联网访问,可以全部运行于INTERNET环境。支持各种数据库,如ORACLE,SQLSERVER,SYSBASE,INFORMIX,DB2等。南北软件内嵌的开发语言TAC,具有强大的二次开发能力。它简单易学,Java应用程序所能实现的功能,TAC程序基本都能实现。特别是在南北业务软件7.0版中TAC被大量使用,所以学会学好TAC语言,对南北员工实施水平的提高,而且对个人学习能力、编程水平的提高都有很大的帮助。在南北软件7.0中,报表定义、公式定义、凭证模板、转帐流程、打印格式、附加菜单定义、菜单定义等很多功能菜单中都可使用,所以要真正了解南北7.0软件,真正理解南北7.0软件的精华,TAC语言是必不可少的学习部分之一。本教材只是试图将TAC语言的基本使用方法阐述一二,因为TAC语言也是在不断的发展完善当中,所以今后的完善补充必不可少,请南北同仁补充指正。本教材将从以下几方面对TAC语言的使用进行说明:1、SQL语言简介。2、南北软件基础表说明。3、TAC语言基础。4、使用TAC语言构造对话框(DialogPane)。5、使用TAC语言构造表和数据集(Table,DataSet)。6、使用TAC语言监听表和数据集事件7、使用TAC语言的制凭证语句生成凭证。8、在凭证模板定义中使用TAC。9、在打印格式定义中使用TAC。10、常用的TAC函数。南北7.0TAC语言说明书北京南北天地科技有限公司版权所有第3页共107页2.SQL语言介绍2.1.SQL语言是什么?SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。2.2.查询数据SELECT2.2.1.作用从一张或多张数据库表中检索数据。2.2.2.语法SELECT表达式1[,表达式2]FROM表名[,表名][WHERE逻辑表达式1[,逻辑表达式2,....]];[GROUPBY表达式1[,表达式2,....]];[HAVING逻辑表达式1[,逻辑表达式2,....]];[ORDERBY表达式1[,表达式2,....]]2.2.3.例子A)FROM后面表是查询的源表,表名可使用别名,使用别名时其他相关的地方也必须使用别名。一般需要同表内部关联时必须使用别名。**例SELECTb.*fromfa_cardasa,fa_cardasbwherea.fcode=b.fcodeanda.tcode=b.tcodeB)WHERE[关联条件1[,关联条件2....]][,过滤条件1[,过滤条件2]....]关联条件是从多个表中检索数据,关联条件之间可使用and、or连接关联条件句法:表1.字段1=表2.字段2例SELECTivoucher.acode,anamefromivoucher,acodewhereivoucher.acode=acode过滤条件中可使用的通配符_下滑线表示一个字符%一个或多个字符南北7.0TAC语言说明书北京南北天地科技有限公司版权所有第4页共107页过滤条件中可使用的比较条件like,notlikeisnull,isnotnullin,notinbetween…and例select*fromacodewhereacodelike'102__';select*fromacodewhereacodenotlike'102%';select*fromacodewhereacodein(‘101’,’102’)//in后面的内容必须是具体的值;select*fromacodewhereacodenotin(‘101’,’102’);selectbcode,bname,shortcodefrombcodewhereymdeprecatedisnull;select*fromccodewhereccodeisnotnull;select*fromccodewhereccode’’;C)HAVING是对查询统计后的值再根据条件进行过滤,其作用可以与GYOUPBY等同。例表t其结构和记录如下f1f2a10a20b15那么SELECTf1,sum(f2)FROMtGYOUPBYf1HAVINGsum(f2)20结果为f1表达式b15D)GROUPBY用来组织分组条件分组条件中使用的字段,必须在SELECT查询字段的范围内。E)ORDERBY用来组织查询结果的排序排序字段必须包含在分组条件中。倒序:orderby字段名desc例:select*frombcodeorderbybcodedescF)其它可用的函数及参数distinct唯一的例:selectdistinctfcodefromfa_cardG)聚合函数sum()求和、avg()平均值、count(*)统计纪录数、max()最大、min()最小例:selectcount(*)frombcode//返回bcode表中的记录数在是用子查询是其返回值必须是1个2.3.增加数据INSERT2.3.1.语法INSERTINTO表名(字段名1[,字段名2,....])VALUES(值1[,值2,....])//插入一条纪录或南北7.0TAC语言说明书北京南北天地科技有限公司版权所有第5页共107页SELECT语句//查询出的字段个数与插入子段个数必须相同切相互对应。2.3.2.例子INSERTINTOmonthlogb(year,month,bcode,flags)VALUES(2006,6,’001’,1);或者INSERTINTOmonthlogb(year,month,bcode,flags)SELECTyear,month,'',flagsFROMmonthlog注:同一张表内也可INSERT。2.4.更新数据UPDATE2.4.1.语法UPDATE表名SET字段名1=值1[,字段名2=值2,....]WHERE逻辑表达式2.4.2.例子updatebcodesetshortcode=’zh’wherebcode=’001’;2.4.3.特殊语法SQLSERVER数据库支持下列语法,可以很方便的从一张表中更新另外一张表的内容:UPDATE表名ASET字段名1=表名B.字段名1[,字段名2=表名B.字段名2,....]FROM表名A,表名BWHERE表名A.字段名1=表名B.字段名1例:UPDATEfa_bcodeSETovalue=fa_card.ovalue,thedepr=fa_card.thedeprFROMfa_bcode,fa_cardWHEREfa_bcode.year=fa_card.yearandfa_bcode.month=fa_card.monthandfa_bcode.fcode=fa_card.fcodeandfa_card.year=2006andfa_card.month=6andfa_card.fcode=’0001’andfa_card.status=1;对于其他数据库,只能用嵌套子查询的方式关联更新数据,下面的语句是标准的SQL:UPDATEfa_bcodeSETovalue=(SELECTovalueFROMfa_cardWHEREyear=fa_bcode.yearandmonth=fa_bcode.monthandfcode=fa_bcode.fcodeandfa_card.status=1)WHEREyear=2006andmonth=6andfcode=’0001’;2.5.删除数据DELETE2.5.1.语法DELETEFROM表名WHERE逻辑表达式2.5.2.例子例:deletefrombcodewhereymdeprecateisnotnull说明:因为bcode表中的bcode字段与其他几个表建有关联,所以在删除记录时会出现错误,有关联的记录即使满足上面SQL语句的条件,也将无法删除。读者可将这做为一个待解决的问题,在学习TAC语言后,可试做一段TAC程序,连锁更新与bcode表中的ymdeprecatedisnotnull的记录相关联的表中的bcode字段,然后删除bcode表中的ymdeprecatedisnotnull的记录(财务系统中与bcode关联的南北7.0TAC语言说明书北京南北天地科技有限公司版权所有第6页共107页表:balance,banksheet,ctledger,fa_card,hsale,ivoucher,plandata,rptcorp,salarydata)2.6.建立新表CREATETABLE2.6.1.语法CREATETABLE表名(字段1类型1(长度1)[NOTNULL]CONSTRAINT主键名PRIMARYKEY(字段1))2.6.2.例子CREATETABLEbcode1(bcodeVARCHAR(16)NOTNULL,bnameVARCHAR(10)NOTNULL,ymdeprecatedINTNULL,modifydateDATETIMENULL,CONSTRAINTprimarykey_bcode1PRIMARYKEY(bcode))2.6.3.建议建立新表最方便的方法是使用南北软件提供的表结构定义,定义表名和各字段后,点击右键更新表结构,系统会生成这张表。注意用户自定义的表,表号应大于等于90000。2.7.删除表DROPTABLE2.7.1.语法DROPTABLE表名2.7.2.例子DROPTABLEbcode1;南北7.0TAC语言说明书北京南北天地科技有限公司版权所有第7页共107页3.南北软件基础表说明3.1.前言要使用好TAC语言,首先应该对南北系统的一些系统设置有清晰的了解。南北系统中有几个重要的系统表,这些系统表记录了南北系统的表定义、字段定义、表索引定义,表关联定义、公式定义、界面定义、权限定义、单据定义、菜单定义以及系统配置等等。了解这些将对学习TAC语言及对南北系统的了解和今后的实施工作带来帮助和便利。3.2.tbldef表tbldef表记录了南北系统中所有的表信息,其结构如下:表名:tbldef中文名:表定义字段名称字段中文名称类型长度和小数说明tblid表号INTEGER10tblname表名VARCHAR32tblexpl说明VARCHAR40中文名称或含义acpfilter帐套间拷贝条件VARCHAR40tblflags关联到菜单SMALLINT1tblflags选项SMALLINT4第1位:配制表storegrp表空间VARCHAR64ORACLE数据库使用modidate最近修改日期DATE83.3.flddef表flddef表存放南北软件中所有表的列信
本文标题:7.0-TAC语言说明书
链接地址:https://www.777doc.com/doc-6101424 .html