Index: /branches/2.2/reports1_0/inc/class.uireports_users.inc.php
===================================================================
--- /branches/2.2/reports1_0/inc/class.uireports_users.inc.php	(revision 3472)
+++ /branches/2.2/reports1_0/inc/class.uireports_users.inc.php	(revision 3472)
@@ -0,0 +1,630 @@
+<?php
+	/*************************************************************************************\
+	* Expresso Relatório                										         *
+	* by Elvio Rufino da Silva (elviosilva@yahoo.com.br, elviosilva@cepromat.mt.gov.br)  *
+	* -----------------------------------------------------------------------------------*
+	*  This program is free software; you can redistribute it and/or modify it			 *
+	*  under the terms of the GNU General Public License as published by the			 *
+	*  Free Software Foundation; either version 2 of the License, or (at your			 *
+	*  option) any later version.														 *
+	*************************************************************************************/
+
+	class uireports_users
+	{
+		var $public_functions = array
+		(
+			'report_users_print_pdf'			=> True,
+			'report_users_group'				=> True,
+			'report_users_group_setor_print'	=> True,
+			'get_user_info'						=> True,
+			'css'								=> True
+		);
+
+		var $nextmatchs;
+		var $user;
+		var $functions;
+		var $current_config;
+		var $ldap_functions;
+		var $db_functions;
+
+		function uireports_users()
+		{
+			$this->user			= CreateObject('reports1_0.user');
+			$this->nextmatchs	= CreateObject('phpgwapi.nextmatchs');
+			$this->functions	= CreateObject('reports1_0.functions');
+			$this->ldap_functions = CreateObject('reports1_0.ldap_functions');
+			$this->db_functions = CreateObject('reports1_0.db_functions');
+			$this->fpdf = CreateObject('reports1_0.uireports_fpdf'); // Class para PDF
+									
+			$c = CreateObject('phpgwapi.config','reports1_0'); // cria o objeto relatorio no $c
+			$c->read_repository(); // na classe config do phpgwapi le os dados da tabela phpgw_config where relatorio, como passagem acima
+			$this->current_config = $c->config_data; // carrega os dados em do array no current_config
+
+			if(!@is_object($GLOBALS['phpgw']->js))
+			{
+				$GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript');
+			}
+			$GLOBALS['phpgw']->js->validate_file('jscode','cc','reports1_0');
+		}
+		
+		function report_users_print_pdf()
+		{
+			$account_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
+			$acl = $this->functions->read_acl($account_lid);
+			$raw_context = $acl['raw_context'];
+			$contexts = $acl['contexts'];
+			foreach ($acl['contexts_display'] as $index=>$tmp_context)
+			{
+				$context_display .= $tmp_context;
+			}
+
+
+			if (!$this->functions->check_acl($account_lid,'list_users'))
+			{
+				$GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/reports1_0/inc/access_denied.php'));
+			}
+
+			$grouplist = trim($_POST[setor]);
+			$grouplist = trim(ereg_replace("-","",$grouplist));
+
+			$setordn = trim($_POST[setordn]);
+			$subtitulo1 = trim($_POST[subtitulo]);
+
+			define('FPDF_FONTPATH','font/');
+			$data_atual = date("d/m/Y"); 
+			$titulo_system = $GLOBALS['phpgw_info']['apps']['reports1_0']['title'];			
+
+			$pdf=new uireports_fpdf("L");
+			$pdf->Open();
+			$pdf->AddPage();
+			$pdf->SetTitle('Relatório Gerado pelo Expresso Reports');
+
+			//Set font and colors
+			$pdf->SetFont('Arial','B',14);
+			$pdf->SetFillColor(0,0,0);
+			$pdf->SetTextColor(0,0,200);
+			$pdf->SetDrawColor(0,0,0);
+			$pdf->SetLineWidth(.2);
+
+			//Table header
+			$SubTitulo = lang('reports title2');
+			$SubTituloR = lang('report organization');
+			$SubTitulo1 = $subtitulo1;
+			$GLOBALS['phpgw_info']['apps']['reports1_0']['subtitle'] = $SubTituloR;
+			$pdf->Cell(0,8,$SubTitulo,0,1,'C',0);
+
+
+			//Set font and colors
+			$pdf->SetFont('Arial','B',8);
+			$pdf->SetFillColor(0,0,0);
+			$pdf->SetTextColor(0,0,200);
+			$pdf->SetDrawColor(0,0,0);
+			$pdf->SetLineWidth(.3);
+
+			$pdf->MultiCell(0,3,$SubTitulo1,0,'C',0);
+						
+			$pdf->Cell(0,2,' ',0,1,'C',0);
+			$pdf->Cell(0,5,'Data..: '.$data_atual,0,0,'L',0);
+			$pdf->Cell(0,5,$titulo_system,0,1,'R',0);
+												
+			$account_info = $this->functions->get_list_user_sector($setordn,$contexts,0);
+						
+			if (count($account_info))
+			{ 
+				//Restore font and colors
+				$pdf->SetFont('Arial','',8);
+				$pdf->SetFillColor(224,235,255);
+				$pdf->SetTextColor(0);
+
+				$pdf->Cell(55,5,lang('loginid'),1,0,'L',1);
+				$pdf->Cell(80,5,lang('name'),1,0,'L',1);
+				$pdf->Cell(80,5,lang('report email'),1,0,'L',1);
+				$pdf->Cell(35,5,lang('report phone'),1,0,'L',1);
+				$pdf->Cell(20,5,lang('status'),1,1,'L',1);
+				
+				while (list($null,$account) = each($account_info))
+				{
+						$row_loginid = $account['account_lid'];
+						$row_cn = $account['account_cn'];
+						$row_mail = (!$account['account_mail'] ? '<font color=red>Sem E-mail</font>' : $account['account_mail']);
+						$row_phone = (!$account['account_phone'] ? '-' : $account['account_phone']);
+						$row_status = $account['account_accountstatus'] == 'active' ? 'Ativado' : 'Desativado';
+						$pdf->Cell(55,5,$row_loginid,0,0,'L',0);
+						$pdf->Cell(80,5,$row_cn,0,0,'L',0);
+						$pdf->Cell(80,5,$row_mail,0,0,'L',0);
+						$pdf->Cell(35,5,$row_phone,0,0,'L',0);
+					if ($row_status == 'Ativado')
+					{
+						//Restaura cor fonte
+						$pdf->SetTextColor(0);
+						$pdf->Cell(20,5,$row_status,0,1,'L',0);
+					}
+					else
+					{
+						//Muda cor fonte
+						$pdf->SetTextColor(256,0,0);
+						$pdf->Cell(20,5,$row_status,0,1,'L',0);					
+						//Restaura cor fonte
+						$pdf->SetTextColor(0);
+					}
+				}
+			}
+
+			$pdf->Output();
+
+			return; 
+		}
+
+		function report_users_group()
+		{
+			$account_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
+			$manager_acl = $this->functions->read_acl($account_lid);
+			$raw_context = $acl['raw_context'];
+			$contexts = $manager_acl['contexts'];
+			$conta_context = count($manager_acl['contexts_display']);
+			foreach ($manager_acl['contexts_display'] as $index=>$tmp_context)
+			{
+				$index = $index +1;
+
+				if ($conta_context == $index)
+				{
+					$context_display .= $tmp_context;
+				}
+				else
+				{
+					$context_display .= $tmp_context.'&nbsp;|&nbsp;';
+				}
+			}
+			
+			// Verifica se tem acesso a este modulo
+			if (!$this->functions->check_acl($account_lid,'list_sectors'))
+			{
+				$GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/reports1_0/inc/access_denied.php'));
+			}
+
+			unset($GLOBALS['phpgw_info']['flags']['noheader']);
+			unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
+			
+			$GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['reports1_0']['title'].' - '.lang('report organization');
+			$GLOBALS['phpgw']->common->phpgw_header();
+
+			$p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
+			$p->set_file(array('groups'   => 'report_users_group.tpl'));
+			$p->set_block('groups','list','list');
+			$p->set_block('groups','row','row');
+			$p->set_block('groups','row_empty','row_empty');
+
+			// Seta as variaveis padroes.
+			$var = Array(
+				'th_bg'					=> $GLOBALS['phpgw_info']['theme']['th_bg'],
+				'back_url'				=> $GLOBALS['phpgw']->link('/reports1_0/index.php'),
+				'context_display'		=> $context_display
+			);
+			$p->set_var($var);
+			$p->set_var($this->functions->make_dinamic_lang($p, 'list'));
+			
+
+			$GLOBALS['organizacaodn'] = $_POST['organizacaodn'];
+
+			$contextsdn = $GLOBALS['organizacaodn'];
+
+			// Save query
+			$varorganizacao = explode(",",$contextsdn);
+			$varorganizacao_nome = trim(strtoupper(ereg_replace("ou=","",$varorganizacao[0])));
+			$varorganizacao_nome = trim(strtoupper(ereg_replace("DC=","",$varorganizacao_nome)));
+			$user_logon = $GLOBALS['phpgw_info']['user'][account_lid];
+
+			// carrega os grupos no listbox
+			/************* DESCOMENTE ESTE PARTE DO CODIGO PARA LISTAR TODOS OS GRUPOS, SEM LISTAR POR USUSARIO LOGADO *********** 
+			$sectors_info = $this->functions->get_groups_list($contexts,"*");
+			$sectors_info_dn = $this->functions->get_groups_list_dn($contexts,"*");
+			/* ************************************* FIM *********************************************************************** */
+
+			$sectors_info = $this->functions->get_list_context_logon($user_logon,$contexts,0);
+			$sectors_info_dn = $this->functions->get_list_groups_dn($user_logon,$contexts,0);
+
+			if (!count($sectors_info))
+			{
+				$p->set_var('notselect',lang('No matches found'));
+			}
+			else
+			{
+				foreach($sectors_info as $context=>$sector)
+				{
+					
+					$sectordn = $sectors_info_dn[$context];
+
+					$tr_color = $this->nextmatchs->alternate_row_color($tr_color);
+					
+					if ($context == 0 && $contextsdn <> "")
+					{
+						if (trim(strtoupper($varorganizacao_nome)) ==  trim(strtoupper($sector)))
+						{
+							$sector_options .= "<option selected value='" .$contextsdn. "'>" .$varorganizacao_nome. "</option>";
+						}
+						else
+						{
+							$sector_options .= "<option selected value='" .$contextsdn. "'>" .$varorganizacao_nome. "</option>";
+							$sector_options .= "<option value='" . $sectordn . "'>". $sector . "</option>";
+						}
+
+					}
+					else
+					{
+						if ( trim(strtoupper($varorganizacao_nome)) !=  trim(strtoupper($sector)))
+						{
+							$sectorok = trim(strtoupper(ereg_replace("dc=","",$sector)));
+							$sectorok = trim(strtoupper(ereg_replace("dc=","",$sectorok)));
+							$sector_options .= "<option value='" . $sectordn . "'>". $sectorok . "</option>";
+						}
+					}
+
+					$varselect = Array(
+						'tr_color'    	=> $tr_color,
+						'organizacaodn'	=> $contextsdn,
+						'group_name'  	=> $sector_options
+					);					
+				}
+
+				$p->set_var($varselect);
+			}
+
+			// ************** inicio carregar a sub-lista das organizações ****************
+			//Admin make a search
+			if ($GLOBALS['organizacaodn'] != '')
+			{
+				// Conta a quantidade de Usuario do grupo raiz
+				$account_user = $this->functions->get_list_user_sector($contextsdn,$contexts,0);
+				$totaluser = "(".count($account_user).")";
+
+				$p->set_var('organizacao', $varorganizacao_nome);
+				$p->set_var('all_user', lang('all'));
+				$p->set_var('total_user', $totaluser);
+
+				$setorg = $contextsdn;
+
+				$groups_info = $this->functions->get_sectors_list($contexts,$setorg);
+
+				if (!count($groups_info))
+				{
+					$p->set_var('message',lang('No sector found'));
+					$p->parse('rows','row_empty',True);				
+				}
+				else
+				{
+					$ii = 0;
+					foreach($groups_info as $context=>$groups)
+					{
+						$explode_groups = explode("#",$groups);
+						$ii = $ii + 1;
+						$tr_color = $this->nextmatchs->alternate_row_color($tr_color);
+						$varsuborg = Array(
+							'tr_color'					=> $tr_color,
+							'formname'					=> "form".$ii,
+							'formsubmit'				=> "document.form".$ii.".submit()",
+							'sector_name'				=> $explode_groups[0],
+							'sector_namedn'				=> $explode_groups[1],
+							'sector_namedn_completo'	=> $explode_groups[2],			
+						);					
+
+						$p->set_var($varsuborg);					
+						$p->parse('rows','row',True);
+					}
+				}
+			}
+
+			$p->pfp('out','list');
+		}
+
+		function report_users_group_setor_print()
+		{
+			$grouplist = trim($_POST[setor]);
+			$grouplist = trim(ereg_replace("-","",$grouplist));
+			$organizacao = trim($_POST[organizacao]);
+			$setordn = trim($_POST[setordn]);
+			$organizacaodn = trim($_POST[organizacaodn]);
+			$sectornamedncompleto = trim($_POST[sectornamedncompleto]);
+			$Psectornamedncompleto = trim($_POST[Psectornamedncompleto]);
+
+			if ($sectornamedncompleto=="" && $Psectornamedncompleto=="")
+			{			
+				$sectornamedncompleto = $organizacao;
+			}
+			else if ($sectornamedncompleto=="" && $Psectornamedncompleto <> "")
+			{
+				$sectornamedncompleto = $Psectornamedncompleto;
+			}
+			else
+			{
+				$sectornamedncompleto = $organizacao." | ".$sectornamedncompleto;
+			}
+
+			$data_atual = date("d/m/Y"); 
+			$titulo_system = $GLOBALS['phpgw_info']['apps']['reports1_0']['title'];
+			
+			$account_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
+			$acl = $this->functions->read_acl($account_lid);
+			$raw_context = $acl['raw_context'];
+			$contexts = $acl['contexts'];
+			foreach ($acl['contexts_display'] as $index=>$tmp_context)
+			{
+				$context_display .= $tmp_context;
+			}
+			// Verifica se o administrador tem acesso.
+			if (!$this->functions->check_acl($account_lid,'list_users'))
+			{
+				$GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/reports1_0/inc/access_denied.php'));
+			}
+
+			unset($GLOBALS['phpgw_info']['flags']['noheader']);
+			unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
+			$GLOBALS['phpgw_info']['flags']['app_header'] =  $GLOBALS['phpgw_info']['apps']['reports1_0']['title'].' - '.lang('report user');
+			$GLOBALS['phpgw']->common->phpgw_header();
+
+			$p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
+			$p->set_file(Array('accounts' => 'report_users_group_print.tpl'));
+			$p->set_block('accounts','body');
+			$p->set_block('accounts','rowpag');
+			$p->set_block('accounts','row');
+			$p->set_block('accounts','row_empty');
+			
+			$var = Array(
+				'bg_color'					=> $GLOBALS['phpgw_info']['theme']['bg_color'],
+				'th_bg'						=> $GLOBALS['phpgw_info']['theme']['th_bg'],
+				'subtitulo'					=> lang('reports title2'),
+				'subtitulo1'				=> $sectornamedncompleto,
+				'context'					=> $raw_context,
+				'titulo'					=> $titulo_system,
+				'data_atual'				=> $data_atual,				
+				'context_display'			=> $context_display,
+				'organizacaodn'				=> $organizacaodn,
+				'organizacao'				=> $organizacao,
+				'sector_name'				=> $grouplist,
+				'sector_namedn'				=> $setordn,
+				'imapDelimiter'				=> $_SESSION['phpgw_info']['expresso']['email_server']['imapDelimiter']
+			);
+
+			$p->set_var($var);
+			$p->set_var($this->functions->make_dinamic_lang($p, 'body'));
+
+			// ************ PAGINAÇÃO *******************************
+
+			// verifica se exixte usuarios no LDAP
+			$account_info = $this->functions->get_list_user_sector($setordn,$contexts,0);
+
+			if (!count($account_info))
+			{
+				$p->set_var('message',lang('No user found'));
+				$p->parse('rows','row_empty',True);
+			}
+			else if (count($account_info))
+			{ 
+				//url do paginador 
+				$url = '/index.php?menuaction=reports1_0.uireports_users.report_users_group_setor_print';
+
+				// **** Grupo de paginas ****
+				$gpag = $_POST[gpage];
+
+				$grupopage = 20;
+				
+				if (!$gpag){
+					$gpag  = 1;
+				}
+
+				// recebe o numero da pagina
+				$npag = $_POST[page];
+
+				// verifica se o get com o numero da pagina é nulo
+				if (!$npag)
+				{
+					$npag = 1;
+				}
+
+				// conta total dos registros
+				$numreg = count($account_info);
+				
+				// numero de registro por paginação
+				$numpage = 53;
+				
+				$tp = ceil($numreg/$numpage);
+				$inicio = $page - 1;
+				$inicio = $inicio * $numpage;
+	
+				// valor maximo de paginação
+				$totalnpag =  (int)($tp/$grupopage);
+				$restonpag = $tp % $grupopage;
+
+				if ($restonpag > 0)
+				{
+					$maxtotalnpag = $totalnpag + 1;
+				}
+				else
+				{
+					$maxtotalnpag = $totalnpag;
+				}
+				// inicio fim para imprimir a paginação
+				if( $tp > $grupopage)
+				{
+					// inicio do for da paginação
+					if ($gpag <= ($totalnpag))
+					{
+						$fimgpg = $gpag * $grupopage;
+						$iniciogpg = (($fimgpg - $grupopage)+1);
+					}
+					else
+					{
+						$iniciogpg = (($gpag - 1) * $grupopage);
+						$fimgpg = $iniciogpg + $restonpag;
+					}
+				}
+				else
+				{
+					// inicio do for da paginação
+					$iniciogpg = 1;
+					$fimgpg =  $tp;
+				}
+
+				// Imprime valores de contagen de registro e pagina
+				$p->set_var('cont_user',$numreg);
+				$p->set_var('cont_page',$tp);
+				$p->set_var('page_now',$npag);
+
+				// ********** busca no LDAP as informação paginada e imprime ****************
+				$paginas = $this->functions->Paginate_user('accounts',$setordn,$contexts,'cn','asc',$npag,$numpage);
+
+				$tmpp = array();
+
+				while (list($null,$accountp) = each($paginas))
+				{
+					$tmpp[$accountp['uid'][0]]['account_id']	 = $accountp['uidNumber'][0]; 
+					$tmpp[$accountp['uid'][0]]['account_lid'] = $accountp['uid'][0];
+					$tmpp[$accountp['uid'][0]]['account_cn']	 = $accountp['cn'][0];
+					$tmpp[$accountp['uid'][0]]['account_phone']	 = $accountp['telephoneNumber'][0];
+					$tmpp[$accountp['uid'][0]]['account_status']= $accountp['accountStatus'][0];
+					$tmpp[$accountp['uid'][0]]['account_mail']= $accountp['mail'][0];
+					$sortp[] = $accountp['uid'][0];
+					if (count($sortp))
+					{
+						natcasesort($sortp);
+						foreach ($sortp as $user_uidp)
+						$returnp[$user_uidp] = $tmpp[$user_uidp];
+					}
+				}
+
+				while (list($null,$accountr) = each($returnp))
+				{
+					$this->nextmatchs->template_alternate_row_color($p);
+
+					$varr = array(
+						'row_loginid'	=> $accountr['account_lid'],
+						'row_cn'		=> $accountr['account_cn'],
+						'row_status'	=> $accountr['account_status'] == 'active' ? '<font color="#0033FF">Ativado</font> ' : '<font color="#FF0000">Desativado</font>',
+						'row_phone'		=> (!$accountr['account_phone'] ? '-' : $accountr['account_phone']),
+						'row_mail'		=> (!$accountr['account_mail'] ? '<font color=red>Sem E-mail</font>' : $accountr['account_mail'])
+					);
+					
+					$p->set_var($varr);
+	
+					$p->parse('rows','row',True);
+				}
+				// ********************** Fim ****************************
+
+				// grupo de pagina anteriores
+				if ($gpag > 1)
+				{
+					$gpaga = $gpag - 1;
+					$varp = Array(
+						'paginat'	=> 	"<form name='anterior' method='POST' action='$url'>
+						<input type='hidden' name='setor' value='$grouplist'>
+						<input type='hidden' name='organizacao' value='$organizacao'>
+						<input type='hidden' name='setordn' value='$setordn'>
+						<input type='hidden' name='organizacaodn' value='$organizacaodn'>
+						<input type='hidden' name='page' value='$npag'>
+						<input type='hidden' name='gpage' value='$gpaga'>
+						<input type='hidden' name='Psectornamedncompleto' value='$sectornamedncompleto'>
+						<div style='float:left;' onClick='document.anterior.submit()'><a href='#'>".lang('Previous Pages')."<<&nbsp;&nbsp;&nbsp;</a></div></form>"
+					);
+					$p->set_var($varp);						
+	
+						$p->parse('pages','rowpag',True);
+				}
+				// **** FIM *******
+
+				// imprime a paginação
+				if ($fimgpg > 1)
+				{
+					for($x = $iniciogpg; $x <= $fimgpg; $x++)
+					{
+						$varp = Array(
+							'paginat'	=>  "<form name='form".$x."' method='POST' action='$url'>
+							<input type='hidden' name='setor' value='$grouplist'>
+							<input type='hidden' name='organizacao' value='$organizacao'>
+							<input type='hidden' name='setordn' value='$setordn'>
+							<input type='hidden' name='organizacaodn' value='$organizacaodn'>
+							<input type='hidden' name='page' value='$x'>
+							<input type='hidden' name='gpage' value='$gpag'>
+							<input type='hidden' name='Psectornamedncompleto' value='$sectornamedncompleto'>
+							<div style='float:left;' onClick='document.form".$x.".submit()'><a href='#'>$x&nbsp;</a></div></form>"
+						);
+
+						$p->set_var($varp);						
+	
+						$p->parse('pages','rowpag',True);
+					}
+				}
+		
+				// proximo grupo de pagina
+				if ($gpag < $maxtotalnpag && $maxtotalnpag > 0) 
+				{
+					$gpagp = $gpag + 1;
+					$varp = Array(
+						'paginat'	=>  "<form name='proximo' method='POST' action='$url'>
+						<input type='hidden' name='setor' value='$grouplist'>
+						<input type='hidden' name='organizacao' value='$organizacao'>
+						<input type='hidden' name='setordn' value='$setordn'>
+						<input type='hidden' name='organizacaodn' value='$organizacaodn'>
+						<input type='hidden' name='page' value='$npag'>
+						<input type='hidden' name='gpage' value='$gpagp'>
+						<input type='hidden' name='Psectornamedncompleto' value='$sectornamedncompleto'>
+						<div style='float:left;' onClick='document.proximo.submit()'><a href='#'>&nbsp;&nbsp;&nbsp;>>".lang('Next Page')."</a></div></form>"
+					);
+					$p->set_var($varp);						
+
+					$p->parse('pages','rowpag',True);
+				}
+
+			// ************************* FIM PAGINAÇÃO ***********************							
+			}
+
+			$p->pfp('out','body');
+		}
+
+		function get_user_info($userdn,$usercontexts,$usersizelimit)
+		{
+			$user_info = $this->functions->Paginate_user('accounts',$setordn,$contexts,'cn','asc',$npag,$numpage);
+
+			return $user_info;
+		}
+
+		function css()
+		{
+			$appCSS = 
+			'th.activetab
+			{
+				color:#000000;
+				background-color:#D3DCE3;
+				border-top-width : 1px;
+				border-top-style : solid;
+				border-top-color : Black;
+				border-left-width : 1px;
+				border-left-style : solid;
+				border-left-color : Black;
+				border-right-width : 1px;
+				border-right-style : solid;
+				border-right-color : Black;
+				font-size: 12px;
+				font-family: Tahoma, Arial, Helvetica, sans-serif;
+			}
+			
+			th.inactivetab
+			{
+				color:#000000;
+				background-color:#E8F0F0;
+				border-bottom-width : 1px;
+				border-bottom-style : solid;
+				border-bottom-color : Black;
+				font-size: 12px;
+				font-family: Tahoma, Arial, Helvetica, sans-serif;				
+			}
+			
+			.td_left {border-left:1px solid Gray; border-top:1px solid Gray; border-bottom:1px solid Gray;}
+			.td_right {border-right:1px solid Gray; border-top:1px solid Gray; border-bottom:1px solid Gray;}
+			
+			div.activetab{ display:inline; }
+			div.inactivetab{ display:none; }';
+			
+			return $appCSS;
+		}
+
+	}
+?>
Index: /branches/2.2/reports1_0/templates/default/report_users_group_print.tpl
===================================================================
--- /branches/2.2/reports1_0/templates/default/report_users_group_print.tpl	(revision 3472)
+++ /branches/2.2/reports1_0/templates/default/report_users_group_print.tpl	(revision 3472)
@@ -0,0 +1,147 @@
+<!-- BEGIN body -->
+<style type="text/css">
+.myBox
+{
+    margin: 24px 0px 0px 0px;
+    border: 0px solid #ffffff;
+    color: #000000;
+    width: 99%;
+    padding: 20px;
+    text-align: left;
+    background-color: #ffffff;
+    border: 3px solid #ffffff;
+
+
+}
+
+.myBox2
+{
+    margin: 24px 0px 0px 0px;
+    border: 0px solid #ffffff;
+    width: 99%;
+    padding: 5px;
+    text-align: left;
+    background-color: #ECECE5;
+    border: 3px solid #ECECE5;
+}
+
+#loader{
+position:absolute;
+width:100%;
+height:600px;
+}
+
+.info{
+width:100px;
+float:left;
+margin-right:25%;
+margin-top: 300px;
+}
+
+.style1 {
+	font-size: 20px;
+	font-weight: bold;
+	color: #0000FF;
+}
+.style2 {
+	font-size: 18px
+	font-weight: bold;
+}
+.style4 {color: #000000}
+
+.style6 {
+	font-size: 12px;
+	font-weight: bold;
+	color: #0000FF;
+}
+</style>
+ <div id="conteudo"> <!-- Elemento camufla o contéudo até que todas as tags de imagens sejam carregadas -->
+<input type="hidden" id="accounts_form_imapDelimiter" value="{imapDelimiter}">
+{error_messages}
+<p>
+   <div align="center">
+		<table width="90%"  border="0">
+			<tr>
+			  <td colspan="2" align="left">
+			  	<div align="right" style="float:right">
+					<form name="back" method="post" action="../index.php?menuaction=reports1_0.uireports_users.report_users_group">
+			  	    	<input type="hidden" name="organizacaodn" value="{organizacaodn}">
+			  	    	<input type="button" value="{lang_back}" onClick="document.back.submit()">
+			      </form>
+	            </div>
+			  </td>
+		      <td width="9%" align="left">				  
+				  <div align="right" style="float:left">
+					<form action="./index.php?menuaction=reports1_0.uireports_users.report_users_print_pdf" method="post" name="pdf" target="_blank">
+				      <input name="button" type="button" onClick="document.pdf.submit()" value="Imprimir">
+				      <input type="hidden" name="setor" value="{sector_name}">
+				      <input type="hidden" name="setordn" value="{sector_namedn}">			
+				      <input type="hidden" name="subtitulo" value="{subtitulo1}">			
+				    </form>		      
+			      </div>
+		  </tr>
+        </table>
+		<table border="0" width="90%">
+			<tr>
+			  <td colspan="3" align="left"><div align="center" class="style1">{subtitulo}</div><br></td>
+	      </tr>
+			<tr>
+			  <td colspan="3" align="left"><div align="center" class="style6">{subtitulo1}</div><br></td>
+	      </tr>
+			<tr>
+			  <td width="25%" align="left"><div align="left" class="style2">{lang_report date}:{data_atual}</div></td>
+		      <td width="60%" align="left">{lang_total_users}&nbsp;<strong>{cont_user}</strong>			  </td>
+		      <td width="15%" align="left">
+			  <div align="right" class="style2">{titulo}</div></td>
+		  </tr>
+			<tr>
+			  <td colspan="3" align="left">
+				<table width="100%" border="0" align="center">
+					<tr bgcolor="{th_bg}">
+						<td colspan="2"></td>
+					</tr>
+					<tr>
+				  		<td width="50%">&nbsp;
+						</td>
+				  	    <td width="50%"><div align="right">{lang_page_now}:&nbsp;<strong>{page_now}</strong>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;{lang_total_pages}:&nbsp;<strong>{cont_page}</strong>&nbsp;&nbsp;<br></div></td>
+					</tr>
+			  </table>
+			</td>
+		  </tr>
+		</table>
+   </div>
+ 
+	<div align="center">
+		<table border="0" width="90%">
+			<tr>
+			  <td colspan="3" align="center">{pages}</td>
+		  </tr>
+			<tr bgcolor="{th_bg}">
+				<td width="20%">{lang_loginid}</td>
+				<td width="20%">{lang_name}</td>
+				<td width="30%">{lang_report email}</td>
+				<td width="15%">{lang_report phone}</td>
+				<td width="15%">{lang_status}</td>
+			</tr>
+			{rows}
+		</table>
+	</div>
+<!-- END body -->
+<!-- BEGIN rowpag -->
+    <b>{paginat}</b>
+<!-- END rowpag -->
+<!-- BEGIN row -->
+	<tr bgcolor="{tr_color}">
+		<td>{row_loginid}</td>
+		<td>{row_cn}</td>
+		<td>{row_mail}</td>
+		<td>{row_phone}</td>
+		<td>{row_status}</td>
+	</tr>
+<!-- END row -->
+<!-- BEGIN row_empty -->
+	<tr>
+		<td colspan="7" align="center"><font color="red"><b>{message}</b></font></td>
+	</tr>
+<!-- END row_empty -->
+</div>
Index: /branches/2.2/reports1_0/templates/default/report_users_group.tpl
===================================================================
--- /branches/2.2/reports1_0/templates/default/report_users_group.tpl	(revision 3472)
+++ /branches/2.2/reports1_0/templates/default/report_users_group.tpl	(revision 3472)
@@ -0,0 +1,102 @@
+<style type="text/css">
+#link a:hover { 
+	background-color:#ffffcc; 
+} 
+.style2 {
+	font-size: 16px;
+	font-family: Arial, Helvetica, sans-serif;
+}
+.style3 {color: #999999}
+</style>
+<!-- BEGIN list -->
+<p>
+<div align="center">
+   <table border="0" width="90%">
+    <tr>
+	 	<td align="left">
+			<div align="center" class="style2">{lang_reports_title1}:<br><br>&nbsp;<font color="blue">{context_display}</font><br><br>
+	 	    </div></td>
+ 	 </tr>
+    <tr>
+      <td align="left"><form method="POST" action="../index.php?menuaction=reports1_0.uireports_users.report_users_group">
+  {lang_search}:
+      <select name="organizacaodn">
+     			    {group_name}
+	  </select>
+      &nbsp;&nbsp;&nbsp;<input name="Enviar" type="submit" value="Enviar">
+      &nbsp;&nbsp;&nbsp;<input name="button" type="button" onClick="document.location.href='{back_url}'" value="{lang_back}">
+            </form>
+	  </td>
+     </tr>
+   </table>
+</div>
+ 
+ <div align="center">
+  <table border="0" width="90%">
+   <tr>
+	<form  name="org" method="POST" action="../index.php?menuaction=reports1_0.uireports_users.report_users_group_setor_print">
+    	<td width="89%">
+			<div align="center">
+				<font color="#0000FF"><strong><font size="3" face="Arial, Helvetica, sans-serif">
+    		   		<div onClick="document.org.submit()"><a href="#">{organizacao}</a></div>
+    			</font></strong></font>
+			</div>
+		</td>
+        <td width="9%">
+			<div align="right">
+   		   		  <div style="float:left" onClick="document.org.submit()" align="right">
+				  	<font color="#0000FF">
+						<strong>
+							<font size="2" face="Arial, Helvetica, sans-serif">
+								<a href="#">{all_user}</a>
+							</font>
+						</strong>
+					</font>
+				</div>
+					<strong>
+						<font size="2" face="Arial, Helvetica, sans-serif">
+							{total_user}
+						</font>
+					</strong>
+			</div>
+		</td>
+        <td width="2%">
+			<input type="hidden" name="setor" value="{organizacao}">
+			<input type="hidden" name="organizacao" value="{organizacao}">
+			<input type="hidden" name="setordn" value="{organizacaodn}">
+			<input type="hidden" name="organizacaodn" value="{organizacaodn}">
+		</td>
+	</form>										
+   </tr>
+   <tr bgcolor="{th_bg}">
+     <td colspan="3">{lang_groups_names}</td>
+   </tr>
+
+   {rows}
+
+  </table>
+ </div>
+<!-- END list -->
+
+<!-- BEGIN row -->
+   <tr bgcolor="{tr_color}">
+<form name="{formname}" method="POST" action="../index.php?menuaction=reports1_0.uireports_users.report_users_group_setor_print">
+    <td width="30%">
+		<div onClick="{formsubmit}">
+			<a href="#">{sector_name}</a>
+			<input type="hidden" name="setor" value="{sector_name}">
+			<input type="hidden" name="organizacao" value="{organizacao}">
+			<input type="hidden" name="setordn" value="{sector_namedn}">
+			<input type="hidden" name="organizacaodn" value="{organizacaodn}">
+			<input type="hidden" name="sectornamedncompleto" value="{sector_namedn_completo}">
+		</div>
+	</td>
+</form>
+   </tr>
+<!-- END row -->
+
+<!-- BEGIN row_empty -->
+	<tr>
+    	<td colspan="5" align="center"><font color="red"><b>{message}</b></font></td>
+	</tr>
+<!-- END row_empty -->
