Relatório com Report Viewer 
O controle Microsoft Report, permite a criação de relatórios e o Report Viewer permite que, os aplicativos executados no .NET Framework exibam os mesmos. Vamos criar o relatório de funcionários. Como na tabela de funcionários está somente o idMunicipio (que é a chave-estrangeira), vamos montar uma View para juntarmos as duas tabelas: funcionario e município, utilizando assim a instrução INNER JOIN.

Criando uma View

Entre no SQL Management e insira o código abaixo:
CREATE VIEW vwFuncionarios AS 
SELECT funcionarios.idFuncionario, funcionarios.nome, municipios.municipio, funcionarios.endereco, funcionarios.cep, funcionarios.email, funcionarios.cpf, funcionarios.rg, funcionarios.dataCadastro FROM funcionarios INNER JOIN municipios on funcionarios.idMunicipio = municipios.idMunicipio

Pressione a tecla F5 para criar a VIEW.

Executando a view
SELECT * FROM vwfuncionarios

Criando o relatório
No Visual Studio clique com o botão direito no Solution Explorer e selecione: Add / New Item.
Em Installed Templates, selecione Reporting e no lado direito da janela em Sort by e selecione a segunda opção: Report.

Logo abaixo, altere o nome para: rptFuncionario.rdlc. Veja figura abaixo:

Report Viewer1

Confirme no botão Add.

Report Viewer 2

Clique com o botão direito fora da área do relatório. Veja figura acima. Clique na opção: Add Page Header (adiciona o cabeçalho) e Add Page Footer (adiciona o rodapé).

No cabeçalho, clique com o botão direito e insira um TextBox. Veja figura abaixo:

Report Viewer4

Será aberta a janela para a configuração do Data Source. O mesmo é responsável para a ligação com o banco de dados e com as tabelas, store procedure, view.

Report Viewer5

Deixe a opção Database selecionada e clique no botão Next. Na próxima janela, deixe a opção DataSet selecionada e clique no botão Next. Na próxima janela, clique no botão New Connection. Clique no botão Change para selecionar o tipo do Data Source. No nosso caso, utilizaremos o SQL Server.

Report Viewer6

Clique no botão OK. Será aberta a janela, para selecionarmos o banco de dados.
Dependendo de como estiver configurado o SQL Server, o mesmo pode estar como Use Windows Authentication (não precisa utilizar usuário e senha para logar) ou Use SQL Server Authentication (é necessário ter usuário e senha para logar). Vamos utilizar este último. Em User name, digite: as em Password digite: as.
Em Connect to a database, clique na seta da caixa e selecione o banco BDFuncionario.

Report Viewer7

Clique no botão OK. Voltará a janela com a definição da Connection String. Clique no botão Next. Na janela que abriu, temos a opção de selecionar as tabelas, Views, Store Procedures, Functions. Só vamos precisar neste caso, da Views e clique no botão Finish. Deixe como a janela abaixo:

Report Viewer8

Clique no botão OK.
Será exibido o controle Table com três colunas.

Insira mais duas colunas.

Report Viewer9

Passe o mouse na segunda linha (Data) e na primeira coluna, surgirá uma indicação no lado direito da coluna, referente a tabela. Veja a figura abaixo:

Report Viewer10

Dê um clique. Serão exibidos todas as colunas da View. Insira pela ordem as colunas: idFuncionario, nome, município, email e cpf. Veja figura abaixo:

Report Viewer11

Falta agora configurar o rodapé.
Clique com o botão direito sobre a seção do rodapé, e insira um TextBox. Clique com o  botão direito sobre o mesmo, e selecione a opção Expression.
Em Set expression for: Value, digite: = Página;
Em Category, selecione a opção: Built in Fields. Será exibido ao lado, alguns itens. Dê dois cliques em PageNumber. Em Set expression for: Value, após Página, ficará assim: = Página Globals!Number;
Volte na opção Built in Fields, e dê dois cliques em TotalPages. Em Set expression for: deixe desta forma: = Página Globals!PageNumber & " de " & Globals!TotalPages. Deixe o TextBox, com a largura da página, e centralize o mesmo. Clique no botão OK.
Crie um novo formulário:
Nome: frmRFuncionario
Text: Relatório de Funcionários
WindowState: Maximized

Vá até o ToolBox no grupo Reporting e selecione o controle ReportViewer.

Report Viewer12

Insira-o no formulário. Selecione em Choose Report o nome do relatório.
A seguir, clique na opção: Dock in Parent Container. Esta opção ajustará o relatório com o tamanho do formulário.
No botão imprimir, insira as linhas abaixo para carregar e exibir o relatório:
frmRRelatorio objRelatorio = new frmRRelatorio();
objRelatorio.ShowDialog();
Execute a aplicação e faça os testes.         
Duplo clique no botão btnSair:
this.Dispose();