没有合适的资源?快使用搜索试试~ 我知道了~
首页用友UAP报表net控件开发总结
资源详情
资源评论
资源推荐

目录
1
写存储过程,并在
UFData
库执行
................................................................................................
2
2
编写订单查询报表控件代码
.........................................................................................................
4
3
编写订单明细查询报表控件代码
.................................................................................................
5
4
编译控件到目录:
X:/U8SOFT/UAP
...............................................................................................
6
5
新建订单查询报表
..........................................................................................................................
6
6
新建订单明细查询报表
................................................................................................................
11
7
订单查询报表联查订单明细查询报表
......................................................................................
14
8
代码下载
........................................................................................................................................
18

1
写存储过程,并在
UFData
库执行
--订单查询表
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[LJYC_OrderReport_Pro]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[LJYC_OrderReport_Pro]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[LJYC_OrderReport_Pro]
@cStartTime varchar(20) = '1900-01-01', --开始日期
@cStopTime varchar(20) = '1900-01-01',--结束日期
@cCusCode varchar(2000) = '-1',--客户
@cUserId varchar(20) = 'demo'--操作员
as
begin
declare @esql varchar(8000)
declare @iwhere varchar(2000) --总过滤条件
declare @dStartTime datetime
declare @dStopTime datetime
declare @cPStartTime varchar(255)
declare @cPStopTime varchar(255)
set @cCusCode = replace(@cCusCode,',',''',''')
set @cCusCode = replace(@cCusCode,char(9),''',''')
set @cCusCode = replace(@cCusCode,';',''',''')
set @iwhere = ' 1=1'
set @cPStartTime = @cStartTime
set @cPStopTime = @cStopTime
set @dStartTime = cast(@cStartTime as datetime)
set @dStopTime = cast(@cStopTime as datetime)
set @dStopTime = DATEADD(hour,24,@dStopTime)
set @dStopTime = DATEADD(Second,-1,@dStopTime)
set @cStartTime = CONVERT(varchar(100), @dStartTime, 20)
set @cStopTime = CONVERT(varchar(100), @dStopTime, 20)
--过滤条件
if @cCusCode!='-1' and @cCusCode!=''
begin

set @iwhere = @iwhere + ' and isnull(A.cCusCode,'''') in ('''+@cCusCode+''')'
end
if @cPStartTime!='1900-01-01'
set @iwhere = @iwhere+' and dDate>='''+@cStartTime+''''
if @cPStopTime!='1900-01-01'
set @iwhere = @iwhere+' and dDate<='''+@cStopTime+''''
--业务员数据权限控制
if not exists(SELECT * FROM UFSystem..UA_User A INNER JOIN UFSystem..UA_Role B ON A.cUser_Id
= B.cUser_Id WHERE A.cUser_Id = @cUserId AND B.cGroup_Id = 'DATA-MANAGER') and
@cUserId!='demo'
begin
--非账套主管需要数据权限控制
set @iwhere = @iwhere + ' and (A.cPersonCode in (select cPersonCode From person inner
join aa_holdauth on person.cPersonCode=aa_holdauth.cACCode where cUserid='''+@cUserId+'''
and cBusObId=N''person'' And isUserGroup=0 ) or A.cPersonCode in (SELECT cUser_Id FROM
UserHrPersonContro WHERE cUser_Id = '''+@cUserId+'''))'
end
set @esql = ' SELECT A.cSOCode AS 订单号,CONVERT(VARCHAR(100),A.dDate,23) AS 订单日
期,A.cCusCode AS 客户编码,A.cCusName AS 客户名称,A.cPersonCode AS 业务员编码,P.cPsn_Name
AS 业务员 FROM dbo.SO_SOMain A INNER JOIN dbo.Customer CT ON A.cCusCode = CT.cCusCode LEFT
JOIN dbo.hr_hi_person P ON A.cPersonCode = P.cPsn_Num where ' + @iwhere
EXEC(@esql)
end
GO
--订单明细查询报表
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[LJYC_OrderDetailReport_Pro]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[LJYC_OrderDetailReport_Pro]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[LJYC_OrderDetailReport_Pro]
@cOrderNo varchar(40) = '-1'--订单号
as
begin
declare @esql varchar(8000)
declare @iwhere varchar(2000) --总过滤条件

set @iwhere = ' 1=1'
if @cOrderNo!='-1' and @cOrderNo!=''
begin
set @iwhere = @iwhere + ' and A.cSOCode = '''+@cOrderNo+''''
end
set @esql = 'SELECT A.cSOCode AS 单据号,CONVERT(VARCHAR(100),A.dDate,23) AS 订单日
期,A.cCusCode AS 客户编码,CT.cCusName AS 客户名称,B.cInvCode AS 存货编码,I.cInvName AS
存货名称,CONVERT(DECIMAL(18,2),B.iQuantity) AS 数量 FROM dbo.SO_SOMain A INNER JOIN
dbo.SO_SODetails B ON A.ID = B.ID LEFT JOIN dbo.Customer CT ON A.cCusCode = CT.cCusCode LEFT
JOIN dbo.Inventory I ON B.cInvCode = I.cInvCode where ' + @iwhere
EXEC(@esql)
end
GO
2 编写订单查询报表控件代码
public void GetSql(IFilterArgs e)
{
#region sql
clsLogin login = (e.Login as clsLogin);
e.DataSource.Type = CustomDataSourceTypeEnum.SQL;//数据源类型就是 SQL 类型
SqlHelper.connU8 = login.UFDataConnstringForNet;
string cStartTime = "";
string cStopTime = "";
string cUserId = "";
string cCusCode = "";
#region 过滤条件
if (e.FltSrv.GetValue1("cCusCode") != null)
{
cCusCode = e.FltSrv.GetValue1("cCusCode");
}
if (e.FltSrv.GetValue1("dDate") != null)
{
cStartTime = e.FltSrv.GetValue1("dDate");
}
if (e.FltSrv.GetValue2("dDate") != null)
{
cStopTime = e.FltSrv.GetValue2("dDate");
}
cUserId = e.UserID;
#endregion
剩余18页未读,继续阅读







安全验证
文档复制为VIP权益,开通VIP直接复制

评论1