抽象类:abstract calss 接口:interface 抽象类和接口在设计模式和框架设计中起着至关重要的作用,然而他们之间既有相似之处又有不同之处,他们也是面向对象oop中最亮的亮点之一,以下是我学oop以来对于抽象类和接口类的理解(以c#为例,java可能会有微小区别): 1。接口可以用任何可访问性来声明,但接口里的方法必须是公有的和虚拟的;而抽象类里的方法可以为任何访问属性,而且非抽象方法必须实现。 2。接口里不能定义字段,但可以定义属性;;而抽象类2者都可定义 3。一个类可以继承和实现多个接口;而一个类最多只能继承一个抽象类(即接口支持多继承,抽象类只支持单继承) 4。接口和抽象类都不能直接实例化,必须通过实现它的子类来实例化他们 5。接口一旦定义基本上就不能修改(因为一修改就需要修改所有实现他的类来重新实现修改部分);而抽象类可以被扩展功能,只要不是抽象的方法。 6。在c#中,实现接口是直接覆盖接口中方法;实现抽象类时是重写抽象类中的抽象方法。 7。接口里不含程序流程及结构,而抽象类中可以包括程序流程并且可以调用暂未实现的抽象方法而不会出现编译错误。 8。接口与抽象类相比更适合编写类库或组件;抽象类与接口相比更适合设计框架。
select *,(select count(*)+1 from A a where a.num>b.num) from B b order by num asc; 取出比b.num大的集合是couont 加1 是排名
简单的表示就是 A TYPE I. B LIKE A. 利用type可以直接将数据类型<datatype>分配给已声明的数据对象。利用like,可以将一个数据对象<dataobject>的数据类型分配给已声明的数据对象,也就是间接引用数据类型。
sy-index:做无条件循环是的次数值. sy-subrc:系统执行后的返回值,如果为0就表示成功,否则为失败。 sy-fdpos:子字符串在源串中的位置。 sy-uzeit:获取系统时间。 sy-datum:获取系统日期。 shift string:左移字符串。长度减1。 concatenate:连接字符串。 split:拆分字符串。 search:查询字符串。 replace:替换字符串。 condense:删除多余的空格。 translate:转换字符格式,如将'ABC'转换为'abc' convert text:创建一个可排序的字符串。 overlay:用一个字符串覆盖另一个字符串。 strlen:字符串长度。 abs:取绝对值。 cos、sin、tan:取三角函数值。 acos、asin、atan:反三角函数。 cosh、sinh、tanh:双曲函数。 exp:e的幂函数。 Log:底数为e的对数。 log10:底数为10的对数。 sqrt:平方根。 sign:返回参数符号。 trunc:返回参数的整数部分。 frac:输入参数的小数部分。 ceil:返回不小于参数的最小整数。 floor:返回不大于参数的最小整数。
ABAP 常用FUNCTION集锦1 ABAP_DOCU_DOWNLOAD – 以HTML格式下载ABAP文档。 ARFC_GET_TID – 以十六进制形式返回终端的IP地址。 BAL_* -容纳了SAP的应用程序日志所有的函数模块。 BP_EVENT_RAISE –在 ABAP/4 程序中触发一个事件。 BP_JOBLOG_READ –获得job log的执行结果。 CLOI_PUT_SIGN_IN_FRONT – 将负号前置, SAP默认将负号放在数字后面。 CLPB_EXPORT –从内表导入到剪贴板。 CLPB_IMPORT – 从剪贴板导入内表。 COMMIT_TEXT -To load long text into SAP 。 CONVERSION_EXIT_ALPHA_INPUT - 数字串前补0 example: input = 123 output = 0000000000000。。。000000000000123 CONVERSION_EXIT_ALPHA_OUTPUT – 消除数字串前的0 example: input = 00000000000123 output = 123 CONVERT_OTF – 将SAP文档(SAP Script)转换成其他类型。 example: CALL FUNCTION 'CONVERT_OTF' EXPORTING FORMAT = 'PDF' IMPORTING BIN_FILESIZE = FILE_LEN TABLES OTF = OTFDATA LINES = PDFDATA EXCEPTIONS ERR_MAX_LINEWIDTH = 1 ERR_FORMAT = 2 ERR_CONV_NOT_POSSIBLE = 3 OTHERS = 4。 DATE_GET_WEEK – 返回一个日期所在的周数。 DATE_CHECK_PLAUSIBILITY – 检查一个日期是否是SAP的有效格式。 DYNP_VALUES_READ – 读取SCREEN字段的值,也可以用来读取报表SELECTION SCREEN。 DYNP_VALUES_UPDATE -更新屏幕字段的值。 ENQUE_SLEEP –在继续处理之前等待一个指定的时间。 ENQUEUE_ESFUNCTION – 锁定一个ABAP程序使它不可以被执行: RELID = 'ZZ' SRTF2 = 0 SRTF = (your report name) 注意不要用SY-REPID来传递你的报表名字,当把SY-REPID作为参数传递给函数模块的时候,SY-REPID的值实际上已经发生了变化。 EPS_GET_FILE_ATTRIBUTES – 获得文件属性。 EPS_GET_DIRECTORY_LISTING – 返回一个本地或网络目录的文件列表。 F4_DATE - 弹出一个窗口显示一个日历允许用户选择一个日期。 F4IF_SHLP_EXIT_EXAMPLE – F4接口模块。 FILENAME_GET – 弹出一个文件选择对话框。 FTP_CONNECT – 打开并登陆FTP服务器的连接。 FTP_COMMAND – 在FTP服务器上执行一个命令。 FTP_DISCONNECT –关闭指向FTP服务器的连接。 FORMAT_MESSAGE - Takes a message id and number, and puts it into a variable。 Works better than WRITE_MESSAGE, since some messages use $ as a place holder, and WRITE_MESSAGE does not accommodate that, it only replaces the ampersands (&) in the message。 GET_GLOBAL_SYMBOLS – 返回一个程序的tables, select options, texts, etc 。甚至包含selection screen的文本定义。 GET_INCLUDETAB – 获得一个程序的INCLUDES列表。 GUI_CREATE_DIRECTORY –在显示服务器端创建一个目录 。 GUI_DELETE_FILE – 在显示服务器端删除一个文件 。 GUI_DOWNLOAD – 从应用服务器下载内表到显示服务器。 GUI_EXEC – 调用一个文件或程序,取代了WS_EXECUTE。 GUI_GET_DESKTOP_INFO – 获得客户端桌面信息,取代了WS_QUERY。 GUI_REMOVE_DIRECTORY – 从显示服务器删除一个目录 。 GUI_RUN – 启动一个文件或程序 。 GUI_UPLOAD – 从显示服务器上传文件到应用服务器,取代了WS_UPLOAD。 HELP_START – 为一个字段显示帮助。 Useful for doing AT SELECTION SCREEN ON VALUE REQUEST for those fields that do not provide F4 help at the DDIC level。 HOLIDAY_GET – 基于Factory Calendar&/ Holiday Calendar提供了一个节日表。 INIT_TEXT –上传长文本到SAP。 K_WERKS_OF_BUKRS_FIND – 返回一个特定公司代码的所有工厂。 LIST_TO_ASCII –将ABAP报表从 OTF形式转换成ASCII 形式。 LIST_FROM_MEMORY – Retrieves the output of a report from memory when the report was executed using SUBMIT。。。EXPORTING LIST TO MEMORY。 See also WRITE_LIST。 MONTH_NAMES_GET – 获得所有的月和名字 MONTHS_BETWEEN_TWO_DATES_NEW -获得月份之差 MS_EXCEL_OLE_STANDARD_OLE – 创建一个文件并自动启动Excel 。 CONVERT_OTFSPOOLJOB_2_PDF - converts a OTF spool to PDF (i。e。 Sap script document) CONVERT_ABAPSPOOLJOB_2_PDF -convert ABAP spool output to PDF POPUP_TO_CONFIRM_LOSS_OF_DATA – 弹出一个对话框告知用户有可能丢失数据,询问是否操作继续。 POPUP_TO_CONFIRM_STEP -弹出一个对话框询问用户是否操作继续。 POPUP_TO_CONFIRM_WITH_MESSAGE POPUP_TO_CONFIRM_WITH_VALUE POPUP_TO_DECIDE POPUP_TO_DECIDE_WITH_MESSAGE POPUP_TO_DISPLAY_TEXT POPUP_TO_SELECT_MONTH –弹出一个对话框供选择月。 POPUP_WITH_TABLE_DISPLAY -Provide a display of a table for user to select one, with the value of the table line returned when selected。
MM01 - 创建物料主数据 XK01 - 创建供应商主数据 ME11 - 创建采购信息记录 ME01 - 维护货源清单 ME51N- 创建采购申请 ME5A - 显示采购申请清单 ME55 - 批准采购申请(批准组:YH) ME57 – 分配并处理采购申请 MB21 - 预留 MB24 - 显示预留清单 ME21N- 创建采购订单 ME28 - 批准采购订单(批准组:YS) ME9F - 采购订单发送确认 ME2L - 查询供应商的采购凭证 ME31 - 创建采购协议 MD03 - 手动MRP MD04 - 库存需求清单(MD05 - MRP清单) MRKO - 寄售结算 MELB - 采购申请列表(需求跟踪号) ME41 - 创建询价单 ME47 - 维护报价 ME49 - 价格比较清单 MI31 - 建立库存盘点凭证 MI21 - 打印盘点凭证 MI22 - 显示实际盘点凭证内容 MI24 - 显示实际盘点凭证清单 MI03 - 显示实际盘点清单 MI04 - 根据盘点凭证输入库存计数 MI20 - 库存差异清单 MI07 - 库存差额总览记帐 MI02 - 更改盘点凭证 MB03 - 显示物料凭证 ME2O - 查询供应商货源库存 MB03 - 显示物料凭证 MMBE - 库存总览 MB5L - 查询库存价值余额清单 MCBR - 库存批次分析 MB5B - 查询每一天的库存 MB58 - 查询客户代保管库存 MB25 - 查询预留和发货情况MB51 MB5S - 查询采购订单的收货和发票差异 MB51 - 物料凭证查询(可以按移动类型查询) ME2L - 确认采购单/转储单正确 MCSJ - 信息结构S911 采购信息查询(采购数量\价值、收货数量\价值、发票数量\价值) MCBA - 核对库存数量,金额 MM04 - 显示物料改变 MMSC - 集中创建库存地点 MIGO_GR根据单据收货: MB1C - 其它收货 MB1A - 输入发货 MB1B - 转储 MB31 - 生产收货 MB01 - 采购收货) MBST - 取消物料凭证 MM60 - 商品清单 ME31L- 创建计划协议 ME38 - 维护交货计划 ME9A - 消息输出 MB04 - 分包合同事后调整 MB52 - 显示现有的仓库物料库存 MB90 - 来自货物移动的输出 CO03 - 显示生产订单 IW13 - 物料反查订单(清单) IW33 - 显示维修订单 VA01 -创建销售订单 VL01N - 参照销售订单创建外向交货单 VL02N – 修改外向交货单(拣配、发货过帐) VL09 – 冲销销售的货物移动 VF01 – 出具销售发票 VF04 – 处理出具发票到期清单 VF11 – 取消出具销售发票 MVT for MIGO_GR 101 : 一步收货 103+105 : 两步收货 MVT for MB1A 201 : 发料到成本中心 241 : 从仓库发货到资产(在建工程) 261 : 发货到内部订单 551 : 为报废提取 555 : 自冻结库报废 601 : 销售发货 653 : 销售退货 Z41 : 维修工单发货 MVT for MB1B 344 : 欲报废物资先移库到冻结库存 411K: 从代销到本公司的转帐 541 : 从非限制库存到分包商库存的转储记帐(委托加工) 555 : 自冻结库报废 MTV for MI07(盘点记帐) 701 : 实际盘点-盘盈 702 : 实际盘点-盘亏
代码 using System; class test { static void Main( ) { //声明一个程序信息类 System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo( ); //设置外部程序名 Info.FileName = "notepad.exe"; //设置外部程序的启动参数(命令行参数)为test.txt Info.Arguments = "test.txt"; //设置外部程序工作目录为 C:\ Info.WorkingDirectory = "C:\\"; //声明一个程序类 System.Diagnostics.Process Proc ; try { // //启动外部程序 // Proc = System.Diagnostics.Process.Start( Info ); } catch( System.ComponentModel.Win32Exception e ) { Console.WriteLine( "系统找不到指定的程序文件.\r{0}", e ); return; } //打印出外部程序的开始执行时间 Console.WriteLine( "外部程序的开始执行时间:{0}", Proc.StartTime ); //等待3秒钟 Proc.WaitForExit( 3000 ); //如果这个外部程序没有结束运行则对其强行终止 if( Proc.HasExited == false ) { Console.WriteLine( "由主程序强行终止外部程序的运行!" ); Proc.Kill( ); } else { Console.WriteLine( "由外部程序正常退出!" ); } Console.WriteLine( "外部程序的结束运行时间:{0}", Proc.ExitTime ); Console.WriteLine( "外部程序在结束运行时的返回值:{0}", Proc.ExitCode ); } }
总结C#中得到程序当前工作目录和执行目录的一些方法 1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 获取模块的完整路径。 2. System.Environment.CurrentDirectory 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。 3. System.IO.Directory.GetCurrentDirectory() 获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:\www里,这个函数有可能返回C:\Documents and Settings\ZYB\,或者C:\Program Files\Adobe\,有时不一定返回什么东东,我也搞不懂了。 4. System.AppDomain.CurrentDomain.BaseDirectory 获取程序的基目录。 5. System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase 获取和设置包括该应用程序的目录的名称。 6. System.Windows.Forms.Application.StartupPath 获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个"\"而已 7. System.Windows.Forms.Application.ExecutablePath 获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。 出处:九头龙的Blog
代码 sp_configure 'allow updates',1 --允许修改系统表 RECONFIGURE WITH OVERRIDE --修改配置 go /* colstat =1是自增列 */ update syscolumns set colstat=0 where colstat=1 and id=object_id('需要修改的表名') go sp_configure 'allow updates',0 --不允许修改系统表 RECONFIGURE WITH OVERRIDE --修改配置 go
无法复制iisapp.vbs或staxmem.dll文件,但在c:\WINDOWS\i386下有这个文件,仍然无法安装,按如下步骤操作后,方可正常安装! (1) 开始 > 运行 > 输入 CMD >再输入以下命令: esentutl /p %windir%/security/database/secedit.sdb (2) 接着屏幕上会输出如下信息: Microsoft® Windows® Database Utilities Version 5.2 Copyright © Microsoft Corporation. All Rights Reserved. Initiating INTEGRITY mode... Database: L:\WINDOWS\security\database\secedit.sdb Temp. Database: TEMPINTEG2680.EDB Checking database integrity. Scanning Status (% complete) 0 10 20 30 40 50 60 70 80 90 100 |---|---|---|---|---|---|---|---|---|---| ................................................... Integrity check successful. Operation completed successfully in 0.841 seconds. (3)插入安装盘再试一下,问题迎刃而解 翻阅了一下资料发现这是Microsoft® Windows® Database Utilities,是微软的Windows数据库工具吧,不是很了解,总之问题是解决了,作个笔记也方便其他碰到类似问题的朋友参考。 |
最新的文章
|