Importación inicial

git-svn-id: https://192.168.0.254/svn/Proyectos.EstudioCarnicero_ProGestion/trunk@4 1b8572a8-2d6b-b84e-8c90-20ed86fa4eca
This commit is contained in:
David Arranz 2007-06-21 16:12:43 +00:00
parent d66bd75bab
commit 68ec970246
723 changed files with 83745 additions and 0 deletions

BIN
BD/BASEDATOS.FDB Normal file

Binary file not shown.

BIN
BD/BASEDATOS.FDB_ Normal file

Binary file not shown.

133
BD/Script.sql Normal file
View File

@ -0,0 +1,133 @@
CREATE DOMAIN CLASEFACTURA AS
VARCHAR(1) CHARACTER SET ISO8859_1
COLLATE ISO8859_1;
CREATE DOMAIN REFERENCIAS AS
VARCHAR(8) CHARACTER SET ISO8859_1
COLLATE ISO8859_1;
CREATE TABLE FACTURASCLIENTE (
CODIGO CODIGOS NOT NULL,
FECHAALTA FECHAS NOT NULL,
USUARIO NOMBRES NOT NULL,
CLASEFACTURA CLASEFACTURA NOT NULL,
REFERENCIA REFERENCIAS,
FECHAFACTURA FECHAS NOT NULL,
FECHAVENCIMIENTO FECHAS,
PAGADA VARCHAR(1) NOT NULL,
BASEIMPONIBLE IMPORTES2,
IVA PORCENTAJES,
IMPORTEIVA IMPORTES2,
IMPORTETOTAL IMPORTES2,
OBSERVACIONES OBSERVACIONES,
FORMAPAGO OBSERVACIONES,
CODIGOCONTACTO CODIGOS,
NIFCIF NIFCIFS,
NOMBRE NOMBRES,
CALLE CALLES,
PROVINCIA PROVINCIAS,
CODIGOPOSTAL CODIGOSPOSTALES,
POBLACION POBLACIONES,
CODIGOOBRA CODIGOS,
DESCUENTO PORCENTAJES,
IMPORTEDESCUENTO IMPORTES2
);
ALTER TABLE FACTURASCLIENTE ADD CONSTRAINT PK_FACTURASCLIENTE PRIMARY KEY (CODIGO);
ALTER TABLE FACTURASCLIENTE ADD CONSTRAINT FK_FACTURASCLIENTE FOREIGN KEY (CODIGOCONTACTO) REFERENCES CONTACTOS (CODIGO);
ALTER TABLE FACTURASCLIENTE ADD CONSTRAINT FK_FACTURASCLIENTE2 FOREIGN KEY (CODIGOOBRA) REFERENCES OBRAS (CODIGO);
CREATE TABLE DETALLESFACTURASCLIENTE (
CODIGOFACTURA CODIGOS NOT NULL,
NUMCONCEPTO NUMCONCEPTOS NOT NULL,
DESCRIPCION DESCRIPCIONES,
CANTIDAD CANTIDADES,
IMPORTEUNIDAD IMPORTES2,
IMPORTETOTAL IMPORTES2,
POSICION SMALLINT NOT NULL,
TIPO CHAR(1)
);
ALTER TABLE DETALLESFACTURASCLIENTE ADD CONSTRAINT PK_DETALLESFACTURASCLIENTE PRIMARY KEY (CODIGOFACTURA, NUMCONCEPTO);
ALTER TABLE DETALLESFACTURASCLIENTE ADD CONSTRAINT FK_DETALLESFACTURASCLIENTE FOREIGN KEY (CODIGOFACTURA) REFERENCES FACTURASCLIENTE (CODIGO);
CREATE TABLE RECIBOSCLIENTE (
CODIGO CODIGOS NOT NULL,
FECHAALTA FECHAS NOT NULL,
USUARIO NOMBRES NOT NULL,
FECHARECIBO FECHAS NOT NULL,
IMPORTE IMPORTES2,
TEXTO OBSERVACIONES,
CODIGOCONTACTO CODIGOS,
NIFCIF NIFCIFS,
NOMBRE NOMBRES,
CALLE CALLES,
PROVINCIA PROVINCIAS,
CODIGOPOSTAL CODIGOSPOSTALES,
POBLACION POBLACIONES,
CODIGOOBRA CODIGOS
);
ALTER TABLE RECIBOSCLIENTE ADD CONSTRAINT PK_RECIBOSCLIENTE PRIMARY KEY (CODIGO);
ALTER TABLE RECIBOSCLIENTE ADD CONSTRAINT FK_RECIBOSCLIENTE FOREIGN KEY (CODIGOCONTACTO) REFERENCES CONTACTOS (CODIGO);
ALTER TABLE RECIBOSCLIENTE ADD CONSTRAINT FK_RECIBOSCLIENTE2 FOREIGN KEY (CODIGOOBRA) REFERENCES OBRAS (CODIGO);
CREATE GENERATOR GEN_FACTURASCLIENTE;
SET GENERATOR GEN_FACTURASCLIENTE TO 1;
CREATE GENERATOR GEN_RECIBOSCLIENTE;
SET GENERATOR GEN_RECIBOSCLIENTE TO 1;
/**PROCEDURES**/
DECLARE EXTERNAL FUNCTION LPAD
CSTRING(255),
INTEGER,
CSTRING(1)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_lpad' MODULE_NAME 'ib_udf'
DAR_REFERENCIA_FACTURACLIENTE
OUTPUT REFERENCIA VARCAHR 8
VARIABLES AUX INTEGER
BEGIN
AUX = 0;
SELECT COALESCE(MAX(CAST(SUBSTRING(REFERENCIA from 1 for 2) AS INTEGER)), 0)
FROM FACTURASCLIENTE
where (SUBSTRING(REFERENCIA from 4 for 4) = SUBSTRING(CURRENT_DATE FROM 1 FOR 4))
and (CLASEFACTURA <> 'P')
INTO AUX;
AUX = AUX + 1;
REFERENCIA = LPAD(CAST(AUX AS VARCHAR(2)), 2, '0') || '/' || SUBSTRING(CURRENT_DATE FROM 1 FOR 4);
SUSPEND;
END
DAR_REFERENCIA_FACTURAPROFORMA
IDEM
BEGIN
AUX = 0;
SELECT COALESCE(MAX(CAST(SUBSTRING(REFERENCIA from 1 for 2) AS INTEGER)), 0)
FROM FACTURASCLIENTE
where (SUBSTRING(REFERENCIA from 4 for 4) = SUBSTRING(CURRENT_DATE FROM 1 FOR 4))
and (CLASEFACTURA = 'P')
INTO AUX;
AUX = AUX + 1;
REFERENCIA = LPAD(CAST(AUX AS VARCHAR(2)), 2, '0') || '/' || SUBSTRING(CURRENT_DATE FROM 1 FOR 4);
SUSPEND;
END

257
BD/UDPS.sql Normal file
View File

@ -0,0 +1,257 @@
DROP EXTERNAL FUNCTION ABS;
DROP EXTERNAL FUNCTION ACOS;
DROP EXTERNAL FUNCTION ASCII_CHAR;
DROP EXTERNAL FUNCTION ASCII_VAL;
DROP EXTERNAL FUNCTION ASIN;
DROP EXTERNAL FUNCTION ATAN;
DROP EXTERNAL FUNCTION ATAN2;
DROP EXTERNAL FUNCTION BIN_AND;
DROP EXTERNAL FUNCTION BIN_OR;
DROP EXTERNAL FUNCTION BIN_XOR;
DROP EXTERNAL FUNCTION CEILING;
DROP EXTERNAL FUNCTION COS;
DROP EXTERNAL FUNCTION COSH;
DROP EXTERNAL FUNCTION COT;
DROP EXTERNAL FUNCTION DIV;
DROP EXTERNAL FUNCTION FLOOR;
DROP EXTERNAL FUNCTION LN;
DROP EXTERNAL FUNCTION LOG;
DROP EXTERNAL FUNCTION LOG10;
DROP EXTERNAL FUNCTION LOWER;
DROP EXTERNAL FUNCTION LPAD;
DROP EXTERNAL FUNCTION LTRIM;
DROP EXTERNAL FUNCTION MOD;
DROP EXTERNAL FUNCTION PI;
DROP EXTERNAL FUNCTION RAND;
DROP EXTERNAL FUNCTION RPAD;
DROP EXTERNAL FUNCTION RTRIM;
DROP EXTERNAL FUNCTION SIGN;
DROP EXTERNAL FUNCTION SIN;
DROP EXTERNAL FUNCTION SQRT;
DROP EXTERNAL FUNCTION STRLEN;
DROP EXTERNAL FUNCTION SUBSTR;
DROP EXTERNAL FUNCTION TAN;
DROP EXTERNAL FUNCTION TANH;
/******************************************************************************/
/**** User Defined Functions ****/
/******************************************************************************/
DECLARE EXTERNAL FUNCTION ABS
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION ACOS
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_acos' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION ASCII_CHAR
INTEGER
RETURNS CHAR(1) FREE_IT
ENTRY_POINT 'IB_UDF_ascii_char' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION ASCII_VAL
CHAR(1)
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_ascii_val' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION ASIN
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_asin' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION ATAN
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_atan' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION ATAN2
DOUBLE PRECISION,
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_atan2' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION BIN_AND
INTEGER,
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_bin_and' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION BIN_OR
INTEGER,
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_bin_or' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION BIN_XOR
INTEGER,
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_bin_xor' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION CEILING
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_ceiling' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION COS
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_cos' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION COSH
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_cosh' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION COT
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_cot' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION DIV
INTEGER,
INTEGER
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_div' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION FLOOR
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_floor' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION LN
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_ln' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION LOG
DOUBLE PRECISION,
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_log' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION LOG10
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_log10' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION LOWER
CSTRING(80)
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_lower' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION LPAD
CSTRING(255),
INTEGER,
CSTRING(1)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_lpad' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION LTRIM
CSTRING(80)
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_ltrim' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION MOD
INTEGER,
INTEGER
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_mod' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION PI
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_pi' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION RAND
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_rand' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION RPAD
CSTRING(255),
INTEGER,
CSTRING(1)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_rpad' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION RTRIM
CSTRING(80)
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_rtrim' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION SIGN
DOUBLE PRECISION
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_sign' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION SIN
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_sin' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION SQRT
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_sqrt' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION STRLEN
CSTRING(32767)
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_strlen' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION SUBSTR
CSTRING(80),
SMALLINT,
SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION TAN
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_tan' MODULE_NAME 'ib_udf';
DECLARE EXTERNAL FUNCTION TANH
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT 'IB_UDF_tanh' MODULE_NAME 'ib_udf';

45
Base/BaseD7.cfg Normal file
View File

@ -0,0 +1,45 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O-
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W+
-$X+
-$YD
-$Z1
-GD
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-N".\"
-LE"..\Output\Cliente"
-LN".\"
-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;D:\Rodax Software\Proyectos\Componentes\GUISDK\Lib\D7;..\Servidor"
-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;D:\Rodax Software\Proyectos\Componentes\GUISDK\Lib\D7;..\Servidor"
-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;D:\Rodax Software\Proyectos\Componentes\GUISDK\Lib\D7;..\Servidor"
-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;D:\Rodax Software\Proyectos\Componentes\GUISDK\Lib\D7;..\Servidor"
-Z
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

BIN
Base/BaseD7.dcp Normal file

Binary file not shown.

479
Base/BaseD7.dof Normal file
View File

@ -0,0 +1,479 @@
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=0
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=1
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=3
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=.\
PackageDLLOutputDir=..\Output\Cliente
PackageDCPOutputDir=.\
SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;D:\Rodax Software\Proyectos\Componentes\GUISDK\Lib\D7;..\Servidor
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclOfficeXP;CEToolsPkgd7;FR7;FRIBX7;Hydra_Core_D7;Hydra_RO_D7;fqb70;frx7;frxADO7;frxBDE7;frxDB7;frxDBX7;frxe7;frxIBX7;fs7;fsADO7;fsBDE7;fsDB7;fsIBX7;DataAbstract_Core_D7;DataAbstract_IDE_D7
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=3082
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[HistoryLists\hlDebugSourcePath]
Count=2
Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
Item1=.\
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=4
Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Obras\Reglas;..\Modulos\Obras\Cliente;..\Modulos\Documentos asociados;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Recibos\Cliente;..\Modulos\Recibos\Reglas;..\Modulos\Obras Final\Cliente;..\Modulos\Obras Final\Reglas
Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\Reglas;..\..\Obras\Cliente;..\..\Facturas de cliente\Cliente;..\..\Contactos\Cliente;..\..\Documentos asociados;..\..\Recibos\Cliente
Item2=$(DELPHI)\Lib\Debug;E:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\GUISDK\lib\d7;..\..\Contactos\Cliente;..\..\Documentos asociados;..\Reglas
Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\Reglas
[HistoryLists\hlUnitOutputDirectory]
Count=1
Item0=.\
[HistoryLists\hlOutputDirectorry]
Count=2
Item0=..\Output\Servidor
Item1=..\Output\Cliente
[HistoryLists\hlBPLOutput]
Count=1
Item0=..\..\..\Output\Cliente
[HistoryLists\hlDCPOutput]
Count=1
Item0=.\
[Exception Log]
EurekaLog Version=501
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
Freeze Message=The application seems to be frozen.
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
Show TerminateBtn=1
TerminateBtn Operation=1
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=1
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesSection=1
loSaveCPUSection=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soExcDate=1
soExcAddress=1
soExcModule=1
soExcType=1
soExcMessage=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpUser=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=1
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndCompressAllFiles=0
edoShowExceptionDialog=1
edoSendEmailChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=0
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoShowProcedureOffset=0
boActivateCrashDetection=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtDialog_Caption=1
mtDialog_Caption0="Error."
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_CustomDataCaption=1
mtDialog_CustomDataCaption0="Other"
Count mtDialog_CustomDataHeader=1
mtDialog_CustomDataHeader0="Other Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="&OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="&Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="&Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="&Details"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="&Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="&Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="&Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModule=1
mtLog_ExcModule0="Module"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpUser=1
mtLog_CmpUser0="User"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="&OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."

123
Base/BaseD7.dpk Normal file
View File

@ -0,0 +1,123 @@
package BaseD7;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$RUNONLY}
{$IMPLICITBUILD OFF}
requires
rtl,
vcl,
vcldb,
GUISDK_D7,
vcljpg,
dbrtl,
dsnap,
vcldb,
PNG_D7,
PngComponentsD7,
JvCoreD7R,
JvStdCtrlsD7R,
JvPageCompsD7R,
cxLibraryVCLD7,
dxThemeD7,
cxEditorsVCLD7,
cxDataD7,
cxExtEditorsVCLD7,
cxGridVCLD7,
cxPageControlVCLD7,
tb2k_d7,
tbx_d7,
vclx,
vclactnband,
designide,
cxExportVCLD7,
adortl,
JvSystemD7R,
dxPSCoreD7,
dxPScxCommonD7,
dxPScxGridLnkD7,
cxIntlPrintSys3D7,
dxBarD7,
dxBarExtItemsD7,
cxIntl5D7,
DataAbstract_D7,
dxPsPrVwAdvD7,
ccpack70,
JvMMD7R,
JvCtrlsD7R,
tee,
frx7,
fs7,
frxe7,
dxLayoutControlD7,
JvAppFrmD7R,
dxComnD7,
cfpack,
dxPSLnksD7,
vclshlctrls,
dclcxLibraryVCLD7,
visualclx,
fqb70,
bdertl,
Jcl,
JclVcl,
teeui,
fsTee7,
frxTee7;
contains
uDataModuleBase in 'uDataModuleBase.pas' {dmBase: TDAClientDataModule},
uEditorBase in 'uEditorBase.pas' {fEditorBase},
uEditorGrid in 'uEditorGrid.pas' {fEditorGrid},
uEditorItem in 'uEditorItem.pas' {fEditorItem},
uDataTableUtils in 'uDataTableUtils.pas',
uEditorUtils in 'uEditorUtils.pas',
uEditorPreview in 'uEditorPreview.pas' {fEditorPreview},
uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame},
uViewBase in 'uViewBase.pas' {frViewBase: TCustomView},
uViewDireccion in 'uViewDireccion.pas' {frViewDireccion: TCustomView},
uViewGrid in 'uViewGrid.pas' {frViewGrid: TCustomView},
uViewInternet in 'uViewInternet.pas' {frViewInternet: TCustomView},
uViewTelefonos in 'uViewTelefonos.pas' {frViewTelefonos: TCustomView},
uEditorDBBase in 'uEditorDBBase.pas' {fEditorDBBase: TCustomEditor},
uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor},
uExceptions in 'uExceptions.pas',
uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame},
uBizImportesDetalleBase in 'uBizImportesDetalleBase.pas',
uBizImportesCabeceraBase in 'uBizImportesCabeceraBase.pas',
uViewObservaciones in 'uViewObservaciones.pas' {frViewObservaciones: TFrame},
uDBSelectionList in 'uDBSelectionList.pas',
uConfigurarConexion in 'uConfigurarConexion.pas' {fConfigurarConexion},
uBizInformesBase in 'uBizInformesBase.pas',
uSysFunc in 'uSysFunc.pas',
uEditorPSPreview in 'uEditorPSPreview.pas' {Form1},
uUtils in 'uUtils.pas',
InfoProject in 'InfoProject.pas',
uViewContenido in 'uViewContenido.pas' {frViewContenido: TCustomView},
uViewDetallesFamilias in 'uViewDetallesFamilias.pas' {frViewDetallesFamilias: TCustomView},
uViewTotales in 'uViewTotales.pas' {frViewTotales: TCustomView},
uViewFormaPago in 'uViewFormaPago.pas' {frViewFormaPago: TCustomView},
uViewDetallesNormales in 'uViewDetallesNormales.pas' {frViewDetallesNormales: TCustomView};
end.

16
Base/BaseD7.drc Normal file
View File

@ -0,0 +1,16 @@
/* VER150
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
#define uROWinInetHttpChannel_sxInvalidURLformat 65520
STRINGTABLE
BEGIN
uROWinInetHttpChannel_sxInvalidURLformat, "Invalid URL format"
END

16
Base/BaseD7.drc2 Normal file
View File

@ -0,0 +1,16 @@
/* VER150
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
#define uROWinInetHttpChannel_sxInvalidURLformat 65520
STRINGTABLE
BEGIN
uROWinInetHttpChannel_sxInvalidURLformat, "Invalid URL format"
END

BIN
Base/BaseD7.res Normal file

Binary file not shown.

187
Base/InfoProject.pas Normal file
View File

@ -0,0 +1,187 @@
{
===============================================================================
Copyright (©) 2005. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 17-05-2005
Versión actual: 1.0.0
Fecha versión actual: 17-05-2005
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit InfoProject;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TInfoProject = class(TComponent)
private
{ Private declarations }
FFVIBuff: Pointer;
FFVISize: DWord;
FHandle: DWord;
FFileName: String;
FLanguage: Word;
FCodePage: Word;
FLanguageCodePage: String;
FCompanyName: String;
FFileDescription: String;
FFileVersion: String;
FInternalName: String;
FLegalCopyright: String;
FLegalTradeMarks: String;
FOriginalFileName: String;
FProductName: String;
FProductVersion: String;
FComments: String;
procedure ReadFixedFileInfo;
function GetLangCPage: String;
function GetStringFileInfo(S: String): String;
procedure SetFileName(const Value: String);
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
function LanguageStr(Language: Word): String;
property FileName: String read FFileName write SetFileName;
property Language: Word read FLanguage;
property CodePage: Word read FCodePage;
property LanguageCodePage: String read FLanguageCodePage;
property CompanyName: String read FCompanyName;
property FileDescription: String read FFileDescription;
property FileVersion: String read FFileVersion;
property InternalName: String read FInternalName;
property LegalCopyright: String read FLegalCopyright;
property LegalTradeMarks: String read FLegalTradeMarks;
property OriginalFileName: String read FOriginalFileName;
property ProductName: String read FProductName;
property ProductVersion: String read FProductVersion;
property Comments: String read FComments;
published
{ Published declarations }
end;
implementation
{ TInfoProject }
constructor TInfoProject.Create(AOwner: TComponent);
begin { of TInfoProject.Create }
inherited Create(AOwner);
{ build current EXE filename }
FileName := ParamStr(0);
end; { of TInfoProject.Create }
procedure TInfoProject.ReadFixedFileInfo;
begin { of TInfoProject.ReadFixedFileInfo }
{ determine size of buffer required }
FFVISize := GetFileVersionInfoSize(PChar(FileName), FHandle);
{ create buffer }
GetMem(FFVIBuff, FFVISize);
try
{ load buffer }
GetFileVersionInfo(PChar(FileName), FHandle, FFVISize, FFVIBuff);
{ extract the language/codepage info }
FLanguageCodePage := GetLangCPage;
{ extract the other info }
FCompanyName := GetStringFileInfo('CompanyName');
FFileDescription := GetStringFileInfo('FileDescription');
FFileVersion := GetStringFileInfo('FileVersion');
FInternalName := GetStringFileInfo('InternalName');
FLegalCopyright := GetStringFileInfo('LegalCopyright');
FLegalTradeMarks := GetStringFileInfo('LegalTradeMarks');
FOriginalFileName := GetStringFileInfo('OriginalFileName');
FProductName := GetStringFileInfo('ProductName');
FProductVersion := GetStringFileInfo('ProductVersion');
FComments := GetStringFileInfo('Comments');
finally
{ dispose buffer }
FreeMem(FFVIBuff, FFVISize);
end;
end; { of TInfoProject.ReadFixedFileInfo }
function TInfoProject.LanguageStr(Language: Word): String;
var
P: array[0..255] of Char;
Len: Word;
begin { of TInfoProject.LanguageStr }
Len := VerLanguageName(Language, P, SizeOf(P));
if (Len > SizeOf(P)) then
begin
{ if this occurs then the P buffer is too small }
{ so we will truncate the returned string }
Len := SizeOf(P);
end;
SetString(Result, P, Len);
end; { of TInfoProject.LanguageStr }
function TInfoProject.GetLangCPage: String;
var
SearchString: String;
FVILang: array of Byte;
Len: DWORD;
begin { of TInfoProject.GetLangCPage }
Result := '00000000';
if (FFVIBuff <> NIL) then
begin
SearchString := '\VarFileInfo\Translation';
if VerQueryValue(FFVIBuff, PChar(SearchString),
Pointer(FVILang), Len) then
begin
FLanguage := FVILang[0] + FVILang[1]*$100;
FCodePage := FVILang[2] + FVILang[3]*$100;
Result := IntToHex(FLanguage, 4) + IntToHex(FCodePage, 4);
end;
end;
end; { of TInfoProject.GetLangCPage }
function TInfoProject.GetStringFileInfo(S: String): String;
var
SearchString: String;
P: PChar;
Len: DWORD;
begin { of TInfoProject.GetStringFileInfo }
Result := '';
if (FFVIBuff <> NIL) then
begin
SearchString := '\StringFileInfo\'+FLanguageCodePage+'\'+S;
if VerQueryValue(FFVIBuff, PChar(SearchString), Pointer(P), Len) then
begin
{ coded with StrLen to ditch the trailing #0 character }
SetString(Result, P, StrLen(P));
end;
end;
end; { of TInfoProject.GetStringFileInfo }
procedure TInfoProject.SetFileName(const Value: String);
begin { of TInfoProject.SetFileName }
FFileName := ExpandUNCFileName(Value);
{ read fileinfo from this new file }
ReadFixedFileInfo;
end; { of TInfoProject.SetFileName }
end.

View File

@ -0,0 +1,166 @@
unit uBizImportesCabeceraBase;
interface
uses
uDAInterfaces, uDADataTable;
type
IBizImportesCabecera = interface(IDAStronglyTypedDataTable)
['{566EE7D3-EE6D-4B01-B327-92E288A0C5A0}']
procedure RecalcularImporte;
end;
TBizIVAFieldRules = class(TDAFieldRules)
protected
procedure OnChange(Sender: TDACustomField); override;
end;
TBizDescuentoFieldRules = class(TDAFieldRules)
protected
procedure OnChange(Sender: TDACustomField); override;
end;
TBizBaseImponibleFieldRules = class(TDAFieldRules)
protected
procedure OnChange(Sender: TDACustomField); override;
end;
procedure RecalcularImportesCabecera(aDataTable : TDADataTable); overload;
procedure RecalcularImportesCabecera(aMasterTable, aDetailTable : TDADataTable); overload;
implementation
uses
SysUtils, DB, uBizImportesDetalleBase;
const
fld_BASEIMPONIBLE = 'BASEIMPONIBLE';
fld_IVA = 'IVA';
fld_IMPORTEIVA = 'IMPORTEIVA';
fld_DESCUENTO = 'DESCUENTO';
fld_IMPORTEDESCUENTO = 'IMPORTEDESCUENTO';
fld_IMPORTETOTAL = 'IMPORTETOTAL';
procedure RecalcularImportesCabecera(aDataTable : TDADataTable);
{ Recalcula todos los importes de la cabecera a partir de la base imponible }
var
BIField : TDAField;
IDField : TDAField;
DTOField : TDAField;
IVAField : TDAField;
IIField : TDAField;
ITField : TDAField;
EnEdicion : Boolean;
begin
BIField := aDataTable.FindField(fld_BASEIMPONIBLE);
if not Assigned(BIField) then
raise Exception.Create('Campo BASEIMPONIBLE no encontrado (CalcularImportes)');
IDField := aDataTable.FindField(fld_IMPORTEDESCUENTO);
if not Assigned(IDField) then
raise Exception.Create('Campo IMPORTEDESCUENTO no encontrado (CalcularImportes)');
DTOField := aDataTable.FindField(fld_DESCUENTO);
if not Assigned(DTOField) then
raise Exception.Create('Campo DESCUENTO no encontrado (CalcularImportes)');
IVAField := aDataTable.FindField(fld_IVA);
if not Assigned(IVAField) then
raise Exception.Create('Campo IVA no encontrado (CalcularImportes)');
IIField := aDataTable.FindField(fld_IMPORTEIVA);
if not Assigned(IIField) then
raise Exception.Create('Campo IMPORTEIVA no encontrado (CalcularImportes)');
ITField := aDataTable.FindField(fld_IMPORTETOTAL);
if not Assigned(ITField) then
raise Exception.Create('Campo IMPORTETOTAL no encontrado (CalcularImportes)');
// ¿Viene en modo edición?
EnEdicion := (aDataTable.State in dsEditModes);
if not EnEdicion then
aDataTable.Edit;
IDField.Value := BIField.AsCurrency * (DTOField.AsInteger/100);
ITField.Value := BIField.AsCurrency - IDField.AsCurrency;
IIField.Value := ITField.AsCurrency * (IVAField.AsInteger/100);
ITField.Value := ITField.AsCurrency + IIField.AsCurrency;
if EnEdicion then
aDataTable.Edit; // Para dejar la tabla como estaba otra vez
end;
procedure RecalcularImportesCabecera(aMasterTable, aDetailTable : TDADataTable);
{ Recalcula todos los importes de la cabecera a partir de los detalles }
var
aDetalle : IBizImportesDetalle;
BIField : TDAField;
EnEdicion : Boolean;
begin
BIField := aMasterTable.FindField(fld_BASEIMPONIBLE);
if not Assigned(BIField) then
raise Exception.Create('Campo BASEIMPONIBLE no encontrado (CalcularImportes)');
// ¿Viene en modo edición?
EnEdicion := (aMasterTable.State in dsEditModes);
if not EnEdicion then
aMasterTable.Edit;
BIField.Value := 0;
if aDetailTable.RecordCount > 0 then
if Supports(aDetailTable, IBizImportesDetalle, aDetalle) then
BIField.Value := aDetalle.DarSumaTotalImportes;
RecalcularImportesCabecera(aMasterTable);
if EnEdicion then
aMasterTable.Edit; // Para dejar la tabla como estaba otra vez
end;
{ TBizIVAFieldRules }
procedure TBizIVAFieldRules.OnChange(Sender: TDACustomField);
var
aCabecera : IBizImportesCabecera;
begin
inherited;
if Supports(DataTable, IBizImportesCabecera, aCabecera) then
aCabecera.RecalcularImporte;
end;
{ TBizDescuentoFieldRules }
procedure TBizDescuentoFieldRules.OnChange(Sender: TDACustomField);
var
aCabecera : IBizImportesCabecera;
begin
inherited;
if Supports(DataTable, IBizImportesCabecera, aCabecera) then
aCabecera.RecalcularImporte;
end;
{ TBizBaseImponibleFieldRules }
procedure TBizBaseImponibleFieldRules.OnChange(Sender: TDACustomField);
var
aCabecera : IBizImportesCabecera;
begin
inherited;
if Supports(DataTable, IBizImportesCabecera, aCabecera) then
aCabecera.RecalcularImporte;
end;
initialization
RegisterFieldRules('Client.Field.Descuento', TBizDescuentoFieldRules);
RegisterFieldRules('Client.Field.IVA', TBizIVAFieldRules);
RegisterFieldRules('Client.Field.BaseImponible', TBizBaseImponibleFieldRules);
finalization
end.

File diff suppressed because it is too large Load Diff

14
Base/uBizInformesBase.pas Normal file
View File

@ -0,0 +1,14 @@
unit uBizInformesBase;
interface
type
IBizInformesAware = interface
['{98AD6541-199F-4155-B394-ED0316298759}']
procedure Preview;
procedure Print;
end;
implementation
end.

View File

@ -0,0 +1,111 @@
object fConfigurarConexion: TfConfigurarConexion
Left = 425
Top = 509
Width = 399
Height = 179
ActiveControl = edtServer
Caption = 'Configuraci'#243'n de la conexi'#243'n'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object bProbar: TButton
Left = 8
Top = 113
Width = 105
Height = 25
Caption = '&Probar la conexi'#243'n'
TabOrder = 1
OnClick = bProbarClick
end
object GroupBox1: TGroupBox
Left = 8
Top = 8
Width = 375
Height = 97
Caption = 'Servidor de FactuGES'
TabOrder = 0
DesignSize = (
375
97)
object Label1: TLabel
Left = 18
Top = 30
Width = 97
Height = 13
Caption = 'Nombre del servidor:'
end
object Label2: TLabel
Left = 18
Top = 60
Width = 93
Height = 13
Caption = 'Puerto de escucha:'
end
object edtServer: TEdit
Left = 128
Top = 24
Width = 231
Height = 21
Anchors = [akLeft, akTop, akRight]
TabOrder = 0
end
object edtPort: TEdit
Left = 128
Top = 56
Width = 116
Height = 21
Anchors = [akLeft, akTop, akRight]
TabOrder = 1
Text = '8099'
end
end
object bAceptar: TButton
Left = 219
Top = 113
Width = 75
Height = 25
Caption = '&Aceptar'
Default = True
ModalResult = 1
TabOrder = 2
end
object bCancelar: TButton
Left = 307
Top = 113
Width = 75
Height = 25
Cancel = True
Caption = '&Cancelar'
ModalResult = 2
TabOrder = 3
end
object HTTPChannel: TROWinInetHTTPChannel
ServerLocators = <>
DispatchOptions = []
ProbeServers = False
ProbeFrequency = 60000
UserAgent = 'FactuGES'
TargetURL = 'http://localhost:8099/BIN'
Left = 120
Top = 112
end
object ROBinMessage: TROBinMessage
Left = 152
Top = 112
end
object CoService: TRORemoteService
ServiceName = 'srvLogin'
Message = ROBinMessage
Channel = HTTPChannel
Left = 184
Top = 112
end
end

View File

@ -0,0 +1,78 @@
unit uConfigurarConexion;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, uROClient, uROWinInetHttpChannel, uRODynamicRequest,
uROServiceComponent, uRORemoteService, uROBinMessage;
type
TfConfigurarConexion = class(TForm)
bProbar: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
edtServer: TEdit;
edtPort: TEdit;
bAceptar: TButton;
bCancelar: TButton;
HTTPChannel: TROWinInetHTTPChannel;
ROBinMessage: TROBinMessage;
CoService: TRORemoteService;
procedure bProbarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
function GetTargetURL: String;
procedure SetTargetURL(const Value: String);
{ Private declarations }
public
property TargetURL : String read GetTargetURL write SetTargetURL;
end;
var
fConfigurarConexion: TfConfigurarConexion;
implementation
uses
StrUtils, JclStrings, FactuGES_Intf, uDataModuleBase;
{$R *.dfm}
{ TfConfigurarConexion }
function TfConfigurarConexion.GetTargetURL: String;
begin
Result := 'http://' + edtServer.Text + ':' + edtPort.Text + '/bin';
end;
procedure TfConfigurarConexion.SetTargetURL(const Value: String);
var
s : String;
begin
s := StrAfter('http://', Value);
s := StrBefore(':', s);
edtServer.Text := s;
s := StrAfter(edtServer.Text + ':', Value);
s := StrBefore('/bin', s);
edtPort.Text := s;
end;
procedure TfConfigurarConexion.bProbarClick(Sender: TObject);
begin
try
HTTPChannel.TargetURL := TargetURL;
(CoService as IsrvLogin).Ping;
Application.MessageBox('Conexión válida con el servidor.', 'FactuGES', MB_OK);
finally
end;
end;
procedure TfConfigurarConexion.FormCreate(Sender: TObject);
begin
HTTPChannel.OnFailure := dmBase.ROChannelFailure;
end;
end.

125
Base/uDBSelectionList.pas Normal file
View File

@ -0,0 +1,125 @@
unit uDBSelectionList;
interface
uses
uDADataTable, Classes, DB;
type
TSelectedRowList = class;
ISelectedRowList = interface
['{1886B04A-DB0D-40AE-BCAE-DA57CD4CD582}']
function GetSelectedRows : TSelectedRowList;
property SelectedRows : TSelectedRowList read GetSelectedRows;
end;
TSelectedRowList = class
private
FDataTable: TDADataTable;
FList: TList;
function GetCount: Integer;
function GetCurrentRowSelected: Boolean;
function GetItem(Index: Integer): TBookmark;
procedure SetCurrentRowSelected(Value: Boolean);
protected
function CurrentRow: TBookmark;
function Compare(const Item1, Item2: TBookmark): Boolean;
public
constructor Create(ADataTable : TDADataTable);
destructor Destroy; override;
procedure Clear; // free all bookmarks
function Find(const Item: TBookmark; var Index: Integer): Boolean;
function IndexOf(const Item: TBookmark): Integer;
property Count: Integer read GetCount;
property CurrentRowSelected: Boolean read GetCurrentRowSelected
write SetCurrentRowSelected;
property Items[Index: Integer]: TBookmark read GetItem; default;
end;
implementation
uses
DBConsts;
{ TSelectedRowList }
constructor TSelectedRowList.Create(ADataTable : TDADataTable);
begin
inherited Create;
FList := TList.Create;
FDataTable := ADataTable;
end;
destructor TSelectedRowList.Destroy;
begin
Clear;
FList.Free;
FDataTable := NIL;
inherited Destroy;
end;
procedure TSelectedRowList.Clear;
begin
if FList.Count = 0 then
Exit;
FList.Clear;
end;
function TSelectedRowList.Compare(const Item1, Item2: TBookmark): Boolean;
begin
Result := (Item1 = Item2);
end;
function TSelectedRowList.CurrentRow: TBookmark;
begin
if not FDataTable.Active then
raise EDatabaseError.Create(sDataSetClosed);
Result := FDataTable.GetBookMark
end;
function TSelectedRowList.GetCurrentRowSelected: Boolean;
var
Index: Integer;
begin
Result := Find(CurrentRow, Index);
end;
function TSelectedRowList.Find(const Item: TBookmark; var Index: Integer): Boolean;
begin
Index := FList.IndexOf(Item);
Result := (Index > -1)
end;
function TSelectedRowList.GetCount: Integer;
begin
Result := FList.Count;
end;
function TSelectedRowList.GetItem(Index: Integer): TBookmark;
begin
Result := FList[Index];
end;
function TSelectedRowList.IndexOf(const Item: TBookmark): Integer;
begin
Result := FList.IndexOf(Item);
end;
procedure TSelectedRowList.SetCurrentRowSelected(Value: Boolean);
var
Index: Integer;
Current: TBookmark;
begin
Current := CurrentRow;
if (Find(Current, Index) = Value) then
Exit;
if Value then
FList.Add(Current)
else
FList.Delete(Index);
end;
end.

BIN
Base/uDataModuleBase.ddp Normal file

Binary file not shown.

1660
Base/uDataModuleBase.dfm Normal file

File diff suppressed because it is too large Load Diff

243
Base/uDataModuleBase.pas Normal file
View File

@ -0,0 +1,243 @@
unit uDataModuleBase;
interface
uses
Controls, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher,
TBXOffice2003Theme, Classes, ImgList, uROClient, uROBinMessage,
uROServiceComponent, uRORemoteService, uROWinInetHttpChannel,
DataAbstract_Intf, uDADataTable, uDABINAdapter, cxintl, cxIntlPrintSys3,
FactuGES_Intf, JvAppStorage, JvAppRegistryStorage, SysUtils,
JvComponentBase;
type
TdmBase = class(TDataModule)
ROChannel: TROWinInetHTTPChannel;
SmallImages: TPngImageList;
StyleManager: TJvNavPaneStyleManager;
TBXSwitcher: TTBXSwitcher;
cxIntl: TcxIntl;
cxIntlPrintSys3: TcxIntlPrintSys3;
ROMessage: TROBinMessage;
DABINAdapter: TDABINAdapter;
JvAppRegistryStorage: TJvAppRegistryStorage;
RORemoteService: TRORemoteService;
procedure DAClientDataModuleCreate(Sender: TObject);
procedure ROChannelFailure(Sender: TROTransportChannel;
anException: Exception; var Retry: Boolean);
procedure ROChannelProgress(iSender: TObject; iType: TProgressType;
iDirection: TProgressDirection; iTransferred, iTotal: Integer);
private
FOnThemeChange: TNotifyEvent;
function GetAdapter: TDABINAdapter;
function GetChannel: TROWinInetHTTPChannel;
function GetCodigoEmpresa: Integer;
function GetUsuario: String;
function GetFecha: TDate;
function GetMessage: TROBinMessage;
procedure InitStyleManager;
procedure OnTBXThemeChange(Sender: TObject);
procedure LeerConfiguracion;
procedure SalvarConfiguracion;
public
procedure ConfigurarConexion;
property Adapter: TDABINAdapter read GetAdapter;
property Channel: TROWinInetHTTPChannel read GetChannel;
property CodigoEmpresa: Integer read GetCodigoEmpresa;
property Usuario: String read GetUsuario;
property Fecha: TDate read GetFecha;
property Message: TROBinMessage read GetMessage;
property OnThemeChange: TNotifyEvent read FOnThemeChange write
FOnThemeChange;
function darRutaDocumentosProyectos: String;
function darEstructuraDirProyectos: TDAStringArray;
function darRutaDocumentosNormativas: String;
function darEstructuraDirNormativas: TDAStringArray;
function darVersion: String;
end;
var
dmBase: TdmBase;
implementation
{$R *.DFM}
uses
Dialogs, InfoProject, TBX, TBXThemes, uConfigurarConexion, WinInet, Forms, Windows;
const
SERVER_URL = 'http://localhost:8099/bin';
IE_OFFLINE_ERROR = 'Unexpected error in WinInet HTTP Channel (2)';
{
*********************************** TdmBase ************************************
}
procedure TdmBase.ConfigurarConexion;
begin
with TfConfigurarConexion.Create(NIL) do
try
TargetURL := ROChannel.TargetURL;
if ShowModal = mrOk then
begin
ROChannel.TargetURL := TargetURL;
ROChannel.Connected := False;
ROChannel.Connected := True;
SalvarConfiguracion;
end;
finally
Free;
end;
end;
procedure TdmBase.DAClientDataModuleCreate(Sender: TObject);
begin
TBXSwitcher.OnThemeChange := OnTBXThemeChange;
TBXSetTheme('Office2003');
LeerConfiguracion;
end;
function TdmBase.GetAdapter: TDABINAdapter;
begin
Result := DABinAdapter;
end;
function TdmBase.GetChannel: TROWinInetHTTPChannel;
begin
Result := ROChannel;
end;
function TdmBase.GetCodigoEmpresa: Integer;
begin
Result := 1;
end;
function TdmBase.GetMessage: TROBinMessage;
begin
Result := ROMessage;
end;
procedure TdmBase.InitStyleManager;
begin
if not USE_THEMES then
begin
TBXSwitcher.EnableXPStyles := False;
StyleManager.Theme := nptStandard;
end
else begin
TBXSwitcher.EnableXPStyles := True;
with StyleManager do
begin
if CurrentTheme is TTBXOffice2003Theme then
begin
case GetOffice2003Scheme of
osBlue : Theme := nptXPBlue;
osMetallic : Theme := nptXPSilver;
osGreen : Theme := nptXPOlive;
else
Theme := nptStandard;
end;
end;
end;
end;
end;
procedure TdmBase.LeerConfiguracion;
begin
ROChannel.TargetURL := JvAppRegistryStorage.ReadString('ServerURL', SERVER_URL);
end;
procedure TdmBase.OnTBXThemeChange(Sender: TObject);
begin
InitStyleManager;
if Assigned(FOnThemeChange) then
FOnThemeChange(Sender);
end;
procedure TdmBase.SalvarConfiguracion;
begin
JvAppRegistryStorage.BeginUpdate;
try
JvAppRegistryStorage.WriteString('ServerURL', ROChannel.TargetURL);
finally
JvAppRegistryStorage.EndUpdate;
end;
end;
procedure TdmBase.ROChannelFailure(Sender: TROTransportChannel;
anException: Exception; var Retry: Boolean);
begin
if (Pos(anException.Message, IE_OFFLINE_ERROR) > 0) then
begin
// Preguntar al usuario si se quiere conectar
if InternetGoOnline(PAnsiChar(ROChannel.TargetURL), GetDesktopWindow(), 0) then
Retry := True // Si el usuario pulsa en 'Conectar' reintentar la operación
else
Abort; // Si el usuario pulsa en 'Seguir desconectado' parar todo
end
else
raise Exception.Create(anException.Message);
end;
procedure TdmBase.ROChannelProgress(iSender: TObject; iType: TProgressType;
iDirection: TProgressDirection; iTransferred, iTotal: Integer);
begin
{ if iType = ptInProgress then
begin
if not Form1.Visible then
Form1.Show;
end
else
Form1.Hide;}
end;
function TdmBase.GetUsuario: String;
begin
Result := 'USUARIO';
end;
function TdmBase.GetFecha: TDate;
begin
Result := Date;
end;
function TdmBase.darRutaDocumentosProyectos: String;
begin
Result := (RORemoteService as IsrvConfiguracion).darRutaProyectos;
end;
function TdmBase.darRutaDocumentosNormativas: String;
begin
Result := (RORemoteService as IsrvConfiguracion).darRutaNormativas;
end;
function TdmBase.darEstructuraDirProyectos: TDAStringArray;
begin
Result := (RORemoteService as IsrvConfiguracion).darEstructuraDirProyectos;
end;
function TdmBase.darEstructuraDirNormativas: TDAStringArray;
begin
Result := (RORemoteService as IsrvConfiguracion).darEstructuraDirNormativas;
end;
function TdmBase.darVersion: String;
var
InfoProject : TInfoProject;
begin
InfoProject := TInfoProject.Create(Self);
Result := 'v' + InfoProject.FileVersion;
FreeAndNil(InfoProject);
end;
initialization
dmBase := TdmBase.Create(NIL);
finalization
dmBase.Free;
end.

191
Base/uDataTableUtils.pas Normal file
View File

@ -0,0 +1,191 @@
unit uDataTableUtils;
interface
uses
uDACDSDataTable, uDADataTable, Classes;
procedure CloneDataTable(const ASource : TDACDSDataTable;
var ATarget : TDACDSDataTable);
procedure GetKeyListAndValueList (const ASource : TDADataTable;
var KeysList: TStringList; var ValuesList: TStringList);
procedure DeleteAllTable(const ADataTable : TDADataTable);
function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean;
implementation
uses
uDAClasses, uDAInterfaces, SysUtils, Variants;
procedure DeleteAllTable(const ADataTable : TDADataTable);
begin
ADataTable.ClearRows;
{ if ADataTable.RecordCount > 0 then
begin
ADataTable.DisableControls;
//ADataTable.DisableEventHandlers; <- No descomentar
try
repeat begin
ADataTable.Last;
ADataTable.Delete;
end
until ADataTable.BOF;
finally
ADataTable.EnableControls;
//ADataTable.EnableEventHandlers; <- No descomentar
end;
end;}
end;
procedure CloneDataTable(const ASource : TDACDSDataTable;
var ATarget : TDACDSDataTable);
var
i : Integer;
begin
with ATarget do
begin
RemoteService := ASource.GetRemoteService;
Adapter := ASource.GetAdapter;
BusinessRulesID := ASource.BusinessRulesID;
Randomize;
Name := ASource.Name + '_' + IntToStr(Random(MAXINT));
LogicalName := ASource.LogicalName;
Params.AssignParamCollection(ASource.Params);
with SchemaCall do
begin
MethodName := ASource.SchemaCall.MethodName;
for i := 0 to ASource.SchemaCall.Params.Count - 1 do
begin
with Params.Add do begin
Name := ASource.SchemaCall.Params[i].Name;
ParamType := ASource.SchemaCall.Params[i].ParamType;
DataType := ASource.SchemaCall.Params[i].DataType;
Value := ASource.SchemaCall.Params[i].Value;
UserClassName := ASource.SchemaCall.Params[i].UserClassName;
end;
end;
end;
ATarget.LoadSchema; // o también ATarget.Fields.AssignFieldCollection(ASource.Fields);
with DataUpdateCall do
begin
MethodName := ASource.DataUpdateCall.MethodName;
for i := 0 to ASource.DataUpdateCall.Params.Count - 1 do
begin
with Params.Add do begin
Name := ASource.DataUpdateCall.Params[i].Name;
ParamType := ASource.DataUpdateCall.Params[i].ParamType;
DataType := ASource.DataUpdateCall.Params[i].DataType;
Value := ASource.DataUpdateCall.Params[i].Value;
UserClassName := ASource.DataUpdateCall.Params[i].UserClassName;
end;
end;
end;
with ScriptCall do
begin
MethodName := ASource.ScriptCall.MethodName;
for i := 0 to ASource.ScriptCall.Params.Count - 1 do
begin
with Params.Add do begin
Name := ASource.ScriptCall.Params[i].Name;
ParamType := ASource.ScriptCall.Params[i].ParamType;
DataType := ASource.ScriptCall.Params[i].DataType;
Value := ASource.ScriptCall.Params[i].Value;
UserClassName := ASource.ScriptCall.Params[i].UserClassName;
end;
end;
end;
with DataRequestCall do
begin
MethodName := ASource.DataRequestCall.MethodName;
for i := 0 to ASource.DataRequestCall.Params.Count - 1 do
begin
with Params.Add do begin
begin
Name := ASource.DataRequestCall.Params[i].Name;
ParamType := ASource.DataRequestCall.Params[i].ParamType;
DataType := ASource.DataRequestCall.Params[i].DataType;
Value := ASource.DataRequestCall.Params[i].Value;
UserClassName := ASource.DataRequestCall.Params[i].UserClassName;
end;
end;
end;
end;
with MasterParamsMappings do
for i := 0 to ASource.MasterParamsMappings.Count - 1 do
Add(ASource.MasterParamsMappings.Strings[i]);
with MasterRequestMappings do
for i := 0 to ASource.MasterRequestMappings.Count - 1 do
Add(ASource.MasterRequestMappings.Strings[i]);
MasterMappingMode := ASource.MasterMappingMode;
MasterFields := ASource.MasterFields;
MasterOptions := ASource.MasterOptions;
DetailFields := ASource.DetailFields;
DetailOptions := ASource.DetailOptions;
RemoteUpdatesOptions := ASource.RemoteUpdatesOptions;
StreamingOptions := ASource.StreamingOptions;
RemoteFetchEnabled := ASource.RemoteFetchEnabled;
end;
end;
procedure getKeyListAndValueList (const ASource : TDADataTable;
var KeysList: TStringList; var ValuesList: TStringList);
var
i: Integer;
begin
if not Assigned(KeysList) or not Assigned(ValuesList) then
raise Exception.Create('Las listas están vacias');
KeysList.Clear;
ValuesList.Clear;
for i:=0 to (ASource.Fields.Count-1) do
if ASource.Fields.Fields[i].InPrimaryKey then
begin
KeysList.Add(Copy(ASource.Fields.Fields[i].Name, 0, Length(ASource.Fields.Fields[i].Name)));
ValuesList.Add(Copy(VarToStr(ASource.Fields.Fields[i].Value), 0, Length(VarToStr(ASource.Fields.Fields[i].Value))));
end;
end;
function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean;
var
i, x : integer;
OldNewAreDifferent: boolean;
begin
OldNewAreDifferent := FALSE;
for i := 0 to (aDelta.Count-1) do
begin
for x := 0 to (aDelta.LoggedFieldCount-1) do
begin
OldNewAreDifferent := (aDelta.Changes[i].OldValues[x] <> aDelta.Changes[i].NewValues[x]);
if OldNewAreDifferent then
Break; // Abandon iteration at the first difference between old and new.
end;
if OldNewAreDifferent then
Break; // Abandon iteration at the first difference between old and new.
end;
result := OldNewAreDifferent;
end;
end.

BIN
Base/uEditorBase.ddp Normal file

Binary file not shown.

1625
Base/uEditorBase.dfm Normal file

File diff suppressed because it is too large Load Diff

199
Base/uEditorBase.pas Normal file
View File

@ -0,0 +1,199 @@
unit uEditorBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uGUIBase, uCustomEditor, ToolWin, ComCtrls, JvExControls,
JvComponent, JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX,
TB2Item, ImgList, PngImageList, StdActns, JvFormAutoSize, AppEvnts,
uCustomView, uViewBase, JvAppStorage, JvAppRegistryStorage,
JvFormPlacement, pngimage, ExtCtrls, dxLayoutLookAndFeels,
JvComponentBase;
type
IEditorBase = interface(ICustomEditor)
['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}']
end;
TfEditorBase = class(TCustomEditor, IEditorBase)
actAcercaDe: TAction;
actAnterior: TAction;
actBuscar: TAction;
actCancelarCambios: TAction;
actCerrar: TAction;
actConfPagina: TAction;
actCopiar: TEditCopy;
actCortar: TEditCut;
actDeshacer: TEditUndo;
actEliminar: TAction;
actGuardar: TAction;
actGuardarCerrar: TAction;
actImprimir: TAction;
actLimpiar: TEditDelete;
actModificar: TAction;
actNuevo: TAction;
actPegar: TEditPaste;
actPrevisualizar: TAction;
actRefrescar: TAction;
actSeleccionarTodo: TEditSelectAll;
actSiguiente: TAction;
EditorActionList: TActionList;
JvNavPanelHeader: TJvNavPanelHeader;
LargeImages: TPngImageList;
SmallImages: TPngImageList;
TBXDock: TTBXDock;
TBXItem1: TTBXItem;
TBXItem10: TTBXItem;
TBXItem11: TTBXItem;
TBXItem12: TTBXItem;
TBXItem13: TTBXItem;
TBXItem14: TTBXItem;
TBXItem15: TTBXItem;
TBXItem16: TTBXItem;
TBXItem17: TTBXItem;
TBXItem18: TTBXItem;
TBXItem19: TTBXItem;
TBXItem2: TTBXItem;
TBXItem20: TTBXItem;
TBXItem21: TTBXItem;
TBXItem22: TTBXItem;
TBXItem23: TTBXItem;
TBXItem24: TTBXItem;
TBXItem25: TTBXItem;
TBXItem26: TTBXItem;
TBXItem27: TTBXItem;
TBXItem28: TTBXItem;
TBXItem29: TTBXItem;
TBXItem3: TTBXItem;
TBXItem30: TTBXItem;
TBXItem31: TTBXItem;
TBXItem32: TTBXItem;
TBXItem4: TTBXItem;
TBXItem5: TTBXItem;
TBXItem6: TTBXItem;
TBXItem8: TTBXItem;
TBXItem9: TTBXItem;
tbxMain: TTBXToolbar;
tbxMenu: TTBXToolbar;
TBXSeparatorItem1: TTBXSeparatorItem;
TBXSeparatorItem10: TTBXSeparatorItem;
TBXSeparatorItem11: TTBXSeparatorItem;
TBXSeparatorItem12: TTBXSeparatorItem;
TBXSeparatorItem13: TTBXSeparatorItem;
TBXSeparatorItem2: TTBXSeparatorItem;
TBXSeparatorItem3: TTBXSeparatorItem;
TBXSeparatorItem4: TTBXSeparatorItem;
TBXSeparatorItem5: TTBXSeparatorItem;
TBXSeparatorItem6: TTBXSeparatorItem;
TBXSeparatorItem7: TTBXSeparatorItem;
TBXSeparatorItem8: TTBXSeparatorItem;
TBXSeparatorItem9: TTBXSeparatorItem;
TBXSubmenuItem1: TTBXSubmenuItem;
TBXSubmenuItem4: TTBXSubmenuItem;
TBXSubmenuItem5: TTBXSubmenuItem;
TBXSubmenuItem6: TTBXSubmenuItem;
TBXSubmenuItem7: TTBXSubmenuItem;
StatusBar: TStatusBar;
JvFormStorage: TJvFormStorage;
JvAppRegistryStorage: TJvAppRegistryStorage;
Image1: TImage;
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
procedure actCerrarExecute(Sender: TObject);
procedure actGuardarCerrarExecute(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
protected
function ModifiedQuery : Boolean;
public
constructor Create(AOwner: TComponent); override;
published
procedure FormShow(Sender: TObject); virtual;
end;
TfEditorBaseClass = class of TfEditorBase;
implementation
{$R *.dfm}
uses
Menus, uDataModuleBase;
{
********************************* TfEditorBase *********************************
}
procedure TfEditorBase.actCerrarExecute(Sender: TObject);
begin
Close;
end;
procedure TfEditorBase.actGuardarCerrarExecute(Sender: TObject);
var
ACursor: TCursor;
begin
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
Application.ProcessMessages;
try
if actGuardar.Execute then
actCerrar.Execute;
finally
Screen.Cursor := ACursor;
end;
end;
constructor TfEditorBase.Create(AOwner: TComponent);
begin
inherited;
JvFormStorage.AppStoragePath := Name;
JvNavPanelHeader.StyleManager := dmBase.StyleManager;
end;
procedure TfEditorBase.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Valid then
CanClose := ModifiedQuery
else
CanClose := False;
end;
procedure TfEditorBase.FormShow(Sender: TObject);
begin
if Assigned(Parent) then
begin
StatusBar.Visible := False;
actCerrar.ShortCut := 0
end
else begin
StatusBar.Visible := True;
actCerrar.ShortCut := ShortCut(VK_ESCAPE, []);
end;
end;
function TfEditorBase.ModifiedQuery: Boolean;
var
Respuesta: Integer;
begin
Result := True;
if Modified then
begin
Respuesta := Application.MessageBox('Se han producido cambios.' + #10#13 +
'¿Desea guardarlos antes de salir?', 'Atención', MB_YESNOCANCEL);
case Respuesta of
IDYES : actGuardar.Execute;
IDNO : actCancelarCambios.Execute;
else
Result := False;
end;
end
{ else
actCancelarCambios.Execute;}
end;
initialization
RegisterClass(TfEditorBase);
finalization
UnRegisterClass(TfEditorBase);
end.

BIN
Base/uEditorDBBase.ddp Normal file

Binary file not shown.

49
Base/uEditorDBBase.dfm Normal file
View File

@ -0,0 +1,49 @@
inherited fEditorDBBase: TfEditorDBBase
Left = 482
Top = 361
Caption = 'fEditorDBBase'
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
inherited Image1: TImage
Picture.Data = {00}
end
end
inherited EditorActionList: TActionList
inherited actModificar: TAction
OnUpdate = actModificarUpdate
end
inherited actGuardar: TAction
OnExecute = actGuardarExecute
end
inherited actEliminar: TAction
OnExecute = actEliminarExecute
OnUpdate = actEliminarUpdate
end
inherited actPrevisualizar: TAction
OnUpdate = actPrevisualizarUpdate
end
inherited actImprimir: TAction
OnUpdate = actImprimirUpdate
end
inherited actRefrescar: TAction
OnExecute = actRefrescarExecute
OnUpdate = actRefrescarUpdate
end
inherited actAnterior: TAction
OnExecute = actAnteriorExecute
OnUpdate = actAnteriorUpdate
end
inherited actSiguiente: TAction
OnExecute = actSiguienteExecute
OnUpdate = actSiguienteUpdate
end
inherited actCancelarCambios: TAction
OnExecute = actCancelarCambiosExecute
end
end
object dsDataTable: TDADataSource [8]
Left = 40
Top = 88
end
end

370
Base/uEditorDBBase.pas Normal file
View File

@ -0,0 +1,370 @@
unit uEditorDBBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX,
TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, DB, uDADataTable, uEditorBase, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, uViewBase,
JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
pngimage, ExtCtrls, dxLayoutLookAndFeels, JvComponentBase;
type
IEditorDBBase = interface(IEditorBase)
['{497AE4CE-D061-4F75-A29A-320F8565FF54}']
end;
TfEditorDBBase = class(TfEditorBase, IEditorDBBase)
dsDataTable: TDADataSource;
procedure actRefrescarExecute(Sender: TObject);
procedure actAnteriorExecute(Sender: TObject);
procedure actSiguienteExecute(Sender: TObject);
procedure actAnteriorUpdate(Sender: TObject);
procedure actSiguienteUpdate(Sender: TObject);
procedure actRefrescarUpdate(Sender: TObject);
procedure actCancelarCambiosExecute(Sender: TObject);
procedure actGuardarExecute(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); virtual;
procedure actEliminarExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
procedure actPrevisualizarUpdate(Sender: TObject);
procedure actImprimirUpdate(Sender: TObject);
protected
FApplyUpdates: Boolean;
function GetModified: Boolean; override;
published
constructor Create(AOwner: TComponent); override;
end;
var
fEditorDBBase: TfEditorDBBase;
implementation
uses uExceptions, uDataTableUtils, uBizInformesBase,
uDAInterfaces, uBizImportesDetalleBase;
{$R *.dfm}
procedure TfEditorDBBase.actRefrescarExecute(Sender: TObject);
var
ACursor: TCursor;
ABookmark : TBookmark;
begin
inherited;
if Assigned(dsDataTable.DataTable) then
begin
if (dsDataTable.DataTable.IsEmpty) or (not ModifiedQuery) then
Exit; // No continuar con el refresco
ABookmark := dsDataTable.DataTable.GetBookMark;
// dsDataTable.DataTable.DisableControls; <- No descomentar
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
dsDataTable.DataTable.Refresh;
if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then
dsDataTable.DataTable.GotoBookmark(ABookmark);
finally
dsDataTable.DataTable.FreeBookmark(ABookmark);
// dsDataTable.DataTable.EnableControls; <- No descomentar
Screen.Cursor := ACursor;
end;
end;
end;
procedure TfEditorDBBase.actAnteriorExecute(Sender: TObject);
begin
inherited;
if Assigned(dsDataTable.DataTable) then
begin
if (not ModifiedQuery) then
Exit;
dsDataTable.DataTable.Prior;
end;
end;
procedure TfEditorDBBase.actSiguienteExecute(Sender: TObject);
begin
inherited;
if Assigned(dsDataTable.DataTable) then
begin
if (not ModifiedQuery) then
Exit;
dsDataTable.DataTable.Next;
end;
end;
procedure TfEditorDBBase.actAnteriorUpdate(Sender: TObject);
begin
inherited;
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := not dsDataTable.DataTable.BOF
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.actSiguienteUpdate(Sender: TObject);
begin
inherited;
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := not dsDataTable.DataTable.EOF
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.actRefrescarUpdate(Sender: TObject);
begin
inherited;
if Assigned(dsDataTable.DataTable) and
(not (dsDataTable.DataTable.State = dsInsert)) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.Fetching or
dsDataTable.DataTable.Opening or
dsDataTable.DataTable.Closing)
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.actCancelarCambiosExecute(Sender: TObject);
var
dtDetails : TList;
i : integer;
ABookmark : TBookmark;
ACursor : TCursor;
AParche : IParche;
begin
inherited;
AParche := NIL;
if Assigned(dsDataTable.DataTable) then
begin
ABookmark := dsDataTable.DataTable.GetBookMark;
dsDataTable.DataTable.DisableControls;
// dsDataTable.DataTable.DisableEventHandlers; <- No descomentar
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
{ No lo pongo en try..finally para ver posibles errores }
//try
dsDataTable.DataTable.Cancel;
dtDetails := dsDataTable.DataTable.GetDetailDataTables;
for i := 0 to dtDetails.Count - 1 do
begin
(TDADataTable(dtDetails.Items[i])).Cancel;
{ PARCHE **********************************
OJO: Está pensado para que sólo una de las tablas detalle
soporte el interfaz de IParche }
if not Assigned(AParche) and
Supports((TDADataTable(dtDetails.Items[i])), IParche, AParche) then
AParche.DesactivarEventos;
end;
dsDataTable.DataTable.CancelUpdates;
{ Comprobar si el bookmark no es válido cuando estamos cancelando la
inserción de una fila nueva.
CUIDADO!! Si no es válido salta una excepción. NO devuelve false!!!}
try
if (Assigned(ABookmark)) and
(dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark)) then
dsDataTable.DataTable.GotoBookmark(ABookmark);
except
end;
{ PARCHE ********************************** }
if Assigned(AParche) then
begin
AParche.ActivarEventos;
AParche.Refrescar;
AParche := NIL;
end;
//finally
dsDataTable.DataTable.EnableControls;
dsDataTable.DataTable.FreeBookmark(ABookmark);
// dsDataTable.DataTable.EnableEventHandlers; <- No descomentar
Screen.Cursor := ACursor;
//end;
end;
end;
procedure TfEditorDBBase.actGuardarExecute(Sender: TObject);
var
dtDetails : TList;
i : integer;
ABookmark : TBookmark;
begin
inherited;
if Assigned(dsDataTable.DataTable) then
begin
if dsDataTable.DataTable.Editing then
dsDataTable.DataTable.Post;
dtDetails := dsDataTable.DataTable.GetDetailDataTables;
for i := 0 to dtDetails.Count - 1 do
if (TDADataTable(dtDetails.Items[i])).Editing then
(TDADataTable(dtDetails.Items[i])).Post;
//Esta parte se quitará cuando cambien los detalles de facturas, se tiene que
//volver a hacer el post de la tabla maestro porque los eventos de calculo de
//importe total de los detalles cambian el campo base imponible entre otros de
//la cabecera y luego no se hace post esto provoca que se queden deltas perdidos
//y un pete que te cagas al dar a guardar sin salir del campo importe.
if dsDataTable.DataTable.Editing then
dsDataTable.DataTable.Post;
if FApplyUpdates then
begin
// ABookmark := dsDataTable.DataTable.GetBookMark;
try
dsDataTable.DataTable.ApplyUpdates;
// if dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark) then
// dsDataTable.DataTable.GotoBookmark(ABookmark);
finally
// dsDataTable.DataTable.FreeBookmark(ABookmark);
end;
end;
Modified := False;
end;
end;
function TfEditorDBBase.GetModified: Boolean;
var
dtDetails : TList;
i : integer;
bCambiado : Boolean;
begin
bCambiado := False;
if Assigned(dsDataTable.DataTable) then
begin
bCambiado := (dsDataTable.DataTable.State = dsEdit);
if FApplyUpdates then
if (not bCambiado) then
bCambiado := DeltaValuesAreDifferent(dsDataTable.DataTable.Delta);
if (not bCambiado) then
begin
dtDetails := dsDataTable.DataTable.GetDetailDataTables;
for i := 0 to dtDetails.Count - 1 do
begin
bCambiado := bCambiado or ((TDADataTable(dtDetails.Items[i])).State = dsEdit);
if FApplyUpdates then
if (not bCambiado) then
bCambiado := bCambiado or (DeltaValuesAreDifferent((TDADataTable(dtDetails.Items[i])).Delta));
if bCambiado then
Break;
end;
end;
end;
if (not bCambiado) then
bCambiado := inherited GetModified;
Result := bCambiado;
end;
procedure TfEditorDBBase.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
{ Para resetear el estado de la tabla en el caso de hacer un insert
sin meter ningún dato. }
if Assigned(dsDataTable.DataTable) and (not Modified) then
dsDataTable.DataTable.Cancel;
inherited;
end;
procedure TfEditorDBBase.actEliminarExecute(Sender: TObject);
var
aObj : IApplyUpdateFailedException;
ACursor: TCursor;
begin
inherited;
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
if dsDataTable.DataTable.State in dsEditModes then
dsDataTable.DataTable.Cancel;
dsDataTable.DataTable.Delete;
try
if FApplyUpdates then
dsDataTable.DataTable.ApplyUpdates;
Modified := False;
except
on E: EDAApplyUpdateFailed do
begin
dsDataTable.DataTable.CancelUpdates;
actRefrescar.Execute;
if Supports(dsDataTable.DataTable, IApplyUpdateFailedException, aObj) then
aObj.ShowApplyUpdateFailed(E);
end
else
raise; // Generic exception
end;
finally
Screen.Cursor := ACursor;
end;
end;
procedure TfEditorDBBase.actEliminarUpdate(Sender: TObject);
begin
inherited;
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
and not (dsDataTable.DataTable.State = dsInsert)
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.actModificarUpdate(Sender: TObject);
begin
inherited;
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.actPrevisualizarUpdate(Sender: TObject);
begin
inherited;
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.actImprimirUpdate(Sender: TObject);
begin
inherited;
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
else
(Sender as TAction).Enabled := False;
end;
constructor TfEditorDBBase.Create(AOwner: TComponent);
begin
inherited;
FApplyUpdates := True;
end;
end.

BIN
Base/uEditorDBItem.ddp Normal file

Binary file not shown.

51
Base/uEditorDBItem.dfm Normal file
View File

@ -0,0 +1,51 @@
inherited fEditorDBItem: TfEditorDBItem
Left = 557
Top = 313
BorderIcons = [biSystemMenu, biMaximize]
Caption = 'fEditorDBItem'
PixelsPerInch = 96
TextHeight = 13
inherited TBXDock: TTBXDock
inherited tbxMain: TTBXToolbar
inherited TBXItem26: TTBXItem
Visible = False
end
inherited TBXItem25: TTBXItem
Visible = False
end
end
inherited tbxMenu: TTBXToolbar
inherited TBXSubmenuItem1: TTBXSubmenuItem
Visible = False
end
end
end
object pgPaginas: TPageControl [2]
Left = 0
Top = 76
Width = 666
Height = 387
ActivePage = pagGeneral
Align = alClient
TabOrder = 2
object pagGeneral: TTabSheet
Caption = 'General'
end
end
inherited EditorActionList: TActionList
Top = 112
inherited actEliminar: TAction
ShortCut = 0
end
inherited actPrevisualizar: TAction
OnExecute = actPrevisualizarExecute
end
inherited actImprimir: TAction
OnExecute = actImprimirExecute
end
end
inherited dsDataTable: TDADataSource
Left = 48
Top = 112
end
end

91
Base/uEditorDBItem.pas Normal file
View File

@ -0,0 +1,91 @@
unit uEditorDBItem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX,
TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
StdCtrls, uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView,
uViewBase, JvAppStorage, JvAppRegistryStorage,
JvFormPlacement, pngimage, ExtCtrls, dxLayoutLookAndFeels,
JvComponentBase;
type
IEditorDBItem = interface(IEditorDBBase)
['{497AE4CE-D061-4F75-A29A-320F8565FF54}']
end;
TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem)
pgPaginas: TPageControl;
pagGeneral: TTabSheet;
procedure actEliminarExecute(Sender: TObject);
procedure actPrevisualizarExecute(Sender: TObject);
procedure actImprimirExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fEditorDBItem: TfEditorDBItem;
implementation
uses uBizInformesBase;
{$R *.dfm}
procedure TfEditorDBItem.actEliminarExecute(Sender: TObject);
begin
inherited;
actCerrar.Execute;
end;
procedure TfEditorDBItem.actPrevisualizarExecute(Sender: TObject);
var
Respuesta: Integer;
aInf : IBizInformesAware;
begin
inherited;
if Modified then
begin
if (Application.MessageBox('Se han producido cambios y no se puede previsualizar hasta que no se guarden.' + #10#13 +
'¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then
actGuardar.Execute
else begin
Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'FactuGES', MB_OK);
Exit;
end;
end;
if Assigned(dsDataTable.DataTable) and
Supports(dsDataTable.DataTable, IBizInformesAware, aInf) then
aInf.Preview;
end;
procedure TfEditorDBItem.actImprimirExecute(Sender: TObject);
var
Respuesta: Integer;
aInf : IBizInformesAware;
begin
inherited;
if Modified then
begin
if (Application.MessageBox('Se han producido cambios y no se puede imprimir hasta que no se guarden.' + #10#13 +
'¿Desea guardarlos ahora?', 'Atención', MB_YESNO) = IDYES) then
actGuardar.Execute
else begin
Application.MessageBox('Recuerde guardar los cambios si quiere previsualizar o imprimir.', 'FactuGES', MB_OK);
Exit;
end;
end;
if Assigned(dsDataTable.DataTable) and
Supports(dsDataTable.DataTable, IBizInformesAware, aInf) then
aInf.Print;
end;
end.

BIN
Base/uEditorGrid.ddp Normal file

Binary file not shown.

1454
Base/uEditorGrid.dfm Normal file

File diff suppressed because it is too large Load Diff

234
Base/uEditorGrid.pas Normal file
View File

@ -0,0 +1,234 @@
unit uEditorGrid;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent,
JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX, TB2Item,
ImgList, PngImageList, StdActns, TB2ExtItems, TBXExtItems, uViewGrid,
uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
uViewBase, uViewBarraSeleccion, dxLayoutLookAndFeels, JvComponentBase;
type
IEditorGrid = interface(IEditorDBBase)
['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}']
end;
TfEditorGrid = class(TfEditorDBBase, IEditorGrid)
tbxEditFiltro: TTBXEditItem;
tbxFiltro: TTBXToolbar;
TBXItem7: TTBXItem;
GridPopupMenu: TPopupMenu;
Modificar1: TMenuItem;
Eliminar1: TMenuItem;
N1: TMenuItem;
Nuevo1: TMenuItem;
TBXLabelItem1: TTBXLabelItem;
actQuitarFiltro: TAction;
N2: TMenuItem;
Previsualizar1: TMenuItem;
Imprimir1: TMenuItem;
TBXSeparatorItem14: TTBXSeparatorItem;
TBXItem33: TTBXItem;
actDuplicar: TAction;
TBXSeparatorItem15: TTBXSeparatorItem;
TBXItem34: TTBXItem;
Duplicar1: TMenuItem;
frViewBarraSeleccion: TfrViewBarraSeleccion;
procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
procedure FormShow(Sender: TObject);
procedure actPrevisualizarExecute(Sender: TObject);
procedure actConfPaginaExecute(Sender: TObject);
procedure actImprimirExecute(Sender: TObject);
procedure actQuitarFiltroExecute(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actDuplicarUpdate(Sender: TObject);
procedure actDuplicarExecute(Sender: TObject);
procedure JvFormStorageSavePlacement(Sender: TObject);
procedure JvFormStorageRestorePlacement(Sender: TObject);
procedure actRefrescarExecute(Sender: TObject);
private
FViewGrid : IViewGrid;
protected
procedure SetViewGrid(const Value : IViewGrid); virtual;
function GetViewGrid: IViewGrid;
function GetSelectionBarVisible: Boolean;
procedure SetSelectionBarVisible(const Value: Boolean); Virtual;
function GetMultiSelection: Boolean;
procedure SetMultiSelection(const Value: Boolean);
public
property ViewGrid: IViewGrid read GetViewGrid write SetViewGrid;
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
property MultiSelection : Boolean read GetMultiSelection write SetMultiSelection;
property SelectionBarVisible : Boolean read GetSelectionBarVisible write SetSelectionBarVisible;
end;
implementation
uses
uDataModuleBase, uCustomEditor, cxGridTableView;
{$R *.dfm}
{
********************************* TfEditorGrid *********************************
}
destructor TfEditorGrid.Destroy;
begin
FViewGrid := NIL;
inherited;
end;
function TfEditorGrid.GetViewGrid: IViewGrid;
begin
Result := FViewGrid;
end;
procedure TfEditorGrid.SetViewGrid(const Value: IViewGrid);
begin
FViewGrid := Value;
if Assigned(FViewGrid) then
begin
FViewGrid.PopupMenu := GridPopupMenu;
FViewGrid.OnDblClick := actModificar.OnExecute;
end;
end;
procedure TfEditorGrid.tbxEditFiltroChange(Sender: TObject; const Text: String);
begin
if Assigned(ViewGrid) then
ViewGrid.Filter := Text;
end;
procedure TfEditorGrid.FormShow(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.ShowEmbedded(Self);
end;
procedure TfEditorGrid.actPrevisualizarExecute(Sender: TObject);
begin
inherited;
ViewGrid.Preview;
end;
procedure TfEditorGrid.actConfPaginaExecute(Sender: TObject);
begin
inherited;
ViewGrid.PrintSetup;
end;
procedure TfEditorGrid.actImprimirExecute(Sender: TObject);
begin
inherited;
ViewGrid.Print;
end;
procedure TfEditorGrid.actQuitarFiltroExecute(Sender: TObject);
begin
if Assigned(ViewGrid) then
begin
tbxEditFiltro.Text := '';
ViewGrid.Filter := '';
end;
end;
procedure TfEditorGrid.actModificarExecute(Sender: TObject);
begin
inherited;
ViewGrid.SyncFocusedRecordsFromGrid;
end;
procedure TfEditorGrid.actEliminarExecute(Sender: TObject);
begin
ViewGrid.SyncFocusedRecordsFromGrid; // Esto va ANTES del inherited. No cambiar.
inherited;
end;
constructor TfEditorGrid.Create(AOwner: TComponent);
begin
inherited;
actModificar.ShortCut := ShortCut(VK_RETURN, []);
end;
procedure TfEditorGrid.actDuplicarUpdate(Sender: TObject);
begin
if Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.IsEmpty)
and not (dsDataTable.DataTable.State = dsInsert)
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorGrid.actDuplicarExecute(Sender: TObject);
begin
ViewGrid.SyncFocusedRecordsFromGrid; // Esto va ANTES del inherited. No cambiar.
inherited;
end;
procedure TfEditorGrid.JvFormStorageSavePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.StoreToRegistry;
end;
procedure TfEditorGrid.JvFormStorageRestorePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.RestoreFromRegistry;
end;
procedure TfEditorGrid.actRefrescarExecute(Sender: TObject);
var
FocusedRow, TopRow : Integer;
begin
ViewGrid.SyncFocusedRecordsFromGrid;
TopRow := (ViewGrid.Grid.ActiveView.Controller as TcxGridTableController).TopRowIndex;
FocusedRow := ViewGrid.Grid.ActiveView.DataController.FocusedRowIndex;
inherited;
ViewGrid.Grid.ActiveView.DataController.FocusedRowIndex := FocusedRow;
(ViewGrid.Grid.ActiveView.Controller as TcxGridTableController).TopRowIndex := TopRow;
// ViewGrid.Grid.ActiveView.Controller.TopRowIndex := TopRow;
// ViewGrid.SyncFocusedRecordsFromDataSet;
end;
function TfEditorGrid.GetMultiSelection: Boolean;
begin
Result := ViewGrid.MultiSelection;
end;
function TfEditorGrid.GetSelectionBarVisible: Boolean;
begin
Result := frViewBarraSeleccion.Visible;
end;
procedure TfEditorGrid.SetMultiSelection(const Value: Boolean);
begin
ViewGrid.MultiSelection := Value;
end;
procedure TfEditorGrid.SetSelectionBarVisible(const Value: Boolean);
begin
frViewBarraSeleccion.Visible := Value;
end;
initialization
RegisterClass(TfEditorGrid);
finalization
UnRegisterClass(TfEditorGrid);
end.

BIN
Base/uEditorItem.ddp Normal file

Binary file not shown.

54
Base/uEditorItem.dfm Normal file
View File

@ -0,0 +1,54 @@
inherited fEditorItem: TfEditorItem
Left = 457
Top = 278
Width = 686
Height = 535
BorderIcons = [biSystemMenu, biMaximize]
Caption = 'fEditorItem'
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 678
Visible = False
inherited Image1: TImage
Left = 651
end
end
object pgPaginas: TPageControl [1]
Left = 0
Top = 76
Width = 678
Height = 406
ActivePage = pagGeneral
Align = alClient
TabOrder = 1
object pagGeneral: TTabSheet
Caption = 'General'
end
end
inherited TBXDock: TTBXDock
Width = 678
inherited tbxMain: TTBXToolbar
inherited TBXItem5: TTBXItem
Visible = False
end
end
inherited tbxMenu: TTBXToolbar
inherited TBXSubmenuItem4: TTBXSubmenuItem
inherited TBXItem10: TTBXItem
Visible = False
end
end
end
end
inherited StatusBar: TStatusBar
Top = 482
Width = 678
end
inherited EditorActionList: TActionList
Top = 104
inherited actEliminar: TAction
ShortCut = 0
end
end
end

41
Base/uEditorItem.pas Normal file
View File

@ -0,0 +1,41 @@
unit uEditorItem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorBase, ActnList, JvExControls, JvComponent,
JvNavigationPane, ComCtrls, StdActns, TB2Dock, TB2Toolbar, TBX, TB2Item,
ImgList, PngImageList, JvFormAutoSize, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
dxLayoutLookAndFeels, JvComponentBase;
type
IEditorItem = interface(IEditorBase)
['{F6A412D1-59AA-41D2-ADD5-C92687CD5387}']
end;
TfEditorItem = class(TfEditorBase, IEditorItem)
pagGeneral: TTabSheet;
pgPaginas: TPageControl;
end;
var
fEditorItem: TfEditorItem;
implementation
uses uDataModuleBase;
{$R *.dfm}
initialization
RegisterClass(TfEditorItem);
finalization
UnRegisterClass(TfEditorItem);
end.

15
Base/uEditorPSPreview.dfm Normal file
View File

@ -0,0 +1,15 @@
object Form1: TForm1
Left = 580
Top = 506
Width = 320
Height = 240
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
PixelsPerInch = 96
TextHeight = 13
end

24
Base/uEditorPSPreview.pas Normal file
View File

@ -0,0 +1,24 @@
unit uEditorPSPreview;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxPSPrVw;
type
TForm1 = class(TCustomdxPSPreviewWindow)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.

BIN
Base/uEditorPreview.ddp Normal file

Binary file not shown.

800
Base/uEditorPreview.dfm Normal file
View File

@ -0,0 +1,800 @@
inherited fEditorPreview: TfEditorPreview
Left = 484
Top = 297
Caption = 'Previsualizar'
WindowState = wsMaximized
OnDestroy = FormDestroy
OnResize = FormResize
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Visible = False
end
inherited TBXDock: TTBXDock
Height = 75
inherited tbxMain: TTBXToolbar
Top = 49
DefaultDock = TBXDock
Visible = False
end
inherited tbxMenu: TTBXToolbar
Visible = False
end
object TBXToolbar1: TTBXToolbar
Left = 0
Top = 23
Caption = 'TBXToolbar1'
DefaultDock = TBXDock
DragHandleStyle = dhNone
ParentShowHint = False
ShowHint = True
TabOrder = 2
object TBXItem39: TTBXItem
Action = actImprimir
DisplayMode = nbdmImageAndText
Images = SmallImages
end
object TBXSeparatorItem18: TTBXSeparatorItem
end
object tbxMano: TTBXItem
Action = actToolHand
AutoCheck = True
Checked = True
DisplayMode = nbdmImageAndText
GroupIndex = 1
Images = PreviewSmallImageList
end
object TBXSeparatorItem14: TTBXSeparatorItem
end
object tbxZoom: TTBXItem
Action = actToolZoom
AutoCheck = True
DisplayMode = nbdmImageAndText
GroupIndex = 1
Images = PreviewSmallImageList
end
object TBXItem42: TTBXItem
Action = actTodaPagina
Images = PreviewSmallImageList
end
object TBXItem41: TTBXItem
Action = actAnchoPagina
Images = PreviewSmallImageList
end
object TBXItem40: TTBXItem
Action = actZoomOut
Images = PreviewSmallImageList
end
object cbZoom: TTBXComboBoxItem
Caption = 'Zoom'
ReadOnly = True
OnItemClick = cbZoomItemClick
end
object TBXItem37: TTBXItem
Action = actZoomIn
Images = PreviewSmallImageList
end
object TBXSeparatorItem17: TTBXSeparatorItem
end
object TBXSeparatorItem16: TTBXSeparatorItem
end
object TBXItem35: TTBXItem
Action = actPrimeraPagina
Images = PreviewSmallImageList
end
object TBXItem34: TTBXItem
Action = actPaginaAnterior
Images = PreviewSmallImageList
end
object TBXItem33: TTBXItem
Action = actPaginaSiguiente
Images = PreviewSmallImageList
end
object TBXItem36: TTBXItem
Action = actUltimaPagina
Images = PreviewSmallImageList
end
object TBXSeparatorItem15: TTBXSeparatorItem
end
object TBXItem7: TTBXItem
Action = actCerrar
Images = SmallImages
end
end
end
inherited EditorActionList: TActionList
Top = 104
inherited actImprimir: TAction
OnExecute = actImprimirExecute
end
end
inherited SmallImages: TPngImageList
Left = 43
Top = 104
end
inherited LargeImages: TPngImageList
Left = 75
Top = 104
end
inherited JvFormStorage: TJvFormStorage
Left = 376
Top = 136
end
inherited JvAppRegistryStorage: TJvAppRegistryStorage
Left = 408
Top = 136
end
object PreviewActionList: TActionList
Images = PreviewSmallImageList
Left = 344
Top = 104
object actPrimeraPagina: TAction
Category = 'Preview'
Caption = 'Primera p'#225'gina'
ImageIndex = 0
OnExecute = actPrimeraPaginaExecute
end
object actUltimaPagina: TAction
Category = 'Preview'
Caption = #218'ltima p'#225'gina'
ImageIndex = 3
OnExecute = actUltimaPaginaExecute
end
object actPaginaAnterior: TAction
Category = 'Preview'
Caption = 'P'#225'gina anterior'
ImageIndex = 1
OnExecute = actPaginaAnteriorExecute
end
object actPaginaSiguiente: TAction
Category = 'Preview'
Caption = 'P'#225'gina siguiente'
ImageIndex = 2
OnExecute = actPaginaSiguienteExecute
end
object actZoomIn: TAction
Category = 'Zoom'
Caption = 'M'#225's zoom'
ImageIndex = 8
OnExecute = actZoomInExecute
end
object actZoomOut: TAction
Category = 'Zoom'
Caption = 'Menos zoom'
ImageIndex = 9
OnExecute = actZoomOutExecute
end
object actTodaPagina: TAction
Category = 'Zoom'
Caption = 'Toda la p'#225'gina'
ImageIndex = 4
OnExecute = actTodaPaginaExecute
end
object actAnchoPagina: TAction
Category = 'Zoom'
Caption = 'Ancho de p'#225'gina'
ImageIndex = 5
OnExecute = actAnchoPaginaExecute
end
object actToolHand: TAction
Category = 'Tools'
Caption = 'Mano'
ImageIndex = 10
OnExecute = actToolHandExecute
end
object actToolZoom: TAction
Category = 'Tools'
Caption = 'Zoom'
ImageIndex = 6
OnExecute = actToolZoomExecute
end
end
object PreviewSmallImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000F14944415478DA
C5D2A10EC2301006E01B4F30893C39C59619EC70937B843D014C829B0339DEA0
1289638EC9C9E1160C9553A43882A0B45DC80223A30112CE346DFA7F697A6770
CEE19B327E0A8C663BB5A14506348D8CE7CBDEB4E0DBB96D7402518010C5A405
C8B0840F9B493710FA08F1E21190E1D0B7C5F9F23D10780849D200F7705102AC
D73A8023005203F73065A08022D3003C0B81AC08A0E3810C33115600156BAE01
3888E2A9F50BDC71CE07EE105875025A01B09268007D01A4CD1F48E4DAB3809D
657F35001440963E764122C78BA50798268ACF6ACF8142F6F97B400E8B9AC617
93887EC23B814FEAFFC00D0E3CD3E1153EE1F30000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000A34944415478DA
63FCFFFF3F032580912606303232628839545CF8BFBF5D9F912C03409A1F5C38
C0707F7B3EE90680342778E83334744C24DD0098E60B371818366C20D10098E6
071F18C0065C384082018E9517C19A3F0035830D7800A44F90E802A3BC13FFF5
8CCC193EBCF8C8F0E00503C3871B0B480F039021FF9834183EFC00721E906100
CC9077BF34C837006EC8AD13E41B00020A1E13FE136D002960E00D000045F48A
E13771044B0000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000A44944415478DA
63FCFFFF3F03258091260638565EFC7FA0C380115D1C9B5A9C067CFAF683E1DC
240B46B20D48F0D06798B4EE248A21241BF0E10703C3A26D0843483220C0419F
E1C10706860F407CE91AC410920C70B0506078F0829FE1C2838F0C1F1E3C009A
7480E1FEF67C46A20D30D0506038708301AEF9C18E02D25C202020C070E1C207
B86692C3800118800F6E2034936CC0830BA89A493680A294480A18780300CF22
A8E18A4EF6A30000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000EC4944415478DA
C5D2A10EC2301405D0DB2FA012F9246E95C8E290FB04FE8049703890842F5850
2882021CB5185210044725B220086E74908D40C252020937A97BF7A479792C49
127C13F673A0D65E27AA27D8EBA06CE97C70D10D5821703A5FB01A54D92B1085
84A813633F6B16038D7A80C178F984A440A34EE8F43C017B0186D3079202A124
F4FB1E402803180B58F736DB3B72038403620F405609E65082364758639CA440
42425608F1C803106E50ED9097CD3CBAFD40106132F10038E7D0DAE6E56C07A2
EC80B90700B740B37B9433801CA07C00A39FCB19C039412B0FE0DD25A6709A42
E0D3FC1FB8020318D0E1923D9C4B0000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000017E4944415478DA
630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786
9F7F2138C9268F01C58073FBBF113444C9EA0B58F38469B3192E2DBB8C69404E
AC07568DBFFE303058F86431D44EB264F8053460DACC25B80DA89FBC1FC38092
144706FBC02C86F27E03B00BE6CE594B9C0B4036FFFC0DA15D43B31872BB95C0
062C5FB09B341764C4383278476631A4754882BDB076F111FC2E40B619860363
B318125A05187E026362CBD2B3A4B92036D491212C218B21B2999DE1C7DF6F0C
7B565CC76E4072B807D8E6BFFF1036FFFE0BA16352B218021BFE82C3E0F0EA07
080372FC3218FEFEFFCD70E5D07F8698200F86FE79982E08F4756448CAC862F0
AA05A5836F0CA7D6BD421890E6130F36F5DE311E86303F0F145B616C1048C9CC
6270AE7A05567B71E3678401F19E6160C1A7274519E62DDD843725DA943F04BB
E0C696BF080322DC7CC151034BE390F4FE0DCA47D07FFEFF01D37F81F4EDAD8C
0803829C5DC04993540033207F57D36EB2B2B35B9D6B0100103839527F8C36D7
0000000049454E44AE426082}
Name = 'PngImage5'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001714944415478DA
630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786
9F7F2138C9268F016EC099973B18F253E4198E6ED6C4A9D9CEFF36C3C4390F19
64793519264C9BCD7069D9658801D6962A60CDC40290216B171F411880CF05BF
A0CE05D17E619FC09A05D8C519E6CE598B6AC0B9FDDF8876018BEE6986E50B76
631A9013EB8153D3AF3F0C0C3F7F3330D807663124B40A607A016640FDE4FD58
0D2849716458B86607C3BCA59B18229BD919B62C3D4B9C0B603683E8E51B2006
0436FC65D8B3E23A692EC888716458BB05628057ED1786C3AB1F200CC8F1CB60
B878F0178A0B906D86E1CD3B20063857BD6238B5EE15C280349F7886EB8799F1
BA2036D49161C76E880136E50F192E6EFC8C3020DE338CE1DE311EB001D86CFE
FD1742EFDB0F31C0B4E43AC38D2D7F110644B8F9323C3D29CA901CEE81A219A6
11C63E7604628051F16586DB5B1911060439BB304C9BB984E88404033003F277
35ED262B3BBBD5B9160000C8E01B524AB937870000000049454E44AE426082}
Name = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA
8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414
A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D
739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF
425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008
EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5
6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050
910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85
CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15
205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7
F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D
B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D
09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02
161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE
4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0
7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D
02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747
2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7
FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386
01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790
E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6
9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74
2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD
BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03
503A4EA60D6AAC070000000049454E44AE426082}
Name = 'PngImage6'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA
8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251
82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E
C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC
5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910
082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537
BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0
81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB
B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048
5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5
E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676
3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8
8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002
29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29
5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF
077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF
0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5
1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF
AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632
83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4
E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384
8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72
CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD
DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8
3FA68502A9830000000049454E44AE426082}
Name = 'PngImage7'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37
824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4
66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF
6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C
6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187
0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF
07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0
0AF3B40000000049454E44AE426082}
Name = 'PngImage8'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000714944415478DA
63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7
9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF
5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974
DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082}
Name = 'PngImage9'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001C74944415478DA
A5934D4B5B411885CF5D9982288874EB0F306E5CBA9A646514E33536264AE456
5184528AE0424A043751FCC08228E24788894631D5D6D12C5C08EA2A74512AD8
E4070822EE44A3E255CC386F24264AAE5978609881B9E739EFCCBC571142E03D
5208A0284ADECDA08FB9E4342087EFF3C04124772F139C1790319614C3DCE456
B116E2D0EF11CF051502FCD7BA54F37A98C3E951110E70783A5584FC3C2E0155
0501DB534C34389F92DD9A342E7068DD2A96FC1CD296AE44F3EE470C019B934C
A8AE6CF2E29C9C3B6C5809EEC0EEA84194C7E212506508D8F8C144735B36D93F
232B69B72212DE43BDBD1A5BBFFFA1C7B7AF3C03424396C6B252F08714709184
F94311E22DEDD9E4C0FC0E9CEE1AFC8AC4505B5789E876025F867300D1694BFA
CCA49FCB1C046AD5B2C94B813D383E3D25334B0576778FF17524074047C8944D
A2B3BB3C36E8BA8E3BFD363DEEEF74DC5C5F2179718ED89F4B7C1B7B0520AD8E
3241C9F4B191F93A798943F90EBDE37900A4908F0987CB6A6826FD3D02FA260C
0024FF201374DBF9CCA767B7F28E4CF07C7F03409AF532411796319391747266
C2C77298651F240AFE4C53FD4CA4E48BA464FBD1CBD09ACCB29D132F5AF93D7A
04D7A238F0C903C3480000000049454E44AE426082}
Name = 'PngImage10'
Background = clWindow
end>
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
Left = 371
Top = 104
Bitmap = {}
end
object PreviewLargeImageList: TPngImageList
Height = 24
Width = 24
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000001894944415478DA
63FCFFFF3F032D01E3F0B4C0B1F2228AE0810E03467C8638545CF8BFBF5D1FAB
1A9C1604D9E980D97D93A6303CD851C088CFF007170E30DCDF9E4F7D0B408683
D481D450DD0298E1DF7EFE679831732A752D4036FCDBAF7F0C8BE64F27CF82AF
3FFE33CC9C3515C50274C3BF03E9D5CB66906E81BB9936C3E7EFFF18962D9E0E
B7009BE1DF7FFD67D8B26626E91658E96A022DF8CFB079CD0CB005B80CFFF693
8161DF66322CD055D160F80C0CA2035B663228183830E032FC0B50CDA9DDB348
B74041469DE1D3B77F0CE7F6CD06FBC028EFC47F1F6B430CC3BFFEF8C770F5F0
1CD22D10125265F8F0F53FC3BD9373E07100B2C44A4F1FC5F0AF400B1F9C9A4B
BA054CEC2A0C1F813E787B791E4A2A0259A222AF07371C64D19B4BF348B7E0F3
5F25A00FFE31FCBDB700231F802CE113D0061B0EC23F6ECD27DD82C79F1418FE
FE03721E2CC09A9341967C63D064F8018C0F901A922D78F04101C2C16101CC92
77BF34686701DC925B27C8B0005804C3003E0B4040C163C27F922CA02618B580
200000A0D9B0E00198A13A0000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000000FA4944415478DA
63FCFFFF3F032D01E3F0B680919111AF66878A0BFFF7B7EBE35544B60520C31F
5C38C0707F7B3EF52D00191E64A7C3D037690AF52D8019FEEDE77F861933A752
D70264C3BFFDFAC7B068FE74EA59806EF87720BD7AD90CEA5880CDF0EFBFFE33
6C593393720B7019FEED2703C3BECD145AE0587911A7E15F7EFC6738B57B16E5
3E30CA3BF1DFC7DA10C3F0AF3FFE315C3D3C873A7100B2C44A4F1FC5F0AF400B
1F9C9A4BBD5404B244455E0F6E38C8A23797E651371F802CE113D0061B0EC23F
6ECDA77E4E0659F28D4193E107303E181E2CA04D5904B2E4DD2F0DDA5900B7E4
D609DA5900020A1E13FE53640135C0A805040100D3AF21E00AC8E9BE00000000
49454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD2520000012E4944415478DA
63FCFFFF3F032D01E3F0B6C0B1F2E2FF031D068CF80C20E440BC16D8955FF9FF
F5C7578673932C705A429105B6400BF2037518DA979FC469094516D8945DFD5F
10A40D66E3B284220BACCBAEFD2F0CD202B37FFDF9CFD0BBFA148625145A701D
688126D8F0EFBFFE337CFBF99F61C18E33289650648155E98DFF39FEEA70C3C1
F8D73F862D47CFC32DA1C802CBD29BFF533C55510CFFFE13E29B63972E822DA1
C8028B929BFFA39D55300CFFF69381E1CB8FFF0CA776CF62B8BF3D9F916C0BCC
4B6EFD0FB251C269F8831D0594F9C0ACF8F67F4F73799C86531C07A6C577FE3B
1AC8E2349C620B4C8AEEFEB7D496C66938152CB8F75F5F450AA7E1145B605C74
FFBF8A8C044EC329B6C0A8F0C1FFF73736E2349C620B0C0B1FFEBF30418176F5
0135C0A80504010058FB49E08BBA20470000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000001C24944415478DA
63FCFFFF3F032D01E3F0B4C0B1F2E2FF031D068CF834DA965D46D178A85307AB
7AAC16D8955FF9FFF5C7578673932C705A02B220D44113CCEE9B3485E1FEF67C
E22DB0055A901FA8C3D0BEFC244E4B28B2C0A6ECEAFF82206D301B9725145960
5D76ED7F61901698FDEBCF7F86DED5A7302CA1D082EB400B34C1867FFFF59FE1
DBCFFF0C0B769C41B10466C1D71FFF1966CE9A4A9A0556A537FEE7F8ABC30D07
E35FFF18B61C3D0FB7046481978506C3E7EFFF18962D9E4E9A0596A537FFA778
AAA218FEFD27C437C72E5D045B02B2C0565F0D68C17F86CD6B6690668145C9CD
FFD1CE2A18867FFBC9C0F0051824A776CF6290D5736630505365F80CE41FD832
93340BCC4B6EFD0FB251C269F8831D05601F28CBA9307CFAF68FE1DCBED9A459
60567CFBBFA7B93C4EC36171202AA2C4F0E1EB7F867B27E790668169F19DFF8E
06B2380D8759C0CAA9C8F011E883B797E791668149D1DDFF96DAD2380D8759F0
EDBF3CD007FF18FEDE5B40AA05F7FEEBAB48E1341C66C1B32FB20C7FFF01390F
48B4C0B8E8FE7F1519099C86C32C78FC4916C221D502A3C207FFDFDFD888D370
8A2D302C7CF8FFC2040582F5C1E34B7BE17C922CA02618B5802000000BFCA8E0
E6ADB53E0000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000002344944415478DA
63FCFFFF3F032D0123C882F02961F940F6042A9B5DB03267D5449805FFF30372
C832E51FC35F863FFF7E31FCFEF713887F41D9BF18526C0A19DEBF7ACF489105
7FFE430C86190AA3A74C5FC87069D965FC169CDBFF8D24CB642C5EC32D993173
397116E4C47AE035F4EFBFFF0CBFFFFC65B0F2CB63A89C680CF7C1DCD96B29B7
0066F89C957B18E62DDDC450DAAF0BF7C1C2B99B89B7A07EF27E9C9614275932
2C5A77006C4141AF3ADC07CBE6EF24DF073097FFFAFD87E1F7EFBF0CCB371F06
5B90D3AD08F7C1AA85FBA9E383CC48638635DB8F812D48ED9060F8FD1F62C1C6
C52748F701BACB21ECBF0C9BF69C045B90D02E04CF0FDB969EA78E0FA2FD7418
761D3A0BB620A695079ED9762FBF8ADF0250EEBCB0FF27D8825F409722BB18CE
868AEF3F7E016C4178332B3C0EF6AFBC8DDB0258D6BF72F03F435AA42B43EBF4
43387D10E8AAC670E4F465B005418DFFE1417464F523EC1620972B370FB33124
8638E174394CFCD4856B600BFCEA7FC283E8E4DA179816E40664A2145AF78EF2
30C404D8E3351CC43E7FF526D802F79AF7607D20FD17367CC2B420D32F19A544
7C745C8821CCDB06AFE120F6959B77C0163855BD84177C5736FDC0B420C93B12
A5447C794A9A21D0CD9261FDAEE30C8400C802DB8A4770BD37B7FCC3B420D633
18A5D87D7B4611AC915860597607ACF7DFFFBF0CB7B732625A10E9EE8BE20314
1AADDCC7C506190E02582D087175A78AE1382D087076045714D402E816E4EF6A
DA4DD54ADFADCE1551E9D31200008EE53CFED5D704CB0000000049454E44AE42
6082}
Name = 'PngImage5'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000003154944415478DA
B5956D48536114C7CFC89022883E288415547E48F243651451425A6A929361A2
0E13D14553985AA411944A5A4804622AE9AC25CBDCD0125F4B526CD87C2F75E8
544C83B23EE45829E6667AEFEEEDDE3377756D6B1BD98167CFB37BEEF9FFCE39
CF81CBA3691A783C1ED8B300F1043D28F5B3EF64ED50390D9A14877ED4667F62
4B633298FF45EB9D1FB579B8EFF7CF71A8CFBE33D8DF0931A20E7BEE2B3592DA
0716009D2190709EF43BDE902EF48562E5B45544F12D1DFAD65B5CC401C8CA96
425BFD4E20A8152099C5EE974E5D8539DD1CCF066011D7FDF400EF1D24279428
914177B39FD99FE08BCFBECC52603018F15C505803F5B55B51BCB44C0E238A51
5BC049FE04C88B4428CE9A716909F4FA1F60342E81EC5987154037E7012B0401
8B8B065CEC595AF91A140A0ACAA54AFB00D658C8FD7C3127AEFF6E0634B60E73
80E4A85D306FF0E4C4170D06A8AC56A1385B81EC519D7DC090CA5C6E5AE16748
BB1C0125152D56FD7E98B91764EA3D78B1164B8A0F42F1A7B907711A57F6F580
5CD6EC182049388781BCC352F3A80D8BED4E1045D1B029A002CFF36F13813499
20242E0BC4F77C40C1B4CA29C002B10760C54913059EC71E73E2CA66353CA96E
02518117D4CA55AE011C65CE8A13A4094892427182D95FB47623E0E2DD6DD058
D5E71C905BA202572C5578940199A0A1BD0F01B1F99BE155F5B0FB15B0D912A6
D5AC194182A902AB612B61CE2D6F061010759B8676E5987B007BE224D722F36A
530F22203277195435531BD7A278BE3FDE87AA578380F0EC05E87A3EE35A05AE
646EB96CF5BB11049CBDA987FEBA6FB68034412A6854CB1CC01D7176927A87C6
1010786306340D0BB680D44811683B6904B041F9659D2EB52832D817C7F4FDC8
04024E5C9F066DD32F5B40F279214C756D811461A85B9913ABEF69C63F20E068
E6384CB650B68084F00BF0A9673B2445075B055314E5549C7DAE9D9C46C0916B
A330F592670B1086F1E16B9F1724084E637071D5804B2D0A3ABE1B77A780E890
30981DF001213FD02AB3BF5D36C5C45ACC29407026083F141B657F0232DAF2DA
8BFE5D76CD427342D63EFAFFD37E031AD161FE86E3B8C60000000049454E44AE
426082}
Name = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA
AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4
4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3
A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3
7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117
CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671
584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7
B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E
1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3
88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37
33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8
29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F
0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D
F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D
AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480
651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E
C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56
4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5
CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A
3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6
30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020
D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D
D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA
9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50
C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6
80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152
D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1
38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11
5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242
60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE
47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3
B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7
7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130
26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7
98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981
2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0
4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877
4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB
2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366
752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF
6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688
F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811
F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000
49454E44AE426082}
Name = 'PngImage7'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA
AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED
C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B
139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24
5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4
8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5
B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB
5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191
6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5
05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262
6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56
488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0
A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36
E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A
EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098
0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7
20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0
9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A
7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715
2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC
0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1
F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9
6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407
B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A
2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0
8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E
5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F
82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC
4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536
D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D
932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B
D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC
F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134
1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA
4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4
C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF
BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25
6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F
0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707
274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4
697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16
949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855
88E7298D620000000049454E44AE426082}
Name = 'PngImage6'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000001324944415478DA
63FCFFFF3F032D0123DD2C606464C4A9C8A5EF22862BF614E9E3D480EC68A22D
C8F05765F8FDE72F10FF63888B5ECEC0702183BA16247B2B810DFF03B424297E
15F52D887357001B0EB2243D790DF52D887296051B0E0AA69CF4F5D4B720D45E
1A6CF89FBF7F190AB23651DF82006B09B0E1205F94E66D21DD02D7FE4B783384
8F85283C88AA8AB633B8C459E254BBBB508F11AB05C8491116A1B06081B1C172
28FCBF0CBF7E0331880DA4174F3ECBF0FF7C3A760B909322398683D82B675CC0
6D01725224C770107BFD9CCBB82DD8B3E838F6480686B7A52637DCF0DEC683F8
A20BBB05845291892A27DCE5935A8F503F99EA2BB2C1836546D771EA5BA025CB
0C0FE7797DA7A86F818A04034A52A4BA057222A84991EA1648F2FF42498A54B7
002309936A01ADC0D0B700000ADFCFE01EDA3C000000000049454E44AE426082}
Name = 'PngImage8'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD2520000007C4944415478DA
63FCFFFF3F032D01E3A805A3168C5A80B0C0B5FF12D56CDA5DA8C788D5829C20
751485BFFFFC65F8F1F30FC38F5FBF19BE83E89F501ACAFFF6E317C3B7EFBF21
F40F087D68CD3D86FFE7D3095B408EE13F7EFD6138B5E911610BC8351C04F05A
B067D171AAC401560B6805462D18B560D4023A5800007B57E2D1072B1BE80000
000049454E44AE426082}
Name = 'PngImage9'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000002E84944415478DA
A5957D48144118C69F2B29B3FA23222C02598AA48F3B4A304A839C120C925022
4AA2F2B3B313FB80A0C20E333F52FC2348C24AC49490D4C414394D4D4F33112B
C1F0233090C9D0142BA920AFDA73DAD975E5923BDDB5178679776EEFF9CD3CF3
CEAC8131061E0683010B457126392175D699C7CC186B6BB9BBF7544D595727A0
373A21D238D8DF83CE4EDA27014CFF0D5067BD7C198CD3D3C0C9984870404707
057FF6F242DFDCD5E805CCCEFA5517C5A93805D0DE4E117F4EC9E7AE4617E071
2E615167668520C1E4BCAD8DE26C929237355124E7B41A160528CD21CCD59658
B392DBED1489C94ADED048B1CA0758B254B12BFABABD5C33E0D12DC2DCD9D2DC
4C61B9A0E4F5CF284E4707E3F3F8A86C9704306906487BC03CD992743102EF07
DEC2564761B61CC4C8872154D7505CB96337680614A513E6C9164B72388606FB
516B93C0E6FD181B19465535C5B53C1D80C234C23CD992981486E1A141D4D44A
D6252816555651A4DCD5012848254C8B2DB171BB31F96502159514D67C378092
AC03EA356094DA6C5DDFB712A6DAF2E923C5BED07088E21F74B5352260AF620B
1FF73706E0C7B749943DA148BDE71E201F289EAB1B6A4E6F35E4A710C66DE1EF
BD68A8C19E9030389D22DEBC6C812930184E0936D0F31A9BB79AE4F1E29277B8
F1C03D40AE163554CFF975C06D718AA23C732EA2E4A22CAEF4A23CFECB3185D2
328A9B051E5610142418FD77ECFA07A2568B1671DE2AAAC69151E86193F98686
84085021FC37AD3397DBD4149EDABE23AB689E2AE29E87860AD8B27DA76E7187
E3276CCF45643F5CA04CF3AE1276284C80DF267F5DE27CBCBE05C829D1700E6E
5F262CFCB080F51BFD348B8F8E39F05BF4764877D10A4D072DF71261114704AC
59BB6E41711E9DDDC0065F44E9BA4DB3CF1376345280CFCAD5F38AABB397D240
09D0AF19C023C342D8F163829C7B12EFEEF586691BA2F8A773511FFD34B3B492
085F7C9D1897055DC3555C2D6FDD001ED678C2F8C99E96FEC2783F93BB8ACF05
FC0592430CFE3F77C7A70000000049454E44AE426082}
Name = 'PngImage10'
Background = clWindow
end>
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
Left = 403
Top = 104
Bitmap = {}
end
object frxReport1: TfrxReport
Version = '3.23.7'
DotMatrixReport = False
EngineOptions.DoublePass = True
IniFile = '\Software\Fast Reports'
PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator]
PreviewOptions.Zoom = 1.000000000000000000
PrintOptions.Printer = 'Default'
ReportOptions.CreateDate = 38658.858023541660000000
ReportOptions.LastChange = 38658.858023541660000000
ScriptLanguage = 'PascalScript'
ScriptText.Strings = (
'begin'
''
'end.')
StoreInDFM = False
Left = 16
Top = 200
Datasets = <>
Variables = <>
Style = <>
end
object frxBarCodeObject1: TfrxBarCodeObject
Left = 16
Top = 240
end
object frxOLEObject1: TfrxOLEObject
Left = 48
Top = 240
end
object frxChartObject1: TfrxChartObject
Left = 16
Top = 272
end
object frxRichObject1: TfrxRichObject
Left = 48
Top = 272
end
object frxCrossObject1: TfrxCrossObject
Left = 80
Top = 240
end
object frxCheckBoxObject1: TfrxCheckBoxObject
Left = 80
Top = 272
end
object frxGradientObject1: TfrxGradientObject
Left = 16
Top = 304
end
object frxDotMatrixExport1: TfrxDotMatrixExport
UseFileCache = True
ShowProgress = True
EscModel = 0
GraphicFrames = False
SaveToFile = False
UseIniSettings = True
Left = 48
Top = 304
end
object frxDialogControls1: TfrxDialogControls
Left = 80
Top = 304
end
object frxTIFFExport1: TfrxTIFFExport
ShowDialog = False
UseFileCache = True
ShowProgress = True
Monochrome = True
Left = 144
Top = 240
end
object frxPDFExport1: TfrxPDFExport
ShowDialog = False
UseFileCache = True
ShowProgress = True
PrintOptimized = False
Outline = False
Author = 'FastReport'#174
Subject = 'FastReport'#174' PDF export'
Background = False
Creator = 'FastReport'#174' (http://www.fast-report.com)'
HTMLTags = False
Left = 144
Top = 280
end
object frxBMPExport1: TfrxBMPExport
ShowDialog = False
UseFileCache = True
ShowProgress = True
Monochrome = True
Left = 144
Top = 320
end
end

308
Base/uEditorPreview.pas Normal file
View File

@ -0,0 +1,308 @@
unit uEditorPreview;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorBase, ImgList, PngImageList, StdActns, ActnList, TBX,
TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
TB2ExtItems, TBXExtItems, uViewPreview, frxClass, ComCtrls, frxPreview,
JvFormAutoSize, JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport,
frxGradient, frxChBox, frxCross, frxRich, frxChart, frxOLE, frxBarcode,
ExtCtrls, dxLayoutLookAndFeels, JvComponentBase;
type
IEditorPreview = interface(IEditorBase)
['{7E79BEFC-C817-43D9-A60F-9573D1777068}']
function GetReport: TfrxReport;
property Report: TfrxReport read GetReport;
procedure LoadFromStream(AStream : TStream);
function ExportToFile : String;
end;
TfEditorPreview = class(TfEditorBase, IEditorPreview)
TBXToolbar1: TTBXToolbar;
TBXItem7: TTBXItem;
TBXItem33: TTBXItem;
TBXItem34: TTBXItem;
TBXItem39: TTBXItem;
TBXSeparatorItem14: TTBXSeparatorItem;
TBXSeparatorItem15: TTBXSeparatorItem;
TBXSeparatorItem16: TTBXSeparatorItem;
cbZoom: TTBXComboBoxItem;
PreviewActionList: TActionList;
PreviewSmallImageList: TPngImageList;
PreviewLargeImageList: TPngImageList;
actPrimeraPagina: TAction;
actUltimaPagina: TAction;
actPaginaAnterior: TAction;
actPaginaSiguiente: TAction;
TBXItem35: TTBXItem;
TBXItem36: TTBXItem;
actZoomIn: TAction;
actZoomOut: TAction;
actTodaPagina: TAction;
actAnchoPagina: TAction;
TBXSeparatorItem17: TTBXSeparatorItem;
TBXItem37: TTBXItem;
TBXItem40: TTBXItem;
TBXItem41: TTBXItem;
TBXItem42: TTBXItem;
frxReport1: TfrxReport;
actToolHand: TAction;
actToolZoom: TAction;
tbxZoom: TTBXItem;
tbxMano: TTBXItem;
TBXSeparatorItem18: TTBXSeparatorItem;
frxBarCodeObject1: TfrxBarCodeObject;
frxOLEObject1: TfrxOLEObject;
frxChartObject1: TfrxChartObject;
frxRichObject1: TfrxRichObject;
frxCrossObject1: TfrxCrossObject;
frxCheckBoxObject1: TfrxCheckBoxObject;
frxGradientObject1: TfrxGradientObject;
frxDotMatrixExport1: TfrxDotMatrixExport;
frxDialogControls1: TfrxDialogControls;
frxTIFFExport1: TfrxTIFFExport;
frxPDFExport1: TfrxPDFExport;
frxBMPExport1: TfrxBMPExport;
procedure FormShow(Sender: TObject);
procedure actPrimeraPaginaExecute(Sender: TObject);
procedure actUltimaPaginaExecute(Sender: TObject);
procedure actPaginaAnteriorExecute(Sender: TObject);
procedure actPaginaSiguienteExecute(Sender: TObject);
procedure actZoomInExecute(Sender: TObject);
procedure actTodaPaginaExecute(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure actImprimirExecute(Sender: TObject);
procedure actAnchoPaginaExecute(Sender: TObject);
procedure actZoomOutExecute(Sender: TObject);
procedure cbZoomItemClick(Sender: TObject);
procedure actToolHandExecute(Sender: TObject);
procedure actToolZoomExecute(Sender: TObject);
private
FPreview : TfrViewPreview;
function GetReport: TfrxReport;
procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer);
procedure UpdateZoom;
public
constructor Create(AOwner: TComponent); override;
property Report: TfrxReport read GetReport;
procedure Print;
procedure LoadFromStream(AStream : TStream);
function ExportToFile : String;
end;
var
fEditorPreview: TfEditorPreview;
implementation
uses
frxRes, frxUtils, frxPrinter, uCustomEditor, uSysFunc,
frxFormUtils;
{$R *.dfm}
{ TfEditorBase1 }
function TfEditorPreview.GetReport: TfrxReport;
begin
Result := frxReport1;
end;
procedure TfEditorPreview.FormShow(Sender: TObject);
begin
inherited;
UpdateZoom;
actPrimeraPagina.Execute;
FPreview.ShowEmbedded(Self);
Report.ShowPreparedReport;
end;
procedure TfEditorPreview.actPrimeraPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.First;
end;
procedure TfEditorPreview.actUltimaPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Last;
end;
procedure TfEditorPreview.actPaginaAnteriorExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Prior;
end;
procedure TfEditorPreview.actPaginaSiguienteExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Next;
end;
procedure TfEditorPreview.actZoomInExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Zoom := FPreview.Preview.Zoom + 0.25;
end;
procedure TfEditorPreview.UpdateZoom;
begin
cbZoom.Text := IntToStr(Round(FPreview.Preview.Zoom * 100)) + '%';
end;
procedure TfEditorPreview.actTodaPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.ZoomMode := zmWholePage;
UpdateZoom;
end;
procedure TfEditorPreview.FormDestroy(Sender: TObject);
begin
inherited;
FPreview.Free;
end;
procedure TfEditorPreview.FormResize(Sender: TObject);
begin
inherited;
UpdateZoom;
end;
procedure TfEditorPreview.actImprimirExecute(Sender: TObject);
begin
inherited;
if not frxPrinters.HasPhysicalPrinters then
frxErrorMsg(frxResources.Get('clNoPrinters'))
else
FPreview.Preview.Print;
Enabled := True;
end;
procedure TfEditorPreview.actAnchoPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.ZoomMode := zmPageWidth;
UpdateZoom;
end;
procedure TfEditorPreview.actZoomOutExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Zoom := FPreview.Preview.Zoom - 0.25;
end;
procedure TfEditorPreview.cbZoomItemClick(Sender: TObject);
var
s: String;
begin
FPreview.Preview.SetFocus;
if cbZoom.ItemIndex = 6 then
actAnchoPagina.Execute
else if cbZoom.ItemIndex = 7 then
actTodaPagina.Execute
else
begin
s := cbZoom.Text;
if Pos('%', s) <> 0 then
s[Pos('%', s)] := ' ';
while Pos(' ', s) <> 0 do
Delete(s, Pos(' ', s), 1);
if s <> '' then
FPreview.Preview.Zoom := frxStrToFloat(s) / 100;
end;
UpdateZoom;
end;
procedure TfEditorPreview.actToolHandExecute(Sender: TObject);
begin
if tbxMano.Checked then
FPreview.Preview.Tool := ptHand
end;
procedure TfEditorPreview.actToolZoomExecute(Sender: TObject);
begin
if tbxZoom.Checked then
FPreview.Preview.Tool := ptZoom;
end;
procedure TfEditorPreview.OnPageChanged(Sender: TfrxPreview;
PageNo: Integer);
var
FirstPass: Boolean;
begin
FirstPass := False;
if Sender.PreviewPages <> nil then
FirstPass := not Sender.PreviewPages.Engine.FinalPass;
if FirstPass then
StatusBar.Panels[0].Text := frxResources.Get('clFirstPass') +
IntToStr(Sender.PageCount)
else
StatusBar.Panels[0].Text := Format(frxResources.Get('clPageOf'),
[PageNo, Sender.PageCount]);
end;
constructor TfEditorPreview.Create(AOwner: TComponent);
begin
inherited;
with cbZoom.Strings do
begin
Clear;
Add('25%');
Add('50%');
Add('75%');
Add('100%');
Add('150%');
Add('200%');
Add(frxResources.Get('zmPageWidth'));
Add(frxResources.Get('zmWholePage'));
end;
FPreview := TfrViewPreview.Create(Self);
Report.Preview := FPreview.Preview;
FPreview.Preview.OnPageChanged := OnPageChanged;
end;
procedure TfEditorPreview.Print;
begin
actImprimir.Execute;
end;
function TfEditorPreview.ExportToFile: String;
var
AFile : String;
begin
Result := '';
AFile := DarFicheroTIFFTemporal;
frxTIFFExport1.SeparateFiles := False;
frxTIFFExport1.DefaultPath := ExtractFilePath(AFile);
frxTIFFExport1.FileName := ExtractFileName(AFile);
try
if Report.Export(frxTIFFExport1) then
Result := AFile;
finally
frxTIFFExport1.DefaultPath := '';
frxTIFFExport1.FileName := '';
end;
end;
procedure TfEditorPreview.LoadFromStream(AStream: TStream);
begin
Report.PreviewPages.LoadFromStream(AStream);
end;
end.

116
Base/uEditorUtils.pas Normal file
View File

@ -0,0 +1,116 @@
unit uEditorUtils;
interface
uses
uEditorItem, uDADataTable, Controls, Menus;
type
IEditorMenu = interface
['{29E76095-8F08-48E0-9F97-50ACFF63BEA5}']
function GetEditorMenu: TMainMenu;
end;
TFuncItemEditor = function(ABizObject : TDADataTableRules) : TModalResult;
TProcItemEditor = procedure(ABizObject : TDADataTableRules);
TFuncGetEditor = function : IEditorItem;
TEditorType = (etItem, etItems, etSelectItem, etSelectItems);
procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor;
const AType : TEditorType);
function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules;
const AType : TEditorType) : TModalResult;
implementation
uses
Dialogs, Classes, ComObj, SysUtils;
var
FBizEditorsList : TList;
type
PBizEditorsRec = ^TBizEditorsRec;
TBizEditorsRec = record
IID : String;
ItemEditor : TFuncItemEditor;
ItemsEditor : TFuncItemEditor;
SelectItemEditor : TFuncItemEditor;
SelectItemsEditor : TFuncItemEditor;
end;
function FindBizEditors(const IID : TGUID) : PBizEditorsRec;
var
P: PBizEditorsRec;
I: Integer;
AIID : String;
begin
Result := NIL;
AIID := GUIDToString(IID);
if FBizEditorsList <> nil then
for I := 0 to FBizEditorsList.Count-1 do
begin
P := FBizEditorsList[I];
if (AIID = P^.IID) then
begin
Result := P;
Break;
end;
end;
end;
procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor;
const AType : TEditorType);
var
P: PBizEditorsRec;
begin
P := NIL;
if FBizEditorsList = nil then
FBizEditorsList := TList.Create;
P := FindBizEditors(IID);
if not Assigned(P) then
New(P);
try
P^.IID := GUIDToString(IID);
case AType of
etItem : P^.ItemEditor := AFuncItemEditor;
etItems : P^.ItemsEditor := AFuncItemEditor;
etSelectItem : P^.SelectItemEditor := AFuncItemEditor;
etSelectItems : P^.SelectItemsEditor := AFuncItemEditor;
end;
FBizEditorsList.Insert(0, P);
except
on E: EConvertError do
ShowMessage(E.Message);
end;
end;
function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules;
const AType : TEditorType) : TModalResult;
var
P: PBizEditorsRec;
begin
P := FindBizEditors(IID);
if Assigned(P) then
case AType of
etItem : Result := P.ItemEditor(ABizObject);
etItems : Result := P.ItemsEditor(ABizObject);
etSelectItem : Result := P.SelectItemEditor(ABizObject);
etSelectItems : Result := P.SelectItemsEditor(ABizObject);
end;
end;
initialization
FBizEditorsList := TList.Create;
finalization
FBizEditorsList.Free;
end.

21
Base/uExceptions.pas Normal file
View File

@ -0,0 +1,21 @@
unit uExceptions;
interface
uses
uDADataTable;
const
AUF_FKVIOLATION = 'violation of FOREIGN KEY';
AUF_HAVEVALUE = 'must have a value';
AUF_HAVEVALUE2 = 'value required';
type
IApplyUpdateFailedException = interface
['{B090A762-3D65-405E-A810-14DB4F6E8F82}']
procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed);
end;
implementation
end.

249
Base/uSysFunc.pas Normal file
View File

@ -0,0 +1,249 @@
{
===============================================================================
Copyright (©) 2002. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 01-11-2002
Versión actual: 1.0.0
Fecha versión actual: 01-11-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit uSysFunc;
interface
{ Funciones del sistema }
function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean) : Boolean;
function DarRutaTemporal : String;
function DarFicheroTemporal : String;
function DarFicheroBMPTemporal : String;
function DarFicheroTIFFTemporal : String;
function DarFicheroExportar (var Fichero : String) : Boolean;
function DarVersionFichero (Executable : String) : String;
function DarFechaFichero (Executable : String) : String;
procedure CopiarFichero(const Origen, Destino: string);
procedure DoDelTree( TheDir : String);
procedure Deltree(DirToKill : String; KillChoosenDir : Boolean);
implementation
uses
SysUtils, Windows, Dialogs,
Messages, Classes, Graphics, Controls, Forms,
StdCtrls;
function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean): Boolean;
var
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
begin
{setup the startup information for the application }
FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
with StartupInfo do
begin
cb := SizeOf(TStartupInfo);
dwFlags:= STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
if Oculto then
wShowWindow:= SW_HIDE
else
wShowWindow:= SW_SHOWNORMAL;
end;
Result := CreateProcess(nil,PChar(LineaComando), nil, nil, False,
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
if Esperar then
if Result then
begin
WaitForInputIdle(ProcessInfo.hProcess, INFINITE);
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
end;
end;
function DarRutaTemporal: String;
var
nBufferLength : DWORD; // size, in characters, of the buffer
lpBuffer : PChar; // address of buffer for temp. path
begin
nBufferLength := MAX_PATH + 1; // initialize
GetMem( lpBuffer, nBufferLength );
try
if GetTempPath( nBufferLength, lpBuffer ) <> 0 then
Result := StrPas( lpBuffer )
else
Result := '';
finally
FreeMem( lpBuffer );
end;
end;
function DarFicheroTemporal : String;
var
Buf: array [0..MAX_PATH] of Char;
RutaTmp : string;
begin
RutaTmp := DarRutaTemporal;
if GetTempFileName(PChar(RutaTmp), 'tmp', 0, Buf) <> 0 then
SetString(Result, Buf, StrLen(Buf))
else
Result := '';
end;
function DarFicheroTIFFTemporal : String;
var
Cadena : String;
begin
Cadena := DarFicheroTemporal;
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'tif';
end;
function DarFicheroBMPTemporal : String;
var
Cadena : String;
begin
Cadena := DarFicheroTemporal;
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp';
end;
function DarFicheroExportar (var Fichero : String) : Boolean;
var
DialogoSalvar : TSaveDialog;
begin
Result := False;
DialogoSalvar := TSaveDialog.Create(NIL);
try
with DialogoSalvar do
begin
DefaultExt := 'doc';
Filter := 'Documento de Word (*.doc)|*.doc';
FilterIndex := 0;
Options := [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofEnableSizing];
end;
Result := DialogoSalvar.Execute;
if Result then
Fichero := DialogoSalvar.FileName;
finally
DialogoSalvar.Free;
end;
end;
function DarVersionFichero (Executable : String) : String;
var
Size, Size2: DWord;
Pt, Pt2: Pointer;
begin
Size := GetFileVersionInfoSize(PChar (Executable), Size2);
if Size > 0 then
begin
GetMem (Pt, Size);
try
GetFileVersionInfo (PChar (Executable), 0, Size, Pt);
VerQueryValue (Pt, '\', Pt2, Size2);
with TVSFixedFileInfo (Pt2^) do
begin
Result:= IntToStr (HiWord (dwFileVersionMS)) + '.' +
IntToStr (LoWord (dwFileVersionMS)) + '.' +
IntToStr (HiWord (dwFileVersionLS)) + '.' +
IntToStr (LoWord (dwFileVersionLS));
end;
finally
FreeMem (Pt);
end;
end;
end;
function DarFechaFichero (Executable : String) : String;
var
FileTime, LocalFileTime : TFileTime;
SystemTime : TSystemTime;
hFile : Integer;
begin
hFile := FileOpen(Executable, fmShareDenyNone);
try
if hFile <> -1 then
begin
Windows.GetFileTime( hFile, nil, nil, @FileTime ); // ftLasWriteTime
// Change the file time to local time
FileTimeToLocalFileTime( FileTime, LocalFileTime );
if FileTimeToSystemTime(LocalFileTime, SystemTime) then
Result := DateTimeToStr(SystemTimeToDateTime(SystemTime));
end; // if hFile <> 0
finally
FileClose( hFile );
end; // try
end;
procedure CopiarFichero(const Origen, Destino: string);
var
lpMsgBuf : pchar;
begin
CopyFile(PChar(Origen), PChar(Destino), FALSE);
end;
procedure DoDelTree(TheDir : String);
Var
Search : TSearchRec;
rec : word;
Begin
If TheDir[Length(TheDir)] <> '\' Then TheDir := TheDir + '\';
rec := SysUtils.FindFirst(TheDir + '*.*', faAnyFile, Search);
While rec = 0 Do
Begin
If Search.Name[1] <> '.' Then
Begin
// Is this a directory?
If (Search.Attr And faDirectory) = faDirectory Then
Begin
// If so, lets call DelTree again using this new
// directory as the TheDir parameter.
DoDelTree(TheDir + Search.Name);
// Not that all of the files are gone from this directoy,
// we can remove the directory.
RmDir(TheDir + Search.Name);
End
Else
Begin
// We found a file.
// Now lets reset its attributes so we don't have any problems
// deleting them.
SysUtils.FileSetAttr(TheDir + Search.Name, 0);
SysUtils.DeleteFile(TheDir + Search.Name);
Application.ProcessMessages;
End;
End;
rec := SysUtils.FindNext(Search);
End;
SysUtils.FindClose(Search);
End;
procedure Deltree(DirToKill : String; KillChoosenDir : Boolean);
begin
{$I-}
DoDelTree(DirToKill);
// If we want to delete the choosen directory.
If KillChoosenDir Then
RmDir(DirToKill);
//modified
if IOResult <> 0 then
ShowMessage('Could not delete ' + DirToKill);
//{$I}
end;
end.

80
Base/uUtils.pas Normal file
View File

@ -0,0 +1,80 @@
unit uUtils;
interface
uses
uDACDSDataTable, Classes;
function getStrList(const ASource : TStringList; const pSep: String): String;
function getArrList(const ASource : TStringList): Variant;
function CompFec(FecIni : TDateTime; FecFin : TDateTime): Integer;
implementation
uses
SysUtils, Variants, dialogs;
function getStrList(const ASource : TStringList; const pSep: String): String;
var
Cadena : String;
i: Integer;
begin
Cadena := '';
for i:=0 to (ASource.Count-1) do
begin
if i > 0 then
Cadena := Cadena + pSep;
Cadena := Cadena + ASource.Strings[i];
end;
// showmessage(Cadena);
Result := Cadena;
end;
function getArrList(const ASource : TStringList): Variant;
var
i, j: Integer;
A: array of Variant;
begin
if (ASource.Count = 0) or (length(ASource.Strings[0]) = 0) then
begin
Result := Null;
exit;
end;
j:= ASource.Count-1;
if j > 0 then
begin
for i:=0 to j do
begin
SetLength(A, i+1);
if (Length(ASource.Strings[i]) = 0)
then A[i] := ''
else A[i] := Copy(ASource.Strings[i], 0, Length(ASource.Strings[i]));
end;
Result := VarArrayOf(A);
end
else
Result := Copy(ASource.Strings[j], 0, Length(ASource.Strings[j]));
{
if j > 0 then
for i:=0 to j do
showmessage(VarToStr(A[i]))
else
showmessage(VarToStr(Result));
}
end;
function CompFec(FecIni : TDateTime; FecFin : TDateTime): Integer;
begin
if FecIni = FecFin
then Result := 0
else if FecIni > FecFin
then Result := 1
else Result := 2;
end;
end.

Binary file not shown.

View File

@ -0,0 +1,53 @@
inherited frViewBarraSeleccion: TfrViewBarraSeleccion
Width = 443
Height = 38
Align = alBottom
AutoScroll = False
Visible = False
object pnlSeleccion: TPanel
Left = 0
Top = 1
Width = 443
Height = 37
Align = alBottom
BevelOuter = bvNone
ParentBackground = True
TabOrder = 0
DesignSize = (
443
37)
object bSeleccionar: TButton
Left = 268
Top = 7
Width = 74
Height = 23
Action = actSeleccionar
Anchors = [akRight]
Default = True
ModalResult = 1
TabOrder = 0
end
object bCancelar: TButton
Left = 347
Top = 7
Width = 74
Height = 23
Action = actCancelar
Anchors = [akRight]
Cancel = True
ModalResult = 2
TabOrder = 1
end
end
object ActionListSeleccion: TActionList
Left = 8
Top = 5
object actSeleccionar: TAction
Caption = '&Seleccionar'
end
object actCancelar: TAction
Caption = '&Cancelar'
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,37 @@
unit uViewBarraSeleccion;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, StdCtrls, ActnList, ExtCtrls;
type
TfrViewBarraSeleccion = class(TfrViewBase)
pnlSeleccion: TPanel;
bSeleccionar: TButton;
bCancelar: TButton;
ActionListSeleccion: TActionList;
actSeleccionar: TAction;
actCancelar: TAction;
procedure actCancelarExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frViewBarraSeleccion: TfrViewBarraSeleccion;
implementation
{$R *.dfm}
procedure TfrViewBarraSeleccion.actCancelarExecute(Sender: TObject);
begin
inherited;
//
end;
end.

BIN
Base/uViewBase.ddp Normal file

Binary file not shown.

14
Base/uViewBase.dfm Normal file
View File

@ -0,0 +1,14 @@
object frViewBase: TfrViewBase
Left = 0
Top = 0
Width = 528
Height = 325
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 0
ReadOnly = False
end

33
Base/uViewBase.pas Normal file
View File

@ -0,0 +1,33 @@
unit uViewBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize;
type
IViewInicio = interface(ICustomView)
['{B567620D-8FE7-4ADC-B9BD-AFC639ED1923}']
function Control : TControl;
end;
IViewBase = interface(ICustomView)
['{E1E559AC-31E8-4E5F-8655-428D12467518}']
end;
TfrViewBase = class(TCustomView, IViewBase)
published
property Modified;
property OnGetModified;
property ReadOnly;
property Valid;
end;
implementation
{$R *.dfm}
{ TfrViewBase }
end.

181
Base/uViewContenido.dfm Normal file
View File

@ -0,0 +1,181 @@
inherited frViewContenido: TfrViewContenido
Width = 443
Height = 270
Align = alClient
object cxGrid: TcxGrid
Left = 0
Top = 25
Width = 443
Height = 245
Align = alClient
TabOrder = 0
LookAndFeel.Kind = lfOffice11
LookAndFeel.NativeStyle = True
object cxGridView: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
DataController.DataSource = DADataSource
DataController.Filter.Options = [fcoCaseInsensitive]
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <
item
Format = ',0.00 '#8364';-,0.00 '#8364
Kind = skSum
end>
DataController.Summary.SummaryGroups = <>
Filtering.Visible = fvNever
OptionsBehavior.AlwaysShowEditor = True
OptionsBehavior.CellHints = True
OptionsBehavior.FocusCellOnTab = True
OptionsBehavior.GoToNextCellOnEnter = True
OptionsBehavior.BestFitMaxRecordCount = 20
OptionsBehavior.FocusCellOnCycle = True
OptionsCustomize.ColumnFiltering = False
OptionsCustomize.ColumnGrouping = False
OptionsCustomize.ColumnMoving = False
OptionsCustomize.ColumnSorting = False
OptionsCustomize.DataRowSizing = True
OptionsData.Appending = True
OptionsSelection.MultiSelect = True
OptionsSelection.UnselectFocusedRecordOnExit = False
OptionsView.CellEndEllipsis = True
OptionsView.CellAutoHeight = True
OptionsView.ColumnAutoWidth = True
OptionsView.Footer = True
OptionsView.GridLineColor = cl3DLight
OptionsView.GroupByBox = False
OptionsView.HeaderEndEllipsis = True
OptionsView.Indicator = True
OptionsView.NewItemRowInfoText = 'Click here to add a new row'
Styles.ContentEven = cxStyleEven
Styles.ContentOdd = cxStyleOdd
Styles.Inactive = cxStyleSelection
Styles.Selection = cxStyleSelection
end
object cxGridLevel: TcxGridLevel
GridView = cxGridView
end
end
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 443
Height = 25
Caption = 'ToolBar1'
EdgeBorders = []
EdgeInner = esNone
EdgeOuter = esNone
Flat = True
Images = ContenidoImageList
List = True
ShowCaptions = True
TabOrder = 1
end
object ActionListContenido: TActionList
Left = 8
Top = 104
object actAnadir: TAction
Caption = 'A'#241'adir'
ImageIndex = 0
OnExecute = actAnadirExecute
end
object actEliminar: TAction
Caption = 'Eliminar'
ImageIndex = 1
OnExecute = actEliminarExecute
OnUpdate = actEliminarUpdate
end
object actSubir: TAction
Caption = 'Subir'
ImageIndex = 2
OnExecute = actSubirExecute
OnUpdate = actSubirUpdate
end
object actBajar: TAction
Caption = 'Bajar'
ImageIndex = 3
OnExecute = actBajarExecute
OnUpdate = actBajarUpdate
end
end
object DADataSource: TDADataSource
Left = 8
Top = 136
end
object ContenidoImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000D04944415478DA
6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260
5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5
31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF
FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC
77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9
F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260
241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000006E4944415478DA
63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100
C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0
CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028
10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2
1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076
B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF
9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0
17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9
A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6
30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D
7F64240000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000DF4944415478DA
63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833
074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770
F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133
23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32
9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460
FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5
BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7
9A0000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end>
Left = 8
Top = 64
Bitmap = {}
end
object cxStyleRepository: TcxStyleRepository
Left = 8
Top = 168
object cxStyleEven: TcxStyle
end
object cxStyleOdd: TcxStyle
AssignedValues = [svColor]
Color = 16119285
end
object cxStyleSelection: TcxStyle
AssignedValues = [svColor, svTextColor]
Color = clHighlight
TextColor = clHighlightText
end
end
end

182
Base/uViewContenido.dfm.bak Normal file
View File

@ -0,0 +1,182 @@
inherited frViewContenido: TfrViewContenido
Width = 443
Height = 270
Align = alClient
object cxGrid: TcxGrid
Left = 0
Top = 25
Width = 443
Height = 245
Align = alClient
TabOrder = 0
LookAndFeel.Kind = lfOffice11
LookAndFeel.NativeStyle = True
object cxGridView: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
DataController.DataSource = DADataSource
DataController.Filter.Options = [fcoCaseInsensitive]
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <
item
Format = ',0.00 '#8364';-,0.00 '#8364
Kind = skSum
end>
DataController.Summary.SummaryGroups = <>
Filtering.Visible = fvNever
OptionsBehavior.AlwaysShowEditor = True
OptionsBehavior.CellHints = True
OptionsBehavior.FocusCellOnTab = True
OptionsBehavior.GoToNextCellOnEnter = True
OptionsBehavior.BestFitMaxRecordCount = 20
OptionsBehavior.FocusCellOnCycle = True
OptionsCustomize.ColumnFiltering = False
OptionsCustomize.ColumnGrouping = False
OptionsCustomize.ColumnMoving = False
OptionsCustomize.ColumnSorting = False
OptionsCustomize.DataRowSizing = True
OptionsData.Appending = True
OptionsSelection.MultiSelect = True
OptionsSelection.UnselectFocusedRecordOnExit = False
OptionsView.CellEndEllipsis = True
OptionsView.CellAutoHeight = True
OptionsView.ColumnAutoWidth = True
OptionsView.Footer = True
OptionsView.GridLineColor = cl3DLight
OptionsView.GroupByBox = False
OptionsView.HeaderEndEllipsis = True
OptionsView.Indicator = True
OptionsView.NewItemRowInfoText = 'Click here to add a new row'
Styles.ContentEven = cxStyleEven
Styles.ContentOdd = cxStyleOdd
Styles.Inactive = cxStyleSelection
Styles.Selection = cxStyleSelection
end
object cxGridLevel: TcxGridLevel
GridView = cxGridView
end
end
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 443
Height = 25
Caption = 'ToolBar1'
EdgeBorders = []
EdgeInner = esNone
EdgeOuter = esNone
Flat = True
Images = ContenidoImageList
List = True
ShowCaptions = True
TabOrder = 1
end
object ActionListContenido: TActionList
Left = 8
Top = 104
object actAnadir: TAction
Caption = 'A'#241'adir'
ImageIndex = 0
OnExecute = actAnadirExecute
end
object actEliminar: TAction
Caption = 'Eliminar'
ImageIndex = 1
OnExecute = actEliminarExecute
OnUpdate = actEliminarUpdate
end
object actSubir: TAction
Caption = 'Subir'
ImageIndex = 2
OnExecute = actSubirExecute
OnUpdate = actSubirUpdate
end
object actBajar: TAction
Caption = 'Bajar'
ImageIndex = 3
OnExecute = actBajarExecute
OnUpdate = actBajarUpdate
end
end
object DADataSource: TDADataSource
DataTable = dmPresupuestos.tbl_DetallesPresupuestos
Left = 8
Top = 136
end
object ContenidoImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000D04944415478DA
6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260
5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5
31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF
FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC
77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9
F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260
241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000006E4944415478DA
63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100
C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0
CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028
10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2
1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076
B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF
9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0
17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9
A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6
30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D
7F64240000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000DF4944415478DA
63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833
074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770
F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133
23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32
9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460
FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5
BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7
9A0000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end>
Left = 8
Top = 64
Bitmap = {}
end
object cxStyleRepository: TcxStyleRepository
Left = 8
Top = 168
object cxStyleEven: TcxStyle
end
object cxStyleOdd: TcxStyle
AssignedValues = [svColor]
Color = 16119285
end
object cxStyleSelection: TcxStyle
AssignedValues = [svColor, svTextColor]
Color = clHighlight
TextColor = clHighlightText
end
end
end

126
Base/uViewContenido.pas Normal file
View File

@ -0,0 +1,126 @@
unit uViewContenido;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, cxStyles, ComCtrls, ToolWin, ActnList, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ImgList,
PngImageList, cxGrid;
type
IViewContenido = interface(IViewBase)
['{AF7F3CD1-3CD1-4F87-A4B4-FCB1320104F7}']
end;
TfrViewContenido = class(TfrViewBase, IViewContenido)
ActionListContenido: TActionList;
cxGrid: TcxGrid;
cxGridView: TcxGridDBTableView;
cxGridLevel: TcxGridLevel;
DADataSource: TDADataSource;
actAnadir: TAction;
actEliminar: TAction;
actSubir: TAction;
actBajar: TAction;
ContenidoImageList: TPngImageList;
ToolBar1: TToolBar;
cxStyleRepository: TcxStyleRepository;
cxStyleEven: TcxStyle;
cxStyleOdd: TcxStyle;
cxStyleSelection: TcxStyle;
procedure actAnadirExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actSubirUpdate(Sender: TObject);
procedure actBajarExecute(Sender: TObject);
procedure actBajarUpdate(Sender: TObject);
procedure actSubirExecute(Sender: TObject);
private
protected
public
end;
implementation
uses uBizImportesDetalleBase, uDAInterfaces;
{$R *.dfm}
procedure TfrViewContenido.actAnadirExecute(Sender: TObject);
begin
inherited;
if Assigned(DADataSource.DataTable) then
DADataSource.DataTable.Insert
end;
procedure TfrViewContenido.actEliminarExecute(Sender: TObject);
begin
inherited;
if Assigned(DADataSource.DataTable) then
DADataSource.DataTable.Delete;
end;
procedure TfrViewContenido.actEliminarUpdate(Sender: TObject);
begin
if Assigned(DADataSource.DataTable) then
(Sender as TAction).Enabled := (not DADataSource.DataTable.IsEmpty)
else
(Sender as TAction).Enabled := False;
end;
procedure TfrViewContenido.actSubirUpdate(Sender: TObject);
begin
inherited;
if Assigned(cxGridView.Controller.FocusedRow) then
(Sender as TAction).Enabled := not (cxGridView.Controller.FocusedRow.IsFirst)
else
(Sender as TAction).Enabled := False;
end;
procedure TfrViewContenido.actBajarExecute(Sender: TObject);
var
AField : TDAField;
begin
inherited;
if Assigned(DADataSource.DataTable) then
begin
AField := DADataSource.DataTable.FindField(fld_POSICION);
// Por si el registro está recién insertado y la posición todavía
// no ha sido asignada.
if (AField.AsInteger < 0) then
DADataSource.DataTable.Post;
IntercambiarPosiciones(DADataSource.DataTable, AField.AsInteger, AField.AsInteger + 1);
end;
end;
procedure TfrViewContenido.actBajarUpdate(Sender: TObject);
begin
inherited;
if Assigned(cxGridView.Controller.FocusedRow) then
(Sender as TAction).Enabled := not (cxGridView.Controller.FocusedRow.IsLast)
else
(Sender as TAction).Enabled := False;
end;
procedure TfrViewContenido.actSubirExecute(Sender: TObject);
var
AField : TDAField;
begin
inherited;
if Assigned(DADataSource.DataTable) then
begin
AField := DADataSource.DataTable.FindField(fld_POSICION);
// Por si el registro está recién insertado y la posición todavía
// no ha sido asignada.
if (AField.AsInteger < 0) then
DADataSource.DataTable.Post;
IntercambiarPosiciones(DADataSource.DataTable, AField.AsInteger, AField.AsInteger - 1);
end;
end;
end.

View File

@ -0,0 +1,382 @@
inherited frViewDetallesFamilias: TfrViewDetallesFamilias
inherited cxGrid: TcxGrid
inherited cxGridView: TcxGridDBTableView
OnEditing = cxGridViewEditing
OptionsView.Footer = False
object cxGridViewPOSICION: TcxGridDBColumn
DataBinding.FieldName = 'POSICION'
Visible = False
SortIndex = 0
SortOrder = soAscending
end
object cxGridViewTIPO: TcxGridDBColumn
DataBinding.FieldName = 'TIPO'
PropertiesClassName = 'TcxImageComboBoxProperties'
Properties.Images = TipoPngImageList
Properties.Items = <
item
Description = 'Concepto'
ImageIndex = 0
Value = 'C'
end
item
Description = 'T'#237'tulo de cap'#237'tulo'
ImageIndex = 1
Tag = 1
Value = 'T'
end
item
Description = 'Total de cap'#237'tulo'
ImageIndex = 2
Tag = 2
Value = 'S'
end>
Properties.LargeImages = TipoPngImageList
BestFitMaxWidth = 64
Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
Width = 56
end
object cxGridViewDESCRIPCION: TcxGridDBColumn
DataBinding.FieldName = 'DESCRIPCION'
PropertiesClassName = 'TcxTextEditProperties'
Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
Width = 224
end
object cxGridViewCANTIDAD: TcxGridDBColumn
DataBinding.FieldName = 'CANTIDAD'
PropertiesClassName = 'TcxMaskEditProperties'
BestFitMaxWidth = 64
HeaderAlignmentHorz = taRightJustify
Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
Width = 130
end
object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
DataBinding.FieldName = 'IMPORTEUNIDAD'
PropertiesClassName = 'TcxTextEditProperties'
Properties.Alignment.Horz = taRightJustify
BestFitMaxWidth = 120
HeaderAlignmentHorz = taRightJustify
Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
Width = 130
end
object cxGridViewIMPORTETOTAL: TcxGridDBColumn
DataBinding.FieldName = 'IMPORTETOTAL'
PropertiesClassName = 'TcxTextEditProperties'
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
BestFitMaxWidth = 120
HeaderAlignmentHorz = taRightJustify
Options.Editing = False
Styles.Content = cxStyle_IMPORTETOTAL
Styles.OnGetContentStyle = cxGridViewTIPOStylesGetContentStyle
Width = 130
end
object cxGridViewVISIBLE: TcxGridDBColumn
Caption = 'Visible'
DataBinding.FieldName = 'VISIBLE'
PropertiesClassName = 'TcxCheckBoxProperties'
Properties.DisplayChecked = 'S'
Properties.DisplayUnchecked = 'N'
Properties.Glyph.Data = {
92030000424D9203000000000000920100002800000020000000100000000100
08000000000000020000120B0000120B0000570000005700000000000000FFFF
FF0040384000703840008048500090586000C0606000A0505000804040006030
30009050500070404000A060600090606000A0707000B0808000C09090004030
3000E0B0B000B0909000FFF0F000FF787000E0787000C0686000FF9890009048
4000A0585000D0888000E0989000E0706000FF80700080484000A0686000FFA0
9000FF887000B060500070484000FFB0A000C0989000D0A8A000E0B8B000FF98
8000A0605000FFC0B000F0C0B00080686000F0D8D000B0908000E0C8B000E0D8
D000FFE0C000FFF8F000F0E0C000FFF0D000FFF8E00020283000FEFEFE00FAFA
FA00F7F7F700F3F3F300F1F1F100F0F0F000EDEDED00EAEAEA00E7E7E700E6E6
E600E3E3E300E0E0E000DADADA00D7D7D700D3D3D300D0D0D000CDCDCD00C9C9
C900C6C6C600C4C4C400C3C3C300C0C0C000BEBEBE00BCBCBC00B9B9B900B7B7
B700B3B3B300AEAEAE00ACACAC00A6A6A600FFFFFF0056565656565656565656
5656565656565656565656565656565656565656565656565656565656565656
5656565656565656565656565656565656565656565656565656565656565656
5656565656565656565656565656565656565656565656565656565656565656
5656565656565656565656565656565656565656565656565656404040444C4C
463D5656565656565656122830262D2D2F325656565644444444433E4145474A
50463B404456101010102734181D061A242F35122656564646443A3F434A544C
49493A3C4646560F0F10362C1507110A2320362E0F0F56564845394341535554
44473944484856560E13331C21023711161714260E0E5656564A3E403E38544A
4344464B4B565656560D31122B01111A1E1B0F050556565656564E49423F4343
434A4E4E565656565656040C2925221E1E2A04045656565656565650504F4D4F
50505056565656565656560B0B1F19080B0B0B56565656565656565652505151
505656565656565656565656090B03030B565656565656565656565656565656
5656565656565656565656565656565656565656565656565656565656565656
5656565656565656565656565656565656565656565656565656565656565656
5656565656565656565656565656565656565656565656565656565656565656
56565656565656565656565656565656565656565656}
Properties.GlyphCount = 2
Properties.ImmediatePost = True
Properties.NullStyle = nssUnchecked
Properties.ValueChecked = 'S'
Properties.ValueUnchecked = 'N'
end
end
end
inherited ToolBar1: TToolBar
ButtonWidth = 105
object ToolButton1: TToolButton
Left = 0
Top = 0
Action = actAnadirCap
end
object ToolButton2: TToolButton
Left = 105
Top = 0
Action = actAnadir
end
object ToolButton7: TToolButton
Left = 210
Top = 0
Width = 8
Caption = 'ToolButton7'
ImageIndex = 5
Style = tbsSeparator
end
object ToolButton3: TToolButton
Left = 218
Top = 0
Action = actEliminar
end
object ToolButton4: TToolButton
Left = 0
Top = 0
Width = 8
Caption = 'ToolButton4'
ImageIndex = 3
Wrap = True
Style = tbsSeparator
end
object ToolButton5: TToolButton
Left = 0
Top = 30
Action = actSubir
end
object ToolButton6: TToolButton
Left = 105
Top = 30
Action = actBajar
end
end
inherited ActionListContenido: TActionList
object actAnadirCap: TAction [0]
Caption = 'A'#241'adir cap'#237'tulo'
ImageIndex = 5
OnExecute = actAnadirCapExecute
end
inherited actAnadir: TAction
Caption = 'A'#241'adir concepto'
ImageIndex = 4
end
end
inherited DADataSource: TDADataSource
DataTable = nil
end
inherited ContenidoImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37
824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4
66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF
6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C
6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187
0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF
07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0
0AF3B40000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000714944415478DA
63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7
9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF
5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974
DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2
1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076
B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF
9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0
17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9
A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6
30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D
7F64240000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000DF4944415478DA
63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833
074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770
F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133
23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32
9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460
FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5
BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7
9A0000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000002354944415478DA
9D93DF4B936114C73FEF9CDB9C947A23A546E185062E4308122AB5488942A18B
A2A228229088EEBA0B83EECCCBCAEA1FA8ABD29B0CACB0FC1176538ACA963FA6
A2AEF9966E6E367CF7EEDDF3F4CEB5B4B640FAC281E7E19CF339E73987479152
92D2A34BCAC6650B9A8FD4A0A40089E42BCDE941D128E85AD212E7A896B48F83
9B00FF939CB703C6BC26A0FD22D25AB0F5B68DE0467242EB804CD535B352DF32
DC5C75B2737B1E617D8D79DF0ACD53605FAEA1B6AA8FDEA15F1D24DE9249B3B9
2B6837B2B853DD4457749496960ECE8D5772F9C0C8BAFF3720530709B97F404B
EE3E6E1D69E04DC0C3BDD6573CC986DD0EFE0DE80F43DC489E8716E175693977
8F37D1A90E71FFF65BAE9AF32ACB379D0246A7F7A7034A3C4E6A5DE568868112
55282B2DA4B278179EC0570606A6D0A5412CC7C062B130F9594D071CF617F2F0
CC35A2C4889B65E644800955C52A159CDBEC84D734739506934195DEC75FD201
F5C162AE379EE4933A8B61221CD2865D5AF9160AE38F8430AC122104B3A12526
9E2F86FE00E83AB8A60BC8D31CB8BD7E8840757D298D27AA189CF4F2B27B98AC
A0056C906DCB425F886F74D0FEC0BE0E99710884397DCC389F90F8CE17D15053
C188DF47F7B331EADC7BE8B14DD791F80139C495B6B3F68E40ECE0E94C6B5C72
4418BCB0485D4539E30195F79D1E0C8FA8902FA43B15A36CFE8D7F4B69558EBA
F616F714951430B3FA9D85FE006BC3B163B243BEDB1AA04D39E4CCB775E95E03
2324B0080B22224EC9A7F2432AE627BA3D288D657888700000000049454E44AE
426082}
Name = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000B3A00000B3A01647F570D000002604944415478DA
8DD25B48D35100C7F1EF7FEA9C96A60F4A362DF141C399E59BD05D4ABA5A60D9
5BF8522F4119F4926610425A4F121145CFF5605E085C299A5D347AE8E2D0E5C8
B55AA5CD69CD369DEEF2DFFFF4DFC4E122B3DFDBE19CF3F9712E5273C3C54AA0
95D81CABA96F6C638508219054409C3AAE8D99B8FB20F05FC8B2C012E4AF5161
694560B984E16501CFAC60D01262D4AE44C69FA46FB46418C94A4DC3139C637C
7C9AD3C12AF2A49CC8FCB94B57A518E0F96B1969D645D906071AB5A3F797933B
B93E2E975660F40F535FDFCEC3555964DA1DF45931D70E884D5120DC6EECD772
247788345D00110A31ECF9495DF60C17B697D3E3B270ADE9112F9232E97F3269
56FB8EAA802D0A2CB627660C1394154420C0E0948BC7C5095CD953418773901B
75BD9C55774ECCD2D5524813A98422C089FD09D1F6FCA94E761615E09355D02F
919F9749B13E078BEB3B03031F09089960928C46A3C1FACEB97089F9B99A85B3
677FA174CEC4CDAA6AFC0409A1F0557131EA74122F24925312F1CCFBF0FB64AC
D34E7A6E9BDD1160F35A1729B66E821376CE1FD273A6F2006F9D766495D0092D
89229E49B70787D78D1C2F501405BBFB07A3AD130B80B7AB31FACEB7AAD359E3
D331627380174AF7E671785F09AFAC363ABB4DC44D6B407DB4046D1C81B11052
F8332C8D542B6DE30D71E822C32D2527D73797EF3030E418A7FBBE19C5A4D4B0
1A13E16D49EA25FE09C4600D52A1A144FF7E97A1800F2E27CF3A2CC816C520DA
C44874CD3F81266977D1467DDFBAEC743ECF4C31D6EF62DE142C13EDE2E9FF01
D7A5ADC9695A63C02623BB15348A06C5AB1C14F7C4CBC535BF015419481881D7
D75A0000000049454E44AE426082}
Name = 'PngImage5'
Background = clWindow
end>
Bitmap = {}
end
object cxStyleRepository1: TcxStyleRepository [5]
Left = 264
Top = 80
object cxStyle_IMPORTETOTAL: TcxStyle
AssignedValues = [svColor, svTextColor]
Color = clInactiveCaptionText
TextColor = clHotLight
end
object cxStyle_SUBTOTAL: TcxStyle
AssignedValues = [svColor, svFont, svTextColor]
Color = clInactiveCaptionText
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
TextColor = clHotLight
end
object cxStyle_TITULO: TcxStyle
AssignedValues = [svColor, svFont, svTextColor]
Color = clInactiveCaption
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
TextColor = clHighlightText
end
end
object TipoPngImageList: TPngImageList [6]
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001094944415478DA
63FCFFFF3F03258011993323818124D39E7C75421800D21C9B8AA9E8D74F28FE
C1C0F0134603F1C913480690A3995F8281E1EA5DA00120CD2C82C43BFBCF7B84
667018E0B21D64D3CFEF501A8A412E387306E2743BC37D0C87CE435D00122005
80348300DC006C2E8081BF7F81CEFECDC0F0FB17C445376E20E4081A00D2F41B
A8F9CF2F087BCD1A0E06358D1F0C6C2C441880AE19E48A0D1B391814948106B0
32800DC1690036CD20BC651B0783943CC40520434E5CC662002ECD20F6CE3D1C
0C22D21003AEDC71626859BD8F11C5007C9A41E2FB0E7230F089FF6078F004A2
19251DCC9CCA415414BEFB6D05D70C36A02F8A631D503090D83480AC196C00A5
D919005F65CFBFE56F19230000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000B3A00000B3A01647F570D000001A24944415478DA
9D923B2C43511CC6BFEB158B129341A283342241448C44D46222418C2261A0F1
58BD26A193C482A18B8DC463D284A5212D121D3CDB26A452214A5295287A1FBD
F738E75EBDE90DD5C6B7DC9C73CFF7FBFEFFFF39DCE2EC4417804D18D53D3E63
DF42061142C0510019EC2930FC706C885941D2025220BF8A82B98C807462E0B4
80B77782D3808CEB9092156C6C7A9E33000EBC0970EF51B4568491C3B104058A
2000220F598883C822129F3104BC41B86E7035E921353A80A53BDD05E8305FA0
A450A4876528A20042CD8A48CD920459E221BCBEC1B1F37845F33A2920A80392
E96DE6B096CCF3DF66FA9544D55CBC3482E3061B4B5F9D3A44BF3E83DEF67C3D
DD94F70992A01508C664066B3977E2EC641F73265B2505047580C59CA3F55E7E
A7F54C01321F87427B6E3E5A330CCE6A2DC5827D1BB8B4713AA0AE2C8AA2E01E
A4A7D08F490FE5FA30DA6731ECADAC7BE075FB412E86B55BF8D8B5A7BDAA8D2A
0DE07B88E039164724A63DB097DBB00A51CBF84BF5037EC200AEC0FD0FB35A41
360036B8A41A9BAA75335B6704A48AAB5D560F27CDFF02A49A99BE008A302DB4
AC93694C0000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000B3A00000B3A01647F570D000001784944415478DA
8DD1BF4BC3401407F0EFF9B38BC5D141B10E1637FF02A988205550C15FB3829B
A06EFE9C0A767170712A82B33FA0A08576A92D220EA2C5522D562B75B175A918
AA4DDA26E725DAC38049F38684E4EE7DDEBD7764C7B33A01E008FA985CDAF41E
A346504A411840E7A79A740BBEC39225C410F883FC1B0C263501A35061434028
50C492325219C512B6B8B1457440F4AA0252C863A0338BE661BF2584036AF5C0
7913C61C71B4DA4A08C7DE30B476A96D0AACF4C0D56D835C1621BD0BF09DBE26
D8EFF1F50B3C71A05A7DD09165BD29504411670C717B6E35E464B9037D5DF548
DE64107EC43E4B9EE533987137F2EAF6862FD04A095412A1948A88C4F318D94E
6B887FCE8EBB07A15A3DCD01A7A3EEA7F7F6172892043040168B506406B19344
EF058CEEE63464DA89E0410A6EDD2DF4B6E5D1920EA19CCB180EEB3A0B2C84F8
67BF3A730E7C06BDA6937EFE00F612FA647E02F5617A4D84B8D82B524D66FBA3
BA7533A056B229602999106A0698F7F61BDF228CEAE9FA9FA3C1000000004945
4E44AE426082}
Name = 'PngImage2'
Background = clWindow
end>
Left = 72
Top = 64
Bitmap = {}
end
end

View File

@ -0,0 +1,134 @@
unit uViewDetallesFamilias;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewContenido, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxDropDownEdit, cxTextEdit,
cxSpinEdit, cxCurrencyEdit, ImgList, PngImageList, uDADataTable,
ExtActns, StdActns, ActnList, ComCtrls, ToolWin, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxImageComboBox,
uBizImportesCabeceraBase, cxCheckBox, TB2Item, TBX, TB2Dock, TB2Toolbar,
JvExComCtrls, JvToolBar, cxMaskEdit;
type
IViewDetallesFamilias = interface(IViewContenido)
['{FFE0D3C1-F05C-4F28-9393-03F344CA6EBA}']
end;
TfrViewDetallesFamilias = class(TfrViewContenido, IViewDetallesFamilias)
cxStyleRepository1: TcxStyleRepository;
cxStyle_IMPORTETOTAL: TcxStyle;
cxStyle_SUBTOTAL: TcxStyle;
TipoPngImageList: TPngImageList;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewCANTIDAD: TcxGridDBColumn;
cxGridViewIMPORTEUNIDAD: TcxGridDBColumn;
cxGridViewIMPORTETOTAL: TcxGridDBColumn;
cxGridViewTIPO: TcxGridDBColumn;
cxGridViewPOSICION: TcxGridDBColumn;
cxGridViewVISIBLE: TcxGridDBColumn;
actAnadirCap: TAction;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
cxStyle_TITULO: TcxStyle;
procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure cxGridViewTIPOStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
procedure actAnadirCapExecute(Sender: TObject);
private
protected
public
end;
implementation
uses uBizImportesDetalleBase, uDAInterfaces;
{$R *.dfm}
procedure TfrViewDetallesFamilias.cxGridViewEditing(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
var AAllow: Boolean);
var
IndiceCol : Integer;
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_DESCRIPCION).Index;
if AItem.Index <= IndiceCol then
AAllow := True
else begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_SUBTOTAL) then
AAllow := False
else begin
if (UpperCase(AItem.GridView.Items[IndiceCol].EditValue) = TIPODETALLE_TITULO) then
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_VISIBLE).Index;
if AItem.Index = IndiceCol then
AAllow := True
else
AAllow := False
end;
end;
end;
end;
procedure TfrViewDetallesFamilias.cxGridViewTIPOStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
IndiceCol : Integer;
ATipo : String;
begin
if Assigned(ARecord) then
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_TIPODETALLE).Index;
ATipo := VarToStr(ARecord.Values[IndiceCol]);
if ATipo = TIPODETALLE_SUBTOTAL then
AStyle := cxStyle_SUBTOTAL;
if ATipo = TIPODETALLE_TITULO then
AStyle := cxStyle_TITULO;
end;
end;
procedure TfrViewDetallesFamilias.actAnadirCapExecute(Sender: TObject);
var
AFieldTIPO : TDAField;
AFieldDES : TDAField;
begin
if Assigned(DADataSource.DataTable) then
begin
AFieldTIPO := DADataSource.DataTable.FindField(fld_TIPODETALLE);
AFieldDES := DADataSource.DataTable.FindField(fld_DESCRIPCION);
DADataSource.DataTable.Append;
AFieldDES.AsString := 'Capítulo de...';
AFieldTIPO.Value := TIPODETALLE_TITULO;
if DADataSource.DataTable.State in dsEditModes then
DADataSource.DataTable.Post;
DADataSource.DataTable.Next;
DADataSource.DataTable.Insert;
AFieldTIPO.Value := TIPODETALLE_CONCEPTO;
if DADataSource.DataTable.State in dsEditModes then
DADataSource.DataTable.Post;
DADataSource.DataTable.Next;
DADataSource.DataTable.Insert;
AFieldDES.AsString := 'Total del capítulo';
AFieldTIPO.Value := TIPODETALLE_SUBTOTAL;
if DADataSource.DataTable.State in dsEditModes then
DADataSource.DataTable.Post;
end;
end;
end.

View File

@ -0,0 +1,92 @@
inherited frViewDetallesNormales: TfrViewDetallesNormales
inherited ToolBar1: TToolBar
ButtonWidth = 63
object ToolButton1: TToolButton
Left = 0
Top = 0
Action = actAnadir
end
object ToolButton2: TToolButton
Left = 63
Top = 0
Action = actEliminar
end
object ToolButton3: TToolButton
Left = 126
Top = 0
Width = 8
Caption = 'ToolButton3'
ImageIndex = 2
Style = tbsSeparator
end
object ToolButton4: TToolButton
Left = 134
Top = 0
Action = actSubir
end
object ToolButton5: TToolButton
Left = 197
Top = 0
Action = actBajar
end
end
inherited ContenidoImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37
824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4
66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF
6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C
6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187
0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF
07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0
0AF3B40000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000714944415478DA
63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7
9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF
5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974
DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2
1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076
B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF
9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0
17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9
A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6
30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D
7F64240000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000DF4944415478DA
63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833
074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770
F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133
23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32
9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460
FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5
BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7
9A0000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end>
end
end

View File

@ -0,0 +1,34 @@
unit uViewDetallesNormales;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewContenido, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList,
uDADataTable, ActnList, ToolWin, ComCtrls, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid;
type
IViewDetallesNormales = interface(IViewContenido)
['{7E9FEF3B-2A2E-404C-BF1E-7C103E671AFE}']
end;
TfrViewDetallesNormales = class(TfrViewContenido, IViewDetallesNormales)
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

118
Base/uViewDireccion.dfm Normal file
View File

@ -0,0 +1,118 @@
inherited frViewDireccion: TfrViewDireccion
Width = 442
Height = 130
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 442
Height = 130
Align = alClient
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth]
object eProvincia: TcxDBTextEdit
Left = 272
Top = 82
DataBinding.DataField = 'PROVINCIA'
DataBinding.DataSource = DADataSource
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 3
Width = 70
end
object eCalle: TcxDBTextEdit
Left = 94
Top = 28
DataBinding.DataField = 'CALLE'
DataBinding.DataSource = DADataSource
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Width = 272
end
object ePoblacion: TcxDBTextEdit
Left = 94
Top = 55
DataBinding.DataField = 'POBLACION'
DataBinding.DataSource = DADataSource
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 1
Width = 272
end
object eCodigoPostal: TcxDBTextEdit
Left = 94
Top = 82
DataBinding.DataField = 'CODIGOPOSTAL'
DataBinding.DataSource = DADataSource
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 2
Width = 120
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
AutoAligns = [aaHorizontal]
Caption = 'Direcci'#243'n'
object dxLayoutControl1Item4: TdxLayoutItem
Caption = 'Calle:'
Control = eCalle
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item6: TdxLayoutItem
Caption = 'Poblaci'#243'n:'
Control = ePoblacion
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Group2: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item1: TdxLayoutItem
Caption = 'C'#243'digo postal:'
Control = eCodigoPostal
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item5: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Provincia:'
Control = eProvincia
ControlOptions.ShowBorder = False
end
end
end
end
end
object DADataSource: TDADataSource
Left = 80
end
end

42
Base/uViewDireccion.pas Normal file
View File

@ -0,0 +1,42 @@
unit uViewDireccion;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, StdCtrls, Mask, DBCtrls, DB, uDADataTable, ExtCtrls,
JvComponent, JvFormAutoSize, dxLayoutControl, cxControls, cxContainer,
cxEdit, cxTextEdit, cxDBEdit;
type
TfrViewDireccion = class(TfrViewBase)
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
eProvincia: TcxDBTextEdit;
dxLayoutControl1Item5: TdxLayoutItem;
eCalle: TcxDBTextEdit;
dxLayoutControl1Item4: TdxLayoutItem;
ePoblacion: TcxDBTextEdit;
dxLayoutControl1Item6: TdxLayoutItem;
eCodigoPostal: TcxDBTextEdit;
dxLayoutControl1Item1: TdxLayoutItem;
protected
end;
var
frViewDireccion: TfrViewDireccion;
implementation
{$R *.dfm}
initialization
RegisterClass(TfrViewDireccion);
finalization
UnRegisterClass(TfrViewDireccion);
end.

47
Base/uViewFormaPago.dfm Normal file
View File

@ -0,0 +1,47 @@
inherited frViewFormaPago: TfrViewFormaPago
Width = 300
Constraints.MinWidth = 300
DesignSize = (
300
222)
object Label5: TLabel
Left = 8
Top = 8
Width = 85
Height = 13
Caption = 'Forma de pago'
Font.Charset = DEFAULT_CHARSET
Font.Color = clActiveCaption
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
end
object Bevel1: TBevel
Left = 96
Top = 8
Width = 192
Height = 9
Anchors = [akLeft, akTop, akRight]
Shape = bsBottomLine
end
object memFormaPago: TcxDBMemo
Left = 16
Top = 32
Anchors = [akLeft, akTop, akRight, akBottom]
DataBinding.DataField = 'FORMAPAGO'
DataBinding.DataSource = DADataSource
Properties.ScrollBars = ssVertical
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Height = 175
Width = 269
end
object DADataSource: TDADataSource
Left = 16
Top = 48
end
end

26
Base/uViewFormaPago.pas Normal file
View File

@ -0,0 +1,26 @@
unit uViewFormaPago;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls,
cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls;
type
TfrViewFormaPago = class(TfrViewBase)
Label5: TLabel;
Bevel1: TBevel;
memFormaPago: TcxDBMemo;
DADataSource: TDADataSource;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

BIN
Base/uViewGrid.ddp Normal file

Binary file not shown.

118
Base/uViewGrid.dfm Normal file
View File

@ -0,0 +1,118 @@
inherited frViewGrid: TfrViewGrid
Width = 443
Height = 270
Align = alClient
object cxGrid: TcxGrid
Left = 0
Top = 0
Width = 443
Height = 270
Align = alClient
TabOrder = 0
LookAndFeel.Kind = lfOffice11
LookAndFeel.NativeStyle = True
object cxGridView: TcxGridDBTableView
OnDblClick = cxGridViewDblClick
NavigatorButtons.ConfirmDelete = False
FilterBox.Visible = fvNever
DataController.DataModeController.SmartRefresh = True
DataController.DataModeController.SyncMode = False
DataController.DataSource = DADataSource
DataController.Filter.Options = [fcoCaseInsensitive]
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.CellHints = True
OptionsBehavior.BestFitMaxRecordCount = 20
OptionsCustomize.ColumnFiltering = False
OptionsCustomize.ColumnGrouping = False
OptionsData.Deleting = False
OptionsData.DeletingConfirmation = False
OptionsData.Editing = False
OptionsData.Inserting = False
OptionsSelection.CellSelect = False
OptionsSelection.UnselectFocusedRecordOnExit = False
OptionsView.CellEndEllipsis = True
OptionsView.CellAutoHeight = True
OptionsView.ColumnAutoWidth = True
OptionsView.Footer = True
OptionsView.FooterAutoHeight = True
OptionsView.GridLineColor = cl3DLight
OptionsView.GroupByBox = False
OptionsView.HeaderEndEllipsis = True
OptionsView.NewItemRowInfoText = 'Click here to add a new row'
Styles.ContentEven = cxStyleEven
Styles.ContentOdd = cxStyleOdd
Styles.Inactive = cxStyleSelection
Styles.Selection = cxStyleSelection
end
object cxGridLevel: TcxGridLevel
GridView = cxGridView
end
end
object DADataSource: TDADataSource
Left = 368
Top = 96
end
object ActionList1: TActionList
Left = 336
Top = 96
end
object dxComponentPrinter: TdxComponentPrinter
CurrentLink = dxComponentPrinterLink
PreviewOptions.EnableOptions = [peoCanChangeMargins, peoPageBackground, peoPageSetup, peoPreferences, peoPrint]
PreviewOptions.VisibleOptions = [pvoPageBackground, pvoPageSetup, pvoPreferences, pvoPrint, pvoPrintStyles, pvoReportFileOperations, pvoPageMargins]
PreviewOptions.WindowState = wsMaximized
Version = 0
Left = 368
Top = 128
object dxComponentPrinterLink: TdxGridReportLink
Active = True
Component = cxGrid
PrinterPage.DMPaper = 9
PrinterPage.Footer = 6350
PrinterPage.Header = 6350
PrinterPage.Margins.Bottom = 12700
PrinterPage.Margins.Left = 12700
PrinterPage.Margins.Right = 12700
PrinterPage.Margins.Top = 12700
PrinterPage.PageSize.X = 210000
PrinterPage.PageSize.Y = 297000
PrinterPage._dxMeasurementUnits_ = 0
PrinterPage._dxLastMU_ = 2
ReportDocument.CreationDate = 39000.667590601850000000
OptionsCharts.Transparent = True
OptionsFormatting.SuppressBackgroundBitmaps = True
OptionsOnEveryPage.Caption = False
OptionsOnEveryPage.FilterBar = False
OptionsSize.AutoWidth = True
OptionsView.Caption = False
OptionsView.ExpandButtons = False
OptionsView.FilterBar = False
OptionsView.GroupFooters = False
BuiltInReportLink = True
end
end
object dxPSEngineController1: TdxPSEngineController
LookAndFeel = pslfOffice11
UseNativeLookAndFeel = False
Left = 336
Top = 128
end
object cxStyleRepository1: TcxStyleRepository
Left = 296
Top = 128
object cxStyleEven: TcxStyle
end
object cxStyleOdd: TcxStyle
AssignedValues = [svColor]
Color = clInactiveCaptionText
end
object cxStyleSelection: TcxStyle
AssignedValues = [svColor, svTextColor]
Color = clHighlight
TextColor = clHighlightText
end
end
end

395
Base/uViewGrid.pas Normal file
View File

@ -0,0 +1,395 @@
unit uViewGrid;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids,
DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg,
cxIntlPrintSys3, dxPSPrvwAdv;
type
IViewGrid = interface(IViewBase)
['{07468FAD-4891-42E6-B646-51F17F0033F5}']
function GetDblClick: TNotifyEvent;
function GetFilter: string;
function GetPopupMenu: TPopupMenu;
function GetGrid : TcxGrid;
procedure Preview;
procedure Print;
procedure PrintSetup;
procedure GotoFirst;
procedure GotoLast;
procedure SetDblClick(const Value: TNotifyEvent);
procedure SetFilter(const Value: string);
procedure SetPopupMenu(const Value: TPopupMenu);
procedure RefreshGrid;
function GetMultiSelection: Boolean;
procedure SetMultiSelection(const Value: Boolean);
property Filter: string read GetFilter write SetFilter;
property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
property MultiSelection : Boolean read GetMultiSelection write SetMultiSelection;
property Grid : TcxGrid read GetGrid;
procedure SyncFocusedRecordsFromGrid;
procedure SyncFocusedRecordsFromDataSet;
procedure StoreToRegistry;
procedure RestoreFromRegistry;
end;
TfrViewGrid = class(TfrViewBase, IViewGrid)
ActionList1: TActionList;
cxGrid: TcxGrid;
cxGridLevel: TcxGridLevel;
cxGridView: TcxGridDBTableView;
DADataSource: TDADataSource;
dxComponentPrinter: TdxComponentPrinter;
dxComponentPrinterLink: TdxGridReportLink;
dxPSEngineController1: TdxPSEngineController;
cxStyleRepository1: TcxStyleRepository;
cxStyleEven: TcxStyle;
cxStyleOdd: TcxStyle;
cxStyleSelection: TcxStyle;
procedure cxGridViewDblClick(Sender: TObject);
procedure cxGridViewDataControllerSortingChanged(Sender: TObject);
// procedure SelectionChanged(Sender: TcxCustomGridTableView); virtual; abstract;
private
FFilter: string;
FOnFilterChanged : TNotifyEvent;
FOnDblClick: TNotifyEvent;
FPopupMenu: TPopupMenu;
procedure FiltrarGrid(TextoFiltro : String);
protected
function GetGrid : TcxGrid;
function GetDblClick: TNotifyEvent; virtual;
function GetFilter: string; virtual;
function GetPopupMenu: TPopupMenu; virtual;
function GetMultiSelection: Boolean; virtual;
procedure SetDblClick(const Value: TNotifyEvent); virtual;
procedure SetFilter(const Value: string); virtual;
procedure SetPopupMenu(const Value: TPopupMenu); virtual;
procedure SetMultiSelection(const Value: Boolean); virtual;
procedure FilterChanged(Sender : TObject); virtual;
public
procedure ShowEmbedded(const AParent : TWinControl); override;
constructor Create(AOwner: TComponent); override;
procedure Preview; virtual;
procedure Print; virtual;
procedure PrintSetup;
procedure GotoFirst;
procedure GotoLast;
procedure StoreToRegistry; virtual;
procedure RestoreFromRegistry; virtual;
property Filter: string read GetFilter write SetFilter;
property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
property Grid : TcxGrid read GetGrid;
procedure SyncFocusedRecordsFromGrid; virtual;
procedure SyncFocusedRecordsFromDataSet; virtual;
property MultiSelection : Boolean read GetMultiSelection write SetMultiSelection;
procedure RefreshGrid; virtual;
end;
procedure Register;
var
frViewGrid: TfrViewGrid;
implementation
uses
CCReg, uDataModuleBase, uDBSelectionList;
{$R *.dfm}
{ TfrViewGrid }
procedure Register;
begin
RegisterCustomContainer(TfrViewGrid);
end;
{
********************************* TfrViewGrid **********************************
}
constructor TfrViewGrid.Create(AOwner: TComponent);
begin
inherited;
FFilter := '';
FOnFilterChanged := FilterChanged;
GotoFirst;
end;
procedure TfrViewGrid.cxGridViewDblClick(Sender: TObject);
begin
if Assigned(FOnDblClick) then
FOnDblClick(Sender);
end;
procedure TfrViewGrid.FiltrarGrid(TextoFiltro : String);
var
Columna: TcxGridDBColumn;
i: Integer;
AItemList: TcxFilterCriteriaItemList;
begin
with cxGrid.ActiveView.DataController.Filter do
begin
BeginUpdate;
try
Options := [fcoCaseInsensitive, fcoSoftCompare];
Root.Clear;
if Length(TextoFiltro) > 0 then
begin
AItemList := Root.AddItemList(fboAnd);
AItemList.BoolOperatorKind := fboOr;
for i:=0 to (cxGrid.ActiveView as TcxGridDBTableView).ColumnCount - 1 do
begin
Columna := (cxGrid.ActiveView as TcxGridDBTableView).Columns[i];
if (Length(Columna.Caption) > 0) and (Columna.Caption <> 'RecID') then
AItemList.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i));
end;
Active := True;
end
else
Active := False;
finally
EndUpdate;
end;
end;
end;
function TfrViewGrid.GetDblClick: TNotifyEvent;
begin
Result := FOnDblClick;
end;
function TfrViewGrid.GetFilter: string;
begin
Result := FFilter;
end;
function TfrViewGrid.GetPopupMenu: TPopupMenu;
begin
Result := FPopupMenu;
end;
procedure TfrViewGrid.GotoFirst;
begin
cxGridView.DataController.GotoFirst;
end;
procedure TfrViewGrid.GotoLast;
begin
cxGridView.DataController.GotoLast;
end;
procedure TfrViewGrid.SetDblClick(const Value: TNotifyEvent);
begin
FOnDblClick := Value;
end;
procedure TfrViewGrid.SetFilter(const Value: string);
begin
if FFilter <> Value then
begin
FFilter := Value;
FiltrarGrid(FFilter);
if Assigned(FOnFilterChanged) then
FOnFilterChanged(Self);
end;
end;
procedure TfrViewGrid.SetPopupMenu(const Value: TPopupMenu);
begin
FPopupMenu := Value;
cxGridView.PopupMenu := FPopupMenu;
end;
procedure TfrViewGrid.cxGridViewDataControllerSortingChanged(
Sender: TObject);
var
i: Integer;
AFields: array of String;
ADirections: array of TDASortDirection;
ABookmark : Pointer;
begin
inherited;
with cxGridView do
begin
for i := 0 to SortedItemCount - 1 do
begin
SetLength(AFields, i+1);
AFields[i] := (SortedItems[i] as TcxGridDBColumn).DataBinding.FieldName;
SetLength(ADirections, i+1);
case (SortedItems[i] as TcxGridDBColumn).SortOrder of
soAscending : ADirections[i] := sdAscending;
soDescending : ADirections[i] := sdDescending;
end;
end;
end;
if Assigned(DADataSource.DataTable) then
with DADataSource.DataTable do
begin
DisableControls;
ABookmark := GetBookMark;
try
Sort(AFields, ADirections);
GotoBookmark(ABookmark);
finally
FreeBookmark(ABookmark);
EnableControls;
end;
end;
end;
function TfrViewGrid.GetGrid: TcxGrid;
begin
Result := cxGrid;
end;
procedure TfrViewGrid.ShowEmbedded(const AParent : TWinControl);
begin
inherited;
if not DADataSource.DataTable.Active then
DADataSource.DataTable.Active := True;
with Grid do
begin
ActiveView.DataController.GotoFirst;
ActiveView.Focused := True;
if (ActiveView.ViewData as TcxCustomGridTableViewData).RecordCount > 0 then
begin
(ActiveView.ViewData as TcxCustomGridTableViewData).Records[0].Selected := True;
(ActiveView.ViewData as TcxCustomGridTableViewData).Records[0].Focused := True;
end;
{ if (ActiveView is TcxCustomGridTableView) then
(ActiveView as TcxCustomGridTableView).ApplyBestFit;}
end;
end;
procedure TfrViewGrid.Preview;
begin
dxComponentPrinter.Preview;
end;
procedure TfrViewGrid.Print;
begin
dxComponentPrinter.Print(True, nil, nil);
end;
procedure TfrViewGrid.PrintSetup;
begin
dxComponentPrinter.PageSetup(nil);
end;
procedure TfrViewGrid.RefreshGrid;
var
FocusedRow, TopRow, TopRecord : Integer;
ARecordID : Variant;
begin
{ Refrescar las filas del grid a partir del dataset y colocar la fila
seleccionada donde estaba }
if DADataSource.DataTable.State = dsBrowse then
begin
TopRow := cxGridView.Controller.TopRowIndex;
TopRecord := cxGridView.Controller.TopRecordIndex;
FocusedRow := cxGridView.DataController.FocusedRowIndex;
ARecordID := cxGridView.DataController.GetRecordId(cxGridView.DataController.FocusedRecordIndex);
try
cxGridView.DataController.UpdateItems(False); // <- Refresco
finally
cxGridView.Controller.TopRowIndex := TopRow;
cxGridView.Controller.TopRecordIndex := TopRecord;
cxGridView.DataController.FocusedRowIndex := FocusedRow;
end;
end;
end;
procedure TfrViewGrid.SyncFocusedRecordsFromDataSet;
//var
// AIndex : Integer;
begin
{ for AIndex := 0 to cxGridView.DataController.RecordCount - 1 do
begin
if (MessageBox(0, PChar(cxGridView.DataController.GetDisplayText(AIndex, 1)), '',
MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON1) = idYes) then
begin
cxGridView.DataController.SelectAll;
cxGridView.DataController.SelectRows(AIndex, AIndex);
cxGridView.DataController.FocusSelectedRow(0);
Break;
end;
end;}
end;
procedure TfrViewGrid.SyncFocusedRecordsFromGrid;
var
AValue : Variant;
i: Integer;
aObj : ISelectedRowList;
Clave : String;
begin
if not Supports(DADataSource.DataTable, ISelectedRowList, aObj) then
raise Exception.Create('La tabla no soporta el interfaz ISelectedRowList (SyncFocusedRecords)');
Clave := cxGridView.DataController.KeyFieldNames;
if Length(Clave) = 0 then
raise Exception.Create('Falta indicar los campos clave de la tabla en la vista del grid (SyncFocusedRecords)');
DADataSource.DataTable.DisableControls;
// DADataSource.DataTable.DisableEventHandlers; <- No descomentar
try
for i := 0 to cxGridView.Controller.SelectedRecordCount - 1 do
begin
AValue := cxGridView.Controller.SelectedRows[i].Values[cxGridView.GetColumnByFieldName(Clave).Index];
DADataSource.DataTable.First;
if DADataSource.DataTable.Locate(Clave, AValue, []) then
aObj.SelectedRows.CurrentRowSelected := True;
end;
finally
// DADataSource.DataTable.EnableEventHandlers; <- No descomentar
DADataSource.DataTable.EnableControls;
end;
end;
function TfrViewGrid.GetMultiSelection: Boolean;
begin
Result := (cxGrid.ActiveView as TcxGridDBTableView).OptionsSelection.MultiSelect;
end;
procedure TfrViewGrid.SetMultiSelection(const Value: Boolean);
begin
(cxGrid.ActiveView as TcxGridDBTableView).OptionsSelection.MultiSelect := True;
// (cxGrid.ActiveView as TcxGridDBTableView).OnSelectionChanged := SelectionChanged;
end;
procedure TfrViewGrid.RestoreFromRegistry;
begin
cxGridView.RestoreFromRegistry('Software\\FactuGES\\GridSettings\\' + Self.Name, False, False, []);
end;
procedure TfrViewGrid.StoreToRegistry;
begin
cxGridView.StoreToRegistry('Software\\FactuGES\\GridSettings\\' + Self.Name, True, []);
end;
procedure TfrViewGrid.FilterChanged(Sender: TObject);
begin
//
end;
end.

BIN
Base/uViewInternet.ddp Normal file

Binary file not shown.

412
Base/uViewInternet.dfm Normal file
View File

@ -0,0 +1,412 @@
inherited frViewInternet: TfrViewInternet
Width = 464
Height = 135
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 464
Height = 135
Align = alClient
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth, acsHeight]
object SpeedButton1: TSpeedButton
Left = 419
Top = 28
Width = 23
Height = 22
Action = actMandarCorreoParticular
Flat = True
Glyph.Data = {
36030000424D3603000000000000360000002800000010000000100000000100
1800000000000003000000000000000000000000000000000000FFFFFFB7A293
694731694731694731694731694731694731694731694731694731FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFB7A293EDE4DFB7A293B7A293B7A293B7A293B7
A293B7A293B7A293694731FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7A293
F1EAE6EDE4DFE9DED8E5D8D1E3D5CDDFCFC6DBC9BFB7A293694731FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFB7A293F5F0EDF1EAE6EFE7E2EBE1DCE7DBD5E3
D5CDDFCFC6B7A293694731FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7A293
FBF9F8F7F3F1F3EDEAEFE7E2EBE1DCE7DBD5E3D5CDB7A293694731FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFB7A293FFFFFFFBF9F8F7F3F1F3EDEAEFE7E2EB
E1DCE7DBD5B7A293694731FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7A293
FFFFFFFFFFFFFBF9F8F7F3F1F3EDEAEFE7E2EBE1DCB7A2936947316947316947
31694731694731694731FFFFFFB7A293FFFFFFFFFFFFFFFFFFFBF9F8F7F3F1F3
EDEAEFE7E2B7A293694731B7A293B7A293B7A293B7A293694731FFFFFFB7A293
FFFFFFFFFFFFFFFFFFFFFFFFFBF9F8B7A293694731694731694731E4D6CFE0D1
C8DCCBC2B7A293694731FFFFFFB7A293FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7
A293F3EBE6694731D89840D89840E4D6CFE0D1C8B7A293694731FFFFFFB7A293
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7A293694731F2EBE8EEE6E2EBE1DCE8DC
D6E4D6CFB7A293694731FFFFFFB7A293B7A293B7A293B7A293B7A293B7A293B7
A293D89840D89840D89840D89840EBE1DCE8DCD6B7A293694731FFFFFFFFFFFF
FFFFFFCFB9ABFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFBF8F7F5F0EEF2EBE860A2
FA314A80B7A293694731FFFFFFFFFFFFFFFFFFCFB9ABFFFFFF4878F84878F8FF
FFFFFFFFFFFEFDFDFBF8F7F7F3F14878F860A2FAB7A293694731FFFFFFFFFFFF
FFFFFFCFB9ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFBF8F7F7F3
F1F4EEEBF0E9E5694731FFFFFFFFFFFFFFFFFFCFB9ABCFB9ABCFB9ABCFB9ABCF
B9ABCFB9ABCFB9ABCFB9ABCFB9ABCFB9ABCFB9ABCFB9ABCFB9AB}
end
object SpeedButton2: TSpeedButton
Left = 419
Top = 56
Width = 23
Height = 22
Action = actMandarCorreoTrabajo
Flat = True
Glyph.Data = {
36030000424D3603000000000000360000002800000010000000100000000100
1800000000000003000000000000000000000000000000000000FFFFFFB7A293
694731694731694731694731694731694731694731694731694731FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFB7A293EDE4DFB7A293B7A293B7A293B7A293B7
A293B7A293B7A293694731FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7A293
F1EAE6EDE4DFE9DED8E5D8D1E3D5CDDFCFC6DBC9BFB7A293694731FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFB7A293F5F0EDF1EAE6EFE7E2EBE1DCE7DBD5E3
D5CDDFCFC6B7A293694731FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7A293
FBF9F8F7F3F1F3EDEAEFE7E2EBE1DCE7DBD5E3D5CDB7A293694731FFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFB7A293FFFFFFFBF9F8F7F3F1F3EDEAEFE7E2EB
E1DCE7DBD5B7A293694731FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7A293
FFFFFFFFFFFFFBF9F8F7F3F1F3EDEAEFE7E2EBE1DCB7A2936947316947316947
31694731694731694731FFFFFFB7A293FFFFFFFFFFFFFFFFFFFBF9F8F7F3F1F3
EDEAEFE7E2B7A293694731B7A293B7A293B7A293B7A293694731FFFFFFB7A293
FFFFFFFFFFFFFFFFFFFFFFFFFBF9F8B7A293694731694731694731E4D6CFE0D1
C8DCCBC2B7A293694731FFFFFFB7A293FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7
A293F3EBE6694731D89840D89840E4D6CFE0D1C8B7A293694731FFFFFFB7A293
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7A293694731F2EBE8EEE6E2EBE1DCE8DC
D6E4D6CFB7A293694731FFFFFFB7A293B7A293B7A293B7A293B7A293B7A293B7
A293D89840D89840D89840D89840EBE1DCE8DCD6B7A293694731FFFFFFFFFFFF
FFFFFFCFB9ABFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFBF8F7F5F0EEF2EBE860A2
FA314A80B7A293694731FFFFFFFFFFFFFFFFFFCFB9ABFFFFFF4878F84878F8FF
FFFFFFFFFFFEFDFDFBF8F7F7F3F14878F860A2FAB7A293694731FFFFFFFFFFFF
FFFFFFCFB9ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFBF8F7F7F3
F1F4EEEBF0E9E5694731FFFFFFFFFFFFFFFFFFCFB9ABCFB9ABCFB9ABCFB9ABCF
B9ABCFB9ABCFB9ABCFB9ABCFB9ABCFB9ABCFB9ABCFB9ABCFB9AB}
end
object SpeedButton3: TSpeedButton
Left = 419
Top = 84
Width = 23
Height = 22
Action = actVerPaginaWeb
Flat = True
Glyph.Data = {
36030000424D3603000000000000360000002800000010000000100000000100
1800000000000003000000000000000000000000000000000000FFFFFFFFFFFF
FFFFFFFFFFFFF4D6C7DD9479C5663BC25635C75D3AD67B4EE5A891F9ECE3FFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9EEE7DB916FBB5128A9491C8A5726AA
431BAF4922B6512EC15B3ED06B4DEAAE92FEF8F6FFFFFFFFFFFFFFFFFFF8E8DD
C26438A13C0CA03A04A03D025857128440059D37039F3808A33D0FB14B25BE57
36DF927BFEFAF8FFFFFFFEFBF9C66840A23B01A94300AE4800B34D004161013F
5C01AA4200A53E009F38009C3502A23E11B65F43EAA683FFFFFFEDC3B0A73E09
AF4800B85100BE5800B65D002F70000B7000595E00B54F00AE4800A33C00973A
06875E38B66A44FDEAD9D08156B34D00C05A00CA6400D26C00917B0007840001
8100177700B96300C35D00B64F009B4C03566426786338DEA783C85B1BBF5800
CD6600D77000CC7900918500328B01778400A67500CF6B00BC67006D6300535F
022C641356652BB57338C85E1ACD6800CD75006F8E076D9305839408A39609EE
8E00ED8500DD7B008C76000377000070000866032C64138D5620D36E07D66F00
8C89070EA71E46A7215BA924E0A71EFCA113F99707EB8800BF7E001E7F002375
003D660131620B8E5C21EC9027DC780041A4211CB73D24BD492AC25280C55AF8
C55BFCB53AFB9C0CEC8C004C8400167F00077100106702AB7C39F3B67ACE7E05
35B13529C2533ACC674DD1724FD172DBDB87FBCA65FCAA23EB94024B8B012C82
000675001A6801D9B27DE9EBD954A93225BF4D3FCF6E86DB86C4EAA396E7A4E8
F0B8D8D983F0B438D89A0BC687006383001E7800757F1AFCE9D8FFFFFF9AD9A0
30C55953D6798CE498C5F2B5C5F3BECFF0B559D2748FB63D5EA31AD58401B377
004B7D07EBC089FFFFFFFFFFFFF9FBF8ACD09472CE6DA5DB86D6E69DC8ECAAA9
E19245D1702FB941A99A10E88100DC7C08E2B370FDFAF8FFFFFFFFFFFFFFFFFF
FCFCFBC2DBADA1D179A3DC8A9FDD8A62D77C36CC6620B73D8E9915F19321FBC8
94FFFBF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F5ECCFDDB095D37A95
C2677ABB4F67C158D8C994FEF2E8FFFFFFFFFFFFFFFFFFFFFFFF}
end
object eMailTrabajo: TcxDBHyperLinkEdit
Left = 107
Top = 56
DataBinding.DataField = 'CORREO2'
DataBinding.DataSource = DADataSource
Properties.ValidateOnEnter = True
Properties.OnEditValueChanged = eMailPropertiesEditValueChanged
Properties.Prefix = 'mailto:'
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 1
Width = 250
end
object ePaginaWeb: TcxDBHyperLinkEdit
Left = 107
Top = 84
DataBinding.DataField = 'PAGINAWEB'
DataBinding.DataSource = DADataSource
Properties.ValidateOnEnter = True
Properties.OnEditValueChanged = eMailPropertiesEditValueChanged
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 2
Width = 121
end
object eMailParticular: TcxDBHyperLinkEdit
Left = 107
Top = 28
DataBinding.DataField = 'CORREO1'
DataBinding.DataSource = DADataSource
Properties.StartKey = 16496
Properties.OnEditValueChanged = eMailPropertiesEditValueChanged
Properties.Prefix = 'mailto:'
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Width = 250
end
object dxLayoutGroup1: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutGroup2: TdxLayoutGroup
Caption = 'Correo electr'#243'nico e Internet'
object dxLayoutControl1Group1: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'E-mail particular:'
Control = eMailParticular
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item1: TdxLayoutItem
ShowCaption = False
Control = SpeedButton1
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Group2: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item5: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'E-mail trabajo:'
Control = eMailTrabajo
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item4: TdxLayoutItem
ShowCaption = False
Control = SpeedButton2
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Group3: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item2: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'P'#225'gina web:'
Control = ePaginaWeb
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item6: TdxLayoutItem
ShowCaption = False
Control = SpeedButton3
ControlOptions.ShowBorder = False
end
end
end
end
end
object DADataSource: TDADataSource
Left = 16
Top = 104
end
object ActionList1: TActionList
Images = ImageList1
Left = 400
Top = 8
object actMandarCorreoParticular: TAction
ImageIndex = 0
OnExecute = actMandarCorreoParticularExecute
OnUpdate = actMandarCorreoParticularUpdate
end
object actMandarCorreoTrabajo: TAction
ImageIndex = 0
OnExecute = actMandarCorreoTrabajoExecute
OnUpdate = actMandarCorreoTrabajoUpdate
end
object actVerPaginaWeb: TAction
ImageIndex = 1
OnExecute = actVerPaginaWebExecute
OnUpdate = actVerPaginaWebUpdate
end
end
object ImageList1: TImageList
Left = 432
Top = 8
Bitmap = {
494C010102000400040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000001000000001002000000000000010
00000000000000000000000000000000000000000000B7A29300694731006947
3100694731006947310069473100694731006947310069473100694731000000
0000000000000000000000000000000000000000000000000000000000000000
0000F4D6C700DD947900C5663B00C2563500C75D3A00D67B4E00E5A89100F9EC
E300000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300EDE4DF00B7A2
9300B7A29300B7A29300B7A29300B7A29300B7A29300B7A29300694731000000
0000000000000000000000000000000000000000000000000000F9EEE700DB91
6F00BB512800A9491C008A572600AA431B00AF492200B6512E00C15B3E00D06B
4D00EAAE9200FEF8F60000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300F1EAE600EDE4
DF00E9DED800E5D8D100E3D5CD00DFCFC600DBC9BF00B7A29300694731000000
00000000000000000000000000000000000000000000F8E8DD00C2643800A13C
0C00A03A0400A03D020058571200844005009D3703009F380800A33D0F00B14B
2500BE573600DF927B00FEFAF800000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300F5F0ED00F1EA
E600EFE7E200EBE1DC00E7DBD500E3D5CD00DFCFC600B7A29300694731000000
000000000000000000000000000000000000FEFBF900C6684000A23B0100A943
0000AE480000B34D0000416101003F5C0100AA420000A53E00009F3800009C35
0200A23E1100B65F4300EAA68300000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300FBF9F800F7F3
F100F3EDEA00EFE7E200EBE1DC00E7DBD500E3D5CD00B7A29300694731000000
000000000000000000000000000000000000EDC3B000A73E0900AF480000B851
0000BE580000B65D00002F7000000B700000595E0000B54F0000AE480000A33C
0000973A0600875E3800B66A4400FDEAD9000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A2930000000000FBF9
F800F7F3F100F3EDEA00EFE7E200EBE1DC00E7DBD500B7A29300694731000000
000000000000000000000000000000000000D0815600B34D0000C05A0000CA64
0000D26C0000917B0000078400000181000017770000B9630000C35D0000B64F
00009B4C03005664260078633800DEA783000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300000000000000
0000FBF9F800F7F3F100F3EDEA00EFE7E200EBE1DC00B7A29300694731006947
310069473100694731006947310069473100C85B1B00BF580000CD660000D770
0000CC79000091850000328B010077840000A6750000CF6B0000BC6700006D63
0000535F02002C64130056652B00B57338000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300000000000000
000000000000FBF9F800F7F3F100F3EDEA00EFE7E200B7A2930069473100B7A2
9300B7A29300B7A29300B7A2930069473100C85E1A00CD680000CD7500006F8E
07006D93050083940800A3960900EE8E0000ED850000DD7B00008C7600000377
000000700000086603002C6413008D5620000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300000000000000
00000000000000000000FBF9F800B7A29300694731006947310069473100E4D6
CF00E0D1C800DCCBC200B7A2930069473100D36E0700D66F00008C8907000EA7
1E0046A721005BA92400E0A71E00FCA11300F9970700EB880000BF7E00001E7F
0000237500003D66010031620B008E5C21000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300000000000000
0000000000000000000000000000B7A29300F3EBE60069473100D8984000D898
4000E4D6CF00E0D1C800B7A2930069473100EC902700DC78000041A421001CB7
3D0024BD49002AC2520080C55A00F8C55B00FCB53A00FB9C0C00EC8C00004C84
0000167F00000771000010670200AB7C39000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300000000000000
0000000000000000000000000000B7A2930069473100F2EBE800EEE6E200EBE1
DC00E8DCD600E4D6CF00B7A2930069473100F3B67A00CE7E050035B1350029C2
53003ACC67004DD172004FD17200DBDB8700FBCA6500FCAA2300EB9402004B8B
01002C820000067500001A680100D9B27D000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000B7A29300B7A29300B7A2
9300B7A29300B7A29300B7A29300B7A29300D8984000D8984000D8984000D898
4000EBE1DC00E8DCD600B7A2930069473100E9EBD90054A9320025BF4D003FCF
6E0086DB8600C4EAA30096E7A400E8F0B800D8D98300F0B43800D89A0B00C687
0000638300001E780000757F1A00FCE9D8000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000CFB9
AB0000000000000000000000000000000000FEFDFD00FBF8F700F5F0EE00F2EB
E80060A2FA00314A8000B7A2930069473100000000009AD9A00030C5590053D6
79008CE49800C5F2B500C5F3BE00CFF0B50059D274008FB63D005EA31A00D584
0100B37700004B7D0700EBC08900000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000CFB9
AB00000000004878F8004878F8000000000000000000FEFDFD00FBF8F700F7F3
F1004878F80060A2FA00B7A293006947310000000000F9FBF800ACD0940072CE
6D00A5DB8600D6E69D00C8ECAA00A9E1920045D170002FB94100A99A1000E881
0000DC7C0800E2B37000FDFAF800000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000CFB9
AB00000000000000000000000000000000000000000000000000FEFDFD00FBF8
F700F7F3F100F4EEEB00F0E9E500694731000000000000000000FCFCFB00C2DB
AD00A1D17900A3DC8A009FDD8A0062D77C0036CC660020B73D008E991500F193
2100FBC89400FFFBF90000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000CFB9
AB00CFB9AB00CFB9AB00CFB9AB00CFB9AB00CFB9AB00CFB9AB00CFB9AB00CFB9
AB00CFB9AB00CFB9AB00CFB9AB00CFB9AB000000000000000000000000000000
0000F1F5EC00CFDDB00095D37A0095C267007ABB4F0067C15800D8C99400FEF2
E800000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000
2800000040000000100000000100010000000000800000000000000000000000
000000000000000000000000FFFFFF00801FF00F00000000801FC00300000000
801F800100000000801F000100000000801F000000000000A01F000000000000
B000000000000000B800000000000000BC00000000000000BE00000000000000
BE000000000000008000000000000000EF00800100000000E980800100000000
EFC0C00300000000E000F00F00000000}
end
end

115
Base/uViewInternet.pas Normal file
View File

@ -0,0 +1,115 @@
unit uViewInternet;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, DB, uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls,
JvComponent, JvFormAutoSize, dxLayoutControl, cxControls, cxContainer,
cxEdit, cxTextEdit, cxDBEdit, cxHyperLinkEdit, Buttons, ActnList, ImgList;
type
TfrViewInternet = class(TfrViewBase)
DADataSource: TDADataSource;
dxLayoutControl1: TdxLayoutControl;
dxLayoutGroup1: TdxLayoutGroup;
dxLayoutGroup2: TdxLayoutGroup;
eMailTrabajo: TcxDBHyperLinkEdit;
dxLayoutControl1Item5: TdxLayoutItem;
ePaginaWeb: TcxDBHyperLinkEdit;
dxLayoutControl1Item2: TdxLayoutItem;
dxLayoutControl1Item3: TdxLayoutItem;
eMailParticular: TcxDBHyperLinkEdit;
dxLayoutControl1Item1: TdxLayoutItem;
SpeedButton1: TSpeedButton;
dxLayoutControl1Group1: TdxLayoutGroup;
ActionList1: TActionList;
actMandarCorreoParticular: TAction;
actMandarCorreoTrabajo: TAction;
ImageList1: TImageList;
dxLayoutControl1Item4: TdxLayoutItem;
SpeedButton2: TSpeedButton;
dxLayoutControl1Group2: TdxLayoutGroup;
dxLayoutControl1Item6: TdxLayoutItem;
SpeedButton3: TSpeedButton;
dxLayoutControl1Group3: TdxLayoutGroup;
actVerPaginaWeb: TAction;
procedure eMailPropertiesEditValueChanged(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure actMandarCorreoParticularUpdate(Sender: TObject);
procedure actMandarCorreoTrabajoUpdate(Sender: TObject);
procedure actMandarCorreoParticularExecute(Sender: TObject);
procedure actMandarCorreoTrabajoExecute(Sender: TObject);
procedure actVerPaginaWebExecute(Sender: TObject);
procedure actVerPaginaWebUpdate(Sender: TObject);
end;
implementation
uses StrUtils;
{$R *.dfm}
type
THackcxDBHyperLinkEdit = class(TcxDBHyperLinkEdit);
procedure TfrViewInternet.eMailPropertiesEditValueChanged(Sender: TObject);
begin
inherited;
if not varisnull((Sender as TcxDBHyperLinkEdit).EditValue) then
(Sender as TcxDBHyperLinkEdit).EditValue := StringReplace((Sender as TcxDBHyperLinkEdit).EditValue, (Sender as TcxDBHyperLinkEdit).Properties.Prefix, '', []);
end;
procedure TfrViewInternet.SpeedButton1Click(Sender: TObject);
begin
inherited;
THackcxDBHyperLinkEdit(eMailParticular).DoStart;
end;
procedure TfrViewInternet.actMandarCorreoParticularUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (Length(eMailParticular.Text) > 0)
end;
procedure TfrViewInternet.actMandarCorreoTrabajoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (Length(eMailTrabajo.Text) > 0)
end;
procedure TfrViewInternet.actMandarCorreoParticularExecute(
Sender: TObject);
begin
inherited;
THackcxDBHyperLinkEdit(eMailParticular).DoStart;
end;
procedure TfrViewInternet.actMandarCorreoTrabajoExecute(Sender: TObject);
begin
inherited;
THackcxDBHyperLinkEdit(eMailTrabajo).DoStart;
end;
procedure TfrViewInternet.actVerPaginaWebExecute(Sender: TObject);
begin
inherited;
THackcxDBHyperLinkEdit(ePaginaWeb).DoStart;
end;
procedure TfrViewInternet.actVerPaginaWebUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (Length(ePaginaWeb.Text) > 0)
end;
initialization
RegisterClass(TfrViewInternet);
finalization
UnRegisterClass(TfrViewInternet);
end.

View File

@ -0,0 +1,54 @@
inherited frViewObservaciones: TfrViewObservaciones
Width = 322
Height = 195
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 322
Height = 195
Align = alClient
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth, acsHeight]
object memObservaciones: TcxDBMemo
Left = 22
Top = 28
DataBinding.DataField = 'OBSERVACIONES'
DataBinding.DataSource = DADataSource
Properties.ScrollBars = ssVertical
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Height = 107
Width = 197
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
AutoAligns = [aaHorizontal]
AlignVert = avClient
Caption = 'Observaciones'
object dxLayoutControl1Item1: TdxLayoutItem
AutoAligns = [aaHorizontal]
AlignVert = avClient
Caption = 'Observaciones'
ShowCaption = False
Control = memObservaciones
ControlOptions.ShowBorder = False
end
end
end
end
object DADataSource: TDADataSource
Left = 8
Top = 360
end
end

View File

@ -0,0 +1,28 @@
unit uViewObservaciones;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls,
cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls, dxLayoutControl;
type
TfrViewObservaciones = class(TfrViewBase)
memObservaciones: TcxDBMemo;
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Item1: TdxLayoutItem;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

10
Base/uViewPreview.dfm Normal file
View File

@ -0,0 +1,10 @@
inherited frViewPreview: TfrViewPreview
object frxPreview: TfrxPreview
Left = 0
Top = 0
Width = 320
Height = 240
Align = alClient
OutlineVisible = False
end
end

43
Base/uViewPreview.pas Normal file
View File

@ -0,0 +1,43 @@
unit uViewPreview;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, frxClass, frxPreview, JvComponent, JvFormAutoSize;
type
IViewPreview = interface(IViewBase)
['{F9A96948-4005-4E9B-8045-7B4874A05D19}']
function GetPreview: TfrxPreview;
property Preview : TfrxPreview read GetPreview;
end;
TfrViewPreview = class(TfrViewBase, IViewPreview)
frxPreview: TfrxPreview;
private
function GetPreview: TfrxPreview;
public
property Preview : TfrxPreview read GetPreview;
end;
implementation
{$R *.dfm}
{ TfrViewPreview }
function TfrViewPreview.GetPreview: TfrxPreview;
begin
Result := frxPreview;
end;
initialization
RegisterClass(TfrViewPreview);
finalization
UnRegisterClass(TfrViewPreview);
end.
end.

111
Base/uViewTelefonos.dfm Normal file
View File

@ -0,0 +1,111 @@
inherited frViewTelefonos: TfrViewTelefonos
Width = 451
Height = 154
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 451
Height = 154
Align = alClient
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth]
object eTlfParticular: TcxDBTextEdit
Left = 87
Top = 28
DataBinding.DataField = 'TELEFONO2'
DataBinding.DataSource = DADataSource
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Width = 326
end
object eTlfTrabajo: TcxDBTextEdit
Left = 87
Top = 55
DataBinding.DataField = 'TELEFONO1'
DataBinding.DataSource = DADataSource
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 1
Width = 326
end
object eTlfMovil: TcxDBTextEdit
Left = 87
Top = 82
DataBinding.DataField = 'MOVIL'
DataBinding.DataSource = DADataSource
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 2
Width = 326
end
object eFax: TcxDBTextEdit
Left = 87
Top = 109
DataBinding.DataField = 'FAX'
DataBinding.DataSource = DADataSource
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 3
Width = 326
end
object dxLayoutGroup1: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutGroup2: TdxLayoutGroup
AutoAligns = [aaHorizontal]
Caption = 'Tel'#233'fonos y faxes'
object dxLayoutControl1Item4: TdxLayoutItem
Caption = 'Particular:'
Control = eTlfParticular
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item5: TdxLayoutItem
Caption = 'Trabajo:'
Control = eTlfTrabajo
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item6: TdxLayoutItem
Caption = 'M'#243'vil:'
Control = eTlfMovil
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item7: TdxLayoutItem
Caption = 'Num. de fax:'
Control = eFax
ControlOptions.ShowBorder = False
end
end
end
end
object DADataSource: TDADataSource
Left = 8
Top = 8
end
end

42
Base/uViewTelefonos.pas Normal file
View File

@ -0,0 +1,42 @@
unit uViewTelefonos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, DB, uDADataTable, StdCtrls, Mask, DBCtrls, ExtCtrls,
JvComponent, JvFormAutoSize, dxLayoutControl, cxControls, cxContainer,
cxEdit, cxTextEdit, cxDBEdit;
type
TfrViewTelefonos = class(TfrViewBase)
DADataSource: TDADataSource;
dxLayoutControl1: TdxLayoutControl;
dxLayoutGroup1: TdxLayoutGroup;
dxLayoutGroup2: TdxLayoutGroup;
eTlfParticular: TcxDBTextEdit;
dxLayoutControl1Item4: TdxLayoutItem;
eTlfTrabajo: TcxDBTextEdit;
dxLayoutControl1Item5: TdxLayoutItem;
eTlfMovil: TcxDBTextEdit;
dxLayoutControl1Item6: TdxLayoutItem;
eFax: TcxDBTextEdit;
dxLayoutControl1Item7: TdxLayoutItem;
end;
var
frViewTelefonos: TfrViewTelefonos;
implementation
{$R *.dfm}
initialization
RegisterClass(TfrViewTelefonos);
finalization
UnRegisterClass(TfrViewTelefonos);
end.

BIN
Base/uViewTotales.ddp Normal file

Binary file not shown.

197
Base/uViewTotales.dfm Normal file
View File

@ -0,0 +1,197 @@
inherited frViewTotales: TfrViewTotales
Width = 730
Height = 100
Align = alBottom
Constraints.MaxHeight = 100
Constraints.MinHeight = 100
Constraints.MinWidth = 730
object TabControl1: TTabControl
Left = 0
Top = 0
Width = 730
Height = 100
Align = alClient
TabOrder = 0
object GroupBox1: TGroupBox
Left = 8
Top = 8
Width = 713
Height = 81
Caption = 'Importes totales'
Font.Charset = DEFAULT_CHARSET
Font.Color = clActiveCaption
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
TabOrder = 0
object Label1: TLabel
Left = 16
Top = 25
Width = 74
Height = 13
Caption = 'Base imponible:'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
end
object Label3: TLabel
Left = 282
Top = 26
Width = 43
Height = 13
Caption = 'IVA (%):'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
end
object Label5: TLabel
Left = 482
Top = 26
Width = 77
Height = 13
Caption = 'Importe de IVA:'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
end
object Label7: TLabel
Left = 479
Top = 50
Width = 80
Height = 13
Caption = 'Importe total:'
Font.Charset = DEFAULT_CHARSET
Font.Color = clActiveCaption
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
end
object lblBase: TcxDBCurrencyEdit
Left = 96
Top = 21
AutoSize = False
DataBinding.DataField = 'BASEIMPONIBLE'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clWindowText
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 0
Height = 21
Width = 137
end
object cxCurrencyEdit4: TcxDBCurrencyEdit
Left = 562
Top = 22
AutoSize = False
DataBinding.DataField = 'IMPORTEIVA'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clWindowText
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 2
Height = 21
Width = 137
end
object cxCurrencyEdit5: TcxDBCurrencyEdit
Left = 562
Top = 46
AutoSize = False
DataBinding.DataField = 'IMPORTETOTAL'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clActiveCaption
Style.TextStyle = [fsBold]
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clWindowText
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 3
Height = 21
Width = 137
end
object cxCurrencyEdit2: TcxDBSpinEdit
Left = 328
Top = 22
AutoSize = False
DataBinding.DataField = 'IVA'
DataBinding.DataSource = DADataSource
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.AssignedValues.MinValue = True
Properties.DisplayFormat = ',0.00 %;-,0.00 %'
Properties.ImmediatePost = True
Properties.MaxValue = 100.000000000000000000
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 1
Height = 21
Width = 137
end
end
end
object DADataSource: TDADataSource
Left = 80
end
end

36
Base/uViewTotales.pas Normal file
View File

@ -0,0 +1,36 @@
unit uViewTotales;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics,
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls,
cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit,
ComCtrls;
type
TfrViewTotales = class(TfrViewBase)
DADataSource: TDADataSource;
GroupBox1: TGroupBox;
Label1: TLabel;
Label3: TLabel;
Label5: TLabel;
Label7: TLabel;
lblBase: TcxDBCurrencyEdit;
cxCurrencyEdit4: TcxDBCurrencyEdit;
cxCurrencyEdit5: TcxDBCurrencyEdit;
cxCurrencyEdit2: TcxDBSpinEdit;
TabControl1: TTabControl;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

46
Cliente/ProGestion.cfg Normal file
View File

@ -0,0 +1,46 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-GD
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-E"..\Output\Cliente"
-N".\"
-LE"c:\archivos de programa\borland\delphi7\Projects\Bpl"
-LN"c:\archivos de programa\borland\delphi7\Projects\Bpl"
-U"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Obras\Reglas;..\Modulos\Obras\Cliente;..\Modulos\Documentos asociados;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Recibos\Cliente;..\Modulos\Recibos\Reglas;..\Modulos\Obras Final\Cliente;..\Modulos\Obras Final\Reglas"
-O"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Obras\Reglas;..\Modulos\Obras\Cliente;..\Modulos\Documentos asociados;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Recibos\Cliente;..\Modulos\Recibos\Reglas;..\Modulos\Obras Final\Cliente;..\Modulos\Obras Final\Reglas"
-I"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Obras\Reglas;..\Modulos\Obras\Cliente;..\Modulos\Documentos asociados;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Recibos\Cliente;..\Modulos\Recibos\Reglas;..\Modulos\Obras Final\Cliente;..\Modulos\Obras Final\Reglas"
-R"c:\archivos de programa\borland\delphi7\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Obras\Reglas;..\Modulos\Obras\Cliente;..\Modulos\Documentos asociados;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Recibos\Cliente;..\Modulos\Recibos\Reglas;..\Modulos\Obras Final\Cliente;..\Modulos\Obras Final\Reglas"
-LUPluginSDK_D7R;GUISDK_D7;BaseD7;vcl;rtl;dbrtl;vclactnband;vclx;visualclx;vcldb;dxThemeD7;cxLibraryVCLD7;cxExportVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxIntl5D7
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

505
Cliente/ProGestion.dof Normal file
View File

@ -0,0 +1,505 @@
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=3
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=..\Output\Cliente
UnitOutputDir=.\
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Obras\Reglas;..\Modulos\Obras\Cliente;..\Modulos\Documentos asociados;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Recibos\Cliente;..\Modulos\Recibos\Reglas;..\Modulos\Obras Final\Cliente;..\Modulos\Obras Final\Reglas
Packages=PluginSDK_D7R;GUISDK_D7;BaseD7;vcl;rtl;dbrtl;vclactnband;vclx;visualclx;vcldb;dxThemeD7;cxLibraryVCLD7;cxExportVCLD7;cxEditorsVCLD7;cxDataD7;cxExtEditorsVCLD7;cxGridVCLD7;cxPageControlVCLD7;cxIntl5D7
Conditionals=
DebugSourceDirs=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
UsePackages=1
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=C:\Archivos de programa\Borland\Delphi7\Bin\
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=2
MinorVer=0
Release=1
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=3082
CodePage=1252
[Version Info Keys]
CompanyName=Rodax Software S.L.
FileDescription=
FileVersion=2.0.1.0
InternalName=ProGestion
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=ProGestion
ProductVersion=1.2.0.0
Comments=
[Excluded Packages]
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxTreeListVCLD7.bpl=ExpressQuantumTreeList 4 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxThemeD7.bpl=Express XP Theme Manager by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxLibraryVCLD7.bpl=Express Cross Platform Library (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExportVCLD7.bpl=Express Cross Platform Export Library (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxDataD7.bpl=ExpressDataController by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxGridVCLD7.bpl=ExpressQuantumGrid 5 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxPageControlVCLD7.bpl=Express Cross Platform PageControl (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxSchedulerVCLD7.bpl=ExpressScheduler 2 (VCL Edition) by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxsbD7.bpl=ExpressSideBar by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxComnD7.bpl=ExpressCommonLibrary by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarD7.bpl=ExpressBars by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarDBNavD7.bpl=ExpressBars DBNavigator by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtDBItemsD7.bpl=ExpressBars extended DB items by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxBarExtItemsD7.bpl=ExpressBars extended items by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxDockingD7.bpl=ExpressDocking Library by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxLayoutControlD7.bpl=ExpressLayout Control by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxNavBarD7.bpl=ExpressNavBar by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxGDIPlusD7.bpl=ExpressGDI+ Library by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\cxVerticalGridVCLD7.bpl=ExpressVerticalGrid (VCL Edition) by Developer Express Inc.
c:\archivos de programa\borland\delphi7\Projects\Bpl\RodaxFrameD7.bpl=Frames Acana (D7)
C:\WINDOWS\system32\dclShX_Namespace_V3D7.bpl=(untitled)
C:\WINDOWS\system32\vclShX_Namespace_v3D7.bpl=(untitled)
[HistoryLists\hlDebugSourcePath]
Count=2
Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
Item1=.\
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=4
Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Obras\Reglas;..\Modulos\Obras\Cliente;..\Modulos\Documentos asociados;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Recibos\Cliente;..\Modulos\Recibos\Reglas;..\Modulos\Obras Final\Cliente;..\Modulos\Obras Final\Reglas
Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\Reglas;..\..\Obras\Cliente;..\..\Facturas de cliente\Cliente;..\..\Contactos\Cliente;..\..\Documentos asociados;..\..\Recibos\Cliente
Item2=$(DELPHI)\Lib\Debug;E:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\GUISDK\lib\d7;..\..\Contactos\Cliente;..\..\Documentos asociados;..\Reglas
Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\Reglas
[HistoryLists\hlUnitOutputDirectory]
Count=1
Item0=.\
[HistoryLists\hlOutputDirectorry]
Count=2
Item0=..\Output\Cliente
Item1=..\Output\Servidor
[HistoryLists\hlBPLOutput]
Count=1
Item0=..\..\..\Output\Cliente
[HistoryLists\hlDCPOutput]
Count=1
Item0=.\
[Exception Log]
EurekaLog Version=519
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
Freeze Message=The application seems to be frozen.
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
Show TerminateBtn=1
TerminateBtn Operation=1
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=1
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesSection=1
loSaveCPUSection=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soExcDate=1
soExcAddress=1
soExcModule=1
soExcType=1
soExcMessage=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpUser=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=1
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndCompressAllFiles=0
edoShowExceptionDialog=1
edoSendEmailChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=0
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoShowProcedureOffset=0
boActivateCrashDetection=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtDialog_Caption=1
mtDialog_Caption0="Error."
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_CustomDataCaption=1
mtDialog_CustomDataCaption0="Other"
Count mtDialog_CustomDataHeader=1
mtDialog_CustomDataHeader0="Other Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="%26OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="%26Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="%26Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="%26Details"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="%26Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="%26Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="%26Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModule=1
mtLog_ExcModule0="Module"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpUser=1
mtLog_CmpUser0="User"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="%26OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."

20
Cliente/ProGestion.dpr Normal file
View File

@ -0,0 +1,20 @@
program ProGestion;
uses
Forms,
uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal},
uMenuUtils in 'uMenuUtils.pas',
uSplash in 'uSplash.pas' {SplashScreen},
uAcercaDe in 'uAcercaDe.pas' {fAcercaDe};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'ProGestion';
Application.CreateForm(TfPantallaPrincipal, fPantallaPrincipal);
Application.CreateForm(TfAcercaDe, fAcercaDe);
Application.Run;
Application.Terminate;
end.

14
Cliente/ProGestion.drc Normal file
View File

@ -0,0 +1,14 @@
/* VER150
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
STRINGTABLE
BEGIN
END

14
Cliente/ProGestion.drc2 Normal file
View File

@ -0,0 +1,14 @@
/* VER150
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
STRINGTABLE
BEGIN
END

BIN
Cliente/ProGestion.res Normal file

Binary file not shown.

BIN
Cliente/uAcercaDe.ddp Normal file

Binary file not shown.

1139
Cliente/uAcercaDe.dfm Normal file

File diff suppressed because it is too large Load Diff

60
Cliente/uAcercaDe.pas Normal file
View File

@ -0,0 +1,60 @@
unit uAcercaDe;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, JvGIF, ExtCtrls, JvExControls, JvComponent, JvGradient, StdCtrls,
uHostManager;
type
TfAcercaDe = class(TForm)
JvGradient1: TJvGradient;
Panel1: TPanel;
Image1: TImage;
Bevel1: TBevel;
bAceptar: TButton;
memModulos: TMemo;
procedure FormShow(Sender: TObject);
private
FHostManager: THostManager;
public
property HostManager : THostManager read FHostManager write FHostManager;
end;
var
fAcercaDe: TfAcercaDe;
implementation
{$R *.dfm}
uses JclFileUtils;
procedure TfAcercaDe.FormShow(Sender: TObject);
var
i : integer;
begin
memModulos.Lines.Clear;
with TJclFileVersionInfo.Create(Application.ExeName) do
begin
memModulos.Lines.Add(ProductName + ' - Versión ' + ProductVersion);
memModulos.Lines.Add(CompanyName);
memModulos.Lines.Add('');
memModulos.Lines.Add('Se autoriza el uso de este programa a:');
memModulos.Lines.Add('');
end;
if Assigned(FHostManager) then
begin
memModulos.Lines.Add('');
memModulos.Lines.Add('');
memModulos.Lines.Add('Módulos disponibles:');
for i := 0 to (HostManager.ModulesCount - 1) do
memModulos.Lines.Add(' - ' + FHostManager.Modules[i].Module.ModuleName +
' - v. ' + FHostManager.Modules[i].Module.Version);
end;
end;
end.

249
Cliente/uMenuUtils.pas Normal file
View File

@ -0,0 +1,249 @@
unit uMenuUtils;
interface
uses
Controls, Forms, ImgList, ActnList, JvPageList, JvNavigationPane, Menus;
procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1);
procedure SortMenuByTag(Menu : TMainMenu);
function CreatePageNavPane(const APageList : TJvCustomPageList;
ACaption : String; AAction : TAction; AImageIndex : Integer): Integer;
procedure PopulateNavPagePane(APanePage : TJvNavPanelPage;
AMenuItem: TMenuItem; AImageList : TCustomImageList;
AStyleManager : TJvNavPaneStyleManager); overload;
procedure PopulateNavPagePane(AParentControl : TWinControl;
AMenuItem: TMenuItem; AImageList : TCustomImageList;
AStyleManager : TJvNavPaneStyleManager); overload;
function getSubMenu(Const pMenu: TMainMenu; Const pCaption: String): TMenuItem;
procedure copiarItemsMenu(MenuDestino: TMenuItem; pMenu: TMenuItem);
implementation
uses
ComCtrls, Classes, Math, TBXDkPanels, StrUtils, SysUtils,
ExtCtrls;
type
TAssignCallback = procedure(Source, Dest: TMenuItem);
procedure AssignMenus(Source, Dest: TMenuItem; AImageIndex : Integer;
AssignProc: TAssignCallback);
var
I: Integer;
Item: TMenuItem;
begin
for I := 0 to Source.Count - 1 do
begin
Item := Dest.Find(Source.Items[I].Caption);
if Item = NIL then
begin
Item := TMenuItem.Create(Dest);
Dest.Add(Item);
if Assigned(AssignProc) then
begin
AssignProc(Source.Items[I], Item);
if (Source.Items[I].ImageIndex >= 0) then
Item.ImageIndex := Source.Items[I].ImageIndex + AImageIndex;
end;
end;
AssignMenus(Source.Items[I], Item, AImageIndex, AssignProc);
end;
end;
procedure AssignMenuItem(Source, Dest: TMenuItem);
begin
Dest.Caption := Source.Caption;
Dest.Hint := Source.Hint;
Dest.Checked := Source.Checked;
Dest.GroupIndex := Source.GroupIndex;
Dest.Tag := Source.Tag;
Dest.Action := Source.Action;
Dest.ImageIndex := Source.ImageIndex;
Dest.ShortCut := Source.ShortCut;
Dest.RadioItem := Source.RadioItem;
Dest.AutoCheck := Source.AutoCheck;
Dest.AutoHotkeys := Source.AutoHotkeys;
Dest.AutoLineReduction := Source.AutoLineReduction;
Dest.Break := Source.Break;
Dest.Default := Source.Default;
Dest.Enabled := Source.Enabled;
Dest.HelpContext := Source.HelpContext;
Dest.Visible := Source.Visible;
end;
procedure SortMenuItems(MenuItems : TMenuItem);
function CompareTags(Item1, Item2: Pointer): Integer;
begin
Result := CompareValue(TMenuItem(Item1).Tag, TMenuItem(Item2).Tag);
end;
var
I: Integer;
AList : TList;
begin
AList := TList.Create;
try
for I := 0 to MenuItems.Count - 1 do
begin
SortMenuItems(MenuItems.Items[i]);
AList.Add(Pointer(MenuItems.Items[i]));
end;
AList.Sort(@CompareTags);
for i := 0 to AList.Count - 1 do
TMenuItem(AList.Items[i]).MenuIndex := i;
finally
AList.Free;
end;
end;
procedure MergeMenus(Source, Dest: TMainMenu; ImageIndex : Integer = -1);
begin
AssignMenus(Source.Items, Dest.Items, ImageIndex, AssignMenuItem);
end;
procedure SortMenuByTag(Menu : TMainMenu);
begin
SortMenuItems(Menu.Items);
end;
function CreatePageNavPane(const APageList : TJvCustomPageList;
ACaption : String; AAction : TAction; AImageIndex : Integer): Integer;
var
APanePage: TJvNavPanelPage;
begin
Result := 0;
APanePage := TJvNavPanelPage.Create(Application);
with APanePage do
begin
Caption := StringReplace(ACaption, '&', '', []);
Action := AAction;
PageList := APageList;
Iconic := False;
ImageIndex := AImageIndex;
Result := PageIndex;
end;
end;
procedure PopulateNavPagePane(APanePage : TJvNavPanelPage;
AMenuItem: TMenuItem; AImageList : TCustomImageList;
AStyleManager : TJvNavPaneStyleManager);
var
APanel : TScrollBox;
ItemIndex : Integer;
begin
with TJvNavPanelDivider.Create(Application) do
begin
Parent := APanePage;
Caption := 'Accesos directos';
ParentStyleManager := True;
Align := alTop;
end;
APanel := TScrollBox.Create(Application);
with APanel do
begin
BevelEdges := [];
BorderStyle := bsNone;
Parent := APanePage;
ParentColor := True;
ParentFont := True;
Align := alClient;
end;
for ItemIndex := 0 to (AMenuItem.Count - 1) do
begin
if AMenuItem[ItemIndex].Caption <> '-' then
with TJvNavPanelButton.Create(Application) do
begin
Parent := APanel;
Align := alTop;
Tag := AMenuItem[ItemIndex].Tag;
Caption := AMenuItem[ItemIndex].Caption;
Action := AMenuItem[ItemIndex].Action;
Images := AImageList;
ImageIndex := AMenuItem[ItemIndex].ImageIndex;
Height := 32;
StyleManager := AStyleManager;
Invalidate;
end;
end;
end;
function getSubMenu(const pMenu: TMainMenu; const pCaption: String): TMenuItem;
var
i: Integer;
begin
i:=0;
while ((i < pMenu.Items.Count) and (StringReplace(pMenu.Items[i].Caption,'&','',[]) <> pCaption)) do
inc(i);
Result := pMenu.Items[i];
end;
procedure CopiarItemsMenu(MenuDestino, pMenu: TMenuItem);
var
i: Integer;
Item: TMenuItem;
begin
for i := 0 to (pMenu.Count - 1) do
begin
Item := TMenuItem.Create(MenuDestino);
Item.Caption := pMenu.Items[i].Caption;
Item.Action := pMenu.Items[i].Action;
MenuDestino.Add(Item);
end;
end;
procedure PopulateNavPagePane(AParentControl : TWinControl;
AMenuItem: TMenuItem; AImageList : TCustomImageList;
AStyleManager : TJvNavPaneStyleManager);
var
ItemIndex : Integer;
AHeight : Integer;
begin
AHeight := 0;
for ItemIndex := 0 to (AMenuItem.Count - 1) do
begin
if AMenuItem[ItemIndex].Caption <> '-' then
with TTBXLink.Create(Application) do
begin
Parent := AParentControl;//APanel;
Align := alTop;
ParentFont := True;
Tag := AMenuItem[ItemIndex].Tag;
Caption := AMenuItem[ItemIndex].Caption;
Action := AMenuItem[ItemIndex].Action;
Images := AImageList;
ImageIndex := AMenuItem[ItemIndex].ImageIndex;
if ItemIndex = 0 then
Margins.Top := 15
else
Margins.Top := 8;
Margins.Bottom := 8;
Margins.Left := 10;
Margins.Right := 10;
Height := 18;
Invalidate;
AHeight := AHeight + Margins.Top + Margins.Bottom + Height;
end;
end;
AParentControl.Height := AHeight;
AParentControl.Invalidate;
end;
end.

Binary file not shown.

View File

@ -0,0 +1,405 @@
object fPantallaPrincipal: TfPantallaPrincipal
Left = 411
Top = 210
Width = 793
Height = 560
Caption = 'Pantalla principal'
Color = clWindow
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
Menu = HostMenu
OldCreateOrder = False
Position = poScreenCenter
WindowState = wsMaximized
OnCreate = FormCreate
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 13
object pnlContenido: TTBXAlignmentPanel
Left = 0
Top = 0
Width = 785
Height = 487
ParentColor = True
Align = alClient
Margins.Left = 5
Margins.Top = 5
Margins.Right = 5
Margins.Bottom = 5
TabOrder = 0
object JvSyncSplitter1: TJvSyncSplitter
Left = 210
Top = 5
Width = 5
Height = 477
ResizeStyle = rsPattern
end
object JvNavigationPane: TJvNavigationPane
Left = 5
Top = 5
Width = 205
Height = 477
ActivePage = pagInicio
Align = alLeft
AutoHeaders = True
Background.Stretch = False
Background.Proportional = False
Background.Center = False
Background.Tile = False
Background.Transparent = False
ButtonHeight = 32
Colors.ButtonColorFrom = clWhite
Colors.ButtonColorTo = 12435133
Colors.ButtonHotColorFrom = 13009540
Colors.ButtonHotColorTo = 13009540
Colors.ButtonSelectedColorFrom = 14602190
Colors.ButtonSelectedColorTo = 14602190
Colors.SplitterColorFrom = 13026246
Colors.SplitterColorTo = 9211532
Colors.DividerColorFrom = 15725551
Colors.DividerColorTo = 13026246
Colors.HeaderColorFrom = 8684164
Colors.HeaderColorTo = 8684164
Colors.FrameColor = 8684676
Colors.ToolPanelHeaderColorFrom = clWhite
Colors.ToolPanelHeaderColorTo = 12435133
StyleManager = dmBase.StyleManager
ParentStyleManager = False
LargeImages = ModulesLargeImageList
MaximizedCount = 0
NavPanelFont.Charset = DEFAULT_CHARSET
NavPanelFont.Color = clWindowText
NavPanelFont.Height = -13
NavPanelFont.Name = 'Tahoma'
NavPanelFont.Style = []
NavPanelHotTrackFont.Charset = DEFAULT_CHARSET
NavPanelHotTrackFont.Color = clWindow
NavPanelHotTrackFont.Height = -13
NavPanelHotTrackFont.Name = 'Tahoma'
NavPanelHotTrackFont.Style = []
SmallImages = ModulesSmallImageList
object pagInicio: TJvNavPanelPage
Left = 0
Top = 0
Width = 203
Height = 404
Background.Stretch = False
Background.Proportional = False
Background.Center = False
Background.Tile = False
Background.Transparent = False
Caption = 'Inicio'
Iconic = True
ImageIndex = 0
end
end
object pnlBorde: TJvXPContainer
Left = 215
Top = 5
Width = 565
Height = 477
BoundColor = clActiveCaption
BoundLines = [blLeft, blTop, blRight, blBottom]
Caption = 'pnlBorde'
Align = alClient
object pnlMain: TTBXAlignmentPanel
Left = 1
Top = 1
Width = 563
Height = 475
Align = alClient
Color = clWindow
TabOrder = 0
object lblBienvenido: TLabel
Left = 8
Top = 8
Width = 210
Height = 54
Caption = 'Bienvenido'
Font.Charset = DEFAULT_CHARSET
Font.Color = clHighlight
Font.Height = -43
Font.Name = 'Trebuchet MS'
Font.Style = []
ParentFont = False
Transparent = True
end
object Label22: TLabel
Left = 116
Top = 52
Width = 208
Height = 22
Caption = 'Gesti'#243'n de obras y proyectos'
Font.Charset = DEFAULT_CHARSET
Font.Color = clGray
Font.Height = -16
Font.Name = 'Trebuchet MS'
Font.Style = []
ParentFont = False
Transparent = True
end
end
end
end
object StatusBar: TStatusBar
Left = 0
Top = 487
Width = 785
Height = 19
Panels = <>
end
object XPManifest1: TXPManifest
Left = 240
Top = 32
end
object GeneralActionList: TActionList
Left = 248
Top = 149
object actSalir: TAction
Category = 'Archivo'
Caption = '&Salir'
OnExecute = actSalirExecute
end
object actConexion: TAction
Category = 'Archivo'
Caption = 'Configurar conexi'#243'n'
OnExecute = actConexionExecute
end
object actAcerca: TAction
Caption = 'Acerca de...'
OnExecute = actAcercaExecute
end
end
object ModulesSmallImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300004E2000004E2001167D99DE000001504944415478DA
63FCFFFF3F0325801197C4840C067D207501CA352898C17071060303D8B60C24
7D8CF8343B381880F9070E80CD31E098C170E11990D184CF0064CD0776401CE0
E0610036E42AD009CF81FC2DB80C40D7AC9F70082C7E71851D03580C6808D02B
28FA18F16976B0B78578E1E061144360610237009F6610F8F9EB0FC3F1E3C7B1
1AC2488C6618BE7AF93C862120032009E107035ECD3F80F817106F3F7886E1EF
314FCC74E01391F57FF3F2A970898999A811E453F91A6CD0BEE31718A6F75533
5CBB708E11A701208533F25919321212C0FC190B1630B8163F07BBE2D8D92BF8
0D8039797E2927D880EFDF3F322C5CB99EC136F73158FCECE51BB80D58B37022
DC8065D5BC0C617ECE0C2B0FBC6660FC7489C12CFD3E58FCCACD3BB80D5838A3
9B61D92648E20105949F9B29C3B3E7D718CE5CFECAC06CB51D1E1E380DB877E3
0403B1006E00A5D919001742F4296979DC590000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001DD4944415478DA
63FCFFFF3F032580916203C064C305B24CF95FAFCF0837A0C35205220834EAD7
EFFF0C9FBEFD67F8FAFD3FC3C7AF0C0C9F81ECF79F80625FFF33FCFC0DD17C4B
F811AA01E8A63771DC6278F9EC21982D2E25CF50F7430DB70B262FDAFE3F27D6
032E9193DFC3905C94C0F0879F9FE1E73F26863F9F3F33ACE99BC3505797CEF0
E7EF3F300E48AC6638B7631AAA018585850C4212560C5C867A0CF9AE6A0C1377
DF821B6A66A4C87060EE4686772F8E3138F9A730D4774CC53400667B5C431EC3
CF1F6C0C1F7F32300873323030333130BCFCC5C0B0B3AB87A100E8B2EBF75F62
3700E482DFFFA41914BD7D19A494D4199EDDBB097781B7853AC394DA1E0656A6
A7D85D901EE90AF65B69D94486D0A21486F78C020CB2DC0C0C826C0C0C124057
FC03C2FEDEB50CBE7E560C8F5F7EC0342029D489E1FD4267864B12C50C5BF7DD
6188ACCE663871E111D8F6201B1586DECA7EB0ED2080D50581DF5A19441C6218
2EED39CD7081C182E1E2AD0F70E783A2D1DBD792E1F79FBF0CBF7FFF6578FFF9
3BAA014F66D8FC07697EBA6D1DC39633EC0CE71F9F66086ADA833715C20D8069
7EB97723C386A32C60CD17B902894ACA60038A3352FEAB72BE65F8F9F20F58F3
82C32F1889CE0BC0740F560C32E4EDD52D2469861900008660FEE14240093000
00000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end>
Left = 259
Top = 373
Bitmap = {}
end
object ModulesActionList: TActionList
Left = 291
Top = 372
end
object ModulesLargeImageList: TPngImageList
Height = 24
Width = 24
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F8000000097048597300004E2000004E2001167D99DE000002D14944415478DA
B5965F4853511CC7BF238A120DD9437F1E621B0D7D547AE8C18712F1DF42D1C0
87081F7C08121FFA4744B190A0B70211A2B208315965A0CDE58386A5CBD61FC5
6C2B373633B76BC66C19AD6DEA74BBF776EECDDDEEDDBDFBF390077E9CB373EF
F97CCEF9FDCE85A95896C56636D5A60BB279A9BD1945A4B3274D179FE980831B
3C849E0D61969FFC49C228E2661424E0A5A5C59279ABD52E481202864C2C9168
CD5620867BBD7E84C32BFC7C5E5E0E74BABD82645787DE1E248265F2E307896B
D908C4709F6F910F71D36AF7F0C1497698B6221C896171E3045D990462F89CEF
17E67D140AEA86A056ABF9E7C160086E7339343A2D749A7C5EE2370154040890
E723E90492B4CC8741CD7DE1E186EA2AC97BC3CF47E1EA2B8376BF1EDA7DB9BC
C4DA0738498E3EA71248764E919D7B2914127875129C21579BA619BC181985C7
5C213949A705F8E8571028E5BCB0EE1981572AC2E3711A71D2DB6C36CCF45748
6A02D1155629DD168AFAAE989664381F710693136F3163A98446B35B72BB3889
4A69E79AAA27A8AF3F9A153C31FE303106EF609DEC249C8015E7BC80A4C59021
2DC9707AA3F738A730FBB44A52135E9000A52B6826384DFF7DEE763AB0306410
D60B45AE39D6C20E3CBA29812716769CDEA6F831D61A9764F2D793D3B8DD6684
CB3EA54A2B10EFEADEB9ED686E6AFA772A86C1DDEE6E1CB918909D6CDCEECA2C
10C3B9455D17720401CB32585B5B46574F1F2ACFFB65697BFFC99D5E900CE77A
D3A55C41108D86B1BA1AC263CB30CACE7E93D5C4E19A492D309B6EC8E05CF45C
DE89138DC7118B45115909612918C5CB57361C3AF55556F069CF6C6A41EFFD76
199C1BF75EC94763432DD97D0881DF71B40E14A13CFF164A5A28099C6B69053D
9D6D3238D7F75F55A3A1E6309F1E2ED663AB181B5FC0C1935E093CA3A0FBCE75
3CB08CC9AE23FDC6809AF203041EE14FB11E5BC18423842D25838AD737A560CE
FD0EFFAB0982CDFE57F107B61AA443A57B28CB0000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
F80000000970485973000017120000171201679FD252000003E74944415478DA
D59559685C5518C77FB364EECCDCE9EC596996491BC618432A28246E041B4DEB
065553445AA122218D55093E0982425F7C9354903EA9141F24421FB4D4D6B6D4
A549C198496C163B314D4D3219C634D3244C3B6B26D773679AB4433241213E78
E0DCE570EEFFF76DE7BB1A4551F82F87E6FF0F587BFA70684B49CA070D9A7580
8F9A76AEDBB89C8678522196C8DEA37145DC212ADEA3B1EC7B340EB7E377ED1B
774DFF33407A458826EE8AC7EE80D4793B96155601AAF8BDEE8F3BF300D699BF
220869616E4A282D8BFB4A5A751EB47A2890C43482AE202BA3D1E47CBA0EF0C9
89EF942307F7AC6D48A552CC06E7189F986572FA16716539B39E5C4AD3505726
F422B88BEC58AD0E24A3118D56875A2F2BC2A87DAFBF8FEFCCA7F901AAF8E464
80A1DF4348F6424AAADD388A2C1408CB171723F80726882F452971E8902D5A01
2AC66CB608A886ABD76FF0DED1EEFC80AEAE2EE2F138EED28778F2B956763D50
CA673F4CE4B8BFFB112F17FAFC38E7FE62D8779648640E93C9844EA763CFCB1D
9B0392C924BF0E8C31BD20B3BBC543A141CF9248EA4F419813A9D06A411261AF
7289244F0519EBBD4C5585134FF50E0C46137F06173607747676A22DA8C6F3EC
F399F5B6262F5F5FF6E778B0C3EBE59A3FBBA64C8ED27FF1240E8705A3C8C5DE
B6C39B0382C1203D674678F1600B7F2C6A9909835EEC728AA2A9B18BA2128914
91E05A040CB2C29593E7D0256E50DF5087C3E922148EE607BC79A095F6F676EA
9ADA486FAFCCACBB2ABC84A7733DD8FFA8979EDEEC9A2E30C5A5D327B0DB8DC8
B2CC33FB3BF3033A5E7D9A5028C4573DBD3CDCFA047265315745EC4B65281753
2D5497887F914978229E87C31166468204FCFD548BB0399D6E1622C9FC80432F
35F3CEDB47588A2478EA85B78814DAA8ABF7323A9CEB41578B978FCFFBA991D2
4C8D8E3034F03D7ABD2E53497973D0FDF92965EFE3F7633EFF1AC77C0F5254DF
4C794D35B58DB5CCA7A54CDB2832804358AF881CCC4ECED17BFA9238E0612A3C
15949555A03748A26DA436061CEDFE5239241DC7DD7C80D8E059CE056AF02D96
73DFAE46E6ADDB723CF0C806C67FF1914ECD3332F823369B15499244096BF39F
83C0F1C714553CFDDBB78C5D49D1775D62D65285697B1546931BC9EC125563E0
6620245AC22D2C36232565A5B80B4B44AB9045ABD08A36A19048A5D70356C593
03DFE01F5BCE880FCEF4636D3C4CA567A70098C5E98E914A264489EA31CB16AC
363B168B95021116F50467C4EE34BC1CC04696ABE2176E7A916DC5184CDB328D
0C6585B59E2C84548B351B74D1D5B106E83BB64FA975A598184BAE897FF17368
E3AFFEC558FD156BDEED78437945FC81B6523C07A05E544878F4D49689DF0BF8
1B2694FBE012B66F2C0000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end>
Left = 227
Top = 373
Bitmap = {}
end
object HostMenu: TMainMenu
Images = ModulesSmallImageList
Left = 243
Top = 76
object Archivo1: TMenuItem
Tag = -9000
Caption = 'Archivo'
object Configurarconexin1: TMenuItem
Tag = 3
Action = actConexion
end
object N1: TMenuItem
Tag = 5
Caption = '-'
end
object Salir1: TMenuItem
Tag = 6
Action = actSalir
end
end
object Ver1: TMenuItem
Tag = 9001
Caption = 'Ver'
Enabled = False
end
object Ayuda1: TMenuItem
Tag = 9002
Caption = 'Ayuda'
object Acercade1: TMenuItem
Action = actAcerca
end
end
end
object HostManager: THostManager
MainMenu = HostMenu
OnAfterLoad = HostManagerAfterLoad
Left = 276
Top = 47
end
object StyleManagerButtons: TJvNavPaneStyleManager
Colors.ButtonColorFrom = clWindow
Colors.ButtonColorTo = clWindow
Colors.ButtonHotColorFrom = 13009540
Colors.ButtonHotColorTo = 13009540
Colors.ButtonSelectedColorFrom = 14602190
Colors.ButtonSelectedColorTo = 14602190
Colors.ButtonSeparatorColor = clWindow
Colors.SplitterColorFrom = clWindow
Colors.SplitterColorTo = clWindow
Colors.DividerColorFrom = clWindow
Colors.DividerColorTo = clWindow
Colors.HeaderColorFrom = clWindow
Colors.HeaderColorTo = clWindow
Colors.FrameColor = clWindow
Colors.ToolPanelHeaderColorFrom = clWindow
Colors.ToolPanelHeaderColorTo = clWindow
Fonts.NavPanelFont.Charset = DEFAULT_CHARSET
Fonts.NavPanelFont.Color = clWindowText
Fonts.NavPanelFont.Height = -11
Fonts.NavPanelFont.Name = 'Tahoma'
Fonts.NavPanelFont.Style = []
Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET
Fonts.NavPanelHotTrackFont.Color = clWindow
Fonts.NavPanelHotTrackFont.Height = -11
Fonts.NavPanelHotTrackFont.Name = 'Tahoma'
Fonts.NavPanelHotTrackFont.Style = []
Fonts.DividerFont.Charset = DEFAULT_CHARSET
Fonts.DividerFont.Color = clWindowText
Fonts.DividerFont.Height = -11
Fonts.DividerFont.Name = 'Tahoma'
Fonts.DividerFont.Style = []
Fonts.HeaderFont.Charset = DEFAULT_CHARSET
Fonts.HeaderFont.Color = clWindow
Fonts.HeaderFont.Height = -16
Fonts.HeaderFont.Name = 'Arial'
Fonts.HeaderFont.Style = []
Theme = nptCustom
Left = 176
Top = 504
end
object JvFormStorage: TJvFormStorage
AppStorage = JvAppRegistryStorage
AppStoragePath = 'fPantallaPrincipal\'
VersionCheck = fpvcNocheck
StoredValues = <>
Left = 472
Top = 80
end
object JvAppRegistryStorage: TJvAppRegistryStorage
StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y'
StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N'
Root = 'Software\%APPL_NAME%'
SubStorages = <>
Left = 504
Top = 80
end
object ApplicationEvents: TApplicationEvents
OnActionExecute = ApplicationEventsActionExecute
Left = 248
Top = 190
end
end

View File

@ -0,0 +1,587 @@
unit uPantallaPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, XPMan, uGUIBase, uCustomEditor,
JvNavigationPane, JvExExtCtrls, JvComponent, Menus, ImgList,
PngImageList, ActnList, uHostManager, JvExControls, JvPageList, JvPanel,
TBX, TB2Item, TB2Dock, TB2Toolbar, ComCtrls, TBXToolPals, TBXLists,
TBXExtItems, TB2ExtItems, TBXMDI, TBXDkPanels, JvSplitter, JvSyncSplitter,
JvXPBar, JvXPCore, JvXPContainer, JvLookOut, JvOutlookBar, Buttons,
JvExButtons, JvBitBtn, JvSpeedButton, JvExStdCtrls, JvButton, JvCtrls,
JvStartMenuButton, JvTransparentButton, JvExComCtrls, JvListView,
JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvBaseDlg,
JvJVCLAboutForm, AppEvnts, JvWaitingGradient, JvGradient,
cxControls, JvComponentBase;
type
TfPantallaPrincipal = class(TForm, IHostForm)
GeneralActionList: TActionList;
ModulesSmallImageList: TPngImageList;
XPManifest1: TXPManifest;
actSalir: TAction;
ModulesActionList: TActionList;
ModulesLargeImageList: TPngImageList;
HostMenu: TMainMenu;
Archivo1: TMenuItem;
Ayuda1: TMenuItem;
pnlContenido: TTBXAlignmentPanel;
JvNavigationPane: TJvNavigationPane;
JvSyncSplitter1: TJvSyncSplitter;
StatusBar: TStatusBar;
HostManager: THostManager;
Salir1: TMenuItem;
pagInicio: TJvNavPanelPage;
StyleManagerButtons: TJvNavPaneStyleManager;
JvFormStorage: TJvFormStorage;
JvAppRegistryStorage: TJvAppRegistryStorage;
ApplicationEvents: TApplicationEvents;
N1: TMenuItem;
actConexion: TAction;
Configurarconexin1: TMenuItem;
actAcerca: TAction;
Acercade1: TMenuItem;
Ver1: TMenuItem;
pnlBorde: TJvXPContainer;
pnlMain: TTBXAlignmentPanel;
lblBienvenido: TLabel;
Label22: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure HostManagerAfterLoad(Sender: TObject; AModuleInfo: TModuleInfo);
procedure Salir1Click(Sender: TObject);
procedure actSalirExecute(Sender: TObject);
procedure ApplicationEventsActionExecute(Action: TBasicAction;
var Handled: Boolean);
procedure actAcercaExecute(Sender: TObject);
procedure actAdministracionExecute(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure actConexionExecute(Sender: TObject);
private
FContenido : TCustomEditor;
// FStartDefaultAction : TBasicAction;
FActivePanelSubMenuEditor : TPanel;
procedure ShowEmbedded(AEditor : ICustomEditor);
function FindNavPanePage(ACaption : String) : Integer;
procedure InitializeUI;
procedure OnThemeChange(Sender: TObject);
procedure CopyImages(const SrcList: TPngImageList; var DstList: TPngImageList;
out Index, Count: Integer);
procedure RegisterModule(AModuleInfo : TModuleInfo);
procedure ExecuteActionMenu(Sender : TObject);
protected
function GetWorkPanel : TWinControl;
public
function IsShortcut(var Message: TWMKey): Boolean; override;
procedure OnWorkPanelChanged(AEditor : ICustomEditor);
property WorkPanel : TWinControl read GetWorkPanel;
constructor Create(AOwner: TComponent); override;
end;
var
fPantallaPrincipal: TfPantallaPrincipal;
implementation
uses
PNGImage, uModuleController, uDataModuleBase, Math, uMenuUtils,
uSplash, uAcercaDe, uViewBase, uEditorUtils;
{$R *.dfm}
{
***************************** TfPantallaPrincipal ******************************
}
procedure TfPantallaPrincipal.CopyImages(const SrcList: TPngImageList; var DstList:
TPngImageList; out Index, Count: Integer);
begin
Index := -1;
Count := 0;
if not Assigned(SrcList) or not Assigned(DstList) then
Exit;
DstList.BeginUpdate;
try
Index := DstList.Count;
DstList.AddImages(SrcList);
Count := SrcList.Count;
finally
DstList.EndUpdate;
end;
end;
procedure TfPantallaPrincipal.FormCreate(Sender: TObject);
var
ACursor : TCursor;
begin
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
Caption := Application.Title + ' ' + dmBase.darVersion;
SplashScreen := TSplashScreen.Create(Application) ;
SplashScreen.Show;
SplashScreen.Update;
Application.ProcessMessages;
JvNavigationPane.StyleManager := dmBase.StyleManager;
dmBase.OnThemeChange := Self.OnThemeChange;
Self.OnThemeChange(Self); // Forzar el refresco de los colores del tema activo
SplashScreen.Update;
with HostManager do
begin
BPLPath := ExtractFilePath(Application.ExeName) + '\';
MainForm := Self;
Application.ProcessMessages;
HostManager.LoadModule('Contactos.bpl');
HostManager.LoadModule('Obras.bpl');
HostManager.LoadModule('FacturasCliente.bpl');
HostManager.LoadModule('Recibos.bpl');
HostManager.LoadModule('ObrasFinal.bpl');
end;
InitializeUI;
Application.ProcessMessages;
Visible := True;
finally
SplashScreen.Update;
SplashScreen.Hide;
SplashScreen.Free;
Screen.Cursor := ACursor;
end;
end;
procedure TfPantallaPrincipal.FormDestroy(Sender: TObject);
begin
HostManager.UnloadModules;
end;
procedure TfPantallaPrincipal.HostManagerAfterLoad(Sender: TObject;
AModuleInfo: TModuleInfo);
begin
RegisterModule(AModuleInfo);
end;
procedure TfPantallaPrincipal.RegisterModule(AModuleInfo : TModuleInfo);
var
AModule: TModuleController;
AModuleMenu : TMainMenu;
AIndex: Integer;
ACount: Integer;
begin
AModule := AModuleInfo.Module;
SplashScreen.Texto := 'Cargando ''' + AModule.ModuleName + '''...';
CopyImages(TPngImageList(AModule.SmallImages), TPngImageList(ModulesSmallImageList), AIndex, ACount);
CopyImages(TPngImageList(AModule.LargeImages), TPngImageList(ModulesLargeImageList), AIndex, ACount);
if Assigned(AModule.ModuleMenu) then
begin
AModuleMenu := AModule.ModuleMenu;
MergeMenus(AModuleMenu, Self.Menu, AIndex);
end;
end;
procedure TfPantallaPrincipal.Salir1Click(Sender: TObject);
begin
Close;
end;
procedure TfPantallaPrincipal.actSalirExecute(Sender: TObject);
begin
Close;
end;
procedure TfPantallaPrincipal.OnThemeChange(Sender: TObject);
begin
LockWindowUpdate(Handle);
try
Color := dmBase.StyleManager.Colors.DividerColorTo;
pnlBorde.Color := dmBase.StyleManager.Colors.FrameColor;
with StyleManagerButtons do
begin
Colors.ButtonColorFrom := clWindow;
Colors.ButtonColorTo := clWindow;
Colors.ButtonSeparatorColor := clWindow;
Colors.SplitterColorFrom := clWindow;
Colors.SplitterColorTo := clWindow;
Colors.DividerColorFrom := clWindow;
Colors.DividerColorTo := clWindow;
Colors.HeaderColorFrom := clWindow;
Colors.HeaderColorTo := clWindow;
Colors.FrameColor := clWindow;
Colors.ToolPanelHeaderColorFrom := clWindow;
Colors.ToolPanelHeaderColorTo := clWindow;
Colors.ButtonHotColorFrom := dmBase.StyleManager.Colors.ButtonHotColorFrom;
Colors.ButtonHotColorTo := dmBase.StyleManager.Colors.ButtonHotColorTo;
Colors.ButtonSelectedColorFrom := dmBase.StyleManager.Colors.ButtonSelectedColorFrom;
Colors.ButtonSelectedColorTo := dmBase.StyleManager.Colors.ButtonSelectedColorTo;
end;
finally
LockWindowUpdate(0);
Refresh;
end;
end;
function TfPantallaPrincipal.GetWorkPanel: TWinControl;
begin
Result := pnlMain;
end;
procedure TfPantallaPrincipal.InitializeUI;
function EsUnModulo(AMenuItem : TMenuItem) : Boolean;
begin
Result := (AMenuItem.Tag >= 0) and (AMenuItem.Tag < 9000)
end;
{var
i : Integer;
AMenuItem : TMenuItem;
APageIndex : Integer;
begin
SortMenuByTag(Menu);
for i := 0 to Menu.Items.Count - 1 do
begin
AMenuItem := Menu.Items[i];
if not EsUnModulo(AMenuItem) then
Continue;
APageIndex := 0;
PopulateNavPagePane(JvNavigationPane.NavPages[APageIndex], AMenuItem,
ModulesSmallImageList, StyleManagerButtons);
// Elimino la imagen que tiene el menú porque queda feo.
AMenuItem.ImageIndex := -1;
end;
JvNavigationPane.ActivePage := pagInicio;
ApplicationEvents.OnActionExecute := ApplicationEventsActionExecute;}
var
i : Integer;
AMenuItem : TMenuItem;
APageIndex : Integer;
AStringList : TStringList;
APanel : TScrollBox;
begin
SortMenuByTag(Menu);
AStringList := TStringList.Create;
AStringList.Duplicates := dupIgnore;
try
for i := 0 to Menu.Items.Count - 1 do
begin
AMenuItem := Menu.Items[i];
if not EsUnModulo(AMenuItem) then
Continue;
AStringList.Add(StringReplace(AMenuItem.Caption, '&', '', []))
end;
for i := 0 to AStringList.Count - 1 do
begin
with TJvNavPanelDivider.Create(Self) do
begin
Parent := pagInicio;
Top := 100 * i;
Align := alTop;
Caption := AStringList[i];
ParentFont := True;
if i = 0 then
begin
Enabled := false;
Cursor := crDefault;
end
else
Cursor := crSizeNS;
end;
APanel := TScrollBox.Create(Self);
with APanel do
begin
Parent := pagInicio;
Top := 101 * i;
if i = AStringList.Count - 1 then
Align := alClient
else
Align := alTop;
BorderStyle := bsNone;
end;
AStringList.Objects[i] := APanel;
end;
for i := 0 to Menu.Items.Count - 1 do
begin
AMenuItem := Menu.Items[i];
if not EsUnModulo(AMenuItem) then
Continue;
{if not Assigned(FStartDefaultAction) then
FStartDefaultAction := AMenuItem[0].Action;}
APageIndex := AStringList.IndexOf(StringReplace(AMenuItem.Caption, '&', '', []));
PopulateNavPagePane(TScrollBox(AStringList.Objects[APageIndex]), AMenuItem, ModulesLargeImageList, StyleManagerButtons);
// Elimino la imagen que tiene el menú porque queda feo.
AMenuItem.ImageIndex := -1;
end;
finally
AStringList.Free;
end;
ApplicationEvents.OnActionExecute := ApplicationEventsActionExecute;
end;
function TfPantallaPrincipal.FindNavPanePage(ACaption: String): Integer;
var
i : integer;
begin
Result := -1;
for i := 0 to JvNavigationPane.PageCount - 1 do
if JvNavigationPane.NavPages[i].Caption = ACaption then
begin
Result := i;
break;
end;
end;
procedure TfPantallaPrincipal.ExecuteActionMenu(Sender: TObject);
var
i : integer;
begin
for i := 0 to JvNavigationPane.PageCount - 1 do
begin
if JvNavigationPane.NavPages[i].Caption = (Sender as TAction).Caption then
begin
JvNavigationPane.ActivePageIndex := i;
Break;
end;
end;
end;
procedure TfPantallaPrincipal.ApplicationEventsActionExecute(
Action: TBasicAction; var Handled: Boolean);
var
APageIndex : Integer;
begin
if (Action is TAction) then
begin
APageIndex := FindNavPanePage((Action as TAction).Category);
if APageIndex > 0 then
JvNavigationPane.ActivePageIndex := APageIndex;
end;
end;
procedure TfPantallaPrincipal.OnWorkPanelChanged(AEditor: ICustomEditor);
var
AEditorMenu : IEditorMenu;
MenuEditor : TMainMenu;
NombrePanel : String;
// APageNew : TJvNavPanelPage;
APanelAux: TPanel;
APanelAux2: TPanel;
i: Integer;
begin
//Liberamos el panel del submenu actual si existiese
if Assigned(FActivePanelSubMenuEditor) then
begin
FActivePanelSubMenuEditor.Free;
FActivePanelSubMenuEditor := Nil;
getSubMenu(Menu, 'Ver').Clear;
getSubMenu(Menu, 'Ver').Enabled := False;
end;
AEditor.QueryInterface(IEditorMenu, AEditorMenu);
if Assigned(AEditorMenu) then
begin
MenuEditor := AEditorMenu.getEditorMenu;
SortMenuByTag(MenuEditor);
NombrePanel := 'pnl' + StringReplace(MenuEditor.Items[0].Caption,'&','',[]);
//Creamos el panel para el submenu
APanelAux := TPanel.Create(Self);
with APanelAux do
begin
Parent := JvNavigationPane.NavPages[0];//APageNew;
ParentColor := True;
ParentFont := True;
BevelOuter := bvNone;
BevelInner := bvNone;
Height := 200;
AutoScroll := True;
Align := alBottom;
Name := NombrePanel;
Caption := '';
end;
with TJvNavPanelDivider.Create(Self) do
begin
Parent := APanelAux;
Caption := 'Vistas disponibles';
StyleManager := JvNavigationPane.StyleManager;
Align := alTop;
end;
APanelAux2 := TPanel.Create(Self);
with APanelAux2 do
begin
Parent := APanelAux;
Caption := '';
ParentColor := True;
ParentFont := True;
BevelOuter := bvNone;
BevelInner := bvNone;
AutoScroll := True;
Align := alClient;
BorderWidth := 10;
end;
//Cada uno de los items del submenu se corresponderá con un radiobutton
with MenuEditor.Items[0] do
begin
for i := (Count - 1) downto 0 do
begin
with TRadioButton.Create(Self) do
begin
Parent := APanelAux2;
Action := Items[i].Action;
Align := alTop;
Tag := Items[i].Tag;
Caption := Items[i].Caption;
end;
end;
end;
//Rellenamos el menu Ver con todos y cada uno de los items posibles
copiarItemsMenu(getSubMenu(Menu, 'Ver'), MenuEditor.Items[0]);
getSubMenu(Menu, 'Ver').Enabled := True;
FActivePanelSubMenuEditor := APanelAux;
end;
end;
procedure TfPantallaPrincipal.ShowEmbedded(AEditor: ICustomEditor);
var
ACursor : TCursor;
begin
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
LockWindowUpdate(Handle);
try
if Assigned(FContenido) then
FContenido.Release;
FContenido := AEditor.GetInstance as TCustomEditor;
with (FContenido) do
begin
Visible := False;
BorderIcons := [];
BorderStyle := bsNone;
Parent := WorkPanel;
FContenido.Show;
Align := alClient;
FContenido.SetFocus;
end;
finally
Application.ProcessMessages;
LockWindowUpdate(0);
Screen.Cursor := ACursor;
end;
OnWorkPanelChanged(FContenido);
end;
constructor TfPantallaPrincipal.Create(AOwner: TComponent);
begin
inherited;
FContenido := NIL;
end;
procedure TfPantallaPrincipal.actAcercaExecute(Sender: TObject);
begin
with TfAcercaDe.Create(NIL) do
try
HostManager := Self.HostManager;
ShowModal;
finally
Free;
end;
end;
function TfPantallaPrincipal.IsShortcut(var Message: TWMKey): Boolean;
Var
ctrl: TWinControl;
comp: TComponent;
i: Integer;
Begin
ctrl := ActiveControl;
If ctrl <> Nil Then Begin
Repeat
ctrl := ctrl.Parent
Until (ctrl = nil) or (ctrl Is TCustomForm);
// Note: replace TCustomFrame with TForm, check if the found form is
// self, if not, execute the following block of code.
If ctrl <> nil Then Begin
For i:= 0 To ctrl.componentcount-1 Do Begin
comp:= ctrl.Components[i];
If comp Is TCustomActionList Then Begin
result := TCustomActionList(comp).IsShortcut( message );
If result Then
Exit;
End;
End;
End;
End;
//Result := inherited IsShortCut(Message);
end;
procedure TfPantallaPrincipal.actAdministracionExecute(Sender: TObject);
begin
//
end;
procedure TfPantallaPrincipal.Button1Click(Sender: TObject);
//var
// i : integer;
// AModule : TModuleInfo;
// AVista : IViewInicio;
{ lCLG: TdxLayoutGroup;
lLI: TdxLayoutItem;}
begin
{
for i := 0 to HostManager.ModulesCount -1 do
begin
AModule := HostManager.Modules[i];
if Supports(AModule.Module, IViewInicio, AVista) then
begin
Exit;
lLI := dxLayoutControl1.CreateItemForControl(Button2);
lLI.Caption := 'Hello World';
lCLG := dxLayoutControl1.CreateGroup;
lCLG.Caption := 'Test this';
lCLG.Parent := dxLayoutControl1.Items;
lLI.Parent := lCLG;
dxLayoutControl1.Customization := True;
end;
end;
}
end;
procedure TfPantallaPrincipal.actConexionExecute(Sender: TObject);
begin
dmBase.ConfigurarConexion;
end;
end.

BIN
Cliente/uSplash.ddp Normal file

Binary file not shown.

1116
Cliente/uSplash.dfm Normal file

File diff suppressed because it is too large Load Diff

56
Cliente/uSplash.pas Normal file
View File

@ -0,0 +1,56 @@
unit uSplash;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, JvGIF, StdCtrls;
type
TSplashScreen = class(TForm)
Panel1: TPanel;
lblTexto: TLabel;
Image1: TImage;
procedure Image1Click(Sender: TObject);
private
function GetTexto: String;
procedure SetTexto(const Value: String);
{ Private declarations }
public
property Texto : String read GetTexto write SetTexto;
procedure ShowAsAbout;
end;
var
SplashScreen: TSplashScreen;
implementation
{$R *.dfm}
{ TSplashScreen }
procedure TSplashScreen.ShowAsAbout;
begin
Image1.OnClick := Image1Click;
ShowModal;
end;
procedure TSplashScreen.Image1Click(Sender: TObject);
begin
Close;
end;
function TSplashScreen.GetTexto: String;
begin
Result := lblTexto.Caption;
end;
procedure TSplashScreen.SetTexto(const Value: String);
begin
lblTexto.Caption := Value;
Self.Update;
end;
end.

View File

@ -0,0 +1,44 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-GD
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE"c:\archivos de programa\borland\delphi7\Projects\Bpl"
-LN"c:\archivos de programa\borland\delphi7\Projects\Bpl"
-U"C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap"
-O"C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap"
-I"C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap"
-R"C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap"
-Z
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

View File

@ -0,0 +1,492 @@
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=3
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODEC;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\RODX;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\CodeGen;C:\Archivos de programa\RemObjects Software\RemObjects SDK for Delphi\Source\DataSnap
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;cxLibraryVCLD7;cxEditorsVCLD7;dxThemeD7;cxDataD7;cxExtEditorsVCLD7;cxPageControlVCLD7;cxGridVCLD7;cxTreeListVCLD7;cxSchedulerVCLD7;TMSD7;PNGImageD7;mxProtector_d7;CEToolsPkgd7;FR7;FRIBX7
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=3082
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[Excluded Packages]
c:\archivos de programa\borland\delphi7\Bin\designdgm70.bpl=Borland Module Diagram Editview
C:\Archivos de programa\Borland\Delphi7\Projects\Bpl\dxPSCoreD7.bpl=ExpressPrinting System by Developer Express Inc.
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridConfigPkg7.bpl=xcxGridTools - Config Dialog
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridSummaryConfig7.bpl=xcxGridTools - Summary Config
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridEnhancedPropertiesStorePkg7.bpl=xcxGridTools - Enhanced Grid Properties Store
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridQuickSearch7.bpl=xcxGridTools - Quick Search
D:\Proyectos\Componentes\cxGridTools\Lib\D7\xcxGridActionsPkg7.bpl=xcxGridTools - Actions
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextBaseD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextCollectionD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextAddOnsD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextTBXD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\NextGridD7.bpl=(untitled)
c:\archivos de programa\borland\delphi7\Projects\Bpl\RodaxFrameD7.bpl=Frames Acana (D7)
[HistoryLists\hlDebugSourcePath]
Count=2
Item0=D:\Proyectos\Componentes\GUISDK\Sources\;D:\Proyectos\Componentes\PluginSDK\Source\;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Cliente;D:\Proyectos\FactuGES (Estudio)\Codigo\Modulos\Contactos\Reglas
Item1=.\
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=4
Item0=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\base;..\Modulos\Contactos\Cliente;..\Modulos\Contactos\Reglas;..\Modulos\Obras\Reglas;..\Modulos\Obras\Cliente;..\Modulos\Documentos asociados;..\Modulos\Facturas de cliente\Cliente;..\Modulos\Facturas de cliente\Reglas;..\Modulos\Recibos\Cliente;..\Modulos\Recibos\Reglas;..\Modulos\Obras Final\Cliente;..\Modulos\Obras Final\Reglas
Item1=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\Reglas;..\..\Obras\Cliente;..\..\Facturas de cliente\Cliente;..\..\Contactos\Cliente;..\..\Documentos asociados;..\..\Recibos\Cliente
Item2=$(DELPHI)\Lib\Debug;E:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\..\..\GUISDK\lib\d7;..\..\Contactos\Cliente;..\..\Documentos asociados;..\Reglas
Item3=$(DELPHI)\Lib\Debug;D:\PROYEC~1\COMPON~1\jcl\lib\D7\debug;..\..\..\Base;..\..\..\Servidor;..\Reglas
[HistoryLists\hlUnitOutputDirectory]
Count=1
Item0=.\
[HistoryLists\hlOutputDirectorry]
Count=1
Item0=..\Output\Cliente
[HistoryLists\hlBPLOutput]
Count=1
Item0=..\..\..\Output\Cliente
[HistoryLists\hlDCPOutput]
Count=1
Item0=.\
[Exception Log]
EurekaLog Version=501
Activate=1
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=60
Freeze Message=The application seems to be frozen.
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
Show TerminateBtn=1
TerminateBtn Operation=1
Errors Number=32
Errors Terminate=3
Email Address=
Email Object=
Email Send Options=0
Output Path=
Encrypt Password=
AutoCloseDialogSecs=0
WebSendMode=0
SupportULR=
HTMLLayout Count=15
HTMLLine0="%3Chtml%3E"
HTMLLine1=" %3Chead%3E"
HTMLLine2=" %3C/head%3E"
HTMLLine3=" %3Cbody TopMargin=10 LeftMargin=10%3E"
HTMLLine4=" %3Ctable width="100%%" border="0"%3E"
HTMLLine5=" %3Ctr%3E"
HTMLLine6=" %3Ctd nowrap%3E"
HTMLLine7=" %3Cfont face="Lucida Console, Courier" size="2"%3E"
HTMLLine8=" %3C%%HTML_TAG%%%3E"
HTMLLine9=" %3C/font%3E"
HTMLLine10=" %3C/td%3E"
HTMLLine11=" %3C/tr%3E"
HTMLLine12=" %3C/table%3E"
HTMLLine13=" %3C/body%3E"
HTMLLine14="%3C/html%3E"
AutoCrashOperation=1
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesSection=1
loSaveCPUSection=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soExcDate=1
soExcAddress=1
soExcModule=1
soExcType=1
soExcMessage=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpUser=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=1
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndCompressAllFiles=0
edoShowExceptionDialog=1
edoSendEmailChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=0
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoShowProcedureOffset=0
boActivateCrashDetection=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtDialog_Caption=1
mtDialog_Caption0="Error."
Count mtDialog_ErrorMsgCaption=2
mtDialog_ErrorMsgCaption0="An error has occurred during program execution."
mtDialog_ErrorMsgCaption1="Please read the following information for further details."
Count mtDialog_GeneralCaption=1
mtDialog_GeneralCaption0="General"
Count mtDialog_GeneralHeader=1
mtDialog_GeneralHeader0="General Information"
Count mtDialog_CallStackCaption=1
mtDialog_CallStackCaption0="Call Stack"
Count mtDialog_CallStackHeader=1
mtDialog_CallStackHeader0="Call Stack Information"
Count mtDialog_ModulesCaption=1
mtDialog_ModulesCaption0="Modules"
Count mtDialog_ModulesHeader=1
mtDialog_ModulesHeader0="Modules Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU Information"
Count mtDialog_CustomDataCaption=1
mtDialog_CustomDataCaption0="Other"
Count mtDialog_CustomDataHeader=1
mtDialog_CustomDataHeader0="Other Information"
Count mtDialog_OKButtonCaption=1
mtDialog_OKButtonCaption0="&OK"
Count mtDialog_TerminateButtonCaption=1
mtDialog_TerminateButtonCaption0="&Terminate"
Count mtDialog_RestartButtonCaption=1
mtDialog_RestartButtonCaption0="&Restart"
Count mtDialog_DetailsButtonCaption=1
mtDialog_DetailsButtonCaption0="&Details"
Count mtDialog_SendMessage=1
mtDialog_SendMessage0="&Send this error via Internet"
Count mtDialog_ScreenshotMessage=1
mtDialog_ScreenshotMessage0="&Attach a Screenshot image"
Count mtDialog_CopyMessage=1
mtDialog_CopyMessage0="&Copy to Clipboard"
Count mtDialog_SupportMessage=1
mtDialog_SupportMessage0="Go to the Support Page"
Count mtLog_AppHeader=1
mtLog_AppHeader0="Application"
Count mtLog_AppStartDate=1
mtLog_AppStartDate0="Start Date"
Count mtLog_AppName=1
mtLog_AppName0="Name/Description"
Count mtLog_AppVersionNumber=1
mtLog_AppVersionNumber0="Version Number"
Count mtLog_AppParameters=1
mtLog_AppParameters0="Parameters"
Count mtLog_AppCompilationDate=1
mtLog_AppCompilationDate0="Compilation Date"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModule=1
mtLog_ExcModule0="Module"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ActCtrlsHeader=1
mtLog_ActCtrlsHeader0="Active Controls"
Count mtLog_ActCtrlsFormClass=1
mtLog_ActCtrlsFormClass0="Form Class"
Count mtLog_ActCtrlsFormText=1
mtLog_ActCtrlsFormText0="Form Text"
Count mtLog_ActCtrlsControlClass=1
mtLog_ActCtrlsControlClass0="Control Class"
Count mtLog_ActCtrlsControlText=1
mtLog_ActCtrlsControlText0="Control Text"
Count mtLog_CmpHeader=1
mtLog_CmpHeader0="Computer"
Count mtLog_CmpName=1
mtLog_CmpName0="Name"
Count mtLog_CmpUser=1
mtLog_CmpUser0="User"
Count mtLog_CmpTotalMemory=1
mtLog_CmpTotalMemory0="Total Memory"
Count mtLog_CmpFreeMemory=1
mtLog_CmpFreeMemory0="Free Memory"
Count mtLog_CmpTotalDisk=1
mtLog_CmpTotalDisk0="Total Disk"
Count mtLog_CmpFreeDisk=1
mtLog_CmpFreeDisk0="Free Disk"
Count mtLog_CmpSystemUpTime=1
mtLog_CmpSystemUpTime0="System Up Time"
Count mtLog_CmpProcessor=1
mtLog_CmpProcessor0="Processor"
Count mtLog_CmpDisplayMode=1
mtLog_CmpDisplayMode0="Display Mode"
Count mtLog_OSHeader=1
mtLog_OSHeader0="Operating System"
Count mtLog_OSType=1
mtLog_OSType0="Type"
Count mtLog_OSBuildN=1
mtLog_OSBuildN0="Build #"
Count mtLog_OSUpdate=1
mtLog_OSUpdate0="Update"
Count mtLog_OSLanguage=1
mtLog_OSLanguage0="Language"
Count mtLog_NetHeader=1
mtLog_NetHeader0="Network"
Count mtLog_NetIP=1
mtLog_NetIP0="IP Address"
Count mtLog_NetSubmask=1
mtLog_NetSubmask0="Submask"
Count mtLog_NetGateway=1
mtLog_NetGateway0="Gateway"
Count mtLog_NetDNS1=1
mtLog_NetDNS10="DNS 1"
Count mtLog_NetDNS2=1
mtLog_NetDNS20="DNS 2"
Count mtLog_NetDHCP=1
mtLog_NetDHCP0="DHCP"
Count mtLog_CustInfoHeader=1
mtLog_CustInfoHeader0="Custom Information"
Count mtCallStack_Address=1
mtCallStack_Address0="Address"
Count mtCallStack_Name=1
mtCallStack_Name0="Module"
Count mtCallStack_Unit=1
mtCallStack_Unit0="Unit"
Count mtCallStack_Class=1
mtCallStack_Class0="Class"
Count mtCallStack_Procedure=1
mtCallStack_Procedure0="Procedure/Method"
Count mtCallStack_Line=1
mtCallStack_Line0="Line"
Count mtCallStack_MainThread=1
mtCallStack_MainThread0="Main"
Count mtCallStack_ExceptionThread=1
mtCallStack_ExceptionThread0="Exception Thread"
Count mtCallStack_RunningThread=1
mtCallStack_RunningThread0="Running Thread"
Count mtCallStack_CallingThread=1
mtCallStack_CallingThread0="Calling Thread"
Count mtCallStack_ThreadID=1
mtCallStack_ThreadID0="ID"
Count mtCallStack_ThreadPriority=1
mtCallStack_ThreadPriority0="Priority"
Count mtCallStack_ThreadClass=1
mtCallStack_ThreadClass0="Class"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Connecting=1
mtSendDialog_Connecting0="Connecting with server..."
Count mtSendDialog_Connected=1
mtSendDialog_Connected0="Connected with server."
Count mtSendDialog_Sending=1
mtSendDialog_Sending0="Sending message..."
Count mtReproduceDialog_Caption=1
mtReproduceDialog_Caption0="Request"
Count mtReproduceDialog_Request=1
mtReproduceDialog_Request0="Please describe the steps to reproduce the error:"
Count mtReproduceDialog_OKButtonCaption=1
mtReproduceDialog_OKButtonCaption0="&OK"
Count mtModules_Handle=1
mtModules_Handle0="Handle"
Count mtModules_Name=1
mtModules_Name0="Name"
Count mtModules_Description=1
mtModules_Description0="Description"
Count mtModules_Version=1
mtModules_Version0="Version"
Count mtModules_Size=1
mtModules_Size0="Size"
Count mtModules_LastModified=1
mtModules_LastModified0="Modified"
Count mtModules_Path=1
mtModules_Path0="Path"
Count mtCPU_Registers=1
mtCPU_Registers0="Registers"
Count mtCPU_Stack=1
mtCPU_Stack0="Stack"
Count mtCPU_MemoryDump=1
mtCPU_MemoryDump0="Memory Dump"
Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work."

View File

@ -0,0 +1,56 @@
package DataAbstract_D7;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$RUNONLY}
{$IMPLICITBUILD OFF}
requires
vcl,
rtl,
dbrtl,
dsnap;
contains
uDADataTable,
uDABINAdapter,
uDAScriptingProvider,
uDACDSDataTable,
uDARegExpr,
uDAInterfaces,
uDARes,
uDAClasses,
uDAEngine,
uDAHelpers,
uDAInterfacesEx,
uDAMacros,
uDAUtils,
uDADriverManager,
uDASupportClasses,
uDAXMLUtils,
DataAbstract_Intf,
uDAClientDataModule,
uDABusinessProcessor,
uDAOracleInterfaces;
end.

View File

@ -0,0 +1,400 @@
/* VER150
Generated by the Borland Delphi Pascal Compiler
because -GD or --drc was supplied to the compiler.
This file contains compiler-generated resources that
were bound to the executable.
If this file is empty, then no compiler-generated
resources were bound to the produced executable.
*/
#define uDARes_err_ExecuteSQLCommandNotAllowed 65328
#define uDARes_err_FieldIsNotBound 65344
#define uDARes_err_CannotFindField 65345
#define uDARes_err_LoadPackageFailed 65346
#define uDARes_err_InvalidDriverReference 65347
#define uDARes_err_CannotFindStatement 65348
#define uDARes_err_CannotFindDefaultItem 65349
#define uDARes_err_PoolIsNotEmpty 65350
#define uDARes_err_MaxPoolSizeReached 65351
#define uDARes_err_CannotAccessThisProperty 65352
#define uDARes_err_LAMEDataset 65353
#define uDARes_err_DARDMInvalidSchema 65354
#define uDARes_err_DARDMMissingConnectionName 65355
#define uDARes_err_DARDMUnassignedAdapter 65356
#define uDARes_err_DARDMConnectionIsNotAssigned 65357
#define uDARes_err_DARDMCannotFindProxessorForDelta 65358
#define uDARes_err_NeedShareMem 65359
#define uDARes_err_DriverManagerNotAssigned 65360
#define uDARes_err_ConnectionManagerNotAssigned 65361
#define uDARes_err_FieldTypeNotSupported 65362
#define uDARes_err_NotSupported 65363
#define uDARes_err_DataTypeNotSupportedByRemoteRequest 65364
#define uDARes_err_InvalidDataset 65365
#define uDARes_err_CannotMakeNILDefault 65366
#define uDARes_err_DifferentOwnerCollection 65367
#define uDARes_err_CannotFindItem 65368
#define uDARes_err_InvalidCollectionType 65369
#define uDARes_err_InvalidOwner 65370
#define uDARes_err_DriverAlreadyLoaded 65371
#define uDARes_err_DriverIsNotLoaded 65372
#define uDARes_err_InvalidDLL 65373
#define uDARes_err_UnknownDriver 65374
#define uDARes_err_UnknownParameter 65375
#define uRODECConst_sInvalidCalc 65376
#define uRODECConst_sInvalidDictionary 65377
#define uRODECConst_sOTPIdent 65378
#define uRODECConst_sOTPExt 65379
#define uRODECConst_sOTPWord 65380
#define uRODECConst_sOTPHex 65381
#define uRODECConst_sSKeyIdent 65382
#define uDARes_err_ChangeLogAlreadyStarted 65383
#define uDARes_err_NotAttachedToDataTable 65384
#define uDARes_err_DeltaAttachedToDataTable 65385
#define uDARes_err_DriverProcAlreadyRegistered 65386
#define uDARes_err_DriverManagerNotCreated 65387
#define uDARes_err_DriverManagerAlreadyCreated 65388
#define uDARes_err_DatasetNotAssigned 65389
#define uDARes_err_VariantNotSupported 65390
#define uDARes_err_InvalidDestination 65391
#define uRODECConst_sLoadFail 65392
#define uRODECConst_sParams 65393
#define uRODECConst_sJacobi 65394
#define uRODECConst_sSPPrime 65395
#define uRODECConst_sSetPrime 65396
#define uRODECConst_sSetPrimeSize 65397
#define uRODECConst_sSetPrimeParam 65398
#define uRODECConst_sSqrt 65399
#define uRODECConst_sExpMod 65400
#define uRODECConst_sCalcName 65401
#define uRODECConst_sInvalidState 65402
#define uRODECConst_sIDOutOfRange 65403
#define uRODECConst_sInvalidZIPData 65404
#define uRODECConst_sInvalidChallenge 65405
#define uRODECConst_sInvalidPassword 65406
#define uRODECConst_sInvalidSeed 65407
#define uRODECConst_sNotInitialized 65408
#define uRODECConst_sInvalidMACMode 65409
#define uRODECConst_sCantCalc 65410
#define uRODECConst_sInvalidRandomStream 65411
#define uRODECConst_sRandomDataProtected 65412
#define uRODECConst_sBBSnotSeekable 65413
#define uRODECConst_sBigNumDestroy 65414
#define uRODECConst_sIndexOutOfRange 65415
#define uRODECConst_sBigNumAborted 65416
#define uRODECConst_sErrGeneric 65417
#define uRODECConst_sErrAsInteger 65418
#define uRODECConst_sErrAsComp 65419
#define uRODECConst_sErrAsFloat 65420
#define uRODECConst_sNumberFormat 65421
#define uRODECConst_sDivByZero 65422
#define uRODECConst_sStackIndex 65423
#define uRORes_err_UnknownMessageType 65424
#define uRORes_err_MasterServerNeedsChannel 65425
#define uRORes_err_StreamIsReadOnly 65426
#define uRODECConst_sProtectionCircular 65427
#define uRODECConst_sStringFormatExists 65428
#define uRODECConst_sInvalidStringFormat 65429
#define uRODECConst_sInvalidFormatString 65430
#define uRODECConst_sFMT_COPY 65431
#define uRODECConst_sFMT_HEX 65432
#define uRODECConst_sFMT_HEXL 65433
#define uRODECConst_sFMT_MIME64 65434
#define uRODECConst_sFMT_UU 65435
#define uRODECConst_sFMT_XX 65436
#define uRODECConst_sInvalidKey 65437
#define uRODECConst_sInvalidCRC 65438
#define uRODECConst_sInvalidKeySize 65439
#define uRORes_err_CannotLoadXMLDocument 65440
#define uRORes_err_ErrorCreatingMsXmlDoc 65441
#define uRORes_err_NoXMLParsersAvailable 65442
#define uRORes_err_IDispatchMarshalingNotSupported 65443
#define uRORes_err_UnsupportedVariantType 65444
#define uRORes_err_InvalidBinaryFormat 65445
#define uRORes_err_VariantIsNotArray 65446
#define uRORes_err_InvalidVarArrayDimCount 65447
#define uRORes_err_CannotFindParameter 65448
#define uRORes_err_CannotFindService 65449
#define uRORes_err_RODLResourceNotLoaded 65450
#define uRORes_err_MayNotAddResult 65451
#define uRORes_err_OperationNameNeedsServiceName 65452
#define uRORes_err_ServiceNameIsNotSet 65453
#define uRORes_err_EventReceivedNotConnectedToMessage 65454
#define uRORes_err_MessageNotAssigned 65455
#define uRORes_err_MessagePropertyMustBeSet 65456
#define uRORes_err_WinMessageFailed 65457
#define uRORes_err_UnexpectedWinINetProblem 65458
#define uRORes_err_CommunicationWithServerTimedOut 65459
#define uRORes_err_CannotConnectToServer 65460
#define uRORes_err_ConnectionError 65461
#define uRORes_err_PoolSizeMustBe1orHigher 65462
#define uRORes_err_NoFreeObjectsInPool 65463
#define uRORes_msg_NoMultipleDispatchers 65464
#define uRORes_err_InvalidStorage 65465
#define uRORes_err_ErrorConvertingFloat 65466
#define uRORes_err_SessionNotFound 65467
#define uRORes_err_ChannelDoesntSupportIROMetadataReader 65468
#define uRORes_err_TooManySessions 65469
#define uRORes_err_DOMElementIsNIL 65470
#define uRORes_err_IndexOutOfBounds 65471
#define uRORes_err_CannotAssignClass 65472
#define uRORes_err_ChannelBusy 65473
#define uRORes_err_DesignTimeProperty 65474
#define uRORes_err_ExpectedParameterNotFound 65475
#define uRORes_err_AmbigousResponse 65476
#define uRORes_err_InvalidEnvelope 65477
#define uRORes_err_InvalidData 65478
#define uRORes_inf_InvalidEnvelopeNode 65479
#define uRORes_inf_AbsentBody 65480
#define uRORes_inf_AbsentMessage 65481
#define uRORes_err_ArrayIndexOutOfBounds 65482
#define uRORes_err_InvalidHeader 65483
#define uRORes_err_UnknownClassInStream 65484
#define uRORes_err_UnexpectedClassInStream 65485
#define uRORes_err_InvalidDateTimeReadFromStream 65486
#define uRORes_err_CannotFindServer 65487
#define uRORes_err_ParameterNotFound 65488
#define uRORes_err_NotImplemented 65489
#define uRORes_err_TypeNotSupported 65490
#define uRORes_err_ClassFactoryNotFound 65491
#define uRORes_err_UnspecifiedTargetURL 65492
#define uRORes_err_IROMessageNotSupported 65493
#define uRORes_err_ClassAlreadyRegistered 65494
#define uRORes_err_UnknownClass 65495
#define uRORes_err_UnknownProxyInterface 65496
#define uRORes_err_UnknownTransportChannelClass 65497
#define uRORes_err_UnknownMessageClass 65498
#define uRORes_err_DispatcherAlreadyAssigned 65499
#define uRORes_err_CannotFindMessageDispatcher 65500
#define uRORes_err_ServerOnlySupportsOneDispatcher 65501
#define uRORes_err_UnhandledException 65502
#define uRORes_err_CannotReadRODLWithoutChannel 65503
#define uRORes_err_RodlNoStructElementsDefined 65504
#define uRORes_err_RodlNoOperationsDefined 65505
#define uRORes_err_RodlUsedFileDoesNotExist 65506
#define uRORes_err_RodlInvalidDataType 65507
#define uRORes_err_RodlStructCannotBeNested 65508
#define uRORes_err_RodlInvalidAncestorType 65509
#define uRORes_err_UnspecifiedRODLLocation 65510
#define uRORes_str_ExceptionOnServer 65511
#define uRORes_str_ExceptionReraisedFromServer 65512
#define uRORes_err_AssignError 65513
#define uRORes_err_InvalidRequestStream 65514
#define uRORes_err_NILMessage 65515
#define uRORes_err_UnspecifiedInterface 65516
#define uRORes_err_UnspecifiedMessage 65517
#define uRORes_err_UnknownMethod 65518
#define uRORes_err_ClassFactoryDidNotReturnInstance 65519
#define uRORes_err_InvalidIndex 65520
#define uRORes_err_InvalidType 65521
#define uRORes_err_InvalidLibrary 65522
#define uRORes_err_InvalidStream 65523
#define uRORes_err_InvalidTargetEntity 65524
#define uRORes_err_InvalidParamFlag 65525
#define uRORes_err_InvalidStringLength 65526
#define uRORes_err_InvalidBinaryLength 65527
#define uRORes_str_InvalidClassTypeInStream 65528
#define uRORes_err_ObjectExpectedInStream 65529
#define uRORes_err_UnexpectedEndOfStream 65530
#define uRORes_err_MessageClassMustImplementAssign 65531
#define uRORes_err_InvalidInfo 65532
#define uRORes_err_RodlDuplicateName 65533
#define uRORes_err_RodlNoDataTypeSpecified 65534
#define uRORes_err_RodlNoEnumValues 65535
STRINGTABLE
BEGIN
uDARes_err_ExecuteSQLCommandNotAllowed, "ExecuteSQLCommand is not enabled for this server."
uDARes_err_FieldIsNotBound, "Field is not bound"
uDARes_err_CannotFindField, "Cannot find field %s"
uDARes_err_LoadPackageFailed, "LoadPackage failed for file %s"
uDARes_err_InvalidDriverReference, "The driver in %s could not be loaded"
uDARes_err_CannotFindStatement, "Cannot find statement %s for connection %s"
uDARes_err_CannotFindDefaultItem, "Cannot find default %s"
uDARes_err_PoolIsNotEmpty, "Cannot perform this operation when connections are pooled"
uDARes_err_MaxPoolSizeReached, "Maximum pool size reached. Cannot create a new connection"
uDARes_err_CannotAccessThisProperty, "Cannot access this property with the current DataType value"
uDARes_err_LAMEDataset, "%s does not implement IProviderSupport or implements it incorrectly"
uDARes_err_DARDMInvalidSchema, "Schema must be assigned and must point to a ConnectionManager"
uDARes_err_DARDMMissingConnectionName, "Cannot acquire a connection without a ConnectionName or a OnBeforeAcquireConnection event handler"
uDARes_err_DARDMUnassignedAdapter, "DataAdapter is not assigned"
uDARes_err_DARDMConnectionIsNotAssigned, "Connection is not assigned"
uDARes_err_DARDMCannotFindProxessorForDelta, "Cannot find a business processor for delta \"%s\""
uDARes_err_NeedShareMem, "To use dynamically loaded drivers, you must build your application with ShareMem."
uDARes_err_DriverManagerNotAssigned, "Driver Manager is not assigned"
uDARes_err_ConnectionManagerNotAssigned, "Connection Manager is not assigned"
uDARes_err_FieldTypeNotSupported, "FieldType %s (%d) is not supported"
uDARes_err_NotSupported, "Not supported"
uDARes_err_DataTypeNotSupportedByRemoteRequest, "DataType is not supported by RemoteRequest"
uDARes_err_InvalidDataset, "Invalid or NIL dataset"
uDARes_err_CannotMakeNILDefault, "Cannot set NIL"
uDARes_err_DifferentOwnerCollection, "The connection definition is not owned by this collection"
uDARes_err_CannotFindItem, "Cannot find %s \"%s\" in collection of type %s"
uDARes_err_InvalidCollectionType, "Invalid collection type"
uDARes_err_InvalidOwner, "Invalid owner"
uDARes_err_DriverAlreadyLoaded, "Driver %s is already loaded"
uDARes_err_DriverIsNotLoaded, "Driver %s was not loaded"
uDARes_err_InvalidDLL, "%s is not a valid Data Abstract driver"
uDARes_err_UnknownDriver, "Unknown driver %s"
uDARes_err_UnknownParameter, "Unknown parameter %s"
uRODECConst_sInvalidCalc, "Invalid Parameters in OTPCalc."
uRODECConst_sInvalidDictionary, "Used Dictionary in %s is invalid."
uRODECConst_sOTPIdent, "otp-"
uRODECConst_sOTPExt, "ext"
uRODECConst_sOTPWord, "word:"
uRODECConst_sOTPHex, "hex:"
uRODECConst_sSKeyIdent, "s/key"
uDARes_err_ChangeLogAlreadyStarted, "StartChange has already been called; cannot log more than one change at a time."
uDARes_err_NotAttachedToDataTable, "Delta is not attached to a DataTable"
uDARes_err_DeltaAttachedToDataTable, "Cannot perform this operation on a delta that is attached to a DataTable"
uDARes_err_DriverProcAlreadyRegistered, "DriverProc 0x%0.8x is already registered"
uDARes_err_DriverManagerNotCreated, "A Data Abstract DriverManager is not currently instantiated"
uDARes_err_DriverManagerAlreadyCreated, "An instance of a TDADriverManager was already initialized. Only one driver manager per module is allowed"
uDARes_err_DatasetNotAssigned, "Dataset is not assigned"
uDARes_err_VariantNotSupported, "Variant type %d is not supported"
uDARes_err_InvalidDestination, "Invalid destination"
uRODECConst_sLoadFail, "BigNum invalid data format."
uRODECConst_sParams, "BigNum parameter error.\r\n%s."
uRODECConst_sJacobi, "BigNum Jacobi(A, B), B must be >= 3, Odd and B < A"
uRODECConst_sSPPrime, "BigNum IsSPPrime(A, Base), |Base| must be > 1, |A| > |Base| and |A| >= 3"
uRODECConst_sSetPrime, "BigNum SetPrime(Base, Residue, Modulus), Invalid Parameter.\r\n%s."
uRODECConst_sSetPrimeSize, "Value must be greater 32767"
uRODECConst_sSetPrimeParam, "GCD(Residue, Modulus) must be 1 and Residue < Modulus"
uRODECConst_sSqrt, "BigNum Sqrt(A) A must be position"
uRODECConst_sExpMod, "BigNum ExpMod(E, M) M must be positive"
uRODECConst_sCalcName, "Calculation No %d"
uRODECConst_sInvalidState, "Invalid Protector State detected."
uRODECConst_sIDOutOfRange, "Protector Error: ID is out of Range."
uRODECConst_sInvalidZIPData, "Invalid compressed Data detected."
uRODECConst_sInvalidChallenge, "Challenge is not an RO_RFC2289 Format."
uRODECConst_sInvalidPassword, "Invalid Passphraselength, must be more than 9 Chars."
uRODECConst_sInvalidSeed, "Invalid Seed Value in OTPCalc."
uRODECConst_sNotInitialized, "%s is not initialized call Init() or InitKey() before."
uRODECConst_sInvalidMACMode, "Invalid Ciphermode selected to produce a MAC.\r\nPlease use Modes cmCBC, cmCTS, cmCFB, cmCBCMAC, cmCFBMAC or cmCTSMAC for CalcMAC."
uRODECConst_sCantCalc, "Invalid Ciphermode selected."
uRODECConst_sInvalidRandomStream, "Invalid Random Data detected."
uRODECConst_sRandomDataProtected, "Random Data are protected."
uRODECConst_sBBSnotSeekable, "BBS Generator is not seekable."
uRODECConst_sBigNumDestroy, "Used Bignums in a BBS Generator can be not destroy."
uRODECConst_sIndexOutOfRange, "BBS Error: Index out of Range."
uRODECConst_sBigNumAborted, "BigNum aborted by User."
uRODECConst_sErrGeneric, "Bignum Generic Error."
uRODECConst_sErrAsInteger, "BigNum overflow in AsInteger."
uRODECConst_sErrAsComp, "BigNum overflow in AsComp."
uRODECConst_sErrAsFloat, "BigNum overflow in AsFloat."
uRODECConst_sNumberFormat, "BigNum invalid Numberformat for Base %d.\r\nValue: %s"
uRODECConst_sDivByZero, "BigNum division by Zero."
uRODECConst_sStackIndex, "BigNum Stackindex out of range."
uRORes_err_UnknownMessageType, "Unknown message type \"%s\""
uRORes_err_MasterServerNeedsChannel, "No Channel assigned to %s."
uRORes_err_StreamIsReadOnly, "Stream is read-only."
uRODECConst_sProtectionCircular, "Circular Protection detected, Protection Object is invalid."
uRODECConst_sStringFormatExists, "String Format \"%d\" not exists."
uRODECConst_sInvalidStringFormat, "Input is not an valid %s Format."
uRODECConst_sInvalidFormatString, "Input can not be convert to %s Format."
uRODECConst_sFMT_COPY, "copy Input to Output"
uRODECConst_sFMT_HEX, "Hexadecimal"
uRODECConst_sFMT_HEXL, "Hexadecimal lowercase"
uRODECConst_sFMT_MIME64, "MIME Base 64"
uRODECConst_sFMT_UU, "UU Coding"
uRODECConst_sFMT_XX, "XX Coding"
uRODECConst_sInvalidKey, "Encryptionkey is invalid"
uRODECConst_sInvalidCRC, "Encrypted Data is corrupt, invalid Checksum"
uRODECConst_sInvalidKeySize, "Length from Encryptionkey is invalid.\r\nKeysize for %s must be to %d-%d bytes"
uRORes_err_CannotLoadXMLDocument, "Cannot load XML document.\rReason: %s\rLine: %d\rPosition: %d"
uRORes_err_ErrorCreatingMsXmlDoc, "Error creating MSXML Document class\r\r%s: %s"
uRORes_err_NoXMLParsersAvailable, "MSXML is not installed"
uRORes_err_IDispatchMarshalingNotSupported, "Marshaling of IDispatch (%d) type variants is not supported."
uRORes_err_UnsupportedVariantType, "Unsupported variant type \"%d\""
uRORes_err_InvalidBinaryFormat, "Invalid binary format for a variant"
uRORes_err_VariantIsNotArray, "Variant must be Array, but is %d"
uRORes_err_InvalidVarArrayDimCount, "Variant Array DimCount must be 1 but is %d"
uRORes_err_CannotFindParameter, "Cannot find parameter %s"
uRORes_err_CannotFindService, "Cannot find service %s"
uRORes_err_RODLResourceNotLoaded, "RODL resource has not been loaded"
uRORes_err_MayNotAddResult, "Cannot add Result parameter to collection. Use AddResult instead"
uRORes_err_OperationNameNeedsServiceName, "Cannot set the OperationName without a ServiceName"
uRORes_err_ServiceNameIsNotSet, "ServiceName is not set"
uRORes_err_EventReceivedNotConnectedToMessage, "The event receiver must be connected to a message component first"
uRORes_err_MessageNotAssigned, "Message is NIL"
uRORes_err_MessagePropertyMustBeSet, "Message property must be assigned for the server to be active"
uRORes_err_WinMessageFailed, "Communication with the WinMessage Server failed or timed out (Error Code %d)"
uRORes_err_UnexpectedWinINetProblem, "Unexpected error in WinInet HTTP Channel (%d)"
uRORes_err_CommunicationWithServerTimedOut, "Communication with the server timed out (after %sms)"
uRORes_err_CannotConnectToServer, "Cannot connect to server \"%s\""
uRORes_err_ConnectionError, "Connection error"
uRORes_err_PoolSizeMustBe1orHigher, "Pool Size must be 1 or higher"
uRORes_err_NoFreeObjectsInPool, "There are no Free Objects in the Pool. Try again later."
uRORes_msg_NoMultipleDispatchers, "Multiple message dispatchers not supported"
uRORes_err_InvalidStorage, "Invalid storage"
uRORes_err_ErrorConvertingFloat, "Error converting float \"%s\" at byte %d"
uRORes_err_SessionNotFound, "Session %s could not be found"
uRORes_err_ChannelDoesntSupportIROMetadataReader, "Channel does not support IROMetadataReader"
uRORes_err_TooManySessions, "Too many sessions. Try again in %d minute(s)"
uRORes_err_DOMElementIsNIL, "DOMElement is NIL"
uRORes_err_IndexOutOfBounds, "Index out of bounds"
uRORes_err_CannotAssignClass, "Cannot Assign a \"%s\" to a \"%s\"."
uRORes_err_ChannelBusy, "Channel is busy. Try again later."
uRORes_err_DesignTimeProperty, "%s is a designtime-only property"
uRORes_err_ExpectedParameterNotFound, "Expected parameter \"%s\" was not found."
uRORes_err_AmbigousResponse, "Ambigous response. Expected one \"%s\" but %d were received"
uRORes_err_InvalidEnvelope, "Invalid SOAP Envelope. %s"
uRORes_err_InvalidData, "Cannot convert data for parameter \"%s\"\rException was \"%s\"\rData was \"%s\"."
uRORes_inf_InvalidEnvelopeNode, "SOAP Envelope node missing or not root."
uRORes_inf_AbsentBody, "SOAP envelope does not contain a Body."
uRORes_inf_AbsentMessage, "SOAP Body does not contain a message nor a fault"
uRORes_err_ArrayIndexOutOfBounds, "Array index out of bounds (%d)."
uRORes_err_InvalidHeader, "Invalid binary header. Either incompatible or not a binary message."
uRORes_err_UnknownClassInStream, "Unknown class \"%s\" found in stream."
uRORes_err_UnexpectedClassInStream, "Unexpected class found in stream; class \"%s\" does not descend from \"%s\"."
uRORes_err_InvalidDateTimeReadFromStream, "Invalid DateTime read from Stream."
uRORes_err_CannotFindServer, "Cannot find server \"%s\""
uRORes_err_ParameterNotFound, "Parameter \"%s\" was not found"
uRORes_err_NotImplemented, "Not implemented"
uRORes_err_TypeNotSupported, "Type \"%s\" not supported"
uRORes_err_ClassFactoryNotFound, "Class factory for interface %s not found"
uRORes_err_UnspecifiedTargetURL, "Unspecified TargetURL"
uRORes_err_IROMessageNotSupported, "Class \"%s\" does not support IROMessage"
uRORes_err_ClassAlreadyRegistered, "Class \"%s\" is already registered"
uRORes_err_UnknownClass, "Unknown class \"%s\""
uRORes_err_UnknownProxyInterface, "Unknown proxy interface \"%s\""
uRORes_err_UnknownTransportChannelClass, "Unknown transport channel class \"%s\""
uRORes_err_UnknownMessageClass, "Unknown message class \"%s\""
uRORes_err_DispatcherAlreadyAssigned, "Dispatcher for %s already assigned"
uRORes_err_CannotFindMessageDispatcher, "Cannot find message dispatcher. Maybe there is no message component configured for for the requested path?"
uRORes_err_ServerOnlySupportsOneDispatcher, "%s servers only support one dispatcher"
uRORes_err_UnhandledException, "Unhandled exception"
uRORes_err_CannotReadRODLWithoutChannel, "Cannot read RODL information without a channel"
uRORes_err_RodlNoStructElementsDefined, "Struct does not contain any elements."
uRORes_err_RodlNoOperationsDefined, "Service interface does not contain any elements."
uRORes_err_RodlUsedFileDoesNotExist, "The referenced RODL file \"%s\" could not be found."
uRORes_err_RodlInvalidDataType, "Invalid or undefined data type \"%s\"."
uRORes_err_RodlStructCannotBeNested, "Structs cannot recursively contain themselves."
uRORes_err_RodlInvalidAncestorType, "Invalid or undefined ancestor type \"%s\"."
uRORes_err_UnspecifiedRODLLocation, "Unspecified RODL location"
uRORes_str_ExceptionOnServer, "An exception of type %s was raised on the server: %s"
uRORes_str_ExceptionReraisedFromServer, "An exception was raised on the server: %s"
uRORes_err_AssignError, "Cannot assign a \"%s\" to a \"%s\"."
uRORes_err_InvalidRequestStream, "Invalid request stream (%d bytes)"
uRORes_err_NILMessage, "Message is NIL"
uRORes_err_UnspecifiedInterface, "The message does not have an interface name"
uRORes_err_UnspecifiedMessage, "The message does not have a name"
uRORes_err_UnknownMethod, "Unknown method %s for interface %s"
uRORes_err_ClassFactoryDidNotReturnInstance, "Class factory did not return an instance of \"%s\""
uRORes_err_InvalidIndex, "Invalid index %d"
uRORes_err_InvalidType, "Invalid type \"%s. Expected \"%s\"\""
uRORes_err_InvalidLibrary, "Invalid library"
uRORes_err_InvalidStream, "Invalid stream"
uRORes_err_InvalidTargetEntity, "Invalid TargetEntity \"%s\""
uRORes_err_InvalidParamFlag, "Invalid Parameter Flag \"%s\""
uRORes_err_InvalidStringLength, "Stream read error: Invalid string length \"%d\""
uRORes_err_InvalidBinaryLength, "Stream read error: Invalid binary length \"%d\""
uRORes_str_InvalidClassTypeInStream, "Stream read error: Invalid class type encountered: \"%s\""
uRORes_err_ObjectExpectedInStream, "Stream read error: Object expected, but nil found."
uRORes_err_UnexpectedEndOfStream, "Unexpected end of stream."
uRORes_err_MessageClassMustImplementAssign, "Please implement Assign() for your custom message class."
uRORes_err_InvalidInfo, "Invalid or incomplete info."
uRORes_err_RodlDuplicateName, "Duplicate name."
uRORes_err_RodlNoDataTypeSpecified, "No data type specified."
uRORes_err_RodlNoEnumValues, "Enum does not contain any values."
END

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Some files were not shown because too many files have changed in this diff Show More