You've already forked lazarus-ccr
fpspreadsheet: Add description of PAGESETUP record to BIFFExplorer
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3232 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -68,6 +68,7 @@ type
|
|||||||
procedure ShowNote;
|
procedure ShowNote;
|
||||||
procedure ShowNumberCell;
|
procedure ShowNumberCell;
|
||||||
procedure ShowObj;
|
procedure ShowObj;
|
||||||
|
procedure ShowPageSetup;
|
||||||
procedure ShowPalette;
|
procedure ShowPalette;
|
||||||
procedure ShowPane;
|
procedure ShowPane;
|
||||||
procedure ShowPassword;
|
procedure ShowPassword;
|
||||||
@ -335,6 +336,8 @@ begin
|
|||||||
ShowHideObj;
|
ShowHideObj;
|
||||||
$0092:
|
$0092:
|
||||||
ShowPalette;
|
ShowPalette;
|
||||||
|
$00A1:
|
||||||
|
ShowPageSetup;
|
||||||
$00C1:
|
$00C1:
|
||||||
ShowMMS;
|
ShowMMS;
|
||||||
$009C:
|
$009C:
|
||||||
@ -2549,6 +2552,133 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TBIFFGrid.ShowPageSetup;
|
||||||
|
var
|
||||||
|
numBytes: Integer;
|
||||||
|
w: Word;
|
||||||
|
s: String;
|
||||||
|
dbl: Double;
|
||||||
|
begin
|
||||||
|
if FFormat in [sfExcel5, sfExcel8] then RowCount := FixedRows + 11
|
||||||
|
else RowCount := FixedRows + 6;
|
||||||
|
|
||||||
|
numbytes := 2;
|
||||||
|
Move(FBuffer[FBufferIndex], w, numBytes);
|
||||||
|
w := WordLEToN(w);
|
||||||
|
if Row = FCurrRow then begin
|
||||||
|
FDetails.Add('Paper size:'#13);
|
||||||
|
FDetails.Add(Format('%d - %s', [w, PaperSizeName(w)]));
|
||||||
|
end;
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, IntToStr(w), 'Paper size');
|
||||||
|
|
||||||
|
Move(FBuffer[FBufferIndex], w, numBytes);
|
||||||
|
w := WordLEToN(w);
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, IntToStr(w), 'Scaling factor in percent');
|
||||||
|
|
||||||
|
Move(FBuffer[FBufferIndex], w, numbytes);
|
||||||
|
w := WordLETON(w);
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, IntToStr(w), 'Start page number');
|
||||||
|
|
||||||
|
Move(FBuffer[FBufferIndex], w, numbytes);
|
||||||
|
w := WordLETON(w);
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, IntToStr(w),
|
||||||
|
'Fit worksheet width to this number of pages (0 = use as many as needed)');
|
||||||
|
|
||||||
|
Move(FBuffer[FBufferIndex], w, numbytes);
|
||||||
|
w := WordLETON(w);
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, IntToStr(w),
|
||||||
|
'Fit worksheet height to this number of pages (0 = use as many as needed)');
|
||||||
|
|
||||||
|
if FFormat = sfExcel4 then begin
|
||||||
|
Move(FBuffer[FBufferIndex], w, numbytes);
|
||||||
|
w := WordLETON(w);
|
||||||
|
if Row = FCurrRow then begin
|
||||||
|
FDetails.Add('Option flags:'#13);
|
||||||
|
if w and $0001 = 0
|
||||||
|
then FDetails.Add('Bit $0001 = 0: Print pages in columns')
|
||||||
|
else FDetails.Add('Bit $0001 = 1: Print pages in rows');
|
||||||
|
if w and $0002 = 0
|
||||||
|
then FDetails.add('Bit $0002 = 0: Landscape')
|
||||||
|
else FDetails.Add('Bit $0002 = 1: Portrait');
|
||||||
|
if w and $0004 = 0
|
||||||
|
then FDetails.Add('Bit $0004 = 0: Paper size, scaling factor, and paper orientation ' +
|
||||||
|
'(portrait/landscape) ARE initialised')
|
||||||
|
else FDetails.Add('Bit $0004 = 1: Paper size, scaling factor, and paper orientation ' +
|
||||||
|
'(portrait/landscape) are NOT initialised');
|
||||||
|
if w and $0008 = 0
|
||||||
|
then FDetails.Add('Bit $0008 = 0: Print colored')
|
||||||
|
else FDetails.add('Bit $0008 = 1: Print black and white');
|
||||||
|
end;
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, Format('$%.4x (%d)', [w, w]),
|
||||||
|
'Option flags');
|
||||||
|
end else
|
||||||
|
if (FFormat in [sfExcel5, sfExcel8]) then begin
|
||||||
|
Move(FBuffer[FBufferIndex], w, numBytes);
|
||||||
|
w := WordLEToN(w);
|
||||||
|
if Row = FCurrRow then begin
|
||||||
|
FDetails.Add('Option flags:'#13);
|
||||||
|
if w and $0001 = 0
|
||||||
|
then FDetails.Add('Bit $0001 = 0: Print pages in columns')
|
||||||
|
else FDetails.Add('Bit $0001 = 1: Print pages in rows');
|
||||||
|
if w and $0002 = 0
|
||||||
|
then FDetails.add('Bit $0002 = 0: Landscape')
|
||||||
|
else FDetails.Add('Bit $0002 = 1: Portrait');
|
||||||
|
if w and $0004 = 0
|
||||||
|
then FDetails.Add('Bit $0004 = 0: Paper size, scaling factor, and paper orientation ' +
|
||||||
|
'(portrait/landscape) ARE initialised')
|
||||||
|
else FDetails.Add('Bit $0004 = 1: Paper size, scaling factor, and paper orientation ' +
|
||||||
|
'(portrait/landscape) are NOT initialised');
|
||||||
|
if w and $0008 = 0
|
||||||
|
then FDetails.Add('Bit $0008 = 0: Print colored')
|
||||||
|
else FDetails.add('Bit $0008 = 1: Print black and white');
|
||||||
|
if w and $0010 = 0
|
||||||
|
then FDetails.Add('Bit $0010 = 0: Default print quality')
|
||||||
|
else FDetails.Add('Bit $0010 = 1: Draft quality');
|
||||||
|
if w and $0020 = 0
|
||||||
|
then FDetails.Add('Bit $0020 = 0: Do NOT print cell notes')
|
||||||
|
else FDetails.Add('Bit $0020 = 0: Print cell notes');
|
||||||
|
if w and $0040 = 0
|
||||||
|
then FDetails.Add('Bit $0040 = 0: Use paper orientation (portrait/landscape) flag abov')
|
||||||
|
else FDetails.Add('Bit $0040 = 1: Use default paper orientation (landscape for chart sheets, portrait otherwise)');
|
||||||
|
if w and $0080 = 0
|
||||||
|
then FDetails.Add('Bit $0080 = 0: Automatic page numbers')
|
||||||
|
else FDetails.Add('Bit $0080 = 1: Use start page number above');
|
||||||
|
if w and $0200 = 0
|
||||||
|
then FDetails.Add('Bit $0200 = 0: Print notes as displayed')
|
||||||
|
else FDetails.Add('Bit $0200 = 1: Print notes at end of sheet');
|
||||||
|
case (w and $0C00) shr 10 of
|
||||||
|
0: FDetails.Add('Bit $0C00 = 0: Print errors as displayed');
|
||||||
|
1: FDetails.add('Bit $0C00 = 1: Do not print errors');
|
||||||
|
2: FDetails.Add('Bit $0C00 = 2: Print errors as "--"');
|
||||||
|
3: FDetails.Add('Bit $0C00 = 4: Print errors as "#N/A"');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, Format('$%.4x (%d)', [w, w]),
|
||||||
|
'Option flags');
|
||||||
|
|
||||||
|
Move(FBuffer[FBufferIndex], w, numBytes);
|
||||||
|
w := WordLEToN(w);
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, IntToStr(w), 'Print resolution in dpi');
|
||||||
|
|
||||||
|
Move(FBuffer[FBufferIndex], w, numBytes);
|
||||||
|
w := WordLEToN(w);
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, IntToStr(w), 'Vertical print resolution in dpi');
|
||||||
|
|
||||||
|
numBytes := 8;
|
||||||
|
Move(FBuffer[FBufferIndex], dbl, numBytes);
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, FloatToStr(dbl), 'Header margin');
|
||||||
|
|
||||||
|
Move(FBuffer[FBufferIndex], dbl, numBytes);
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, FloatToStr(dbl), 'Footer margin');
|
||||||
|
|
||||||
|
numBytes := 2;
|
||||||
|
Move(FBuffer[FBufferIndex], w, numBytes);
|
||||||
|
w := WordLEToN(w);
|
||||||
|
ShowInRow(FCurrRow, FBufferIndex, numBytes, IntToStr(w), 'Number of copies to print');
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TBIFFGrid.ShowPalette;
|
procedure TBIFFGrid.ShowPalette;
|
||||||
var
|
var
|
||||||
numBytes: Integer;
|
numBytes: Integer;
|
||||||
|
@ -9,6 +9,7 @@ uses
|
|||||||
|
|
||||||
function BOFName(ACode: Word): String;
|
function BOFName(ACode: Word): String;
|
||||||
function CodePageName(AID: Word): String;
|
function CodePageName(AID: Word): String;
|
||||||
|
function PaperSizeName(ACode: Word): String;
|
||||||
function RecTypeName(ARecType: Word): String;
|
function RecTypeName(ARecType: Word): String;
|
||||||
function SheetFuncName(AIndex: Word): String;
|
function SheetFuncName(AIndex: Word): String;
|
||||||
function ErrorCodeName(ACode: Byte): String;
|
function ErrorCodeName(ACode: Byte): String;
|
||||||
@ -87,6 +88,97 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function PaperSizeName(ACode: Word): String;
|
||||||
|
begin
|
||||||
|
case ACode of
|
||||||
|
0: Result := 'Undefined';
|
||||||
|
1: Result := 'Letter (8.5" x 11")';
|
||||||
|
2: Result := 'Letter small (8.5" x 11")';
|
||||||
|
3: Result := 'Tabloid (11" x 17")';
|
||||||
|
4: Result := 'Ledger (17" x 11")';
|
||||||
|
5: Result := 'Legal (8.5" x 14")';
|
||||||
|
6: Result := 'Statement (5.5" x 8.5")';
|
||||||
|
7: Result := 'Executive (7.25" x 10.5")';
|
||||||
|
8: Result := 'A3 (297mm x 420mm)';
|
||||||
|
9: Result := 'A4 (210mm x 297mm)';
|
||||||
|
10: Result := 'A4 small (210mm x 297mm)';
|
||||||
|
11: Result := 'A5 (148mm x 210mm)';
|
||||||
|
12: Result := 'B4 (JIS) (257mm x 364mm)';
|
||||||
|
13: Result := 'B5 (JIS) (182mm x 257mm)';
|
||||||
|
14: Result := 'Folio (8.5" x 13")';
|
||||||
|
15: Result := 'Quarto (215mm x 275mm)';
|
||||||
|
16: Result := '10x14 (10" x 14")';
|
||||||
|
17: Result := '11x17 (11" x 17")';
|
||||||
|
18: Result := 'Note (8.5" x 11")';
|
||||||
|
19: Result := 'Envelope #9 (3 7/8" x 8 7/8")';
|
||||||
|
20: Result := 'Envelope #10 (4 1/8" x 9 1/2")';
|
||||||
|
21: Result := 'Envelope #11 (4 1/2" x 10 3/8")';
|
||||||
|
22: Result := 'Envelope #12 (4 3/4" x 11")';
|
||||||
|
23: Result := 'Envelope #14 (5" x 11.5")';
|
||||||
|
24: Result := 'C (17" x 22")';
|
||||||
|
25: Result := 'D (22" x 34")';
|
||||||
|
26: Result := 'E (34" x 44")';
|
||||||
|
27: Result := 'Envelope DL (110mm x 220mm)';
|
||||||
|
28: Result := 'Envelope C5 (162mm x 229mm)';
|
||||||
|
29: Result := 'Envelope C3 (324mm x 458mm)';
|
||||||
|
30: Result := 'Envelope C4 (229mm x 324mm)';
|
||||||
|
31: Result := 'Envelope C6 (114mm x 162mm)';
|
||||||
|
32: Result := 'Envelope C6/C5 (114mm x 229mm)';
|
||||||
|
33: Result := 'B4 (ISO) (250mm x 353mm)';
|
||||||
|
34: Result := 'B5 (ISO) (176mm x 250mm)';
|
||||||
|
35: Result := 'B6 (ISO) (125mm x 176mm)';
|
||||||
|
36: Result := 'Envelope Italy (110mm x 230mm)';
|
||||||
|
37: Result := 'Envelope Monarch (3 7/8" x 7 1/2")';
|
||||||
|
38: Result := '6 3/4 Envelope (3 5/8" x 6 1/2")';
|
||||||
|
39: Result := 'US Standard Fanfold (14 7/8" x 11")';
|
||||||
|
40: Result := 'German Std. Fanfold (8.5" x 12")';
|
||||||
|
41: Result := 'German Legal Fanfold (8.5" x 13")';
|
||||||
|
42: Result := 'B4 (ISO) (250mm x 353mm)';
|
||||||
|
43: Result := 'Japanese Postcard (100mm x 148mm)';
|
||||||
|
44: Result := '9x11 (9" x 11")';
|
||||||
|
45: Result := '10x11 (10" x 11")';
|
||||||
|
46: Result := '15x11 (15" x 11")';
|
||||||
|
47: Result := 'Envelope Invite (220mm x 220mm)';
|
||||||
|
48: Result := 'Undefined';
|
||||||
|
49: Result := 'Undefined';
|
||||||
|
50: Result := 'Letter Extra (9.5" x 12")';
|
||||||
|
51: Result := 'Legal Extra (9.5" x 15")';
|
||||||
|
52: Result := 'Tabloid Extra (11 11/16" x 18")';
|
||||||
|
53: Result := 'A4 Extra (235mm x 322mm)';
|
||||||
|
54: Result := 'Letter Transverse (8.5" x 11")';
|
||||||
|
55: Result := 'A4 Transverse (210mm x 297mm)';
|
||||||
|
56: Result := 'Letter Extra Transv. (9.5" x 12")';
|
||||||
|
57: Result := 'Super A/A4 (227mm x 356mm)';
|
||||||
|
58: Result := 'Super B/A3 (305mm x 487mm)';
|
||||||
|
59: Result := 'Letter Plus (8.5" x 12 11/16")';
|
||||||
|
60: Result := 'A4 Plus (210mm x 330mm)';
|
||||||
|
61: Result := 'A5 Transverse (148mm x 210mm)';
|
||||||
|
62: Result := 'B5 (JIS) Transverse (182mm x 257mm)';
|
||||||
|
63: Result := 'A3 Extra (322mm x 445mm)';
|
||||||
|
64: Result := 'A5 Extra (174mm x 235mm)';
|
||||||
|
65: Result := 'B5 (ISO) Extra (201mm x 276mm)';
|
||||||
|
66: Result := 'A2 (420mm s 594mm)';
|
||||||
|
67: Result := 'A3 Transverse (297mm x 420mm)';
|
||||||
|
68: Result := 'A3 Extra Transverse (322mm x 445mm)';
|
||||||
|
69: Result := 'Dbl. Japanese Postcard (200mm x 148mm)';
|
||||||
|
70: Result := 'A6 (105mm x 148mm)';
|
||||||
|
75: Result := 'Letter Rotated (11" x 8.5")';
|
||||||
|
76: Result := 'A3 Rotated (420mm x 297mm)';
|
||||||
|
77: Result := 'A4 Rotated (297mm x 210mm)';
|
||||||
|
78: Result := 'A5 Rotated (210mm x 148mm)';
|
||||||
|
79: Result := 'B4 (JIS) Rotated (364mm x 257mm)';
|
||||||
|
80: Result := 'B5 (JIS) Rotated (257mm x 182mm)';
|
||||||
|
81: Result := 'Japanese Postcard Rot. (148mm x 100mm)';
|
||||||
|
82: Result := 'Dbl. Jap. Postcard Rot. (148mm x 200mm)';
|
||||||
|
83: Result := 'A6 Rotated (148mm x 105mm)';
|
||||||
|
88: Result := 'B6 (JIS) (128mm x 182mm)';
|
||||||
|
89: Result := 'B6 (JIS) Rotated (182mm x 128mm)';
|
||||||
|
90: Result := '2x11 (12" x 11")';
|
||||||
|
else Result := '(unknown)';
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function RecTypeName(ARecType: Word): String;
|
function RecTypeName(ARecType: Word): String;
|
||||||
begin
|
begin
|
||||||
case ARecType of
|
case ARecType of
|
||||||
@ -192,7 +284,7 @@ begin
|
|||||||
$009D: Result := 'AUTOFILTERINFO: Drop-down arrow count';
|
$009D: Result := 'AUTOFILTERINFO: Drop-down arrow count';
|
||||||
$009E: Result := 'AUTOFILTER: AutoFilter data';
|
$009E: Result := 'AUTOFILTER: AutoFilter data';
|
||||||
$00A0: Result := 'SCL: Window zoom magnification';
|
$00A0: Result := 'SCL: Window zoom magnification';
|
||||||
$00A1: Result := 'SETUP: PageSetup';
|
$00A1: Result := 'PAGESETUP: PageSetup';
|
||||||
$00A9: Result := 'COORDLIST: Polygon object vertex coordinates';
|
$00A9: Result := 'COORDLIST: Polygon object vertex coordinates';
|
||||||
$00AB: Result := 'GCW: Global column width flags';
|
$00AB: Result := 'GCW: Global column width flags';
|
||||||
$00AE: Result := 'SCENMAN: Scenario output data';
|
$00AE: Result := 'SCENMAN: Scenario output data';
|
||||||
|
Reference in New Issue
Block a user