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?
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?
....
$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;
}
}
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?
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.
Eu uso assim:
E, eu declaro esta função após criar as colunas da TDataGrid: