diff --git a/Build/Build.fbl6 b/Build/Build.fbl6
index f6d7a9c..f13133b 100644
Binary files a/Build/Build.fbl6 and b/Build/Build.fbl6 differ
diff --git a/Database/udfs/funciones.pas b/Database/udfs/funciones.pas
index 557fd62..9bd0c51 100644
--- a/Database/udfs/funciones.pas
+++ b/Database/udfs/funciones.pas
@@ -8,290 +8,27 @@ implementation
uses
Forms, Classes, SysUtils, StdCtrls, ComCtrls,
- RVRTF, RVRTFErr, Menus, RVTypes;
-
-type
- TConversor = class(TObject)
- private
- FirstLine: Boolean;
- procedure DoReaderText(Sender: TRVRTFReader; const Text: TRVAnsiString;
- Position: TRVRTFPosition);
- public
- RTFText: TRVAnsiString;
- function ExtractTextFromRTF(const AStream: TStream): Boolean;
- end;
-
-{ TConversor }
-
-procedure TConversor.DoReaderText(Sender: TRVRTFReader;
- const Text: TRVAnsiString; Position: TRVRTFPosition);
-begin
- if (Position <> rtf_ts_ContinuePara) and not FirstLine then
- RTFText := RTFText+#13#10;
- FirstLine := False;
- RTFText := RTFText+Text;
-end;
-
-function TConversor.ExtractTextFromRTF(const AStream: TStream): Boolean;
-var
- Parser: TRVRTFReader;
-begin
- {FirstLine := True;}
- parser := TRVRTFReader.Create(nil);
- try
- Parser.OnNewText := DoReaderText;
- Result := (Parser.ReadFromStream(AStream) = rtf_ec_OK);
- finally
- Parser.Free;
- end;
-end;
+ Menus, Windows;
function RtfToText(Cadena: PChar): PChar;
var
AStream : TStringStream;
- AConversor : TConversor;
+ ARichEdit: TRichEdit;
begin
- AStream := TStringStream.Create(Cadena);
- AConversor := TConversor.Create;
+ ARichEdit := TRichEdit.CreateParented(HWND_MESSAGE);
try
- AConversor.ExtractTextFromRTF(AStream);
- Result := PChar(AConversor.RTFText);
+ AStream := TStringStream.Create(Cadena);
+ try
+ ARichEdit.SelectAll;
+ ARichEdit.SelText := StrPas(Cadena);
+ Result := PChar(ARichEdit.Text);
+ finally
+ FreeAndNIL(AStream);
+ end;
finally
- FreeAndNil(AConversor);
- FreeAndNIL(AStream);
+ FreeAndNIL(ARichEdit);
end;
end;
-
-
-
-
-
-
-
-// NO USAR LAS FUNCIONES QUE VIENEN A CONTINUACIÓN
-
-
-// Esta función falla cuando hay caracteres especiales en el texto (ñ, por ejemplo).
-// Mejor la de abajo.
-
-function RtfToText2(Cadena: PChar): PChar;
-var
- i: integer;
- CadenaAux1: String;
-
-begin
- //Si no tiene ninguna llave no esta guardado como rtf
- if (Pos('{', Cadena) = 0) then
- Result := Cadena
- else
- //Esta guardado con rtf
- begin
- //Quitamos todo lo que está antes de \fs1x
- i := Pos('\fs', Cadena);
- CadenaAux1 := Copy(Cadena, i, StrLen(Cadena)-1);
-
- //Quitamos la parte de delante \fs1x
- i:= Pos(' ', CadenaAux1);
- CadenaAux1 := Copy(PChar(CadenaAux1), i+1, StrLen(PChar(CadenaAux1))-1);
-
- //Quitamos todo lo de la parte de atras a partir de la primera barra \ que tengamos
- i:= Pos('\', CadenaAux1);
- CadenaAux1 := Copy(PChar(CadenaAux1), 0, i-1);
-
- Result := PChar(CadenaAux1);
- end;
-end;
-
-
-{
- Convert RTF enabled text to plain.
- http://www.delphipraxis.net/topic45179.html
-}
-
-// Esta función falla porque se come letras del final de cada línea (¿?)
-
-// HAY QUE LIMPIAR LA CADENA DE ENTRADA DE SALTOS DE LÍNEA (#$D#$A) POR QUE
-// SI NO, NO ES UNA CADENA CON TEXTO RTF VÁLIDO
-
-function RtfToText3(Cadena: PChar): PChar;
-const
- SaltoLinea = #13#10; //--> #$D#$A
-var
- aSource: string; // <- Para almacenar la cadena de entrada sin saltos de línea
- Source: string;
- NChar: Integer;
-
- function ProcessGroupRecursevly: string;
-
- function HexToInt(HexStr: String): Integer;
- begin
- result := StrToInt('$' + HexStr);
- end;
-
- procedure SkipStar;
- var
- BracesOpened: Integer;
- Escaped: Boolean;
- begin
- BracesOpened:=1;
- Escaped:=false;
- while BracesOpened>0
- do begin
- Inc (NChar);
- case Source [NChar] of
- '{': if Escaped
- then Escaped:=false
- else Inc (BracesOpened);
- '}': if Escaped
- then Escaped:=false
- else Dec (BracesOpened);
- '\': Escaped:=not Escaped;
- else Escaped:=false;
- end;
- end;
- end;
-
- function UnicodeCharCode2ANSIChar (aCode: LongInt): Char;
- type
- TUnicode2ANSITable=array [$0410..$044f] of Char;
- const
- Unicode2ANSITable: TUnicode2AnsiTable=('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß',
- 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ');
- begin
- if (Low (Unicode2ANSITable)<=aCode) and (aCode<=High (Unicode2ANSITable)) then
- UnicodeCharCode2ANSIChar:=Unicode2ANSITable [aCode]
- else UnicodeCharCode2ANSIChar:='?';
- end;
-
- var
- Control, NumericValue, TextValue: string;
- begin
- Result:='';
- Inc (NChar);
- while NChar<=Length (Source)
- do case Source [NChar] of
- '{': Result:=Result+ProcessGroupRecursevly;
- '}': begin
- Inc (NChar);
- Break;
- end;
- '\': begin
- Inc (NChar);
- case Source [NChar] of
- '''': begin
- Result:=Result+Chr (HexToInt (Copy (Source, NChar+1, 2)));
- Inc (NChar, 3);
- end;
- '~': Result:=Result+#$20;
- '*': SkipStar;
- 'a'..'z': begin
- Control:='';
- while Source [NChar] in ['a'..'z']
- do begin
- Control:=Control+Source [NChar];
- Inc (NChar);
- end;
- if Source [NChar]='-'
- then begin
- NumericValue:=Source [NChar];
- Inc (NChar);
- end
- else NumericValue:='';
- while Source [NChar] in ['0'..'9']
- do begin
- NumericValue:=NumericValue+Source [NChar];
- Inc (NChar);
- end;
- if Source [NChar]='{'
- then ProcessGroupRecursevly;
- TextValue:='';
- if not (Source [NChar] in ['a'..'z', '{', '}', '\'])
- then begin
- Inc (NChar);
- while not (Source [NChar] in ['{', '}', '\'])
- do begin
- TextValue:=TextValue+Source [NChar];
- Inc (NChar);
- end;
- end;
- if (Control='line') or (Control='par')
- then Result:=Result+#$0D#$0A
- else if Control='tab'
- then Result:=Result+#$09
- else if Control='u'
- then Result:=Result+UnicodeCharCode2ANSIChar (StrToInt (NumericValue))
- else if Control='colortbl'
- then TextValue:='';
- if Length (TextValue)>0
- then if (not ((TextValue [Length (TextValue)]=';') and (Source [NChar]='}')))
- then begin
- Result:=Result+TextValue;
- TextValue:='';
- end;
- end;
- else begin
- Result:=Result+Source [NChar];
- Inc (NChar);
- end;
- end;
- end;
- else begin
- Result:=Result+Source [NChar];
- Inc (NChar);
- end;
- end;
- end;
-
- function InitSource: Boolean;
- var
- BracesCount: Integer;
- Escaped: Boolean;
- begin
- if Copy (aSource, 1, 5) <> '{\rtf' then
- InitSource:=false
- else begin
- Source:='';
- BracesCount:=0;
- Escaped:=false;
- NChar:=1;
- while (NChar<=Length (aSource)) and (BracesCount>=0)
- do begin
- if not (aSource [NChar] in [#$0D, #$0A])
- then begin
- Source:=Source+aSource [NChar];
- case aSource [NChar] of
- '{': if not Escaped
- then Inc (BracesCount)
- else Escaped:=false;
- '}': if not Escaped
- then Dec (BracesCount)
- else Escaped:=false;
- '\': Escaped:=true;
- else Escaped:=false;
- end;
- end;
- Inc (NChar);
- end;
- InitSource:=BracesCount=0;
- end;
- end;
-
-begin
- // Hay que quitar el salto de línea al final de la aSource RTF
- aSource := Copy(Cadena, 1, length(Cadena)-2);
-
- // Cambiar los saltos de línea que no son de RTF por un caracter para
- // que se limpien.
-// aSource := StringReplace(aSource, SaltoLinea, '^', [rfreplaceall]);
-
- if InitSource then
- begin
- NChar:=1;
- Result:= PChar(ProcessGroupRecursevly);
- end
- else
- Result := PChar(aSource);
-end;
-
end.
+
diff --git a/Database/udfs/udf_RtfToText.dll b/Database/udfs/udf_RtfToText.dll
index 5f0c6b0..d4aa640 100644
Binary files a/Database/udfs/udf_RtfToText.dll and b/Database/udfs/udf_RtfToText.dll differ
diff --git a/Database/udfs/udf_RtfToText.drc b/Database/udfs/udf_RtfToText.drc
index 95b9fbb..0cf17f5 100644
--- a/Database/udfs/udf_RtfToText.drc
+++ b/Database/udfs/udf_RtfToText.drc
@@ -8,243 +8,243 @@
resources were bound to the produced executable.
*/
-#define Consts_SDockZoneHasNoCtl 65296
-#define Consts_SDockZoneVersionConflict 65297
-#define Consts_SANSIEncoding 65298
-#define Consts_SASCIIEncoding 65299
-#define Consts_SUnicodeEncoding 65300
-#define Consts_SBigEndianEncoding 65301
-#define Consts_SUTF8Encoding 65302
-#define Consts_SUTF7Encoding 65303
-#define JConsts_sChangeJPGSize 65304
-#define JConsts_sJPEGError 65305
-#define JConsts_sJPEGImageFile 65306
-#define Consts_SmkcLeft 65312
-#define Consts_SmkcUp 65313
-#define Consts_SmkcRight 65314
-#define Consts_SmkcDown 65315
-#define Consts_SmkcIns 65316
-#define Consts_SmkcDel 65317
-#define Consts_SmkcShift 65318
-#define Consts_SmkcCtrl 65319
-#define Consts_SmkcAlt 65320
-#define Consts_SInvalidClipFmt 65321
-#define Consts_SIconToClipboard 65322
-#define Consts_SCannotOpenClipboard 65323
-#define Consts_SDuplicateMenus 65324
-#define Consts_SDockedCtlNeedsName 65325
-#define Consts_SDockTreeRemoveError 65326
-#define Consts_SDockZoneNotFound 65327
-#define Consts_SMsgDlgHelp 65328
-#define Consts_SMsgDlgAbort 65329
-#define Consts_SMsgDlgRetry 65330
-#define Consts_SMsgDlgIgnore 65331
-#define Consts_SMsgDlgAll 65332
-#define Consts_SMsgDlgNoToAll 65333
-#define Consts_SMsgDlgYesToAll 65334
-#define Consts_SmkcBkSp 65335
-#define Consts_SmkcTab 65336
-#define Consts_SmkcEsc 65337
-#define Consts_SmkcEnter 65338
-#define Consts_SmkcSpace 65339
-#define Consts_SmkcPgUp 65340
-#define Consts_SmkcPgDn 65341
-#define Consts_SmkcEnd 65342
-#define Consts_SmkcHome 65343
-#define Consts_SRetryButton 65344
-#define Consts_SAbortButton 65345
-#define Consts_SAllButton 65346
-#define Consts_SCannotDragForm 65347
-#define Consts_SVMetafiles 65348
-#define Consts_SVEnhMetafiles 65349
-#define Consts_SVIcons 65350
-#define Consts_SVBitmaps 65351
-#define Consts_SMsgDlgWarning 65352
-#define Consts_SMsgDlgError 65353
-#define Consts_SMsgDlgInformation 65354
-#define Consts_SMsgDlgConfirm 65355
-#define Consts_SMsgDlgYes 65356
-#define Consts_SMsgDlgNo 65357
-#define Consts_SMsgDlgOK 65358
-#define Consts_SMsgDlgCancel 65359
-#define Consts_SVisibleChanged 65360
-#define Consts_SCannotShowModal 65361
-#define Consts_SMenuIndexError 65362
-#define Consts_SMenuReinserted 65363
-#define Consts_SMenuNotFound 65364
-#define Consts_SNoTimers 65365
-#define Consts_SGroupIndexTooLow 65366
-#define Consts_SNoMDIForm 65367
-#define Consts_SControlParentSetToSelf 65368
-#define Consts_SOKButton 65369
-#define Consts_SCancelButton 65370
-#define Consts_SYesButton 65371
-#define Consts_SNoButton 65372
-#define Consts_SHelpButton 65373
-#define Consts_SCloseButton 65374
-#define Consts_SIgnoreButton 65375
-#define Consts_SScanLine 65376
-#define Consts_SChangeIconSize 65377
-#define Consts_SUnknownExtension 65378
-#define Consts_SUnknownClipboardFormat 65379
-#define Consts_SOutOfResources 65380
-#define Consts_SNoCanvasHandle 65381
-#define Consts_SInvalidImageSize 65382
-#define Consts_SInvalidImageList 65383
-#define Consts_SImageIndexError 65384
-#define Consts_SImageReadFail 65385
-#define Consts_SImageWriteFail 65386
-#define Consts_SWindowDCError 65387
-#define Consts_SWindowClass 65388
-#define Consts_SCannotFocus 65389
-#define Consts_SParentRequired 65390
-#define Consts_SMDIChildNotVisible 65391
-#define RTLConsts_SSeekNotImplemented 65392
-#define RTLConsts_SSortedListError 65393
-#define RTLConsts_SUnknownGroup 65394
-#define RTLConsts_SUnknownProperty 65395
-#define RTLConsts_SWriteError 65396
-#define RTLConsts_SThreadCreateError 65397
-#define RTLConsts_SThreadError 65398
-#define HelpIntfs_hNoTableOfContents 65399
-#define HelpIntfs_hNothingFound 65400
-#define HelpIntfs_hNoContext 65401
-#define HelpIntfs_hNoContextFound 65402
-#define HelpIntfs_hNoTopics 65403
-#define Consts_SInvalidBitmap 65404
-#define Consts_SInvalidIcon 65405
-#define Consts_SInvalidMetafile 65406
-#define Consts_SInvalidPixelFormat 65407
-#define RTLConsts_SFOpenErrorEx 65408
-#define RTLConsts_SInvalidImage 65409
-#define RTLConsts_SInvalidName 65410
-#define RTLConsts_SInvalidProperty 65411
-#define RTLConsts_SInvalidPropertyPath 65412
-#define RTLConsts_SInvalidPropertyValue 65413
-#define RTLConsts_SInvalidRegType 65414
-#define RTLConsts_SListCapacityError 65415
-#define RTLConsts_SListCountError 65416
-#define RTLConsts_SListIndexError 65417
-#define RTLConsts_SMemoryStreamError 65418
-#define RTLConsts_SPropertyException 65419
-#define RTLConsts_SReadError 65420
-#define RTLConsts_SReadOnlyProperty 65421
-#define RTLConsts_SRegGetDataFailed 65422
-#define RTLConsts_SResNotFound 65423
-#define ComConst_SVarNotObject 65424
-#define ComConst_STooManyParams 65425
-#define ComConst_SAutomationWarning 65426
-#define ComConst_SNoCloseActiveServer1 65427
-#define ComConst_SNoCloseActiveServer2 65428
-#define RTLConsts_SAncestorNotFound 65429
-#define RTLConsts_SAssignError 65430
-#define RTLConsts_SBitsIndexError 65431
-#define RTLConsts_SCantWriteResourceStreamError 65432
-#define RTLConsts_SCheckSynchronizeError 65433
-#define RTLConsts_SClassNotFound 65434
-#define RTLConsts_SDuplicateClass 65435
-#define RTLConsts_SDuplicateItem 65436
-#define RTLConsts_SDuplicateName 65437
-#define RTLConsts_SDuplicateString 65438
-#define RTLConsts_SFCreateErrorEx 65439
-#define SysConst_SShortDayNameSun 65440
-#define SysConst_SShortDayNameMon 65441
-#define SysConst_SShortDayNameTue 65442
-#define SysConst_SShortDayNameWed 65443
-#define SysConst_SShortDayNameThu 65444
-#define SysConst_SShortDayNameFri 65445
-#define SysConst_SShortDayNameSat 65446
-#define SysConst_SLongDayNameSun 65447
-#define SysConst_SLongDayNameMon 65448
-#define SysConst_SLongDayNameTue 65449
-#define SysConst_SLongDayNameWed 65450
-#define SysConst_SLongDayNameThu 65451
-#define SysConst_SLongDayNameFri 65452
-#define SysConst_SLongDayNameSat 65453
-#define ComConst_SOleError 65454
-#define ComConst_SNoMethod 65455
-#define SysConst_SShortMonthNameSep 65456
-#define SysConst_SShortMonthNameOct 65457
-#define SysConst_SShortMonthNameNov 65458
-#define SysConst_SShortMonthNameDec 65459
-#define SysConst_SLongMonthNameJan 65460
-#define SysConst_SLongMonthNameFeb 65461
-#define SysConst_SLongMonthNameMar 65462
-#define SysConst_SLongMonthNameApr 65463
-#define SysConst_SLongMonthNameMay 65464
-#define SysConst_SLongMonthNameJun 65465
-#define SysConst_SLongMonthNameJul 65466
-#define SysConst_SLongMonthNameAug 65467
-#define SysConst_SLongMonthNameSep 65468
-#define SysConst_SLongMonthNameOct 65469
-#define SysConst_SLongMonthNameNov 65470
-#define SysConst_SLongMonthNameDec 65471
-#define SysConst_SAssertionFailed 65472
-#define SysConst_SIntfCastError 65473
-#define SysConst_SSafecallException 65474
-#define SysConst_SAssertError 65475
-#define SysConst_SAbstractError 65476
-#define SysConst_SModuleAccessViolation 65477
-#define SysConst_SOSError 65478
-#define SysConst_SUnkOSError 65479
-#define SysConst_SShortMonthNameJan 65480
-#define SysConst_SShortMonthNameFeb 65481
-#define SysConst_SShortMonthNameMar 65482
-#define SysConst_SShortMonthNameApr 65483
-#define SysConst_SShortMonthNameMay 65484
-#define SysConst_SShortMonthNameJun 65485
-#define SysConst_SShortMonthNameJul 65486
-#define SysConst_SShortMonthNameAug 65487
-#define SysConst_SWriteAccess 65488
-#define SysConst_SVarArrayCreate 65489
-#define SysConst_SVarArrayBounds 65490
-#define SysConst_SVarArrayLocked 65491
-#define SysConst_SInvalidVarCast 65492
-#define SysConst_SInvalidVarOp 65493
-#define SysConst_SInvalidVarNullOp 65494
-#define SysConst_SInvalidVarOpWithHResultWithPrefix 65495
-#define SysConst_SVarTypeCouldNotConvert 65496
-#define SysConst_SVarTypeConvertOverflow 65497
-#define SysConst_SVarOverflow 65498
-#define SysConst_SVarInvalid 65499
-#define SysConst_SVarBadType 65500
-#define SysConst_SVarNotImplemented 65501
-#define SysConst_SVarUnexpected 65502
-#define SysConst_SExternalException 65503
-#define SysConst_SOverflow 65504
-#define SysConst_SUnderflow 65505
-#define SysConst_SInvalidPointer 65506
-#define SysConst_SInvalidCast 65507
-#define SysConst_SAccessViolationArg3 65508
-#define SysConst_SAccessViolationNoArg 65509
-#define SysConst_SStackOverflow 65510
-#define SysConst_SControlC 65511
-#define SysConst_SPrivilege 65512
-#define SysConst_SOperationAborted 65513
-#define SysConst_SException 65514
-#define SysConst_SExceptTitle 65515
-#define SysConst_SInvalidFormat 65516
-#define SysConst_SArgumentMissing 65517
-#define SysConst_SDispatchError 65518
-#define SysConst_SReadAccess 65519
+#define ComStrs_sRichEditLoadFail 65296
+#define ComStrs_sRichEditSaveFail 65297
+#define Consts_SIconToClipboard 65312
+#define Consts_SInvalidMemoSize 65313
+#define Consts_SNoDefaultPrinter 65314
+#define Consts_SDuplicateMenus 65315
+#define Consts_SDockedCtlNeedsName 65316
+#define Consts_SDockTreeRemoveError 65317
+#define Consts_SDockZoneNotFound 65318
+#define Consts_SDockZoneHasNoCtl 65319
+#define Consts_SDockZoneVersionConflict 65320
+#define Consts_SANSIEncoding 65321
+#define Consts_SASCIIEncoding 65322
+#define Consts_SUnicodeEncoding 65323
+#define Consts_SBigEndianEncoding 65324
+#define Consts_SUTF8Encoding 65325
+#define Consts_SUTF7Encoding 65326
+#define ComStrs_sRichEditInsertError 65327
+#define Consts_SmkcEsc 65328
+#define Consts_SmkcEnter 65329
+#define Consts_SmkcSpace 65330
+#define Consts_SmkcPgUp 65331
+#define Consts_SmkcPgDn 65332
+#define Consts_SmkcEnd 65333
+#define Consts_SmkcHome 65334
+#define Consts_SmkcLeft 65335
+#define Consts_SmkcUp 65336
+#define Consts_SmkcRight 65337
+#define Consts_SmkcDown 65338
+#define Consts_SmkcIns 65339
+#define Consts_SmkcDel 65340
+#define Consts_SmkcShift 65341
+#define Consts_SmkcCtrl 65342
+#define Consts_SmkcAlt 65343
+#define Consts_SMsgDlgError 65344
+#define Consts_SMsgDlgInformation 65345
+#define Consts_SMsgDlgConfirm 65346
+#define Consts_SMsgDlgYes 65347
+#define Consts_SMsgDlgNo 65348
+#define Consts_SMsgDlgOK 65349
+#define Consts_SMsgDlgCancel 65350
+#define Consts_SMsgDlgHelp 65351
+#define Consts_SMsgDlgAbort 65352
+#define Consts_SMsgDlgRetry 65353
+#define Consts_SMsgDlgIgnore 65354
+#define Consts_SMsgDlgAll 65355
+#define Consts_SMsgDlgNoToAll 65356
+#define Consts_SMsgDlgYesToAll 65357
+#define Consts_SmkcBkSp 65358
+#define Consts_SmkcTab 65359
+#define Consts_SDeviceOnPort 65360
+#define Consts_SGroupIndexTooLow 65361
+#define Consts_SNoMDIForm 65362
+#define Consts_SControlParentSetToSelf 65363
+#define Consts_SOKButton 65364
+#define Consts_SCancelButton 65365
+#define Consts_SYesButton 65366
+#define Consts_SNoButton 65367
+#define Consts_SHelpButton 65368
+#define Consts_SCloseButton 65369
+#define Consts_SIgnoreButton 65370
+#define Consts_SRetryButton 65371
+#define Consts_SAbortButton 65372
+#define Consts_SAllButton 65373
+#define Consts_SCannotDragForm 65374
+#define Consts_SMsgDlgWarning 65375
+#define Consts_SImageWriteFail 65376
+#define Consts_SWindowDCError 65377
+#define Consts_SWindowClass 65378
+#define Consts_SCannotFocus 65379
+#define Consts_SParentRequired 65380
+#define Consts_SParentGivenNotAParent 65381
+#define Consts_SMDIChildNotVisible 65382
+#define Consts_SVisibleChanged 65383
+#define Consts_SCannotShowModal 65384
+#define Consts_SMenuIndexError 65385
+#define Consts_SMenuReinserted 65386
+#define Consts_SMenuNotFound 65387
+#define Consts_SNoTimers 65388
+#define Consts_SNotPrinting 65389
+#define Consts_SPrinting 65390
+#define Consts_SInvalidPrinter 65391
+#define RTLConsts_SWriteError 65392
+#define HelpIntfs_hNoTableOfContents 65393
+#define HelpIntfs_hNothingFound 65394
+#define HelpIntfs_hNoContext 65395
+#define HelpIntfs_hNoContextFound 65396
+#define HelpIntfs_hNoTopics 65397
+#define Consts_SInvalidBitmap 65398
+#define Consts_SInvalidIcon 65399
+#define Consts_SChangeIconSize 65400
+#define Consts_SUnknownClipboardFormat 65401
+#define Consts_SOutOfResources 65402
+#define Consts_SNoCanvasHandle 65403
+#define Consts_SInvalidImageSize 65404
+#define Consts_SInvalidImageList 65405
+#define Consts_SImageIndexError 65406
+#define Consts_SImageReadFail 65407
+#define RTLConsts_SInvalidPropertyPath 65408
+#define RTLConsts_SInvalidPropertyValue 65409
+#define RTLConsts_SInvalidRegType 65410
+#define RTLConsts_SListCapacityError 65411
+#define RTLConsts_SListCountError 65412
+#define RTLConsts_SListIndexError 65413
+#define RTLConsts_SMemoryStreamError 65414
+#define RTLConsts_SPropertyException 65415
+#define RTLConsts_SReadError 65416
+#define RTLConsts_SReadOnlyProperty 65417
+#define RTLConsts_SRegGetDataFailed 65418
+#define RTLConsts_SResNotFound 65419
+#define RTLConsts_SSeekNotImplemented 65420
+#define RTLConsts_SSortedListError 65421
+#define RTLConsts_SUnknownGroup 65422
+#define RTLConsts_SUnknownProperty 65423
+#define ComConst_SNoCloseActiveServer1 65424
+#define ComConst_SNoCloseActiveServer2 65425
+#define RTLConsts_SAncestorNotFound 65426
+#define RTLConsts_SAssignError 65427
+#define RTLConsts_SBitsIndexError 65428
+#define RTLConsts_SCantWriteResourceStreamError 65429
+#define RTLConsts_SCheckSynchronizeError 65430
+#define RTLConsts_SClassNotFound 65431
+#define RTLConsts_SDuplicateClass 65432
+#define RTLConsts_SDuplicateItem 65433
+#define RTLConsts_SDuplicateName 65434
+#define RTLConsts_SDuplicateString 65435
+#define RTLConsts_SFCreateErrorEx 65436
+#define RTLConsts_SFOpenErrorEx 65437
+#define RTLConsts_SInvalidImage 65438
+#define RTLConsts_SInvalidName 65439
+#define SysConst_SShortDayNameWed 65440
+#define SysConst_SShortDayNameThu 65441
+#define SysConst_SShortDayNameFri 65442
+#define SysConst_SShortDayNameSat 65443
+#define SysConst_SLongDayNameSun 65444
+#define SysConst_SLongDayNameMon 65445
+#define SysConst_SLongDayNameTue 65446
+#define SysConst_SLongDayNameWed 65447
+#define SysConst_SLongDayNameThu 65448
+#define SysConst_SLongDayNameFri 65449
+#define SysConst_SLongDayNameSat 65450
+#define ComConst_SOleError 65451
+#define ComConst_SNoMethod 65452
+#define ComConst_SVarNotObject 65453
+#define ComConst_STooManyParams 65454
+#define ComConst_SAutomationWarning 65455
+#define SysConst_SShortMonthNameDec 65456
+#define SysConst_SLongMonthNameJan 65457
+#define SysConst_SLongMonthNameFeb 65458
+#define SysConst_SLongMonthNameMar 65459
+#define SysConst_SLongMonthNameApr 65460
+#define SysConst_SLongMonthNameMay 65461
+#define SysConst_SLongMonthNameJun 65462
+#define SysConst_SLongMonthNameJul 65463
+#define SysConst_SLongMonthNameAug 65464
+#define SysConst_SLongMonthNameSep 65465
+#define SysConst_SLongMonthNameOct 65466
+#define SysConst_SLongMonthNameNov 65467
+#define SysConst_SLongMonthNameDec 65468
+#define SysConst_SShortDayNameSun 65469
+#define SysConst_SShortDayNameMon 65470
+#define SysConst_SShortDayNameTue 65471
+#define SysConst_SAssertError 65472
+#define SysConst_SAbstractError 65473
+#define SysConst_SModuleAccessViolation 65474
+#define SysConst_SOSError 65475
+#define SysConst_SUnkOSError 65476
+#define SysConst_SShortMonthNameJan 65477
+#define SysConst_SShortMonthNameFeb 65478
+#define SysConst_SShortMonthNameMar 65479
+#define SysConst_SShortMonthNameApr 65480
+#define SysConst_SShortMonthNameMay 65481
+#define SysConst_SShortMonthNameJun 65482
+#define SysConst_SShortMonthNameJul 65483
+#define SysConst_SShortMonthNameAug 65484
+#define SysConst_SShortMonthNameSep 65485
+#define SysConst_SShortMonthNameOct 65486
+#define SysConst_SShortMonthNameNov 65487
+#define SysConst_SVarArrayBounds 65488
+#define SysConst_SVarArrayLocked 65489
+#define SysConst_SInvalidVarCast 65490
+#define SysConst_SInvalidVarOp 65491
+#define SysConst_SInvalidVarOpWithHResultWithPrefix 65492
+#define SysConst_SVarTypeCouldNotConvert 65493
+#define SysConst_SVarTypeConvertOverflow 65494
+#define SysConst_SVarOverflow 65495
+#define SysConst_SVarInvalid 65496
+#define SysConst_SVarBadType 65497
+#define SysConst_SVarNotImplemented 65498
+#define SysConst_SVarUnexpected 65499
+#define SysConst_SExternalException 65500
+#define SysConst_SAssertionFailed 65501
+#define SysConst_SIntfCastError 65502
+#define SysConst_SSafecallException 65503
+#define SysConst_SUnderflow 65504
+#define SysConst_SInvalidPointer 65505
+#define SysConst_SInvalidCast 65506
+#define SysConst_SAccessViolationArg3 65507
+#define SysConst_SAccessViolationNoArg 65508
+#define SysConst_SStackOverflow 65509
+#define SysConst_SControlC 65510
+#define SysConst_SPrivilege 65511
+#define SysConst_SException 65512
+#define SysConst_SExceptTitle 65513
+#define SysConst_SInvalidFormat 65514
+#define SysConst_SArgumentMissing 65515
+#define SysConst_SDispatchError 65516
+#define SysConst_SReadAccess 65517
+#define SysConst_SWriteAccess 65518
+#define SysConst_SVarArrayCreate 65519
#define SysConst_SInvalidInteger 65520
-#define SysConst_SInvalidFloat 65521
-#define SysConst_SOutOfMemory 65522
-#define SysConst_SInOutError 65523
-#define SysConst_SFileNotFound 65524
-#define SysConst_SInvalidFilename 65525
-#define SysConst_STooManyOpenFiles 65526
-#define SysConst_SAccessDenied 65527
-#define SysConst_SEndOfFile 65528
-#define SysConst_SDiskFull 65529
-#define SysConst_SInvalidInput 65530
-#define SysConst_SDivByZero 65531
-#define SysConst_SRangeError 65532
-#define SysConst_SIntOverflow 65533
-#define SysConst_SInvalidOp 65534
-#define SysConst_SZeroDivide 65535
+#define SysConst_SOutOfMemory 65521
+#define SysConst_SInOutError 65522
+#define SysConst_SFileNotFound 65523
+#define SysConst_SInvalidFilename 65524
+#define SysConst_STooManyOpenFiles 65525
+#define SysConst_SAccessDenied 65526
+#define SysConst_SEndOfFile 65527
+#define SysConst_SDiskFull 65528
+#define SysConst_SInvalidInput 65529
+#define SysConst_SDivByZero 65530
+#define SysConst_SRangeError 65531
+#define SysConst_SIntOverflow 65532
+#define SysConst_SInvalidOp 65533
+#define SysConst_SZeroDivide 65534
+#define SysConst_SOverflow 65535
STRINGTABLE
BEGIN
+ ComStrs_sRichEditLoadFail, "Failed to Load Stream"
+ ComStrs_sRichEditSaveFail, "Failed to Save Stream"
+ Consts_SIconToClipboard, "Clipboard does not support Icons"
+ Consts_SInvalidMemoSize, "Text exceeds memo capacity"
+ Consts_SNoDefaultPrinter, "There is no default printer currently selected"
+ Consts_SDuplicateMenus, "Menu '%s' is already being used by another form"
+ Consts_SDockedCtlNeedsName, "Docked control must have a name"
+ Consts_SDockTreeRemoveError, "Error removing control from dock tree"
+ Consts_SDockZoneNotFound, " - Dock zone not found"
Consts_SDockZoneHasNoCtl, " - Dock zone has no control"
Consts_SDockZoneVersionConflict, "Error loading dock zone from the stream. Expecting version %d, but found %d."
Consts_SANSIEncoding, "ANSI"
@@ -253,9 +253,14 @@ BEGIN
Consts_SBigEndianEncoding, "Big Endian Unicode"
Consts_SUTF8Encoding, "UTF-8"
Consts_SUTF7Encoding, "UTF-7"
- JConsts_sChangeJPGSize, "Cannot change the size of a JPEG image"
- JConsts_sJPEGError, "JPEG error #%d"
- JConsts_sJPEGImageFile, "JPEG Image File"
+ ComStrs_sRichEditInsertError, "RichEdit line insertion error"
+ Consts_SmkcEsc, "Esc"
+ Consts_SmkcEnter, "Enter"
+ Consts_SmkcSpace, "Space"
+ Consts_SmkcPgUp, "PgUp"
+ Consts_SmkcPgDn, "PgDn"
+ Consts_SmkcEnd, "End"
+ Consts_SmkcHome, "Home"
Consts_SmkcLeft, "Left"
Consts_SmkcUp, "Up"
Consts_SmkcRight, "Right"
@@ -265,13 +270,13 @@ BEGIN
Consts_SmkcShift, "Shift+"
Consts_SmkcCtrl, "Ctrl+"
Consts_SmkcAlt, "Alt+"
- Consts_SInvalidClipFmt, "Invalid clipboard format"
- Consts_SIconToClipboard, "Clipboard does not support Icons"
- Consts_SCannotOpenClipboard, "Cannot open clipboard"
- Consts_SDuplicateMenus, "Menu '%s' is already being used by another form"
- Consts_SDockedCtlNeedsName, "Docked control must have a name"
- Consts_SDockTreeRemoveError, "Error removing control from dock tree"
- Consts_SDockZoneNotFound, " - Dock zone not found"
+ Consts_SMsgDlgError, "Error"
+ Consts_SMsgDlgInformation, "Information"
+ Consts_SMsgDlgConfirm, "Confirm"
+ Consts_SMsgDlgYes, "&Yes"
+ Consts_SMsgDlgNo, "&No"
+ Consts_SMsgDlgOK, "OK"
+ Consts_SMsgDlgCancel, "Cancel"
Consts_SMsgDlgHelp, "&Help"
Consts_SMsgDlgAbort, "&Abort"
Consts_SMsgDlgRetry, "&Retry"
@@ -281,35 +286,7 @@ BEGIN
Consts_SMsgDlgYesToAll, "Yes to &All"
Consts_SmkcBkSp, "BkSp"
Consts_SmkcTab, "Tab"
- Consts_SmkcEsc, "Esc"
- Consts_SmkcEnter, "Enter"
- Consts_SmkcSpace, "Space"
- Consts_SmkcPgUp, "PgUp"
- Consts_SmkcPgDn, "PgDn"
- Consts_SmkcEnd, "End"
- Consts_SmkcHome, "Home"
- Consts_SRetryButton, "&Retry"
- Consts_SAbortButton, "Abort"
- Consts_SAllButton, "&All"
- Consts_SCannotDragForm, "Cannot drag a form"
- Consts_SVMetafiles, "Metafiles"
- Consts_SVEnhMetafiles, "Enhanced Metafiles"
- Consts_SVIcons, "Icons"
- Consts_SVBitmaps, "Bitmaps"
- Consts_SMsgDlgWarning, "Warning"
- Consts_SMsgDlgError, "Error"
- Consts_SMsgDlgInformation, "Information"
- Consts_SMsgDlgConfirm, "Confirm"
- Consts_SMsgDlgYes, "&Yes"
- Consts_SMsgDlgNo, "&No"
- Consts_SMsgDlgOK, "OK"
- Consts_SMsgDlgCancel, "Cancel"
- Consts_SVisibleChanged, "Cannot change Visible in OnShow or OnHide"
- Consts_SCannotShowModal, "Cannot make a visible window modal"
- Consts_SMenuIndexError, "Menu index out of range"
- Consts_SMenuReinserted, "Menu inserted twice"
- Consts_SMenuNotFound, "Sub-menu is not in menu"
- Consts_SNoTimers, "Not enough timers available"
+ Consts_SDeviceOnPort, "%s on %s"
Consts_SGroupIndexTooLow, "GroupIndex cannot be less than a previous menu item's GroupIndex"
Consts_SNoMDIForm, "Cannot create form. No MDI forms are currently active"
Consts_SControlParentSetToSelf, "A control cannot have itself as its parent"
@@ -320,29 +297,28 @@ BEGIN
Consts_SHelpButton, "&Help"
Consts_SCloseButton, "&Close"
Consts_SIgnoreButton, "&Ignore"
- Consts_SScanLine, "Scan line index out of range"
- Consts_SChangeIconSize, "Cannot change the size of an icon"
- Consts_SUnknownExtension, "Unknown picture file extension (.%s)"
- Consts_SUnknownClipboardFormat, "Unsupported clipboard format"
- Consts_SOutOfResources, "Out of system resources"
- Consts_SNoCanvasHandle, "Canvas does not allow drawing"
- Consts_SInvalidImageSize, "Invalid image size"
- Consts_SInvalidImageList, "Invalid ImageList"
- Consts_SImageIndexError, "Invalid ImageList Index"
- Consts_SImageReadFail, "Failed to read ImageList data from stream"
+ Consts_SRetryButton, "&Retry"
+ Consts_SAbortButton, "Abort"
+ Consts_SAllButton, "&All"
+ Consts_SCannotDragForm, "Cannot drag a form"
+ Consts_SMsgDlgWarning, "Warning"
Consts_SImageWriteFail, "Failed to write ImageList data to stream"
Consts_SWindowDCError, "Error creating window device context"
Consts_SWindowClass, "Error creating window class"
Consts_SCannotFocus, "Cannot focus a disabled or invisible window"
Consts_SParentRequired, "Control '%s' has no parent window"
+ Consts_SParentGivenNotAParent, "Parent given is not a parent of '%s'"
Consts_SMDIChildNotVisible, "Cannot hide an MDI Child Form"
- RTLConsts_SSeekNotImplemented, "%s.Seek not implemented"
- RTLConsts_SSortedListError, "Operation not allowed on sorted list"
- RTLConsts_SUnknownGroup, "%s not in a class registration group"
- RTLConsts_SUnknownProperty, "Property %s does not exist"
+ Consts_SVisibleChanged, "Cannot change Visible in OnShow or OnHide"
+ Consts_SCannotShowModal, "Cannot make a visible window modal"
+ Consts_SMenuIndexError, "Menu index out of range"
+ Consts_SMenuReinserted, "Menu inserted twice"
+ Consts_SMenuNotFound, "Sub-menu is not in menu"
+ Consts_SNoTimers, "Not enough timers available"
+ Consts_SNotPrinting, "Printer is not currently printing"
+ Consts_SPrinting, "Printing in progress"
+ Consts_SInvalidPrinter, "Printer selected is not valid"
RTLConsts_SWriteError, "Stream write error"
- RTLConsts_SThreadCreateError, "Thread creation error: %s"
- RTLConsts_SThreadError, "Thread Error: %s (%d)"
HelpIntfs_hNoTableOfContents, "Unable to find a Table of Contents"
HelpIntfs_hNothingFound, "No help found for %s"
HelpIntfs_hNoContext, "No context-sensitive help installed"
@@ -350,12 +326,14 @@ BEGIN
HelpIntfs_hNoTopics, "No topic-based help system installed"
Consts_SInvalidBitmap, "Bitmap image is not valid"
Consts_SInvalidIcon, "Icon image is not valid"
- Consts_SInvalidMetafile, "Metafile is not valid"
- Consts_SInvalidPixelFormat, "Invalid pixel format"
- RTLConsts_SFOpenErrorEx, "Cannot open file \"%s\". %s"
- RTLConsts_SInvalidImage, "Invalid stream format"
- RTLConsts_SInvalidName, "''%s'' is not a valid component name"
- RTLConsts_SInvalidProperty, "Invalid property value"
+ Consts_SChangeIconSize, "Cannot change the size of an icon"
+ Consts_SUnknownClipboardFormat, "Unsupported clipboard format"
+ Consts_SOutOfResources, "Out of system resources"
+ Consts_SNoCanvasHandle, "Canvas does not allow drawing"
+ Consts_SInvalidImageSize, "Invalid image size"
+ Consts_SInvalidImageList, "Invalid ImageList"
+ Consts_SImageIndexError, "Invalid ImageList Index"
+ Consts_SImageReadFail, "Failed to read ImageList data from stream"
RTLConsts_SInvalidPropertyPath, "Invalid property path"
RTLConsts_SInvalidPropertyValue, "Invalid property value"
RTLConsts_SInvalidRegType, "Invalid data type for '%s'"
@@ -368,9 +346,10 @@ BEGIN
RTLConsts_SReadOnlyProperty, "Property is read-only"
RTLConsts_SRegGetDataFailed, "Failed to get data for '%s'"
RTLConsts_SResNotFound, "Resource %s not found"
- ComConst_SVarNotObject, "Variant does not reference an automation object"
- ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters"
- ComConst_SAutomationWarning, "COM Server Warning"
+ RTLConsts_SSeekNotImplemented, "%s.Seek not implemented"
+ RTLConsts_SSortedListError, "Operation not allowed on sorted list"
+ RTLConsts_SUnknownGroup, "%s not in a class registration group"
+ RTLConsts_SUnknownProperty, "Property %s does not exist"
ComConst_SNoCloseActiveServer1, "There are still active COM objects in this application. One or more clients may have references to these objects, so manually closing "
ComConst_SNoCloseActiveServer2, "this application may cause those client application(s) to fail.\r\n\r\nAre you sure you want to close this application?"
RTLConsts_SAncestorNotFound, "Ancestor for '%s' not found"
@@ -384,9 +363,9 @@ BEGIN
RTLConsts_SDuplicateName, "A component named %s already exists"
RTLConsts_SDuplicateString, "String list does not allow duplicates"
RTLConsts_SFCreateErrorEx, "Cannot create file \"%s\". %s"
- SysConst_SShortDayNameSun, "Sun"
- SysConst_SShortDayNameMon, "Mon"
- SysConst_SShortDayNameTue, "Tue"
+ RTLConsts_SFOpenErrorEx, "Cannot open file \"%s\". %s"
+ RTLConsts_SInvalidImage, "Invalid stream format"
+ RTLConsts_SInvalidName, "''%s'' is not a valid component name"
SysConst_SShortDayNameWed, "Wed"
SysConst_SShortDayNameThu, "Thu"
SysConst_SShortDayNameFri, "Fri"
@@ -400,9 +379,9 @@ BEGIN
SysConst_SLongDayNameSat, "Saturday"
ComConst_SOleError, "OLE error %.8x"
ComConst_SNoMethod, "Method '%s' not supported by automation object"
- SysConst_SShortMonthNameSep, "Sep"
- SysConst_SShortMonthNameOct, "Oct"
- SysConst_SShortMonthNameNov, "Nov"
+ ComConst_SVarNotObject, "Variant does not reference an automation object"
+ ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters"
+ ComConst_SAutomationWarning, "COM Server Warning"
SysConst_SShortMonthNameDec, "Dec"
SysConst_SLongMonthNameJan, "January"
SysConst_SLongMonthNameFeb, "February"
@@ -416,9 +395,9 @@ BEGIN
SysConst_SLongMonthNameOct, "October"
SysConst_SLongMonthNameNov, "November"
SysConst_SLongMonthNameDec, "December"
- SysConst_SAssertionFailed, "Assertion failed"
- SysConst_SIntfCastError, "Interface not supported"
- SysConst_SSafecallException, "Exception in safecall method"
+ SysConst_SShortDayNameSun, "Sun"
+ SysConst_SShortDayNameMon, "Mon"
+ SysConst_SShortDayNameTue, "Tue"
SysConst_SAssertError, "%s (%s, line %d)"
SysConst_SAbstractError, "Abstract Error"
SysConst_SModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p"
@@ -432,13 +411,13 @@ BEGIN
SysConst_SShortMonthNameJun, "Jun"
SysConst_SShortMonthNameJul, "Jul"
SysConst_SShortMonthNameAug, "Aug"
- SysConst_SWriteAccess, "Write"
- SysConst_SVarArrayCreate, "Error creating variant or safe array"
+ SysConst_SShortMonthNameSep, "Sep"
+ SysConst_SShortMonthNameOct, "Oct"
+ SysConst_SShortMonthNameNov, "Nov"
SysConst_SVarArrayBounds, "Variant or safe array index out of bounds"
SysConst_SVarArrayLocked, "Variant or safe array is locked"
SysConst_SInvalidVarCast, "Invalid variant type conversion"
SysConst_SInvalidVarOp, "Invalid variant operation"
- SysConst_SInvalidVarNullOp, "Invalid NULL variant operation"
SysConst_SInvalidVarOpWithHResultWithPrefix, "Invalid variant operation (%s%.8x)\n%s"
SysConst_SVarTypeCouldNotConvert, "Could not convert variant of type (%s) into type (%s)"
SysConst_SVarTypeConvertOverflow, "Overflow while converting variant of type (%s) into type (%s)"
@@ -448,7 +427,9 @@ BEGIN
SysConst_SVarNotImplemented, "Operation not supported"
SysConst_SVarUnexpected, "Unexpected variant error"
SysConst_SExternalException, "External exception %x"
- SysConst_SOverflow, "Floating point overflow"
+ SysConst_SAssertionFailed, "Assertion failed"
+ SysConst_SIntfCastError, "Interface not supported"
+ SysConst_SSafecallException, "Exception in safecall method"
SysConst_SUnderflow, "Floating point underflow"
SysConst_SInvalidPointer, "Invalid pointer operation"
SysConst_SInvalidCast, "Invalid class typecast"
@@ -457,15 +438,15 @@ BEGIN
SysConst_SStackOverflow, "Stack overflow"
SysConst_SControlC, "Control-C hit"
SysConst_SPrivilege, "Privileged instruction"
- SysConst_SOperationAborted, "Operation aborted"
SysConst_SException, "Exception %s in module %s at %p.\r\n%s%s\r\n"
SysConst_SExceptTitle, "Application Error"
SysConst_SInvalidFormat, "Format '%s' invalid or incompatible with argument"
SysConst_SArgumentMissing, "No argument for format '%s'"
SysConst_SDispatchError, "Variant method calls not supported"
SysConst_SReadAccess, "Read"
+ SysConst_SWriteAccess, "Write"
+ SysConst_SVarArrayCreate, "Error creating variant or safe array"
SysConst_SInvalidInteger, "'%s' is not a valid integer value"
- SysConst_SInvalidFloat, "'%s' is not a valid floating point value"
SysConst_SOutOfMemory, "Out of memory"
SysConst_SInOutError, "I/O error %d"
SysConst_SFileNotFound, "File not found"
@@ -480,12 +461,11 @@ BEGIN
SysConst_SIntOverflow, "Integer overflow"
SysConst_SInvalidOp, "Invalid floating point operation"
SysConst_SZeroDivide, "Floating point division by zero"
+ SysConst_SOverflow, "Floating point overflow"
END
/* c:\archivos de programa\codegear\rad studio\5.0\Lib\Controls.res */
/* c:\archivos de programa\codegear\rad studio\5.0\Lib\Buttons.res */
/* c:\archivos de programa\codegear\rad studio\5.0\Lib\ExtDlgs.res */
-/* C:\TRichView\Units\D2007\RVTable.res */
-/* C:\TRichView\Units\D2007\RVStyle.RES */
-/* C:\Codigo Acana\Database\udfs\udf_RtfToText.RES */
-/* C:\Codigo Acana\Database\udfs\udf_RtfToText.drf */
+/* C:\Codigo\Database\udfs\udf_RtfToText.RES */
+/* C:\Codigo\Database\udfs\udf_RtfToText.drf */
diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj
index e1bb0b4..9041542 100644
--- a/Source/Cliente/FactuGES.dproj
+++ b/Source/Cliente/FactuGES.dproj
@@ -51,7 +51,7 @@
Delphi.Personality
VCLApplication
-FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse3010FalseFalseFalseFalseFalse30821252Rodax Software S.L.3.0.1.0FactuGESFactuGES3.0.1.0
+FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse3020FalseFalseFalseFalseFalse30821252Rodax Software S.L.3.0.2.0FactuGESFactuGES3.0.2.0
File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found
FactuGES.dprFalse
diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res
index 01f6a28..bc652b0 100644
Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ
diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res
index 1641339..8b251f3 100644
Binary files a/Source/GUIBase/GUIBase.res and b/Source/GUIBase/GUIBase.res differ
diff --git a/Source/Informes/1/InformeIVAClientes.fr3 b/Source/Informes/1/InformeIVAClientes.fr3
index e1e278e..a7dc26b 100644
--- a/Source/Informes/1/InformeIVAClientes.fr3
+++ b/Source/Informes/1/InformeIVAClientes.fr3
@@ -1,5 +1,5 @@
-
+
@@ -17,47 +17,48 @@
-
-
-
-
+
+
+
+
-
-
+
+
+
-
+
-
-
-
-
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
@@ -74,7 +75,7 @@
-
+
diff --git a/Source/Informes/1/InformeIVAClientesDesglosado.fr3 b/Source/Informes/1/InformeIVAClientesDesglosado.fr3
index 1f4ce4a..c39a39e 100644
--- a/Source/Informes/1/InformeIVAClientesDesglosado.fr3
+++ b/Source/Informes/1/InformeIVAClientesDesglosado.fr3
@@ -1,5 +1,5 @@
-
+
@@ -16,35 +16,36 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
@@ -55,13 +56,13 @@
-
+
-
-
+
+
@@ -75,7 +76,7 @@
-
+
diff --git a/Source/Informes/1/InformeIVAProveedores.fr3 b/Source/Informes/1/InformeIVAProveedores.fr3
index 4c11c66..9a5973d 100644
--- a/Source/Informes/1/InformeIVAProveedores.fr3
+++ b/Source/Informes/1/InformeIVAProveedores.fr3
@@ -1,5 +1,5 @@
-
+
@@ -13,28 +13,28 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+
@@ -42,62 +42,62 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
diff --git a/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3 b/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3
index caa1303..72a690c 100644
--- a/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3
+++ b/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3
@@ -1,5 +1,5 @@
-
+
@@ -15,14 +15,14 @@
-
-
+
+
-
+
@@ -30,81 +30,81 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Informes/1/InformeListadoFacturasCliente.fr3 b/Source/Informes/1/InformeListadoFacturasCliente.fr3
index 10cc1ec..f700127 100644
--- a/Source/Informes/1/InformeListadoFacturasCliente.fr3
+++ b/Source/Informes/1/InformeListadoFacturasCliente.fr3
@@ -1,5 +1,5 @@
-
+
@@ -30,10 +30,10 @@
-
+
-
+
@@ -50,13 +50,13 @@
-
+
-
+
diff --git a/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3
index b4c1e6f..dcb2eee 100644
--- a/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3
+++ b/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3
@@ -1,5 +1,5 @@
-
+
@@ -27,10 +27,10 @@
-
+
-
+
@@ -54,11 +54,11 @@
-
+
-
+
diff --git a/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3 b/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3
index 0303978..d673393 100644
--- a/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3
+++ b/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3
@@ -1,5 +1,5 @@
-
+
@@ -16,17 +16,17 @@
-
+
-
+
-
+
-
+
@@ -38,13 +38,13 @@
-
+
-
+
-
+
diff --git a/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3
index f26bcae..43d2133 100644
--- a/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3
+++ b/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3
@@ -1,5 +1,5 @@
-
+
@@ -16,17 +16,17 @@
-
+
-
+
-
+
-
+
@@ -42,13 +42,13 @@
-
+
-
+
-
+
diff --git a/Source/Informes/1/InformeListadoFacturasProveedor.fr3 b/Source/Informes/1/InformeListadoFacturasProveedor.fr3
index 18d074f..4ecc85e 100644
--- a/Source/Informes/1/InformeListadoFacturasProveedor.fr3
+++ b/Source/Informes/1/InformeListadoFacturasProveedor.fr3
@@ -1,5 +1,5 @@
-
+
@@ -13,37 +13,37 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
@@ -53,19 +53,19 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/Source/Informes/InfEtiquetasAlbaranCliente.fr3 b/Source/Informes/InfEtiquetasAlbaranCliente.fr3
index 9c9f623..2d94b93 100644
--- a/Source/Informes/InfEtiquetasAlbaranCliente.fr3
+++ b/Source/Informes/InfEtiquetasAlbaranCliente.fr3
@@ -1,11 +1,11 @@
-
+
-
-
+
+
-
+
diff --git a/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj b/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj
index 8e0d25c..47cfcd0 100644
--- a/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj
+++ b/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj
@@ -9,6 +9,7 @@
+
@@ -311,14 +312,23 @@
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas
index 2246971..288218e 100644
--- a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas
+++ b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas
@@ -8,10 +8,10 @@ uses
uControllerBase, uIDataModuleContratosCliente, uClientesController,
uDetallesContratoClienteController, uGestorDocumentosController,
uBizContratosCliente, uBizDireccionesContacto, uBizDetallesContratoCliente,
- uIntegerListUtils;
+ uIntegerListUtils, uBizPresupuestosCliente;
type
- TEnumTiposContrato = (teCocina, teArmario, teBano, teElectrodomestico, teVarios);
+ TEnumTiposContrato = (teVacio, teCocina, teArmario, teBano, teElectrodomestico, teVarios);
IContratosClienteController = interface(IControllerBase)
['{D6544299-A233-4FF0-BDA4-328DA06DCFD8}']
@@ -38,8 +38,9 @@ type
procedure VerTodos(AContratos: IBizContratoCliente;
const AVerModal : Boolean = False; const AWindowCaption: String = '';
const AHeaderText: String = '');
- function Nuevo : IBizContratoCliente;
- function Anadir(AContrato : IBizContratoCliente; const ATipo: TEnumTiposContrato = teVarios) : Boolean;
+ function Nuevo (WithInsert: Boolean = True): IBizContratoCliente;
+ function Anadir(AContrato : IBizContratoCliente; const ATipo: TEnumTiposContrato = teVarios) : Boolean; overload;
+ function Anadir(AContratos : IBizContratoCliente; AListaPresupuestos : IBizPresupuestoCliente): Boolean; overload;
function Eliminar(const ID : Integer): Boolean; overload;
function Eliminar(AContrato : IBizContratoCliente; AllItems: Boolean = false): Boolean; overload;
function Guardar(AContrato : IBizContratoCliente): Boolean;
@@ -114,12 +115,13 @@ type
function Guardar(AContrato : IBizContratoCliente): Boolean;
procedure DescartarCambios(AContrato : IBizContratoCliente); virtual;
function Existe(const ID: Integer) : Boolean; virtual;
- function Anadir(AContrato : IBizContratoCliente; const ATipo: TEnumTiposContrato = teVarios) : Boolean;
+ function Anadir(AContrato : IBizContratoCliente; const ATipo: TEnumTiposContrato = teVarios) : Boolean; overload;
+ function Anadir(AContratos : IBizContratoCliente; AListaPresupuestos : IBizPresupuestoCliente): Boolean; overload;
function Buscar(const ListaID: TIntegerList): IBizContratoCliente; overload;
function Buscar(const ID: Integer): IBizContratoCliente; overload;
function BuscarTodos: IBizContratoCliente; overload;
function BuscarTodos(const ID_Cliente: Integer): IBizContratoCliente; overload;
- function Nuevo : IBizContratoCliente;
+ function Nuevo (WithInsert: Boolean = True): IBizContratoCliente;
procedure Ver(AContrato : IBizContratoCliente);
procedure VerTodos(AContratos: IBizContratoCliente;
const AVerModal : Boolean = False; const AWindowCaption: String = '';
@@ -151,7 +153,7 @@ type
implementation
uses
- Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
+ Forms, Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorContratosCliente, uDataModuleContratosCliente, Variants,
uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App,
schContratosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorContratoCliente,
@@ -160,10 +162,61 @@ uses
uFormasPagoController, uBizFormasPago, uTiposIVAController, uBizTiposIVA,
uSistemaFunc, uEMailUtils, uDialogElegirEMail, Dialogs, uStringsUtils,
uIEditorContratosClienteBeneficios, uPresupuestosClienteController,
- uConfiguracionController, uBizDetallesPresupuestoCliente;
+ uConfiguracionController, uBizDetallesPresupuestoCliente, schPresupuestosClienteClient_Intf,
+ uControllerDetallesBase;
{ TContratosClienteController }
+procedure CopiarArticulosPresupuesto(AOrigen: IBizDetallesPresupuestoCliente; ADestino: IBizDetallesContratoCliente);
+var
+ i : integer;
+ ADetallesController : IDetallesContratoClienteController;
+begin
+ if not Assigned(AOrigen) then
+ raise Exception.Create ('Origen no asignado (CopiarArticulosAlbaran)');
+
+ if not Assigned(ADestino) then
+ raise Exception.Create ('Destino no asignado (CopiarArticulosAlbaran)');
+
+ if not AOrigen.DataTable.Active then
+ AOrigen.DataTable.Active := True;
+
+ if not ADestino.DataTable.Active then
+ ADestino.DataTable.Active := True;
+
+ ADetallesController := TDetallesContratoClienteController.Create;
+ try
+ //OJO IMPORTANTE
+ //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para
+ //obligarle siempre a recalcular los detalles una sola vez
+ ADetallesController.BeginUpdate(ADestino);
+
+ AOrigen.DataTable.First;
+ for i := 0 to AOrigen.DataTable.RecordCount - 1 do
+ begin
+ ADetallesController.Add(ADestino, AOrigen.TIPO_DETALLE);
+ ADestino.Edit;
+ ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO;
+ ADestino.TIPO_ARTICULO := AOrigen.TIPO_ARTICULO;
+ ADestino.PROPIEDAD := AOrigen.PROPIEDAD;
+ ADestino.CONCEPTO := AOrigen.CONCEPTO;
+ ADestino.CANTIDAD := AOrigen.CANTIDAD;
+ ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD;
+ ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL;
+ ADestino.DESCUENTO := AOrigen.DESCUENTO;
+ ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE;
+ ADestino.VISIBLE := AOrigen.VISIBLE;
+ ADestino.VALORADO := AOrigen.VALORADO;
+ ADestino.Post;
+ AOrigen.Next;
+ end;
+ finally
+ ADetallesController.EndUpdate(ADestino);
+ ADestino.DataTable.Last;
+ ADetallesController := NIL;
+ end;
+end;
+
procedure TContratosClienteController.ActualizarFormaDePago(
AContrato: IBizContratoCliente; ID_FORMA_PAGO: Integer);
var
@@ -209,7 +262,8 @@ begin
if not Assigned(AContrato) then
raise Exception.Create ('Contrato no asignado (Anadir)');
AContrato.Insert;
- RellenarValoresDefecto(AContrato, ATipo);
+ if not (ATipo = teVacio) then
+ RellenarValoresDefecto(AContrato, ATipo);
Result := True;
end;
@@ -242,6 +296,179 @@ begin
end;
}
+function TContratosClienteController.Anadir(AContratos: IBizContratoCliente; AListaPresupuestos: IBizPresupuestoCliente): Boolean;
+var
+ AContratoActual : IBizContratoCliente;
+ APresupuestosController : IPresupuestosClienteController;
+ ACadena: String;
+ I, x: Integer;
+ bEnEdicion : Boolean;
+
+begin
+ Result := False;
+
+ // ATENCIÓN!!! AContratos tiene que estar vacio para no pisar contratos
+ // ya generados.
+ if not Assigned(AContratos) then
+ raise Exception.Create ('Contrato no asignado (Anadir)');
+
+ if not Assigned(AListaPresupuestos) then
+ raise Exception.Create ('Presupeustos no asignados (Anadir)');
+
+ if not AContratos.DataTable.Active then
+ AContratos.DataTable.Active := True;
+
+ if not AListaPresupuestos.DataTable.Active then
+ AListaPresupuestos.DataTable.Active := True;
+
+ ShowHourglassCursor;
+ Application.ProcessMessages;
+
+ APresupuestosController := TPresupuestosClienteController.Create;
+ try
+ // Ordenar por fecha de presupuesto
+ AListaPresupuestos.DataTable.Sort([fld_PresupuestosClienteFECHA_DECISION], [uDADataTable.sdAscending]);
+ AListaPresupuestos.First;
+ for I := 0 to AListaPresupuestos.DataTable.RecordCount - 1 do
+ begin
+ AListaPresupuestos._Cliente := NIL;
+ AContratoActual := NIL;
+
+ // Busco si hay algun contrato ya hecho de ese Cliente
+ AContratos.DataTable.First;
+ if AContratos.DataTable.Locate(fld_PresupuestosClienteID_CLIENTE, AListaPresupuestos.ID_Cliente, []) then
+ begin
+ AContratoActual := AContratos;
+ RecuperarCliente(AContratoActual);
+ AContratoActual.Cliente.DataTable.Active := True;
+ end
+ else begin
+ // No hay contrato de ese cliente. Creo uno nuevo
+ Anadir(AContratos, teVacio);
+ APresupuestosController.RecuperarCliente(AListaPresupuestos);
+ AListaPresupuestos.Cliente.DataTable.Active := True;
+ AContratos.Cliente := AListaPresupuestos.Cliente;
+
+ //Establecemos la forma de pago establecido en la ficha del cliente
+ if AContratos.Cliente.ID_FORMA_PAGO > 0 then
+ begin
+ bEnEdicion := (AContratos.DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ AContratos.Edit;
+ AContratos.ID_FORMA_PAGO := AContratos.Cliente.ID_FORMA_PAGO;
+// if AFacturas.Cliente.ID_TIPO_IVA > 0 then
+// AFacturas.ID_TIPO_IVA := AFacturas.Cliente.ID_TIPO_IVA;
+ AContratos.Post;
+ if bEnEdicion then
+ AContratos.Edit;
+ end;
+
+ //En este caso no queremos el descuento general del cliente asociado a su ficha, ya que partimos del valor que tengan los presupuestos
+ bEnEdicion := (AContratos.DataTable.State in dsEditModes);
+ if not bEnEdicion then
+ AContratos.Edit;
+ AContratos.DESCUENTOIsNull := True;
+ AContratos.Post;
+ if bEnEdicion then
+ AContratos.Edit;
+
+ AContratoActual := AContratos;
+ end;
+
+ // Ya tengo el contrato. Le añado los conceptos del presupuesto
+ AContratoActual.Detalles.DataTable.Sort([fld_PresupuestosCliente_DetallesPOSICION], [uDADataTable.sdAscending]);
+ AContratoActual.Detalles.DataTable.Last;
+
+//Es de tipo TITULO para que salga en el informe ya que se agrupa por capitulos
+ Self.DetallesController.Add(AContratoActual.Detalles, TIPO_DETALLE_TITULO);
+ with AContratoActual.Detalles do
+ begin
+ ACadena := '';
+ ACadena := 'Presupuesto ' + AListaPresupuestos.REFERENCIA + ' con fecha ' + DateToStr(AListaPresupuestos.FECHA_PRESUPUESTO) +' aceptado el ' + DateToStr(AListaPresupuestos.FECHA_DECISION);
+ ACadena := ACadena + #13 + ' referencia: ' + AListaPresupuestos.REFERENCIA_CLIENTE;
+ Edit;
+ CONCEPTO := ACadena;
+ Post;
+ end;
+
+ // Añado el contenido del presupuesto
+ CopiarArticulosPresupuesto(AListaPresupuestos.Detalles, AContratoActual.Detalles);
+
+//MUCHO CUIDADO NOS TENEMOS QUE ASEGURAR DE AÑADIR AL FINAL DEL TODO, podría calcular mal los descuentos de capitulo del presupuesto si los hubiera
+ AContratoActual.Detalles.DataTable.Sort([fld_PresupuestosCliente_DetallesPOSICION], [uDADataTable.sdAscending]);
+ AContratoActual.Detalles.DataTable.Last;
+
+ //Sacamos el descuento total del presupuesto en el caso de tener
+ if (AListaPresupuestos.IMPORTE_DESCUENTO > 0) then
+ begin
+ Self.DetallesController.Add(AContratoActual.Detalles, TIPO_DETALLE_TITULO);
+ with AContratoActual.Detalles do
+ begin
+ ACadena := '';
+ ACadena := 'Descuento presupuesto ' + AListaPresupuestos.REFERENCIA + ' con fecha ' + DateToStr(AListaPresupuestos.FECHA_PRESUPUESTO);
+ Edit;
+ CONCEPTO := ACadena;
+ Post;
+ end;
+
+ Self.DetallesController.Add(AContratoActual.Detalles, TIPO_DETALLE_CONCEPTO);
+ with AContratoActual.Detalles do
+ begin
+ Edit;
+ CONCEPTO := 'Descuento del presupuesto ' + AListaPresupuestos.REFERENCIA + ' - ' + AListaPresupuestos.DataTable.FieldByName(fld_PresupuestosClienteDESCUENTO).AsString + '%';
+ CANTIDAD := -1;
+ IMPORTE_UNIDAD := AListaPresupuestos.IMPORTE_DESCUENTO;
+ Post;
+ end;
+
+ Self.DetallesController.Add(AContratoActual.Detalles, TIPO_DETALLE_SUBTOTAL);
+ with AContratoActual.Detalles do
+ begin
+ ACadena := '';
+ ACadena := 'Total Descuento presupuesto ' + AListaPresupuestos.REFERENCIA + ' con fecha ' + DateToStr(AListaPresupuestos.FECHA_PRESUPUESTO);
+ Edit;
+ CONCEPTO := ACadena;
+ Post;
+ end;
+
+ end;
+
+ // Añado el resumen
+{ Self.DetallesController.Add(AContratoActual.Detalles, TIPO_DETALLE_SUBTOTAL);
+ with AContratoActual.Detalles do
+ begin
+ Edit;
+ CONCEPTO := 'Total del presupuesto ' + AListapresupuestos.REFERENCIA;
+ Post;
+ end;
+}
+ // Añado una línea en blanco
+ Self.DetallesController.Add(AContratoActual.Detalles, TIPO_DETALLE_CONCEPTO);
+ with AContratoActual.Detalles do
+ begin
+ Edit;
+ CONCEPTO := '';
+ Post;
+ end;
+
+ // Guardo el conrato que acabo de generar o editar
+ AContratoActual.CalcularImporteTotal;
+ Self.Guardar(AContratoActual);
+ // Asocio el contrato con el presupuesto
+ AListaPresupuestos.Edit;
+ AListaPresupuestos.ID_CONTRATO := AContratoActual.ID;
+ AListaPresupuestos.Post;
+ APresupuestosController.Guardar(AListaPresupuestos);
+
+ AListaPresupuestos.Next;
+ end;
+ Result := True;
+ finally
+ APresupuestosController := NIL;
+ HideHourglassCursor
+ end;
+end;
+
procedure TContratosClienteController.AsignarDataModule;
begin
FDataModule := TDataModuleContratosCliente.Create(Nil);
@@ -1035,14 +1262,15 @@ begin
end;
end;
-function TContratosClienteController.Nuevo: IBizContratoCliente;
+function TContratosClienteController.Nuevo(WithInsert: Boolean): IBizContratoCliente;
var
AContrato : IBizContratoCliente;
begin
AContrato := FDataModule.NewItem;
FiltrarEmpresa(AContrato);
AContrato.DataTable.Active := True;
- AContrato.Insert;
+ if WithInsert then
+ AContrato.Insert;
Result := AContrato;
end;
diff --git a/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.RES b/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.RES
index 1641339..8b251f3 100644
Binary files a/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.RES and b/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.RES differ
diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas
index 00dc58c..ba704d7 100644
--- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas
+++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas
@@ -170,13 +170,26 @@ begin
// ADestino.REFERENCIA := AOrigen.REFERENCIA;
if AOrigen.ID_ARTICULO > 0 then
ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO;
- ADestino.CONCEPTO := AOrigen.CONCEPTO;
- ADestino.CANTIDAD := AOrigen.CANTIDAD;
- ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD;
+//En el caso de descuento de capitulo debemos añadirlo como una linea detalle con un descuento
+ if (AOrigen.TIPO_DETALLE = TIPO_DETALLE_DESCUENTO)
+ and (AOrigen.DESCUENTO > 0) then
+ begin
+ ADestino.CONCEPTO := AOrigen.CONCEPTO + AOrigen.DataTable.FieldByName(fld_AlbaranesCliente_DetallesDESCUENTO).AsString + ' %';
+ ADestino.CANTIDAD := 1;
+ ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_TOTAL;
+ end
+ else
+ begin
+ ADestino.CONCEPTO := AOrigen.CONCEPTO;
+ ADestino.CANTIDAD := AOrigen.CANTIDAD;
+ ADestino.DESCUENTO := AOrigen.DESCUENTO;
+ ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD;
+ end;
+
ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL;
- ADestino.DESCUENTO := AOrigen.DESCUENTO;
ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE;
ADestino.VISIBLE := AOrigen.VISIBLE;
+ ADestino.VALORADO := AOrigen.VALORADO;
// ADestino.REFERENCIA_PROVEEDOR := AOrigen.REFERENCIA_PROVEEDOR;
ADestino.Post;
AOrigen.Next;
@@ -249,7 +262,7 @@ var
AFacturaActual : IBizFacturaCliente;
AAlbaranesController : IAlbaranesClienteController;
ACadena: String;
- I: Integer;
+ I, x: Integer;
bEnEdicion : Boolean;
begin
Result := False;
@@ -287,7 +300,6 @@ begin
begin
AFacturaActual := AFacturas;
RecuperarCliente(AFacturaActual);
-
AFacturaActual.Cliente.DataTable.Active := True;
//En este caso no queremos el descuento general del cliente asociado a su ficha, ya que partimos del valor que tengan las olbaranes
bEnEdicion := (AFacturaActual.DataTable.State in dsEditModes);
@@ -336,8 +348,10 @@ begin
end;
// Ya tengo la factura. Le añado los conceptos del albarán
+ AFacturaActual.Detalles.DataTable.Sort([fld_FacturasCliente_DetallesPOSICION], [uDADataTable.sdAscending]);
AFacturaActual.Detalles.DataTable.Last;
+
// Añado el título, se cambia a petición por linea de concepto con resumen del albaran correspondiente, SE SOLICITA QUITAR POR MÓNICA 16/06/2020
Self.DetallesController.Add(AFacturaActual.Detalles, TIPO_DETALLE_CONCEPTO);
with AFacturaActual.Detalles do
@@ -348,9 +362,14 @@ begin
CONCEPTO := ACadena;
Post;
end;
+
// Añado el contenido del albarán
CopiarArticulosAlbaran(AListaAlbaranes.Detalles, AFacturaActual.Detalles);
+//MUCHO CUIDADO NOS TENEMOS QUE ASEGURAR DE AÑADIR AL FINAL DEL TODO, podría calcular mal los descuentos de capitulo de la factura si los hubiera
+ AFacturaActual.Detalles.DataTable.Sort([fld_FacturasCliente_DetallesPOSICION], [uDADataTable.sdAscending]);
+ AFacturaActual.Detalles.DataTable.Last;
+
//Sacamos el importe del porte en el caso de tener
if (AListaAlbaranes.IMPORTE_PORTE > 0) then
begin
@@ -372,7 +391,7 @@ begin
with AFacturaActual.Detalles do
begin
Edit;
- CONCEPTO := 'Descuento del albarán';
+ CONCEPTO := 'Descuento del albarán ' + AListaAlbaranes.REFERENCIA + ' - ' + AListaAlbaranes.DataTable.FieldByName(fld_AlbaranesClienteDESCUENTO).AsString + '%';
CANTIDAD := -1;
IMPORTE_UNIDAD := AListaAlbaranes.IMPORTE_DESCUENTO;
Post;
diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas
index f5d8f21..3850112 100644
--- a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas
+++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas
@@ -1365,7 +1365,7 @@ begin
end;
end;
- ARecibos.DESCRIPCION := 'Pago de factura ' + AFactura.REFERENCIA + '- ' + ARecibos.NOMBRE; // CifraToLetras(ARecibos.IMPORTE);
+ ARecibos.DESCRIPCION := 'Pago de factura ' + AFactura.REFERENCIA + ' - ' + ARecibos.NOMBRE + ' - Ref. ' + AFactura.REFERENCIA_PROVEEDOR; // CifraToLetras(ARecibos.IMPORTE);
ARecibosProveedorController.Guardar(ARecibos);
end;
@@ -1393,7 +1393,7 @@ begin
ARecibos.FECHA_EMISION := AFactura.FECHA_FACTURA;
ARecibos.FECHA_VENCIMIENTO := AFactura.FECHA_RETENCION;
ARecibos.IMPORTE := AFactura.IMPORTE_RETENCION;
- ARecibos.DESCRIPCION := 'Pago de factura de retención ' + AFactura.REFERENCIA + ': son ' + CifraToLetras(ARecibos.IMPORTE);
+ ARecibos.DESCRIPCION := 'Pago de factura de retención ' + AFactura.REFERENCIA + ': son ' + //CifraToLetras(ARecibos.IMPORTE);
ARecibosProveedorController.Guardar(ARecibos);
end;
}
diff --git a/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas
index 5cb753d..cfdf84c 100644
--- a/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas
+++ b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas
@@ -820,11 +820,11 @@ begin
ANuevoReciboProveedor.Edit;
ANuevoReciboProveedor.REFERENCIA := DarNuevaReferencia(ARecibosProveedor.ID_FACTURA, ARecibosProveedor.REFERENCIA);
ANuevoReciboProveedor.IMPORTE := ImporteRestante;
- ANuevoReciboProveedor.DESCRIPCION := 'RECIBO ' + ANuevoReciboProveedor.REFERENCIA + ' - ' + ANuevoReciboProveedor.Nombre; // CifraToLetras(ImporteRestante);
+ ANuevoReciboProveedor.DESCRIPCION := 'RECIBO ' + ANuevoReciboProveedor.REFERENCIA + ' - ' + ANuevoReciboProveedor.Nombre + ' - Ref. ' + ANuevoReciboProveedor.REFERENCIA_PROVEEDOR; // CifraToLetras(ImporteRestante);
ANuevoReciboProveedor.Post;
ARecibosProveedor.Edit;
- ARecibosProveedor.DESCRIPCION := 'RECIBO ' + ARecibosProveedor.REFERENCIA + ' - ' + ArecibosProveedor.Nombre; //CifraToLetras(ARecibosProveedor.IMPORTE);
+ ARecibosProveedor.DESCRIPCION := 'RECIBO ' + ARecibosProveedor.REFERENCIA + ' - ' + ArecibosProveedor.Nombre + ' - Ref. ' + ARecibosProveedor.REFERENCIA_PROVEEDOR; //CifraToLetras(ARecibosProveedor.IMPORTE);
ARecibosProveedor.Post;
end;
diff --git a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas
index 48e1812..56d4d95 100644
--- a/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas
+++ b/Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas
@@ -255,7 +255,7 @@ begin
Inicializar;
if not Assigned(APedidos) then
- raise Exception.Create('Pedidos de proveedor no asignado (GenerarAlbaranProv)');
+ raise Exception.Create('Pedidos de proveedor no asignado (GenerarAlbaranesProv)');
if not APedidos.DataTable.Active then
APedidos.DataTable.Active := True;
diff --git a/Source/Modulos/Relaciones/Presupuestos de cliente - Contratos de cliente/uGenerarContratosCliUtils.pas b/Source/Modulos/Relaciones/Presupuestos de cliente - Contratos de cliente/uGenerarContratosCliUtils.pas
index 3186f72..950ef20 100644
--- a/Source/Modulos/Relaciones/Presupuestos de cliente - Contratos de cliente/uGenerarContratosCliUtils.pas
+++ b/Source/Modulos/Relaciones/Presupuestos de cliente - Contratos de cliente/uGenerarContratosCliUtils.pas
@@ -12,8 +12,8 @@ type
end;
function GenerarContratoCli(const IDPresupuesto : Integer; const APreguntaMostrarContrato : Boolean = True) : Boolean; overload;
- function GenerarContratoCli(APresupuesto : IBizPresupuestoCliente; var AContrato: IBizContratoCliente;
- const APreguntaMostrarContrato : Boolean = True) : Boolean; overload;
+// function GenerarContratoCli(APresupuesto : IBizPresupuestoCliente; var AContrato: IBizContratoCliente;
+// const APreguntaMostrarContrato : Boolean = True) : Boolean; overload;
function GenerarContratosCli : Boolean; overload;
function GenerarContratosCli(APresupuestos : IBizPresupuestoCliente) : Boolean; overload;
// function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean;
@@ -234,13 +234,16 @@ begin
APresupuesto := APresupuestosClienteController.Buscar(IDPresupuesto);
if Assigned(APresupuesto) then
- Result := GenerarContratoCli(APresupuesto, AContrato);
+ Result := GenerarContratosCli(APresupuesto); //, AContrato);
finally
if Assigned(APresupuestosClienteController) then
Finalizar;
end;
end;
+//Desactivamos la creación de contrato anterior
+//UN UNICO CONTRATO POR PRESUPUESTO
+{
function GenerarContratoCli(APresupuesto : IBizPresupuestoCliente; var AContrato: IBizContratoCliente; const APreguntaMostrarContrato : Boolean = True) : Boolean; overload;
begin
AContrato := NIL;
@@ -283,6 +286,8 @@ begin
Finalizar;
end;
end;
+}
+
{
function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; overload;
var
@@ -329,7 +334,7 @@ begin
, True);
if Assigned(APresupuestos) then
- Result := true; // GenerarContratosCli(APresupuestos);
+ Result := GenerarContratosCli(APresupuestos);
finally
if Assigned(APresupuestosClienteController) then
@@ -337,4 +342,72 @@ begin
end;
end;
+function GenerarContratosCli(APresupuestos : IBizPresupuestoCliente) : Boolean; overload;
+var
+ AContratosNuevos : IBizContratoCliente;
+ i: Integer;
+ ARespuesta : Integer;
+
+begin
+ Result := False;
+
+ if not Assigned(APresupuestosClienteController) then
+ Inicializar;
+
+ if not Assigned(APresupuestos) then
+ raise Exception.Create('Presupuestos de cliente no asignado (GenerarContratosCli)');
+
+ if not APresupuestos.DataTable.Active then
+ APresupuestos.DataTable.Active := True;
+
+ try
+ AContratosNuevos := AContratosClienteController.Nuevo(False);
+ if AContratosClienteController.Anadir(AContratosNuevos, APresupuestos) then
+ begin
+ if AContratosNuevos.DataTable.RecordCount = 1 then
+ begin
+
+ with dmGenerarContratosCli.JsListaContratosGenerados do
+ begin
+ Instruction.Text := 'Se ha generado el contrato';
+
+ Content.Clear;
+ Content.Add(Format('Se ha generado correctamente el contrato %s a partir del presupuesto de cliente seleccionado' + #10#13,
+ [AContratosNuevos.REFERENCIA]));
+ end;
+
+ end
+ else begin
+ dmGenerarContratosCli.JsListaContratosGenerados.CustomButtons[0].Destroy;
+ with dmGenerarContratosCli.JsListaContratosGenerados.Content do
+ begin
+ Clear;
+ AContratosNuevos.DataTable.Last;
+ for i := 0 to AContratosNuevos.DataTable.RecordCount - 1 do
+ begin
+ if Length(AContratosNuevos.REFERENCIA) > 0 then
+ Add(AContratosNuevos.REFERENCIA + ': ' + AContratosNuevos.NOMBRE);
+ AContratosNuevos.DataTable.Prior;
+ end;
+ end;
+ end;
+
+
+ dmGenerarContratosCli.JsListaContratosGenerados.Execute;
+ ARespuesta := dmGenerarContratosCli.JsListaContratosGenerados.CustomButtonResult;
+ case ARespuesta of
+ 100 : begin
+ // Ver el contrato
+ AContratosClienteController.Ver(AContratosNuevos);
+ end;
+ 200 : // Continuar;
+ end;
+ end;
+
+ finally
+ AContratosNuevos := NIL;
+ end;
+end;
+
+
end.
diff --git a/Source/Modulos/Tarifas/Controller/Tarifas_controller.dcu b/Source/Modulos/Tarifas/Controller/Tarifas_controller.dcu
index 999bff8..bd76987 100644
Binary files a/Source/Modulos/Tarifas/Controller/Tarifas_controller.dcu and b/Source/Modulos/Tarifas/Controller/Tarifas_controller.dcu differ
diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj
index 09d7edd..976e430 100644
--- a/Source/Servidor/FactuGES_Server.dproj
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -28,7 +28,7 @@
Delphi.Personality
- FalseTrueFalseTrueFalse3010FalseFalseFalseFalseFalse30821252Rodax Software S.L.3.0.1.0FactuGES (Servidor)3.0.1.0viernes, 05 de febrero de 2021 18:49
+ FalseTrueFalseTrueFalse3020FalseFalseFalseFalseFalse30821252Rodax Software S.L.3.0.2.0FactuGES (Servidor)3.0.2.0miércoles, 24 de febrero de 2021 19:15
File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found
FactuGES_Server.dpr
diff --git a/Source/Servidor/FactuGES_Server.res b/Source/Servidor/FactuGES_Server.res
index c3ff0f2..b8e0fe9 100644
Binary files a/Source/Servidor/FactuGES_Server.res and b/Source/Servidor/FactuGES_Server.res differ
diff --git a/Tools/Firebird/Firebird-2.1.7.18553_0_Win32.exe b/Tools/Firebird/Firebird-2.1.7.18553_0_Win32.exe
new file mode 100644
index 0000000..7e716c8
Binary files /dev/null and b/Tools/Firebird/Firebird-2.1.7.18553_0_Win32.exe differ