RepFormat - Allows text formatting with simple instructions, mapping to a user-defined grid (the sheet).
use Data::Reporter::RepFormat;
$sheet = new Data::Reporter::RepFormat($cols, $rows);
$sheet->Move(0,3);
$sheet->Print('123');
$sheet->Out();
$sheet->Clear();
$sheet->Printf('%010d', 12);
$sheet->MVPrint(0, 3, '123');
$sheet->MVPrintf(0, 1, '%3.2f', 79.123);
$sheet->Nlines();
$sheet->Getline(20);
$sheet->Copy($source_sheet);
$sheet->Center('hello', 10);
my $pic = $sheet->ToPicture('$$$,999, 999', 1234.56);
$value = $sheet->Commify('1234567.89');
Creates a new RepFormat object. This function receives two parameters: columms and rows of the sheet.
Moves cursor to the indicated position
Print($string)
Puts $string at the current cursor position.
Out([$handle])
Moves the sheet information to target output. If $handle is not specified, then STDOUT is used.
Clear()
Clears the sheet
Prints using printf style format
Moves, then Prints
Moves, then Prints (using printf style format)
Nlines()
Returns the number of lines in the sheet, discarding the last blank lines
getX()
Returns current column position (X)
getY()
Returns current row position (Y)
Getline($index)
Returns the $index row
Copy($source_sheet)
Appends $source_sheet in $sheet
Returns a string with size = $size having $string centered in it. This function uses spaces to pad on both sides.
Commify($number);
Returns $number as a string with commas (123456789.90 -> 123,456,789.90)
*NOTE This function will be no longer supported in next releases. Use PrintP instead.
Puts a string at the current position with $string in the specified $picture.
There are two clases of pictures: strings and numerical
The following table list the text edit format characters:
| Character | Description |
| X | Use character in field |
| B | Insert blank |
| ~(tilde) | Skip character in field |
examples
| Mask | value | Display |
| (xxx)bxxx-xxxx | 2169910551 | (216) 991-0551 |
| xxx-xx-xxxx | 123456789 | 123-45-6789 |
| ~~xx~xx | ABCDEFGHIJ | CDFG |
The following table list the numerical edit format characters:
| Character | Description |
| 8 | Digit, zero fill to the rigth of |
| the decimal point trim leading | |
| blanks (left justify the number) | |
| 9 | Digit, zero fill to the right of |
| the decimal point, space fill to | |
| the left | |
| 0 | Digit, zero fill to the left |
| $ | Dollar sign, optionally floats to |
| the right | |
| B | Treated as a "9", but if a value |
| is zero, the field is converted | |
| to blanks | |
| V | Implied decimal point |
| MI | Entered at the end of the mask |
| causes a minus to be displayed at | |
| the right of the number | |
| PR | Entered at teh end of the mask |
| causes angle brackets (<>) to be | |
| displayed around the number if | |
| the number is negative | |
| PS | Entered at the end of the mask |
| causes parentheses to display | |
| around the number if the number | |
| is negative | |
| PF | Entered at the end of the mask |
| causes floating parentheses to | |
| display around teh number if | |
| the number is negative | |
| . | Decimal point |
| , | Comma |
examples
| Mask | value | Display |
| 999.99 | 34.568 | 34.57 |
| 9,999,999v99 | 123,456.78 | 123,456.78 |
| 8,888,888.88 | 123,456,78 | 123,456.78 |
| 9,999 | 1234 | 1,234 |
| 09999 | 1234 | 01234 |
| 9999 | 12345 | **** |
| 9999mi | -123 | 123- |
| 9999pr | -123 | < 123> |
| 9999ps | -123 | ( 123) |
| 9999pf | -123 | ( 123) |
Moves, then PrintP