Cell报表控件成功应用于汽车零配件销售企业管理信息系...

上传人:仙*** 文档编号:43746527 上传时间:2021-12-04 格式:DOC 页数:8 大小:403.01KB
返回 下载 相关 举报
Cell报表控件成功应用于汽车零配件销售企业管理信息系..._第1页
第1页 / 共8页
Cell报表控件成功应用于汽车零配件销售企业管理信息系..._第2页
第2页 / 共8页
Cell报表控件成功应用于汽车零配件销售企业管理信息系..._第3页
第3页 / 共8页
点击查看更多>>
资源描述
Cell报表控件成功应用于汽车零配件销售企业管理信息系统【项目背景】经过数十年风雨历程,中国汽车产业已从专属象征的奢侈品跨入大众消费时代,如此庞大的汽车消费市场,带动了中国汽车零配件产业的蓬勃发展。随着中国加入WTO,汽车零配件行业作为产业链中不可或缺的重要环节,已经打破国家地域的限制,形成全球化市场与生产格局,外资同业的介入,将使得国内汽配市场竞争更趋激烈与白热化。信息化在帮助汽配企业降低采购、营销成本,减少库存、优化库存结构,拓展销售渠道、提高服务效率等方面起到了不可替代的作用。所以说,汽配行业信息化建设不是应该的,而是必然的。【系统概述】 该系统主要管理企业中通用的信息化模块,包括工资、仓库管理、采购管理、销售开单管理、pos柜台销售管理、出纳管理、短信管理、P2P(类似RTX)等部分。【报表需求】一、报表需求分析 (1)单据式报表 例如我们需要打印入库单、出库单时,这种情况采用画模版方式完成。 (2)套打类 例如套打发票之类的情况也采用画模版方式完成,只是打印时候隐藏部分内容,cell已有类似例子提供。模板式实现方法 (3)自由报表 有些自由格式的表格,数据可能从数据库、文本文件、或者其他方式,这个时候需要画好表格,然后根据Flag替换填充。 (4)交叉类表格 基于报表组件,可以完成复杂的交叉表,支持行列多表头、支持行列合计、小计、计数、平均值、最大值、最小值、百分计算,支持多个计算字段放在行区或者列区,计算方式支持普通平均值和加权平均值等多种方式计算,支持设定小数点位数等。交叉报表实现流程 (5)数据录入 支持基于cell模版的数据录入,并写入数据库等。 二、Cell应用解析(1) 交叉报表式数据配置界面可以做成通过拖拉组件来设置维护界面,报表怎么显示,通过数据库配置生成。即将显示规则存储到数据库里面,然后写一个类来解析哪些规则,填充,提供或者一个,反正不管你用什么方式,能给我数据源就可以了CDSSource.Data := UISet.GetData(sSQL); CellReport.Cell := Cell; CellReport.CloneClientDataSet(CDSSource, CellReport.CDSSource); CellReport.CloneClientData(CDSSource, CellReport.CDSSource); CellReport.ExecReport(7); (2) 画模版方式完成的报表(例子:出纳系统的现金日记帐打印)(3)普通循环类报表(例子:工资表打印,全动态统计生成!)(4)交叉报表部分(仓库管理系统的实时库存报表)生成这样的报表不需要写代码的,并且可以增加,行列合计、小计、平均值、计数、最大值、最小值、百分比。此组件生成报表之后,允许你写代码或者外接脚本来修改Cell,比如插入表头、表尾或者修改那些单元格颜色、字体之类的,还可以设定表格大小、生成交叉行部分、生成交叉列部分、生成交叉数据、计算整个报表、合并需要合并的单元格等。【用户感受】 Cell确实是一个优秀的报表开发工具,对于软件开发公司,减轻程序员工作量的同时,将报表完美呈现方便客户打印,为中国式复杂报表提供最有效的解决办法。 1、接口丰富、功能强大,易于与开发语言融合;2、文档做的不错,简单、直接,都有小例子,适合各个层次的开发人员;3、目前用cell做报表还没有碰到过做不出来的情况。昆明讯之岭:林红卫mail: hellokunming QQ: 18077968附:实时库存的全部源代码unit UFrmCKRealTimeStorageRep;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, UFrmCKCellEditor, ExtCtrls, UExpandPanel, StdCtrls, CheckLst, Buttons, UDBAPorxy, UUISet, DB, DBClient, UCellReport,CELL50Lib_TLB, UPubicParm, Grids, DBGrids, Menus, ImgList, ComCtrls, ToolWin;type TFrmCKRealTimeStorageRep = class(TFrmCKCellEditor) Panel1: TPanel; ClbStorage: TCheckListBox; SBtnQuery: TSpeedButton; UISet: TUISet; CDSStorage: TClientDataSet; CellReport: TCellReport; CDSSource: TClientDataSet; procedure SBtnQueryClick(Sender: TObject); procedure CellReportAfterExecReport(Cell: TCell); private public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end;var FrmCKRealTimeStorageRep: TFrmCKRealTimeStorageRep;implementation$R *.dfm TFrmCKRealTimeStorageRep constructor TFrmCKRealTimeStorageRep.Create(AOwner: TComponent);var sSQL: string;begin inherited; sSQL := select * from T_CK_BASE_STORAGE; CDSStorage.Data := UISet.GetData(sSQL); ClbStorage.Items.Clear; CDSStorage.First; while not CDSStorage.Eof do begin ClbStorage.Items.Add(CDSStorage.FieldByName(F_NAME).AsString); CDSStorage.Next; end;end;destructor TFrmCKRealTimeStorageRep.Destroy;begin inherited;end;procedure TFrmCKRealTimeStorageRep.SBtnQueryClick(Sender: TObject);var sSQL: string; sStorageList: string; I: Integer;begin inherited; for I := 0 to ClbStorage.Count - 1 do begin if ClbStorage.CheckedI then begin CDSStorage.First; CDSStorage.MoveBy(I); if sStorageList = then sStorageList := CDSStorage.FieldByName(ID).AsString else sStorageList := sStorageList + , + CDSStorage.FieldByName(ID).AsString; end; end; if sStorageList = then raise Exception.Create(请选择仓库); sSQL := select + a.F_CODE, + a.F_NAME as F_ITEM_NAME, + a.F_SPEC as F_SPEC, + d.F_UNIT as F_UNIT, + a.F_PRICE as F_PRICE, + b.F_NAME AS F_STORAGE, + c.F_NUM as F_NUM, + c.F_NUM * a.F_PRICE as F_MONEY + from + T_CK_ITEM a, + T_CK_BASE_STORAGE b, + T_CK_TIME_STORAGE c, + T_SYS_UNIT d + where + c.F_ITEM_ID = A.ID + and c.F_STORAGE = b.ID + and a.F_UNIT = d.ID + and c.F_STORAGE in ( + sStorageList + ); CDSSource.Data := UISet.GetData(sSQL); CellReport.Cell := Cell; CellReport.CloneClientDataSet(CDSSource, CellReport.CDSSource); CellReport.CloneClientData(CDSSource, CellReport.CDSSource); CellReport.ExecReport(7); end;procedure TFrmCKRealTimeStorageRep.CellReportAfterExecReport(Cell: TCell);begin inherited; / 执行后期处理 - 表头 Cell.SetCellString(1, 1, Cell.GetCurSheet, 分仓库实时库存表); Cell.SetCellAlign(1, 1, Cell.GetCurSheet, 36); Cell.SetCellFontStyle(1, 1, Cell.GetCurSheet, 10); Cell.SetCellFontSize(1, 1, Cell.GetCurSheet, 24); Cell.SetRowHeight(1, Cell.GetRowBestHeight(1), 1, Cell.GetCurSheet); Cell.MergeCells(1, 1, Cell.GetCols(Cell.GetCurSheet) - 1, 1); / 制表人 Cell.SetCellString(1, Cell.GetRows(Cell.GetCurSheet) - 1, Cell.GetCurSheet, 制表人: + gUserInfo.UserName); Cell.MergeCells(1, Cell.GetRows(Cell.GetCurSheet) - 1, 3, Cell.GetRows(Cell.GetCurSheet) - 1); / 制表日期 Cell.SetCellString(4, Cell.GetRows(Cell.GetCurSheet) - 1, Cell.GetCurSheet, 制表时间: + DateToStr(Now); Cell.MergeCells(4, Cell.GetRows(Cell.GetCurSheet) - 1, Cell.GetCols(Cell.GetCurSheet) - 1, Cell.GetRows(Cell.GetCurSheet) - 1);end;end.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!