⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proc_poprint_out.sql

📁 工厂采购系统,DELPHI+SQL SERVER,三层技术
💻 SQL
字号:
if object_id('dbo.Proc_POPrint_Out') is not null
drop procedure dbo.Proc_POPrint_Out
go


create procedure Proc_POPrint_Out
@Order_Number varchar(30) = null,
@pg_count int output 
as
 declare
   @row_count int,
   @bal int, 
   @i   int
begin
		
	Create table #tb_Aut_Generate
(Order_number varchar(30) not null,
 Itemseq 	int null,
 Item_code      int null,
 HPN            VARCHAR(18) NULL,
 CPN            VARCHAR(30) NULL,
 MPN            VARCHAR(30) NULL,
 Description    varchar(120) NULL,
 Model          varchar(30) NULL,
 UoM            CHAR(3) NULL,
 Unit_Price     float,
 Currency       CHAR(3) null,
 Qty	numeric(18,2) null,
 Amount numeric(18,4) null,
 deliv_dt       varchar(12) null
)
insert into #tb_Aut_Generate(
Order_number,
itemseq,
Item_code,
HPN,
CPN,
MPN,
Description,
model,
uom,
unit_price,
Currency,
Qty,
Amount,
Deliv_Dt)
select 
 PONO,
itemseq,
Item,
HPN,
CPN,
MPN,
material_nm,
model,
uom,
unitprice,
curunit,
quantity,
Amount = convert(numeric(18,4),unitprice * quantity),
dbo.ConvertDateToStr(deli_day)
 from ord_item  
where pono=@Order_number
 order by itemseq

select @i = 0
select @row_count =isnull((select count(*) from  #tb_Aut_Generate where Order_Number= @order_number),0)

            if(@row_count<16) 
            begin
                while (16-@row_count)-@i>0
		begin
                	insert into #tb_Aut_Generate(Order_number)values(@Order_number)
			select @i = @i+1
		end
            end
            else if(@row_count>16) and (round((@row_count % 16),1)<>0) 
            begin
                select @bal = ((round((@row_count /16),1)+1) * 16) -@row_count
               
               while (@bal-@i)>0
		begin
                   insert into #tb_Aut_Generate(Order_number)values(@Order_number)
		   select @i = @i+1
	 	end
           end 
             
		if(round((@row_count / 16),1)<>0) 
                 select @pg_count = round((@row_count / 16),1)+1
                 else
                 select  @pg_count = round((@row_count / 16),1)
		 if(@pg_count<=0) 
		select @Pg_count = 1
      		 
	   select * from #tb_Aut_Generate
        
			select  @pg_count
	drop table #tb_Aut_Generate
end
go

/*
 declare
 @Pg_count int 
 exec Proc_POPrint_Out 'PO04-03234',@pg_count output

exec Proc_Get_PO_Amount 'PO04-03234'

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -