This commit is contained in:
David Arranz 2007-10-08 08:05:23 +00:00
parent ea8ceb9c8d
commit a79d956073
54 changed files with 12638 additions and 0 deletions

View File

@ -0,0 +1,665 @@
<?xml version="1.0" encoding="utf-8"?>
<BorlandProject>
<PersonalityInfo>
<Option>
<Option Name="Personality">Delphi.Personality</Option>
<Option Name="ProjectType"></Option>
<Option Name="Version">1.0</Option>
<Option Name="GUID">{0CA27A95-0B81-4724-84BF-8F8ED4E421AE}</Option>
</Option>
</PersonalityInfo>
<Delphi.Personality>
<Source>
<Source Name="MainSource">GUIBase.dpk</Source>
</Source>
<FileVersion>
<FileVersion Name="Version">7.0</FileVersion>
</FileVersion>
<Compiler>
<Compiler Name="A">8</Compiler>
<Compiler Name="B">0</Compiler>
<Compiler Name="C">1</Compiler>
<Compiler Name="D">1</Compiler>
<Compiler Name="E">0</Compiler>
<Compiler Name="F">0</Compiler>
<Compiler Name="G">1</Compiler>
<Compiler Name="H">1</Compiler>
<Compiler Name="I">1</Compiler>
<Compiler Name="J">0</Compiler>
<Compiler Name="K">0</Compiler>
<Compiler Name="L">1</Compiler>
<Compiler Name="M">0</Compiler>
<Compiler Name="N">1</Compiler>
<Compiler Name="O">0</Compiler>
<Compiler Name="P">1</Compiler>
<Compiler Name="Q">0</Compiler>
<Compiler Name="R">0</Compiler>
<Compiler Name="S">0</Compiler>
<Compiler Name="T">0</Compiler>
<Compiler Name="U">0</Compiler>
<Compiler Name="V">1</Compiler>
<Compiler Name="W">1</Compiler>
<Compiler Name="X">1</Compiler>
<Compiler Name="Y">1</Compiler>
<Compiler Name="Z">1</Compiler>
<Compiler Name="ShowHints">True</Compiler>
<Compiler Name="ShowWarnings">True</Compiler>
<Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
<Compiler Name="NamespacePrefix"></Compiler>
<Compiler Name="GenerateDocumentation">False</Compiler>
<Compiler Name="DefaultNamespace"></Compiler>
<Compiler Name="SymbolDeprecated">True</Compiler>
<Compiler Name="SymbolLibrary">True</Compiler>
<Compiler Name="SymbolPlatform">True</Compiler>
<Compiler Name="SymbolExperimental">True</Compiler>
<Compiler Name="UnitLibrary">True</Compiler>
<Compiler Name="UnitPlatform">True</Compiler>
<Compiler Name="UnitDeprecated">True</Compiler>
<Compiler Name="UnitExperimental">True</Compiler>
<Compiler Name="HResultCompat">True</Compiler>
<Compiler Name="HidingMember">True</Compiler>
<Compiler Name="HiddenVirtual">True</Compiler>
<Compiler Name="Garbage">True</Compiler>
<Compiler Name="BoundsError">True</Compiler>
<Compiler Name="ZeroNilCompat">True</Compiler>
<Compiler Name="StringConstTruncated">True</Compiler>
<Compiler Name="ForLoopVarVarPar">True</Compiler>
<Compiler Name="TypedConstVarPar">True</Compiler>
<Compiler Name="AsgToTypedConst">True</Compiler>
<Compiler Name="CaseLabelRange">True</Compiler>
<Compiler Name="ForVariable">True</Compiler>
<Compiler Name="ConstructingAbstract">True</Compiler>
<Compiler Name="ComparisonFalse">True</Compiler>
<Compiler Name="ComparisonTrue">True</Compiler>
<Compiler Name="ComparingSignedUnsigned">True</Compiler>
<Compiler Name="CombiningSignedUnsigned">True</Compiler>
<Compiler Name="UnsupportedConstruct">True</Compiler>
<Compiler Name="FileOpen">True</Compiler>
<Compiler Name="FileOpenUnitSrc">True</Compiler>
<Compiler Name="BadGlobalSymbol">True</Compiler>
<Compiler Name="DuplicateConstructorDestructor">True</Compiler>
<Compiler Name="InvalidDirective">True</Compiler>
<Compiler Name="PackageNoLink">True</Compiler>
<Compiler Name="PackageThreadVar">True</Compiler>
<Compiler Name="ImplicitImport">True</Compiler>
<Compiler Name="HPPEMITIgnored">True</Compiler>
<Compiler Name="NoRetVal">True</Compiler>
<Compiler Name="UseBeforeDef">True</Compiler>
<Compiler Name="ForLoopVarUndef">True</Compiler>
<Compiler Name="UnitNameMismatch">True</Compiler>
<Compiler Name="NoCFGFileFound">True</Compiler>
<Compiler Name="ImplicitVariants">True</Compiler>
<Compiler Name="UnicodeToLocale">True</Compiler>
<Compiler Name="LocaleToUnicode">True</Compiler>
<Compiler Name="ImagebaseMultiple">True</Compiler>
<Compiler Name="SuspiciousTypecast">True</Compiler>
<Compiler Name="PrivatePropAccessor">True</Compiler>
<Compiler Name="UnsafeType">False</Compiler>
<Compiler Name="UnsafeCode">False</Compiler>
<Compiler Name="UnsafeCast">False</Compiler>
<Compiler Name="OptionTruncated">True</Compiler>
<Compiler Name="WideCharReduced">True</Compiler>
<Compiler Name="DuplicatesIgnored">True</Compiler>
<Compiler Name="UnitInitSeq">True</Compiler>
<Compiler Name="LocalPInvoke">True</Compiler>
<Compiler Name="MessageDirective">True</Compiler>
<Compiler Name="CodePage"></Compiler> <Compiler Name="TypeInfoImplicitlyAdded">True</Compiler>
<Compiler Name="XMLWhitespaceNotAllowed">True</Compiler>
<Compiler Name="XMLUnknownEntity">True</Compiler>
<Compiler Name="XMLInvalidNameStart">True</Compiler>
<Compiler Name="XMLInvalidName">True</Compiler>
<Compiler Name="XMLExpectedCharacter">True</Compiler>
<Compiler Name="XMLCRefNoResolve">True</Compiler>
<Compiler Name="XMLNoParm">True</Compiler>
<Compiler Name="XMLNoMatchingParm">True</Compiler>
</Compiler>
<Linker>
<Linker Name="MapFile">3</Linker>
<Linker Name="OutputObjs">0</Linker>
<Linker Name="GenerateHpps">False</Linker>
<Linker Name="ConsoleApp">1</Linker>
<Linker Name="DebugInfo">True</Linker>
<Linker Name="RemoteSymbols">False</Linker>
<Linker Name="GenerateDRC">False</Linker>
<Linker Name="MinStackSize">16384</Linker>
<Linker Name="MaxStackSize">1048576</Linker>
<Linker Name="ImageBase">4194304</Linker>
<Linker Name="ExeDescription"></Linker>
</Linker>
<Directories>
<Directories Name="OutputDir"></Directories>
<Directories Name="UnitOutputDir">.\</Directories>
<Directories Name="PackageDLLOutputDir">..\..\Output\Debug\Cliente</Directories>
<Directories Name="PackageDCPOutputDir">..\Lib</Directories>
<Directories Name="SearchPath">..\Lib</Directories>
<Directories Name="Packages"></Directories>
<Directories Name="Conditionals"></Directories>
<Directories Name="DebugSourceDirs"></Directories>
<Directories Name="UsePackages">False</Directories>
</Directories>
<Parameters>
<Parameters Name="RunParams"></Parameters>
<Parameters Name="HostApplication"></Parameters>
<Parameters Name="Launcher"></Parameters>
<Parameters Name="UseLauncher">False</Parameters>
<Parameters Name="DebugCWD"></Parameters>
<Parameters Name="Debug Symbols Search Path"></Parameters>
<Parameters Name="LoadAllSymbols">True</Parameters>
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
</Parameters>
<VersionInfo>
<VersionInfo Name="IncludeVerInfo">True</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">1</VersionInfo>
<VersionInfo Name="MinorVer">0</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo>
<VersionInfo Name="Special">False</VersionInfo>
<VersionInfo Name="Private">False</VersionInfo>
<VersionInfo Name="DLL">False</VersionInfo>
<VersionInfo Name="Locale">3082</VersionInfo>
<VersionInfo Name="CodePage">1252</VersionInfo>
</VersionInfo>
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys> <Signing>
<Signing Name="SignAssembly">False</Signing>
</Signing>
<buildevents/>
</Delphi.Personality>
</BorlandProject>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=6006
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=0
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
TerminateBtn Operation=2
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=2
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
ProxyURL=
ProxyUser=
ProxyPassword=
ProxyPort=8080
TrakerUser=
TrakerPassword=
TrakerAssignTo=
TrakerProject=
TrakerCategory=
TrakerTrialID=
ZipPassword=
PreBuildEvent=
PostSuccessfulBuildEvent=
PostFailureBuildEvent=
ExceptionDialogType=2
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesAndProcessesSections=1
loSaveAssemblerAndCPUSections=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soAppUpTime=1
soExcDate=1
soExcAddress=1
soExcModuleName=1
soExcModuleVersion=1
soExcType=1
soExcMessage=1
soExcID=1
soExcCount=1
soExcStatus=1
soExcNote=1
soUserID=1
soUserName=1
soUserEmail=1
soUserPrivileges=1
soUserCompany=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soCmpDisplayDPI=1
soCmpVideoCard=1
soCmpPrinter=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soOSCharset=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
soCustomData=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=1
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndAddComputerNameInFileName=0
edoSendErrorReportChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=0
edoShowSendErrorReportOption=1
edoShowAttachScreenshotOption=1
edoShowCustomButton=0
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoDoNotStoreProcNames=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
boHandleSafeCallExceptions=1
boCallRTLExceptionEvent=0
boCatchHandledExceptions=0
loCatchLeaks=0
loGroupsSonLeaks=1
loHideBorlandLeaks=1
loFreeAllLeaks=1
loCatchLeaksExceptions=1
cfoReduceFileSize=1
cfoCheckFileCorruption=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtErrorMsgCaption=1
mtErrorMsgCaption0="Error."
Count mtDialog_Caption=1
mtDialog_Caption0="Error occurred"
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_ProcessesCaption=1
mtDialog_ProcessesCaption0="Processes"
Count mtDialog_ProcessesHeader=1
mtDialog_ProcessesHeader0="Processes Information"
Count mtDialog_AsmCaption=1
mtDialog_AsmCaption0="Assembler"
Count mtDialog_AsmHeader=1
mtDialog_AsmHeader0="Assembler Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU 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_CustomButtonCaption=1
mtDialog_CustomButtonCaption0="%26Help"
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 mtMSDialog_ErrorMsgCaption=1
mtMSDialog_ErrorMsgCaption0="The application has encountered a problem. We are sorry for the inconvenience."
Count mtMSDialog_RestartCaption=1
mtMSDialog_RestartCaption0="Restart application."
Count mtMSDialog_TerminateCaption=1
mtMSDialog_TerminateCaption0="Terminate application."
Count mtMSDialog_PleaseCaption=1
mtMSDialog_PleaseCaption0="Please tell us about this problem."
Count mtMSDialog_DescriptionCaption=1
mtMSDialog_DescriptionCaption0="We have created an error report that you can send to us. We will treat this report as confidential and anonymous."
Count mtMSDialog_SeeDetailsCaption=1
mtMSDialog_SeeDetailsCaption0="To see what data the error report contains,"
Count mtMSDialog_SeeClickCaption=1
mtMSDialog_SeeClickCaption0="click here."
Count mtMSDialog_HowToReproduceCaption=1
mtMSDialog_HowToReproduceCaption0="What were you doing when the problem happended (optional)?"
Count mtMSDialog_EmailCaption=1
mtMSDialog_EmailCaption0="Email address (optional):"
Count mtMSDialog_SendButtonCaption=1
mtMSDialog_SendButtonCaption0="%26Send Error Report"
Count mtMSDialog_NoSendButtonCaption=1
mtMSDialog_NoSendButtonCaption0="%26Don't Send"
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_AppUpTime=1
mtLog_AppUpTime0="Up Time"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModuleName=1
mtLog_ExcModuleName0="Module Name"
Count mtLog_ExcModuleVersion=1
mtLog_ExcModuleVersion0="Module Version"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ExcID=1
mtLog_ExcID0="ID"
Count mtLog_ExcCount=1
mtLog_ExcCount0="Count"
Count mtLog_ExcStatus=1
mtLog_ExcStatus0="Status"
Count mtLog_ExcNote=1
mtLog_ExcNote0="Note"
Count mtLog_UserHeader=1
mtLog_UserHeader0="User"
Count mtLog_UserID=1
mtLog_UserID0="ID"
Count mtLog_UserName=1
mtLog_UserName0="Name"
Count mtLog_UserEmail=1
mtLog_UserEmail0="Email"
Count mtLog_UserCompany=1
mtLog_UserCompany0="Company"
Count mtLog_UserPrivileges=1
mtLog_UserPrivileges0="Privileges"
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_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_CmpDisplayDPI=1
mtLog_CmpDisplayDPI0="Display DPI"
Count mtLog_CmpVideoCard=1
mtLog_CmpVideoCard0="Video Card"
Count mtLog_CmpPrinter=1
mtLog_CmpPrinter0="Printer"
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_OSCharset=1
mtLog_OSCharset0="Charset"
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 mtCallStack_LeakCaption=1
mtCallStack_LeakCaption0="Memory Leak"
Count mtCallStack_LeakData=1
mtCallStack_LeakData0="Data"
Count mtCallStack_LeakType=1
mtCallStack_LeakType0="Type"
Count mtCallStack_LeakSize=1
mtCallStack_LeakSize0="Total size"
Count mtCallStack_LeakCount=1
mtCallStack_LeakCount0="Count"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Login=1
mtSendDialog_Login0="Login..."
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 mtSendDialog_Sent=1
mtSendDialog_Sent0="Message sent."
Count mtSendDialog_SelectProject=1
mtSendDialog_SelectProject0="Select project..."
Count mtSendDialog_Searching=1
mtSendDialog_Searching0="Searching..."
Count mtSendDialog_Modifying=1
mtSendDialog_Modifying0="Modifying..."
Count mtSendDialog_Disconnecting=1
mtSendDialog_Disconnecting0="Disconnecting..."
Count mtSendDialog_Disconnected=1
mtSendDialog_Disconnected0="Disconnected."
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 mtProcesses_ID=1
mtProcesses_ID0="ID"
Count mtProcesses_Name=1
mtProcesses_Name0="Name"
Count mtProcesses_Description=1
mtProcesses_Description0="Description"
Count mtProcesses_Version=1
mtProcesses_Version0="Version"
Count mtProcesses_Memory=1
mtProcesses_Memory0="Memory"
Count mtProcesses_Priority=1
mtProcesses_Priority0="Priority"
Count mtProcesses_Threads=1
mtProcesses_Threads0="Threads"
Count mtProcesses_Path=1
mtProcesses_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."
Count mtSend_BugClosedMsg=2
mtSend_BugClosedMsg0="These BUG is just closed."
mtSend_BugClosedMsg1="Contact the program support to obtain an update."
Count mtSend_UnknownErrorMsg=1
mtSend_UnknownErrorMsg0="Unknown error."
Count mtSend_InvalidLoginMsg=1
mtSend_InvalidLoginMsg0="Invalid login request."
Count mtSend_InvalidSearchMsg=1
mtSend_InvalidSearchMsg0="Invalid search request."
Count mtSend_InvalidSelectionMsg=1
mtSend_InvalidSelectionMsg0="Invalid selection request."
Count mtSend_InvalidInsertMsg=1
mtSend_InvalidInsertMsg0="Invalid insert request."
Count mtSend_InvalidModifyMsg=1
mtSend_InvalidModifyMsg0="Invalid modify request."
Count mtFileCrackedMsg=2
mtFileCrackedMsg0="This file is cracked."
mtFileCrackedMsg1="The application will be closed."
Count mtException_LeakMultiFree=1
mtException_LeakMultiFree0="Multi Free memory leak."
Count mtException_LeakMemoryOverrun=1
mtException_LeakMemoryOverrun0="Memory Overrun leak."
Count mtException_AntiFreeze=1
mtException_AntiFreeze0="The application seems to be frozen."
Count mtInvalidEmailMsg=1
mtInvalidEmailMsg0="Invalid email."
TextsCollection=English
EurekaLog Last Line -->

View File

@ -0,0 +1,42 @@
-$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
-vn
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-N0".\"
-LE"..\..\Output\Debug\Cliente"
-LN"..\Lib"
-U"..\Lib"
-O"..\Lib"
-I"..\Lib"
-R"..\Lib"

View File

@ -0,0 +1,70 @@
package GUIBase;
{$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}
{$IMPLICITBUILD ON}
{$DEFINE DEBUG}
requires
rtl,
vcl,
dbrtl,
vcldb,
dxBarD10,
dxBarExtItemsD10,
dxPScxCommonD10,
dxPScxGridLnkD10,
dxPsPrVwAdvD10,
dxLayoutControlD10,
frx10,
frxe10,
fs10,
JvAppFrmD11R,
JvCtrlsD11R,
Base;
contains
uEditorBase in 'uEditorBase.pas' {fEditorBase: TCustomEditor},
uEditorGridBase in 'uEditorGridBase.pas' {fEditorGridBase: TCustomEditor},
uEditorItem in 'uEditorItem.pas' {fEditorItem: TCustomEditor},
uEditorPreview in 'uEditorPreview.pas' {fEditorPreview: TCustomEditor},
uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame},
uViewBase in 'uViewBase.pas' {frViewBase: TFrame},
uEditorDBBase in 'uEditorDBBase.pas' {fEditorDBBase: TCustomEditor},
uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor},
uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame},
uViewGridBase in 'uViewGridBase.pas' {frViewGridBase: TFrame},
uViewFormaPago in 'uViewFormaPago.pas' {frViewFormaPago: TFrame},
uViewObservaciones in 'uViewObservaciones.pas' {frViewObservaciones: TFrame},
uViewTotales in 'uViewTotales.pas' {frViewTotales: TFrame},
uViewDetallesBase in 'uViewDetallesBase.pas' {frViewDetallesBase: TFrame},
uViewIncidencias in 'uViewIncidencias.pas' {frViewIncidencias: TFrame},
uViewDetallesDTO in 'uViewDetallesDTO.pas' {frViewDetallesDTO: TCustomView},
uViewDetallesGenerico in 'uViewDetallesGenerico.pas' {frViewDetallesGenerico: TFrame},
uViewGrid2Niveles in 'uViewGrid2Niveles.pas' {frViewGrid2Niveles: TFrame},
uEditorBasico in 'uEditorBasico.pas' {fEditorBasico},
uDialogBase in 'uDialogBase.pas' {fDialogBase},
uViewFiltroBase in 'uViewFiltroBase.pas' {frViewFiltroBase: TFrame},
uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame};
end.

View File

@ -0,0 +1,626 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{0ca27a95-0b81-4724-84bf-8f8ed4e421ae}</ProjectGuid>
<MainSource>GUIBase.dpk</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>..\..\Output\Debug\Cliente\GUIBase.bpl</DCC_DependencyCheckOutputName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_Optimize>False</DCC_Optimize>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_MapFile>3</DCC_MapFile>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<DCC_DebugVN>True</DCC_DebugVN>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\Output\Release\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>..\Lib</DCC_UnitSearchPath>
<DCC_ResourcePath>..\Lib</DCC_ResourcePath>
<DCC_ObjPath>..\Lib</DCC_ObjPath>
<DCC_IncludePath>..\Lib</DCC_IncludePath>
<DCC_Define>RELEASE</DCC_Define>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version>
<DCC_Optimize>False</DCC_Optimize>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
<DCC_MapFile>3</DCC_MapFile>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<DCC_DebugVN>True</DCC_DebugVN>
<DCC_DcuOutput>.\</DCC_DcuOutput>
<DCC_ObjOutput>.\</DCC_ObjOutput>
<DCC_HppOutput>.\</DCC_HppOutput>
<DCC_BplOutput>..\..\Output\Debug\Cliente</DCC_BplOutput>
<DCC_DcpOutput>..\Lib</DCC_DcpOutput>
<DCC_UnitSearchPath>..\Lib</DCC_UnitSearchPath>
<DCC_ResourcePath>..\Lib</DCC_ResourcePath>
<DCC_ObjPath>..\Lib</DCC_ObjPath>
<DCC_IncludePath>..\Lib</DCC_IncludePath>
<DCC_Define>DEBUG</DCC_Define>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">True</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">GUIBase.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
<ItemGroup>
<DelphiCompile Include="GUIBase.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="C:\Documents and Settings\Usuario\Base.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dbrtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxBarD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxBarExtItemsD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxLayoutControlD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPScxCommonD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPScxGridLnkD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPsPrVwAdvD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\frx10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\frxe10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\fs10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvAppFrmD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCtrlsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\rtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcldb.dcp" />
<DCCReference Include="uDialogBase.pas">
<Form>fDialogBase</Form>
</DCCReference>
<DCCReference Include="uEditorBase.pas">
<Form>fEditorBase</Form>
</DCCReference>
<DCCReference Include="uEditorBasico.pas">
<Form>fEditorBasico</Form>
</DCCReference>
<DCCReference Include="uEditorDBBase.pas">
<Form>fEditorDBBase</Form>
</DCCReference>
<DCCReference Include="uEditorDBItem.pas">
<Form>fEditorDBItem</Form>
</DCCReference>
<DCCReference Include="uEditorGridBase.pas">
<Form>fEditorGridBase</Form>
</DCCReference>
<DCCReference Include="uEditorItem.pas">
<Form>fEditorItem</Form>
</DCCReference>
<DCCReference Include="uEditorPreview.pas">
<Form>fEditorPreview</Form>
</DCCReference>
<DCCReference Include="uViewBarraSeleccion.pas">
<Form>frViewBarraSeleccion</Form>
</DCCReference>
<DCCReference Include="uViewBase.pas">
<Form>frViewBase</Form>
</DCCReference>
<DCCReference Include="uViewDetallesBase.pas">
<Form>frViewDetallesBase</Form>
</DCCReference>
<DCCReference Include="uViewDetallesDTO.pas">
<Form>frViewDetallesDTO</Form>
</DCCReference>
<DCCReference Include="uViewDetallesGenerico.pas">
<Form>frViewDetallesGenerico</Form>
</DCCReference>
<DCCReference Include="uViewFiltroBase.pas">
<Form>frViewFiltroBase</Form>
</DCCReference>
<DCCReference Include="uViewFormaPago.pas">
<Form>frViewFormaPago</Form>
</DCCReference>
<DCCReference Include="uViewGrid.pas">
<Form>frViewGrid</Form>
</DCCReference>
<DCCReference Include="uViewGrid2Niveles.pas">
<Form>frViewGrid2Niveles</Form>
</DCCReference>
<DCCReference Include="uViewGridBase.pas">
<Form>frViewGridBase</Form>
</DCCReference>
<DCCReference Include="uViewIncidencias.pas">
<Form>frViewIncidencias</Form>
</DCCReference>
<DCCReference Include="uViewObservaciones.pas">
<Form>frViewObservaciones</Form>
</DCCReference>
<DCCReference Include="uViewPreview.pas">
<Form>frViewPreview</Form>
</DCCReference>
<DCCReference Include="uViewTotales.pas">
<Form>frViewTotales</Form>
</DCCReference>
</ItemGroup>
</Project>
<!-- EurekaLog First Line
[Exception Log]
EurekaLog Version=6006
Activate=0
Activate Handle=1
Save Log File=1
Foreground Tab=0
Freeze Activate=0
Freeze Timeout=0
SMTP From=eurekalog@email.com
SMTP Host=
SMTP Port=25
SMTP UserID=
SMTP Password=
Append to Log=0
TerminateBtn Operation=2
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=2
AutoCrashNumber=10
AutoCrashMinutes=1
WebURL=
WebUserID=
WebPassword=
WebPort=0
AttachedFiles=
ProxyURL=
ProxyUser=
ProxyPassword=
ProxyPort=8080
TrakerUser=
TrakerPassword=
TrakerAssignTo=
TrakerProject=
TrakerCategory=
TrakerTrialID=
ZipPassword=
PreBuildEvent=
PostSuccessfulBuildEvent=
PostFailureBuildEvent=
ExceptionDialogType=2
Count=0
EMail Message Line Count=0
loNoDuplicateErrors=0
loAppendReproduceText=0
loDeleteLogAtVersionChange=0
loAddComputerNameInLogFileName=0
loSaveModulesAndProcessesSections=1
loSaveAssemblerAndCPUSections=1
soAppStartDate=1
soAppName=1
soAppVersionNumber=1
soAppParameters=1
soAppCompilationDate=1
soAppUpTime=1
soExcDate=1
soExcAddress=1
soExcModuleName=1
soExcModuleVersion=1
soExcType=1
soExcMessage=1
soExcID=1
soExcCount=1
soExcStatus=1
soExcNote=1
soUserID=1
soUserName=1
soUserEmail=1
soUserPrivileges=1
soUserCompany=1
soActCtlsFormClass=1
soActCtlsFormText=1
soActCtlsControlClass=1
soActCtlsControlText=1
soCmpName=1
soCmpTotalMemory=1
soCmpFreeMemory=1
soCmpTotalDisk=1
soCmpFreeDisk=1
soCmpSysUpTime=1
soCmpProcessor=1
soCmpDisplayMode=1
soCmpDisplayDPI=1
soCmpVideoCard=1
soCmpPrinter=1
soOSType=1
soOSBuildN=1
soOSUpdate=1
soOSLanguage=1
soOSCharset=1
soNetIP=1
soNetSubmask=1
soNetGateway=1
soNetDNS1=1
soNetDNS2=1
soNetDHCP=1
soCustomData=1
sndShowSendDialog=1
sndShowSuccessFailureMsg=0
sndSendEntireLog=0
sndSendXMLLogCopy=0
sndSendScreenshot=1
sndUseOnlyActiveWindow=0
sndSendLastHTMLPage=1
sndSendInSeparatedThread=0
sndAddDateInFileName=0
sndAddComputerNameInFileName=0
edoSendErrorReportChecked=1
edoAttachScreenshotChecked=1
edoShowCopyToClipOption=1
edoShowDetailsButton=1
edoShowInDetailedMode=0
edoShowInTopMostMode=0
edoUseEurekaLogLookAndFeel=0
edoShowSendErrorReportOption=1
edoShowAttachScreenshotOption=1
edoShowCustomButton=0
csoShowDLLs=1
csoShowBPLs=1
csoShowBorlandThreads=1
csoShowWindowsThreads=1
csoDoNotStoreProcNames=0
boPauseBorlandThreads=0
boDoNotPauseMainThread=0
boPauseWindowsThreads=0
boUseMainModuleOptions=1
boCopyLogInCaseOfError=1
boSaveCompressedCopyInCaseOfError=0
boHandleSafeCallExceptions=1
boCallRTLExceptionEvent=0
boCatchHandledExceptions=0
loCatchLeaks=0
loGroupsSonLeaks=1
loHideBorlandLeaks=1
loFreeAllLeaks=1
loCatchLeaksExceptions=1
cfoReduceFileSize=1
cfoCheckFileCorruption=0
Count mtInformationMsgCaption=1
mtInformationMsgCaption0="Information."
Count mtQuestionMsgCaption=1
mtQuestionMsgCaption0="Question."
Count mtErrorMsgCaption=1
mtErrorMsgCaption0="Error."
Count mtDialog_Caption=1
mtDialog_Caption0="Error occurred"
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_ProcessesCaption=1
mtDialog_ProcessesCaption0="Processes"
Count mtDialog_ProcessesHeader=1
mtDialog_ProcessesHeader0="Processes Information"
Count mtDialog_AsmCaption=1
mtDialog_AsmCaption0="Assembler"
Count mtDialog_AsmHeader=1
mtDialog_AsmHeader0="Assembler Information"
Count mtDialog_CPUCaption=1
mtDialog_CPUCaption0="CPU"
Count mtDialog_CPUHeader=1
mtDialog_CPUHeader0="CPU 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_CustomButtonCaption=1
mtDialog_CustomButtonCaption0="%26Help"
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 mtMSDialog_ErrorMsgCaption=1
mtMSDialog_ErrorMsgCaption0="The application has encountered a problem. We are sorry for the inconvenience."
Count mtMSDialog_RestartCaption=1
mtMSDialog_RestartCaption0="Restart application."
Count mtMSDialog_TerminateCaption=1
mtMSDialog_TerminateCaption0="Terminate application."
Count mtMSDialog_PleaseCaption=1
mtMSDialog_PleaseCaption0="Please tell us about this problem."
Count mtMSDialog_DescriptionCaption=1
mtMSDialog_DescriptionCaption0="We have created an error report that you can send to us. We will treat this report as confidential and anonymous."
Count mtMSDialog_SeeDetailsCaption=1
mtMSDialog_SeeDetailsCaption0="To see what data the error report contains,"
Count mtMSDialog_SeeClickCaption=1
mtMSDialog_SeeClickCaption0="click here."
Count mtMSDialog_HowToReproduceCaption=1
mtMSDialog_HowToReproduceCaption0="What were you doing when the problem happended (optional)?"
Count mtMSDialog_EmailCaption=1
mtMSDialog_EmailCaption0="Email address (optional):"
Count mtMSDialog_SendButtonCaption=1
mtMSDialog_SendButtonCaption0="%26Send Error Report"
Count mtMSDialog_NoSendButtonCaption=1
mtMSDialog_NoSendButtonCaption0="%26Don't Send"
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_AppUpTime=1
mtLog_AppUpTime0="Up Time"
Count mtLog_ExcHeader=1
mtLog_ExcHeader0="Exception"
Count mtLog_ExcDate=1
mtLog_ExcDate0="Date"
Count mtLog_ExcAddress=1
mtLog_ExcAddress0="Address"
Count mtLog_ExcModuleName=1
mtLog_ExcModuleName0="Module Name"
Count mtLog_ExcModuleVersion=1
mtLog_ExcModuleVersion0="Module Version"
Count mtLog_ExcType=1
mtLog_ExcType0="Type"
Count mtLog_ExcMessage=1
mtLog_ExcMessage0="Message"
Count mtLog_ExcID=1
mtLog_ExcID0="ID"
Count mtLog_ExcCount=1
mtLog_ExcCount0="Count"
Count mtLog_ExcStatus=1
mtLog_ExcStatus0="Status"
Count mtLog_ExcNote=1
mtLog_ExcNote0="Note"
Count mtLog_UserHeader=1
mtLog_UserHeader0="User"
Count mtLog_UserID=1
mtLog_UserID0="ID"
Count mtLog_UserName=1
mtLog_UserName0="Name"
Count mtLog_UserEmail=1
mtLog_UserEmail0="Email"
Count mtLog_UserCompany=1
mtLog_UserCompany0="Company"
Count mtLog_UserPrivileges=1
mtLog_UserPrivileges0="Privileges"
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_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_CmpDisplayDPI=1
mtLog_CmpDisplayDPI0="Display DPI"
Count mtLog_CmpVideoCard=1
mtLog_CmpVideoCard0="Video Card"
Count mtLog_CmpPrinter=1
mtLog_CmpPrinter0="Printer"
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_OSCharset=1
mtLog_OSCharset0="Charset"
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 mtCallStack_LeakCaption=1
mtCallStack_LeakCaption0="Memory Leak"
Count mtCallStack_LeakData=1
mtCallStack_LeakData0="Data"
Count mtCallStack_LeakType=1
mtCallStack_LeakType0="Type"
Count mtCallStack_LeakSize=1
mtCallStack_LeakSize0="Total size"
Count mtCallStack_LeakCount=1
mtCallStack_LeakCount0="Count"
Count mtSendDialog_Caption=1
mtSendDialog_Caption0="Send."
Count mtSendDialog_Message=1
mtSendDialog_Message0="Message"
Count mtSendDialog_Resolving=1
mtSendDialog_Resolving0="Resolving DNS..."
Count mtSendDialog_Login=1
mtSendDialog_Login0="Login..."
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 mtSendDialog_Sent=1
mtSendDialog_Sent0="Message sent."
Count mtSendDialog_SelectProject=1
mtSendDialog_SelectProject0="Select project..."
Count mtSendDialog_Searching=1
mtSendDialog_Searching0="Searching..."
Count mtSendDialog_Modifying=1
mtSendDialog_Modifying0="Modifying..."
Count mtSendDialog_Disconnecting=1
mtSendDialog_Disconnecting0="Disconnecting..."
Count mtSendDialog_Disconnected=1
mtSendDialog_Disconnected0="Disconnected."
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 mtProcesses_ID=1
mtProcesses_ID0="ID"
Count mtProcesses_Name=1
mtProcesses_Name0="Name"
Count mtProcesses_Description=1
mtProcesses_Description0="Description"
Count mtProcesses_Version=1
mtProcesses_Version0="Version"
Count mtProcesses_Memory=1
mtProcesses_Memory0="Memory"
Count mtProcesses_Priority=1
mtProcesses_Priority0="Priority"
Count mtProcesses_Threads=1
mtProcesses_Threads0="Threads"
Count mtProcesses_Path=1
mtProcesses_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."
Count mtSend_BugClosedMsg=2
mtSend_BugClosedMsg0="These BUG is just closed."
mtSend_BugClosedMsg1="Contact the program support to obtain an update."
Count mtSend_UnknownErrorMsg=1
mtSend_UnknownErrorMsg0="Unknown error."
Count mtSend_InvalidLoginMsg=1
mtSend_InvalidLoginMsg0="Invalid login request."
Count mtSend_InvalidSearchMsg=1
mtSend_InvalidSearchMsg0="Invalid search request."
Count mtSend_InvalidSelectionMsg=1
mtSend_InvalidSelectionMsg0="Invalid selection request."
Count mtSend_InvalidInsertMsg=1
mtSend_InvalidInsertMsg0="Invalid insert request."
Count mtSend_InvalidModifyMsg=1
mtSend_InvalidModifyMsg0="Invalid modify request."
Count mtFileCrackedMsg=2
mtFileCrackedMsg0="This file is cracked."
mtFileCrackedMsg1="The application will be closed."
Count mtException_LeakMultiFree=1
mtException_LeakMultiFree0="Multi Free memory leak."
Count mtException_LeakMemoryOverrun=1
mtException_LeakMemoryOverrun0="Memory Overrun leak."
Count mtException_AntiFreeze=1
mtException_AntiFreeze0="The application seems to be frozen."
Count mtInvalidEmailMsg=1
mtInvalidEmailMsg0="Invalid email."
TextsCollection=English
EurekaLog Last Line -->

View File

@ -0,0 +1,38 @@
/* VER185
Generated by the CodeGear 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
/* C:\Codigo Tecsitel\Source\GUIBase\uViewBase.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uEditorBase.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewFiltroBase.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewGridBase.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uEditorItem.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uEditorDBBase.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uEditorGridBase.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewPreview.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uEditorPreview.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uEditorDBItem.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewBarraSeleccion.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewFormaPago.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewObservaciones.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewTotales.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewDetallesBase.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewIncidencias.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewDetallesDTO.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewDetallesGenerico.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewGrid2Niveles.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uEditorBasico.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uDialogBase.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\uViewGrid.dfm */
/* C:\Codigo Tecsitel\Source\GUIBase\GUIBase.res */
/* C:\Codigo Tecsitel\Source\GUIBase\GUIBase.drf */

22
Source/GUIBase/GUIBase.rc Normal file
View File

@ -0,0 +1,22 @@
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "0C0A04E4"
BEGIN
VALUE "FileVersion", "1.0.0.0\0"
VALUE "ProductVersion", "1.0.0.0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0C0A, 1252
END
END

BIN
Source/GUIBase/GUIBase.res Normal file

Binary file not shown.

View File

@ -0,0 +1,106 @@
object fDialogBase: TfDialogBase
Left = 0
Top = 0
BorderStyle = bsDialog
Caption = 'fDialogBase'
ClientHeight = 430
ClientWidth = 623
Color = clWindow
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poMainFormCenter
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object pnlBotones: TFlowPanel
Left = 0
Top = 374
Width = 623
Height = 56
Align = alBottom
FlowStyle = fsBottomTopRightLeft
Padding.Left = 20
Padding.Top = 20
Padding.Right = 20
Padding.Bottom = 15
ParentBackground = False
TabOrder = 0
VerticalAlignment = taAlignTop
object Button1: TButton
Left = 527
Top = 15
Width = 75
Height = 25
Action = actCancelar
TabOrder = 0
end
object Button2: TButton
AlignWithMargins = True
Left = 437
Top = 15
Width = 75
Height = 25
Margins.Left = 0
Margins.Top = 0
Margins.Right = 15
Margins.Bottom = 0
Action = actAceptar
TabOrder = 1
end
end
object FlowPanel1: TFlowPanel
Left = 0
Top = 0
Width = 623
Height = 374
Align = alClient
Padding.Left = 30
Padding.Top = 30
Padding.Right = 30
Padding.Bottom = 30
ParentColor = True
TabOrder = 1
object lblInstruccion: TLabel
AlignWithMargins = True
Left = 31
Top = 31
Width = 78
Height = 19
Margins.Left = 0
Margins.Top = 0
Margins.Right = 0
Margins.Bottom = 20
Align = alTop
Caption = 'Instrucci'#243'n'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
end
object Label2: TLabel
Left = 31
Top = 70
Width = 571
Height = 81
Align = alTop
AutoSize = False
Caption = 'Comentarios'
end
end
object ActionList1: TActionList
Left = 16
Top = 384
object actAceptar: TAction
Caption = '&Aceptar'
end
object actCancelar: TAction
Caption = '&Cancelar'
end
end
end

View File

@ -0,0 +1,39 @@
unit uDialogBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ActnList;
type
TfDialogBase = class(TForm)
pnlBotones: TFlowPanel;
Button1: TButton;
Button2: TButton;
ActionList1: TActionList;
actAceptar: TAction;
actCancelar: TAction;
FlowPanel1: TFlowPanel;
lblInstruccion: TLabel;
Label2: TLabel;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
uses
uDataModuleBase, JvNavigationPane;
procedure TfDialogBase.FormShow(Sender: TObject);
begin
lblInstruccion.Font.Color := dmBase.StyleManager.Colors.HeaderColorTo;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,460 @@
unit uEditorBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
uGUIBase, uCustomEditor, ToolWin, ComCtrls, JvExControls,
JvComponent, JvNavigationPane, ActnList, TBX, TB2Item, ImgList,
PngImageList, StdActns, JvFormAutoSize, AppEvnts, uCustomView, uViewBase,
JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
JvComponentBase, TB2Dock, TB2Toolbar, dxLayoutLookAndFeels, TBXStatusBars,
JvExComCtrls, JvStatusBar;
type
IEditorBase = interface(ICustomEditor)
['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}']
function ShowModal : Integer;
procedure Show;
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;
TBXSeparatorItem7: TTBXSeparatorItem;
TBXSeparatorItem8: TTBXSeparatorItem;
TBXSeparatorItem9: TTBXSeparatorItem;
TBXSubmenuItem1: TTBXSubmenuItem;
TBXSubmenuItem4: TTBXSubmenuItem;
TBXSubmenuItem5: TTBXSubmenuItem;
TBXSubmenuItem6: TTBXSubmenuItem;
TBXSubmenuItem7: TTBXSubmenuItem;
JvFormStorage: TJvFormStorage;
JvAppRegistryStorage: TJvAppRegistryStorage;
Image1: TImage;
TBXSeparatorItem15: TTBXSeparatorItem;
StatusBarImages: TPngImageList;
StatusBar: TJvStatusBar;
procedure actCerrarExecute(Sender: TObject);
procedure actGuardarCerrarExecute(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure CustomEditorActivate(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
procedure actGuardarExecute(Sender: TObject);
procedure actPrevisualizarExecute(Sender: TObject);
procedure actImprimirExecute(Sender: TObject);
procedure actNuevoExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actConfPaginaExecute(Sender: TObject);
procedure actCancelarCambiosExecute(Sender: TObject);
procedure actDuplicarExecute(Sender: TObject);
procedure actRefrescarExecute(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actGuardarCerrarUpdate(Sender: TObject);
procedure actGuardarUpdate(Sender: TObject);
protected
procedure CreateParams(Var params: TCreateParams); override;
procedure ActualizarEstadoEditor; virtual;
function ModifiedQuery : Boolean;
procedure ModificarInterno; virtual;
procedure EliminarInterno; virtual;
procedure GuardarInterno; virtual;
procedure NuevoInterno; virtual;
procedure ImprimirInterno; virtual;
procedure PrevisualizarInterno; virtual;
procedure ConfPaginaInterno; virtual;
procedure RefrescarInterno; virtual;
procedure CancelarCambiosInterno; virtual;
procedure CerrarInterno; virtual;
procedure DuplicarInterno; virtual;
procedure PonerTitulos(const ATitulo: String = ''); virtual;
procedure SetReadOnly(Value: Boolean); override;
public
constructor Create(AOwner: TComponent); override;
function ShowModal : Integer;
procedure Show;
published
procedure FormShow(Sender: TObject); virtual;
end;
TfEditorBaseClass = class of TfEditorBase;
implementation
{$R *.dfm}
uses
Menus, uDataModuleBase, cxControls, uDialogUtils;
{
********************************* TfEditorBase *********************************
}
procedure TfEditorBase.actCancelarCambiosExecute(Sender: TObject);
begin
CancelarCambiosInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actCerrarExecute(Sender: TObject);
begin
CerrarInterno;
end;
procedure TfEditorBase.actConfPaginaExecute(Sender: TObject);
begin
ConfPaginaInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actDuplicarExecute(Sender: TObject);
begin
DuplicarInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actEliminarExecute(Sender: TObject);
begin
if actEliminar.Enabled then
begin
EliminarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorBase.actEliminarUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := not ReadOnly;
end;
procedure TfEditorBase.actGuardarCerrarExecute(Sender: TObject);
begin
ShowHourglassCursor;
try
if actGuardar.Execute then
actCerrar.Execute;
finally
HideHourglassCursor;
end;
end;
procedure TfEditorBase.actGuardarCerrarUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := not ReadOnly;
end;
procedure TfEditorBase.actGuardarExecute(Sender: TObject);
begin
GuardarInterno;
ActualizarEstadoEditor;
end;
procedure TfEditorBase.actGuardarUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := not ReadOnly;
end;
procedure TfEditorBase.actImprimirExecute(Sender: TObject);
begin
if actImprimir.Enabled then
begin
ImprimirInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorBase.actModificarExecute(Sender: TObject);
begin
if actModificar.Enabled then
begin
ModificarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorBase.actModificarUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := not ReadOnly;
end;
procedure TfEditorBase.actNuevoExecute(Sender: TObject);
begin
if actNuevo.Enabled then
begin
NuevoInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorBase.actPrevisualizarExecute(Sender: TObject);
begin
if actPrevisualizar.Enabled then
begin
PrevisualizarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorBase.actRefrescarExecute(Sender: TObject);
begin
if actRefrescar.Enabled then
begin
RefrescarInterno;
ActualizarEstadoEditor;
end;
end;
procedure TfEditorBase.ActualizarEstadoEditor;
begin
PonerTitulos;
end;
procedure TfEditorBase.CancelarCambiosInterno;
begin
//
end;
procedure TfEditorBase.CerrarInterno;
begin
Close;
end;
procedure TfEditorBase.ConfPaginaInterno;
begin
//
end;
constructor TfEditorBase.Create(AOwner: TComponent);
var
APath : String;
begin
inherited;
with JvFormStorage do
begin
if Pos('_', Self.Name) = 0 then
APath := Self.Name
else
APath := Copy(Self.Name, 0, (Pos('_', Self.Name)-1));
AppStoragePath := APath;
end;
JvNavPanelHeader.StyleManager := dmBase.StyleManager;
end;
procedure TfEditorBase.CustomEditorActivate(Sender: TObject);
begin
PonerTitulos;
end;
procedure TfEditorBase.DuplicarInterno;
begin
//
end;
procedure TfEditorBase.EliminarInterno;
begin
//
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
ActualizarEstadoEditor;
if Assigned(Parent) then
begin
StatusBar.Visible := False;
actCerrar.ShortCut := 0
end
else begin
StatusBar.Visible := True;
actCerrar.ShortCut := ShortCut(VK_ESCAPE, []);
end;
end;
procedure TfEditorBase.GuardarInterno;
begin
//
end;
procedure TfEditorBase.ImprimirInterno;
begin
//
end;
procedure TfEditorBase.ModificarInterno;
begin
//
end;
function TfEditorBase.ModifiedQuery: Boolean;
var
Respuesta: Integer;
begin
Result := True;
if Modified then
begin
Respuesta := ShowConfirmMessage('Atención',
'Se han producido cambios',
'¿Desea guardar los cambios que se han producido antes de cerrar?',
[TDlgButton_SI, TDlgButton_NO, TDlgButton_CANCELAR]);
case Respuesta of
IDYES : actGuardar.Execute;
IDNO : actCancelarCambios.Execute;
else
Result := False;
end;
end
end;
procedure TfEditorBase.NuevoInterno;
begin
//
end;
procedure TfEditorBase.PonerTitulos(const ATitulo: String);
begin
if ReadOnly then
begin
JvNavPanelHeader.Caption := ATitulo + ' (NO MODIFICABLE)';
Caption := ATitulo + ' (NO MODIFICABLE)';
end
else
begin
JvNavPanelHeader.Caption := ATitulo;
Caption := ATitulo;
end;
end;
procedure TfEditorBase.PrevisualizarInterno;
begin
//
end;
procedure TfEditorBase.RefrescarInterno;
begin
//
end;
procedure TfEditorBase.SetReadOnly(Value: Boolean);
var
i: integer;
begin
inherited;
if ReadOnly then
for i:=0 to Self.ComponentCount-1 do
begin
If Self.Components[i] Is TfrViewBase then
(Self.Components[i] as TfrViewBase).ReadOnly := ReadOnly
end;
end;
procedure TfEditorBase.Show;
begin
inherited Show;
// Self.WindowState := wsNormal;
// self.FormStyle := fsNormal;
end;
procedure TfEditorBase.CreateParams(var params: TCreateParams);
begin
//No tocar, sirve para crear varios formularios hijos abiertos a la vez fuera de la aplicación principal
inherited CreateParams( params );
params.Style := params.Style and not WS_POPUP;
params.ExStyle := params.ExStyle and not WS_EX_TOOLWINDOW or WS_EX_APPWINDOW;
end;
function TfEditorBase.ShowModal: Integer;
var
ABorderIcons : TBorderIcons;
begin
ABorderIcons := Self.BorderIcons;
Self.BorderIcons := Self.BorderIcons - [biMinimize];
try
Result := inherited ShowModal;
finally
Self.BorderIcons := ABorderIcons;
end;
end;
initialization
RegisterClass(TfEditorBase);
finalization
UnRegisterClass(TfEditorBase);
end.

View File

@ -0,0 +1,18 @@
object fEditorBasico: TfEditorBasico
Left = 0
Top = 0
Caption = 'fEditorBasico'
ClientHeight = 236
ClientWidth = 383
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
InstanceID = 0
ReadOnly = False
PixelsPerInch = 96
TextHeight = 13
end

View File

@ -0,0 +1,26 @@
unit uEditorBasico;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uGUIBase, uCustomEditor;
type
IEditorBasico = interface(ICustomEditor)
['{CE4B2B04-F8DA-4C96-B071-CC5792C14D51}']
function ShowModal : Integer;
end;
TfEditorBasico = class(TCustomEditor, IEditorBasico)
end;
implementation
{$R *.dfm}
initialization
RegisterClass(TfEditorBasico);
finalization
UnRegisterClass(TfEditorBasico);
end.

View File

@ -0,0 +1,59 @@
inherited fEditorDBBase: TfEditorDBBase
Left = 295
Top = 247
Caption = 'fEditorDBBase'
ClientHeight = 456
ClientWidth = 648
ExplicitWidth = 656
ExplicitHeight = 490
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 648
ExplicitWidth = 648
inherited Image1: TImage
Left = 621
ExplicitLeft = 625
end
end
inherited TBXDock: TTBXDock
Width = 648
ExplicitWidth = 648
inherited tbxMain: TTBXToolbar
ExplicitWidth = 648
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 648
end
end
inherited StatusBar: TJvStatusBar
Top = 437
Width = 648
ExplicitTop = 437
ExplicitWidth = 648
end
inherited EditorActionList: TActionList
inherited actPrevisualizar: TAction
OnUpdate = actPrevisualizarUpdate
end
inherited actImprimir: TAction
OnUpdate = actImprimirUpdate
end
inherited actRefrescar: TAction
OnUpdate = actRefrescarUpdate
end
inherited actAnterior: TAction
OnExecute = actAnteriorExecute
OnUpdate = actAnteriorUpdate
end
inherited actSiguiente: TAction
OnExecute = actSiguienteExecute
OnUpdate = actSiguienteUpdate
end
end
object dsDataTable: TDADataSource [7]
OnDataChange = dsDataTableDataChange
Left = 40
Top = 88
end
end

View File

@ -0,0 +1,256 @@
unit uEditorDBBase;
interface
uses
Windows, SysUtils, Variants, Classes, Graphics, Controls, Forms,
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, TBXStatusBars,
JvExComCtrls, JvStatusBar, uDAInterfaces;
type
IEditorDBBase = interface(IEditorBase)
['{1F5B318F-F700-4C78-ABCE-E2329AD876B8}']
end;
TfEditorDBBase = class(TfEditorBase, IEditorDBBase)
dsDataTable: TDADataSource;
procedure actAnteriorExecute(Sender: TObject);
procedure actSiguienteExecute(Sender: TObject);
procedure actAnteriorUpdate(Sender: TObject);
procedure actSiguienteUpdate(Sender: TObject);
procedure actRefrescarUpdate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); virtual;
procedure actEliminarUpdate(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
procedure actPrevisualizarUpdate(Sender: TObject);
procedure actImprimirUpdate(Sender: TObject);
procedure actGuardarUpdate(Sender: TObject);
procedure actGuardarCerrarUpdate(Sender: TObject);
procedure dsDataTableDataChange(Sender: TObject; Field: TField);
protected
function HayDatos: Boolean;
function GetModified: Boolean; override;
procedure RefrescarInterno; override;
procedure CancelarCambiosInterno; override;
end;
implementation
uses
uDataTableUtils, cxControls, uCustomEditor;
{$R *.dfm}
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 HayDatos then
(Sender as TAction).Enabled := not dsDataTable.DataTable.BOF
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.actSiguienteUpdate(Sender: TObject);
begin
inherited;
if HayDatos then
(Sender as TAction).Enabled := not dsDataTable.DataTable.EOF
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorDBBase.CancelarCambiosInterno;
var
dtDetails : TList;
i : integer;
ABookmark : TBookmark;
begin
inherited;
if Assigned(dsDataTable.DataTable) then
begin
ABookmark := dsDataTable.DataTable.GetBookMark;
dsDataTable.DataTable.DisableControls;
// dsDataTable.DataTable.DisableEventHandlers; <- No descomentar
ShowHourglassCursor;
{ 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;
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;
//finally
dsDataTable.DataTable.EnableControls;
dsDataTable.DataTable.FreeBookmark(ABookmark);
// dsDataTable.DataTable.EnableEventHandlers; <- No descomentar
HideHourglassCursor
//end;
end;
end;
procedure TfEditorDBBase.dsDataTableDataChange(Sender: TObject; Field: TField);
begin
inherited;
ActualizarEstadoEditor;
end;
procedure TfEditorDBBase.actRefrescarUpdate(Sender: TObject);
begin
inherited;
if HayDatos then
(Sender as TAction).Enabled := (not dsDataTable.DataTable.Fetching) and
(not dsDataTable.DataTable.Opening) and
(not dsDataTable.DataTable.Closing) and
(dsDataTable.DataTable.State <> dsInsert)
else
(Sender as TAction).Enabled := False;
//MODO CONSULTAR ITEM
if (Sender as TAction).Enabled
and Assigned(dsDataTable.DataTable) then
(Sender as TAction).Enabled := not dsDataTable.DataTable.ReadOnly;
end;
function TfEditorDBBase.GetModified: Boolean;
begin
if ReadOnly then
Result := False
else
Result := DataTableModified(dsDataTable.DataTable) or inherited GetModified;
end;
function TfEditorDBBase.HayDatos: Boolean;
begin
Result := Assigned(dsDataTable.DataTable) and (dsDataTable.DataTable.State <> dsInactive)
and (not dsDataTable.DataTable.IsEmpty);
end;
procedure TfEditorDBBase.RefrescarInterno;
var
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
ShowHourglassCursor;
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
HideHourglassCursor;
end;
end;
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.actEliminarUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := HayDatos and (dsDataTable.DataTable.State <> dsInsert)
end;
procedure TfEditorDBBase.actGuardarCerrarUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorDBBase.actGuardarUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorDBBase.actModificarUpdate(Sender: TObject);
begin
inherited;
if (Sender as TAction).Enabled then
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorDBBase.actPrevisualizarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfEditorDBBase.actImprimirUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
initialization
RegisterClass(TfEditorDBBase);
finalization
UnRegisterClass(TfEditorDBBase);
end.

View File

@ -0,0 +1,103 @@
inherited fEditorDBItem: TfEditorDBItem
Left = 450
Top = 321
Caption = 'fEditorDBItem'
ClientHeight = 461
ClientWidth = 652
ExplicitWidth = 660
ExplicitHeight = 495
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 652
ExplicitWidth = 652
inherited Image1: TImage
Left = 625
ExplicitLeft = 627
ExplicitHeight = 19
end
end
inherited TBXDock: TTBXDock
Width = 652
ExplicitWidth = 652
inherited tbxMain: TTBXToolbar
ExplicitWidth = 605
inherited TBXItem26: TTBXItem
Visible = False
end
inherited TBXItem25: TTBXItem
Visible = False
end
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 652
inherited TBXSubmenuItem1: TTBXSubmenuItem
Visible = False
end
end
end
object pgPaginas: TPageControl [2]
Left = 0
Top = 76
Width = 652
Height = 366
ActivePage = pagGeneral
Align = alClient
TabOrder = 2
object pagGeneral: TTabSheet
Caption = 'General'
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
end
end
inherited StatusBar: TJvStatusBar
Top = 442
Width = 652
Panels = <
item
Width = 200
Control = imgStatus
end>
ExplicitTop = 442
ExplicitWidth = 652
object imgStatus: TImage
Left = 3
Top = 3
Width = 16
Height = 16
AutoSize = True
Picture.Data = {
0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000
00001008060000001FF3FF61000001E24944415478DAA5932B93DB3014858F99
59C46A669599456561166B59DD5F50C342E717C461652B58A8658182810A0BAB
C35C26B394C92C8BDC6BB99BCD63A7339DB547638D1EDF3DE7488EF0C627BA1D
70466896303FE352747B9DA78B62D77B677DEBA0AC342C663F9D77F0473F2E7F
7F0718DAA2EE9C5BA58B125DD320150204024BF85A6DC44A4A097FF27004ACEB
BABB071C6B8B98E588057AEF31630C3835D4FC6EF9DDE76221D0EC1B789A33C6
F491327EC009449D5AC90455A3969598BD93E87F5BF85613802A6A01216F011B
3FB06416AA8F80823F224DC8DF8D82CE3394A5DE0921F271F39881D99A750084
3882020F9158C85891F7029405D26CCAC0C52579364BCEF9C3B86E54E19CFB10
996D337CFE389F027802BA760D465567F1D837002FC0E875270E91C988677CE0
0987B5B6A71DEC0C38FCEA820A9EA5B0FB43E0896C8EF2DB12D6A8CBB02B3A89
07022CA9AFCE80FEE9EFF469FA3CDB7A0500B23190FC3016E9AD1DBECA1C87B6
0B210A5260ECA4402E5E5500BA4C15E5A02680B143F1293F57F7972AE85B55D7
80AAAA6A02ACD40FF5854EC3447A4380220FBEC70D52CC5F32A0FE2D806EDF28
1F5AEB202052DA0E65915FF97E51D113A0BE02D009D4EEE856D49D4254DA0C7A
63465FCF88A0E4C2EF5D06FFFC1BFFF7F903DDDC21F8890148C2000000004945
4E44AE426082}
Transparent = True
end
end
inherited EditorActionList: TActionList
Top = 112
inherited actEliminar: TAction
ShortCut = 0
end
end
inherited dsDataTable: TDADataSource
Left = 48
Top = 112
end
end

View File

@ -0,0 +1,93 @@
unit uEditorDBItem;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
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, JvComponentBase, dxLayoutLookAndFeels,
JvExComCtrls, JvStatusBar, uDAInterfaces;
type
IEditorDBItem = interface(IEditorDBBase)
['{497AE4CE-D061-4F75-A29A-320F8565FF54}']
end;
TfEditorDBItem = class(TfEditorDBBase, IEditorDBItem)
pgPaginas: TPageControl;
pagGeneral: TTabSheet;
imgStatus: TImage;
protected
procedure EliminarInterno; override;
procedure PrevisualizarInterno; override;
procedure ImprimirInterno; override;
procedure ActualizarEstadoEditor; override;
end;
implementation
uses
uEditorBase, uDialogUtils;
{$R *.dfm}
procedure TfEditorDBItem.ActualizarEstadoEditor;
begin
inherited;
if HayDatos then
begin
if (Self.Modified) and (dsDataTable.DataTable.State <> dsInsert) then
begin
StatusBar.Panels[0].Text := ' Se han producido cambios';
imgStatus.Visible := True;
end
else begin
imgStatus.Visible := False;
StatusBar.Panels[0].Text := '';
end
end;
end;
procedure TfEditorDBItem.EliminarInterno;
begin
inherited;
actCerrar.Execute;
end;
procedure TfEditorDBItem.ImprimirInterno;
begin
inherited;
if Modified then
begin
if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede imprimir hasta que no se guarden.' + #10#13 +
'¿Desea guardarlos ahora?') = IDYES) then
actGuardar.Execute
else
ShowInfoMessage('Recuerde guardar los cambios si quiere previsualizar o imprimir.');
end;
end;
procedure TfEditorDBItem.PrevisualizarInterno;
begin
inherited;
if Modified then
begin
if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede previsualizar hasta que no se guarden.' + #10#13 +
'¿Desea guardarlos ahora?') = IDYES) then
actGuardar.Execute
else
ShowInfoMessage('Recuerde guardar los cambios si quiere previsualizar o imprimir.');
end;
end;
initialization
RegisterClass(TfEditorDBItem);
finalization
UnRegisterClass(TfEditorDBItem);
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,319 @@
{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uEditorGridBase;
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, uViewGridBase,
uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage,
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls,
JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls,
JvStatusBar, uDAInterfaces;
type
IEditorGridBase = interface(IEditorDBBase)
['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}']
procedure SetMultiSelect (AValue : Boolean);
function GetMultiSelect : Boolean;
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
end;
TfEditorGridBase = class(TfEditorDBBase, IEditorGridBase)
tbxEditFiltro: TTBXEditItem;
tbxFiltro: TTBXToolbar;
GridPopupMenu: TPopupMenu;
Modificar1: TMenuItem;
Eliminar1: TMenuItem;
N1: TMenuItem;
Nuevo1: TMenuItem;
TBXLabelItem1: TTBXLabelItem;
actQuitarFiltro: TAction;
N2: TMenuItem;
Previsualizar1: TMenuItem;
Imprimir1: TMenuItem;
TBXSeparatorItem14: TTBXSeparatorItem;
TBXItem33: TTBXItem;
N3: TMenuItem;
Actualizar1: TMenuItem;
TBXItem34: TTBXItem;
actAnchoAuto: TAction;
TBXSeparatorItem16: TTBXSeparatorItem;
TBXItem35: TTBXItem;
TBXItem36: TTBXItem;
TBXSeparatorItem6: TTBXSeparatorItem;
TBXItem7: TTBXItem;
actFiltrar: TAction;
TBXItem37: TTBXItem;
TBXTMain2: TTBXToolbar;
procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
procedure FormShow(Sender: TObject); override;
procedure actQuitarFiltroExecute(Sender: TObject);
procedure actDuplicarUpdate(Sender: TObject);
procedure JvFormStorageSavePlacement(Sender: TObject);
procedure JvFormStorageRestorePlacement(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actNuevoUpdate(Sender: TObject);
procedure actAnchoAutoExecute(Sender: TObject);
procedure actRefrescarUpdate(Sender: TObject);
procedure actFiltrarExecute(Sender: TObject);
procedure actFiltrarUpdate(Sender: TObject);
protected
FViewGrid : IViewGridBase;
procedure SetViewGrid(const Value : IViewGridBase); virtual;
function GetViewGrid: IViewGridBase;
procedure SetMultiSelect (AValue : Boolean);
function GetMultiSelect : Boolean;
procedure PrevisualizarInterno; override;
procedure ConfPaginaInterno; override;
procedure ImprimirInterno; override;
procedure RefrescarInterno; override;
public
property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid;
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uDataModuleBase, uCustomEditor, cxGridTableView, cxControls;
{$R *.dfm}
{
********************************* TfEditorGridBase *****************************
}
destructor TfEditorGridBase.Destroy;
begin
FViewGrid := NIL;
inherited;
end;
function TfEditorGridBase.GetMultiSelect: Boolean;
begin
Result := False;
if Assigned(ViewGrid) then
Result := ViewGrid.MultiSelect;
end;
function TfEditorGridBase.GetViewGrid: IViewGridBase;
begin
Result := FViewGrid;
end;
procedure TfEditorGridBase.ImprimirInterno;
begin
inherited;
ViewGrid.Print;
end;
procedure TfEditorGridBase.SetMultiSelect(AValue: Boolean);
begin
if Assigned(ViewGrid) then
ViewGrid.MultiSelect := AValue;
end;
procedure TfEditorGridBase.SetViewGrid(const Value: IViewGridBase);
begin
FViewGrid := Value;
if Assigned(FViewGrid) then
begin
FViewGrid.PopupMenu := GridPopupMenu;
FViewGrid.OnDblClick := actModificar.OnExecute;
end;
end;
procedure TfEditorGridBase.tbxEditFiltroChange(Sender: TObject; const Text: String);
begin
if Assigned(ViewGrid) then
begin
if Length(Text) > 0 then
ViewGrid.Filter := Text
else
actQuitarFiltro.Execute;
end;
end;
procedure TfEditorGridBase.FormShow(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.ShowEmbedded(Self);
end;
procedure TfEditorGridBase.actEliminarUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
and not ViewGrid.IsEmpty
and ViewGrid.esSeleccionCeldaDatos
else
(Sender as TAction).Enabled := False;
end;
procedure TfEditorGridBase.actFiltrarExecute(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.ViewFiltros.VerFiltros := not ViewGrid.ViewFiltros.VerFiltros;
if Assigned(ViewGrid) then
if ViewGrid.ViewFiltros.VerFiltros then
begin
tbxEditFiltro.Visible := False;
TBXItem7.Visible := False;
end
else
begin
tbxEditFiltro.Text := '';
tbxEditFiltro.Visible := True;
TBXItem7.Visible := True;
end;
end;
procedure TfEditorGridBase.actFiltrarUpdate(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
(Sender as TAction).Checked := ViewGrid.ViewFiltros.VerFiltros;
end;
procedure TfEditorGridBase.actModificarUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
and not ViewGrid.IsEmpty
and ViewGrid.esSeleccionCeldaDatos
else
(Sender as TAction).Enabled := False;
//En el caso de que el grid sea multiselección solo se podrá modificar si solo se tiene un elemento seleccionado
if (Sender as TAction).Enabled then
if MultiSelect and Assigned(ViewGrid) then
(Sender as TAction).Enabled := (ViewGrid.NumSeleccionados = 1);
end;
procedure TfEditorGridBase.actNuevoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Assigned(dsDataTable.DataTable);
end;
procedure TfEditorGridBase.actQuitarFiltroExecute(Sender: TObject);
begin
if Assigned(ViewGrid) then
begin
tbxEditFiltro.Text := '';
ViewGrid.Filter := '';
end;
end;
procedure TfEditorGridBase.actRefrescarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Assigned(dsDataTable.DataTable);
end;
procedure TfEditorGridBase.ConfPaginaInterno;
begin
inherited;
ViewGrid.PrintSetup;
end;
constructor TfEditorGridBase.Create(AOwner: TComponent);
begin
inherited;
actModificar.ShortCut := ShortCut(VK_RETURN, []);
end;
procedure TfEditorGridBase.actAnchoAutoExecute(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.AjustarAncho;
end;
procedure TfEditorGridBase.actDuplicarUpdate(Sender: TObject);
begin
inherited;
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
and not ViewGrid.IsEmpty
and ViewGrid.esSeleccionCeldaDatos
else
(Sender as TAction).Enabled := False;
//En el caso de que el grid sea multiselección solo se podrá modificar si solo se tiene un elemento seleccionado
if (Sender as TAction).Enabled then
if MultiSelect and Assigned(ViewGrid) then
(Sender as TAction).Enabled := (ViewGrid.NumSeleccionados = 1);
end;
procedure TfEditorGridBase.JvFormStorageSavePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.StoreToRegistry(JvAppRegistryStorage.Root);
end;
procedure TfEditorGridBase.PrevisualizarInterno;
begin
inherited;
ViewGrid.Preview;
end;
procedure TfEditorGridBase.RefrescarInterno;
var
FocusedRow, TopRow : Integer;
begin
TopRow := ViewGrid._FocusedView.Controller.TopRowIndex;
FocusedRow := ViewGrid._FocusedView.DataController.FocusedRowIndex;
ViewGrid._FocusedView.BeginUpdate;
ShowHourglassCursor;
try
// inherited; <- No hacemos lo que hay en el padre
dsDataTable.DataTable.Refresh;
finally
ViewGrid._FocusedView.EndUpdate;
ViewGrid._FocusedView.DataController.FocusedRowIndex := FocusedRow;
ViewGrid._FocusedView.Controller.TopRowIndex := TopRow;
HideHourglassCursor;
end;
end;
procedure TfEditorGridBase.JvFormStorageRestorePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.RestoreFromRegistry(JvAppRegistryStorage.Root);
end;
initialization
RegisterClass(TfEditorGridBase);
finalization
UnRegisterClass(TfEditorGridBase);
end.

View File

@ -0,0 +1,62 @@
inherited fEditorItem: TfEditorItem
Left = 423
Top = 273
Caption = 'fEditorItem'
ClientHeight = 501
ClientWidth = 678
ExplicitWidth = 686
ExplicitHeight = 535
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 678
Visible = False
ExplicitWidth = 678
inherited Image1: TImage
Left = 651
ExplicitLeft = 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
ExplicitWidth = 678
inherited tbxMain: TTBXToolbar
ExplicitWidth = 575
inherited TBXItem5: TTBXItem
Visible = False
end
end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 678
inherited TBXSubmenuItem4: TTBXSubmenuItem
inherited TBXItem10: TTBXItem
Visible = False
end
end
end
end
inherited StatusBar: TJvStatusBar
Top = 482
Width = 678
ExplicitTop = 482
ExplicitWidth = 678
end
inherited EditorActionList: TActionList
Top = 104
inherited actEliminar: TAction
ShortCut = 0
end
end
end

View File

@ -0,0 +1,39 @@
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,
JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls,
JvStatusBar;
type
IEditorItem = interface(IEditorBase)
['{F6A412D1-59AA-41D2-ADD5-C92687CD5387}']
end;
TfEditorItem = class(TfEditorBase, IEditorItem)
pagGeneral: TTabSheet;
pgPaginas: TPageControl;
end;
implementation
uses uDataModuleBase;
{$R *.dfm}
initialization
RegisterClass(TfEditorItem);
finalization
UnRegisterClass(TfEditorItem);
end.

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

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.

View File

@ -0,0 +1,938 @@
inherited fEditorPreview: TfEditorPreview
Left = 521
Top = 340
Caption = 'Previsualizar'
WindowState = wsMaximized
OnDestroy = FormDestroy
OnResize = FormResize
ExplicitWidth = 658
ExplicitHeight = 492
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Top = 75
Visible = False
ExplicitTop = 75
ExplicitWidth = 650
inherited Image1: TImage
Left = 623
ExplicitLeft = 623
end
end
inherited TBXDock: TTBXDock
Height = 75
ExplicitHeight = 75
inherited tbxMain: TTBXToolbar
Top = 49
DefaultDock = TBXDock
Visible = False
ExplicitTop = 49
ExplicitWidth = 248
end
inherited tbxMenu: TTBXToolbar
DockPos = -24
inherited TBXSubmenuItem5: TTBXSubmenuItem
Visible = False
end
inherited TBXSubmenuItem1: TTBXSubmenuItem
Visible = False
end
object TBXSubmenuItem2: TTBXSubmenuItem [3]
Caption = '&Ir'
object TBXItem47: TTBXItem
Action = actPrimeraPagina
Images = PreviewSmallImageList
end
object TBXItem43: TTBXItem
Action = actPaginaAnterior
Images = PreviewSmallImageList
end
object TBXItem44: TTBXItem
Action = actPaginaSiguiente
Images = PreviewSmallImageList
end
object TBXItem45: TTBXItem
Action = actUltimaPagina
Images = PreviewSmallImageList
end
end
inherited TBXSubmenuItem6: TTBXSubmenuItem
Caption = '&Zoom'
inherited TBXItem18: TTBXItem
Action = actZoomIn
Images = PreviewSmallImageList
end
object TBXItem38: TTBXItem
Action = actZoomOut
Images = PreviewSmallImageList
end
object TBXSeparatorItem19: TTBXSeparatorItem
end
object TBXItem48: TTBXItem
Action = actAnchoPagina
Images = PreviewSmallImageList
end
object TBXItem46: TTBXItem
Action = actTodaPagina
Images = PreviewSmallImageList
end
end
object TBXSubmenuItem3: TTBXSubmenuItem [5]
Caption = '&Herramientas'
object TBXItem49: TTBXItem
Action = actToolHand
Checked = True
GroupIndex = 1
Images = PreviewSmallImageList
end
object TBXItem50: TTBXItem
Action = actToolZoom
GroupIndex = 1
Images = PreviewSmallImageList
end
end
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
Checked = True
DisplayMode = nbdmImageAndText
GroupIndex = 1
Images = PreviewSmallImageList
end
object tbxZoom: TTBXItem
Action = actToolZoom
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 TBXItem7: 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 TBXSeparatorItem16: TTBXSeparatorItem
end
object TBXItem35: TTBXItem
Action = actCerrar
end
end
end
inherited StatusBar: TJvStatusBar
Panels = <
item
Width = 150
end
item
Width = 50
end>
ExplicitWidth = 650
end
inherited EditorActionList: TActionList
Top = 104
inherited actNuevo: TAction
Enabled = False
Visible = False
end
inherited actModificar: TAction
Enabled = False
Visible = False
end
inherited actGuardarCerrar: TAction
Enabled = False
Visible = False
end
inherited actGuardar: TAction
Enabled = False
Visible = False
end
inherited actEliminar: TAction
Enabled = False
Visible = False
end
inherited actConfPagina: TAction
Enabled = False
Visible = False
end
inherited actPrevisualizar: TAction
Enabled = False
Visible = False
end
inherited actDeshacer: TEditUndo
Enabled = False
Visible = False
end
inherited actCortar: TEditCut
Enabled = False
Visible = False
end
inherited actCopiar: TEditCopy
Enabled = False
Visible = False
end
inherited actPegar: TEditPaste
Enabled = False
Visible = False
end
inherited actSeleccionarTodo: TEditSelectAll
Enabled = False
Visible = False
end
inherited actLimpiar: TEditDelete
Enabled = False
Visible = False
end
inherited actBuscar: TAction
Enabled = False
Visible = False
end
inherited actCancelarCambios: TAction
Enabled = False
Visible = False
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 = 'Ver'
Caption = 'Primera p'#225'gina'
ImageIndex = 0
OnExecute = actPrimeraPaginaExecute
OnUpdate = actPrimeraPaginaUpdate
end
object actUltimaPagina: TAction
Category = 'Ver'
Caption = #218'ltima p'#225'gina'
ImageIndex = 3
OnExecute = actUltimaPaginaExecute
OnUpdate = actUltimaPaginaUpdate
end
object actPaginaAnterior: TAction
Category = 'Ver'
Caption = 'P'#225'gina anterior'
ImageIndex = 1
OnExecute = actPaginaAnteriorExecute
OnUpdate = actPaginaAnteriorUpdate
end
object actPaginaSiguiente: TAction
Category = 'Ver'
Caption = 'P'#225'gina siguiente'
ImageIndex = 2
OnExecute = actPaginaSiguienteExecute
OnUpdate = actPaginaSiguienteUpdate
end
object actZoomIn: TAction
Category = 'Ver'
Caption = 'M'#225's zoom'
ImageIndex = 8
OnExecute = actZoomInExecute
end
object actZoomOut: TAction
Category = 'Ver'
Caption = 'Menos zoom'
ImageIndex = 9
OnExecute = actZoomOutExecute
end
object actTodaPagina: TAction
Category = 'Ver'
Caption = 'Toda la p'#225'gina'
GroupIndex = 1
ImageIndex = 4
OnExecute = actTodaPaginaExecute
end
object actAnchoPagina: TAction
Category = 'Ver'
Caption = 'Ancho de p'#225'gina'
GroupIndex = 1
ImageIndex = 5
OnExecute = actAnchoPaginaExecute
end
object actToolHand: TAction
Category = 'Herramientas'
AutoCheck = True
Caption = 'Mano'
GroupIndex = 1
ImageIndex = 10
OnExecute = actToolHandExecute
end
object actToolZoom: TAction
Category = 'Herramientas'
AutoCheck = True
Caption = 'Zoom'
GroupIndex = 1
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 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

View File

@ -0,0 +1,353 @@
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, frxOLE, frxBarcode,
ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar;
type
IEditorPreview = interface(IEditorBase)
['{43934C3E-2776-4F9E-9292-FB0D7DE2E4DA}']
function GetReport: TfrxReport;
property Report: TfrxReport read GetReport;
procedure LoadFromStream(AStream : TStream);
function ExportToFile : String;
procedure Print;
procedure Preview;
end;
TfEditorPreview = class(TfEditorBase, IEditorPreview)
TBXToolbar1: TTBXToolbar;
TBXItem33: TTBXItem;
TBXItem34: TTBXItem;
TBXItem39: TTBXItem;
TBXSeparatorItem16: TTBXSeparatorItem;
cbZoom: TTBXComboBoxItem;
PreviewActionList: TActionList;
PreviewSmallImageList: TPngImageList;
PreviewLargeImageList: TPngImageList;
actPrimeraPagina: TAction;
actUltimaPagina: TAction;
actPaginaAnterior: TAction;
actPaginaSiguiente: TAction;
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;
frxRichObject1: TfrxRichObject;
frxCrossObject1: TfrxCrossObject;
frxCheckBoxObject1: TfrxCheckBoxObject;
frxGradientObject1: TfrxGradientObject;
frxDotMatrixExport1: TfrxDotMatrixExport;
frxDialogControls1: TfrxDialogControls;
frxTIFFExport1: TfrxTIFFExport;
frxPDFExport1: TfrxPDFExport;
frxBMPExport1: TfrxBMPExport;
TBXItem38: TTBXItem;
TBXSeparatorItem19: TTBXSeparatorItem;
TBXItem43: TTBXItem;
TBXItem44: TTBXItem;
TBXItem45: TTBXItem;
TBXItem46: TTBXItem;
TBXItem47: TTBXItem;
TBXSubmenuItem2: TTBXSubmenuItem;
TBXItem48: TTBXItem;
TBXSubmenuItem3: TTBXSubmenuItem;
TBXItem49: TTBXItem;
TBXItem50: TTBXItem;
TBXItem7: TTBXItem;
TBXItem35: TTBXItem;
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);
procedure actPaginaSiguienteUpdate(Sender: TObject);
procedure actUltimaPaginaUpdate(Sender: TObject);
procedure actPrimeraPaginaUpdate(Sender: TObject);
procedure actPaginaAnteriorUpdate(Sender: TObject);
private
FPreview : TfrViewPreview;
procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer);
procedure UpdateZoom;
protected
function GetReport: TfrxReport; virtual;
public
constructor Create(AOwner: TComponent); override;
property Report: TfrxReport read GetReport;
procedure Print;
procedure Preview;
procedure LoadFromStream(AStream : TStream);
function ExportToFile : String;
end;
implementation
uses
frxRes, frxUtils, frxPrinter, frxFormUtils,
uCustomEditor, uSistemaFunc;
{$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;
actAnchoPagina.Execute;
end;
procedure TfEditorPreview.actPrimeraPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.First;
end;
procedure TfEditorPreview.actPrimeraPaginaUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (FPreview.Preview.PageNo > 1);
end;
procedure TfEditorPreview.actUltimaPaginaExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Last;
end;
procedure TfEditorPreview.actUltimaPaginaUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (FPreview.Preview.PageNo < FPreview.Preview.PageCount);
end;
procedure TfEditorPreview.actPaginaAnteriorExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Prior;
end;
procedure TfEditorPreview.actPaginaAnteriorUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (FPreview.Preview.PageNo > 1);
end;
procedure TfEditorPreview.actPaginaSiguienteExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Next;
end;
procedure TfEditorPreview.actPaginaSiguienteUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (FPreview.Preview.PageNo < FPreview.Preview.PageCount);
end;
procedure TfEditorPreview.actZoomInExecute(Sender: TObject);
begin
inherited;
FPreview.Preview.Zoom := FPreview.Preview.Zoom + 0.25;
UpdateZoom;
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;
Print;
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;
UpdateZoom;
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);
begin
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.Preview;
begin
Self.ShowModal;
end;
procedure TfEditorPreview.Print;
begin
if not frxPrinters.HasPhysicalPrinters then
frxErrorMsg(frxResources.Get('clNoPrinters'))
else
FPreview.Preview.Print;
Enabled := True;
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;
initialization
RegisterClass(TfEditorPreview);
finalization
UnRegisterClass(TfEditorPreview);
end.

View File

@ -0,0 +1,108 @@
unit uEditorUtils;
interface
uses
uEditorItem, uDADataTable, Controls;
type
TFuncItemEditor = function(ABizObject : TDADataTableRules) : TModalResult;
TProcItemEditor = procedure(ABizObject : TDADataTableRules);
TFuncGetEditor = function : IEditorItem;
TEditorType = (etItem, etItems, 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;
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;
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);
etSelectItems : Result := P.SelectItemsEditor(ABizObject);
end;
end;
initialization
FBizEditorsList := TList.Create;
finalization
FBizEditorsList.Free;
end.

View File

@ -0,0 +1,65 @@
inherited frViewBarraSeleccion: TfrViewBarraSeleccion
Width = 451
Height = 49
Align = alBottom
ExplicitWidth = 451
ExplicitHeight = 49
object JvFooter1: TJvFooter
Left = 0
Top = 0
Width = 451
Height = 49
Margins.Left = 5
Margins.Right = 5
Align = alClient
DesignSize = (
451
49)
object bSeleccionar: TJvFooterBtn
Left = 239
Top = 10
Width = 100
Height = 29
Action = actSeleccionar
Anchors = [akRight, akBottom]
Default = True
ModalResult = 1
TabOrder = 0
HotTrackFont.Charset = DEFAULT_CHARSET
HotTrackFont.Color = clWindowText
HotTrackFont.Height = -11
HotTrackFont.Name = 'Tahoma'
HotTrackFont.Style = []
ButtonIndex = 0
SpaceInterval = 6
end
object bCancelar: TJvFooterBtn
Left = 343
Top = 10
Width = 100
Height = 28
Action = actCancelar
Anchors = [akRight, akBottom]
Cancel = True
ModalResult = 2
TabOrder = 1
HotTrackFont.Charset = DEFAULT_CHARSET
HotTrackFont.Color = clWindowText
HotTrackFont.Height = -11
HotTrackFont.Name = 'Tahoma'
HotTrackFont.Style = []
ButtonIndex = 1
SpaceInterval = 6
end
end
object BarraSeleccionActionList: TActionList
Left = 12
Top = 3
object actSeleccionar: TAction
Caption = 'Seleccionar'
end
object actCancelar: TAction
Caption = 'Cancelar'
end
end
end

View File

@ -0,0 +1,28 @@
unit uViewBarraSeleccion;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, StdCtrls, ActnList, ExtCtrls, JvExStdCtrls, JvButton,
JvCtrls, JvFooter, JvExExtCtrls, JvComponent, JvExtComponent;
type
TfrViewBarraSeleccion = class(TfrViewBase)
JvFooter1: TJvFooter;
bSeleccionar: TJvFooterBtn;
bCancelar: TJvFooterBtn;
BarraSeleccionActionList: TActionList;
actSeleccionar: TAction;
actCancelar: TAction;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

View File

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

View File

@ -0,0 +1,56 @@
unit uViewBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize;
type
IViewBase = interface(ICustomView)
['{82FBDF28-9C5F-4922-952E-0E84D67FE4BB}']
procedure Refresh;
end;
TfrViewBase = class(TCustomView, IViewBase)
protected
procedure SetReadOnly(Value: Boolean); override;
public
procedure Refresh; virtual;
end;
implementation
{$R *.dfm}
uses
cxDBEdit, cxControls, dxLayoutControl;
{ TfrViewBase }
procedure TfrViewBase.Refresh;
begin
//
end;
procedure TfrViewBase.SetReadOnly(Value: Boolean);
var
i: integer;
begin
inherited;
if ReadOnly then
for i:=0 to Self.ComponentCount-1 do
begin
If (Self.Components[i] Is TfrViewBase) then
(Self.Components[i] as TfrViewBase).ReadOnly := ReadOnly;
If (Self.Components[i] Is TcxControl)
and (not (Self.Components[i] Is TdxLayoutControl)) then
(Self.Components[i] as TcxControl).Enabled := not ReadOnly;
end;
end;
end.

View File

@ -0,0 +1,716 @@
inherited frViewDetallesBase: TfrViewDetallesBase
Width = 451
Height = 304
Align = alClient
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
ExplicitWidth = 451
ExplicitHeight = 304
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 451
Height = 46
AutoSize = True
ButtonWidth = 63
Caption = 'ToolBar1'
EdgeInner = esNone
EdgeOuter = esNone
Flat = False
Images = ContenidoImageList
List = True
ParentShowHint = False
ShowCaptions = True
ShowHint = True
TabOrder = 0
Transparent = True
Visible = False
object ToolButton1: TToolButton
Left = 0
Top = 2
Action = actAnadir
AutoSize = True
end
object ToolButton2: TToolButton
Left = 62
Top = 2
Action = actEliminar
AutoSize = True
end
object ToolButton3: TToolButton
Left = 129
Top = 2
Action = actSubir
AutoSize = True
end
object ToolButton4: TToolButton
Left = 184
Top = 2
Action = actBajar
AutoSize = True
end
object ToolButton14: TToolButton
Left = 240
Top = 2
Action = FontEdit1
AutoSize = True
Wrap = True
end
object FontName: TJvFontComboBox
Left = 0
Top = 24
Width = 145
Height = 22
DroppedDownWidth = 145
MaxMRUCount = 0
FontName = 'Tahoma'
ItemIndex = 108
Options = [foTrueTypeOnly, foNoOEMFonts, foScalableOnly, foWysiWyg]
Sorted = True
TabOrder = 2
Visible = False
OnChange = FontNameChange
OnClick = FontNameChange
end
object FontSize: TEdit
Left = 145
Top = 24
Width = 26
Height = 22
Hint = 'Font Size|Select font size'
TabOrder = 1
Text = '0'
Visible = False
OnChange = FontSizeChange
end
object UpDown1: TUpDown
Left = 171
Top = 24
Width = 16
Height = 22
Associate = FontSize
TabOrder = 0
Visible = False
end
object ToolButton13: TToolButton
Left = 187
Top = 24
Width = 8
Caption = 'ToolButton13'
ImageIndex = 10
Style = tbsSeparator
end
object ToolButton6: TToolButton
Left = 195
Top = 24
Action = RichEditBold1
AutoSize = True
end
object ToolButton7: TToolButton
Left = 229
Top = 24
Action = RichEditItalic1
AutoSize = True
end
object ToolButton8: TToolButton
Left = 263
Top = 24
Action = RichEditUnderline1
AutoSize = True
end
object ToolButton12: TToolButton
Left = 297
Top = 24
Width = 8
Caption = 'ToolButton12'
ImageIndex = 10
Style = tbsSeparator
end
object ToolButton9: TToolButton
Left = 305
Top = 24
Action = RichEditAlignLeft1
AutoSize = True
end
object ToolButton10: TToolButton
Left = 339
Top = 24
Action = RichEditAlignCenter1
AutoSize = True
end
object ToolButton11: TToolButton
Left = 373
Top = 24
Action = RichEditAlignRight1
AutoSize = True
end
end
object cxGrid: TcxGrid
Left = 0
Top = 72
Width = 451
Height = 232
Align = alClient
TabOrder = 1
LookAndFeel.Kind = lfOffice11
LookAndFeel.NativeStyle = True
object cxGridView: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
FilterBox.Visible = fvNever
OnEditing = cxGridViewEditing
OnEditKeyDown = cxGridViewEditKeyDown
OnEditValueChanged = cxGridViewEditValueChanged
OnInitEdit = cxGridViewInitEdit
DataController.DataSource = DADataSource
DataController.Filter.Options = [fcoCaseInsensitive]
DataController.KeyFieldNames = 'ID'
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText, dcoFocusTopRowAfterSorting, dcoImmediatePost]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <
item
Format = ',0.00 '#8364';-,0.00 '#8364
Kind = skSum
end>
DataController.Summary.SummaryGroups = <>
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
OptionsData.CancelOnExit = False
OptionsSelection.MultiSelect = True
OptionsSelection.UnselectFocusedRecordOnExit = False
OptionsView.CellEndEllipsis = True
OptionsView.CellAutoHeight = True
OptionsView.ColumnAutoWidth = 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
Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
object cxGridViewID: TcxGridDBColumn
DataBinding.FieldName = 'ID'
Visible = False
end
object cxGridViewPOSICION: TcxGridDBColumn
DataBinding.FieldName = 'POSICION'
Visible = False
SortIndex = 0
SortOrder = soAscending
end
object cxGridViewTIPO: TcxGridDBColumn
Caption = 'Tipo'
DataBinding.FieldName = 'TIPO_DETALLE'
PropertiesClassName = 'TcxImageComboBoxProperties'
Properties.Items = <>
BestFitMaxWidth = 64
Width = 56
end
object cxGridViewDESCRIPCION: TcxGridDBColumn
Caption = 'Concepto'
DataBinding.FieldName = 'CONCEPTO'
PropertiesClassName = 'TcxRichEditProperties'
Width = 224
end
object cxGridViewCANTIDAD: TcxGridDBColumn
Caption = 'Cantidad'
DataBinding.FieldName = 'CANTIDAD'
PropertiesClassName = 'TcxMaskEditProperties'
Properties.Alignment.Horz = taRightJustify
BestFitMaxWidth = 64
HeaderAlignmentHorz = taRightJustify
Width = 130
end
object cxGridViewIMPORTEUNIDAD: TcxGridDBColumn
Caption = 'Importe unidad'
DataBinding.FieldName = 'IMPORTE_UNIDAD'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
BestFitMaxWidth = 120
FooterAlignmentHorz = taRightJustify
HeaderAlignmentHorz = taRightJustify
Width = 130
end
object cxGridViewIMPORTETOTAL: TcxGridDBColumn
Caption = 'Importe total'
DataBinding.FieldName = 'IMPORTE_TOTAL'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
BestFitMaxWidth = 120
HeaderAlignmentHorz = taRightJustify
Options.Editing = False
Width = 130
end
object cxGridViewVISIBLE: TcxGridDBColumn
Caption = #191'Visible?'
DataBinding.FieldName = 'VISIBLE'
PropertiesClassName = 'TcxCheckBoxProperties'
Properties.Alignment = taCenter
Properties.DisplayChecked = '1'
Properties.DisplayUnchecked = '0'
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 = 1
Properties.ValueUnchecked = 0
Visible = False
FooterAlignmentHorz = taCenter
HeaderAlignmentHorz = taCenter
end
end
object cxGridLevel: TcxGridLevel
GridView = cxGridView
end
end
object TBXDock1: TTBXDock
Left = 0
Top = 46
Width = 451
Height = 26
BackgroundOnToolbars = False
UseParentBackground = True
object TBXToolbar1: TTBXToolbar
Left = 0
Top = 0
Caption = 'TBXToolbar1'
DragHandleStyle = dhNone
Images = ContenidoImageList
TabOrder = 0
object TBXItem1: TTBXItem
Action = actAnadir
DisplayMode = nbdmImageAndText
Images = ContenidoImageList
end
object TBXItem2: TTBXItem
Action = actEliminar
DisplayMode = nbdmImageAndText
Images = ContenidoImageList
end
object TBXSeparatorItem1: TTBXSeparatorItem
end
object TBXItem3: TTBXItem
Action = actSubir
DisplayMode = nbdmImageAndText
end
object TBXItem4: TTBXItem
Action = actBajar
DisplayMode = nbdmImageAndText
end
object TBXSeparatorItem2: TTBXSeparatorItem
end
object TBXItem5: TTBXItem
Action = RichEditBold1
end
object TBXItem6: TTBXItem
Action = RichEditItalic1
end
object TBXItem7: TTBXItem
Action = RichEditUnderline1
end
object TBXSeparatorItem4: TTBXSeparatorItem
end
object TBXItem9: TTBXItem
Action = RichEditAlignLeft1
end
object TBXItem10: TTBXItem
Action = RichEditAlignCenter1
end
object TBXItem11: TTBXItem
Action = RichEditAlignRight1
end
object TBXSeparatorItem3: TTBXSeparatorItem
end
object TBXItem8: TTBXItem
Action = FontEdit1
end
object TBXSeparatorItem5: TTBXSeparatorItem
end
object TBXItem13: TTBXItem
Action = actAnchoAutomatico
DisplayMode = nbdmImageAndText
end
end
end
object ActionListContenido: TActionList
Images = ContenidoImageList
Left = 8
Top = 104
object actAnadir: TAction
Category = 'Operaciones'
Caption = 'A'#241'adir'
ImageIndex = 0
ShortCut = 45
OnExecute = actAnadirExecute
OnUpdate = actAnadirUpdate
end
object actEliminar: TAction
Category = 'Operaciones'
Caption = 'Eliminar'
ImageIndex = 1
ShortCut = 16430
OnExecute = actEliminarExecute
OnUpdate = actEliminarUpdate
end
object actSubir: TAction
Category = 'Operaciones'
Caption = 'Subir'
ImageIndex = 2
OnExecute = actSubirExecute
OnUpdate = actSubirUpdate
end
object actBajar: TAction
Category = 'Operaciones'
Caption = 'Bajar'
ImageIndex = 3
OnExecute = actBajarExecute
OnUpdate = actBajarUpdate
end
object RichEditBold1: TRichEditBold
Category = 'Format'
AutoCheck = True
Hint = 'Negrita'
ImageIndex = 4
ShortCut = 16450
end
object RichEditItalic1: TRichEditItalic
Category = 'Format'
AutoCheck = True
Hint = 'Cursiva'
ImageIndex = 5
ShortCut = 16457
end
object RichEditUnderline1: TRichEditUnderline
Category = 'Format'
AutoCheck = True
Hint = 'Subrayado'
ImageIndex = 6
ShortCut = 16469
end
object RichEditAlignLeft1: TRichEditAlignLeft
Category = 'Format'
AutoCheck = True
Hint = 'Alinear a la izquierda'
ImageIndex = 7
end
object RichEditAlignCenter1: TRichEditAlignCenter
Category = 'Format'
AutoCheck = True
Hint = 'Center|Centers text between margins'
ImageIndex = 8
end
object RichEditAlignRight1: TRichEditAlignRight
Category = 'Format'
AutoCheck = True
Hint = 'Align Right|Aligns text at the right indent'
ImageIndex = 9
end
object FontEdit1: TFontEdit
Category = 'Dialog'
Dialog.Font.Charset = DEFAULT_CHARSET
Dialog.Font.Color = clWindowText
Dialog.Font.Height = -11
Dialog.Font.Name = 'Tahoma'
Dialog.Font.Style = []
Enabled = False
Hint = 'Formato de fuente'
ImageIndex = 10
BeforeExecute = FontEdit1BeforeExecute
OnAccept = FontEdit1Accept
end
object RichEditAlignRight2: TRichEditAlignRight
Category = 'Format'
AutoCheck = True
Caption = 'Align &Right'
Hint = 'Align Right|Aligns text at the right indent'
ImageIndex = 11
end
object actAnchoAutomatico: TAction
Category = 'Operaciones'
Caption = 'Ancho autom'#225'tico'
ImageIndex = 11
OnExecute = actAnchoAutomaticoExecute
OnUpdate = actAnchoAutomaticoUpdate
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
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001984944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BD30046
C399181A59989918A23C55181A328C1804F9D8C0069CBD7C07BB01C886FC3F9F
CEF00F28BF7AD75D86888ABD0CEC6CCC0C8F774430FCF9F38FE1E2F57B840DF8
7B2E0DACF8C7AF3F0CFC360BC006DCDF120676C1B5DB0F091BF0F3540AC3C3E7
9F19DAE79D6758B6FD2E4353A6114384BB22D0D0BF0CB7EE3F216C003288F254
66288BD765E0E56206BAE01FC3FDC7CFB01B00F233B3D12C30FBFDA138B0730F
9C7ECE1056BE8FC1C954926172991958ECF9ABD79806803483FCCC6E36076CC0
8B3D5160C52031459FD560B10BCB7DC02E78F3EE2DAA01317E56F038E6B75908
567C6D6D1003273B33C396C38F18723B4F32B0B332311C99E70156F3F1D30754
03C2BDCC51342303666646066F1B1986EC5035065E6E16B0BA6FDF3EA31A10E4
6602762ACC1570F6EFBF503184DCBF7FFF197EFCF8826A809F9311C3A98BB748
CA4C700340B971E28CA524E7C6FC8CE81800E35A4E592A9A5C6B000000004945
4E44AE426082}
Name = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001844944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BB7010B
37DF6248A8DB0FE7CB4BF2325C5D1B0237E0ECE53BF80D0081C69967191A669C
6188F35163985C61C5F0EF1FC4057FFEFC63B878FD1E6103744357335CB9F38E
61CB240F066B0331B866107DEDF643FC067CFFF98781CB622E98FD745714032B
0B235CF31F20BE75FF096E03FE01C5CE5D7FC3601ABD8E41535180E1E05C6F14
CDBF81ECFB8F9F613700A419A478C9D65B0CC98D871862BC5518BAF24DE19A7F
005D06623F7FF51AD30098669082CA49A71826AFB8CAD05D68CA10E2AC0009FD
DF7FA1B1F08FE1CDBBB7A806C4F859C1A3E8DDC79F0C0185BB182EDE7AC7B0BE
D799415B991F453388FEF8E903AA01E15EE6608993975F31B8656E4709D02D13
9D1964C438E19A41F8DBB7CFA80604B999C09D8F1C5DE83683F0BF7FFF197EFC
F8826A809F9311C3A98BB748CA4C700340B971E28CA524E7C6FC8CE818000A3C
81590C9B58CC0000000049454E44AE426082}
Name = 'PngImage5'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001854944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4806100A3E14C140DFFCFA763887F3C12
CF70ECEC0D86AAB65998067CFCF28B41C0763E98FDE6403C83303F07C33FA09A
B71F7E3088392D62B8BB259C81978B85E1ECE53BD80D40B60D643B48F39F3F10
67F358CD6778B52F1ACCBF78FD1E6103FE9E4B836B066141BB450CCF764582D9
D76E3F246CC0CF532970CD202CE6B494E1E1B630A0A17F196EDD7F42D880B707
E318981819C09ADF7DFCC9A011B886E1EEA66020FF1FC3FDC7CFB01B00F2B356
D02A869B0F3E305424EA3364846A80BDD1B5F012C3D53BEF1966D558820D7CFE
EA35A601B000BBF5F00343CDD4D30C07CE3C07C70A1F372B838BB91443419426
90CD0276C19B776F510D88F1B382FB1539E0E0ECDFB0B080F03F7EFA806A40B8
97395882DF6621C1D47870B60BC3B76F9F510D08723321CA6610FEF7EF3FC38F
1F5F500DF07332623875F1164999096E0028374E9CB194E4DC989F111D03002B
D67559EB1C43180000000049454E44AE426082}
Name = 'PngImage6'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000F94944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC134809B9B1BAF0B9EBE7803D60C32ECE2F57B845D
80CD6618FFDAED87A4BB00062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7
CF487701C8E61F3FFF800D7AFEEA35A601E836FFFCF507C5F6DFBF612EFAC7F0
E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354DB70D8
0C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875F11651
5E8001B801A0DC3871C6529273637E46740C002BB66C59EAC44C620000000049
454E44AE426082}
Name = 'PngImage7'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001004944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC16D0037373756839EBE7803D60C32ECE2F57B845D
80CD6618FFDAED879806E0B2191D5CBEF190E1D6FD27B85D80CFE63F60FE3F86
FB8F9F613700A499978707A7CD3F7EFE011BF4FCD56B4C03D06DFEF9EB0F8AED
BF7FC35CF48FE1CDBBB7A806C4F85931F0F3F11215067B8E5E65F8F8E903AA01
E15EE6A8B6E1B01926F7EDDB67540382DC4C88D6FCEFDF7F861F3FBEA01AE0E7
64C470EAE22DA2BC0003700340B971E28CA524E7C6FC8CE8180048E16F597BCE
9D230000000049454E44AE426082}
Name = 'PngImage8'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000FC4944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC16D003737375E97DC79F09CE1E2F57B845D80CD66
18FFDAED87980610B219062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7CF
B01B00D2CCCBC383D705C7CEDE6278FEEA35A601E836FFFCF507C5F6DFBF612E
FAC7F0E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354
DB70D80C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875
F116515E8001B801A0DC3871C6529273637E46740C0021BE635977EAA72D0000
000049454E44AE426082}
Name = 'PngImage9'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001CB4944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC480D580CAA3950C4B6E2C61789CFC18A7
E663676F3054B5CDC234E0EFFFBF0C327364185E7C7BC17020E40083BDB43DC3
3FA09A3F7F109A41F8ECE53BD80D587B672D43CBA916860BAF2F3024682530CC
759987A119C4BF78FD1E76031CD73A324CB09FC0E0B0C681E1CFBF3F0C8F129E
32B0317280350ADA2D6278B62B12CCBE76FB21A60137DFDF64D058A481E2EFB9
4E0B188214C2C09A41E0E1B630A00BFE32DCBAFF04D380C243850C06A2060CB1
1A710C871E1F61705C6FC7E020E5C470A02D0C6CB394DB7286BB9B82812EF8C7
70FFF13354034CED04194C969B303C4B7DCEC0CDC40B76A6DA52258667536B19
562D92623017B16190F75AC57075B53F58EEF9ABD7A806347E886578F0E90183
3CAF02C3D5C89B0C69FB531896555B63A4830BCB7DC02E78F3EE2DAA01317E56
28A12CECB098E1F18E70440CFCFECBA01DBA91E1F4622F30FFE3A70FA806847B
99A36886815B1B82E09A61E0E06C17866FDF3EA31A10E4668212DFC83643C410
72FFFEFD67F8F1E30BAA017E4E460CA72EDE222933C10D00E5C6893396929C1B
F333A26300FC1C815930D4A9C10000000049454E44AE426082}
Name = 'PngImage10'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001124944415478DA
63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
Name = 'PngImage11'
Background = clWindow
end>
Left = 40
Top = 112
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
object cxStyle_IMPORTETOTAL: TcxStyle
AssignedValues = [svColor]
Color = clInactiveCaptionText
end
object cxStyle_SUBTOTAL: TcxStyle
AssignedValues = [svColor]
Color = cl3DLight
end
object cxStyle_TITULO: TcxStyle
AssignedValues = [svColor]
Color = clMenuBar
end
end
end

View File

@ -0,0 +1,746 @@
unit uViewDetallesBase;
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, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox,
uGridUtils, uControllerDetallesBase, cxCurrencyEdit, ExtCtrls, Grids, DBGrids, StdCtrls,
ExtActns, StdActns, cxRichEdit, JvExStdCtrls, JvCombobox, JvColorCombo,
TB2Item, TBX, TB2Dock, TB2Toolbar;
type
IViewDetallesBase = interface(IViewBase)
['{852EB860-13B6-4355-A6B0-4542AB16896F}']
procedure ExpandirTodo;
procedure ContraerTodo;
procedure AjustarAncho;
procedure SaveGridStatus;
procedure RestoreGridStatus;
procedure BeginUpdate;
procedure EndUpdate;
function IsEmpty : Boolean;
function GetFocusedView : TcxGridDBTableView;
property _FocusedView : TcxGridDBTableView read GetFocusedView;
function GetGrid : TcxGrid;
property _Grid : TcxGrid read GetGrid;
end;
TfrViewDetallesBase = class(TfrViewBase, IViewDetallesBase)
ActionListContenido: TActionList;
DADataSource: TDADataSource;
actAnadir: TAction;
actEliminar: TAction;
actSubir: TAction;
actBajar: TAction;
ContenidoImageList: TPngImageList;
ToolBar1: TToolBar;
cxStyleRepository: TcxStyleRepository;
cxStyleEven: TcxStyle;
cxStyleOdd: TcxStyle;
cxStyleSelection: TcxStyle;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
cxGrid: TcxGrid;
cxGridView: TcxGridDBTableView;
cxGridViewID: TcxGridDBColumn;
cxGridViewPOSICION: TcxGridDBColumn;
cxGridViewTIPO: TcxGridDBColumn;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewCANTIDAD: TcxGridDBColumn;
cxGridViewIMPORTEUNIDAD: TcxGridDBColumn;
cxGridViewIMPORTETOTAL: TcxGridDBColumn;
cxGridViewVISIBLE: TcxGridDBColumn;
cxGridLevel: TcxGridLevel;
RichEditBold1: TRichEditBold;
RichEditItalic1: TRichEditItalic;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
RichEditUnderline1: TRichEditUnderline;
RichEditAlignLeft1: TRichEditAlignLeft;
RichEditAlignRight1: TRichEditAlignRight;
RichEditAlignCenter1: TRichEditAlignCenter;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
FontEdit1: TFontEdit;
ToolButton14: TToolButton;
UpDown1: TUpDown;
FontSize: TEdit;
FontName: TJvFontComboBox;
TBXDock1: TTBXDock;
TBXToolbar1: TTBXToolbar;
TBXItem1: TTBXItem;
TBXItem2: TTBXItem;
TBXSeparatorItem1: TTBXSeparatorItem;
TBXItem3: TTBXItem;
TBXItem4: TTBXItem;
TBXSeparatorItem2: TTBXSeparatorItem;
TBXItem5: TTBXItem;
TBXItem6: TTBXItem;
TBXItem7: TTBXItem;
TBXSeparatorItem3: TTBXSeparatorItem;
TBXItem8: TTBXItem;
TBXSeparatorItem4: TTBXSeparatorItem;
TBXItem9: TTBXItem;
TBXItem10: TTBXItem;
TBXItem11: TTBXItem;
cxStyle_IMPORTETOTAL: TcxStyle;
cxStyle_SUBTOTAL: TcxStyle;
cxStyle_TITULO: TcxStyle;
RichEditAlignRight2: TRichEditAlignRight;
actAnchoAutomatico: TAction;
TBXSeparatorItem5: TTBXSeparatorItem;
TBXItem13: TTBXItem;
procedure actAnadirExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actSubirExecute(Sender: TObject);
procedure actBajarExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actSubirUpdate(Sender: TObject);
procedure actBajarUpdate(Sender: TObject);
procedure actAnadirUpdate(Sender: TObject);
procedure cxGridViewEditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
procedure cxGridViewEditKeyDown(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word;
Shift: TShiftState);
procedure cxGridViewInitEdit(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
procedure FontEdit1BeforeExecute(Sender: TObject);
procedure FontEdit1Accept(Sender: TObject);
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure FontSizeChange(Sender: TObject);
procedure FontNameChange(Sender: TObject);
procedure cxGridViewEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
procedure TBXItem13Click(Sender: TObject);
procedure actAnchoAutomaticoExecute(Sender: TObject);
procedure actAnchoAutomaticoUpdate(Sender: TObject);
private
FController : IControllerDetallesBase;
FDetalles: IDAStronglyTypedDataTable;
FGridStatus: TcxGridStatus;
CurEdit: TcxRichEdit;
FUpdating: Boolean;
function CurrText: TTextAttributes;
procedure OnSelectChange(Sender:TObject);
function GetController: IControllerDetallesBase;
procedure SetController(const Value: IControllerDetallesBase);
function GetDetalles: IDAStronglyTypedDataTable;
procedure SetDetalles(const Value: IDAStronglyTypedDataTable);
function darPosicionCAMPO(const Nombre:String): Integer;
function darListaSeleccionados: TIntegerArray;
protected
function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; virtual;
function EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; virtual;
function darTipoLetraPorDefecto: TFont; virtual;
function GetFocusedView : TcxGridDBTableView; virtual;
function GetGrid : TcxGrid; virtual;
procedure SeleccionarRowActual;
public
procedure BeginUpdate;
procedure EndUpdate;
procedure SaveGridStatus;
procedure RestoreGridStatus;
procedure ExpandirTodo;
procedure ContraerTodo;
procedure AjustarAncho;
function IsEmpty : Boolean;
destructor Destroy; override;
property _FocusedView : TcxGridDBTableView read GetFocusedView;
property _Grid : TcxGrid read GetGrid;
property Controller: IControllerDetallesBase read GetController write SetController;
property Detalles: IDAStronglyTypedDataTable read GetDetalles write SetDetalles;
end;
implementation
{$R *.dfm}
function EnumFontsProc(var LogFont: TLogFont; var TextMetric: TTextMetric;
FontType: Integer; Data: Pointer): Integer; stdcall;
begin
TStrings(Data).Add(LogFont.lfFaceName);
Result := 1;
end;
procedure TfrViewDetallesBase.actAnadirExecute(Sender: TObject);
var
bEsMultiSelect : Boolean;
begin
// Debo quitar el multiselect porque provoca que se quede seleccionado
// el registro actual y no el nuevo registro que voy a añadir
bEsMultiSelect := cxGridView.OptionsSelection.MultiSelect;
if bEsMultiSelect then
cxGridView.OptionsSelection.MultiSelect := False;
cxGridView.BeginUpdate;
try
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
if Assigned(Controller)
and Assigned(FDetalles) then
Controller.add(FDetalles, TIPO_DETALLE_CONCEPTO);
finally
cxGridView.EndUpdate;
// Dejo la propiedad MultiSelect como estaba
if bEsMultiSelect then
cxGridView.OptionsSelection.MultiSelect := bEsMultiSelect;
end;
end;
procedure TfrViewDetallesBase.actEliminarExecute(Sender: TObject);
var
AuxTop, AuxRow:Integer;
begin
cxGridView.BeginUpdate;
try
if Assigned(Controller)
and Assigned(FDetalles) then
begin
AuxTop := cxGridView.Controller.TopRowIndex;
AuxRow := cxGridView.DataController.FocusedRowIndex;
Controller.delete(FDetalles, darListaSeleccionados);
if(FDetalles.RecordCount > 0) then
begin
//Selecciona en el grid el registro siguiente
if (AuxRow < cxGridView.DataController.RowCount-1) then
Inc(AuxRow)
else
Dec(AuxRow);
cxGridView.DataController.SelectRows(AuxRow,AuxRow);
cxGridView.Controller.TopRowIndex := AuxTop;
end;
end
finally
cxGridView.EndUpdate;
end;
SeleccionarRowActual;
end;
procedure TfrViewDetallesBase.actEliminarUpdate(Sender: TObject);
begin
if not Assigned(DADataSource.DataTable) then
(Sender as TAction).Enabled := False
else
(Sender as TAction).Enabled := (not ReadOnly)
and (not DADataSource.DataTable.IsEmpty)
end;
procedure TfrViewDetallesBase.actSubirUpdate(Sender: TObject);
begin
inherited;
if not Assigned(cxGridView.Controller.FocusedRow) then
(Sender as TAction).Enabled := False
else
(Sender as TAction).Enabled := (not ReadOnly)
and (not cxGridView.Controller.FocusedRow.IsFirst)
end;
procedure TfrViewDetallesBase.AjustarAncho;
begin
if Assigned(_FocusedView) then
_FocusedView.ApplyBestFit;
end;
procedure TfrViewDetallesBase.BeginUpdate;
begin
if Assigned(_FocusedView) then
_FocusedView.BeginUpdate;
end;
function TfrViewDetallesBase.darTipoLetraPorDefecto: TFont;
begin
Result := TFont.Create;
Result.Name := 'Tahoma';
Result.Size := 9;
end;
destructor TfrViewDetallesBase.Destroy;
begin
FController := NIL;
FDetalles := NIL;
if Assigned(FGridStatus) then
FreeAndNil(FGridStatus);
inherited;
end;
procedure TfrViewDetallesBase.ContraerTodo;
begin
if Assigned(_FocusedView) then
_FocusedView.ViewData.Collapse(True);
end;
function TfrViewDetallesBase.CurrText: TTextAttributes;
begin
Result := NIL;
if Assigned(CurEdit) then
// if CurEdit.FindSelection then
if CurEdit.SelLength > 0 then
Result := CurEdit.SelAttributes
else
Result := CurEdit.DefAttributes;
end;
procedure TfrViewDetallesBase.CustomViewCreate(Sender: TObject);
begin
inherited;
CurEdit := Nil;
FUpdating := False;
end;
procedure TfrViewDetallesBase.CustomViewDestroy(Sender: TObject);
begin
inherited;
CurEdit := Nil;
end;
procedure TfrViewDetallesBase.cxGridViewEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
begin
AAllow := EsTipoEditable(AItem);
end;
procedure TfrViewDetallesBase.cxGridViewEditKeyDown(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState);
begin
inherited;
cxGridView.BeginUpdate;
try
Case Key of
VK_DOWN : begin
//En el caso de ser la última fila hacemos un append nosotros no el grid
//ya que se saltaria la lógica del controllerDetallesBase
if cxGridView.Controller.IsFinish then
begin
Key := 0;
if Sender.Controller.EditingController.IsEditing then
Sender.Controller.EditingController.Edit.PostEditValue;
actAnadir.Execute;
end;
//Baja los conceptos seleccionados
if Shift = [ssAlt] then
begin
Key := 0;
actBajar.Execute;
end;
end;
VK_UP : begin
//Sube los conceptos seleccionados
if Shift = [ssAlt] then
begin
Key := 0;
actSubir.Execute;
end;
end;
VK_RETURN, VK_RIGHT
: begin
//En el caso de ser la última fila hacemos un append nosotros no el grid
//ya que se saltaria la lógica del controllerDetallesBase
if cxGridView.Controller.IsFinish
and AItem.IsLast then
begin
Key := 0;
if Sender.Controller.EditingController.IsEditing then
Sender.Controller.EditingController.Edit.PostEditValue;
actAnadir.Execute;
end;
end;
end;
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesBase.cxGridViewEditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
begin
inherited;
cxGridView.BeginUpdate;
try
if HayQueRecalcular(AItem) then
begin
if Sender.Controller.EditingController.IsEditing then
Sender.Controller.EditingController.Edit.PostEditValue;
Controller.actualizarTotales(Detalles);
end;
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesBase.cxGridViewInitEdit(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
var
FuentePorDefecto: TFont;
begin
inherited;
if AEdit is TcxRichEdit then
begin
FuentePorDefecto := darTipoLetraPorDefecto;
//La primera vez que accedemos al grid entra dos veces y perderiamos el editor
//dando un pete.
if not Assigned(CurEdit) then
begin
FontEdit1.Enabled := True;
// UpDown1.Enabled := True;
// FontSize.Enabled := True;
// FontName.Enabled := True;
CurEdit := TcxRichEdit(AEdit);
if length(CurEdit.Text) = 0 then
CurEdit.DefAttributes.Assign(FuentePorDefecto)
end
else
if length(CurEdit.Text) = 0 then
CurEdit.DefAttributes.Assign(FuentePorDefecto);
FreeAndNil(FuentePorDefecto);
end
else
begin
CurEdit := Nil;
FontEdit1.Enabled := False;
// UpDown1.Enabled := False;
// FontSize.Enabled := False;
// FontName.Enabled := False;
end;
end;
procedure TfrViewDetallesBase.cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
IndiceCol : Integer;
ATipo : String;
begin
if Assigned(ARecord) then
begin
IndiceCol := cxGridViewTIPO.Index;
ATipo := VarToStr(ARecord.Values[IndiceCol]);
if ATipo = TIPO_DETALLE_SUBTOTAL then
AStyle := cxStyle_SUBTOTAL;
if ATipo = TIPO_DETALLE_TITULO then
AStyle := cxStyle_TITULO;
end;
end;
function TfrViewDetallesBase.darListaSeleccionados: TIntegerArray;
var
i, j: Integer;
begin
j := darPosicionCampo(CAMPO_POSICION);
with cxGridView.Controller do
for i:=0 to SelectedRecordCount-1 do
begin
SetLength(Result, i+1);
Result[i] := SelectedRecords[i].Values[j];
end;
end;
function TfrViewDetallesBase.DarPosicionCAMPO(const Nombre: String): Integer;
var
i: Integer;
begin
Result := -1;
i:=0;
while ((cxGridView.Columns[i].DataBinding.FieldName <> Nombre)
and (i < cxGridView.ColumnCount)) do
inc(i);
if (i = cxGridView.ColumnCount)
then raise Exception.Create('El campo ' + Nombre + ' no se ha encontrado en el grid (uViewDetallesBase)');
Result := i;
end;
procedure TfrViewDetallesBase.EndUpdate;
begin
if Assigned(_FocusedView) then
_FocusedView.EndUpdate;
end;
function TfrViewDetallesBase.EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean;
var
IndiceCol : Integer;
begin
Result := True;
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_TIPO).Index;
if (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SALTO) then
begin
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_CONCEPTO).Index;
if AItem.Index >= IndiceCol then
Result := False
end
else
begin
if (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_SUBTOTAL)
or (AItem.GridView.Items[IndiceCol].EditValue = TIPO_DETALLE_TITULO) then
begin
IndiceCol := cxGridView.GetColumnByFieldName(CAMPO_CONCEPTO).Index;
if AItem.Index > IndiceCol then
Result := False
end
end;
end;
procedure TfrViewDetallesBase.ExpandirTodo;
begin
if Assigned(_FocusedView) then
_FocusedView.ViewData.Expand(True);
end;
procedure TfrViewDetallesBase.FontEdit1Accept(Sender: TObject);
begin
inherited;
CurrText.Assign(FontEdit1.Dialog.Font);
end;
procedure TfrViewDetallesBase.FontEdit1BeforeExecute(Sender: TObject);
begin
inherited;
FontEdit1.Dialog.Font.Assign(CurEdit.SelAttributes);
end;
procedure TfrViewDetallesBase.FontNameChange(Sender: TObject);
begin
if FUpdating then Exit;
CurrText.Name := FontName.Items[FontName.ItemIndex];
end;
procedure TfrViewDetallesBase.FontSizeChange(Sender: TObject);
begin
if FUpdating then Exit;
CurrText.Size := StrToInt(FontSize.Text);
end;
function TfrViewDetallesBase.GetController: IControllerDetallesBase;
begin
Result := FController;
end;
function TfrViewDetallesBase.GetDetalles: IDAStronglyTypedDataTable;
begin
Result := FDetalles;
end;
function TfrViewDetallesBase.GetFocusedView: TcxGridDBTableView;
begin
Result := cxGridView;
end;
function TfrViewDetallesBase.GetGrid: TcxGrid;
begin
Result := cxGrid;
end;
function TfrViewDetallesBase.HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean;
begin
Result := (AItem = cxGridViewTIPO)
or (AItem = cxGridViewCANTIDAD)
or (AItem = cxGridViewIMPORTEUNIDAD);
end;
function TfrViewDetallesBase.IsEmpty: Boolean;
begin
Result := (_FocusedView.ViewData.RowCount < 1);
end;
procedure TfrViewDetallesBase.OnSelectChange(Sender: TObject);
begin
if (csDestroying in ComponentState) then
Exit;
try
FUpdating := True;
// FontSize.Text := IntToStr(CurEdit.SelAttributes.Size);
// FontName.FontName := CurEdit.SelAttributes.Name;
finally
FUpdating := False;
end;
end;
procedure TfrViewDetallesBase.RestoreGridStatus;
begin
if Assigned(FGridStatus) and (not IsEmpty) then
FGridStatus.Restore(_FocusedView);
end;
procedure TfrViewDetallesBase.SaveGridStatus;
begin
FreeAndNil(FGridStatus);
if not IsEmpty then
FGridStatus := TcxGridStatus.Create(_FocusedView);
end;
procedure TfrViewDetallesBase.SeleccionarRowActual;
begin
//Quitamos lo que hubiera seleccionado
cxGrid.ActiveView.DataController.ClearSelection;
with cxGrid.ActiveView.DataController do
if RowCount > 0 then
SelectRows(GetFocusedRowIndex,GetFocusedRowIndex);
end;
procedure TfrViewDetallesBase.SetController(const Value: IControllerDetallesBase);
var
AListaValores : TStringList;
AItem : TcxImageComboBoxItem;
i: integer;
DC: HDC;
begin
FController := Value;
//Rellenamos los tipos de letra que tenemos
FontName.Items.Clear;
DC := GetDC(0);
EnumFonts(DC, nil, @EnumFontsProc, Pointer(FontName.Items));
ReleaseDC(0, DC);
FontName.Sorted := True;
//Rellenamos los tipos de conceptos que hay
if Assigned(FController) then
begin
AListaValores := FController.darListaTIPOSDETALLE;
with (cxGridViewTIPO.Properties as TcxImageComboBoxProperties) do
if Items.Count = 0 then
begin
Items.BeginUpdate;
try
Items.Clear;
for i:=0 to AListaValores.Count-1 do
begin
AItem := Items.Add;
AItem.Tag := i;
AItem.Description := AListaValores.ValueFromIndex[i];
AItem.Value := AListaValores.Names[i];
end;
finally
DefaultDescription := AListaValores.ValueFromIndex[0];
FreeAndNil(AListaValores);
Items.EndUpdate;
end;
end;
end;
end;
procedure TfrViewDetallesBase.SetDetalles(const Value: IDAStronglyTypedDataTable);
begin
FDetalles := Value;
if Assigned(FDetalles) then
DADataSource.DataTable := FDetalles.DataTable
else
DADataSource.DataTable := NIL;
end;
procedure TfrViewDetallesBase.TBXItem13Click(Sender: TObject);
begin
inherited;
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
end;
procedure TfrViewDetallesBase.actAnadirUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := not ReadOnly;
end;
procedure TfrViewDetallesBase.actAnchoAutomaticoExecute(Sender: TObject);
begin
inherited;
cxGridView.ApplyBestFit;
end;
procedure TfrViewDetallesBase.actAnchoAutomaticoUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := not IsEmpty;
end;
procedure TfrViewDetallesBase.actBajarExecute(Sender: TObject);
begin
cxGridView.BeginUpdate;
try
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
if Assigned(Controller)
and Assigned(FDetalles) then
Controller.move(FDetalles, darListaSeleccionados, 1);
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesBase.actBajarUpdate(Sender: TObject);
begin
inherited;
if not Assigned(cxGridView.Controller.FocusedRow) then
(Sender as TAction).Enabled := False
else
(Sender as TAction).Enabled := (not ReadOnly)
and (not cxGridView.Controller.FocusedRow.IsLast)
end;
procedure TfrViewDetallesBase.actSubirExecute(Sender: TObject);
begin
cxGridView.BeginUpdate;
try
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
if Assigned(Controller)
and Assigned(FDetalles) then
Controller.move(FDetalles, darListaSeleccionados, -1);
finally
cxGridView.EndUpdate;
end;
end;
end.

View File

@ -0,0 +1,95 @@
inherited frViewDetallesDTO: TfrViewDetallesDTO
inherited ToolBar1: TToolBar
ButtonWidth = 110
inherited ToolButton1: TToolButton
ExplicitWidth = 109
end
inherited ToolButton2: TToolButton
Left = 109
ExplicitLeft = 109
ExplicitWidth = 114
end
inherited ToolButton3: TToolButton
Left = 223
ExplicitLeft = 223
end
inherited ToolButton4: TToolButton
Left = 278
ExplicitLeft = 278
end
inherited ToolButton14: TToolButton
Left = 334
ExplicitLeft = 334
end
end
inherited cxGrid: TcxGrid
inherited cxGridView: TcxGridDBTableView
object cxGridViewDESCUENTO: TcxGridDBColumn [6]
Caption = 'Dto'
DataBinding.FieldName = 'DESCUENTO'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.DisplayFormat = ',0.00 %;-,0.00 %'
Properties.EditFormat = ',0.00;-,0.00'
Properties.MaxValue = 100.000000000000000000
end
object cxGridViewIMPORTENETO: TcxGridDBColumn [7]
Caption = 'Importe neto'
DataBinding.ValueType = 'Currency'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
Properties.DisplayFormat = ',0.00 '#8364';-,0.00 '#8364
Properties.EditFormat = ',0.00 '#8364';-,0.00 '#8364
Properties.ReadOnly = True
Properties.OnValidate = cxGridViewIMPORTENETOPropertiesValidate
OnGetDisplayText = cxGridViewIMPORTENETOGetDisplayText
HeaderAlignmentHorz = taRightJustify
Options.Editing = False
end
object cxGridViewIMPORTEPORTE: TcxGridDBColumn [8]
Caption = 'Importe porte'
DataBinding.FieldName = 'IMPORTE_PORTE'
PropertiesClassName = 'TcxCurrencyEditProperties'
Properties.Alignment.Horz = taRightJustify
Properties.EditFormat = ',0.00 '#8364';-,0.00 '#8364
HeaderAlignmentHorz = taRightJustify
end
end
end
inherited TBXDock1: TTBXDock
inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 447
end
end
inherited ActionListContenido: TActionList
inherited actAnadir: TAction
Caption = 'A'#241'adir concepto'
end
inherited actEliminar: TAction
Caption = 'Eliminar concepto'
end
inherited RichEditBold1: TRichEditBold
Visible = False
end
inherited RichEditItalic1: TRichEditItalic
Visible = False
end
inherited RichEditUnderline1: TRichEditUnderline
Visible = False
end
inherited RichEditAlignLeft1: TRichEditAlignLeft
Visible = False
end
inherited RichEditAlignCenter1: TRichEditAlignCenter
Visible = False
end
inherited RichEditAlignRight1: TRichEditAlignRight
Visible = False
end
inherited FontEdit1: TFontEdit
Visible = False
end
inherited RichEditAlignRight2: TRichEditAlignRight
Visible = False
end
end
end

View File

@ -0,0 +1,75 @@
unit uViewDetallesDTO;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewDetallesBase, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxRichEdit,
cxMaskEdit, cxCurrencyEdit, cxCheckBox, ImgList, PngImageList, uDADataTable,
StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls,
JvCombobox, JvColorCombo, ToolWin;
type
IViewDetallesDTO = interface(IViewDetallesBase)
['{0D221FFB-9F43-48FC-9AE7-0AD0F0791AD1}']
end;
TfrViewDetallesDTO = class(TfrViewDetallesBase, IViewDetallesDTO)
cxGridViewDESCUENTO: TcxGridDBColumn;
cxGridViewIMPORTEPORTE: TcxGridDBColumn;
cxGridViewIMPORTENETO: TcxGridDBColumn;
procedure cxGridViewIMPORTENETOGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AText: string);
procedure cxGridViewIMPORTENETOPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
protected
function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; override;
end;
implementation
{$R *.dfm}
{ TfrViewDetallesDTO }
procedure TfrViewDetallesDTO.cxGridViewIMPORTENETOGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AText: string);
var
ImporteNeto : Double;
begin
//Se encarga de mostrar el campo calculado de importe neto
ImporteNeto := -1;
if not VarIsNull(ARecord.Values[cxGridViewIMPORTEUNIDAD.Index]) then
if not VarIsNull(ARecord.Values[cxGridViewDESCUENTO.Index]) then
ImporteNeto := ARecord.Values[cxGridViewIMPORTEUNIDAD.Index] - ((ARecord.Values[cxGridViewIMPORTEUNIDAD.Index] * ARecord.Values[cxGridViewDESCUENTO.Index])/100)
else
ImporteNeto := ARecord.Values[cxGridViewIMPORTEUNIDAD.Index];
if (ImporteNeto <> -1) then
begin
AText := FormatCurr(',0.00 €;-,0.00 €', FloatToCurr(ImporteNeto))
end;
end;
procedure TfrViewDetallesDTO.cxGridViewIMPORTENETOPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
inherited;
if not VarIsNull(DisplayValue) then
begin
cxGridViewDESCUENTO.DataBinding.Field.Value := ((cxGridViewIMPORTEUNIDAD.DataBinding.Field.Value - DisplayValue) * 100) / cxGridViewIMPORTEUNIDAD.DataBinding.Field.Value;
Controller.ActualizarTotales(Detalles);
end;
end;
function TfrViewDetallesDTO.HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean;
begin
Result := inherited HayQueRecalcular(AItem);
if not Result then
Result := (AItem = cxGridViewDESCUENTO) or (AItem = cxGridViewIMPORTEPORTE);
end;
end.

View File

@ -0,0 +1,238 @@
inherited frViewDetallesGenerico: TfrViewDetallesGenerico
Width = 503
Height = 357
ExplicitWidth = 503
ExplicitHeight = 357
object cxGrid: TcxGrid
Left = 0
Top = 25
Width = 503
Height = 332
Align = alClient
TabOrder = 0
LookAndFeel.Kind = lfOffice11
LookAndFeel.NativeStyle = True
object cxGridView: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
FilterBox.Visible = fvNever
OnEditKeyDown = cxGridViewEditKeyDown
DataController.DataSource = dsDetalles
DataController.Filter.Options = [fcoCaseInsensitive]
DataController.KeyFieldNames = 'ID'
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoFocusTopRowAfterSorting, dcoImmediatePost]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
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
OptionsData.CancelOnExit = False
OptionsSelection.MultiSelect = True
OptionsSelection.UnselectFocusedRecordOnExit = False
OptionsView.CellEndEllipsis = True
OptionsView.CellAutoHeight = True
OptionsView.ColumnAutoWidth = True
OptionsView.GridLineColor = cl3DLight
OptionsView.GroupByBox = False
OptionsView.HeaderEndEllipsis = True
OptionsView.Indicator = True
object cxGridViewID: TcxGridDBColumn
DataBinding.FieldName = 'ID'
Visible = False
end
end
object cxGridLevel: TcxGridLevel
GridView = cxGridView
end
end
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 503
Height = 25
ButtonWidth = 113
Caption = 'ToolBar1'
EdgeInner = esNone
EdgeOuter = esNone
Flat = False
Images = ContenidoImageList
List = True
ParentShowHint = False
ShowCaptions = True
ShowHint = True
TabOrder = 1
Transparent = True
object ToolButton1: TToolButton
Left = 0
Top = 2
Action = actAnadir
AutoSize = True
end
object ToolButton4: TToolButton
Left = 62
Top = 2
Action = actModificar
AutoSize = True
end
object ToolButton5: TToolButton
Left = 136
Top = 2
Width = 8
Caption = 'ToolButton5'
ImageIndex = 2
Style = tbsSeparator
end
object ToolButton2: TToolButton
Left = 144
Top = 2
Action = actEliminar
AutoSize = True
end
object ToolButton6: TToolButton
Left = 211
Top = 2
Width = 8
Caption = 'ToolButton6'
ImageIndex = 2
Style = tbsSeparator
end
object ToolButton7: TToolButton
Left = 219
Top = 2
Action = actAnchoAutomatico
AutoSize = True
end
end
object dsDetalles: TDADataSource
Left = 40
Top = 144
end
object ContenidoImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000F84944415478DA
63FCFFFF3F03084C59BC03C2200072E33C19616C905E46640372623DF06A06AA
6198B77413C3F99DD3194936E0DFBF7F0CD396EE62D051576128AAEB031B42B4
0120CDBFFFFC6398BD720F43B0A70DC3CD7B2FC0869CDB318D91A00130CDBF7F
FF6558B06E3FD80B3040D00064CDBFFF40F0AA6D47C1722083F01A804D3304FF
63D8B2EF147E03F06906D13B0F9DC56D0058E16F540D20FC07C607CA1D387911
BB01E991AE043583F847CF5EC16E4052881341CD207CEAE275EC06C406D813D4
0CC2E7AFDEC26E40848F2D41CD20B12B37EF603720D8C38AA06610C069809F8B
39C3A63D2789C994D80D404EA6C400900100F58BBFF09BC1E25C000000004945
4E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA
A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304
451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994
9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F
9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546
031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8
1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA
9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E
9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8
E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0
3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8
5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37
60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB
7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932
75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04
E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148
D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2
45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56
A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E
AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13
7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058
5538F0EAB25B380000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000015D4944415478DA
63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0
3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060
24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298
E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0
60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161
10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319
1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5
BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068
06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2
E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41
00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500
00000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001124944415478DA
63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end>
Left = 40
Top = 112
Bitmap = {}
end
object ActionListContenido: TActionList
Images = ContenidoImageList
Left = 40
Top = 80
object actAnadir: TAction
Category = 'Operaciones'
Caption = 'A'#241'adir'
ImageIndex = 0
ShortCut = 45
OnExecute = actAnadirExecute
OnUpdate = actAnadirUpdate
end
object actEliminar: TAction
Category = 'Operaciones'
Caption = 'Eliminar'
ImageIndex = 1
ShortCut = 16430
OnExecute = actEliminarExecute
OnUpdate = actEliminarUpdate
end
object actModificar: TAction
Category = 'Operaciones'
Caption = 'Modificar'
ImageIndex = 2
OnExecute = actModificarExecute
OnUpdate = actModificarUpdate
end
object actAnchoAutomatico: TAction
Category = 'Operaciones'
Caption = 'Ancho autom'#225'tico'
ImageIndex = 3
OnExecute = actAnchoAutomaticoExecute
end
end
end

View File

@ -0,0 +1,206 @@
unit uViewDetallesGenerico;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, ActnList, ImgList,
PngImageList, uDADataTable, ComCtrls, ToolWin, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, uDAInterfaces;
type
TfrViewDetallesGenerico = class(TfrViewBase)
cxGrid: TcxGrid;
cxGridView: TcxGridDBTableView;
cxGridViewID: TcxGridDBColumn;
cxGridLevel: TcxGridLevel;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
dsDetalles: TDADataSource;
ContenidoImageList: TPngImageList;
ActionListContenido: TActionList;
actAnadir: TAction;
actEliminar: TAction;
ToolButton4: TToolButton;
actModificar: TAction;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
actAnchoAutomatico: TAction;
ToolButton7: TToolButton;
procedure cxGridViewEditKeyDown(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word;
Shift: TShiftState);
procedure actAnadirExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actAnadirUpdate(Sender: TObject);
procedure actAnchoAutomaticoExecute(Sender: TObject);
procedure actModificarUpdate(Sender: TObject);
procedure actModificarExecute(Sender: TObject);
protected
function HayDatos : Boolean;
procedure AnadirInterno; virtual;
procedure ModificarInterno; virtual;
procedure EliminarInterno; virtual;
function GetModified: Boolean; override;
end;
implementation
{$R *.dfm}
uses
uDataTableUtils;
procedure TfrViewDetallesGenerico.actAnadirExecute(Sender: TObject);
var
bEsMultiSelect : Boolean;
begin
// Debo quitar el multiselect porque provoca que se quede seleccionado
// el registro actual y no el nuevo registro que voy a añadir
bEsMultiSelect := cxGridView.OptionsSelection.MultiSelect;
if bEsMultiSelect then
cxGridView.OptionsSelection.MultiSelect := False;
cxGridView.BeginUpdate;
try
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
AnadirInterno;
finally
cxGridView.EndUpdate;
// Dejo la propiedad MultiSelect como estaba
if bEsMultiSelect then
cxGridView.OptionsSelection.MultiSelect := bEsMultiSelect;
end;
end;
procedure TfrViewDetallesGenerico.actAnadirUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := Assigned(dsDetalles.DataTable);
end;
procedure TfrViewDetallesGenerico.actAnchoAutomaticoExecute(Sender: TObject);
begin
inherited;
cxGridView.ApplyBestFit;
end;
procedure TfrViewDetallesGenerico.actEliminarExecute(Sender: TObject);
var
AuxTop, AuxRow:Integer;
begin
cxGridView.BeginUpdate;
AuxTop := cxGridView.Controller.TopRowIndex;
AuxRow := cxGridView.DataController.FocusedRowIndex;
try
EliminarInterno;
//Selecciona en el grid el registro siguiente
if (AuxRow < cxGridView.DataController.RowCount-1) then
Inc(AuxRow)
else
Dec(AuxRow);
if dsDetalles.DataTable.RecordCount > 0 then
begin
cxGridView.DataController.SelectRows(AuxRow,AuxRow);
cxGridView.Controller.TopRowIndex := AuxTop;
end;
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesGenerico.actEliminarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfrViewDetallesGenerico.actModificarExecute(Sender: TObject);
begin
inherited;
ModificarInterno;
end;
procedure TfrViewDetallesGenerico.actModificarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos and
(cxGridView.DataController.FocusedRowIndex >= 0)
end;
procedure TfrViewDetallesGenerico.AnadirInterno;
begin
dsDetalles.DataTable.Insert;
end;
procedure TfrViewDetallesGenerico.cxGridViewEditKeyDown(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState);
begin
inherited;
cxGridView.BeginUpdate;
try
Case Key of
VK_DOWN : begin
//En el caso de ser la última fila hacemos un append nosotros no el grid
//ya que se saltaria la lógica del controllerDetallesBase
if cxGridView.Controller.IsFinish then
begin
Key := 0;
if Sender.Controller.EditingController.IsEditing then
Sender.Controller.EditingController.Edit.PostEditValue;
actAnadir.Execute;
end;
end;
VK_RETURN, VK_RIGHT
: begin
//En el caso de ser la última fila hacemos un append nosotros no el grid
//ya que se saltaria la lógica del controllerDetallesBase
if cxGridView.Controller.IsFinish
and AItem.IsLast then
begin
Key := 0;
if Sender.Controller.EditingController.IsEditing then
Sender.Controller.EditingController.Edit.PostEditValue;
actAnadir.Execute;
end;
end;
end;
finally
cxGridView.EndUpdate;
end;
end;
procedure TfrViewDetallesGenerico.EliminarInterno;
begin
dsDetalles.DataTable.Delete;
end;
function TfrViewDetallesGenerico.GetModified: Boolean;
begin
Result := DataTableModified(dsDetalles.DataTable) or inherited GetModified;
end;
function TfrViewDetallesGenerico.HayDatos: Boolean;
begin
Result := Assigned(dsDetalles.DataTable) and
(cxGridView.ViewInfo.VisibleRecordCount > 0)
end;
procedure TfrViewDetallesGenerico.ModificarInterno;
begin
//
end;
end.

View File

@ -0,0 +1,200 @@
object frViewFiltroBase: TfrViewFiltroBase
Left = 0
Top = 0
Width = 565
Height = 102
TabOrder = 0
Visible = False
object TBXDockablePanel1: TTBXDockablePanel
Left = 0
Top = 0
Align = alClient
Caption = 'TBXDockablePanel1'
CloseButton = False
CloseButtonWhenDocked = False
DockedHeight = 98
DockMode = dmCannotFloatOrChangeDocks
FloatingWidth = 128
FloatingHeight = 98
ShowCaption = False
ShowCaptionWhenDocked = False
SupportedDocks = [dkStandardDock, dkMultiDock]
TabOrder = 0
ExplicitWidth = 128
ExplicitHeight = 98
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 565
Height = 68
Align = alTop
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth, acsHeight]
ExplicitWidth = 128
object txtFiltroTodo: TcxTextEdit
Left = 87
Top = 10
Properties.OnChange = OnCamposFiltroChange
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 = 273
end
object edtFechaIniFiltro: TcxDateEdit
Left = 87
Top = 37
Properties.OnChange = OnCamposFiltroChange
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.ButtonStyle = bts3D
Style.PopupBorderStyle = epbsFrame3D
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 = 121
end
object edtFechaFinFiltro: TcxDateEdit
Left = 350
Top = 37
Properties.OnChange = OnCamposFiltroChange
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.ButtonStyle = bts3D
Style.PopupBorderStyle = epbsFrame3D
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 dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Item1: TdxLayoutItem
Caption = 'Que contenga:'
Control = txtFiltroTodo
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Group1: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item2: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Entre la fecha:'
Control = edtFechaIniFiltro
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'y'
Control = edtFechaFinFiltro
ControlOptions.ShowBorder = False
end
end
end
end
object TBXAlignmentPanel1: TTBXAlignmentPanel
Left = 0
Top = 68
Width = 565
Height = 30
Margins.Left = 10
Align = alTop
TabOrder = 1
ExplicitWidth = 128
object tbxBotones: TTBXToolbar
Left = 10
Top = 0
Width = 555
Height = 30
Align = alTop
AutoResize = False
BorderStyle = bsNone
Caption = 'tbxBotones'
ChevronHint = 'M'#225's botones|'
DockMode = dmCannotFloatOrChangeDocks
DockPos = -23
DockRow = 1
DragHandleStyle = dhNone
ParentShowHint = False
ShowHint = True
TabOrder = 0
ExplicitWidth = 118
object TBXItem2: TTBXItem
Action = actQuitarFiltro
DisplayMode = nbdmImageAndText
Images = PngImageList
end
end
end
end
object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList
Left = 136
Top = 16
end
object ActionList1: TActionList
Images = PngImageList
Left = 384
Top = 72
object actQuitarFiltro: TAction
Caption = 'Quitar filtros y ver todo'
ImageIndex = 0
OnExecute = actQuitarFiltroExecute
end
end
object PngImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001B04944415478DA
63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3
C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999
FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7
481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E
7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840
96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3
CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657
318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28
6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34
782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9
F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296
D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801
6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A
98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end>
Left = 424
Top = 72
Bitmap = {}
end
end

View File

@ -0,0 +1,144 @@
unit uViewFiltroBase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxMaskEdit, cxDropDownEdit, cxCalendar, dxLayoutControl,
cxContainer, cxEdit, cxTextEdit, dxLayoutLookAndFeels, cxControls,
StdCtrls, Buttons, cxRadioGroup, TBXDkPanels, TB2ExtItems, TBXExtItems,
TBX, TB2Item, TB2Dock, TB2Toolbar, ActnList, ImgList, PngImageList;
type
IViewFiltroBase = interface
['{0D0EA630-BF93-4BA1-93C2-FD5A5B0CBEED}']
function GetFiltrosChange: TNotifyEvent;
procedure SetFiltrosChange(const Value: TNotifyEvent);
property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange;
function GetVerFiltros: Boolean;
procedure SetVerFiltros(const Value: Boolean);
property VerFiltros: Boolean read GetVerFiltros write SetVerFiltros;
function GetTexto: String;
procedure SetTexto(const Value: String);
property Texto: String read GetTexto write SetTexto;
end;
TfrViewFiltroBase = class(TFrame, IViewFiltroBase)
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
dxLayoutControl1Item1: TdxLayoutItem;
txtFiltroTodo: TcxTextEdit;
dxLayoutControl1Item2: TdxLayoutItem;
edtFechaIniFiltro: TcxDateEdit;
dxLayoutControl1Item3: TdxLayoutItem;
edtFechaFinFiltro: TcxDateEdit;
dxLayoutControl1Group1: TdxLayoutGroup;
TBXDockablePanel1: TTBXDockablePanel;
ActionList1: TActionList;
actQuitarFiltro: TAction;
PngImageList: TPngImageList;
tbxBotones: TTBXToolbar;
TBXItem2: TTBXItem;
TBXAlignmentPanel1: TTBXAlignmentPanel;
procedure OnCamposFiltroChange(Sender: TObject);
procedure actQuitarFiltroExecute(Sender: TObject);
private
FOnFiltrosChange: TNotifyEvent;
function GetFiltrosChange: TNotifyEvent;
procedure SetFiltrosChange(const Value: TNotifyEvent);
function GetVerFiltros: Boolean;
procedure SetVerFiltros(const Value: Boolean);
function GetTexto: String;
procedure SetTexto(const Value: String);
protected
procedure LimpiarCampos; virtual;
function ValidarCampos: Boolean; virtual;
public
property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange;
property VerFiltros: Boolean read GetVerFiltros write SetVerFiltros;
property Texto: String read GetTexto write SetTexto;
end;
implementation
{$R *.dfm}
uses uDialogUtils;
{ TfrViewFiltroBase }
function TfrViewFiltroBase.GetFiltrosChange: TNotifyEvent;
begin
Result := FOnFiltrosChange;
end;
procedure TfrViewFiltroBase.SetFiltrosChange(const Value: TNotifyEvent);
begin
FOnFiltrosChange := Value;
end;
function TfrViewFiltroBase.GetVerFiltros: Boolean;
begin
Result := Self.Visible;
end;
procedure TfrViewFiltroBase.SetVerFiltros(const Value: Boolean);
begin
Self.Visible := Value;
if not Self.Visible then
actQuitarFiltro.Execute;
end;
procedure TfrViewFiltroBase.LimpiarCampos;
begin
txtFiltroTodo.Clear;
edtFechaIniFiltro.Clear;
edtFechaFinFiltro.Clear;
end;
procedure TfrViewFiltroBase.OnCamposFiltroChange(Sender: TObject);
begin
if ValidarCampos then
if Assigned(FOnFiltrosChange) then
FOnFiltrosChange(Sender);
end;
function TfrViewFiltroBase.ValidarCampos: Boolean;
begin
Result := True;
if not VarIsNull(edtFechaIniFiltro.EditValue) and not VarIsNull(edtFechaFinFiltro.EditValue) then
begin
if (edtFechaIniFiltro.EditValue > edtFechaFinFiltro.EditValue) then
begin
ShowWarningMessage('La fecha de inicio debe ser anterior a la fecha final');
edtFechaIniFiltro.SetFocus;
Result := False;
end
end;
end;
procedure TfrViewFiltroBase.actQuitarFiltroExecute(Sender: TObject);
begin
LimpiarCampos;
if Assigned(FOnFiltrosChange) then
FOnFiltrosChange(Sender);
end;
function TfrViewFiltroBase.GetTexto: String;
begin
Result := txtFiltroTodo.Text;
end;
procedure TfrViewFiltroBase.SetTexto(const Value: String);
begin
txtFiltroTodo.Text := Value;
end;
end.

View File

@ -0,0 +1,47 @@
inherited frViewFormaPago: TfrViewFormaPago
Width = 300
ExplicitWidth = 300
DesignSize = (
300
291)
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 = 'FORMA_PAGO'
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

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)
DADataSource: TDADataSource;
memFormaPago: TcxDBMemo;
Label5: TLabel;
Bevel1: TBevel;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

View File

@ -0,0 +1,332 @@
inherited frViewGrid: TfrViewGrid
Width = 554
Height = 594
ExplicitWidth = 554
ExplicitHeight = 594
object cxGrid: TcxGrid [0]
Left = 0
Top = 102
Width = 554
Height = 466
Align = alClient
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 0
LookAndFeel.Kind = lfOffice11
LookAndFeel.NativeStyle = True
object cxGridView: TcxGridDBTableView
OnDblClick = cxGridViewDblClick
NavigatorButtons.ConfirmDelete = False
FilterBox.Visible = fvNever
DataController.DataSource = dsDataSource
DataController.Filter.Options = [fcoCaseInsensitive]
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.CellHints = True
OptionsCustomize.ColumnFiltering = False
OptionsCustomize.ColumnGrouping = False
OptionsCustomize.ColumnsQuickCustomization = True
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.DataRowHeight = 22
OptionsView.Footer = True
OptionsView.GridLineColor = clHighlight
OptionsView.GridLines = glHorizontal
OptionsView.GroupByBox = False
OptionsView.HeaderEndEllipsis = True
Styles.Inactive = cxStyleSelection
Styles.Selection = cxStyleSelection
Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
end
object cxGridLevel: TcxGridLevel
GridView = cxGridView
end
end
inline frViewFiltroBase1: TfrViewFiltroBase [1]
Left = 0
Top = 0
Width = 554
Height = 102
Align = alTop
TabOrder = 1
Visible = False
ExplicitWidth = 554
inherited TBXDockablePanel1: TTBXDockablePanel
ExplicitWidth = 554
ExplicitHeight = 102
inherited dxLayoutControl1: TdxLayoutControl
Width = 554
ExplicitWidth = 554
inherited txtFiltroTodo: TcxTextEdit
ExplicitWidth = 273
Width = 273
end
inherited edtFechaIniFiltro: TcxDateEdit
ExplicitWidth = 121
Width = 121
end
inherited edtFechaFinFiltro: TcxDateEdit
Left = 344
ExplicitLeft = 344
ExplicitWidth = 121
Width = 121
end
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
Width = 554
ExplicitWidth = 554
inherited tbxBotones: TTBXToolbar
Width = 544
ExplicitWidth = 544
end
end
end
end
object pnlAgrupaciones: TTBXDockablePanel
Left = 0
Top = 568
MinClientHeight = 8
Align = alBottom
Caption = 'pnlAgrupaciones'
DockedHeight = 26
FloatingWidth = 128
FloatingHeight = 26
SupportedDocks = [dkStandardDock, dkMultiDock]
TabOrder = 2
Visible = False
object TBXAlignmentPanel1: TTBXAlignmentPanel
Left = 0
Top = 0
Width = 554
Height = 26
Margins.Left = 10
Align = alTop
TabOrder = 0
object TBXToolbar1: TTBXToolbar
Left = 10
Top = 0
Width = 544
Height = 26
Align = alTop
AutoResize = False
Caption = 'TBXToolbar1'
TabOrder = 0
object TBXItem1: TTBXItem
Action = actQuitarAgrupaciones
end
end
end
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.GrayShading = True
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.ScaleMode = smFit
PrinterPage._dxMeasurementUnits_ = 0
PrinterPage._dxLastMU_ = 2
ReportDocument.CreationDate = 39296.809313506940000000
StyleManager = dxPrintStyleManager1
OptionsCards.Shadow.Depth = 0
OptionsExpanding.ExpandGroupRows = True
OptionsExpanding.ExpandMasterRows = True
OptionsFormatting.SuppressBackgroundBitmaps = True
OptionsFormatting.UseNativeStyles = True
OptionsFormatting.ConsumeSelectionStyle = True
OptionsLevels.Unwrap = True
OptionsRefinements.TransparentGraphics = True
OptionsSize.AutoWidth = True
OptionsView.Caption = False
OptionsView.ExpandButtons = False
OptionsView.FilterBar = False
StyleRepository = cxStyleRepositoryInforme
Styles.Content = cxStyleContentInforme
Styles.Footer = cxStyleFooterInforme
Styles.Group = cxStyleGroupInforme
Styles.Header = cxStyleHeaderInforme
Styles.Selection = cxStyleSelectionInforme
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
object cxStyleSinOrden: TcxStyle
end
object cxStyleConOrden: TcxStyle
AssignedValues = [svColor]
Color = 16119285
end
object cxStyleFiltered: TcxStyle
AssignedValues = [svColor]
Color = clInfoBk
end
object cxStyleFilteredConOrden: TcxStyle
AssignedValues = [svColor]
Color = 14546175
end
end
object cxViewGridPopupMenu: TcxGridPopupMenu
Grid = cxGrid
PopupMenus = <
item
GridView = cxGridView
HitTypes = [gvhtCell]
Index = 0
end>
Left = 264
Top = 128
end
object ActionList1: TActionList
Left = 400
Top = 360
object actQuitarAgrupaciones: TAction
Caption = 'Quitar agrupaciones'
OnExecute = actQuitarAgrupacionesExecute
OnUpdate = actQuitarAgrupacionesUpdate
end
end
object PngImageList10: TPngImageList
PngImages = <>
Left = 368
Top = 360
end
object cxStyleRepositoryInforme: TcxStyleRepository
Left = 368
Top = 160
object cxStyleContentInforme: TcxStyle
AssignedValues = [svColor, svFont, svTextColor]
Color = clWhite
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
TextColor = clBlack
end
object cxStyleFooterInforme: TcxStyle
AssignedValues = [svColor, svFont, svTextColor]
Color = 14803425
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
TextColor = clBlack
end
object cxStyleGroupInforme: TcxStyle
AssignedValues = [svColor, svFont, svTextColor]
Color = clWhite
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -12
Font.Name = 'Tahoma'
Font.Style = [fsBold]
TextColor = clBlack
end
object cxStyleHeaderInforme: TcxStyle
AssignedValues = [svColor, svFont, svTextColor]
Color = 14803425
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = [fsBold]
TextColor = clBlack
end
object cxStyleSelectionInforme: TcxStyle
AssignedValues = [svColor, svFont, svTextColor]
Color = clWhite
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
TextColor = clBlack
end
end
object dxPrintStyleManager1: TdxPrintStyleManager
CurrentStyle = dxPrintStyleManager1Style1
Version = 0
Left = 336
Top = 160
object dxPrintStyleManager1Style1: TdxPSPrintStyle
PrinterPage.DMPaper = 9
PrinterPage.Footer = 6350
PrinterPage.Header = 6350
PrinterPage.Margins.Bottom = 20000
PrinterPage.Margins.Left = 12700
PrinterPage.Margins.Right = 12700
PrinterPage.Margins.Top = 20000
PrinterPage.PageFooter.CenterTitle.Strings = (
'[Date & Time Printed]')
PrinterPage.PageFooter.Font.Charset = DEFAULT_CHARSET
PrinterPage.PageFooter.Font.Color = clBlack
PrinterPage.PageFooter.Font.Height = -12
PrinterPage.PageFooter.Font.Name = 'Tahoma'
PrinterPage.PageFooter.Font.Style = []
PrinterPage.PageFooter.LeftTitle.Strings = (
'LUIS LEON REPRESENTACIONES S.L.')
PrinterPage.PageFooter.RightTitle.Strings = (
'[Page #] de [Total Pages]')
PrinterPage.PageHeader.Font.Charset = DEFAULT_CHARSET
PrinterPage.PageHeader.Font.Color = clBlack
PrinterPage.PageHeader.Font.Height = -15
PrinterPage.PageHeader.Font.Name = 'Tahoma'
PrinterPage.PageHeader.Font.Style = []
PrinterPage.PageHeader.LeftTitle.Strings = (
'')
PrinterPage.PageSize.X = 210000
PrinterPage.PageSize.Y = 297000
PrinterPage._dxMeasurementUnits_ = 0
PrinterPage._dxLastMU_ = 2
BuiltInStyle = True
end
end
end

View File

@ -0,0 +1,221 @@
{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
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, uViewGridBase, cxGridCustomPopupMenu,
cxGridPopupMenu, uViewFiltroBase, ComCtrls, cxPC, ImgList, PngImageList,
TB2Item, TBX, TB2Dock, TB2Toolbar, TBXDkPanels, dxPgsDlg;
type
IViewGrid = interface(IViewGridBase)
['{7EA40980-AD73-4590-A53A-932316C7B121}']
end;
TfrViewGrid = class(TfrViewGridBase, IViewGrid)
cxGrid: TcxGrid;
cxGridLevel: TcxGridLevel;
cxGridView: TcxGridDBTableView;
dxComponentPrinter: TdxComponentPrinter;
dxPSEngineController1: TdxPSEngineController;
cxStyleRepository1: TcxStyleRepository;
cxStyleEven: TcxStyle;
cxStyleOdd: TcxStyle;
cxStyleSelection: TcxStyle;
cxStyleSinOrden: TcxStyle;
cxStyleConOrden: TcxStyle;
cxViewGridPopupMenu: TcxGridPopupMenu;
dxComponentPrinterLink: TdxGridReportLink;
cxStyleFiltered: TcxStyle;
cxStyleFilteredConOrden: TcxStyle;
frViewFiltroBase1: TfrViewFiltroBase;
ActionList1: TActionList;
PngImageList10: TPngImageList;
actQuitarAgrupaciones: TAction;
pnlAgrupaciones: TTBXDockablePanel;
TBXAlignmentPanel1: TTBXAlignmentPanel;
TBXToolbar1: TTBXToolbar;
TBXItem1: TTBXItem;
cxStyleRepositoryInforme: TcxStyleRepository;
cxStyleContentInforme: TcxStyle;
cxStyleFooterInforme: TcxStyle;
cxStyleGroupInforme: TcxStyle;
cxStyleHeaderInforme: TcxStyle;
cxStyleSelectionInforme: TcxStyle;
dxPrintStyleManager1: TdxPrintStyleManager;
dxPrintStyleManager1Style1: TdxPSPrintStyle;
procedure cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
procedure cxGridViewDblClick(Sender: TObject);
procedure actQuitarAgrupacionesExecute(Sender: TObject);
procedure actQuitarAgrupacionesUpdate(Sender: TObject);
protected
function GetGrid : TcxGrid; override;
function GetFocusedView : TcxGridDBTableView; override;
procedure SetPopupMenu(const Value: TPopupMenu); override;
procedure FilterChanged(Sender : TObject); override;
procedure OnChangeValoresFiltro(Sender: TObject);
procedure SetViewFiltros(const Value: IViewFiltroBase); override;
function AddFilterGrid(const Operacion: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList;
public
function esSeleccionCeldaDatos: Boolean; override;
procedure Preview; override;
procedure Print; override;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses
uDataModuleBase, uDBSelectionListUtils;
{$R *.dfm}
{
********************************* TfrViewGrid **********************************
}
{ TfrViewGrid }
function TfrViewGrid.GetFocusedView: TcxGridDBTableView;
begin
Result := cxGridView;
end;
function TfrViewGrid.GetGrid: TcxGrid;
begin
Result := cxGrid;
end;
procedure TfrViewGrid.OnChangeValoresFiltro(Sender: TObject);
begin
cxGridView.DataController.Filter.BeginUpdate;
RefrescarFiltro;
cxGridView.DataController.Filter.EndUpdate;
end;
procedure TfrViewGrid.Preview;
begin
inherited;
dxComponentPrinter.Preview;
end;
procedure TfrViewGrid.Print;
begin
inherited;
dxComponentPrinter.Print(True, nil, nil);
end;
procedure TfrViewGrid.SetPopupMenu(const Value: TPopupMenu);
begin
inherited;
cxViewGridPopupMenu.PopupMenus[0].PopupMenu := FPopupMenu;
end;
procedure TfrViewGrid.SetViewFiltros(const Value: IViewFiltroBase);
begin
inherited;
if Assigned(ViewFiltros) then
ViewFiltros.OnFiltrosChange := OnChangeValoresFiltro
end;
procedure TfrViewGrid.actQuitarAgrupacionesExecute(Sender: TObject);
var
Columna: TcxGridDBColumn;
i: Integer;
begin
inherited;
for i := 0 to cxGridView.ColumnCount - 1 do
begin
Columna := (cxGridView as TcxGridDBTableView).Columns[i];
if not (Columna.GroupIndex < 0) then
begin
Columna.GroupIndex := -1;
Columna.Visible := True;
end;
end;
end;
procedure TfrViewGrid.actQuitarAgrupacionesUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (cxGridView.GroupedColumnCount > 0);
end;
function TfrViewGrid.AddFilterGrid(const Operacion: tcxFilterBoolOperatorKind): TcxFilterCriteriaItemList;
var
AItemList: TcxFilterCriteriaItemList;
begin
AItemList := cxGridView.DataController.Filter.Root;
Result := AItemList.AddItemList(Operacion);
end;
constructor TfrViewGrid.Create(AOwner: TComponent);
begin
inherited;
ViewFiltros := frViewFiltroBase1;
end;
procedure TfrViewGrid.cxGridViewDblClick(Sender: TObject);
begin
inherited;
if Assigned(FOnDblClick) then
FOnDblClick(Sender);
end;
procedure TfrViewGrid.cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
inherited;
if Assigned(AItem) then
begin
if AItem.SortOrder = soNone then
AStyle := cxStyleSinOrden
else begin
AStyle := cxStyleConOrden;
if Filtered then
AStyle := cxStyleFilteredConOrden;
end;
end;
end;
destructor TfrViewGrid.Destroy;
begin
ViewFiltros := Nil;
inherited;
end;
function TfrViewGrid.esSeleccionCeldaDatos: Boolean;
begin
Result := not (cxGridView.Controller.FocusedRecord is TcxGridGroupRow);
end;
procedure TfrViewGrid.FilterChanged(Sender: TObject);
begin
inherited;
if Filtered then
_FocusedView.Styles.Content := cxStyleFiltered
else
_FocusedView.Styles.Content := nil;
end;
end.

View File

@ -0,0 +1,136 @@
inherited frViewGrid2Niveles: TfrViewGrid2Niveles
Width = 519
Height = 367
ExplicitWidth = 519
ExplicitHeight = 367
object cxGrid: TcxGrid [0]
Left = 0
Top = 0
Width = 519
Height = 367
Align = alClient
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 0
LookAndFeel.Kind = lfOffice11
LookAndFeel.NativeStyle = True
object cxGridView1N: TcxGridDBTableView
OnDblClick = cxGridView1NDblClick
NavigatorButtons.ConfirmDelete = False
FilterBox.Visible = fvNever
DataController.DataSource = dsDataSource
DataController.Filter.Options = [fcoCaseInsensitive]
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.CellHints = True
OptionsCustomize.ColumnFiltering = False
OptionsCustomize.ColumnGrouping = False
OptionsCustomize.ColumnsQuickCustomization = True
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
Styles.Inactive = cxStyleSelection
Styles.Selection = cxStyleSelection
Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
end
object cxGridView: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
end
object cxGridLevel1N: TcxGridLevel
GridView = cxGridView1N
object cxGridLevel: TcxGridLevel
GridView = cxGridView
end
end
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
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
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
object cxStyleSinOrden: TcxStyle
end
object cxStyleConOrden: TcxStyle
AssignedValues = [svColor]
Color = 16119285
end
object cxStyleFiltered: TcxStyle
AssignedValues = [svColor]
Color = clInfoBk
end
object cxStyleFilteredConOrden: TcxStyle
AssignedValues = [svColor]
Color = 14546175
end
end
object cxViewGridPopupMenu: TcxGridPopupMenu
Grid = cxGrid
PopupMenus = <
item
GridView = cxGridView1N
HitTypes = [gvhtCell]
Index = 0
end>
Left = 264
Top = 128
end
end

View File

@ -0,0 +1,211 @@
{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uViewGrid2Niveles;
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, uViewGridBase, cxGridCustomPopupMenu,
cxGridPopupMenu;
type
IViewGrid2Niveles = interface(IViewGridBase)
['{7EA40980-AD73-4590-A53A-932316C7B121}']
end;
TfrViewGrid2Niveles = class(TfrViewGridBase, IViewGrid2Niveles)
cxGrid: TcxGrid;
cxGridLevel1N: TcxGridLevel;
cxGridView1N: TcxGridDBTableView;
dxComponentPrinter: TdxComponentPrinter;
dxPSEngineController1: TdxPSEngineController;
cxStyleRepository1: TcxStyleRepository;
cxStyleEven: TcxStyle;
cxStyleOdd: TcxStyle;
cxStyleSelection: TcxStyle;
cxStyleSinOrden: TcxStyle;
cxStyleConOrden: TcxStyle;
cxViewGridPopupMenu: TcxGridPopupMenu;
dxComponentPrinterLink: TdxGridReportLink;
cxStyleFiltered: TcxStyle;
cxStyleFilteredConOrden: TcxStyle;
cxGridLevel: TcxGridLevel;
cxGridView: TcxGridDBTableView;
procedure cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
procedure cxGridView1NDblClick(Sender: TObject);
protected
function GetGrid : TcxGrid; override;
function GetFocusedView : TcxGridDBTableView; override;
procedure SetPopupMenu(const Value: TPopupMenu); override;
procedure FilterChanged(Sender : TObject); override;
function GetFiltered: Boolean; override;
procedure FiltrarGrid(TextoFiltro : String); override;
public
procedure AjustarAncho; override;
procedure ContraerTodo; override;
procedure ExpandirTodo; override;
function IsEmpty : Boolean; override;
procedure RestoreFromRegistry (const Path : String); override;
procedure StoreToRegistry (const Path : String); override;
end;
implementation
uses
uDataModuleBase, uDBSelectionListUtils;
{$R *.dfm}
{
********************************* TfrViewGrid **********************************
}
{ TfrViewGrid }
function TfrViewGrid2Niveles.GetFiltered: Boolean;
begin
Result := inherited GetFiltered;
Result := Result OR (cxGridView1N.DataController.Filter.Root.Count > 0);
end;
function TfrViewGrid2Niveles.GetFocusedView: TcxGridDBTableView;
begin
Result := cxGridView;
end;
function TfrViewGrid2Niveles.GetGrid: TcxGrid;
begin
Result := cxGrid;
end;
function TfrViewGrid2Niveles.IsEmpty: Boolean;
begin
Result := (cxGridView1N.ViewData.RowCount < 1);
end;
procedure TfrViewGrid2Niveles.RestoreFromRegistry(const Path: String);
begin
inherited;
cxGridView1N.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, []);
end;
procedure TfrViewGrid2Niveles.SetPopupMenu(const Value: TPopupMenu);
begin
inherited;
cxViewGridPopupMenu.PopupMenus[0].PopupMenu := FPopupMenu;
end;
procedure TfrViewGrid2Niveles.StoreToRegistry(const Path: String);
begin
inherited;
cxGridView1N.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, []);
end;
procedure TfrViewGrid2Niveles.AjustarAncho;
begin
inherited;
cxGridView1N.ApplyBestFit;
end;
procedure TfrViewGrid2Niveles.ContraerTodo;
begin
inherited;
cxGridView1N.ViewData.Collapse(True);
end;
procedure TfrViewGrid2Niveles.cxGridView1NDblClick(Sender: TObject);
begin
inherited;
if Assigned(FOnDblClick) then
FOnDblClick(Sender);
end;
procedure TfrViewGrid2Niveles.cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
inherited;
if Assigned(AItem) then
begin
if AItem.SortOrder = soNone then
AStyle := cxStyleSinOrden
else begin
AStyle := cxStyleConOrden;
if Filtered then
AStyle := cxStyleFilteredConOrden;
end;
end;
end;
procedure TfrViewGrid2Niveles.ExpandirTodo;
begin
inherited;
cxGridView1N.ViewData.Expand(True);
end;
procedure TfrViewGrid2Niveles.FilterChanged(Sender: TObject);
begin
inherited;
if Filtered then
begin
_FocusedView.Styles.Content := cxStyleFiltered;
cxGridView1N.Styles.Content := cxStyleFiltered
end
else
begin
_FocusedView.Styles.Content := nil;
cxGridView1N.Styles.Content := nil
end;
end;
procedure TfrViewGrid2Niveles.FiltrarGrid(TextoFiltro: String);
var
Columna: TcxGridDBColumn;
i: Integer;
AItemList: TcxFilterCriteriaItemList;
begin
inherited;
with cxGridView1N.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 (cxGridView1N as TcxGridDBTableView).ColumnCount - 1 do
begin
Columna := (cxGridView1N 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;
end.

View File

@ -0,0 +1,10 @@
inherited frViewGridBase: TfrViewGridBase
Width = 441
Height = 268
ExplicitWidth = 441
ExplicitHeight = 268
object dsDataSource: TDADataSource
Left = 8
Top = 16
end
end

View File

@ -0,0 +1,421 @@
{*******************************************************}
{ }
{ Administración de puntos de venta }
{ }
{ Copyright (C) 2006 Rodax Software S.L. }
{ }
{*******************************************************}
unit uViewGridBase;
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, uGridUtils, uViewFiltroBase;
type
IViewGridBase = interface(IViewBase)
['{D5B9B017-2A2E-44AC-8223-E54664C6BC66}']
procedure ExpandirTodo;
procedure ContraerTodo;
procedure AjustarAncho;
procedure Preview;
procedure Print;
procedure PrintSetup;
function IsEmpty : Boolean;
procedure SaveGridStatus;
procedure RestoreGridStatus;
procedure GotoFirst;
procedure GotoLast;
function GetFocusedView : TcxGridDBTableView;
property _FocusedView : TcxGridDBTableView read GetFocusedView;
function GetGrid : TcxGrid;
property _Grid : TcxGrid read GetGrid;
procedure StoreToRegistry (const Path : String);
procedure RestoreFromRegistry (const Path : String);
procedure SetDblClick(const Value: TNotifyEvent);
function GetDblClick: TNotifyEvent;
property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
procedure SetPopupMenu(const Value: TPopupMenu);
function GetPopupMenu: TPopupMenu;
property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
function GetMultiSelect: Boolean;
procedure SetMultiSelect(const Value: Boolean);
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
procedure SetFilter(const Value: string);
function GetFilter: string;
property Filter: string read GetFilter write SetFilter;
function GetFiltered: Boolean;
property Filtered : Boolean read GetFiltered;
function GetViewFiltros: IViewFiltroBase;
procedure SetViewFiltros(const Value: IViewFiltroBase);
property ViewFiltros: IViewFiltroBase read GetViewFiltros write SetViewFiltros;
function esSeleccionCeldaDatos: Boolean;
function getNumSeleccionados: Integer;
property NumSeleccionados: Integer read getNumSeleccionados;
function Locate(const AItemIndex: Integer; const AValue: String;
const APartialCompare: Boolean = False) : Boolean;
end;
TfrViewGridBase = class(TfrViewBase, IViewGridBase)
dsDataSource: TDADataSource;
private
FViewFiltros: IViewFiltroBase;
FFilter: string;
FOnFilterChanged : TNotifyEvent;
FGridStatus : TcxGridStatus;
protected
FOnDblClick: TNotifyEvent;
FPopupMenu: TPopupMenu;
function GetMultiSelect: Boolean; virtual;
procedure SetMultiSelect(const Value: Boolean); virtual;
procedure SetPopupMenu(const Value: TPopupMenu); virtual;
function GetPopupMenu: TPopupMenu; virtual;
procedure SetDblClick(const Value: TNotifyEvent); virtual;
function GetDblClick: TNotifyEvent; virtual;
function GetGrid : TcxGrid; virtual; abstract;
function GetFocusedView : TcxGridDBTableView; virtual; abstract;
function esSeleccionCeldaDatos: Boolean; virtual; abstract;
function getNumSeleccionados: Integer;
procedure SetFilter(const Value: string); virtual;
procedure RefrescarFiltro;
function GetFilter: string; virtual;
function GetFiltered: Boolean; virtual;
procedure FiltrarGrid(TextoFiltro : String); virtual;
function GetViewFiltros: IViewFiltroBase;
procedure SetViewFiltros(const Value: IViewFiltroBase); virtual;
procedure FilterChanged(Sender : TObject); virtual;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ShowEmbedded(const AParent : TWinControl); override;
procedure ExpandirTodo; virtual;
procedure ContraerTodo; virtual;
procedure AjustarAncho; virtual;
procedure Preview; virtual;
procedure Print; virtual;
procedure PrintSetup; virtual;
function IsEmpty : Boolean; virtual;
procedure SaveGridStatus;
procedure RestoreGridStatus;
procedure GotoFirst;
procedure GotoLast;
procedure StoreToRegistry (const Path : String); virtual;
procedure RestoreFromRegistry (const Path : String); virtual;
function Locate(const AItemIndex: Integer; const AValue: String;
const APartialCompare: Boolean = False) : Boolean;
property Filter: string read GetFilter write SetFilter;
property Filtered : Boolean read GetFiltered;
procedure AnadirOtrosFiltros; virtual;
property ViewFiltros: IViewFiltroBase read GetViewFiltros write SetViewFiltros;
property _FocusedView : TcxGridDBTableView read GetFocusedView;
property _Grid : TcxGrid read GetGrid;
property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu;
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
property NumSeleccionados: Integer read getNumSeleccionados;
end;
procedure Register;
implementation
uses
CCReg, uDataModuleBase, uDBSelectionListUtils;
{$R *.dfm}
procedure Register;
begin
RegisterCustomContainer(TfrViewGridBase);
end;
{ TfrViewGrid }
procedure TfrViewGridBase.AjustarAncho;
begin
if Assigned(_FocusedView) then
_FocusedView.ApplyBestFit;
end;
procedure TfrViewGridBase.AnadirOtrosFiltros;
begin
//
end;
procedure TfrViewGridBase.ContraerTodo;
begin
if Assigned(_FocusedView) then
_FocusedView.ViewData.Collapse(True);
end;
constructor TfrViewGridBase.Create(AOwner: TComponent);
begin
inherited;
FFilter := '';
FOnFilterChanged := FilterChanged;
FPopupMenu := nil;
FOnDblClick := nil;
FGridStatus := NIL;
end;
procedure TfrViewGridBase.ExpandirTodo;
begin
if Assigned(_FocusedView) then
_FocusedView.ViewData.Expand(True);
end;
function TfrViewGridBase.GetDblClick: TNotifyEvent;
begin
Result := FOnDblClick;
end;
function TfrViewGridBase.GetFilter: string;
begin
Result := FFilter;
end;
function TfrViewGridBase.GetFiltered: Boolean;
begin
//Los niveles de los grid no se consideran filtros
if (_Grid.Levels.Count > 1) then
Result := (_FocusedView.DataController.Filter.Root.Count > 1)
else
Result := (_FocusedView.DataController.Filter.Root.Count > 0);
end;
function TfrViewGridBase.GetMultiSelect: Boolean;
begin
Result := _FocusedView.OptionsSelection.MultiSelect;
end;
function TfrViewGridBase.getNumSeleccionados: Integer;
begin
Result := _FocusedView.DataController.GetSelectedCount;
end;
function TfrViewGridBase.GetPopupMenu: TPopupMenu;
begin
Result := FPopupMenu;
end;
function TfrViewGridBase.GetViewFiltros: IViewFiltroBase;
begin
Result := FViewFiltros;
end;
procedure TfrViewGridBase.GotoFirst;
begin
if Assigned(_FocusedView) then
_FocusedView.DataController.GotoFirst;
end;
procedure TfrViewGridBase.GotoLast;
begin
if Assigned(_FocusedView) then
_FocusedView.DataController.GotoLast;
end;
function TfrViewGridBase.IsEmpty: Boolean;
begin
Result := (_FocusedView.ViewData.RowCount < 1);
end;
function TfrViewGridBase.Locate(const AItemIndex: Integer; const AValue: String;
const APartialCompare: Boolean): Boolean;
begin
{ if Assigned(_FocusedView) then
Result := _FocusedView.DataController.FindRecordIndexByText(0, AItemIndex, AText, APartialCompare, True, True)}
end;
procedure TfrViewGridBase.Preview;
begin
//
end;
procedure TfrViewGridBase.Print;
begin
//
end;
procedure TfrViewGridBase.PrintSetup;
begin
//
end;
procedure TfrViewGridBase.RefrescarFiltro;
begin
//De esta forma obligaremos a que se creen nuevamente todos los filtros, cuando llamemos a este metodo
if Assigned(ViewFiltros) then
Filter := ViewFiltros.Texto;
end;
procedure TfrViewGridBase.RestoreFromRegistry(const Path : String);
begin
if Assigned(_FocusedView) then
_FocusedView.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, [], Self.Name);
end;
procedure TfrViewGridBase.RestoreGridStatus;
begin
if Assigned(FGridStatus) and (not IsEmpty) then
FGridStatus.Restore(_FocusedView);
end;
procedure TfrViewGridBase.SaveGridStatus;
begin
FreeAndNil(FGridStatus);
if not IsEmpty then
FGridStatus := TcxGridStatus.Create(_FocusedView);
end;
procedure TfrViewGridBase.SetDblClick(const Value: TNotifyEvent);
begin
FOnDblClick := Value;
end;
procedure TfrViewGridBase.SetFilter(const Value: string);
begin
FFilter := Value;
//Así tendremos el mismo valor en el filtro simple que en el filtro en detalle
if Assigned(ViewFiltros) then
ViewFiltros.Texto := FFilter;
FiltrarGrid(FFilter);
//Obliga a generar todos los filtros de las vista hija
AnadirOtrosFiltros;
if Assigned(FOnFilterChanged) then
FOnFilterChanged(Self);
end;
procedure TfrViewGridBase.SetMultiSelect(const Value: Boolean);
begin
_FocusedView.OptionsSelection.MultiSelect := Value;
// _FocusedView..OnSelectionChanged := SelectionChanged;
end;
procedure TfrViewGridBase.SetPopupMenu(const Value: TPopupMenu);
begin
FPopupMenu := Value;
end;
procedure TfrViewGridBase.SetViewFiltros(const Value: IViewFiltroBase);
begin
if Assigned(FViewFiltros) then
ViewFiltros.OnFiltrosChange := Nil;
FViewFiltros := Value;
end;
procedure TfrViewGridBase.ShowEmbedded(const AParent: TWinControl);
begin
inherited;
// No activar la tabla ya por si acaso tuviera parámetros
{ if not DADataSource.DataTable.Active then
DADataSource.DataTable.Active := True;}
GotoFirst;
_FocusedView.Focused := True;
if _FocusedView.ViewData.RecordCount > 0 then
begin
_FocusedView.ViewData.Records[0].Selected := True;
_FocusedView.ViewData.Records[0].Focused := True;
end;
end;
procedure TfrViewGridBase.StoreToRegistry(const Path : String);
begin
if Assigned(_FocusedView) then
_FocusedView.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, [], Self.Name);
end;
procedure TfrViewGridBase.FiltrarGrid(TextoFiltro : String);
var
Columna: TcxGridDBColumn;
i: Integer;
AItemList: TcxFilterCriteriaItemList;
begin
with _FocusedView.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 (_FocusedView as TcxGridDBTableView).ColumnCount - 1 do
begin
Columna := (_FocusedView 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;
procedure TfrViewGridBase.FilterChanged(Sender: TObject);
begin
//
end;
destructor TfrViewGridBase.Destroy;
begin
FOnFilterChanged := Nil;
if Assigned(FGridStatus) then
FreeAndNil(FGridStatus);
inherited;
end;
end.

View File

@ -0,0 +1,54 @@
inherited frViewIncidencias: TfrViewIncidencias
Width = 451
Height = 370
Align = alBottom
ExplicitWidth = 451
ExplicitHeight = 370
object pnlSup: TPanel
Left = 0
Top = 0
Width = 451
Height = 28
Align = alTop
BevelOuter = bvNone
TabOrder = 0
object eIncidenciaActiva: TcxDBCheckBox
Left = 2
Top = 4
Caption = 'Hay incidencias sin resolver'
DataBinding.DataField = 'INCIDENCIAS_ACTIVAS'
DataBinding.DataSource = DADataSource
Properties.ValueChecked = 1
Properties.ValueUnchecked = 0
TabOrder = 0
Transparent = True
Width = 359
end
end
object GroupBox1: TGroupBox
Left = 0
Top = 28
Width = 451
Height = 342
Align = alClient
Caption = 'Incidencias'
TabOrder = 1
DesignSize = (
451
342)
object eIncidencias: TcxDBMemo
Left = 10
Top = 22
Anchors = [akLeft, akTop, akRight, akBottom]
DataBinding.DataField = 'INCIDENCIAS'
DataBinding.DataSource = DADataSource
TabOrder = 0
Height = 305
Width = 420
end
end
object DADataSource: TDADataSource
Left = 560
Top = 8
end
end

View File

@ -0,0 +1,30 @@
unit uViewIncidencias;
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,
cxCheckBox, cxMemo;
type
TfrViewIncidencias = class(TfrViewBase)
DADataSource: TDADataSource;
pnlSup: TPanel;
eIncidenciaActiva: TcxDBCheckBox;
eIncidencias: TcxDBMemo;
GroupBox1: TGroupBox;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

View File

@ -0,0 +1,46 @@
inherited frViewObservaciones: TfrViewObservaciones
Width = 300
DesignSize = (
300
226)
object Label5: TLabel
Left = 8
Top = 8
Width = 85
Height = 13
Caption = 'Observaciones'
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 memObservaciones: TcxDBMemo
Left = 16
Top = 32
Anchors = [akLeft, akTop, akRight, akBottom]
DataBinding.DataField = 'OBSERVACIONES'
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 = 179
Width = 269
end
object DADataSource: TDADataSource
Left = 16
Top = 48
end
end

View File

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

View File

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

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.

View File

@ -0,0 +1,619 @@
inherited frViewTotales: TfrViewTotales
Width = 451
Height = 350
Align = alBottom
ExplicitWidth = 451
ExplicitHeight = 350
object dxLayoutControl1: TdxLayoutControl
AlignWithMargins = True
Left = 0
Top = 0
Width = 451
Height = 217
Margins.Left = 0
Margins.Top = 0
Margins.Right = 0
Margins.Bottom = 0
Align = alTop
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth, acsHeight]
object Bevel1: TBevel
Left = 104
Top = 109
Width = 73
Height = 9
Shape = bsBottomLine
end
object Bevel3: TBevel
Left = 278
Top = 28
Width = 3
Height = 122
Shape = bsRightLine
end
object Bevel4: TBevel
Left = 390
Top = 109
Width = 192
Height = 9
Shape = bsBottomLine
end
object ImporteDto: TcxDBCurrencyEdit
Left = 175
Top = 129
AutoSize = False
DataBinding.DataField = 'IMPORTE_DESCUENTO'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
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 = 5
Height = 21
Width = 93
end
object ImporteIVA: TcxDBCurrencyEdit
Left = 461
Top = 55
AutoSize = False
DataBinding.DataField = 'IMPORTE_IVA'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
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 = 9
Height = 21
Width = 137
end
object ImporteTotal: TcxDBCurrencyEdit
Left = 391
Top = 129
AutoSize = False
DataBinding.DataField = 'IMPORTE_TOTAL'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -12
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
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 = 12
Height = 21
Width = 137
end
object edtDescuento: TcxDBSpinEdit
Left = 104
Top = 129
AutoSize = False
DataBinding.DataField = 'DESCUENTO'
DataBinding.DataSource = DADataSource
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.DisplayFormat = ',0.00 %;-,0.00 %'
Properties.ImmediatePost = True
Properties.MaxValue = 100.000000000000000000
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.ButtonStyle = bts3D
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 4
Height = 21
Width = 65
end
object edtIVA: TcxDBSpinEdit
Left = 390
Top = 55
AutoSize = False
DataBinding.DataField = 'IVA'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.AssignedValues.MinValue = True
Properties.DisplayFormat = ',0.00 %;-,0.00 %'
Properties.ImmediatePost = True
Properties.MaxValue = 100.000000000000000000
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.ButtonStyle = bts3D
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clWindowText
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 8
Height = 21
Width = 65
end
object ImporteBase: TcxDBCurrencyEdit
Left = 390
Top = 28
AutoSize = False
DataBinding.DataField = 'BASE_IMPONIBLE'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = [fsBold]
Style.HotTrack = False
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 = 7
Height = 21
Width = 92
end
object edtRE: TcxDBSpinEdit
Left = 390
Top = 82
AutoSize = False
DataBinding.DataField = 'RE'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.AssignedValues.EditFormat = True
Properties.DisplayFormat = ',0.00 %;-,0.00 %'
Properties.ImmediatePost = True
Properties.MaxValue = 100.000000000000000000
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.TextColor = clWindowText
Style.ButtonStyle = bts3D
Style.IsFontAssigned = True
StyleDisabled.LookAndFeel.Kind = lfStandard
StyleDisabled.LookAndFeel.NativeStyle = True
StyleDisabled.TextColor = clWindowText
StyleFocused.LookAndFeel.Kind = lfStandard
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
TabOrder = 10
Height = 21
Width = 65
end
object ImporteRE: TcxDBCurrencyEdit
Left = 461
Top = 82
AutoSize = False
DataBinding.DataField = 'IMPORTE_RE'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
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 = 11
Height = 21
Width = 56
end
object eImporteNeto: TcxDBCurrencyEdit
Left = 104
Top = 28
AutoSize = False
DataBinding.DataField = 'IMPORTE_NETO'
DataBinding.DataSource = DADataSource
Enabled = False
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = True
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = [fsBold]
Style.HotTrack = False
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 = 147
end
object ePorte: TcxDBCurrencyEdit
Left = 104
Top = 156
AutoSize = False
DataBinding.DataField = 'IMPORTE_PORTE'
DataBinding.DataSource = DADataSource
ParentFont = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = False
Properties.UseLeftAlignmentOnEditing = False
Properties.UseThousandSeparator = True
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.Font.Charset = DEFAULT_CHARSET
Style.Font.Color = clWindowText
Style.Font.Height = -11
Style.Font.Name = 'Tahoma'
Style.Font.Style = []
Style.HotTrack = False
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 = 6
Height = 21
Width = 147
end
object eIVA: TcxDBLookupComboBox
Left = 104
Top = 55
DataBinding.DataField = 'ID_TIPO_IVA'
DataBinding.DataSource = DADataSource
Properties.GridMode = True
Properties.ImmediatePost = True
Properties.KeyFieldNames = 'ID'
Properties.ListColumns = <
item
FieldName = 'REFERENCIA'
end>
Properties.ListOptions.GridLines = glNone
Properties.ListOptions.ShowHeader = False
Properties.ListSource = dsTiposIVA
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = False
Style.LookAndFeel.Kind = lfStandard
Style.LookAndFeel.NativeStyle = True
Style.ButtonStyle = bts3D
Style.PopupBorderStyle = epbsFrame3D
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 = 81
end
object bTiposIVA: TButton
Left = 130
Top = 55
Width = 132
Height = 21
Caption = 'Ver los tipos de IVA...'
TabOrder = 2
end
object cbRecargoEquivalencia: TcxDBCheckBox
Left = 104
Top = 82
Caption = 'Aplicar recargo de equivalencia'
DataBinding.DataField = 'RECARGO_EQUIVALENCIA'
DataBinding.DataSource = DADataSource
Properties.ImmediatePost = True
Properties.NullStyle = nssUnchecked
Properties.ValueChecked = 1
Properties.ValueUnchecked = 0
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 = 3
Width = 219
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Group1: TdxLayoutGroup
Caption = 'Importes totales'
LayoutDirection = ldHorizontal
object dxLayoutControl1Group2: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahClient
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Item8: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Importe neto:'
Control = eImporteNeto
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Group6: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item11: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Tipo de IVA:'
Control = eIVA
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item15: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahRight
ShowCaption = False
Control = bTiposIVA
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Item16: TdxLayoutItem
Caption = ' '
Control = cbRecargoEquivalencia
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item10: TdxLayoutItem
Caption = ' '
Control = Bevel1
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Group7: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item4: TdxLayoutItem
AutoAligns = [aaVertical]
Caption = 'Descuento (%):'
Control = edtDescuento
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item1: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Importe de dto:'
ShowCaption = False
Control = ImporteDto
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Item9: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Porte:'
Control = ePorte
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Group5: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahClient
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item13: TdxLayoutItem
AutoAligns = [aaHorizontal]
AlignVert = avClient
Caption = ' '
Offsets.Left = 10
Offsets.Right = 10
ShowCaption = False
Control = Bevel3
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Group3: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahClient
ShowCaption = False
Hidden = True
ShowBorder = False
object dxLayoutControl1Item12: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Base imponible:'
Control = ImporteBase
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Group9: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item5: TdxLayoutItem
AutoAligns = [aaVertical]
Caption = 'IVA (%):'
CaptionOptions.AlignHorz = taRightJustify
Control = edtIVA
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item2: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Importe de IVA:'
ShowCaption = False
Control = ImporteIVA
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Group8: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item6: TdxLayoutItem
AutoAligns = [aaVertical]
Caption = 'RE. (%):'
CaptionOptions.AlignHorz = taRightJustify
Control = edtRE
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item7: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Importe de RE:'
ShowCaption = False
Visible = False
Control = ImporteRE
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Item14: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = ' '
Control = Bevel4
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Importe total:'
LookAndFeel = LookAndFeelIMPORTE_TOTAL
Control = ImporteTotal
ControlOptions.ShowBorder = False
end
end
end
end
end
object dxLayoutControl1Group4: TdxLayoutGroup
end
end
object DADataSource: TDADataSource
Left = 8
Top = 8
end
object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList
Left = 40
Top = 8
object LookAndFeelIMPORTE_TOTAL: TdxLayoutStandardLookAndFeel
ItemOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET
ItemOptions.CaptionOptions.Font.Color = clWindowText
ItemOptions.CaptionOptions.Font.Height = -12
ItemOptions.CaptionOptions.Font.Name = 'Tahoma'
ItemOptions.CaptionOptions.Font.Style = [fsBold]
ItemOptions.CaptionOptions.UseDefaultFont = False
end
end
object dsTiposIVA: TDADataSource
Left = 8
Top = 40
end
end

View File

@ -0,0 +1,71 @@
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, dxLayoutControl, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit,
cxDBLookupComboBox, cxCheckBox;
type
TfrViewTotales = class(TfrViewBase)
DADataSource: TDADataSource;
ImporteBase: TcxDBCurrencyEdit;
ImporteDto: TcxDBCurrencyEdit;
ImporteIVA: TcxDBCurrencyEdit;
ImporteTotal: TcxDBCurrencyEdit;
edtDescuento: TcxDBSpinEdit;
edtIVA: TcxDBSpinEdit;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item1: TdxLayoutItem;
dxLayoutControl1Item2: TdxLayoutItem;
dxLayoutControl1Item3: TdxLayoutItem;
dxLayoutControl1Item4: TdxLayoutItem;
dxLayoutControl1Item5: TdxLayoutItem;
dxLayoutControl1Item12: TdxLayoutItem;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group4: TdxLayoutGroup;
dxLayoutControl1Group5: TdxLayoutGroup;
dxLayoutControl1Item6: TdxLayoutItem;
edtRE: TcxDBSpinEdit;
dxLayoutControl1Item7: TdxLayoutItem;
ImporteRE: TcxDBCurrencyEdit;
dxLayoutControl1Item8: TdxLayoutItem;
eImporteNeto: TcxDBCurrencyEdit;
dxLayoutControl1Item9: TdxLayoutItem;
ePorte: TcxDBCurrencyEdit;
dxLayoutControl1Group2: TdxLayoutGroup;
Bevel1: TBevel;
dxLayoutControl1Item10: TdxLayoutItem;
dxLayoutControl1Group7: TdxLayoutGroup;
Bevel3: TBevel;
dxLayoutControl1Item13: TdxLayoutItem;
dxLayoutControl1Group3: TdxLayoutGroup;
dxLayoutControl1Item14: TdxLayoutItem;
Bevel4: TBevel;
dxLayoutControl1Group9: TdxLayoutGroup;
dxLayoutControl1Group8: TdxLayoutGroup;
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
LookAndFeelIMPORTE_TOTAL: TdxLayoutStandardLookAndFeel;
dxLayoutControl1Item11: TdxLayoutItem;
eIVA: TcxDBLookupComboBox;
dxLayoutControl1Item15: TdxLayoutItem;
bTiposIVA: TButton;
dxLayoutControl1Group6: TdxLayoutGroup;
dsTiposIVA: TDADataSource;
dxLayoutControl1Item16: TdxLayoutItem;
cbRecargoEquivalencia: TcxDBCheckBox;
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.