精华内容
下载资源
问答
  • 导出数据到excel表格

    2020-07-02 19:25:10
    @ApiOperation("库存盘点导出(一次只能导出一条记录)") public void commodityInventoryExportExcel(@RequestParam Integer id, HttpServletResponse response){ ExcelData data = new ExcelData(); data.set...

    导出数据

    	@PostMapping("/commodityInventoryExportExcel")
        @ApiOperation("库存盘点导出(一次只能导出一条记录)")
        public void commodityInventoryExportExcel(@RequestParam Integer id, HttpServletResponse response){
            ExcelData data = new ExcelData();
    
            data.setName("库存盘点明细");
    
            List<String> titles = new ArrayList<>();
            titles.add("序号");
            titles.add("商品品类");
            titles.add("商品名称");
            titles.add("仓库");
            titles.add("库区");
            titles.add("库位");
            titles.add("单位");
            titles.add("原始数量");
            titles.add("盘点数量");
            titles.add("盘损");
            titles.add("盘溢");
            titles.add("成本价");
            titles.add("金额");
            titles.add("备注");
            titles.add("操作人");
            titles.add("盘点日期");
            titles.add("状态");
            data.setTitles(titles);
    
            List<CommodityInventoryDetail> commodityInventoryDetailList = commodityInventoryDetailService.getListByCommodityInventoryId(id);
    
            List<List<Object>> rows = new ArrayList<>();
    
            for (int i = 0; i < commodityInventoryDetailList.size(); i++) {
                List<Object> row = new ArrayList<>();
                row.add(i+1);
                row.add(commodityInventoryDetailList.get(i).getCategoriesName());//分类名
                row.add(commodityInventoryDetailList.get(i).getCommodityName());//商品名
                WarehouseManagement warehouseManagement = warehouseManagementService.findWarehouseByStorageDetailId(commodityInventoryDetailList.get(i).getWarehouseId());
                if (warehouseManagement!=null) {
                    row.add(warehouseManagement.getWarehouseManagement().getWarehouseManagement().getName());//仓库
                    row.add(warehouseManagement.getWarehouseManagement().getName());//库区
                    row.add(warehouseManagement.getName());//库位
                }
                row.add(commodityInventoryDetailList.get(i).getUnit());//单位
                row.add(commodityInventoryDetailList.get(i).getOriginalNum());//原始数量
                row.add(commodityInventoryDetailList.get(i).getInventoryNum());//盘点数量
                row.add(commodityInventoryDetailList.get(i).getLost()==0?"":commodityInventoryDetailList.get(i).getLost());//盘损
                row.add(commodityInventoryDetailList.get(i).getOverFlow()==0?"":commodityInventoryDetailList.get(i).getOverFlow());//盘溢
                row.add(commodityInventoryDetailList.get(i).getCostPrice());//成本
                //金额
                if (commodityInventoryDetailList.get(i).getLost()!=0) {
                    commodityInventoryDetailList.get(i).setSum((commodityInventoryDetailList.get(i).getLost())*commodityInventoryDetailList.get(i).getCostPrice());
                } else if (commodityInventoryDetailList.get(i).getOverFlow()!=0){
                    commodityInventoryDetailList.get(i).setSum((commodityInventoryDetailList.get(i).getOverFlow())*commodityInventoryDetailList.get(i).getCostPrice());
                }
                row.add(commodityInventoryDetailList.get(i).getSum());//总金额
    
                row.add(commodityInventoryDetailList.get(i).getRemark());//备注
                row.add(commodityInventoryDetailList.get(i).getUpdateBy());//操作人
                row.add(commodityInventoryDetailList.get(i).getUpdateTime());//操作时间
                if(commodityInventoryDetailList.get(i).getStatus()==0){//状态
                    row.add("");
                }else {
                    row.add("已审核");
                }
                rows.add(i,row);
            }
    
            data.setRows(rows);
            try {
                ExcelUtils.exportExcel(data, response);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    展开全文
  • 库存报表:库存汇总 分仓汇总 分仓库汇总 库存大类汇总 仓库汇总 库存明细 库存报警 4.领用报表:部门领用汇总表 部门领用明细表 物品领用汇总表 物品领用明细表 物品调拨汇总表 物品调拨明细
  • 在做一个资产管理系统,碰到资产盘点的设计和实现。整体是工作流。本人是大三学生,一直都处在很菜的程度上。第一次接触项目,碰到这个地方居然晕了。汗一个,流图已经有了,自己看半天看的晕了。晚上回来找找网上的...

    在做一个资产管理系统,碰到资产盘点的设计和实现。整体是工作流。本人是大三学生,一直都处在很菜的程度上。第一次接触项目,碰到这个地方居然晕了。汗一个,流图已经有了,自己看半天看的晕了。晚上回来找找网上的资料先贴上来。后期代码和设计再更新。

    曾经研究过中国某大型超市的POS系统,把他们的盘点思路给你说说,希望对你有启发。

    数据库表:
    盘点表:记录每次盘点的信息,比如盘点单号,每次开始盘点的时间,每次盘点结束时间,盘点的仓库号,盘点负责人,盘点的范围
    盘点明细表:记录盘点商品的电脑库存,实际库存,以及库存差异
    盘点录入表:记录每次盘点录入的数据,该表在盘点结束后清空。
    商品台帐表:根据盘点的差异数量,生成商品的三级帐。

    实际操作:
    1、建立盘点进程,建立要盘点的商品列表,并把盘点商品的电脑库存全部读入盘点明细表。
    2、开始实际盘点工作,盘点数量时超市需要停止营业。
    3、开始录入商品,系统提供两次录入校验,一个商品可以多次录入(多个盘点员找到多个不同数量的同一商品),录入结束后,系统有合并相同商品数量,并对电脑库存和实际库存差额较大的商品(该额度可以自己定义)示警,提示用户是否重新查找核对商品数量。
    4、如果用户需要对某些商品重新录入,可以在重新盘点这些商品后做二次、三次以至多次录入,直至商品的损益被用户认可。在这次商品重新盘点的过程中,超市可以继续营业。仅仅在清点商品数量的时候需要停业(可以利用每天晚上歇业后重新盘点)
    5、汇总盘点商品数量,计算商品损益数据,并将损益数据和现时电脑库存数据进行加和处理(下面有详细说明),并同时更新该商品的总库存。
    6、更新商品台帐,结束盘点。

    提示:对一个商品在锁定库存后仍然可以销售和进货的处理:
    在商品库存锁定后,盘点进程结束前,商品仍然可以销售和进货,但是在盘点生效的时候就不能仅仅用损益数据和现时电脑库存数据进行加和处理了,还需要对该段时间该商品的进货、销售数量进行处理,最后才能获得正确的真实库存。

    如果不需要做营业时盘点这个功能,可以不这样做。

    转载于:https://www.cnblogs.com/Evilhx/archive/2011/05/03/2035992.html

    展开全文
  • 商品进销存模板(入、出库、汇总、盘点表)
  • 1.盘点单是做erp常用的一个功能,主要用来调整账上库存和实际库存不一致的情况。考虑到实际应用我们往往需要仓管事先盘点好后,批量导入到我们系统,所以这篇介绍几个导入界面的作法。 盘点单界面如下: 要求...

     

    1.盘点单是做erp常用的一个功能,主要用来调整账上库存和实际库存不一致的情况。考虑到实际应用我们往往需要仓管事先盘点好后,批量导入到我们系统,所以这篇介绍几个导入界面的作法。

    盘点单界面如下:

     盘点单

    要求实现如下功能:

    1.初始化界面的一些值。比如组织机构部门职员为当前登录用户的。币别默认为人民币汇率为1.

    2。选物料后自动将物料品名规格带出来。(利用极致平台携带)

    3.选择物料输入要盘点的仓库和单位后自动算出当前系统中记录的即时库存数量,人民币单价,金额,并反算出原币金额

    4.输入实际数量自动算出调整数量。

    5。考虑到实际盘点我们往往一次录入数据很多,让他支持excel快速导入,我们做两种导入方式。

    导入方式1:

    导入方式1

    导入方式2

    导入方式1

    Excel数据源

    Excel

    (比较两种方式显然后者更方便,因为可以不用规定Excel的表头

    6。盘点不允许同一物料出现2次,不然将调整两次肯定会出错。

    7。审核的时候将调整数量反馈到即时库存表中。

    当然我们一般做盘点都会选择所有影响库存变化的单据先进行审核了再盘点。

     

    客户端代码如下:

    /// <summary>
        /// 盘点单基类
        /// </summary>
        class PandianBill : Jeez.MulEntityInput.BaseBillUI
        {
            //控件声明定义
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txWLDW;//往来单位
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txOrg;//组织机构
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txDept;//部门
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txEmployee;//业务员
    
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txBibie;//币别
            private Jeez.Control.JeezNumberTextBox.JeezNumberTextBox txRat;//汇率
            private Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox txYBMoney;//原币金额 
    
            private Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox txRMBMoney;//人民币金额 
    
            private Jeez.Control.JeezUltraCalendarCombo.JeezUltraCalendarCombo dtDate;//日期
    
    
    
            private Jeez.Control.JeezGrid.JeezGrid gridZY;//明细grid
            private Jeez.Control.JeezUltraTabControl.JeezUltraTabControl pagecontrol1 = null;//下方页框控件
            private Jeez.Control.JeezGrid.JeezGrid gridKucun;//库存 
            private bool isLoading = true;
            //定义几个初始化常见的值
            private static int BibieID = 0;//默认币别ID
            private static int WLDWID = 0;//默认往来单位ID
            private bool isSelect = true;//是否选单
    
            public static int j = 0;//因为导入可能连续导入所以用来计数,而且还有可能
    
            /// <summary>
            /// 加载控件,以及控件相关事件定义
            /// </summary>
            /// <returns></returns>
            public override bool LoadUI()
            {
                bool b = base.LoadUI();
                if (b)
                {
                    txWLDW = base.GetControlByName("JeezTextBox5") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txOrg = base.GetControlByName("JeezTextBox3") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txDept = base.GetControlByName("JeezTextBox4") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txEmployee = base.GetControlByName("JeezTextBox6") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txBibie = base.GetControlByName("JeezTextBox8") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
    
                    txRat = base.GetControlByName("JeezNumberTextBox1") as Jeez.Control.JeezNumberTextBox.JeezNumberTextBox;
                    txYBMoney = base.GetControlByName("JeezCurrencyTextBox1") as Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox;
                    txRMBMoney = base.GetControlByName("JeezCurrencyTextBox3") as Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox;
                    dtDate = base.GetControlByName("JeezCalendarCombo1") as Jeez.Control.JeezUltraCalendarCombo.JeezUltraCalendarCombo;
                    pagecontrol1 = base.GetControlByName("JeezTabControl1") as Jeez.Control.JeezUltraTabControl.JeezUltraTabControl;
                    gridZY = base.GetControlByName("JeezGrid1") as Jeez.Control.JeezGrid.JeezGrid;
                    gridKucun = base.GetControlByName("gridKucun") as Jeez.Control.JeezGrid.JeezGrid;
    
                    pagecontrol1.SelectedTabChanged += new Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventHandler(pagecontrol1_SelectedTabChanged);
    
                    txBibie.ValueChanged += new EventHandler(txBibie_ValueChanged);
                    txRat.TextChanged += new EventHandler(txRat_TextChanged);
                    gridZY.AfterCellUpdate += new CellEventHandler(gridZY_AfterCellUpdate);
                }
                return b;
            }
            protected override void InsertRow()
            {
                
                base.InsertRow();
                j = 0;
                foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in gridZY.Rows)
                {
                    if (row.Cells["matid"].Value.ToString() != "")
                    {
                        j++;//为了插入分录后导入也正常
                    }
                }
            }
            protected override void DeleteRow()
            {
                base.DeleteRow();
                j = 0;
                foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in gridZY.Rows)
                {
                    if (row.Cells["matid"].Value.ToString() != "")
                    {
                        j++;//为了插入分录后导入也正常
                    }
                }
            }
    
            /// <summary>
            /// 更改Grid的构建方式
            /// </summary>
            /// <param name="CTL"></param>
            /// <param name="EOL"></param>
            /// <param name="IsDeleteChildEntity"></param>
            protected override void FillGridDataToEntity(Jeez.ControlManager.ControlHelper CTL, EntityObjectList EOL, bool IsDeleteChildEntity)
            {
                base.FillGridDataToEntity(CTL, EOL, false);
            }
    
            /// <summary>
            /// 设置默认值
            /// </summary>
            void InitByDefineOrder()
            {
                if (this.UIMainID == EntityFormIDEnum.仓库盘点单管理2)
                {
                    if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg(EntityRightIDEnum.盘点单查看价格))
                    {
    
                        this.gridZY.Rows.Band.Columns["Danjia"].Hidden = true;
                        this.gridZY.Rows.Band.Columns["Amount"].Hidden = true;
                        this.gridZY.Rows.Band.Columns["RDanjia"].Hidden = true;
                        this.gridZY.Rows.Band.Columns["RAmount"].Hidden = true;
    
    
                        txRMBMoney.Visible = false;
                        txYBMoney.Visible = false;
                    }
                    else
                    {
                        this.gridZY.Rows.Band.Columns["Danjia"].Hidden = false;
                        this.gridZY.Rows.Band.Columns["Amount"].Hidden = false;
                        this.gridZY.Rows.Band.Columns["RDanjia"].Hidden = false;
                        this.gridZY.Rows.Band.Columns["RAmount"].Hidden = false;
    
    
                        txRMBMoney.Visible = true;
                        txYBMoney.Visible = true;
    
                    }
                }
    
            }
    
    
    
            /// <summary>
            /// 计算当前库存
            /// </summary>
            /// <param name="matID"></param>
            /// <returns></returns>
            private EntityObject SetCurQtyEntityObject(Infragistics.Win.UltraWinGrid.UltraGridRow row)
            {
                string matID = row.Cells["MatID"].Value.ToString();
                EntityObject cur = null;
    
                EntityObject eoMat = base.GetRefEntityObjectByGridEntityCol(this.gridZY, row.Cells["MatID"]);
                EntityObject eoUnit = base.GetRefEntityObjectByGridEntityCol(this.gridZY, row.Cells["jiliangdanweiID"]);
                EntityObject eoWare = base.GetRefEntityObjectByGridEntityCol(this.gridZY, row.Cells["WareHouseID"]);
    
                if (eoMat != null && eoUnit != null && eoWare != null)
                {
                    EntityObjectFactory eof = EntityObjectFactory.GetInstance(this.objContext, EntityIDEnum.NowKucun);
                    EntityObject eo = eof.FindFirst("MatID={0} and WareHouseID={1} and jiliangdanweiID={2}", eoMat.GetProperty("ID"), eoWare.GetProperty("ID"), eoUnit.GetProperty("ID"));
    
                    if (eo != null)
                    {
                        cur = eo;
                    }
                }
    
    
                return cur;
            }
    
            /// <summary>
            /// 页框轮换点击事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void pagecontrol1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
            {
    
                if (e.Tab.Index == 1)
                {
                    //如果点的是第二个页框,用来显示即时库存
                    if (gridKucun != null)
                    {
                        StringBuilder strMatID = new StringBuilder();
                        strMatID.Append("(0");
                        foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in gridZY.Rows)
                        {
                            if (row.Cells["matid"].Value.ToString() != "")
                            {
                                //获取物料
                                EntityObject eoMat = base.GetRefEntityObjectByGridEntityCol(gridZY, row.Cells["matid"]);
                                strMatID.Append(string.Format(",{0}", (int)eoMat.PrimaryKeyValue));
                            }
                        }
                        strMatID.Append(")");
    
                        DataTable dt = new DataTable();
                        DataSet ds = new DataSet();
    
                        Jeez.Core.NativeQueryCommand cmd;
                        Jeez.Core.INativeQuery quary = Jeez.Login.RemoteCall.GetNativeQuery();
                        cmd = new NativeQueryCommand();
                        cmd.CommandText = string.Format(@"select b.Number as 物料代码,b.Name as 物料名称,c.Name as 计量单位,sum(a.Many) as 总数量,sum(a.UseMany) as 订单占用数量,sum(a.CUseMany) as 出库占用数量,sum(a.Many)-sum(a.CUseMany)  as 可用数量 from jzNowKucun a left join jzMat b on a.MatID=b.ID
                         left join jzJiliangdanwei c on a.JiliangdanweiID=c.ID 
    where a.MatID in {0} group by b.Number,b.Name,c.Name", strMatID);
                        try
                        {
    
                            dt = quary.GetDataTable(this.objContext.ConnectionString, cmd);
    
                            ds = new System.Data.DataSet();
                            ds.Tables.Add(dt);
                            gridKucun.DataSource = ds.Tables[0];
                            gridKucun.FixCol = 3;
                        }
                        catch (Exception ex)
                        {
                            Jeez.Common.UI.MsgBox.Show(ex.Message.ToString());
                        }
    
                    }
                }
    
    
            }
            /// <summary>
            /// 设置菜单控件状态
            /// </summary>
            public override void SetMenuStatus()
            {
                base.SetMenuStatus();
    
            }
            /// <summary>
            /// 保存前检查事件
            /// </summary>
            /// <returns></returns>
            protected override bool BeforeSaveCheck()
            {
                bool b = base.BeforeSaveCheck();
                if (b)
                {
                    Hashtable hs = new Hashtable();
                    int i = 0;
                    foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in this.gridZY.Rows)
                    {
                        if (row.Cells["matid"].Value.ToString() != "")
                        {
                            if (!hs.Contains(row.Cells["MatID"].Value))
                            {
                                hs.Add(row.Cells["MatID"].Value, row.Cells["MatID"].Value);
                            }
                            i++;
                        }
                    }
                    if (hs.Count != i)
                    {
                        Jeez.Common.UI.MsgBox.Show("录入的物料有重复!");
                        return false;
    
                    }
                    CalAmount();
    
                }
                return b;
            }
    
            /// <summary>
            /// 指定服务端调用的类
            /// </summary>
            /// <param name="ServerDllName"></param>
            /// <param name="ServerClassName"></param>
            protected override void SetInvokeBusiLogicName(out string ServerDllName, out string ServerClassName)
            {
                ServerDllName = "FolyerERPServer.dll";
                ServerClassName = "FolyerERPServer.FolyerERPServer_SCM.PandianServer";
            }
            /// <summary>
            /// 新增事件
            /// </summary>
            protected override void AddNew()
            {
                base.AddNew();
                if (this.entityobject == null)
                {
                    InitByDefine();
                }
            }
    
    
            /// <summary>
            /// 汇率手动调整后改变单价
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void txRat_TextChanged(object sender, EventArgs e)
            {
                if (!isLoading)
                    return;
                //下推过程中以下推传过来的数据为主,不然会被冲掉
                if (UserData != null)
                    return;
                if (!isSelect)
                    return;
                foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in this.gridZY.Rows)
                {
                    if (row.Cells["matid"].Value.ToString() != "")
                    {
                        row.Cells["Danjia"].Value = Convert.ToDecimal(BaseFunc.IsNull(row.Cells["RDanjia"].Value, 0m)) / Convert.ToDecimal(BaseFunc.IsNull(txRat.PropertyPage.Value, 0m));
    
                        row.Cells["RAmount"].Value = Convert.ToDecimal(BaseFunc.IsNull(row.Cells["RDanjia"].Value, 0m)) / Convert.ToDecimal(BaseFunc.IsNull(txRat.PropertyPage.Value, 0m)) * Convert.ToDecimal(BaseFunc.IsNull(row.Cells["Many"].Value, 0m)); ;
    
                    }
                }
    
            }
            /// <summary>
            /// 币别变化事件,要自动算出该币别该单据的汇率,是固定汇率还是浮动汇率,还要调整子表的物料单价
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void txBibie_ValueChanged(object sender, EventArgs e)
            {
                if (!isLoading)
                    return;
                //下推过程中以下推传过来的数据为主,不然会被冲掉
                if (UserData != null)
                    return;
                if (!isSelect)
                    return;
                CalRat();
    
            }
    
    
    
            /// <summary>
            /// 计算汇率
            /// </summary>
            void CalRat()
            {
                if ((int)txBibie.Tag != 0 && (int)txBibie.PropertyPage.Value.IndexOf("RMB") < 0 && txBibie.PropertyPage.Value.ToString() != "")
                { //如果不是人民币
                    if (dtDate.PropertyPage.Datetime == Jeez.Core.Toolkit.GetDateTimeDefaultValue())
                    {
                        Jeez.Common.UI.MsgBox.Show("请先输入单据日期,因为单据日期决定了币别汇率!");
                        return;
                    }
                    if (txOrg.Tag == null)
                    {
                        Jeez.Common.UI.MsgBox.Show("请先输入组织机构,因为汇率不同组织机构可能都有差异!");
                        return;
                    }
                    EntityObjectFactory eofBibi = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.Currency);
                    EntityObject eoBibie = eofBibi.FindObject((int)txBibie.Tag);
                    if (eoBibie != null)
                    {
                        bool IsFixRat = (bool)eoBibie.GetProperty("IsFixRate");
                        if (IsFixRat)
                        {
                            //如果是固定汇率
                            EntityObjectList eolFixRat = eoBibie.GetChildEntityObjects(EntityIDEnum.FixedRate);
                            EntityObject eoFixRat = eolFixRat.FindFirst("Year={0} and Period={1} and OrganizationID={2}", (int)dtDate.PropertyPage.Datetime.Year, (int)dtDate.PropertyPage.Datetime.Month, (int)txOrg.Tag);
                            if (eoFixRat != null)
                            {
                                txRat.PropertyPage.Value = (decimal)eoFixRat.GetProperty("AccountBookRate");
                            }
                            else
                            {
                                Jeez.Common.UI.MsgBox.Show("请先在系统维护,基础资料,币别中输入该币别该期间的固定汇率");
                                return;
                            }
                        }
                        else
                        {
                            //如果是浮动汇率
                            EntityObjectList eolFixRat = eoBibie.GetChildEntityObjects(EntityIDEnum.FloatingRate);
                            EntityObject eoFixRat = eolFixRat.FindFirst("OrganizationID={0} and Date={1}", (int)txOrg.Tag, dtDate.PropertyPage.Datetime);
                            if (eoFixRat != null)
                            {
                                txRat.PropertyPage.Value = (decimal)eoFixRat.GetProperty("FloatRate");
                            }
                            else
                            {
                                Jeez.Common.UI.MsgBox.Show("请先在系统维护,基础资料,币别中输入该币别该期间的浮动汇率");
                                return;
                            }
                        }
                    }
                }
                else
                {
                    txRat.PropertyPage.Value = 1.0m;
                }
    
            }
            /// <summary>
            /// 单元格值变化事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void gridZY_AfterCellUpdate(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
            {
                if (!isLoading)
                    return;
                //下推过程中以下推传过来的数据为主,不然会被冲掉
                if (UserData != null)
                    return;
                if (!isSelect)
                    return;
                if (e.Cell.Column.Key.ToLower() == "warehouseid" || e.Cell.Column.Key.ToLower() == "matid" || e.Cell.Column.Key.ToLower() == "many" || e.Cell.Column.Key.ToLower() == "jiliangdanweiid")
                {
    
                    if (e.Cell.Row.Cells["MatID"].Value != null && e.Cell.Row.Cells["MatID"].Value != DBNull.Value && e.Cell.Row.Cells["MatID"].Value.ToString() != "")
                    {
                        EntityObject eoKucun = SetCurQtyEntityObject(e.Cell.Row);
                        if (eoKucun != null)
                        {
                            e.Cell.Row.Cells["ZMany"].Value = eoKucun.GetProperty("Many");//计算当前库存,从即时库存表中得来
                            e.Cell.Row.Cells["RDanjia"].Value = eoKucun.GetProperty("Danjia");//计算当前库存,从即时库存表中得来
                        }
                    }
    
                }
    
                if (e.Cell.Column.Key == "ZMany" || e.Cell.Column.Key == "SJMany")
                {
                    foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in this.CurrentGrid.Rows)
                    {
                        if (row.Cells["MatID"].Value != null && row.Cells["MatID"].Value != DBNull.Value && row.Cells["MatID"].Value.ToString() != "")
                        {
                            row.Cells["Many"].Value = (decimal)BaseFunc.IsNull(row.Cells["SJMany"].Value, 0m) - (decimal)BaseFunc.IsNull(row.Cells["ZMany"].Value, 0m);
                        }
                    }
    
                }
                if (e.Cell.Column.Key.ToLower() == "rdanjia" || e.Cell.Column.Key.ToLower() == "many")
                {
                    //计算子表的金额字段=单价*数量
                    e.Cell.Row.Cells["Amount"].Value = Convert.ToDecimal(BaseFunc.IsNull(e.Cell.Row.Cells["Danjia"].Value, 0m)) * Convert.ToDecimal(BaseFunc.IsNull(e.Cell.Row.Cells["Many"].Value, 0m));
                    e.Cell.Row.Cells["Danjia"].Value = Convert.ToDecimal(BaseFunc.IsNull(e.Cell.Row.Cells["RDanjia"].Value, 0m)) / Convert.ToDecimal(BaseFunc.IsNull(txRat.PropertyPage.Value, 0m));
                    e.Cell.Row.Cells["Amount"].Value = Convert.ToDecimal(BaseFunc.IsNull(e.Cell.Row.Cells["RDanjia"].Value, 0m)) / Convert.ToDecimal(BaseFunc.IsNull(txRat.PropertyPage.Value, 0m)) * Convert.ToDecimal(BaseFunc.IsNull(e.Cell.Row.Cells["Many"].Value, 0m)); ;
                }
                if (e.Cell.Column.Key.ToLower() == "amount")
                {
                    //计算汇总将子表的金额合计汇总到父表
                    CalAmount();
                }
            }
            /// <summary>
            /// 自动计算价格汇总
            /// </summary>
            protected virtual void CalAmount()
            {
    
                decimal amount = 0;
                if (txYBMoney != null && txRMBMoney != null)
                {
                    foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in gridZY.Rows)
                    {
                        amount += Convert.ToDecimal(BaseFunc.IsNull(row.Cells["Amount"].Value, 0));
    
                    }
    
                    txYBMoney.PropertyPage.Value = amount;
    
                    txRMBMoney.PropertyPage.Value = amount * (decimal)txRat.PropertyPage.Value; ;
    
    
                }
    
            }
    
    
    
            /// <summary>
            /// 自动计算物料单价
            /// </summary>
            /// <param name="e"></param>
            void CalMatPrice(Infragistics.Win.UltraWinGrid.CellEventArgs e)
            {
                if ((int)txBibie.Tag == 0)
                {
                    Jeez.Common.UI.MsgBox.Show("请先输入币别!");
                    return;
                }
                if (txWLDW.Tag == null)
                {
                    Jeez.Common.UI.MsgBox.Show("请先输入往来单位!");
                    return;
                }
                if (txWLDW.Tag != null && (int)txWLDW.Tag != 0 && txBibie.Tag != null && (int)txBibie.Tag != 0)
                {
                    //获取物料
                    EntityObject eoMat = base.GetRefEntityObjectByGridEntityCol(gridZY, e.Cell.Row.Cells["matid"]);
                    //获取计量单位
                    EntityObject eoUnit = base.GetRefEntityObjectByGridEntityCol(gridZY, e.Cell.Row.Cells["jiliangdanweiid"]);
    
                    if (eoMat != null && eoUnit != null && Convert.ToDecimal(BaseFunc.IsNull(e.Cell.Row.Cells["Many"].Value, 0m)) > 0)
                    {
                        EntityObjectList eoChildList = eoMat.GetChildEntityObjects(EntityIDEnum.MatBuyPrice);
                        EntityObjectList eoChildl = eoChildList.Find("RefUnitID={0} and CurrencyID={1} and MinQty<={2} and JiliangdanweiID={3} and checkID=0", (int)txWLDW.Tag, (int)txBibie.Tag, Convert.ToDecimal(BaseFunc.IsNull(e.Cell.Row.Cells["Many"].Value, 0m)), (int)eoUnit.PrimaryKeyValue);
                        eoChildl.Sort("MinQty", SortDirection.Descending);
                        //如果存在销售价格记录
                        if (eoChildl.Count > 0)
                        {
                            EntityObject eoChild = eoChildl[0];
                            if (eoChild != null)
                            {
                                e.Cell.Row.Cells["Danjia"].Value = Convert.ToDecimal(BaseFunc.IsNull(eoChild.GetProperty("Danjia"), 0m));
                            }
                            else
                            {
                                Jeez.Common.UI.MsgBox.Show("物料采购价格表中还没有该物料价格,请先手动输入该物料本次价格,然后再保存单据后点击更新价格表!");
                                return;
                            }
    
                        }
                        else
                        {
                            //看公共往来单位是否存在销售价格记录
    
                            EntityObjectList eolChildPublic = eoChildList.Find("RefUnitID={0} and CurrencyID={1} and MinQty<={2} and JiliangdanweiID={3} and checkID=0", WLDWID, (int)txBibie.Tag, Convert.ToDecimal(BaseFunc.IsNull(e.Cell.Row.Cells["Many"].Value, 0m)), (int)eoUnit.PrimaryKeyValue);
                            eolChildPublic.Sort("MinQty", SortDirection.Descending);
                            if (eolChildPublic.Count > 0)
                            {
                                EntityObject eoChildPublic = eolChildPublic[0];
                                if (eoChildPublic != null)
                                {
                                    e.Cell.Row.Cells["Danjia"].Value = Convert.ToDecimal(BaseFunc.IsNull(eoChildPublic.GetProperty("Danjia"), 0m));
                                }
    
                            }
                            else
                            {
                                Jeez.Common.UI.MsgBox.Show("物料采购价格表中还没有该物料价格,请先手动输入该物料本次价格,然后再保存单据后点击更新采购价格表!");
                                return;
                            }
    
                        }
    
                    }
    
                }
            }
    
    
    
            /// <summary>
            /// 弹出窗体事件,
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="EntityID"></param>
            /// <param name="RunTimeFilter"></param>
            protected override void ShowUISelectedForm(object sender, int EntityID, ArrayList RunTimeFilter)
            {
                //如果是往来单位表
                if (EntityID == EntityIDEnum.RefUnit)
                {
                    ArrayList ar = new ArrayList();
                    //过滤只有客户的往来单位
                    Jeez.Runtime.Base.General.RunTimefilterDefine fd;
    
                    fd = new Jeez.Runtime.Base.General.RunTimefilterDefine("{jzRefUnit.IsSupply}", 0, 0, Jeez.FormProperty.FilterDefineCompare.Equals, Jeez.FormProperty.FilterDefineLogic.NONE, 1);
    
                    ar.Add(fd);
    
                    base.ShowUISelectedForm(sender, EntityID, ar);
    
    
                }
                else
                {
                    base.ShowUISelectedForm(sender, EntityID, RunTimeFilter);
                }
            }
    
            protected override void BillUI_Load(object sender, EventArgs e)
            {
    
                base.BillUI_Load(sender, e);
                if (this.entityobject == null)
                {
                    //公共的初始化值
                    InitByDefine();
    
                }
    
            }
            /// <summary>
            /// 将实体数据banding到控件上的事件
            /// </summary>
            protected override void LoadEntityDataToControl()
            {
                isLoading = false;
                base.LoadEntityDataToControl();
                isLoading = true;
                InitByDefineOrder();
    
            }
            /// <summary>
            /// 自定义初始化控件上的一些值
            /// </summary> 
            void InitByDefine()
            {
                //实现往来单位只能选择客户数据
                txWLDW.AutoDropdownListFilter = string.Format("IsSupply=1");
                //实现自动将当前登录用户所对应的职员信息的部门,组织机构,本身职员信息填充到界面上的三个控件减少输入
                EntityObjectFactory eofEmployee = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.Employee);
                EntityObject eoEmp = eofEmployee.FindFirst("SysUserID={0}", Jeez.Login.Environment.UserID);
                if (eoEmp != null && txEmployee != null)
                {
    
                    txEmployee.Tag = eoEmp.PrimaryKeyValue;
                    txEmployee.VALUE = eoEmp.ToString();
    
                    txOrg.Tag = eoEmp.GetRelatedObject("OrganizationID").PrimaryKeyValue;
                    txOrg.VALUE = eoEmp.GetRelatedObject("OrganizationID").ToString();
    
    
                    txDept.Tag = eoEmp.GetRelatedObject("DepartMentID").PrimaryKeyValue;
                    txDept.VALUE = eoEmp.GetRelatedObject("DepartMentID").ToString();
                }
                //默认登录的时候币别为系统默认的币别
                默认登录的时候往来单位ID获取
                EntityObjectFactory eofInnit = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.SystemInit);
                EntityObject eoInit = eofInnit.FindFirst("ID>0");
                EntityObject eoBibie = eoInit.GetRelatedObject("CurrencyID");
                if (eoBibie != null)
                {
                    txBibie.Tag = eoBibie.PrimaryKeyValue;
                    txBibie.VALUE = eoBibie.ToString();
                    txRat.PropertyPage.Value = 1.0m;
                    BibieID = (int)eoBibie.PrimaryKeyValue;
                }
    
                EntityObject eoWLDW = eoInit.GetRelatedObject("RefUnitID");
    
    
                if (eoWLDW != null)
                {
                    txWLDW.Tag = eoWLDW.PrimaryKeyValue;
                    txWLDW.VALUE = eoWLDW.ToString();
    
                    WLDWID = (int)eoWLDW.PrimaryKeyValue;
                }
    
                this.gridZY.RowCount = 5;//默认设置5行
            }
    
    
            /// <summary>
            /// 菜单事件的扩展
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            /// <param name="Tool"></param>
            public override void ResponseMenuToolClickEvent(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e, object Tool)
            {
                Jeez.FormProperty.JeezTool tool = Tool as Jeez.FormProperty.JeezTool;
                if (tool == null) return;
                this.Cursor = Jeez.Common.UI.Waitcursor.WaitCursor;
                switch (tool.Name)
                {
    
                    case "toolImport":
    
                        if (this.gridZY.ReadOnly)
                            return;
                        ExcelDataImport f = base.ShowForm(EntityFormIDEnum.数据导入窗口1) as ExcelDataImport;
                        f.Visible = false;
                        f.CallerForm = this;
                        f.ShowDialog();
                        break;
    
                    case "toolImport2":
    
                        if (this.gridZY.ReadOnly)
                            return;
                        ImportData();
                        break;
                    default:
                        break;
                }
                base.ResponseMenuToolClickEvent(sender, e, Tool);
                this.Cursor = Jeez.Common.UI.Waitcursor.Default;
            }
            /// <summary>
            /// 数据导入
            /// </summary>
            protected void ImportData()
            {
                try
                {
    
                    ExcelDataImport2 frmImport = base.ShowForm(EntityFormIDEnum.数据导入窗口21) as ExcelDataImport2;
                    frmImport.Visible = false;
                    frmImport.ShowDialog();
                    if (frmImport.ImportOK)
                    {
                        string strMatID = frmImport.Fields[0].ToString();
                        string strWareHouseID = frmImport.Fields[1].ToString();
                        string strUnitID = frmImport.Fields[2].ToString();
                        string strSJMany = frmImport.Fields[3].ToString();
    
    
                        EntityObjectFactory eofMat = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.Mat);
                        EntityObjectFactory eofWareHouse = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.WareHouse);
                        EntityObjectFactory eofUnit = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.jiliangdanwei);
    
                        System.Text.StringBuilder sb = new StringBuilder();
                        int i = 0;
    
                        //定义父表信息:
                        foreach (DataRow dr in frmImport.OuterData.Rows)
                        {
    
                            string strWareHouseIDValue = dr[strWareHouseID].ToString();
                            string strMatIDValue = dr[strMatID].ToString();
                            string strUnitIDValue = dr[strUnitID].ToString();
                            decimal strSJManyValue = decimal.Parse(dr[strSJMany].ToString());
    
                            EntityObject eoMat = eofMat.FindFirst("Number={0}", strMatIDValue);
                            EntityObject eoWareHouse = eofWareHouse.FindFirst("Number={0}", strWareHouseIDValue);
                            EntityObject eoUnit = eofUnit.FindFirst("Name={0}", strUnitIDValue);
                            if (eoMat == null)
                            {
                                sb.AppendLine(string.Format("第{0}行物料代码无效", i));
                                continue;
                            }
                            if (eoWareHouse == null)
                            {
                                sb.AppendLine(string.Format("第{0}行仓库代码无效", i));
                                continue;
                            }
    
                            if (eoUnit == null)
                            {
                                sb.AppendLine(string.Format("第{0}行计量单位名称无效", i));
                                continue;
                            }
    
                            //为子表赋值
                            gridZY.InsertRow(j);
                            gridZY.Rows[j].Cells["MatID"].Tag = eoMat.PrimaryKeyValue;
                            gridZY.Rows[j].Cells["MatID"].Value = eoMat.ToString();
                            gridZY.Rows[j].Cells["WareHouseID"].Tag = eoWareHouse.PrimaryKeyValue;
                            gridZY.Rows[j].Cells["WareHouseID"].Value = eoWareHouse.ToString();
    
                            gridZY.Rows[j].Cells["JiliangdanweiID"].Tag = eoUnit.PrimaryKeyValue;
                            gridZY.Rows[j].Cells["JiliangdanweiID"].Value = eoUnit.ToString();
                            gridZY.Rows[j].Cells["SJMany"].Value = strSJManyValue;
                            j++;
    
    
    
    
    
                        }
                        if (sb.Length > 0)
                            Jeez.Common.UI.FileIO.FileOperate.ShowLogFile("引入结果", sb.ToString());
                    }
                }
                catch (Exception ex)
                {
                    Jeez.Common.UI.MsgBox.Show(ex.ToString());
                }
            }
            /// <summary>
            /// 将Excel数据赋值到Grid
            /// </summary>
            /// <param name="dt"></param>
            internal void UpdateGridData(System.Data.DataTable dt)
            {
                try
                {
                    if (dt == null)
                        return;
                    if (dt.Rows.Count == 0)
                        return;
                    //物料表
                    EntityObjectFactory eofmat = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.Mat);
                    //仓库表
                    EntityObjectFactory eofWare = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.WareHouse);
                    //计量单位表
                    EntityObjectFactory eofUnit = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.jiliangdanwei);
                    System.Text.StringBuilder sb = new StringBuilder();
                    int i = 0;
    
                    //this.gridZY.DeleteAllRow();
                    //定义父表信息:
                    EntityObject eoRe;
                    foreach (DataRow r in dt.Rows)
                    {
                        i++;
    
                        //if (i == 1)
                        //{
                        //    #region 检查excel数据源中父表信息
                        //    **********判断货品是否ok***********//
                        //    if (r["往来单位代码"].ToString().Trim() == "")
                        //    {
                        //        sb.AppendLine(string.Format("第{0}行往来单位代码资料不能为空", i));
                        //        continue;
                        //    }
                        //    eoRe = eofRe.FindFirst("Number={0}", r["往来单位代码"].ToString());
                        //    if (eoRe == null)
                        //    {
                        //        sb.AppendLine(string.Format("第{0}行往来单位代码无效", i));
                        //        continue;
                        //    }
    
                        //    为主表赋值
                        //    if (eoRe != null)
                        //    {
                        //        txKH.Tag = eoRe.PrimaryKeyValue;
                        //        txKH.VALUE = eoRe.ToString();
                        //    }
    
                        //    #endregion
                        //}
    
                        if (r["实际数量"].ToString() != "")
                        {
                            #region 检查excel子表数据源是否ok
                            //**********判断货品是否ok***********//
                            if (r["物料代码"].ToString().Trim() == "")
                            {
                                sb.AppendLine(string.Format("第{0}行物料代码资料不能为空", i));
                                continue;
                            }
                            EntityObject eomat = eofmat.FindFirst("Number={0}", r["物料代码"].ToString());
                            if (eomat == null)
                            {
                                sb.AppendLine(string.Format("第{0}行物料代码无效", i));
                                continue;
                            }
    
    
    
                            if (r["计量单位名称"].ToString().Trim() == "")
                            {
                                sb.AppendLine(string.Format("第{0}行计量单位名称无效", i));
                                continue;
                            }
                            EntityObject eounit = eofUnit.FindFirst("Name={0}", r["计量单位名称"].ToString());
                            if (eounit == null)
                            {
                                sb.AppendLine(string.Format("第{0}行单位名称无效", i));
                                continue;
                            }
    
    
                            if (r["仓库代码"].ToString().Trim() == "")
                            {
                                sb.AppendLine(string.Format("第{0}行仓库代码无效", i));
                                continue;
                            }
                            EntityObject eowarehouse = eofWare.FindFirst("Number={0}", r["仓库代码"].ToString());
                            if (eounit == null)
                            {
                                sb.AppendLine(string.Format("第{0}行仓库代码名称无效", i));
                                continue;
                            }
                            #endregion
    
                            decimal qty = 0m;
                            try
                            {
                                qty = Convert.ToDecimal(r["实际数量"]);
                            }
                            catch
                            {
                                sb.AppendLine(string.Format("第{0}行数量无效", i));
                                continue;
                            }
    
    
    
                            //为子表赋值
                            gridZY.InsertRow(j);
                            gridZY.Rows[j].Cells["MatID"].Tag = eomat.PrimaryKeyValue;
                            gridZY.Rows[j].Cells["MatID"].Value = eomat.ToString();
                            gridZY.Rows[j].Cells["WareHouseID"].Tag = eowarehouse.PrimaryKeyValue;
                            gridZY.Rows[j].Cells["WareHouseID"].Value = eowarehouse.ToString();
    
                            gridZY.Rows[j].Cells["JiliangdanweiID"].Tag = eounit.PrimaryKeyValue;
                            gridZY.Rows[j].Cells["JiliangdanweiID"].Value = eounit.ToString();
                            gridZY.Rows[j].Cells["SJMany"].Value = qty;
                            j++;
                        }
                    }
    
                    if (sb.Length > 0)
                        Jeez.Common.UI.FileIO.FileOperate.ShowLogFile("引入结果", sb.ToString());
                }
                catch (Exception ex)
                {
                    Jeez.Common.UI.MsgBox.Show(ex.ToString());
                }
    
            }
    
    
    
    
    
        }
    

     两个导入导出通用界面后台代码

     

    /// <summary>
        /// 数据导入Excel类
        /// </summary>
        class ExcelDataImport : Jeez.Runtime.Base.General.GeneralUI
        {
            Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txtFile;
            Jeez.Control.UltraButton.JeezUltraButton btnOK;
            Jeez.Control.UltraButton.JeezUltraButton btnCancel;
            internal System.Data.DataTable dt;
    
            public override bool LoadUI()
            {
                bool b = base.LoadUI();
                if (b)
                {
                    txtFile = base.GetControlByName("JeezTextBox1") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
    
                    btnCancel = base.GetControlByName("JeezButton2") as Jeez.Control.UltraButton.JeezUltraButton;
    
                    btnOK = base.GetControlByName("JeezButton1") as Jeez.Control.UltraButton.JeezUltraButton;
                    txtFile.EditorButtonClick += new Infragistics.Win.UltraWinEditors.EditorButtonEventHandler(txtFile_EditorButtonClick);
                    btnOK.Click += new EventHandler(btnOK_Click);
                    btnCancel.Click += new EventHandler(btnCancel_Click);
                }
                return b;
            }
    
            void btnCancel_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
    
            protected bool CheckData(ref string strMsg)
            {
                if (dt == null)
                {
                    strMsg = "请输入正确的文件";
                    return false;
                }
    
                return true;
    
            }
    
            void btnOK_Click(object sender, EventArgs e)
            {
    
    
    
    
                string str = string.Empty;
                if (!this.CheckData(ref str))
                {
                    Jeez.Common.UI.MsgBox.Inform(str);
                }
                else
                {
    
                    base.Close();
                    PandianBill bill = base.CallerForm as PandianBill;
                    Jeez.Common.UI.MessageTip tip = new Jeez.Common.UI.MessageTip("正在导入数据,请稍等...");
                    try
                    {
                        bill.UpdateGridData(dt);
                    }
                    finally
                    {
                        tip.CloseMessageTip();
                        this.Close();
                    }
    
    
                }
    
            }
    
            void txtFile_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
            {
                  
                string FileName = Jeez.Common.UI.FileIO.FileOperate.GetOpenFileName("请选择数据源", "Microsoft Excel 文件(*.xls)|*.xls");
                if (FileName.Length > 0)
                {
                    DataSet ds = Jeez.Common.UI.ImportExport.FileImportExport.ExcelToDS(FileName);
                    if (ds == null)
                    {
                        this.txtFile.PropertyPage.Value = "";
                    }
                    else
                    {
                        this.txtFile.PropertyPage.Value = FileName;
                        dt = ds.Tables[0];
                       
    
                    }
                }
                 
            }
    
    
    
    
    
    
        }
    
        /// <summary>
        /// 数据导入方式2调用的方法
        /// </summary>
        public class ExcelDataImport2 : Jeez.Runtime.Base.General.GeneralUI
        {
            private bool _ImportOK = false;
            private DataTable _OuterData;
            private ArrayList _Fields;
     
            public bool ImportOK
            {
                get { return _ImportOK; }
            }
    
            public DataTable OuterData
            {
                get { return _OuterData; }
            }
    
            public ArrayList Fields
            {
                get { return _Fields; }
            }
    
            
    
            public Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txtFile;
            public Jeez.Control.UltraButton.JeezUltraButton btnOK;
            public Jeez.Control.UltraButton.JeezUltraButton btnCancel;
            public Jeez.Control.JeezUltraComboEditor.JeezUltraComboEditor cboMat;//物料
            public Jeez.Control.JeezUltraComboEditor.JeezUltraComboEditor cboUnit;//单位
            public Jeez.Control.JeezUltraComboEditor.JeezUltraComboEditor cboWareHouse;//仓库
            public Jeez.Control.JeezUltraComboEditor.JeezUltraComboEditor cboSJMany;//实际数量
     
            public override bool LoadUI()
            {
                 bool b= base.LoadUI();
                 if (b)
                 {
                     txtFile = base.GetControlByName("JeezTextBox1") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
    
                     btnCancel = base.GetControlByName("JeezButton2") as Jeez.Control.UltraButton.JeezUltraButton;
    
                     btnOK = base.GetControlByName("JeezButton1") as Jeez.Control.UltraButton.JeezUltraButton;
    
                     cboMat = base.GetControlByName("JeezComboEditor1") as Jeez.Control.JeezUltraComboEditor.JeezUltraComboEditor;
                     cboWareHouse = base.GetControlByName("JeezComboEditor2") as Jeez.Control.JeezUltraComboEditor.JeezUltraComboEditor;
                     cboUnit = base.GetControlByName("JeezComboEditor3") as Jeez.Control.JeezUltraComboEditor.JeezUltraComboEditor;
                     cboSJMany = base.GetControlByName("JeezComboEditor4") as Jeez.Control.JeezUltraComboEditor.JeezUltraComboEditor;
    
                     txtFile.EditorButtonClick += new Infragistics.Win.UltraWinEditors.EditorButtonEventHandler(txtFile_EditorButtonClick);
                     btnOK.Click += new EventHandler(btnOK_Click);
                     btnCancel.Click += new EventHandler(btnCancel_Click);
                 }
                 return b;
            }
            protected override void GereralUI_Load(object sender, EventArgs e)
            {
                base.GereralUI_Load(sender, e);
            }
            private void txtFile_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
            { //this.Cursor = Jeez.Common.UI.Waitcursor.WaitCursor;
                string FileName = Jeez.Common.UI.FileIO.FileOperate.GetOpenFileName("请选择数据源", "Microsoft Excel 文件(*.xls)|*.xls");
                if (FileName.Length > 0)
                {
                    cboMat.Items.Clear();
                    cboWareHouse.Items.Clear();
                    cboUnit.Items.Clear();
                    cboSJMany.Items.Clear();
                   
                    DataSet ds = Jeez.Common.UI.ImportExport.FileImportExport.ExcelToDS(FileName);
                    if (ds == null)
                    {
                        this.txtFile.PropertyPage.Value = "";
                                     }
                    else
                    {
                        this.txtFile.PropertyPage.Value = FileName;
                             _OuterData = ds.Tables[0];
    
                        foreach (DataColumn dc in _OuterData.Columns)
                        {
                            cboMat.Items.Add(dc.Caption);
                            cboWareHouse.Items.Add(dc.Caption);
                            cboUnit.Items.Add(dc.Caption);
                            cboSJMany.Items.Add(dc.Caption);
                             
    
                        }
                    }
                }
               // this.Cursor = Jeez.Common.UI.Waitcursor.Default;
            }
    
            private void btnOK_Click(object sender, EventArgs e)
            {
                if ((cboMat.SelectedIndex < 0 && cboWareHouse.SelectedIndex < 0) || cboUnit.SelectedIndex < 0
                    || cboSJMany.SelectedIndex < 0 )
                {
                    Jeez.Common.UI.MsgBox.Show("请录入引入参数!");
                    return;
                }
                _Fields = new ArrayList(4);
                _Fields.Add(cboMat.Text);
                _Fields.Add(cboWareHouse.Text);
                _Fields.Add(cboUnit.Text);
                _Fields.Add(cboSJMany.Text);
              
                _ImportOK = true;
                this.Close();
            }
    
            private void btnCancel_Click(object sender, EventArgs e)
            {
                this.Close();
            }
        }
    

     服务端更改库存代码:

      class PandianServer : SCMBaseServer
        {
            protected override bool CheckValidate(EntityObject eo, bool IsCheck, ref string strMessage)
            {
                bool b = base.CheckValidate(eo, IsCheck, ref strMessage);
                if (b)
                {
                    if (IsCheck)
                    {  //审核执行自己的业务逻辑
                        #region 更新即时库存表数据,浓缩成一个公共方法UpdateKucun
                        if (!ERPServerFunc.UpdateKucun(Context, eo, EntityIDEnum.PandianDetail, 0, ref strMessage))
                            return false;
    
                        #endregion
    
                        Context.SaveChanges();
                    }
                    else
                    {
     
                        //如果满足反审核条件,恢复库存
                        if (!ERPServerFunc.UpdateKucun(Context, eo, EntityIDEnum.PandianDetail, 1, ref strMessage))
                            return false;
    
                        Context.SaveChanges();
    
                    }
    
                }
                return b;
            }
    
    
    
        }
    

     

     

     

    极致平台开发十大特点:

    1. 一个数据库下可以同时进行N套业务系统开发,开发出来的产品可以根据您客户的需要按模块界面组发布,客户想要啥模块就可以给啥模块。而且一个数据库下开发所有功能,当客户需要从你的人力资源增加客户关系管理模块的时候,你只要做个升级包就可以了。解决企业多个业务系统信息孤岛问题。
    2. 智能升级功能,当客户从A模块增加B模块的时候,您只需要做一个升级包即可,给客户升级后,客户原来录入的数据不会有影响,而且所有客户端都是智能感应智能升级,大大节省您的部署成本。
    3. 工作流套打报表均可以运行时候自定义,比如费用报销单,您100家客户就有一百种费用报销的流程,套打的格式,用我们平台您只需要设计好这个费用报销单,至于哪个客户走什么流程,完全可以让客户自己去定义,而不需要像传统开发那样,提前在开发中设置好,100个客户就维护100套代码。套打也是如此。
    4. 支持数据授权,当您开发多组织架构的系统的时候,我们只要业务单据引用组织机构即可,然后组织机构支持数据授权,这样就可以不需要编写任何一行代码就可以做到,组织与组织之间数据彼此隔离,我想给哪个用户看哪个组织的数据只要给这个用户这个组织的数据权限即可。
    5. 支持字段授权,对于一些表的核心字段对用户进行屏蔽直接利用我们平台的字段授权功能即可,比如职员薪酬字段进行字段授权,让有的用户在看职员信息的时候,自动隐藏薪酬的数据。这也是无需编写任何一行代码。
    6. 单据界面自动生成,我们开发的时候只要设计好实体,也就是传统开发所说的表结构即可,还可以设置哪些字段是必录,可见,不允许重复,在界面生成的时候,会自动生成一个界面,而且这个界面的增删改查是无需写一行代码的,您只要对您特有业务逻辑编码即可,相对传统开发,你代码量可以节省2/3,开发周期缩短2/3
    7.一次开发同时具有单机局域互联网三个版本,客户想要单机就给单机想要互联网版就给互联网版。 

    8.强大的公式引擎,让您可以灵活设计计算类的项目,比如工资,预算。

    9.包含强大的各种控件,比如文本控件支持F8调用,编码名称自动带出。Grid控件支持表头过滤,单元格融合,固定列,表格列,表格行各种公式汇总,复合表头,表格宽度可以自己随意调整,而且关闭后会自动记录之前的宽度。还支持表格列随意调整顺序。

    10.平台内置很多基础功能,比如权限管理,用户角色管理,还有实施的一些导入导出工具都能帮助客户大大提高一个项目验收进度。

     

    官网:www.jeez.com.cn
    平台介绍:www.jeez.com.cn/jbf  
    平台下载地址:http://www.jeez.com.cn/upfiles/jbfsetuppro.rar

    (下载即可有3个月免费试用)
    联系电话:13826519021 18988763421 QQ:180315586  420977542 (加我注明极致软件即可)

    平台销售经理:李先生 

    将互联网时代的管理软件做到极致!
    ==================================================================

     

     

     

    转载于:https://www.cnblogs.com/Jeez_JBF/p/ERP17.html

    展开全文
  • 本篇我们介绍一个物料进出明细报表的设计,设计报表我们先设计过滤界面,如下所示: 在该报表过滤界面我们主要是为了报表的sql中的where部分的条件值的获取。 代码如下: /// <summary> /// 进...

    1.做ERP经常要做很多分析报表,因为老板喜欢看的就是报表,利用极致业务基础平台做报表很简单,只要会写sql即可。

    本篇我们介绍一个物料进出明细报表的设计,设计报表我们先设计过滤界面,如下所示:

     

    在该报表过滤界面我们主要是为了报表的sql中的where部分的条件值的获取。

     

    代码如下:

     

        /// <summary>
        /// 进销存过滤报表基类界面
        /// </summary>
        class SCMFilter : Jeez.Runtime.Base.General.JeezFilterUI
        {
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txtOrg;//组织机构
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txtWHFrom;//开始仓库
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txtWHTo;//结束仓库
    
            private static int orgID = 0;
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txtMatGroupFrom;//开始物料组
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txtMatGroupTo;//结束物料组
            
    
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txtMatFrom;//开始物料
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txtMatTo;//结束物料
            private Jeez.Control.JeezWinRadioButton.JeezWinRadioButton rdCheck;//查询类型,只查审核还是未审核还是全部
    
            private Jeez.Control.JeezUltraCalendarCombo.JeezUltraCalendarCombo dtStart;//开始日期
            private Jeez.Control.JeezUltraCalendarCombo.JeezUltraCalendarCombo dtEnd;//结束日期
    
            private DateTime _dtStartDate = Jeez.Core.Toolkit.GetDateTimeDefaultValue();//获取当前服务器时间
    
            public DateTime dtStartDate
            {
                get { return _dtStartDate; }
                set { _dtStartDate = value; }
            }
            private DateTime _dtEndDate = Jeez.Core.Toolkit.GetDateTimeDefaultValue();
    
            public DateTime dtEndDate
            {
                get { return _dtEndDate; }
                set { _dtEndDate = value; }
            }
            private string _WHFromNumber;
            private string _WHToNumber;
    
    
    
            private string _OrgNumber;
            private string _MatFromNumber;
            private string _MatToNumber;
    
            private string _MatGroupFromNumber;
            private string _MatGroupToNumber;
    
    
            private int _Check;
            private bool _NoBalShow = false;
    
    
            public string WHFromNumber
            {
                get { return _WHFromNumber; }
            }
            public string WHToNumber
            {
                get { return _WHFromNumber; }
            }
            public string OrgNumber
            {
                get { return _OrgNumber; }
                
            }
    
            public string MatFromNumber
            {
                get { return _MatFromNumber; }
            }
            public string MatToNumber
            {
                get { return _MatToNumber; }
            }
            public string MatGroupFromNumber
            {
                get { return _MatGroupFromNumber; }
            }
            public string MatGroupToNumber
            {
                get { return _MatGroupToNumber; }
            }
    
    
            public int Check
            {
                get { return _Check; }
            }
        
            /// <summary>
            /// 加载控件定义事件
            /// </summary>
            public override void LoadUI()
            {
                base.LoadUI();
                txtOrg = base.GetControlByName("txtOrg") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                txtWHFrom = base.GetControlByName("txtWHouse") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                txtWHTo = base.GetControlByName("txtWToHouse") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                txtMatGroupFrom = base.GetControlByName("txMGFrom") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                txtMatGroupTo = base.GetControlByName("txMGTo") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
    
                txtMatFrom = base.GetControlByName("txMFrom") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                txtMatTo = base.GetControlByName("txMTo") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
    
                dtStart = base.GetControlByName("dtStart") as Jeez.Control.JeezUltraCalendarCombo.JeezUltraCalendarCombo;
                dtEnd = base.GetControlByName("dtEnd") as Jeez.Control.JeezUltraCalendarCombo.JeezUltraCalendarCombo;
    
                rdCheck = base.GetControlByName("rdType") as Jeez.Control.JeezWinRadioButton.JeezWinRadioButton;
                //隐藏平台过滤引擎其他页签
                this.tabFilter.Tabs[1].Visible = false;
                this.tabFilter.Tabs[2].Visible = false;
                this.tabFilter.Tabs[3].Visible = false; 
                txtOrg.ValueChanged += new EventHandler(txtOrg_TagChanged);
                
                dtStart.ValueChanged += new EventHandler(dtStart_ValueChanged);
            }
    
            void dtStart_ValueChanged(object sender, EventArgs e)
            {
                DateTime dt = dtStart.PropertyPage.Datetime;
                dtEnd.PropertyPage.Datetime = dt.AddDays(31);
            }
    
            
            protected override void JeezFilterUI_Load(object sender, EventArgs e)
            {
                base.JeezFilterUI_Load(sender, e);
                初始化组织机构默认值为当前用户组织
                填充当前用户组织机构信息
                EntityObject eoEmp = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.Employee).FindFirst("SysUserID={0}", objContext.UserID);
                if (eoEmp != null && txtOrg != null)
                {
                    txtOrg.Tag = eoEmp.GetProperty("Organizationid");
                    txtOrg.VALUE = eoEmp.GetRelatedObject("OrganizationID").GetProperty("Number").ToString();
                    txtWHFrom.AutoDropdownListFilter = string.Format("OrganizationID={0}", (int)eoEmp.GetRelatedObject("OrganizationID").PrimaryKeyValue);
                    txtWHTo.AutoDropdownListFilter = string.Format("OrganizationID={0}", (int)eoEmp.GetRelatedObject("OrganizationID").PrimaryKeyValue);
                    orgID = (int)eoEmp.GetProperty("OrganizationId");
                }
            }
            /// <summary>
            /// 实现选择了组织机构后,仓库只能输入该组织的仓库
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void txtOrg_TagChanged(object sender, EventArgs e)
            {
                txtWHFrom.AutoDropdownListFilter = "";
                txtWHTo.AutoDropdownListFilter = "";
                if (txtOrg.Tag != null && (string)txtOrg.PropertyPage.Value != "")
                {
                    EntityObject eoOrg = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.Organization).FindFirst("Number={0}", (string)txtOrg.PropertyPage.Value);
                    if (eoOrg != null)
                    {
                        txtWHFrom.AutoDropdownListFilter = string.Format("OrganizationID={0}", (int)eoOrg.PrimaryKeyValue);
                        txtWHTo.AutoDropdownListFilter = string.Format("OrganizationID={0}", (int)eoOrg.PrimaryKeyValue);
                        orgID = (int)eoOrg.PrimaryKeyValue;
                    }
                }
            }
             
            /// <summary>
            /// 弹出窗体过滤
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="EntityID"></param>
            /// <param name="RunTimeFilter"></param>
            protected override void ShowUISelectedForm(object sender, int EntityID, ArrayList RunTimeFilter)
            {
    
                if ((sender.Equals(txtWHFrom) || sender.Equals(txtWHTo)) && orgID!= 0)
                {
    
                    Jeez.Runtime.Base.General.RunTimefilterDefine fd;
                    StringBuilder sb = new StringBuilder();
                    sb.Append(" (Select o.ID From jzOrganization o left join jzOrganization_Hiberarchy h on o.ID=h.ChildID Where h.ParentID=");
                    sb.Append(orgID.ToString());
                    sb.Append(" or o.ID =");
                    sb.Append(orgID.ToString());
                    sb.Append(") ");
                    fd = new Jeez.Runtime.Base.General.RunTimefilterDefine("[8216]", 0, 0, 9, 0, sb.ToString());
    
                    RunTimeFilter = new ArrayList();
                    RunTimeFilter.Add(fd);
                    base.ShowUISelectedForm(sender, EntityIDEnum.WareHouse, RunTimeFilter);
    
                } 
                else
                {
                    base.ShowUISelectedForm(sender, EntityID, RunTimeFilter);
                }
            }
    
            
             
    
            protected override void cmdOK_Click(object sender, EventArgs e)
            {
    
                _WHFromNumber = txtWHFrom.VALUE;
                _WHToNumber = txtWHTo.VALUE;
                _MatGroupFromNumber = txtMatGroupFrom.VALUE;
                _MatGroupToNumber = txtMatGroupTo.VALUE;
    
                _MatFromNumber = txtMatFrom.VALUE;
                _MatToNumber = txtMatTo.VALUE;
    
                _Check = rdCheck.CheckedIndex;
    
                _OrgNumber = txtOrg.VALUE;
                _dtStartDate = dtStart.Datetime;
                _dtEndDate = dtEnd.Datetime;
                base.cmdOK_Click(sender, e);
            }
        }
    

     

    报表代码如下,主要是获取过滤界面的值,然后利用这些值来构建你要做的报表的过滤条件。

     

    代码如下:大家不要看代码这么长,其实唯一要变的就是这个sql语句及相关的where部分

      /// <summary>
        /// 物料进出明细报表
        /// </summary>
        class MatInAndOutDetailRpt : Jeez.MulEntityInput.BasefrmList
        {
            private string _OrgNumber;
            private string _WHFromNumber;
            private string _WHToNumber; 
            private string _MatGroupFromNumber;
            private string _MatGroupToNumber; 
            private string _MatFromNumber;
            private string _MatToNumber; 
            public string strDateTitle = ""; 
            private string strTitle = "";
            private int _Check;
    
            private DateTime _dtStartDate = Jeez.Core.Toolkit.GetDateTimeDefaultValue();
            private DateTime _dtEndDate = Jeez.Core.Toolkit.GetDateTimeDefaultValue();
    
            /// <summary>
            /// 调用公共过滤界面
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            protected override JeezFilterUI OpenFilterUIByShowDialog(Jeez.DataEntity.UI.JeezUIMainContainer o)
            {
                try
                {
                    JeezFilterUI f = base.OpenFilterUIByShowDialog(o);
                    SCMFilter bf = f as SCMFilter;
                    if (bf != null)
                    {
                        _OrgNumber = bf.OrgNumber;
                        _WHFromNumber = bf.WHFromNumber;
                        _WHToNumber = bf.WHToNumber;
                        _MatGroupFromNumber = bf.MatGroupFromNumber;
                        _MatGroupToNumber = bf.MatGroupToNumber;
    
    
                        _MatFromNumber = bf.MatFromNumber;
                        _MatToNumber = bf.MatToNumber;
    
                        _Check = bf.Check;
    
                        _dtStartDate = bf.dtStartDate;
                        _dtEndDate = bf.dtEndDate;
                    }
                    return f;
                }
                catch (Exception ex)
                {
                    return null;
                }
            }
    
            public override void RefreshMe()
            { 
                this.SQLTableName = "#t" + Guid.NewGuid().ToString().Replace("-", "");
                this.StrSQL = GetSQL();
                SetTitle();
                base.RefreshMe();
            }
            void SetTitle()
            {
                strTitle = string.Format("查询时间范围:{0} ", strDateTitle);
            }
    
            protected override void picTitle_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
            { 
                base.picTitle_Paint(sender, e);
                if (this.strTitle != "")
                {
                    Font tfont = new Font(this.lblInfo.Font.FontFamily.Name, 10);
                    int iLen = Convert.ToInt32(e.Graphics.MeasureString(this.strTitle, tfont).Width); 
                    e.Graphics.DrawString(strTitle, new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Bold), SolidBrush, this.Width - iLen - 500, this.lblCapion.Location.Y + 18);
                }
            }
    
            private string GetSQL()
            { 
                string TempTableNext1 = "#1jz" + System.Guid.NewGuid().ToString().Replace("-", "");
                string TempTableNext2 = "#2jz" + System.Guid.NewGuid().ToString().Replace("-", "");
                string TempTableNext3 = "#3jz" + System.Guid.NewGuid().ToString().Replace("-", "");
                string TempTableNext4 = "#4jz" + System.Guid.NewGuid().ToString().Replace("-", "");
                string TempTableNext5 = "#5jz" + System.Guid.NewGuid().ToString().Replace("-", "");
    
                StringBuilder strUpdateBeginData = new StringBuilder();
                System.Text.StringBuilder strWH = new StringBuilder("  "); 
                if (_OrgNumber != string.Empty)
                {
                    strWH.Append(string.Format("  and b.Number='{0}'", _OrgNumber));
                }
                if (_WHFromNumber != string.Empty)
                {
                    strWH.Append(string.Format("  and c.Number>='{0}'", _WHFromNumber));
                }
                if (_WHToNumber != string.Empty)
                {
                    strWH.Append(string.Format("  and c.Number<='{0}'", _WHToNumber));
                }
    
                if (_MatGroupFromNumber != string.Empty)
                {
                    strWH.Append(string.Format("  And g.Number>='{0}'", _MatGroupFromNumber));
                }
    
                if (_MatGroupToNumber != string.Empty)
                {
                    strWH.Append(string.Format("  And g.Number<='{0}'", _MatGroupToNumber));
                }
                if (_MatFromNumber != string.Empty)
                {
                    strWH.Append(string.Format("  And d.Number>='{0}'", _MatFromNumber));
                }
    
                if (_MatToNumber != string.Empty)
                {
                    strWH.Append(string.Format("  And d.Number<='{0}'", _MatToNumber));
                }
                System.Text.StringBuilder strRelate = new StringBuilder();
    
    
                System.Text.StringBuilder strWH1 = new StringBuilder("  "); 
                if (_Check == 1)
                {
                    strWH1.Append(string.Format(" and p.CheckID=0"));
                    
                }
                else if (_Check == 0)
                {
                    strWH1.Append(string.Format(" and p.CheckID>0"));
                    
                }
                else
                {
    
    
                }
                strDateTitle = "";
                if (_dtStartDate != Jeez.Core.Toolkit.GetDateTimeDefaultValue())
                {
                    strDateTitle += string.Format(" 从{0}", _dtStartDate.Date.Year.ToString() + "-" + _dtStartDate.Date.Month.ToString() + "-" + _dtStartDate.Date.Day.ToString());
                    strWH1.Append(string.Format("  and p.Date>='{0}'", _dtStartDate));
                 
    
    
                }
                if (_dtEndDate != Jeez.Core.Toolkit.GetDateTimeDefaultValue())
                {
                    strDateTitle += string.Format(" 到{0}", _dtEndDate.Date.Year.ToString() + "-" + _dtEndDate.Date.Month.ToString() + "-" + _dtEndDate.Date.Day.ToString());
    
                    strWH1.Append(string.Format("  and p.Date<'{0}'", _dtEndDate.AddDays(1).Date));
                     
    
                 
                }
                return string.Format(@"  
     select '1' as Flag,a.*
      into {0}
    from (                     
    ---采购入库单                    
    select '采购入库单' as BillType,p.EmployeeID,P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                              from jzCaigouRukuDetail t
                                                inner join jzCaigouRuku p On p.ID=t.CaigouRukuID                                    
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where o.ID>0  {1}
    union all
    --仓库调拨
    select '仓库调拨单' as BillType,p.EmployeeID,P.Date,P.BillNo,o.ID as OrgID,t.RWareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                               from jzDiaoboDetail t
                                                inner join jzDiaoboBill p On p.ID=t.DiaoboBillID                                        
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where p.ID>0 {1}
    union all 
    
    --盘点单
    select '盘点单' as BillType,p.EmployeeID,P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                                  from jzPandianDetail t
                                                inner join jzPandianBill p On p.ID=t.PandianBillID                                  
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where  Many>0    {1}
    
    
    union all
    
    select '成品入库单' as BillType, p.EmployeeID,P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                from jzProductRukuDetail t
                                                inner join jzProductRuku p On p.ID=t.ProductRukuID                                        
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where  p.ID>=0  {1}      
    union all
    select '销售退货单' as BillType,p.EmployeeID, P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                from jzSaleRukuDetail t
                                                inner join jzSaleRukuBill p On p.ID=t.SaleRukuBillId                                        
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where  p.ID>=0    {1}
     
    ) a
     
    --出库统计
    select '2' as Flag,t.*
      into {2} 
    from (   
    --销售出库单                                       
    select  '销售出库单' as BillType,p.EmployeeID, P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                from jzSaleChukuDetail t
                                                inner join jzSaleChukuBill p On p.ID=t.SaleChukuBillID                                        
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where  p.ID>=0  {1}    
    union all
    
    --领料单                                       
    select  '内部领料单' as BillType,p.EmployeeID, P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                from jzLingliaoDetail t
                                                inner join jzLingliao p On p.ID=t.LingliaoID                                        
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where  p.ID>=0     {1}
    union all
    --仓库调拨 
    select '仓库调拨单' as BillType,p.EmployeeID,P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                               from jzDiaoboDetail t
                                                inner join jzDiaoboBill p On p.ID=t.DiaoboBillID                                        
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where p.ID>0    {1}
    union all
     
    
    --盘点单
    select '盘点单' as BillType,p.EmployeeID,P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                                  from jzPandianDetail t
                                                inner join jzPandianBill p On p.ID=t.PandianBillID                                  
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where  Many<=0  {1}
    union all
    --采购退货单
    select '采购退货单' as BillType,p.EmployeeID,P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                                  from jzCaigouChukuDetail t
                                                inner join jzCaigouChuku p On p.ID=t.CaigouChukuID                                  
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where o.ID>0    {1}
    --报废单
    union all 
    select '报废单' as BillType,p.EmployeeID,P.Date,P.BillNo,o.ID as OrgID,t.WareHouseID,t.MatID,t.JiliangdanweiID,t.Many as InQty,t.RAmount as InAmount
                                                  from jzBaofeiDetail t
                                                inner join jzBaofeiBill  p On p.ID=t.BaofeiBillID                                  
                                                inner join jzOrganization o on p.OrganizationID=o.ID
                                                where o.ID>0   {1} 
    
     
    ) t  
    --合并统计结果
    select a.BillType,a.BillNo,a.EmployeeID,a.Date,a.OrgID,a.WareHouseID,a.MatID,a.JiliangdanweiID,
    
    case when Flag='1' then InQty else 0 end as InQty,
    case when Flag='1' then InAmount else 0 end as InAmount,
    case when Flag='2' then InQty else 0  end as OutQty,
    case when Flag='2' then InAmount else 0 end  as OutAmount
    into {3}
    from 
    (
    select * from {0}
    union all
    select * from {2}
    ) a 
    
    select  a.BillType,a.BillNO,emp.Name as EmpName,a.Date,b.Name as OrgName,c.Number+'-'+c.Name as WareName ,d.Number+'-'+d.Name as MatName,d.Standard+'/'+d.Model as MatStand,e.Name as UnitName ,
    a.InQty,a.InAmount,Case when a.InQty<>0 then Round(a.InAmount/a.InQty,4) else 0 end as InDanjia,
    a.OutQty,a.OutAmount,Case when a.OutQty<>0 then Round(a.OutAmount/a.OutQty,4) else 0 end as OutDanjia
    ,g.Number+'-'+g.Name as MatGroupName
    into " + this.SQLTableName + @"  from {3} a  
    left join jzOrganization b on b.ID=a.OrgID
     left join jzWareHouse c on c.ID=a.WareHouseID
     left join jzMat d on d.ID=a.MatID
     left join jzMatGroup g on g.ID=d.MatGroupID
     left join jzJiliangdanwei e on e.ID=a.JiliangdanweiID
     left join jzEmployee emp on emp.ID=a.EmployeeID 
      where b.ID>0   {4}
    order by a.Date desc
      
     
     drop table {0}
    drop table {2}
    drop table {3}
     
     
    
     ", TempTableNext1, strWH1, TempTableNext2, TempTableNext3, strWH);
            }
    
    
        }
    
    

     

    一点经验是,写报表我们一般都是在sql查询分析器先写好,大多数利用临时表,只要最后一个sql语句保持查询出的结果,和我们报表上的Grid列名称对应上即可。

      

    报表如上但是利用我们的套打引擎却可以做很多老板想要的分组结果,套打如下:

     

    这样报表虽然是明细,但是分组统计小计都可以轻松打印出来传给boss查阅!

     

    极致平台开发十大特点:

    1. 一个数据库下可以同时进行N套业务系统开发,开发出来的产品可以根据您客户的需要按模块界面组发布,客户想要啥模块就可以给啥模块。而且一个数据库下开发所有功能,当客户需要从你的人力资源增加客户关系管理模块的时候,你只要做个升级包就可以了。解决企业多个业务系统信息孤岛问题。
    2. 智能升级功能,当客户从A模块增加B模块的时候,您只需要做一个升级包即可,给客户升级后,客户原来录入的数据不会有影响,而且所有客户端都是智能感应智能升级,大大节省您的部署成本。
    3. 工作流套打报表均可以运行时候自定义,比如费用报销单,您100家客户就有一百种费用报销的流程,套打的格式,用我们平台您只需要设计好这个费用报销单,至于哪个客户走什么流程,完全可以让客户自己去定义,而不需要像传统开发那样,提前在开发中设置好,100个客户就维护100套代码。套打也是如此。
    4. 支持数据授权,当您开发多组织架构的系统的时候,我们只要业务单据引用组织机构即可,然后组织机构支持数据授权,这样就可以不需要编写任何一行代码就可以做到,组织与组织之间数据彼此隔离,我想给哪个用户看哪个组织的数据只要给这个用户这个组织的数据权限即可。
    5. 支持字段授权,对于一些表的核心字段对用户进行屏蔽直接利用我们平台的字段授权功能即可,比如职员薪酬字段进行字段授权,让有的用户在看职员信息的时候,自动隐藏薪酬的数据。这也是无需编写任何一行代码。
    6. 单据界面自动生成,我们开发的时候只要设计好实体,也就是传统开发所说的表结构即可,还可以设置哪些字段是必录,可见,不允许重复,在界面生成的时候,会自动生成一个界面,而且这个界面的增删改查是无需写一行代码的,您只要对您特有业务逻辑编码即可,相对传统开发,你代码量可以节省2/3,开发周期缩短2/3
    7.一次开发同时具有单机局域互联网三个版本,客户想要单机就给单机想要互联网版就给互联网版。 

    8.强大的公式引擎,让您可以灵活设计计算类的项目,比如工资,预算。

    9.包含强大的各种控件,比如文本控件支持F8调用,编码名称自动带出。Grid控件支持表头过滤,单元格融合,固定列,表格列,表格行各种公式汇总,复合表头,表格宽度可以自己随意调整,而且关闭后会自动记录之前的宽度。还支持表格列随意调整顺序。

    10.平台内置很多基础功能,比如权限管理,用户角色管理,还有实施的一些导入导出工具都能帮助客户大大提高一个项目验收进度。

     

    官网:www.jeez.com.cn
    平台介绍:www.jeez.com.cn/jbf  
    平台下载地址:http://www.jeez.com.cn/upfiles/jbfsetuppro.rar

    (下载即可有3个月免费试用)
    联系电话:13826519021 18988763421 QQ:180315586  420977542 (加我注明极致软件即可)

    平台销售经理:李先生 

    将互联网时代的管理软件做到极致!
    ==================================================================

     

     

     

    转载于:https://www.cnblogs.com/Jeez_JBF/p/ERP20.html

    展开全文
  • 管易通仓库管理软件

    2012-12-17 11:53:35
    统计报表: 仓库存货统计、进出存明细表、进出存汇总表、货品收发对帐单、出库成本统计表。 允许根据多种条件查询、统计、汇总,支持精确查询、模糊查询。 数据导入导出: Excel导入基础数据功能、Excel导入出库单据...
  • ● 支持材料入库、出库、调拨、盘点处理。 ● 支持多种格式的入库单和出库单。 ● 支持客户往来账款管理。 ● 支持生产计划、物料需求计划和采购计划管理。 ● 支持生成每月的物品收发结存表。 ● 支持生成每种物品...
  • 统计报表: 仓库存货统计、进出存明细表、进出存汇总表、货品收发对帐单、出库成本统计表。 允许根据多种条件查询、统计、汇总,支持精确查询、模糊查询。 数据导入导出: Excel导入基础数据功能、Excel导入出库单据...
  • 仓库知识大全

    千次阅读 2012-12-10 14:25:03
    仓库管理(Inventory Management) 1、物料的基本知识: 1.1、物料的分类: 1.1.1、依物理化学性质来分:如五金、塑胶、线材、电子元件等。 1.1.2、依形态来分:原料、部品、半成品、成品。 1.1.3、依重要性来分...
  • 仓库管理概况

    千次阅读 2010-04-12 14:23:00
    仓库总体运作流程一、仓库总体运作流程图二、物料收货控制程序(受控)1、目的对本公司进料的数量进行控制,确保进料的数量符合物控要求,及时满足生产需要。2、适用范围适用于本公司对外采购的物料、发外加工的半...
  • 仓库管理基础知识总结

    千次阅读 2012-11-07 17:31:33
    第一章 仓库管理 1 、物料的基本知识:  1.1 、物料的分类:  1.1.1 、依物理化学性质来分:如五金、塑胶、线材、电子元件等。  1.1.2 、依形态来分:原料、部品、半成品、成品。  1.1.3 、依重要性来...
  • 在当前的智能生产和数字化管理时代,企业的发展变得多样化,仓库中的产品越来越多。如何帮助企业成功地从传统的仓库管理模式向数字化、智能化转变是一个非常重要的过程。然而,WMS仓库管理系统对于仓库管理的转型和...
  • 一飞库房管理系统 v1.0 bt

    千次阅读 2007-07-24 19:32:00
    一飞库房管理系统 v1.0 软件大小:29618 KB软件语言:简体中文软件类别:国产软件 / 试用版 / 商业贸易应用平台:Win9x/NT/2000/XP/2003界面预览:无插件情况: 投诉更新时间:2007-03-28 09:23:57下载...
  • hr流程表、vip会员客户名单、办公用品报价单、报价单、报价单传真、材料进货单、采购报价单、采购定点供应商季度销售情况、采购计划表、仓库查询台帐、仓库库存明细表、差旅报销单、产品销售全同、产品购销合同、...
  • 智点进销存软件

    2018-04-02 13:31:24
     10、 各种汇总表,明细表均可以输出成其他文件格式(Excel电子表格)。  11、小数位可任意调整:数量小数位、单价小数位、金额小数位、税率小数位、均可以随时从零位调整到六位。  12、多帐套管理:建帐数目不...
  • 如何突出显示重点数据?

    千次阅读 2020-01-21 21:00:00
    前些天,仓储部的小妹跑过来问我,年末了要进行仓库盘点,怎样才能快速地让表格里各种产品的重点数据突出显示?我一开始还纳闷了,排个序不就行了吗,后来拿到表格才知道为什么不能简单排序。因为每个...
  • 仓库管理:领料、退料、库存盘点仓库调拨、借入、借出、借入还出、借出还入,库存汇总表、库存明细帐、库存报警、采购人员采购汇总表、明细表,供货方资料管理、供货方供货汇总、明细报表;现金银行:费用开支、...
  • 1、 在你入库,出库,采购等操作时候,添加商品或者选择商品时候支持强大回车事件,比如:选择入库商品之后,可以通过tab,->,,Enter在商品表格自由的移动。很大提高入库,出库,采购,调拨工作效率。 2、 并且强大...
  • 统计报表: 仓库存货统计、进出存明细表、进出存汇总表、货品收发对帐单、出库成本统计表。 允许根据多种条件查询、统计、汇总,支持精确查询、模糊查询。 数据导入导出: Excel导入基础数据功能、Excel导入出库...
  • 1、 在你入库,出库,采购等操作时候,添加商品或者选择商品时候支持强大回车事件,比如:选择入库商品之后,可以通过tab,->,,Enter在商品表格自由的移动。很大提高入库,出库,采购,调拨工作效率。 2、 并且强大...
  • 管理库存各项业务,包括出库、入库、调拨、盘点等,使库存实存数、库存明细帐、汇总帐,收发存帐表详细准确,同时帮助管理者及时了解各地办事处的库存的业务细节,发现存在的问题,避免库存积压,做到快速的市场反应...
  • 供方供货汇总、明细报表,客户供货汇总、明细报表,部门领用汇总、明细报表、仓库汇总、明细报表等诸多功能。易特进销存 商贸版界面友好,所见即所得,操作简便,使用方便,速度快,质量高,对于用户来说是一款很不错...
  • 使仓库材料账与财务有关明细账、总账在数量和金额完全保 致。 自动换算汇率,录入材料的不同外币时,系统自动根据不同汇率转换成本位币金额。 生成存货限分析表:清晰显示每种或每类材料存放时间有多长,防止材料...
  • 主要功能包括进采购、采购退货、销售、销售退货、物料领用、领料退回、库存盘点仓库调拨、借入、借出、借入还出、借出还入,供方客户资料管理,供方供货汇总、明细报表,客户供货汇总、明细报表,部门领用汇总、...
  • 绿意进销存软件

    2011-12-01 10:59:18
    主要功能包括进采购、采购退货、销售、销售退货、物料领用、领料退回、库存盘点仓库调拨、借入、借出、借入还出、借出还入,供方客户资料管理,供方供货汇总、明细报表,客户供货汇总、明细报表,部门领用汇总、...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 280
精华内容 112
关键字:

仓库盘点明细表格