PB 数据窗口采用存储过程的步骤和PB报表开发步骤

1.首先定义存储过程

USE [EBSDB]
GO

/****** Object:  StoredProcedure [dbo].[SP_INV_MaterialReceiveReport2]    Script Date: 10/17/2018 17:00:34 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO










ALTER PROCEDURE [dbo].[SP_INV_MaterialReceiveReport2] 
    @db_center	 nvarchar(100),
    @Receive_sn  nvarchar(100)
AS

DECLARE @receivereport2 TABLE
  ( 
    DB_Center  nvarchar(100),
    Receiving_SN nvarchar(100),
    Warehouse nvarchar(500) ,
    Receive_Employee nvarchar(500) ,
    Receive_Date datetime ,
    PO_Code nvarchar(100),
    Currency_Code nvarchar(100),
    Total_Price decimal(30, 2),
    Vendor  nvarchar(500) ,
    Material_Code nvarchar(100),
    Material_Desc  nvarchar(500),
    Quantity1  decimal(30, 2),
    Quantity2  decimal(30, 2),
    Quantity3  decimal(30, 2),
    Quantity4  decimal(30, 2),
    UOM nvarchar(100) ,
    Unit_Price  decimal(30, 2),
	Total_Price2 decimal(30, 2)
  );
  
BEGIN		
	
	INSERT INTO @receivereport2(DB_Center,Receiving_SN,Warehouse,Receive_Employee,Receive_Date,PO_Code,Currency_Code,Total_Price,
				Vendor,Material_Code,Material_Desc,Quantity1,Quantity2,Quantity3,Quantity4,UOM,Unit_Price,Total_Price2)
	
	
	
	select a.DB_Center,c.Receiving_SN, b.Warehouse_Name,a.Receiving_By,a.Receiving_Date,c.PO_Code,c.Currency_Code,isnull(c.Total_Amount,0),
			(SELECT vendor.Vendor_Name FROM BAS_Vendor vendor,PUR_PO po where po.PO_SN=c.PO_SN and po.Supplier_Code=vendor.Vendor_Code) Vendor,c.Material_Code,c.Material_Name,c.Quantity Quantity1,			
		isnull((select sum(Quantity) from INV_IssueRequireDet INV_IssueRequireDet 
         where INV_IssueRequireDet.DB_Center ='EBS'
         AND c.PO_Code=INV_IssueRequireDet.PO_SN
         and c.Material_Code=INV_IssueRequireDet.Material_Code),0) Quantity2,
         isnull(c.Quantity -(select sum(Quantity) from INV_IssueRequireDet INV_IssueRequireDet 
         where INV_IssueRequireDet.DB_Center ='EBS'
         AND c.PO_Code=INV_IssueRequireDet.PO_SN
         and c.Material_Code=INV_IssueRequireDet.Material_Code),0) Quantity3,
         isnull(c.Quantity -(select sum(Quantity) from INV_IssueRequireDet INV_IssueRequireDet 
         where INV_IssueRequireDet.DB_Center ='EBS'
         AND c.PO_Code=INV_IssueRequireDet.PO_SN
         and c.Material_Code=INV_IssueRequireDet.Material_Code),0) Quantity4c,
         (SELECT UOM FROM DBO.BAS_UOM UOM WHERE UOM.UOM_SN=C.UOM)UOM,isnull(c.Unit_Price,0)Unit_Price,isnull(c.Total_Amount,0) Total_Price2			
	FROM INV_Receive a,BAS_Warehouse b,INV_ReceiveDet c
	where a.Warehouse_SN=b.Warehouse_SN and a.Receiving_SN=c.Receiving_SN

    
	SELECT DISTINCT DB_Center,Receiving_SN,Warehouse,Receive_Employee,Receive_Date,PO_Code,Currency_Code,Total_Price,
				Vendor,Material_Code,Material_Desc,Quantity1,Quantity2,Quantity3,Quantity4,UOM,Unit_Price,Total_Price2
     FROM @receivereport2  
	WHERE [email protected]_center
	and [email protected]_sn
	
END

为了快速开发就写的并不美观,将就看下。

 

 PB界面 file>>new>datawindow>>freeform 选自由格式便于调整报表格式。

数据源选择 stored procedure即可

PB 数据窗口采用存储过程的步骤和PB报表开发步骤

 

下一步选择存储过程

PB 数据窗口采用存储过程的步骤和PB报表开发步骤

这要加的字段是你在前台需要展示的字段。

PB 数据窗口采用存储过程的步骤和PB报表开发步骤

因为报表已经做完了此处用于记录。(这就是上图的字段)

PB 数据窗口采用存储过程的步骤和PB报表开发步骤

加减字段在这里右击

PB 数据窗口采用存储过程的步骤和PB报表开发步骤

这是定义数据源和入参。

PB 数据窗口采用存储过程的步骤和PB报表开发步骤

在datawindow加字段是添加字段控件

PB 数据窗口采用存储过程的步骤和PB报表开发步骤

 

剩下的样式。。就不多说了

前台界面看一下 大概就是这个效果

PB 数据窗口采用存储过程的步骤和PB报表开发步骤

需求是这样的:

PB 数据窗口采用存储过程的步骤和PB报表开发步骤

这个语言虽说已经过时了,但是做出来还是可以看的。打印出来也不比别的报表差

能看到末尾的真的是用心的人,相信自己只要用心做肯定可以做到的。