0000: 2f 2f 76 61 6c 75 65 77 6f 72 6b 2e 68 70 70 0d //valuework.hpp.
0010: 0a 23 70 72 61 67 6d 61 20 6f 6e 63 65 0d 0a 0d .#pragma once...
0020: 0a 65 6e 75 6d 20 54 79 70 65 73 31 43 7b 0d 0a .enum Types1C{..
0030: 09 74 79 70 65 55 6e 64 65 66 69 6e 65 64 20 20 .typeUndefined
0040: 20 20 20 20 20 3d 20 30 2c 0d 0a 09 74 79 70 65 = 0,...type
0050: 4e 75 6d 62 65 72 20 20 20 20 20 20 20 20 20 20 Number
0060: 3d 20 31 2c 0d 0a 09 74 79 70 65 53 74 72 69 6e = 1,...typeStrin
0070: 67 20 20 20 20 20 20 20 20 20 20 3d 20 32 2c 0d g = 2,.
0080: 0a 09 74 79 70 65 44 61 74 65 20 20 20 20 20 20 ..typeDate
0090: 20 20 20 20 20 20 3d 20 33 2c 0d 0a 09 74 79 70 = 3,...typ
00a0: 65 45 6e 75 6d 20 20 20 20 20 20 20 20 20 20 20 eEnum
00b0: 20 3d 20 31 30 2c 0d 0a 09 74 79 70 65 52 65 66 = 10,...typeRef
00c0: 65 72 65 6e 63 65 20 20 20 20 20 20 20 3d 20 31 erence = 1
00d0: 31 2c 0d 0a 09 74 79 70 65 44 6f 63 75 6d 65 6e 1,...typeDocumen
00e0: 74 20 20 20 20 20 20 20 20 3d 20 31 32 2c 0d 0a t = 12,..
00f0: 09 74 79 70 65 43 61 6c 65 6e 64 61 72 20 20 20 .typeCalendar
0100: 20 20 20 20 20 3d 20 31 33 2c 0d 0a 09 74 79 70 = 13,...typ
0110: 65 43 61 6c 63 4b 69 6e 64 20 20 20 20 20 20 20 eCalcKind
0120: 20 3d 20 31 34 2c 0d 0a 09 74 79 70 65 41 63 63 = 14,...typeAcc
0130: 6f 75 6e 74 20 20 20 20 20 20 20 20 20 3d 20 31 ount = 1
0140: 35 2c 0d 0a 09 74 79 70 65 53 75 62 63 4b 69 6e 5,...typeSubcKin
0150: 64 20 20 20 20 20 20 20 20 3d 20 31 36 2c 0d 0a d = 16,..
0160: 09 74 79 70 65 43 68 61 72 74 4f 66 41 63 63 20 .typeChartOfAcc
0170: 20 20 20 20 20 3d 20 31 37 2c 0d 0a 7d 3b 0d 0a = 17,..};..
0180: 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 74 69 63 20 ..inline static
0190: 44 57 4f 52 44 20 73 74 72 32 69 64 28 63 6f 6e DWORD str2id(con
01a0: 73 74 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72 st unsigned char
01b0: 2a 20 70 74 72 2c 20 44 57 4f 52 44 20 6c 65 6e * ptr, DWORD len
01c0: 29 0d 0a 7b 0d 0a 09 44 57 4f 52 44 20 69 64 20 )..{...DWORD id
01d0: 3d 20 30 3b 0d 0a 09 77 68 69 6c 65 28 6c 65 6e = 0;...while(len
01e0: 2d 2d 29 0d 0a 09 7b 0d 0a 09 09 44 57 4f 52 44 --)...{....DWORD
01f0: 20 73 20 3d 20 28 44 57 4f 52 44 29 2a 70 74 72 s = (DWORD)*ptr
0200: 2b 2b 3b 0d 0a 09 09 69 66 28 73 20 3e 3d 20 27 ++;....if(s >= '
0210: 41 27 29 0d 0a 09 09 09 69 64 20 3d 20 69 64 20 A').....id = id
0220: 2a 20 33 36 20 2b 20 73 20 2d 20 27 41 27 20 2b * 36 + s - 'A' +
0230: 20 31 30 3b 0d 0a 09 09 65 6c 73 65 20 69 66 28 10;....else if(
0240: 73 20 3e 3d 20 27 30 27 29 0d 0a 09 09 09 69 64 s >= '0').....id
0250: 20 3d 20 69 64 20 2a 20 33 36 20 2b 20 73 20 2d = id * 36 + s -
0260: 20 27 30 27 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75 '0';...}...retu
0270: 72 6e 20 69 64 3b 0d 0a 7d 0d 0a 0d 0a 69 6e 6c rn id;..}....inl
0280: 69 6e 65 20 73 74 61 74 69 63 20 44 57 4f 52 44 ine static DWORD
0290: 20 73 74 72 32 64 65 63 28 63 6f 6e 73 74 20 75 str2dec(const u
02a0: 6e 73 69 67 6e 65 64 20 63 68 61 72 2a 20 70 74 nsigned char* pt
02b0: 72 2c 20 44 57 4f 52 44 20 6c 65 6e 29 0d 0a 7b r, DWORD len)..{
02c0: 0d 0a 09 44 57 4f 52 44 20 69 64 20 3d 20 30 3b ...DWORD id = 0;
02d0: 0d 0a 09 77 68 69 6c 65 28 6c 65 6e 2d 2d 29 0d ...while(len--).
02e0: 0a 09 7b 0d 0a 09 09 44 57 4f 52 44 20 73 20 3d ..{....DWORD s =
02f0: 20 28 44 57 4f 52 44 29 2a 70 74 72 2b 2b 3b 0d (DWORD)*ptr++;.
0300: 0a 09 09 69 66 28 73 20 3e 3d 20 27 30 27 29 0d ...if(s >= '0').
0310: 0a 09 09 09 69 64 20 3d 20 69 64 20 2a 20 31 30 ....id = id * 10
0320: 20 2b 20 73 20 2d 20 27 30 27 3b 0d 0a 09 7d 0d + s - '0';...}.
0330: 0a 09 72 65 74 75 72 6e 20 69 64 3b 0d 0a 7d 0d ..return id;..}.
0340: 0a 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 74 69 63 ...inline static
0350: 20 76 6f 69 64 20 64 65 63 32 73 74 72 28 44 57 void dec2str(DW
0360: 4f 52 44 20 64 65 63 2c 20 75 6e 73 69 67 6e 65 ORD dec, unsigne
0370: 64 20 63 68 61 72 2a 20 70 74 72 2c 20 44 57 4f d char* ptr, DWO
0380: 52 44 20 6c 65 6e 29 0d 0a 7b 0d 0a 09 70 74 72 RD len)..{...ptr
0390: 20 2b 3d 20 6c 65 6e 3b 0d 0a 09 64 6f 20 0d 0a += len;...do ..
03a0: 09 7b 0d 0a 09 09 2a 2d 2d 70 74 72 20 3d 20 28 .{....*--ptr = (
03b0: 64 65 63 20 25 20 31 30 29 20 2b 20 27 30 27 3b dec % 10) + '0';
03c0: 0d 0a 09 09 64 65 63 20 2f 3d 20 31 30 3b 0d 0a ....dec /= 10;..
03d0: 09 7d 77 68 69 6c 65 28 64 65 63 29 3b 0d 0a 7d .}while(dec);..}
03e0: 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 74 69 ....inline stati
03f0: 63 20 76 6f 69 64 20 69 64 32 73 74 72 28 44 57 c void id2str(DW
0400: 4f 52 44 20 69 64 2c 20 75 6e 73 69 67 6e 65 64 ORD id, unsigned
0410: 20 63 68 61 72 2a 20 70 74 72 2c 20 44 57 4f 52 char* ptr, DWOR
0420: 44 20 6c 65 6e 29 0d 0a 7b 0d 0a 09 70 74 72 20 D len)..{...ptr
0430: 2b 3d 20 6c 65 6e 3b 0d 0a 09 64 6f 20 0d 0a 09 += len;...do ...
0440: 7b 0d 0a 09 09 44 57 4f 52 44 20 76 20 3d 20 69 {....DWORD v = i
0450: 64 20 25 20 33 36 3b 0d 0a 09 09 2a 2d 2d 70 74 d % 36;....*--pt
0460: 72 20 3d 20 76 20 3c 20 31 30 20 3f 20 76 20 2b r = v < 10 ? v +
0470: 20 27 30 27 20 3a 20 76 20 2d 20 31 30 20 2b 20 '0' : v - 10 +
0480: 27 41 27 3b 0d 0a 09 09 69 64 20 2f 3d 20 33 36 'A';....id /= 36
0490: 3b 0d 0a 09 7d 77 68 69 6c 65 28 69 64 29 3b 0d ;...}while(id);.
04a0: 0a 7d 0d 0a 0d 0a 0d 0a 65 6e 75 6d 20 54 79 70 .}......enum Typ
04b0: 65 4f 66 53 74 72 69 6e 67 20 7b 0d 0a 09 74 6f eOfString {...to
04c0: 73 39 20 3d 20 39 2c 0d 0a 09 74 6f 73 31 33 20 s9 = 9,...tos13
04d0: 3d 20 31 33 2c 0d 0a 09 74 6f 73 32 33 20 3d 20 = 13,...tos23 =
04e0: 32 33 0d 0a 7d 3b 0d 0a 0d 0a 74 65 6d 70 6c 61 23..};....templa
04f0: 74 65 3c 54 79 70 65 4f 66 53 74 72 69 6e 67 20 te<TypeOfString
0500: 74 6f 73 3e 0d 0a 73 74 72 75 63 74 20 56 61 6c tos>..struct Val
0510: 75 65 53 74 72 57 6f 72 6b 0d 0a 7b 0d 0a 09 69 ueStrWork..{...i
0520: 6e 6c 69 6e 65 20 73 74 61 74 69 63 20 76 6f 69 nline static voi
0530: 64 20 73 74 72 32 76 61 6c 28 43 56 61 6c 75 65 d str2val(CValue
0540: 2a 20 70 56 61 6c 75 65 2c 20 4c 50 43 53 54 52 * pValue, LPCSTR
0550: 20 73 74 72 2c 20 54 79 70 65 73 31 43 20 74 79 str, Types1C ty
0560: 70 65 20 3d 20 74 79 70 65 55 6e 64 65 66 69 6e pe = typeUndefin
0570: 65 64 2c 20 6c 6f 6e 67 20 6d 64 49 44 20 3d 20 ed, long mdID =
0580: 30 29 0d 0a 09 7b 0d 0a 09 09 63 68 61 72 20 74 0)...{....char t
0590: 65 73 74 5b 74 6f 73 20 3d 3d 20 74 6f 73 39 20 est[tos == tos9
05a0: 7c 7c 20 74 6f 73 20 3d 3d 20 74 6f 73 31 33 20 || tos == tos13
05b0: 7c 7c 20 74 6f 73 20 3d 3d 20 74 6f 73 32 33 20 || tos == tos23
05c0: 3f 20 31 20 3a 20 2d 31 5d 20 3d 20 7b 30 7d 3b ? 1 : -1] = {0};
05d0: 0d 0a 0d 0a 09 09 75 6e 73 69 67 6e 65 64 20 63 ......unsigned c
05e0: 68 61 72 2a 20 70 74 72 20 3d 20 28 75 6e 73 69 har* ptr = (unsi
05f0: 67 6e 65 64 20 63 68 61 72 2a 29 73 74 72 3b 0d gned char*)str;.
0600: 0a 09 09 0d 0a 09 09 69 66 28 74 6f 73 20 3d 3d .......if(tos ==
0610: 20 74 6f 73 32 33 29 0d 0a 09 09 7b 0d 0a 09 09 tos23)....{....
0620: 09 73 77 69 74 63 68 28 28 44 57 4f 52 44 29 2a .switch((DWORD)*
0630: 70 74 72 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 63 ptr).....{.....c
0640: 61 73 65 20 27 55 27 3a 0d 0a 09 09 09 09 72 65 ase 'U':......re
0650: 74 75 72 6e 3b 0d 0a 09 09 09 63 61 73 65 20 27 turn;.....case '
0660: 4e 27 3a 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09 N':......{......
0670: 09 73 74 61 74 69 63 20 43 4e 75 6d 65 72 69 63 .static CNumeric
0680: 20 6e 75 6d 3b 0d 0a 09 09 09 09 09 2a 70 56 61 num;.......*pVa
0690: 6c 75 65 20 3d 20 6e 75 6d 2e 46 72 6f 6d 53 74 lue = num.FromSt
06a0: 72 69 6e 67 28 73 74 72 20 2b 20 31 2c 20 4e 55 ring(str + 1, NU
06b0: 4c 4c 29 3b 0d 0a 09 09 09 09 7d 0d 0a 09 09 09 LL);......}.....
06c0: 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09 63 61 73 .return;.....cas
06d0: 65 20 27 53 27 3a 0d 0a 09 09 09 09 2a 70 56 61 e 'S':......*pVa
06e0: 6c 75 65 20 3d 20 73 74 72 20 2b 20 31 3b 0d 0a lue = str + 1;..
06f0: 09 09 09 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09 ....return;.....
0700: 63 61 73 65 20 27 44 27 3a 0d 0a 09 09 09 09 2a case 'D':......*
0710: 70 56 61 6c 75 65 20 3d 20 43 44 61 74 65 28 73 pValue = CDate(s
0720: 74 72 32 64 65 63 28 70 74 72 20 2b 20 31 2c 20 tr2dec(ptr + 1,
0730: 34 29 2c 20 73 74 72 32 64 65 63 28 70 74 72 20 4), str2dec(ptr
0740: 2b 20 35 2c 20 32 29 2c 20 73 74 72 32 64 65 63 + 5, 2), str2dec
0750: 28 70 74 72 20 2b 20 37 2c 20 32 29 29 3b 0d 0a (ptr + 7, 2));..
0760: 09 09 09 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09 ....return;.....
0770: 63 61 73 65 20 27 45 27 3a 0d 0a 09 09 09 09 74 case 'E':......t
0780: 79 70 65 20 3d 20 74 79 70 65 45 6e 75 6d 3b 0d ype = typeEnum;.
0790: 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 .....break;.....
07a0: 63 61 73 65 20 27 42 27 3a 0d 0a 09 09 09 09 74 case 'B':......t
07b0: 79 70 65 20 3d 20 74 79 70 65 52 65 66 65 72 65 ype = typeRefere
07c0: 6e 63 65 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b nce;......break;
07d0: 0d 0a 09 09 09 63 61 73 65 20 27 4f 27 3a 0d 0a .....case 'O':..
07e0: 09 09 09 09 74 79 70 65 20 3d 20 74 79 70 65 44 ....type = typeD
07f0: 6f 63 75 6d 65 6e 74 3b 0d 0a 09 09 09 09 62 72 ocument;......br
0800: 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 27 43 eak;.....case 'C
0810: 27 3a 0d 0a 09 09 09 09 74 79 70 65 20 3d 20 74 ':......type = t
0820: 79 70 65 43 61 6c 65 6e 64 61 72 3b 0d 0a 09 09 ypeCalendar;....
0830: 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 ..break;.....cas
0840: 65 20 27 41 27 3a 0d 0a 09 09 09 09 74 79 70 65 e 'A':......type
0850: 20 3d 20 74 79 70 65 43 61 6c 63 4b 69 6e 64 3b = typeCalcKind;
0860: 0d 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 ......break;....
0870: 09 63 61 73 65 20 27 54 27 3a 0d 0a 09 09 09 09 .case 'T':......
0880: 74 79 70 65 20 3d 20 74 79 70 65 41 63 63 6f 75 type = typeAccou
0890: 6e 74 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b 0d nt;......break;.
08a0: 0a 09 09 09 63 61 73 65 20 27 4b 27 3a 0d 0a 09 ....case 'K':...
08b0: 09 09 09 74 79 70 65 20 3d 20 74 79 70 65 53 75 ...type = typeSu
08c0: 62 63 4b 69 6e 64 3b 0d 0a 09 09 09 09 62 72 65 bcKind;......bre
08d0: 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 27 50 27 ak;.....case 'P'
08e0: 3a 0d 0a 09 09 09 09 74 79 70 65 20 3d 20 74 79 :......type = ty
08f0: 70 65 43 68 61 72 74 4f 66 41 63 63 3b 0d 0a 09 peChartOfAcc;...
0900: 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 64 65 ...break;.....de
0910: 66 61 75 6c 74 3a 0d 0a 09 09 09 09 72 65 74 75 fault:......retu
0920: 72 6e 3b 0d 0a 09 09 09 7d 0d 0a 09 09 09 70 74 rn;.....}.....pt
0930: 72 2b 2b 3b 0d 0a 09 09 09 70 74 72 2b 2b 3b 0d r++;.....ptr++;.
0940: 0a 09 09 7d 0d 0a 09 09 70 56 61 6c 75 65 2d 3e ...}....pValue->
0950: 74 79 70 65 20 3d 20 74 79 70 65 3b 0d 0a 09 09 type = type;....
0960: 70 56 61 6c 75 65 2d 3e 6d 5f 6d 64 69 64 20 3d pValue->m_mdid =
0970: 20 6d 64 49 44 3b 0d 0a 09 09 0d 0a 09 09 69 66 mdID;........if
0980: 28 74 6f 73 20 3d 3d 20 74 6f 73 31 33 20 7c 7c (tos == tos13 ||
0990: 20 74 6f 73 20 3d 3d 20 74 6f 73 32 33 29 0d 0a tos == tos23)..
09a0: 09 09 7b 0d 0a 09 09 09 69 66 28 74 79 70 65 43 ..{.....if(typeC
09b0: 61 6c 65 6e 64 61 72 20 3d 3d 20 74 79 70 65 20 alendar == type
09c0: 7c 7c 20 74 79 70 65 43 61 6c 63 4b 69 6e 64 20 || typeCalcKind
09d0: 3d 3d 20 74 79 70 65 29 0d 0a 09 09 09 09 6d 64 == type)......md
09e0: 49 44 20 3d 20 30 3b 0d 0a 09 09 09 65 6c 73 65 ID = 0;.....else
09f0: 0d 0a 09 09 09 09 6d 64 49 44 20 3d 20 73 74 72 ......mdID = str
0a00: 32 69 64 28 70 74 72 2c 20 34 29 3b 0d 0a 09 09 2id(ptr, 4);....
0a10: 09 70 74 72 20 2b 3d 20 34 3b 0d 0a 09 09 7d 0d .ptr += 4;....}.
0a20: 0a 09 09 70 56 61 6c 75 65 2d 3e 56 61 6c 54 79 ...pValue->ValTy
0a30: 70 65 49 44 20 3d 20 6d 64 49 44 3b 0d 0a 09 09 peID = mdID;....
0a40: 70 56 61 6c 75 65 2d 3e 6d 5f 4f 62 6a 49 44 2e pValue->m_ObjID.
0a50: 4f 62 6a 49 44 20 3d 20 73 74 72 32 69 64 28 70 ObjID = str2id(p
0a60: 74 72 2c 20 36 29 3b 0d 0a 09 09 2a 28 44 57 4f tr, 6);....*(DWO
0a70: 52 44 2a 29 70 56 61 6c 75 65 2d 3e 6d 5f 4f 62 RD*)pValue->m_Ob
0a80: 6a 49 44 2e 44 42 53 69 67 6e 2e 53 69 67 6e 20 jID.DBSign.Sign
0a90: 3d 20 28 2a 28 44 57 4f 52 44 2a 29 28 70 74 72 = (*(DWORD*)(ptr
0aa0: 20 2b 20 36 29 29 20 26 20 30 78 46 46 46 46 46 + 6)) & 0xFFFFF
0ab0: 46 3b 0d 0a 09 7d 0d 0a 09 0d 0a 09 69 6e 6c 69 F;...}......inli
0ac0: 6e 65 20 73 74 61 74 69 63 20 76 6f 69 64 20 76 ne static void v
0ad0: 61 6c 32 73 74 72 28 63 6f 6e 73 74 20 43 56 61 al2str(const CVa
0ae0: 6c 75 65 26 20 76 61 6c 2c 20 43 53 74 72 69 6e lue& val, CStrin
0af0: 67 26 20 72 65 73 29 0d 0a 09 7b 0d 0a 09 09 63 g& res)...{....c
0b00: 68 61 72 20 74 65 73 74 5b 74 6f 73 20 3d 3d 20 har test[tos ==
0b10: 74 6f 73 39 20 7c 7c 20 74 6f 73 20 3d 3d 20 74 tos9 || tos == t
0b20: 6f 73 31 33 20 7c 7c 20 74 6f 73 20 3d 3d 20 74 os13 || tos == t
0b30: 6f 73 32 33 20 3f 20 31 20 3a 20 2d 31 5d 20 3d os23 ? 1 : -1] =
0b40: 20 7b 30 7d 3b 0d 0a 0d 0a 09 09 75 6e 73 69 67 {0};......unsig
0b50: 6e 65 64 20 63 68 61 72 2a 20 70 74 72 20 3d 20 ned char* ptr =
0b60: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 2a 29 (unsigned char*)
0b70: 72 65 73 2e 47 65 74 42 75 66 66 65 72 53 65 74 res.GetBufferSet
0b80: 4c 65 6e 67 74 68 28 74 6f 73 29 3b 0d 0a 09 09 Length(tos);....
0b90: 69 66 28 74 6f 73 20 3d 3d 20 74 6f 73 32 33 29 if(tos == tos23)
0ba0: 0d 0a 09 09 7b 0d 0a 09 09 09 2f 2f 20 c7 e0 ef ....{.....// ...
0bb0: ee eb ed e8 ec 20 f1 f2 f0 ee ea f3 20 ef f0 ee ..... ...... ...
0bc0: e1 e5 eb e0 ec e8 0d 0a 09 09 09 2a 28 44 57 4f ...........*(DWO
0bd0: 52 44 2a 29 28 70 74 72 20 2b 20 30 29 20 3d 20 RD*)(ptr + 0) =
0be0: 30 78 32 30 32 30 32 30 32 30 3b 0d 0a 09 09 09 0x20202020;.....
0bf0: 2a 28 44 57 4f 52 44 2a 29 28 70 74 72 20 2b 20 *(DWORD*)(ptr +
0c00: 34 29 20 3d 20 30 78 32 30 32 30 32 30 32 30 3b 4) = 0x20202020;
0c10: 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70 .....*(DWORD*)(p
0c20: 74 72 20 2b 20 38 29 20 3d 20 30 78 32 30 32 30 tr + 8) = 0x2020
0c30: 32 30 32 30 3b 0d 0a 09 09 09 2a 28 44 57 4f 52 2020;.....*(DWOR
0c40: 44 2a 29 28 70 74 72 20 2b 20 31 32 29 20 3d 20 D*)(ptr + 12) =
0c50: 30 78 32 30 32 30 32 30 32 30 3b 0d 0a 09 09 09 0x20202020;.....
0c60: 2a 28 44 57 4f 52 44 2a 29 28 70 74 72 20 2b 20 *(DWORD*)(ptr +
0c70: 31 36 29 20 3d 20 30 78 32 30 32 30 32 30 32 30 16) = 0x20202020
0c80: 3b 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 ;.....*(DWORD*)(
0c90: 70 74 72 20 2b 20 32 30 29 20 3d 20 30 78 30 30 ptr + 20) = 0x00
0ca0: 32 30 32 30 32 30 3b 0d 0a 09 09 09 73 77 69 74 202020;.....swit
0cb0: 63 68 28 76 61 6c 2e 74 79 70 65 29 0d 0a 09 09 ch(val.type)....
0cc0: 09 7b 0d 0a 09 09 09 63 61 73 65 20 74 79 70 65 .{.....case type
0cd0: 55 6e 64 65 66 69 6e 65 64 3a 0d 0a 09 09 09 09 Undefined:......
0ce0: 2a 70 74 72 20 3d 20 27 55 27 3b 0d 0a 09 09 09 *ptr = 'U';.....
0cf0: 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09 63 61 73 .return;.....cas
0d00: 65 20 74 79 70 65 4e 75 6d 62 65 72 3a 0d 0a 09 e typeNumber:...
0d10: 09 09 09 2a 70 74 72 2b 2b 20 3d 20 27 4e 27 3b ...*ptr++ = 'N';
0d20: 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09 09 43 53 ......{.......CS
0d30: 74 72 69 6e 67 20 73 74 72 20 3d 20 76 61 6c 2e tring str = val.
0d40: 47 65 74 53 74 72 69 6e 67 28 29 3b 0d 0a 09 09 GetString();....
0d50: 09 09 09 69 6e 74 20 6c 20 3d 20 73 74 72 2e 47 ...int l = str.G
0d60: 65 74 4c 65 6e 67 74 68 28 29 3b 0d 0a 09 09 09 etLength();.....
0d70: 09 09 69 66 28 6c 20 3c 3d 20 32 32 29 0d 0a 09 ..if(l <= 22)...
0d80: 09 09 09 09 09 6d 65 6d 63 70 79 28 70 74 72 2c .....memcpy(ptr,
0d90: 20 28 4c 50 43 53 54 52 29 73 74 72 2c 20 6c 29 (LPCSTR)str, l)
0da0: 3b 0d 0a 09 09 09 09 7d 0d 0a 09 09 09 09 72 65 ;......}......re
0db0: 74 75 72 6e 3b 0d 0a 09 09 09 63 61 73 65 20 74 turn;.....case t
0dc0: 79 70 65 53 74 72 69 6e 67 3a 0d 0a 09 09 09 09 ypeString:......
0dd0: 2a 70 74 72 2b 2b 20 3d 20 27 53 27 3b 0d 0a 09 *ptr++ = 'S';...
0de0: 09 09 09 7b 0d 0a 09 09 09 09 09 69 6e 74 20 6c ...{.......int l
0df0: 20 3d 20 76 61 6c 2e 6d 5f 53 74 72 69 6e 67 2e = val.m_String.
0e00: 47 65 74 4c 65 6e 67 74 68 28 29 3b 0d 0a 09 09 GetLength();....
0e10: 09 09 09 6d 65 6d 63 70 79 28 70 74 72 2c 20 28 ...memcpy(ptr, (
0e20: 4c 50 43 53 54 52 29 76 61 6c 2e 6d 5f 53 74 72 LPCSTR)val.m_Str
0e30: 69 6e 67 2c 20 6c 20 3c 20 32 32 20 3f 20 6c 20 ing, l < 22 ? l
0e40: 3a 20 32 32 29 3b 0d 0a 09 09 09 09 7d 0d 0a 09 : 22);......}...
0e50: 09 09 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09 63 ...return;.....c
0e60: 61 73 65 20 74 79 70 65 44 61 74 65 3a 0d 0a 09 ase typeDate:...
0e70: 09 09 09 2a 70 74 72 2b 2b 20 3d 20 27 44 27 3b ...*ptr++ = 'D';
0e80: 0d 0a 09 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 ......*(DWORD*)(
0e90: 70 74 72 20 2b 20 34 29 20 3d 20 27 30 30 30 30 ptr + 4) = '0000
0ea0: 27 3b 0d 0a 09 09 09 09 64 65 63 32 73 74 72 28 ';......dec2str(
0eb0: 76 61 6c 2e 6d 5f 44 61 74 65 2e 47 65 74 59 65 val.m_Date.GetYe
0ec0: 61 72 28 29 2c 20 70 74 72 2c 20 34 29 3b 0d 0a ar(), ptr, 4);..
0ed0: 09 09 09 09 64 65 63 32 73 74 72 28 76 61 6c 2e ....dec2str(val.
0ee0: 6d 5f 44 61 74 65 2e 47 65 74 4d 6f 6e 74 68 28 m_Date.GetMonth(
0ef0: 29 2c 20 70 74 72 20 2b 20 34 2c 20 32 29 3b 0d ), ptr + 4, 2);.
0f00: 0a 09 09 09 09 64 65 63 32 73 74 72 28 76 61 6c .....dec2str(val
0f10: 2e 6d 5f 44 61 74 65 2e 47 65 74 4d 6f 6e 74 68 .m_Date.GetMonth
0f20: 44 61 79 28 29 2c 20 70 74 72 20 2b 20 36 2c 20 Day(), ptr + 6,
0f30: 32 29 3b 0d 0a 09 09 09 09 72 65 74 75 72 6e 3b 2);......return;
0f40: 0d 0a 09 09 09 63 61 73 65 20 74 79 70 65 45 6e .....case typeEn
0f50: 75 6d 3a 0d 0a 09 09 09 09 2a 70 74 72 2b 2b 20 um:......*ptr++
0f60: 3d 20 27 45 27 3b 0d 0a 09 09 09 09 62 72 65 61 = 'E';......brea
0f70: 6b 3b 0d 0a 09 09 09 63 61 73 65 20 74 79 70 65 k;.....case type
0f80: 52 65 66 65 72 65 6e 63 65 3a 0d 0a 09 09 09 09 Reference:......
0f90: 2a 70 74 72 2b 2b 20 3d 20 27 42 27 3b 0d 0a 09 *ptr++ = 'B';...
0fa0: 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 ...break;.....ca
0fb0: 73 65 20 74 79 70 65 44 6f 63 75 6d 65 6e 74 3a se typeDocument:
0fc0: 0d 0a 09 09 09 09 2a 70 74 72 2b 2b 20 3d 20 27 ......*ptr++ = '
0fd0: 4f 27 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b 0d O';......break;.
0fe0: 0a 09 09 09 63 61 73 65 20 74 79 70 65 43 61 6c ....case typeCal
0ff0: 65 6e 64 61 72 3a 0d 0a 09 09 09 09 2a 70 74 72 endar:......*ptr
1000: 2b 2b 20 3d 20 27 43 27 3b 0d 0a 09 09 09 09 62 ++ = 'C';......b
1010: 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 74 reak;.....case t
1020: 79 70 65 43 61 6c 63 4b 69 6e 64 3a 0d 0a 09 09 ypeCalcKind:....
1030: 09 09 2a 70 74 72 2b 2b 20 3d 20 27 41 27 3b 0d ..*ptr++ = 'A';.
1040: 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 .....break;.....
1050: 63 61 73 65 20 74 79 70 65 41 63 63 6f 75 6e 74 case typeAccount
1060: 3a 0d 0a 09 09 09 09 2a 70 74 72 2b 2b 20 3d 20 :......*ptr++ =
1070: 27 54 27 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b 'T';......break;
1080: 0d 0a 09 09 09 63 61 73 65 20 74 79 70 65 53 75 .....case typeSu
1090: 62 63 4b 69 6e 64 3a 0d 0a 09 09 09 09 2a 70 74 bcKind:......*pt
10a0: 72 2b 2b 20 3d 20 27 4b 27 3b 0d 0a 09 09 09 09 r++ = 'K';......
10b0: 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 break;.....case
10c0: 74 79 70 65 43 68 61 72 74 4f 66 41 63 63 3a 0d typeChartOfAcc:.
10d0: 0a 09 09 09 09 2a 70 74 72 2b 2b 20 3d 20 27 50 .....*ptr++ = 'P
10e0: 27 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a ';......break;..
10f0: 09 09 09 7d 0d 0a 09 09 09 2a 70 74 72 2b 2b 20 ...}.....*ptr++
1100: 3d 20 27 31 27 3b 0d 0a 09 09 7d 0d 0a 09 09 2f = '1';....}..../
1110: 2f 20 cf f0 ee f1 f2 fb f5 20 f2 e8 ef ee e2 20 / ....... .....
1120: e7 e4 e5 f1 fc 20 e1 fb f2 fc 20 ed e5 20 e4 ee ..... .... .. ..
1130: eb e6 ed ee 21 21 21 0d 0a 09 09 69 66 28 76 61 ....!!!....if(va
1140: 6c 2e 74 79 70 65 20 3c 3d 20 74 79 70 65 44 61 l.type <= typeDa
1150: 74 65 29 0d 0a 09 09 7b 0d 0a 09 09 09 6d 65 6d te)....{.....mem
1160: 73 65 74 28 70 74 72 2c 20 27 20 27 2c 20 74 6f set(ptr, ' ', to
1170: 73 29 3b 0d 0a 09 09 09 72 65 74 75 72 6e 3b 0d s);.....return;.
1180: 0a 09 09 7d 0d 0a 09 09 0d 0a 09 09 69 66 28 74 ...}........if(t
1190: 6f 73 20 3d 3d 20 74 6f 73 31 33 20 7c 7c 20 74 os == tos13 || t
11a0: 6f 73 20 3d 3d 20 74 6f 73 32 33 29 0d 0a 09 09 os == tos23)....
11b0: 7b 0d 0a 09 09 09 2f 2f 20 d3 ea e0 e6 e5 ec 20 {.....// ......
11c0: ec e5 f2 e0 e8 e4 0d 0a 09 09 09 69 66 28 74 79 ...........if(ty
11d0: 70 65 43 61 6c 65 6e 64 61 72 20 3d 3d 20 76 61 peCalendar == va
11e0: 6c 2e 74 79 70 65 20 7c 7c 20 74 79 70 65 43 61 l.type || typeCa
11f0: 6c 63 4b 69 6e 64 20 3d 3d 20 76 61 6c 2e 74 79 lcKind == val.ty
1200: 70 65 29 0d 0a 09 09 09 09 2a 28 44 57 4f 52 44 pe)......*(DWORD
1210: 2a 29 70 74 72 20 3d 20 27 30 20 20 20 27 3b 0d *)ptr = '0 ';.
1220: 0a 09 09 09 65 6c 73 65 0d 0a 09 09 09 7b 0d 0a ....else.....{..
1230: 09 09 09 09 69 66 28 74 6f 73 20 3d 3d 20 74 6f ....if(tos == to
1240: 73 31 33 29 09 2f 2f 20 cd e0 e4 ee 20 f3 ea e0 s13).// .... ...
1250: e7 e0 f2 fc 20 ec e5 f2 e0 e8 e4 2c 20 ed ee 20 .... ......, ..
1260: f1 f2 f0 ee ea e0 20 ef f0 ee e1 e5 eb e0 ec e8 ...... .........
1270: 20 ed e5 20 e7 e0 ef ee eb ed ff eb e0 f1 fc 0d .. ............
1280: 0a 09 09 09 09 09 2a 28 44 57 4f 52 44 2a 29 70 ......*(DWORD*)p
1290: 74 72 20 3d 20 30 78 32 30 32 30 32 30 32 30 3b tr = 0x20202020;
12a0: 0d 0a 09 09 09 09 69 64 32 73 74 72 28 76 61 6c ......id2str(val
12b0: 2e 6d 5f 6d 64 69 64 20 3f 20 76 61 6c 2e 6d 5f .m_mdid ? val.m_
12c0: 6d 64 69 64 20 3a 20 76 61 6c 2e 56 61 6c 54 79 mdid : val.ValTy
12d0: 70 65 49 44 2c 20 70 74 72 2c 20 34 29 3b 0d 0a peID, ptr, 4);..
12e0: 09 09 09 7d 0d 0a 09 09 09 70 74 72 20 2b 3d 20 ...}.....ptr +=
12f0: 34 3b 0d 0a 09 09 7d 0d 0a 09 09 0d 0a 09 09 69 4;....}........i
1300: 66 28 74 6f 73 20 21 3d 20 74 6f 73 32 33 29 09 f(tos != tos23).
1310: 2f 2f 20 cd e0 e4 ee 20 f3 ea e0 e7 e0 f2 fc 20 // .... .......
1320: ee e1 fa e5 ea f2 e8 e4 2c 20 ed ee 20 f1 f2 f0 ........, .. ...
1330: ee ea e0 20 ef f0 ee e1 e5 eb e0 ec e8 20 ed e5 ... ......... ..
1340: 20 e7 e0 ef ee eb ed ff eb e0 f1 fc 0d 0a 09 09 ...............
1350: 7b 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 70 {.....*(DWORD*)p
1360: 74 72 20 3d 20 30 78 32 30 32 30 32 30 32 30 3b tr = 0x20202020;
1370: 0d 0a 09 09 09 2a 28 57 4f 52 44 2a 29 28 70 74 .....*(WORD*)(pt
1380: 72 20 2b 20 34 29 20 3d 20 30 78 32 30 32 30 3b r + 4) = 0x2020;
1390: 0d 0a 09 09 7d 0d 0a 09 09 2f 2f 20 d3 ea e0 e6 ....}....// ....
13a0: e5 ec 20 ee e1 fa e5 ea f2 e8 e4 20 e8 20 e4 e1 .. ........ . ..
13b0: e7 ed e0 ea 2e 0d 0a 09 09 69 64 32 73 74 72 28 .........id2str(
13c0: 76 61 6c 2e 6d 5f 4f 62 6a 49 44 2e 4f 62 6a 49 val.m_ObjID.ObjI
13d0: 44 2c 20 70 74 72 2c 20 36 29 3b 0d 0a 09 09 2a D, ptr, 6);....*
13e0: 28 44 57 4f 52 44 2a 29 28 70 74 72 20 2b 20 36 (DWORD*)(ptr + 6
13f0: 29 20 3d 20 2a 28 44 57 4f 52 44 2a 29 76 61 6c ) = *(DWORD*)val
1400: 2e 6d 5f 4f 62 6a 49 44 2e 44 42 53 69 67 6e 2e .m_ObjID.DBSign.
1410: 53 69 67 6e 3b 0d 0a 0d 0a 09 09 2f 2f 20 cf f0 Sign;......// ..
1420: e8 20 f3 ea e0 e7 e0 ed e8 e8 20 e4 e1 e7 ed e0 . ........ .....
1430: ea e0 20 e2 20 e4 eb e8 ed ed ee e9 20 f1 f2 f0 .. . ....... ...
1440: ee ea e5 20 ef ee f1 eb e5 e4 ed e8 e9 20 ef f0 ... ......... ..
1450: ee e1 e5 eb 20 e7 e0 f2 f0 e5 f2 f1 ff 20 ed e0 .... ........ ..
1460: 20 30 0d 0a 09 09 69 66 28 74 6f 73 20 3d 3d 20 0....if(tos ==
1470: 32 33 29 0d 0a 09 09 09 70 74 72 5b 39 5d 20 3d 23).....ptr[9] =
1480: 20 27 20 27 3b 0d 0a 09 7d 0d 0a 7d 3b 0d 0a 0d ' ';...}..};...
1490: 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 .template<typena
14a0: 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74 me T>..inline st
14b0: 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64 4e 75 atic void bindNu
14c0: 6d 65 72 69 63 28 54 26 20 62 69 6e 64 65 72 2c meric(T& binder,
14d0: 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70 const CValue* p
14e0: 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d Value, int mod).
14f0: 0a 7b 0d 0a 09 69 66 28 30 20 21 3d 20 6d 6f 64 .{...if(0 != mod
1500: 29 0d 0a 09 09 62 69 6e 64 65 72 2e 65 72 72 6f )....binder.erro
1510: 72 28 22 cd e5 e8 e7 e2 e5 f1 f2 ed fb e9 20 ec r("........... .
1520: ee e4 e8 f4 e8 ea e0 f2 ee f0 20 e4 eb ff 20 f2 .......... ... .
1530: e8 ef e0 20 5c 22 d7 e8 f1 eb ee 5c 22 22 29 3b ... \".....\"");
1540: 0d 0a 09 62 69 6e 64 65 72 2e 62 69 6e 64 4e 75 ...binder.bindNu
1550: 6d 65 72 69 63 28 70 56 61 6c 75 65 29 3b 0d 0a meric(pValue);..
1560: 7d 0d 0a 0d 0a 74 65 6d 70 6c 61 74 65 3c 74 79 }....template<ty
1570: 70 65 6e 61 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e pename T>..inlin
1580: 65 20 73 74 61 74 69 63 20 76 6f 69 64 20 62 69 e static void bi
1590: 6e 64 53 74 72 69 6e 67 28 54 26 20 62 69 6e 64 ndString(T& bind
15a0: 65 72 2c 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 er, const CValue
15b0: 2a 20 70 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f * pValue, int mo
15c0: 64 29 0d 0a 7b 0d 0a 09 73 77 69 74 63 68 28 6d d)..{...switch(m
15d0: 6f 64 29 0d 0a 09 7b 0d 0a 09 63 61 73 65 20 30 od)...{...case 0
15e0: 3a 09 09 2f 2f 20 d1 f2 f0 ee ea e0 20 ea e0 ea :..// ...... ...
15f0: 20 e5 f1 f2 fc 0d 0a 09 09 62 69 6e 64 65 72 2e ........binder.
1600: 62 69 6e 64 54 65 78 74 28 70 56 61 6c 75 65 2d bindText(pValue-
1610: 3e 6d 5f 53 74 72 69 6e 67 29 3b 0d 0a 09 09 62 >m_String);....b
1620: 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 31 3a 09 reak;...case 1:.
1630: 09 2f 2f 20 cf ee e7 e8 f6 e8 ff 20 e4 ee ea f3 .// ....... ....
1640: ec e5 ed f2 e0 0d 0a 09 63 61 73 65 20 32 3a 09 ........case 2:.
1650: 09 2f 2f 20 cf ee e7 e8 f6 e8 ff 20 e4 ee ea f3 .// ....... ....
1660: ec e5 ed f2 e0 20 e4 eb ff 20 e2 e5 f0 f5 ed e5 ..... ... ......
1670: e9 20 e3 f0 e0 ed e8 f6 fb 20 ef ee 20 e8 ed e4 . ....... .. ...
1680: ea e5 f1 e0 ec 2c 20 ed e0 f7 e8 ed e0 fe f9 e8 ....., .........
1690: ec f1 ff 20 f1 20 44 41 54 45 2c 54 49 4d 45 2c ... . DATE,TIME,
16a0: 49 44 44 4f 43 0d 0a 09 09 69 66 28 70 56 61 6c IDDOC....if(pVal
16b0: 75 65 2d 3e 6d 5f 53 74 72 69 6e 67 2e 47 65 74 ue->m_String.Get
16c0: 4c 65 6e 67 74 68 28 29 20 3d 3d 20 33 32 29 0d Length() == 32).
16d0: 0a 09 09 7b 0d 0a 09 09 09 43 53 74 72 69 6e 67 ...{.....CString
16e0: 20 74 65 78 74 3b 0d 0a 09 09 09 63 6f 6e 73 74 text;.....const
16f0: 20 42 59 54 45 2a 20 70 53 72 63 20 3d 20 28 63 BYTE* pSrc = (c
1700: 6f 6e 73 74 20 42 59 54 45 2a 29 28 4c 50 43 53 onst BYTE*)(LPCS
1710: 54 52 29 70 56 61 6c 75 65 2d 3e 6d 5f 53 74 72 TR)pValue->m_Str
1720: 69 6e 67 3b 0d 0a 09 09 09 42 59 54 45 2a 20 70 ing;.....BYTE* p
1730: 44 73 74 20 3d 20 28 42 59 54 45 2a 29 74 65 78 Dst = (BYTE*)tex
1740: 74 2e 47 65 74 42 75 66 66 65 72 53 65 74 4c 65 t.GetBufferSetLe
1750: 6e 67 74 68 28 32 20 3d 3d 20 6d 6f 64 20 3f 20 ngth(2 == mod ?
1760: 32 34 20 3a 20 32 33 29 3b 0d 0a 09 09 09 2f 2f 24 : 23);.....//
1770: 6d 65 6d 63 70 79 28 70 44 73 74 2c 20 70 53 72 memcpy(pDst, pSr
1780: 63 20 2b 20 31 2c 20 38 29 3b 0d 0a 09 09 09 2a c + 1, 8);.....*
1790: 28 44 57 4f 52 44 2a 29 28 70 44 73 74 20 2b 20 (DWORD*)(pDst +
17a0: 20 30 29 20 3d 20 2a 28 44 57 4f 52 44 2a 29 28 0) = *(DWORD*)(
17b0: 70 53 72 63 20 2b 20 20 31 29 3b 0d 0a 09 09 09 pSrc + 1);.....
17c0: 2a 28 44 57 4f 52 44 2a 29 28 70 44 73 74 20 2b *(DWORD*)(pDst +
17d0: 20 20 34 29 20 3d 20 2a 28 44 57 4f 52 44 2a 29 4) = *(DWORD*)
17e0: 28 70 53 72 63 20 2b 20 20 35 29 3b 0d 0a 09 09 (pSrc + 5);....
17f0: 09 2a 28 44 57 4f 52 44 2a 29 28 70 44 73 74 20 .*(DWORD*)(pDst
1800: 2b 20 20 38 29 20 3d 20 27 20 20 20 20 27 3b 0d + 8) = ' ';.
1810: 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70 44 ....*(DWORD*)(pD
1820: 73 74 20 2b 20 31 32 29 20 3d 20 27 20 20 20 20 st + 12) = '
1830: 27 3b 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 ';.....*(DWORD*)
1840: 28 70 44 73 74 20 2b 20 31 36 29 20 3d 20 27 20 (pDst + 16) = '
1850: 20 20 20 27 3b 0d 0a 09 09 09 69 64 32 73 74 72 ';.....id2str
1860: 28 73 74 72 32 64 65 63 28 70 53 72 63 20 2b 20 (str2dec(pSrc +
1870: 31 30 2c 20 39 29 2c 20 70 44 73 74 20 2b 20 38 10, 9), pDst + 8
1880: 2c 20 36 29 3b 0d 0a 09 09 09 69 64 32 73 74 72 , 6);.....id2str
1890: 28 73 74 72 32 64 65 63 28 70 53 72 63 20 2b 20 (str2dec(pSrc +
18a0: 31 39 2c 20 31 30 29 2c 20 70 44 73 74 20 2b 20 19, 10), pDst +
18b0: 31 34 2c 20 36 29 3b 0d 0a 09 09 09 2a 28 44 57 14, 6);.....*(DW
18c0: 4f 52 44 2a 29 28 70 44 73 74 20 2b 20 32 30 29 ORD*)(pDst + 20)
18d0: 20 3d 20 2a 28 44 57 4f 52 44 2a 29 28 70 53 72 = *(DWORD*)(pSr
18e0: 63 20 2b 20 32 39 29 3b 0d 0a 09 09 09 69 66 28 c + 29);.....if(
18f0: 32 20 3d 3d 20 6d 6f 64 29 0d 0a 09 09 09 09 70 2 == mod)......p
1900: 44 73 74 5b 32 33 5d 20 3d 20 27 df 27 3b 0d 0a Dst[23] = '.';..
1910: 09 09 09 62 69 6e 64 65 72 2e 62 69 6e 64 54 65 ...binder.bindTe
1920: 78 74 28 74 65 78 74 29 3b 0d 0a 09 09 7d 0d 0a xt(text);....}..
1930: 09 09 65 6c 73 65 0d 0a 09 09 09 62 69 6e 64 65 ..else.....binde
1940: 72 2e 65 72 72 6f 72 28 22 cf e5 f0 e5 e4 e0 ed r.error(".......
1950: ed e0 ff 20 f1 f2 f0 ee ea e0 20 ed e5 20 ef ee ... ...... .. ..
1960: e7 e8 f6 e8 ff 20 e4 ee ea f3 ec e5 ed f2 e0 22 ..... ........."
1970: 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63 );....break;...c
1980: 61 73 65 20 33 3a 0d 0a 09 09 62 69 6e 64 65 72 ase 3:....binder
1990: 2e 62 69 6e 64 46 72 61 67 6d 65 6e 74 28 70 56 .bindFragment(pV
19a0: 61 6c 75 65 2d 3e 6d 5f 53 74 72 69 6e 67 29 3b alue->m_String);
19b0: 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 64 65 66 ....break;...def
19c0: 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64 65 72 2e ault:....binder.
19d0: 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5 f1 f2 ed error(".........
19e0: fb e9 20 ec ee e4 e8 f4 e8 ea e0 f2 ee f0 20 e4 .. ........... .
19f0: eb ff 20 f2 e8 ef e0 20 5c 22 d1 f2 f0 ee ea e0 .. .... \"......
1a00: 5c 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a \"");...}..}....
1a10: 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 6d template<typenam
1a20: 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 e T>..inline sta
1a30: 74 69 63 20 76 6f 69 64 20 62 69 6e 64 44 61 74 tic void bindDat
1a40: 65 28 54 26 20 62 69 6e 64 65 72 2c 20 63 6f 6e e(T& binder, con
1a50: 73 74 20 43 56 61 6c 75 65 2a 20 70 56 61 6c 75 st CValue* pValu
1a60: 65 2c 20 69 6e 74 20 6d 6f 64 29 0d 0a 7b 0d 0a e, int mod)..{..
1a70: 09 73 77 69 74 63 68 28 6d 6f 64 29 0d 0a 09 7b .switch(mod)...{
1a80: 0d 0a 09 63 61 73 65 20 30 3a 09 09 2f 2f 20 c4 ...case 0:..// .
1a90: e0 f2 e0 20 ea e0 ea 20 e5 f1 f2 fc 0d 0a 09 63 ... ... .......c
1aa0: 61 73 65 20 31 3a 0d 0a 09 09 7b 0d 0a 09 09 09 ase 1:....{.....
1ab0: 43 53 74 72 69 6e 67 20 74 65 78 74 3b 0d 0a 09 CString text;...
1ac0: 09 09 42 59 54 45 2a 20 62 75 66 20 3d 20 28 42 ..BYTE* buf = (B
1ad0: 59 54 45 2a 29 74 65 78 74 2e 47 65 74 42 75 66 YTE*)text.GetBuf
1ae0: 66 65 72 53 65 74 4c 65 6e 67 74 68 28 6d 6f 64 ferSetLength(mod
1af0: 20 3f 20 39 20 3a 20 38 29 3b 0d 0a 09 09 09 44 ? 9 : 8);.....D
1b00: 57 4f 52 44 20 64 61 79 20 3d 20 70 56 61 6c 75 WORD day = pValu
1b10: 65 2d 3e 6d 5f 44 61 74 65 2e 47 65 74 4d 6f 6e e->m_Date.GetMon
1b20: 74 68 44 61 79 28 29 3b 0d 0a 09 09 09 69 66 28 thDay();.....if(
1b30: 64 61 79 29 09 09 2f 2f 20 cd e5 ef f3 f1 f2 e0 day)..// .......
1b40: ff 20 e4 e0 f2 e0 0d 0a 09 09 09 7b 0d 0a 09 09 . .........{....
1b50: 09 09 64 65 63 32 73 74 72 28 70 56 61 6c 75 65 ..dec2str(pValue
1b60: 2d 3e 6d 5f 44 61 74 65 2e 47 65 74 59 65 61 72 ->m_Date.GetYear
1b70: 28 29 2c 20 62 75 66 2c 20 34 29 3b 0d 0a 09 09 (), buf, 4);....
1b80: 09 09 2a 28 44 57 4f 52 44 2a 29 28 62 75 66 20 ..*(DWORD*)(buf
1b90: 2b 20 34 29 20 3d 20 27 30 30 30 30 27 3b 0d 0a + 4) = '0000';..
1ba0: 09 09 09 09 64 65 63 32 73 74 72 28 70 56 61 6c ....dec2str(pVal
1bb0: 75 65 2d 3e 6d 5f 44 61 74 65 2e 47 65 74 4d 6f ue->m_Date.GetMo
1bc0: 6e 74 68 28 29 2c 20 62 75 66 20 2b 20 34 2c 20 nth(), buf + 4,
1bd0: 32 29 3b 0d 0a 09 09 09 09 64 65 63 32 73 74 72 2);......dec2str
1be0: 28 64 61 79 2c 20 62 75 66 20 2b 20 36 2c 20 32 (day, buf + 6, 2
1bf0: 29 3b 0d 0a 09 09 09 7d 0d 0a 09 09 09 65 6c 73 );.....}.....els
1c00: 65 0d 0a 09 09 09 09 2a 28 75 6e 73 69 67 6e 65 e......*(unsigne
1c10: 64 20 5f 5f 69 6e 74 36 34 2a 29 62 75 66 20 3d d __int64*)buf =
1c20: 20 30 78 32 30 32 30 32 30 32 30 32 30 32 30 32 0x2020202020202
1c30: 30 32 30 3b 0d 0a 09 09 09 69 66 28 6d 6f 64 29 020;.....if(mod)
1c40: 0d 0a 09 09 09 09 62 75 66 5b 38 5d 20 3d 20 27 ......buf[8] = '
1c50: df 27 3b 0d 0a 09 09 09 62 69 6e 64 65 72 2e 62 .';.....binder.b
1c60: 69 6e 64 54 65 78 74 28 74 65 78 74 29 3b 0d 0a indText(text);..
1c70: 09 09 7d 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 ..}....break;...
1c80: 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64 default:....bind
1c90: 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5 er.error("......
1ca0: f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea e0 f2 ee ..... ..........
1cb0: f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 c4 e0 f2 . ... .... \"...
1cc0: e0 5c 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d .\"");...}..}...
1cd0: 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 .template<typena
1ce0: 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74 me T>..inline st
1cf0: 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64 4f 62 atic void bindOb
1d00: 6a 65 63 74 28 54 26 20 62 69 6e 64 65 72 2c 20 ject(T& binder,
1d10: 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70 56 const CValue* pV
1d20: 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d 0a alue, int mod)..
1d30: 7b 0d 0a 09 43 53 74 72 69 6e 67 20 74 65 78 74 {...CString text
1d40: 3b 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64 29 0d ;...switch(mod).
1d50: 0a 09 7b 0d 0a 09 63 61 73 65 20 30 3a 09 09 2f ..{...case 0:../
1d60: 2f 20 d1 f2 f0 ee ea e0 20 39 0d 0a 09 09 56 61 / ...... 9....Va
1d70: 6c 75 65 53 74 72 57 6f 72 6b 3c 74 6f 73 39 3e lueStrWork<tos9>
1d80: 3a 3a 76 61 6c 32 73 74 72 28 2a 70 56 61 6c 75 ::val2str(*pValu
1d90: 65 2c 20 74 65 78 74 29 3b 0d 0a 09 09 62 69 6e e, text);....bin
1da0: 64 65 72 2e 62 69 6e 64 54 65 78 74 28 74 65 78 der.bindText(tex
1db0: 74 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 t);....break;...
1dc0: 63 61 73 65 20 31 3a 09 09 2f 2f 20 d1 f2 f0 ee case 1:..// ....
1dd0: ea e0 20 31 33 0d 0a 09 09 56 61 6c 75 65 53 74 .. 13....ValueSt
1de0: 72 57 6f 72 6b 3c 74 6f 73 31 33 3e 3a 3a 76 61 rWork<tos13>::va
1df0: 6c 32 73 74 72 28 2a 70 56 61 6c 75 65 2c 20 74 l2str(*pValue, t
1e00: 65 78 74 29 3b 0d 0a 09 09 62 69 6e 64 65 72 2e ext);....binder.
1e10: 62 69 6e 64 54 65 78 74 28 74 65 78 74 29 3b 0d bindText(text);.
1e20: 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 7d 0d 0a 7d ...break;...}..}
1e30: 0d 0a 0d 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 ....template<typ
1e40: 65 6e 61 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 ename T>..inline
1e50: 20 73 74 61 74 69 63 20 76 6f 69 64 20 62 69 6e static void bin
1e60: 64 4b 69 6e 64 4f 66 4f 62 6a 65 63 74 28 54 26 dKindOfObject(T&
1e70: 20 62 69 6e 64 65 72 2c 20 63 6f 6e 73 74 20 43 binder, const C
1e80: 56 61 6c 75 65 2a 20 70 56 61 6c 75 65 29 0d 0a Value* pValue)..
1e90: 7b 0d 0a 09 43 53 74 72 69 6e 67 20 74 65 78 74 {...CString text
1ea0: 3b 0d 0a 09 42 59 54 45 2a 20 70 74 72 20 3d 20 ;...BYTE* ptr =
1eb0: 28 42 59 54 45 2a 29 74 65 78 74 2e 47 65 74 42 (BYTE*)text.GetB
1ec0: 75 66 66 65 72 53 65 74 4c 65 6e 67 74 68 28 34 ufferSetLength(4
1ed0: 29 3b 0d 0a 09 2a 28 44 57 4f 52 44 2a 29 70 74 );...*(DWORD*)pt
1ee0: 72 20 3d 20 27 20 20 20 20 27 3b 0d 0a 09 69 64 r = ' ';...id
1ef0: 32 73 74 72 28 70 56 61 6c 75 65 2d 3e 6d 5f 6d 2str(pValue->m_m
1f00: 64 69 64 20 3f 20 70 56 61 6c 75 65 2d 3e 6d 5f did ? pValue->m_
1f10: 6d 64 69 64 20 3a 20 70 56 61 6c 75 65 2d 3e 56 mdid : pValue->V
1f20: 61 6c 54 79 70 65 49 44 2c 20 70 74 72 2c 20 34 alTypeID, ptr, 4
1f30: 29 3b 0d 0a 09 62 69 6e 64 65 72 2e 62 69 6e 64 );...binder.bind
1f40: 54 65 78 74 28 74 65 78 74 29 3b 0d 0a 7d 0d 0a Text(text);..}..
1f50: 0d 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e ..template<typen
1f60: 61 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 ame T>..inline s
1f70: 74 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64 45 tatic void bindE
1f80: 6e 75 6d 28 54 26 20 62 69 6e 64 65 72 2c 20 63 num(T& binder, c
1f90: 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70 56 61 onst CValue* pVa
1fa0: 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d 0a 7b lue, int mod)..{
1fb0: 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64 29 0d 0a ...switch(mod)..
1fc0: 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d 0a 09 63 .{...case 0:...c
1fd0: 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e 64 4f 62 ase 1:....bindOb
1fe0: 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56 61 ject(binder, pVa
1ff0: 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 lue, mod);....br
2000: 65 61 6b 3b 0d 0a 09 64 65 66 61 75 6c 74 3a 0d eak;...default:.
2010: 0a 09 09 62 69 6e 64 65 72 2e 65 72 72 6f 72 28 ...binder.error(
2020: 22 cd e5 e8 e7 e2 e5 f1 f2 ed fb e9 20 ec ee e4 "........... ...
2030: e8 f4 e8 ea e0 f2 ee f0 20 e4 eb ff 20 f2 e8 ef ........ ... ...
2040: e0 20 5c 22 cf e5 f0 e5 f7 e8 f1 eb e5 ed e8 e5 . \"............
2050: 5c 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a \"");...}..}....
2060: 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 6d template<typenam
2070: 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 e T>..inline sta
2080: 74 69 63 20 76 6f 69 64 20 62 69 6e 64 52 65 66 tic void bindRef
2090: 65 72 65 6e 63 65 28 54 26 20 62 69 6e 64 65 72 erence(T& binder
20a0: 2c 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 , const CValue*
20b0: 70 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 pValue, int mod)
20c0: 0d 0a 7b 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64 ..{...switch(mod
20d0: 29 0d 0a 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d )...{...case 0:.
20e0: 0a 09 63 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e ..case 1:....bin
20f0: 64 4f 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 dObject(binder,
2100: 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 pValue, mod);...
2110: 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 32 .break;...case 2
2120: 3a 0d 0a 09 09 62 69 6e 64 4b 69 6e 64 4f 66 4f :....bindKindOfO
2130: 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56 bject(binder, pV
2140: 61 6c 75 65 29 3b 0d 0a 09 09 62 72 65 61 6b 3b alue);....break;
2150: 0d 0a 09 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 ...default:....b
2160: 69 6e 64 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 inder.error("...
2170: e7 e2 e5 f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea ........ .......
2180: e0 f2 ee f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 .... ... .... \"
2190: d1 ef f0 e0 e2 ee f7 ed e8 ea 5c 22 22 29 3b 0d ..........\"");.
21a0: 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c 61 ..}..}....templa
21b0: 74 65 3c 74 79 70 65 6e 61 6d 65 20 54 3e 0d 0a te<typename T>..
21c0: 69 6e 6c 69 6e 65 20 73 74 61 74 69 63 20 76 6f inline static vo
21d0: 69 64 20 62 69 6e 64 44 6f 63 75 6d 65 6e 74 28 id bindDocument(
21e0: 54 26 20 62 69 6e 64 65 72 2c 20 63 6f 6e 73 74 T& binder, const
21f0: 20 43 56 61 6c 75 65 2a 20 70 56 61 6c 75 65 2c CValue* pValue,
2200: 20 69 6e 74 20 6d 6f 64 29 0d 0a 7b 0d 0a 09 73 int mod)..{...s
2210: 77 69 74 63 68 28 6d 6f 64 29 0d 0a 09 7b 0d 0a witch(mod)...{..
2220: 09 63 61 73 65 20 30 3a 0d 0a 09 63 61 73 65 20 .case 0:...case
2230: 31 3a 0d 0a 09 09 62 69 6e 64 4f 62 6a 65 63 74 1:....bindObject
2240: 28 62 69 6e 64 65 72 2c 20 70 56 61 6c 75 65 2c (binder, pValue,
2250: 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 65 61 6b 3b mod);....break;
2260: 0d 0a 09 63 61 73 65 20 32 3a 0d 0a 09 09 62 69 ...case 2:....bi
2270: 6e 64 4b 69 6e 64 4f 66 4f 62 6a 65 63 74 28 62 ndKindOfObject(b
2280: 69 6e 64 65 72 2c 20 70 56 61 6c 75 65 29 3b 0d inder, pValue);.
2290: 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 ...break;...case
22a0: 20 33 3a 09 09 2f 2f 20 cf ee e7 e8 f6 e8 ff 20 3:..// .......
22b0: e4 ee ea f3 ec e5 ed f2 e0 0d 0a 09 63 61 73 65 ............case
22c0: 20 34 3a 09 09 2f 2f 20 cf ee e7 e8 f6 e8 ff 20 4:..// .......
22d0: e4 ee ea f3 ec e5 ed f2 e0 20 e4 eb ff 20 e2 e5 ......... ... ..
22e0: f0 f5 ed e5 e9 20 e3 f0 e0 ed e8 f6 fb 20 ef ee ..... ....... ..
22f0: 20 e8 ed e4 ea e5 f1 e0 ec 2c 20 ed e0 f7 e8 ed ........, .....
2300: e0 fe f9 e8 ec f1 ff 20 f1 20 44 41 54 45 2c 54 ....... . DATE,T
2310: 49 4d 45 2c 49 44 44 4f 43 0d 0a 20 20 20 20 20 IME,IDDOC..
2320: 20 20 20 7b 0d 0a 09 09 09 43 53 74 72 69 6e 67 {.....CString
2330: 20 74 65 78 74 3b 0d 0a 09 09 09 42 59 54 45 2a text;.....BYTE*
2340: 20 70 74 72 20 3d 20 28 42 59 54 45 2a 29 74 65 ptr = (BYTE*)te
2350: 78 74 2e 47 65 74 42 75 66 66 65 72 53 65 74 4c xt.GetBufferSetL
2360: 65 6e 67 74 68 28 34 20 3d 3d 20 6d 6f 64 20 3f ength(4 == mod ?
2370: 20 32 34 20 3a 20 32 33 29 3b 0d 0a 09 09 09 43 24 : 23);.....C
2380: 45 76 65 6e 74 54 69 6d 65 20 45 76 65 6e 74 54 EventTime EventT
2390: 69 6d 65 3b 0d 0a 09 09 09 43 44 61 74 65 20 44 ime;.....CDate D
23a0: 61 74 65 28 30 2c 30 2c 30 29 3b 0d 0a 09 09 09 ate(0,0,0);.....
23b0: 47 65 74 44 61 74 65 54 69 6d 65 46 72 6f 6d 56 GetDateTimeFromV
23c0: 61 6c 75 65 28 2a 70 56 61 6c 75 65 2c 20 44 61 alue(*pValue, Da
23d0: 74 65 2c 20 45 76 65 6e 74 54 69 6d 65 29 3b 0d te, EventTime);.
23e0: 0a 09 09 09 64 65 63 32 73 74 72 28 44 61 74 65 ....dec2str(Date
23f0: 2e 47 65 74 59 65 61 72 28 29 2c 20 70 74 72 2c .GetYear(), ptr,
2400: 20 34 29 3b 0d 0a 09 09 09 2a 28 44 57 4f 52 44 4);.....*(DWORD
2410: 2a 29 28 70 74 72 20 2b 20 34 29 20 3d 20 27 30 *)(ptr + 4) = '0
2420: 30 30 30 27 3b 0d 0a 09 09 09 64 65 63 32 73 74 000';.....dec2st
2430: 72 28 44 61 74 65 2e 47 65 74 4d 6f 6e 74 68 28 r(Date.GetMonth(
2440: 29 2c 20 70 74 72 20 2b 20 34 2c 20 32 29 3b 0d ), ptr + 4, 2);.
2450: 0a 09 09 09 64 65 63 32 73 74 72 28 44 61 74 65 ....dec2str(Date
2460: 2e 47 65 74 4d 6f 6e 74 68 44 61 79 28 29 2c 20 .GetMonthDay(),
2470: 70 74 72 20 2b 20 36 2c 20 32 29 3b 0d 0a 09 09 ptr + 6, 2);....
2480: 09 2a 28 44 57 4f 52 44 2a 29 28 70 74 72 20 2b .*(DWORD*)(ptr +
2490: 20 20 38 29 20 3d 20 27 20 20 20 20 27 3b 0d 0a 8) = ' ';..
24a0: 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70 74 72 ...*(DWORD*)(ptr
24b0: 20 2b 20 31 32 29 20 3d 20 27 20 20 20 20 27 3b + 12) = ' ';
24c0: 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70 .....*(DWORD*)(p
24d0: 74 72 20 2b 20 31 36 29 20 3d 20 27 20 20 20 20 tr + 16) = '
24e0: 27 3b 0d 0a 09 09 09 69 64 32 73 74 72 28 45 76 ';.....id2str(Ev
24f0: 65 6e 74 54 69 6d 65 2e 47 65 74 6c 54 69 6d 65 entTime.GetlTime
2500: 28 29 2c 20 70 74 72 20 2b 20 38 2c 20 36 29 3b (), ptr + 8, 6);
2510: 0d 0a 09 09 09 69 64 32 73 74 72 28 70 56 61 6c .....id2str(pVal
2520: 75 65 2d 3e 6d 5f 4f 62 6a 49 44 2e 4f 62 6a 49 ue->m_ObjID.ObjI
2530: 44 2c 20 70 74 72 20 2b 20 31 34 2c 20 36 29 3b D, ptr + 14, 6);
2540: 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70 .....*(DWORD*)(p
2550: 74 72 20 2b 20 32 30 29 20 3d 20 2a 28 44 57 4f tr + 20) = *(DWO
2560: 52 44 2a 29 70 56 61 6c 75 65 2d 3e 6d 5f 4f 62 RD*)pValue->m_Ob
2570: 6a 49 44 2e 44 42 53 69 67 6e 2e 53 69 67 6e 3b jID.DBSign.Sign;
2580: 0d 0a 09 09 09 69 66 28 34 20 3d 3d 20 6d 6f 64 .....if(4 == mod
2590: 29 0d 0a 09 09 09 09 70 74 72 5b 32 33 5d 20 3d )......ptr[23] =
25a0: 20 27 df 27 3b 0d 0a 09 09 09 62 69 6e 64 65 72 '.';.....binder
25b0: 2e 62 69 6e 64 54 65 78 74 28 74 65 78 74 29 3b .bindText(text);
25c0: 0d 0a 09 09 7d 0d 0a 09 09 62 72 65 61 6b 3b 0d ....}....break;.
25d0: 0a 09 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69 ..default:....bi
25e0: 6e 64 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7 nder.error("....
25f0: e2 e5 f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea e0 ....... ........
2600: f2 ee f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 c4 ... ... .... \".
2610: ee ea f3 ec e5 ed f2 5c 22 22 29 3b 0d 0a 09 7d .......\"");...}
2620: 0d 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c 61 74 65 3c ..}....template<
2630: 74 79 70 65 6e 61 6d 65 20 54 3e 0d 0a 69 6e 6c typename T>..inl
2640: 69 6e 65 20 73 74 61 74 69 63 20 76 6f 69 64 20 ine static void
2650: 62 69 6e 64 43 61 6c 65 6e 64 61 72 28 54 26 20 bindCalendar(T&
2660: 62 69 6e 64 65 72 2c 20 63 6f 6e 73 74 20 43 56 binder, const CV
2670: 61 6c 75 65 2a 20 70 56 61 6c 75 65 2c 20 69 6e alue* pValue, in
2680: 74 20 6d 6f 64 29 0d 0a 7b 0d 0a 09 73 77 69 74 t mod)..{...swit
2690: 63 68 28 6d 6f 64 29 0d 0a 09 7b 0d 0a 09 63 61 ch(mod)...{...ca
26a0: 73 65 20 30 3a 0d 0a 09 63 61 73 65 20 31 3a 0d se 0:...case 1:.
26b0: 0a 09 09 62 69 6e 64 4f 62 6a 65 63 74 28 62 69 ...bindObject(bi
26c0: 6e 64 65 72 2c 20 70 56 61 6c 75 65 2c 20 6d 6f nder, pValue, mo
26d0: 64 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 d);....break;...
26e0: 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64 default:....bind
26f0: 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5 er.error("......
2700: f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea e0 f2 ee ..... ..........
2710: f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 ca e0 eb . ... .... \"...
2720: e5 ed e4 e0 f0 fc 5c 22 22 29 3b 0d 0a 09 7d 0d ......\"");...}.
2730: 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c 61 74 65 3c 74 .}....template<t
2740: 79 70 65 6e 61 6d 65 20 54 3e 0d 0a 69 6e 6c 69 ypename T>..inli
2750: 6e 65 20 73 74 61 74 69 63 20 76 6f 69 64 20 62 ne static void b
2760: 69 6e 64 43 61 6c 63 4b 69 6e 64 28 54 26 20 62 indCalcKind(T& b
2770: 69 6e 64 65 72 2c 20 63 6f 6e 73 74 20 43 56 61 inder, const CVa
2780: 6c 75 65 2a 20 70 56 61 6c 75 65 2c 20 69 6e 74 lue* pValue, int
2790: 20 6d 6f 64 29 0d 0a 7b 0d 0a 09 73 77 69 74 63 mod)..{...switc
27a0: 68 28 6d 6f 64 29 0d 0a 09 7b 0d 0a 09 63 61 73 h(mod)...{...cas
27b0: 65 20 30 3a 0d 0a 09 63 61 73 65 20 31 3a 0d 0a e 0:...case 1:..
27c0: 09 09 62 69 6e 64 4f 62 6a 65 63 74 28 62 69 6e ..bindObject(bin
27d0: 64 65 72 2c 20 70 56 61 6c 75 65 2c 20 6d 6f 64 der, pValue, mod
27e0: 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63 );....break;...c
27f0: 61 73 65 20 32 3a 0d 0a 09 09 62 69 6e 64 4b 69 ase 2:....bindKi
2800: 6e 64 4f 66 4f 62 6a 65 63 74 28 62 69 6e 64 65 ndOfObject(binde
2810: 72 2c 20 70 56 61 6c 75 65 29 3b 0d 0a 09 09 62 r, pValue);....b
2820: 72 65 61 6b 3b 0d 0a 09 64 65 66 61 75 6c 74 3a reak;...default:
2830: 0d 0a 09 09 62 69 6e 64 65 72 2e 65 72 72 6f 72 ....binder.error
2840: 28 22 cd e5 e8 e7 e2 e5 f1 f2 ed fb e9 20 ec ee ("........... ..
2850: e4 e8 f4 e8 ea e0 f2 ee f0 20 e4 eb ff 20 f2 e8 ......... ... ..
2860: ef e0 20 5c 22 c2 e8 e4 d0 e0 f1 f7 e5 f2 e0 5c .. \"..........\
2870: 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 74 "");...}..}....t
2880: 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 6d 65 emplate<typename
2890: 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 74 T>..inline stat
28a0: 69 63 20 76 6f 69 64 20 62 69 6e 64 41 63 63 6f ic void bindAcco
28b0: 75 6e 74 28 54 26 20 62 69 6e 64 65 72 2c 20 63 unt(T& binder, c
28c0: 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70 56 61 onst CValue* pVa
28d0: 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d 0a 7b lue, int mod)..{
28e0: 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64 29 0d 0a ...switch(mod)..
28f0: 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d 0a 09 63 .{...case 0:...c
2900: 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e 64 4f 62 ase 1:....bindOb
2910: 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56 61 ject(binder, pVa
2920: 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 lue, mod);....br
2930: 65 61 6b 3b 0d 0a 09 63 61 73 65 20 32 3a 0d 0a eak;...case 2:..
2940: 09 09 62 69 6e 64 4b 69 6e 64 4f 66 4f 62 6a 65 ..bindKindOfObje
2950: 63 74 28 62 69 6e 64 65 72 2c 20 70 56 61 6c 75 ct(binder, pValu
2960: 65 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 e);....break;...
2970: 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64 default:....bind
2980: 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5 er.error("......
2990: f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea e0 f2 ee ..... ..........
29a0: f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 d1 f7 e5 . ... .... \"...
29b0: f2 5c 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d .\"");...}..}...
29c0: 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 .template<typena
29d0: 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74 me T>..inline st
29e0: 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64 53 75 atic void bindSu
29f0: 62 63 4b 69 6e 64 28 54 26 20 62 69 6e 64 65 72 bcKind(T& binder
2a00: 2c 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 , const CValue*
2a10: 70 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 pValue, int mod)
2a20: 0d 0a 7b 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64 ..{...switch(mod
2a30: 29 0d 0a 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d )...{...case 0:.
2a40: 0a 09 63 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e ..case 1:....bin
2a50: 64 4f 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 dObject(binder,
2a60: 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 pValue, mod);...
2a70: 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 32 .break;...case 2
2a80: 3a 0d 0a 09 09 62 69 6e 64 4b 69 6e 64 4f 66 4f :....bindKindOfO
2a90: 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56 bject(binder, pV
2aa0: 61 6c 75 65 29 3b 0d 0a 09 09 62 72 65 61 6b 3b alue);....break;
2ab0: 0d 0a 09 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 ...default:....b
2ac0: 69 6e 64 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 inder.error("...
2ad0: e7 e2 e5 f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea ........ .......
2ae0: e0 f2 ee f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 .... ... .... \"
2af0: c2 e8 e4 d1 f3 e1 ea ee ed f2 ee 5c 22 22 29 3b ...........\"");
2b00: 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c ...}..}....templ
2b10: 61 74 65 3c 74 79 70 65 6e 61 6d 65 20 54 3e 0d ate<typename T>.
2b20: 0a 69 6e 6c 69 6e 65 20 73 74 61 74 69 63 20 76 .inline static v
2b30: 6f 69 64 20 62 69 6e 64 43 68 61 72 74 4f 66 41 oid bindChartOfA
2b40: 63 63 6f 75 6e 74 28 54 26 20 62 69 6e 64 65 72 ccount(T& binder
2b50: 2c 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 , const CValue*
2b60: 70 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 pValue, int mod)
2b70: 0d 0a 7b 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64 ..{...switch(mod
2b80: 29 0d 0a 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d )...{...case 0:.
2b90: 0a 09 63 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e ..case 1:....bin
2ba0: 64 4f 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 dObject(binder,
2bb0: 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 pValue, mod);...
2bc0: 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 32 .break;...case 2
2bd0: 3a 0d 0a 09 09 62 69 6e 64 4b 69 6e 64 4f 66 4f :....bindKindOfO
2be0: 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56 bject(binder, pV
2bf0: 61 6c 75 65 29 3b 0d 0a 09 09 62 72 65 61 6b 3b alue);....break;
2c00: 0d 0a 09 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 ...default:....b
2c10: 69 6e 64 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 inder.error("...
2c20: e7 e2 e5 f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea ........ .......
2c30: e0 f2 ee f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 .... ... .... \"
2c40: cf eb e0 ed d1 f7 e5 f2 ee e2 5c 22 22 29 3b 0d ..........\"");.
2c50: 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c 61 ..}..}....templa
2c60: 74 65 3c 74 79 70 65 6e 61 6d 65 20 54 3e 0d 0a te<typename T>..
2c70: 73 74 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64 static void bind
2c80: 56 61 6c 75 65 28 54 26 20 62 69 6e 64 65 72 2c Value(T& binder,
2c90: 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70 const CValue* p
2ca0: 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d Value, int mod).
2cb0: 0a 7b 0d 0a 09 69 66 28 2d 31 20 3d 3d 20 6d 6f .{...if(-1 == mo
2cc0: 64 29 0d 0a 09 7b 0d 0a 09 09 43 53 74 72 69 6e d)...{....CStrin
2cd0: 67 20 74 65 78 74 3b 0d 0a 09 09 56 61 6c 75 65 g text;....Value
2ce0: 53 74 72 57 6f 72 6b 3c 74 6f 73 32 33 3e 3a 3a StrWork<tos23>::
2cf0: 76 61 6c 32 73 74 72 28 2a 70 56 61 6c 75 65 2c val2str(*pValue,
2d00: 20 74 65 78 74 29 3b 0d 0a 09 09 62 69 6e 64 65 text);....binde
2d10: 72 2e 62 69 6e 64 54 65 78 74 28 74 65 78 74 29 r.bindText(text)
2d20: 3b 0d 0a 09 09 72 65 74 75 72 6e 3b 0d 0a 09 7d ;....return;...}
2d30: 0d 0a 09 73 77 69 74 63 68 28 70 56 61 6c 75 65 ...switch(pValue
2d40: 2d 3e 74 79 70 65 29 0d 0a 09 7b 0d 0a 09 63 61 ->type)...{...ca
2d50: 73 65 20 74 79 70 65 55 6e 64 65 66 69 6e 65 64 se typeUndefined
2d60: 3a 0d 0a 09 09 62 69 6e 64 65 72 2e 62 69 6e 64 :....binder.bind
2d70: 4e 75 6c 6c 28 29 3b 0d 0a 09 09 62 72 65 61 6b Null();....break
2d80: 3b 0d 0a 09 63 61 73 65 20 74 79 70 65 4e 75 6d ;...case typeNum
2d90: 62 65 72 3a 0d 0a 09 09 62 69 6e 64 4e 75 6d 65 ber:....bindNume
2da0: 72 69 63 28 62 69 6e 64 65 72 2c 20 70 56 61 6c ric(binder, pVal
2db0: 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 65 ue, mod);....bre
2dc0: 61 6b 3b 0d 0a 09 63 61 73 65 20 74 79 70 65 53 ak;...case typeS
2dd0: 74 72 69 6e 67 3a 0d 0a 09 09 62 69 6e 64 53 74 tring:....bindSt
2de0: 72 69 6e 67 28 62 69 6e 64 65 72 2c 20 70 56 61 ring(binder, pVa
2df0: 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 lue, mod);....br
2e00: 65 61 6b 3b 0d 0a 09 63 61 73 65 20 74 79 70 65 eak;...case type
2e10: 44 61 74 65 3a 0d 0a 09 09 62 69 6e 64 44 61 74 Date:....bindDat
2e20: 65 28 62 69 6e 64 65 72 2c 20 70 56 61 6c 75 65 e(binder, pValue
2e30: 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 65 61 6b , mod);....break
2e40: 3b 0d 0a 09 63 61 73 65 20 74 79 70 65 45 6e 75 ;...case typeEnu
2e50: 6d 3a 0d 0a 09 09 62 69 6e 64 45 6e 75 6d 28 62 m:....bindEnum(b
2e60: 69 6e 64 65 72 2c 20 70 56 61 6c 75 65 2c 20 6d inder, pValue, m
2e70: 6f 64 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a od);....break;..
2e80: 09 63 61 73 65 20 74 79 70 65 52 65 66 65 72 65 .case typeRefere
2e90: 6e 63 65 3a 0d 0a 09 09 62 69 6e 64 52 65 66 65 nce:....bindRefe
2ea0: 72 65 6e 63 65 28 62 69 6e 64 65 72 2c 20 70 56 rence(binder, pV
2eb0: 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 alue, mod);....b
2ec0: 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 74 79 70 reak;...case typ
2ed0: 65 44 6f 63 75 6d 65 6e 74 3a 0d 0a 09 09 62 69 eDocument:....bi
2ee0: 6e 64 44 6f 63 75 6d 65 6e 74 28 62 69 6e 64 65 ndDocument(binde
2ef0: 72 2c 20 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b r, pValue, mod);
2f00: 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 ....break;...cas
2f10: 65 20 74 79 70 65 43 61 6c 65 6e 64 61 72 3a 0d e typeCalendar:.
2f20: 0a 09 09 62 69 6e 64 43 61 6c 65 6e 64 61 72 28 ...bindCalendar(
2f30: 62 69 6e 64 65 72 2c 20 70 56 61 6c 75 65 2c 20 binder, pValue,
2f40: 6d 6f 64 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d mod);....break;.
2f50: 0a 09 63 61 73 65 20 74 79 70 65 43 61 6c 63 4b ..case typeCalcK
2f60: 69 6e 64 3a 0d 0a 09 09 62 69 6e 64 43 61 6c 63 ind:....bindCalc
2f70: 4b 69 6e 64 28 62 69 6e 64 65 72 2c 20 70 56 61 Kind(binder, pVa
2f80: 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 lue, mod);....br
2f90: 65 61 6b 3b 0d 0a 09 63 61 73 65 20 74 79 70 65 eak;...case type
2fa0: 41 63 63 6f 75 6e 74 3a 0d 0a 09 09 62 69 6e 64 Account:....bind
2fb0: 41 63 63 6f 75 6e 74 28 62 69 6e 64 65 72 2c 20 Account(binder,
2fc0: 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 pValue, mod);...
2fd0: 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 74 .break;...case t
2fe0: 79 70 65 53 75 62 63 4b 69 6e 64 3a 0d 0a 09 09 ypeSubcKind:....
2ff0: 62 69 6e 64 53 75 62 63 4b 69 6e 64 28 62 69 6e bindSubcKind(bin
3000: 64 65 72 2c 20 70 56 61 6c 75 65 2c 20 6d 6f 64 der, pValue, mod
3010: 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63 );....break;...c
3020: 61 73 65 20 74 79 70 65 43 68 61 72 74 4f 66 41 ase typeChartOfA
3030: 63 63 3a 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 cc:....break;...
3040: 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64 default:....bind
3050: 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5 er.error("......
3060: f1 f2 ed fb e9 20 f2 e8 ef 20 e7 ed e0 f7 e5 ed ..... ... ......
3070: e8 ff 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a ..");...}..}..