江湖浪子@IT
  • 创建:2007-8-21
  • 文章:74
  • 评论:47
  • 访问:27876
  •  
富盛SBO程序开发框架中缺省集成了FastReport作为报表打印的控件,并且可以轻易实现SBO报表查询和打印集成。
富盛SBO程序开发框架支持使用Matrix或者Grid组件作为报表查询结果显示控件,当然,也可以不在SBO中显示查询结果,而直接将报表数据结果显示在FastReport中。
富盛SBO程序开发框架使用Grid组件进行FastReport报表打印、显示集成的基类为fsSboReportGridQueryForm,这个基类包括以下几个属性:
  • 报表文件:ReportFileName,字符型
  • 报表查询语句,包括四部分,基类会在GetReportQuerySQL函数中组装,
    • SELECT语句:ReportQueryStr,字符型
    • WHERE子句:根据查询条件由GetReportWhereSQL()生成,应该被重载
    • GROUP子句:ReportGroupStr,字符型
    • ORDER子句:ReportO……
编辑 | 阅读全文(167) | 回复(0),foresun 发表于 2008-10-2 13:16
这是一个奇怪的要求,尽管在平常中我们的确有此需要。但是必须要说,这种做法已经严重违背了财务一体化的业务勾稽原则,并且可能造成财务数据的不一致性(可能从此之后您的库存成本的账目不会在回到原来的一致状态了)。
强烈不建议使用这种方法。尽管这里列举了如果使用SQL语句来实现将“使用OITW中的某个仓库的AvgPrice更新Sbo中所有仓库的AvgPrice”。
Update a set AvgPrice=b.Price FROM OITW a inner join OITW b on a.WhsCode<>'01' AND b.WhsCode='01' AND a.ItemCode=b.ItemCode
应该说这是一个通用的业务需求,但是Sbo只能通过库存重估一个物料一个物料的完成,晕死!
可以解决吗?当然可以,如果您愿意进行二次开发的话,使用Addon可能是唯一的解……
编辑 | 阅读全文(103) | 回复(0),foresun 发表于 2008-9-10 11:36
软件中,我们经常要进行一些输入数据的合法性验证,下例给出了在Sbo中如何判断在matrix数据控件中,是否存在具有相同的数据特点的数据行?
显然,这是一个非常有用的函数,因为在数据行中,除了关键字之外(Primary Key)之外,可能还是需要其他的唯一数据行,而这些数据唯一性使用Unique Index又存在一些业务上的约束或者要求。那么这个函数就非常有用了。
        public Boolean IsExistsSameLine4Matrix(SAPbouiCOM.Matrix mtx, string[] strColumns, string strFocusId, string strShowMsg)
        {
  ……
编辑 | 阅读全文(174) | 回复(0),foresun 发表于 2008-9-2 17:45
本文著作权属于江湖浪子@IT,任何人未经作者本人批准,不得转载。
在Sbo Addon开发中,经常为了业务实现,需要从当前的业务数据库中列举出符合条件信息,供业务操作人员进行选择,并且将选择之后的数据及其相关信息传递到当前的业务界面,或者填充当前的业务控件(比如编辑文本、下拉框等),或者填充Matrix中的指定Column,以及更加个性化的业务处理(比如根据选择的数据进行业务初始化、业务流程处理等)。
这的确是一个很常用的功能,有必要对其进行业务抽象和归纳,形成一个通用的数据选择功能。富盛Sbo程序开发框架有效的解决了这一问题。
因为业务不同,需要选择的业务数据也不同。就是说,这个通用的数据选择提供的选择数据是不确定的,自然选择条件是不确定的,提供操作用户的表示数据是不确定的,选择之后的传递到业务界面上的数据和业务操作也是不确定的。
1、检索条件、数据展示定制化
要展示不同的数据选择内容,并且展示数……
编辑 | 阅读全文(172) | 回复(0),foresun 发表于 2008-8-25 16:26
对于采用Sbo作为企业生产资源规划的管理软件的企业,随着企业信息化建设的逐步完善和公司业务发展,需要结合当前企业资源管理软件的业务数据和业务流程建立面向企业供应商、销售客户、潜在客户等合作伙伴的关系管理软件,以适应企业不断增强的对供应商、客户的服务、业务信息的分析要求。
一、系统特点
结合客户关系管理系统的软件属性,考虑到企业当前采用的Erp管理系统,Sbo业务伙伴关系管理系统应该具有以下特点:
1、 呼叫中心支持。Sbo业务伙伴关系管理系统应该支持呼叫中心,呼叫中心作为联系供应商、客户、合作伙伴等业务伙伴的相关业务人员通过外部电话呼入方式,向企业进行业务咨询、交流和沟通,及时反应企业同合作伙伴之间的合作关系和合作质量的最简单最直接的交互手段,在客户关系管理中具有重要的业务支撑作用。
2、 无缝的Erp业务嵌入。Sbo业务伙伴关系管理系统应该支持对企业现行的Erp软件提供详实的……
编辑 | 阅读全文(309) | 回复(1),foresun 发表于 2008-7-18 11:53
Sbo菜单字典,没什么需要解释的
序号菜单标示菜单名称层次菜单类型
1512文件(&F) 节点
2514结算(&C)1菜单项
35907另存为草稿(&S)1菜单项
4518页面设置...(&P)1菜单项
5519打印预览...(&r)1菜单项
6520打印 ...(&i) Ctrl+P1菜单项
73336发送(&e)1节点
83337发送消息(&S)2菜单项
96657电子邮件...(&E)2菜单项
106658SMS...(&M)2菜单项
116659传真...(&F)2菜单项
127168输出到(&x)1节点
137171格式到(&L)2节点
147172文本(&T)3菜单项
157174未格式化的文本(&U)3菜单项
167173图像(&I)3菜单项
177176PDF(&P……
编辑 | 阅读全文(591) | 回复(2),foresun 发表于 2008-7-15 11:36
一、标准SBO BOM的局限性
Sbo标准的BOM非常简单,很有很多局限性。比如:
  1. 每种BOM尽支持单产品输出,事实上,一个BOM对应着一种生产流程,一种生产线或者一个生产流程的产品输出非常有可能是多种产品输出的,不过极有可能一种主产品和一个或者几个副产品。在SBO标准的BOM管理中,这种生产没有办法支持,也没法实现对可以循环重复使用的生产产品进行管理;
  2. SBO标准BOM没有生产资源管理,生产资源包括生产人工组和生产阶段与生产单元,生产人工组根据生产技能可以分为不同的技能组,每个技能组可以完成对一个或者多个生产单元的操作,而一个或者多个生产单元组成了一个生产阶段,生产阶段集成了生产资源和生产资料(即生产物料,下同)。
  3. SBO标准BOM没有生产工序管理。事实上,对于众多的生产线来讲,是有工序存在的,没有工序管理,就无法有效的实现生产资料的有效采购和补充,或者通过大量采购通过仓库冗余来保障生产的进行-……
      编辑 | 阅读全文(270) | 回复(1),foresun 发表于 2008-7-10 9:54
      很多朋友非常关注即将投放市场的富盛Sbo生产管理功能,在此做一简单介绍。
      富盛Sbo生产管理仍然采用富盛Sbo Addons程序开发框架,以保证基于角色的细致化业务管理。究其业务功能主要包括但不限于以下几个部分:
      1、BOM扩展:扩展当前BOM管理,通过版本控制以保障SBO BOM对工序、生产费用、调度排程的支持。
      2、生产资源:包括生产单元、生产线、生产组等生产资源的管理,并实现同BOM扩展属性的关联,从而保障生产预测和生产调度中生产资料和生产资源的有效性,并根据生产订单的需要,结合生产单元的状况,为生产组和人力资源提供必要的需求建议。
      3、生产工序:根据扩展BOM对不同的产品进行数据化和图形化的生产工序管理,从而为生产预测和生产分析提供数据基础。
      4、生产预测:根据生产订单预测生产资料和生产资源的使用情况,为生产调度提供数据分析;根据生产订单和生产设备预测生产人力的配置和部署;根据生产设备状况和……
      编辑 | 阅读全文(203) | 回复(1),foresun 发表于 2008-7-9 9:11
      关键字:ERP技术 SAP
      问:我的销售业务的流程为:销售订单--销售交货--销售发票--销售收款,如何通过销售发票信息和日记帐分录事务交易信息进行销售交货与退货信息的分析。
      答:查询语句如下所示,在Sbo 2005B PL38环境下测试通过。
      select a.DocEntry,b.DocEntry 发票号码,c.DocEntry 订单号码, l.cardCode,l.cardname,a.ItemCode, a.Dscription, a.Quantity, a.Price, a.LineTotal, a.WhsCode, w.whsName, d.DocEntry 退货单号, d.Quantity 退货数, d.Price 退货单价, d.LineTotal 退货金额
      FROM DLN1 a inner join (SELECT Distinct T0.DocEntry, T0.BaseEntry FROM INV……
      编辑 | 阅读全文(215) | 回复(0),foresun 发表于 2008-7-7 13:46
      下载富盛Sbo入库质检验收管理软件演示视频,或者通过此连接地址进行选择性下载
      在Sbo中的标准业务流程中,不包括入库之前的物料验收环节,事实上,很多企业是需要这样的业务的。
      Sbo的入库主要包括三大类:采购入库、销售退货入库和生产入库。采购入库的数据来源主要包括采购订单、采购退货单和采购预留发票;销售退货入库的数据来源主要是交货单;而生产入库的主要数据来源是生产订单。那么,要实现Sbo的入库验收就应该在采购到货入库、销售退货入库和生产到货入库之前加入质检验收环节,如下图所示:

      如上图所示,为了保持业务流程的灵活性和业务数据的一致性,在入库业务发生前增加验收之间的业务,这些业务应该具有当前入库业务数据库的来源接管,并且可选地……
      编辑 | 阅读全文(380) | 回复(2),foresun 发表于 2008-7-7 9:59
      朋友希望我帮他完成在Sbo中实现按照不同的物料组和不同的客户之间的二维分析。
      应该说实现方式还是多种的,最简单的实现方式就是使用动态化的存储过程的方式。研究了一下,实现的存储过程如下:
      alter procedure up_TTLSaleInfo4CardAndItemGroup
       @sd smalldatetime, @ed smalldatetime
      with Encryption
      as
      begin
       declare @sql varchar(8000)

       select ItmsGrpCod, ItmsGrpNam, CardCode, sum(qty) qty, sum(amt) amt
       INTO #tmp
       FROM
        (
        select c.ItmsGrpCod, d.ItmsGrpNam, b.Card……
      编辑 | 阅读全文(243) | 回复(0),foresun 发表于 2008-6-23 16:48

      一个朋友请问我,怎样实现Sbo的系统模块主菜单的自定义标题设置。事实上,这个实现是简单的,既然有需要,花了一点时间,将此功能集成到了我们的富盛Sbo插件集中。

      在富盛Sbo插件集中的系统设置中我们新增一个项功能--自定义菜单,打开菜单出现以下自定义菜单的配置窗口,缺省的情况下,考虑到Sbo客户端的模块菜单项下的可编程功能,对于Sbo模块菜单下的所有系统菜单和第三方Addon用户菜单都可以纳入本功能进行自定义标题的设置。

      自定义菜单设置完成后,再次打开Sbo客户端时,Sbo的自定义标题就显示在配置的菜单项中。

      编辑 | 阅读全文(287) | 回复(0),foresun 发表于 2008-6-19 19:37
      有网友问:怎样在基于SBO UI API开发的Addon中接管系统提供的业务功能页面中的处理方式而改为采用自定义的处理流程?
      答:首先,本人并不建议这样去做,毕竟SBO作为一款成熟的财务、业务一体化的Erp软件,在业务处理上有着系统内在的数据和业务一致性约束和规则。
      但是在此既然提出,可能就有业务需要,这中业务需要在SBO Addon中是可以办到的。
      在SBO UI API中,所有的窗体控件事件都具有一个属性BeforeAction,这个属性为真的时候,表示指定的窗体控件事件在系统处理前需要处理的过程;这个属性为假的时候,表示指定的窗体控件事件在系统处理后需要处理的过程。
      那么,SBO针对一个SBO Addon来讲,如果SBO Addon侦听了某个系统业务窗体的某个控件事件,其处理的过程应该是:
      BeforeItemEventProcessing:ItemEvent的BeforeAction=tru……
      编辑 | 阅读全文(272) | 回复(0),foresun 发表于 2008-6-12 10:36

      2008-5-28 17:29 | [原创]使用游标的例子

      一个网友希望在Trigger中对某个记录集中不同的数据情况进性不同的处理,希望我帮他写个游标的例子:
      declare @id nvarchar(20), @store nvarchar(20), @Count int
      declare mycursor cursor for SELECT MaterialID,Store_ID,ItemCount FROM MATM16
      open mycursor
      fetch next from mycursor into @id, @store, @Count
      while @@fetch_status=0
      begin
       --do what you want here according to your business

       fetch next from mycursor into @id, @store, @Count
      end

      编辑 | 阅读全文(321) | 回复(2),foresun 发表于 2008-5-28 17:29
      关键字:程序开发
       
      在C++中加载和卸载DLL是一件很容易的事,LoadLibrary和FreeLibrary让你能够轻易的在程序中加载DLL,然后在任何地方卸载。在C#中我们也能使用Assembly.LoadFile实现动态加载DLL,但是当你试图卸载时,你会很惊讶的发现Assembly没有提供任何卸载的方法。这是由于托管代码的自动垃圾回收机制会做这件事情,所以C#不提供释放资源的函数,一切由垃圾回收来做。
      当AppDomain被卸载的时候,在该环境中的所有资源也将被回收。关于AppDomain的详细资料参考MSDN。下面是使用AppDomain实现动态卸载DLL的代码,
      using System.Collections.Generic;
      using System.Text;
      using System.Threading;
      using System.Reflection;
      namespace Unload……
      编辑 | 阅读全文(567) | 回复(0),foresun 发表于 2008-5-25 19:3
      (共 74 条) 上一页 1 2 3 4 5

      仅列出标题