• Give this a try:

    Alter proc [dbo].[InvoiceDisplayTest] (

    @InvoiceNumber nvarchar(50),

    @InvoiceDate datetime ,

    @InvoiceDate1 datetime,

    @AccountNumber nvarchar(50),

    @TradingPartnerID nvarchar(50),

    @Page nvarchar(50),

    @rownum int OUTPUT)

    AS

    BEGIN

    SELECT *

    FROM (SELECT InvoiceID,DocumentNumber, convert(char(12),DocumentDate,112) AS DocumentDate,AccountNumber,Supplier,TradingPartnerID,

    ROW_NUMBER()OVER(ORDER BY DocumentNumber ASC)AS rowno

    FROM InvoiceHeader

    WHERE

    (@InvoiceNumber = '' OR DocumentNumber = @InvoiceNumber)

    and (@AccountNumber = '' or AccountNumber = @AccountNumber)

    and (@TradingPartnerID = '' or TradingPartnerID = @TradingPartnerID)

    and (@InvoiceDate = '' or DocumentDate >= @InvoiceDate

    and DocumentDate <=@InvoiceDate1 or @InvoiceDate1 = '')

    )As qr

    WHERE

    rowno BETWEEN ((@Page - 1) * 20 + 1)

    AND (@Page * 20)

    SET @rownum = @@rowcount;

    END