Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Como exibir o valor no formato BR no DataGrid? Os valores no meu Datagrid estão exibindo assim: 500.0 em vez de assim 500,00 Como eu resolvo isto? Eu já sem que no formulário de impressão eu devo colocar esta linha abaixo: $designer->Cell(2,0, number_format($obj->salario,2,",","."), 0, 0, 'R'); Só não sei mostrar o valor no formato brasileiro lá no datagrid, alguém sabe fazer isto?...
AM
Como exibir o valor no formato BR no DataGrid?  
Fechado
Os valores no meu Datagrid estão exibindo assim: 500.0 em vez de assim 500,00
Como eu resolvo isto?
Eu já sem que no formulário de impressão eu devo colocar esta linha abaixo:
$designer->Cell(2,0, number_format($obj->salario,2,",","."), 0, 0, 'R');

Só não sei mostrar o valor no formato brasileiro lá no datagrid, alguém sabe fazer isto?

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (5)


MS

....
$VALOR = new TDataGridColumn('VALOR_BOLETO', 'VALOR', 'right', 100);
...
$VALOR->setTransformer(array($this, 'format_VALOR'));
...

public function format_VALOR($VALOR, $object, $row)
{
if (PHP_SAPI !== 'cli') // just in the web version
{
if ( strtotime( $object->VENCIMENTO ) > strtotime( date('Y-m-d')) )
{
if ( $object->PAGO >=1){
return "<span style='color:green'>$VALOR</span>";
}
Else{
return "<span style='color:blue'>$VALOR</span>";
}
}
else
{
if ( $object->PAGO >=1){
return "<span style='color:green'>$VALOR</span>";
}
Else{
$row->style = "background: #FFF9A7";
return "<span style='color:red'>$VALOR</span>";
}

}
}
else
{
return $VALOR;
}
}
AM

Marcelo, estou tentando simplificar o máximo o valor monetário, sem cores, sem valores negativo e sem o R$ na frente do valor, dá uma olhada abaixo, quando eu digito o valor 500.00 ele funciona, ele transforma para 500,00. Mas quando eu digito 2500.00 ele exibe a mensagem de erro:
Fatal error: Call to undefined method AdiantiWidgetDatagridTDataGridColumn::setNumericMask() in C:wampwwwprocadempresasgratisSalarioappcontrolCadastoSalarioList.class.php on line 87

Na linha 87 tem isto: $this->datagrid->addColumn($id);

// creates a Datagrid
$this->datagrid = new TDataGrid;
$this->datagrid->setHeight(320);

// creates the datagrid columns
$id = new TDataGridColumn('id', 'Código', 'left', 7);
$nome = new TDataGridColumn('nome', 'Nome do Empregado', 'left', 250);
$salario = new TDataGridColumn('salario', 'Salário', 'right', 60);
$empresa = new TDataGridColumn('empresa', 'Nome da Empresa', 'left', 250);

$salario->setTransformer(array($this, 'format_VALOR'));

// add the columns to the DataGrid
$this->datagrid->addColumn($id);
$this->datagrid->addColumn($nome);
$this->datagrid->addColumn($salario);
$this->datagrid->addColumn($empresa);

============================================
function format_VALOR($val)
{
$result = number_format($val,2,',','.');
return $result;
}

Você quer que eu poste o código completo para vc entender melhor, ou vc já tem alguma ideia de qual é o erro?
AM

Marcelo, este exemplo que vc postou, está apenas mostrando como chamar uma função que faz a transformação de alguma coisa, data, moeda , qualquer coisa, só que dentro desta função que vc postou, não tem nada de transformar um valor do padrão americano para o padrão brasileiro.
RC

Eu uso assim:

  1. <?php
  2. /**
  3.      * method formataMoeda()
  4.      * formata valores da TDataGrid com 2 decimais no padrao Brasil
  5.      * @param $valor é o valor da coluna que se quer formatar
  6.      * @param $objeto é o stdClass com os dados que estão representados na linha da datagrid
  7.      * @param $row é a própria linha da datagrid
  8.      * @returns $valor retorna o $valor formatado
  9.      */
  10.     public function formataMoeda($valor$objeto$row)
  11.     {
  12.         if($valor)
  13.         {
  14.             return number_format($valor2',''.');
  15.         }        
  16.     }
  17. ?>
RC

E, eu declaro esta função após criar as colunas da TDataGrid:

  1. <?php
  2. //cria as colunas da datagrid...
  3.  $valor               $this->datagrid->addQuickColumn('valor mensal R$''valor''right'100);
  4.  $valor->setTransformer( array('Uteis''formataMoeda') );
  5. ?>