페이지 머리글 및 바닥글(보고서 작성기 및 SSRS)Page Headers and Footers (Report Builder and SSRS)

보고서는 각 페이지의 위쪽과 아래쪽에서 각기 실행되는 머리글과 바닥글을 포함할 수 있습니다.A report can contain a header and footer that run along the top and bottom of each page, respectively. 머리글과 바닥글에는 정적 텍스트, 이미지, 선, 사각형, 테두리, 배경색, 배경 이미지 및 식이 들어갈 수 있습니다.Headers and footers can contain static text, images, lines, rectangles, borders, background color, background images, and expressions. 식에는 단 하나의 데이터 집합과 데이터 집합을 범위로 포함하는 집계 함수 호출이 있는 보고서용 데이터 집합 필드 참조가 포함됩니다.Expressions include dataset field references for reports with exactly one dataset and aggregate function calls that include the dataset as a scope.

참고

각 렌더링 확장 프로그램에서는 페이지를 다르게 처리합니다.Each rendering extension processes pages differently. 보고서 페이지 매김 및 렌더링 확장 프로그램에 대한 자세한 내용은 Reporting Services의 페이지 매김(보고서 작성기 및 SSRS)을 참조하세요.For more information about report pagination and rendering extensions, see Pagination in Reporting Services (Report Builder and SSRS).

기본적으로 보고서에는 페이지 바닥글은 있지만 페이지 머리글은 없습니다.By default, reports have page footers, but not page headers. 추가하거나 제거하는 방법에 대한 자세한 내용은 페이지 머리글/바닥글 추가 또는 제거(보고서 작성기 및 SSRS)를 참조하세요.For more information about how to add or remove them, see Add or Remove a Page Header or Footer (Report Builder and SSRS).

머리글과 바닥글에는 일반적으로 페이지 번호, 보고서 제목 및 기타 보고서 속성이 포함됩니다.Headers and footers commonly contain page numbers, report titles, and other report properties. 이러한 항목을 보고서 머리글 또는 바닥글에 추가하는 방법에 대한 자세한 내용은 페이지 번호 또는 기타 보고서 속성 표시(보고서 작성기 및 SSRS)를 참조하세요.For more information about how to add these items to your report header or footer, see Display Page Numbers or Other Report Properties (Report Builder and SSRS).

페이지 머리글 또는 바닥글을 만들면 모든 보고서 페이지에 표시됩니다.After you create a page header or footer, it is displayed on each report page. 첫 번째와 마지막 페이지에서 페이지 머리글 및 바닥글을 표시하지 않는 방법에 대한 자세한 내용은 첫 페이지 또는 마지막 페이지에서 페이지 머리글 또는 바닥글 숨기기(보고서 작성기 및 SSRS)를 참조하세요.For more information about how to suppress page headers and footers on the first and last pages, see Hide a Page Header or Footer on the First or Last Page (Report Builder and SSRS).

참고

SQL Server Data Tools의 보고서 작성기 및 보고서 디자이너에서 페이지를 매긴 보고서 정의(.rdl) 파일을 만들고 수정할 수 있습니다.You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server Data Tools. 각 제작 환경에서는 보고서 및 관련 항목을 만들고, 열고, 저장할 수 있는 여러 방법을 제공합니다.Each authoring environment provides different ways to create, open, and save reports and related items.

보고서 머리글 및 바닥글Report Headers and Footers

페이지 머리글 및 바닥글은 보고서 머리글 및 바닥글과 다릅니다.Page headers and footers are not the same as report headers and footers. 보고서에는 특별한 보고서 머리글 또는 보고서 바닥글 영역이 없습니다.Reports do not have a special report header or report footer area. 보고서 머리글은 보고서 디자인 화면에서 보고서 본문의 맨 위에 입력되는 보고서 항목으로 구성됩니다.A report header consists of the report items that are placed at the top of the report body on the report design surface. 따라서 보고서의 첫 내용으로 한 번만 나타납니다.They appear only once as the first content in the report. 보고서 바닥글은 보고서 본문의 맨 아래에 입력되는 보고서 항목으로 구성됩니다.A report footer consists of report items that are placed at the bottom of the report body. 따라서 보고서의 마지막 내용으로 한 번만 나타납니다.They appear only once as the last content in the report.

페이지 머리글 및 바닥글은 정적인 내용을 표시하는 데도 사용할 수 있지만 일반적으로 페이지 내용에 대한 정보 또는 페이지 번호 등의 변화하는 내용을 표시하는 데 사용합니다.Page headers and footers can contain static content, but they are more commonly used to display varying content like page numbers or information about the contents of a page. 페이지마다 달라지는 변수 데이터를 표시하려면 식을 사용해야 합니다.To display variable data that is different on each page, you must use an expression.

보고서에 한 데이터 집합만 정의되어 있는 경우에는 [FieldName] 같은 간단한 식을 페이지 머리글 또는 바닥글에 추가할 수 있습니다.If there is only one dataset defined in the report, you can add simple expressions such as [FieldName] to a page header or footer. 보고서 데이터 창 데이터 집합 필드 컬렉션 또는 기본 제공 필드 컬렉션에서 페이지 머리글이나 페이지 바닥글로 필드를 끄십시오.Drag the field from the Report Data pane dataset field collection or the Built-in Fields collection to the page header or page footer. 적절한 식이 있는 입력란이 자동으로 추가됩니다.A text box with the appropriate expression is automatically added for you.

페이지에 있는 값의 합계 또는 기타 집계를 계산하려면 ReportItems 또는 데이터 집합 이름을 지정하는 집계 식을 사용하면 됩니다.To calculate sums or other aggregates for values on the page, you can use aggregate expressions that specify ReportItems or the name of a dataset. ReportItems 컬렉션은 보고서 렌더링이 발생한 후 각 페이지의 입력란 컬렉션입니다.The ReportItems collection is the collection of text boxes on each page after report rendering occurs. 데이터 집합 이름은 보고서 정의에 있어야 합니다.The dataset name must exist in the report definition. 다음 표에서는 각 유형의 집계 식에서 지원되는 항목을 보여 줍니다.The following table displays which items are supported in each type of aggregate expression:

식에서의 지원 여부Supported in expression ReportItems 집계ReportItems aggregates 데이터 집합 집계(범위는 데이터 집합의 이름이어야 함)Dataset aggregates (scope must be name of dataset)
보고서 본문에 있는 입력란Text boxes in body of report Yes 아니오No
&PageNumber&PageNumber Yes 아니오No
&TotalPages&TotalPages Yes 아니오No
집계 함수Aggregate function Yes. 예:For example,

=First(ReportItems!TXT_LastName.Value)
Yes. 예:For example,

=Max(Quantity.Value,"DataSet1")
페이지에 있는 항목의 필드 컬렉션Fields collection for items on the page 간접적임.Indirectly. 예:For example,

=Sum(ReportItems!Textbox1.Value)
Yes. 예:For example,

=Sum(Fields!Quantity.Value,"DataSet1")
데이터 바인딩된 이미지Data-bound image 간접적임.Indirectly. 예: =ReportItems!TXT_Photo.ValueFor example, =ReportItems!TXT_Photo.Value Yes. 예:For example,

=First(Fields!Photo.Value,"DataSet1")

이 항목의 다음 섹션에서는 머리글 및 바닥글에 일반적으로 사용하는 변수 데이터를 가져오는 미리 만들어 놓은 식을 보여 줍니다.The following sections in this topic show ready-to-use expressions that get variable data commonly used in headers and footers. Excel 렌더링 확장 프로그램에서 머리글 및 바닥글을 처리하는 방법에 대한 섹션도 있습니다.There is also a section on how the Excel rendering extension processes headers and footers. 식에 대한 자세한 내용은 식(보고서 작성기 및 SSRS)을 참조하세요.For more information about expressions, see Expressions (Report Builder and SSRS).

일부 보고서의 경우 각 보고서의 머리글 또는 바닥글에 계산된 값(예: 페이지에 숫자 값이 있는 경우 페이지당 총 합계)을 포함하면 유용합니다.For some reports, it is useful to include a calculated value in the header or footer of each report; for example, a per-page sum total if the page includes numeric values. 필드를 직접 참조할 수 없으므로 머리글 또는 바닥글에 삽입하는 식은 데이터 필드 대신 입력란과 같은 보고서 항목의 이름을 참조해야 합니다.Because you cannot reference the fields directly, the expression that you put in the header or footer must reference the name of the report item (for example, a text box) rather than the data field:

=Sum(ReportItems!Textbox1.Value)

반복되는 데이터 행을 포함하는 테이블 또는 목록에 입력란이 있는 경우 런타임에 머리글 또는 바닥글에 나타나는 값은 현재 페이지의 테이블 또는 목록에 있는 모든 TextBox1 인스턴스 데이터 값의 합계입니다.If the text box is in a table or list that contains repeated rows of data, the value that appears in the header or footer at run time is a sum of all values of all TextBox1 instance data in the table or list for the current page.

페이지 합계를 계산할 때 다른 렌더링 확장 프로그램을 사용하여 보고서를 보면 합계가 서로 다를 수 있습니다.When calculating page totals, you can expect to see differences in the totals when you use different rendering extensions to view the report. 각 렌더링 확장 프로그램마다 페이지가 매겨진 출력을 다르게 계산합니다.Paginated output is calculated differently for each rendering extension. HTML로 본 페이지를 PDF로 보면 PDF 페이지의 데이터 양이 다른 경우 합계가 다를 수 있습니다.The same page that you view in HTML might show different totals when viewed in PDF if the amount of data on the PDF page is different. 자세한 내용은 렌더링 동작(보고서 작성기 및 SSRS)을 참조하세요.For more information, see Rendering Behaviors (Report Builder and SSRS).

데이터 집합이 여러 개인 보고서의 경우For Reports with Multiple Datasets

데이터 집합이 여러 개인 보고서의 경우에는 머리글 또는 바닥글에 필드 또는 데이터 바인딩된 이미지를 직접 추가할 수 없습니다.For reports with more than one dataset, you cannot add fields or data-bound images directly to a header or footer. 그러나 머리글 또는 바닥글에 사용할 데이터 바인딩된 필드나 이미지를 간접적으로 참조하는 식은 작성할 수 있습니다.However, you can write an expression that indirectly references a field or data-bound image that you want to use in a header or footer.

머리글 또는 바닥글에 변수 데이터를 삽입하려면To put variable data in a header or footer:

  • 머리글 또는 바닥글에 입력란을 추가합니다.Add a text box to the header or footer.

  • 입력란에 나타낼 변수 데이터를 생성하는 식을 작성합니다.In the text box, write an expression that produces the variable data that you want to appear.

  • 식에 페이지의 보고서 항목에 대한 참조를 포함시킵니다. 예를 들어 특정 필드의 데이터를 포함하는 입력란을 참조할 수 있습니다.In the expression, include references to report items on the page; for example, you can reference a text box that contains data from a particular field. 데이터 집합의 필드에 대한 직접적인 참조는 포함시키지 않습니다.Do not include a direct reference to fields in a dataset. 예를 들어 [LastName]식은 사용할 수 없습니다.For example, you cannot use the expression [LastName]. 다음 식을 사용하여 TXT_LastName이라는 입력란의 첫 번째 인스턴스 내용을 표시할 수 있습니다.You can use the following expression to display the contents of the first instance of a text box named TXT_LastName:

    =First(ReportItems!TXT_LastName.Value)

    페이지 머리글 또는 바닥글의 필드에는 집계 함수를 사용할 수 없습니다.You cannot use aggregate functions on fields in the page header or footer. 보고서 본문에 있는 보고서 항목에만 집계 함수를 사용할 수 있습니다.You can only use an aggregate function on report items in the report body. 페이지 머리글 및 바닥글에 일반적으로 사용하는 식에 대한 자세한 내용은 식 예(보고서 작성기 및 SSRS)를 참조하세요.For common expressions in page headers and footers, see Expression Examples (Report Builder and SSRS).

데이터베이스에 저장된 이미지 데이터를 머리글 또는 바닥글에 사용할 수 있습니다.You can use image data stored in a database in a header or footer. 그러나 이미지 보고서 항목에서 직접 데이터베이스 필드를 참조할 수는 없습니다.However, you cannot reference database fields from the Image report item directly. 대신 보고서 본문에 입력란을 추가한 다음 해당 입력란을 이미지를 포함하는 데이터 필드로 설정해야 합니다. 이때 값은 base64로 인코딩되어야 합니다.Instead, you must add a text box in the body of the report and then set the text box to the data field that contains the image (note that the value must be base64 encoded). 보고서 본문에서 입력란을 숨겨 base64로 인코딩된 이미지를 표시하지 않을 수 있습니다.You can hide the text box in the body of the report to avoid showing the base64-encoded image. 그런 다음 페이지 머리글 또는 바닥글의 이미지 보고서 항목에서 숨겨진 입력란의 값을 참조할 수 있습니다.Then, you can reference the value of the hidden text box from the Image report item in the page header or footer.

예를 들어 제품 정보 페이지로 구성된 보고서의For example, suppose you have a report that consists of product information pages. 각 페이지에 있는 머리글에 제품의 사진을 표시하려는 경우를 가정합니다.In the header of each page, you want to display a photograph of the product. 보고서 머리글에 저장된 이미지를 인쇄하려면 보고서 본문에 데이터베이스에서 이미지를 검색하는 TXT_Photo 라는 숨겨진 입력란을 정의하고 식을 사용하여 이 입력란에 값을 제공합니다.To print a stored image in the report header, define a hidden text box named TXT_Photo in the body of the report that retrieves the image from the database and use an expression to give it a value:

=Convert.ToBase64String(Fields!Photo.Value)

이미지를 표시하도록 디코딩된 TXT_Photo 입력란을 사용하는 Image 보고서 항목을 머리글에 추가합니다.In the header, add an Image report item which uses the TXT_Photo text box, decoded to show the image:

=Convert.FromBase64String(ReportItems!TXT_Photo.Value)

머리글 및 바닥글을 사용하여 텍스트 배치Using Headers and Footers to Position Text

머리글 및 바닥글을 사용하여 페이지에 텍스트를 배치할 수 있습니다.You can use headers and footers to position text on a page. 예를 들어 고객에게 우편으로 전송할 보고서를 만드는 경우For example, suppose you are creating a report that you want to mail out to customers. 머리글 또는 바닥글을 사용하여 봉투를 접었을 때 고객 주소가 봉투 창의 주소 부분에 나타나도록 배치할 수 있습니다.You can use a header or footer to position the customer address so that it appears in an envelope window when folded.

머리글 또는 바닥글을 입력란으로만 채우는 경우 보고서 본문에서 입력란을 숨길 수 있습니다.If you are only using the text box to populate a header or footer, you can hide the text box in the report body. 보고서 본문에 입력란을 배치하면 값이 보고서 첫 페이지의 머리글 또는 바닥글에 나타나는지, 아니면 마지막 페이지의 머리글 또는 바닥글에 나타나는지에 영향을 줄 수 있습니다.Placement of the text box in the report body can have an effect on whether the value appears on the header or footer of the first or last page of a report. 예를 들어 보고서가 여러 페이지로 확장되도록 하는 테이블, 행렬 또는 목록이 있는 경우 숨겨진 입력란 값은 마지막 페이지에 나타납니다.For example, if you have tables, matrices, or lists that cause the report to span multiple pages, the hidden text box value appears on the last page. 첫 페이지에 나타나도록 하려면 숨겨진 입력란을 보고서 본문의 위쪽에 배치합니다.If you want it to appear on the first page, place the hidden text box at the top of the report body.

특정 렌더러에 대해 페이지 머리글 및 바닥글로 보고서 디자인Designing Reports with Page Headers and Footers for Specific Renderers

보고서가 처리될 때 데이터와 레이아웃 정보가 결합됩니다.When a report is processed, data and layout information are combined. 보고서를 볼 때는 결합된 정보가 각 보고서 페이지에 어느 정도의 보고서 데이터가 맞는지를 결정하는 렌더러에 전달됩니다.When you view a report, the combined information is passed to a renderer that determines how much report data fits on each report page.

브라우저를 사용하여 보고서 서버에서 보고서를 보는 경우 표시되는 보고서 페이지의 콘텐츠를 HTML 렌더러가 제어합니다.If you view a report on the report server using a browser, the HTML renderer controls the content on the report pages that you see. 현재 보고 있는 형식과 다른 형식으로 보고서를 제공할 계획이거나 특정 형식으로 보고서를 인쇄할 계획이면 최종 보고서 형식에 사용할 렌더러에 맞게 보고서 레이아웃을 최적화할 수 있습니다.If you plan to deliver reports in a different format than you use for viewing, or if you plan to print reports in a specific format, you may want to optimize the report layout for the renderer you plan to use for the final report format. 보고서 페이지 매김에 대한 자세한 내용은 Reporting Services의 페이지 매김(보고서 작성기 및 SSRS)을 참조하세요.For more information about report pagination, see Pagination in Reporting Services (Report Builder and SSRS).

Excel에서의 페이지 머리글 및 바닥글 작업Working with Page Headers and Footers in Excel

Excel 렌더링 확장 프로그램을 대상으로 하는 보고서에 대해 페이지 머리글 및 바닥글을 정의하는 경우 다음 지침을 따르면 가장 좋은 결과를 얻을 수 있습니다.When defining page headers and footers for reports that target the Excel rendering extension, follow these guidelines to achieve best results:

  • 페이지 바닥글을 사용하여 페이지 번호를 표시합니다.Use page footers to display page numbers.

  • 페이지 머리글을 사용하여 이미지, 제목 또는 기타 텍스트를 표시합니다.Use page headers to display images, titles, or other text. 머리글에는 페이지 번호를 삽입하지 마십시오.Do not put page numbers in the header.

    Excel에서 페이지 바닥글은 레이아웃이 제한되어 있습니다.In Excel, page footers have a limited layout. 페이지 바닥글에 복잡한 보고서 항목을 포함하는 보고서를 정의하면 Excel에서 해당 보고서를 볼 때 페이지 바닥글이 예상과 다르게 처리될 수 있습니다.If you define a report that includes complex report items in the page footer, the page footer won't process as you expect when the report is viewed in Excel.

    Excel 렌더링 확장 프로그램에서는 페이지 머리글에 이미지 및 단순 또는 복잡한 보고서 항목의 절대 위치를 수용할 수 있습니다.The Excel rendering extension can accommodate images and absolute positioning of simple or complex report items in the page header. 페이지 머리글 레이아웃이 보다 다양하게 지원되지만 이로 인해 머리글에서의 페이지 번호 계산 기능이 제한을 받게 됩니다.A side effect of supporting a richer page header layout is reduced support for calculating page numbers in the header. Excel 렌더링 확장 프로그램에서는 기본적으로 워크시트 수를 기반으로 페이지 번호를 계산하며In the Excel rendering extension, default settings cause page numbers to be calculated based on the number of worksheets. 보고서 정의 방법에 따라 잘못된 페이지 번호가 생성될 수 있습니다.Depending on how you define the report, this might produce erroneous page numbers. 예를 들어 4장의 페이지로 인쇄되며 하나의 큰 워크시트로 렌더링되는 보고서가 있는 경우For example, suppose you have a report that renders as a single large worksheet that prints on four pages. 머리글에 페이지 번호 정보를 포함하면 인쇄되는 각 페이지의 머리글에 "1페이지 중 1페이지"가 표시됩니다.If you include page number information in the header, each printed page will show "Page 1 of 1" in the header.

    보다 정확한 페이지 수는 인쇄된 페이지의 차원과 상호 관련된 논리 페이지를 기반으로 합니다.A more accurate page count is based on logical pages that correlate to the dimensions of a printed page. Excel에서는 페이지 바닥글에 자동으로 논리 페이지 번호가 사용됩니다.In Excel, the page footer uses logical page numbers automatically. 페이지 머리글에 논리 페이지 수를 삽입하려면 간단한 머리글을 사용하도록 장치 정보 설정을 구성해야 합니다.To put the logical page count in the page header, you must configure the device information settings to use simple headers. 간단한 머리글을 사용하면 머리글 영역에서 복잡한 보고서 레이아웃을 처리하는 기능이 제거됩니다.Be aware that when you use simple headers, you remove the capability of handling complex report layout in the header region.

    자세한 내용은 Microsoft Excel로 내보내기(보고서 작성기 및 SSRS)를 참조하세요.For more information, see Exporting to Microsoft Excel (Report Builder and SSRS).

관련 항목:See Also

보고서 및 (에 이미지 포함 보고서 작성기 및 SSRS ) Embed an Image in a Report (Report Builder and SSRS)
사각형 및 선 ( 보고서 작성기 및 SSRS )Rectangles and Lines (Report Builder and SSRS)