Presupuestos de cliente: Generación en formato Word del informe.
git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@250 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
parent
17619a4863
commit
0a963e0c06
@ -53,56 +53,56 @@
|
||||
<DelphiCompile Include="Base.dpk">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\adortl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\cxDataD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\cxEditorsD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\cxExportD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\cxExtEditorsD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\cxGridD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\cxIntl6D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\cxIntlPrintSys3D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\cxLibraryD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\cxPageControlD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\DataAbstract_Core_D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\dbrtl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\dclIndyCore.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\designide.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\dsnap.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\dxGDIPlusD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\dxPSCoreD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\dxThemeD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\GUISDK_D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\IndyCore.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\IndyProtocols.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\IndySystem.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\Jcl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JclVcl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JSDialog100.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JvCmpD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JvCoreD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JvCtrlsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JvDlgsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JvMMD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JvNetD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JvPageCompsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JvStdCtrlsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\JvSystemD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\pckMD5.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\pckUCDataConnector.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\pckUserControl_RT.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\PngComponentsD10.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\PNG_D10.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\RemObjects_Core_D11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\rtl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\TB2k_D10.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\tbx_d10.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\vcl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\vclactnband.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\vcldb.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\vcljpg.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\VclSmp.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\vclx.dcp" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\xmlrtl.dcp" />
|
||||
<DCCReference Include="adortl.dcp" />
|
||||
<DCCReference Include="cxDataD11.dcp" />
|
||||
<DCCReference Include="cxEditorsD11.dcp" />
|
||||
<DCCReference Include="cxExportD11.dcp" />
|
||||
<DCCReference Include="cxExtEditorsD11.dcp" />
|
||||
<DCCReference Include="cxGridD11.dcp" />
|
||||
<DCCReference Include="cxIntl6D11.dcp" />
|
||||
<DCCReference Include="cxIntlPrintSys3D11.dcp" />
|
||||
<DCCReference Include="cxLibraryD11.dcp" />
|
||||
<DCCReference Include="cxPageControlD11.dcp" />
|
||||
<DCCReference Include="DataAbstract_Core_D11.dcp" />
|
||||
<DCCReference Include="dbrtl.dcp" />
|
||||
<DCCReference Include="dclIndyCore.dcp" />
|
||||
<DCCReference Include="designide.dcp" />
|
||||
<DCCReference Include="dsnap.dcp" />
|
||||
<DCCReference Include="dxGDIPlusD11.dcp" />
|
||||
<DCCReference Include="dxPSCoreD11.dcp" />
|
||||
<DCCReference Include="dxThemeD11.dcp" />
|
||||
<DCCReference Include="GUISDK_D11.dcp" />
|
||||
<DCCReference Include="IndyCore.dcp" />
|
||||
<DCCReference Include="IndyProtocols.dcp" />
|
||||
<DCCReference Include="IndySystem.dcp" />
|
||||
<DCCReference Include="Jcl.dcp" />
|
||||
<DCCReference Include="JclVcl.dcp" />
|
||||
<DCCReference Include="JSDialog100.dcp" />
|
||||
<DCCReference Include="JvCmpD11R.dcp" />
|
||||
<DCCReference Include="JvCoreD11R.dcp" />
|
||||
<DCCReference Include="JvCtrlsD11R.dcp" />
|
||||
<DCCReference Include="JvDlgsD11R.dcp" />
|
||||
<DCCReference Include="JvMMD11R.dcp" />
|
||||
<DCCReference Include="JvNetD11R.dcp" />
|
||||
<DCCReference Include="JvPageCompsD11R.dcp" />
|
||||
<DCCReference Include="JvStdCtrlsD11R.dcp" />
|
||||
<DCCReference Include="JvSystemD11R.dcp" />
|
||||
<DCCReference Include="pckMD5.dcp" />
|
||||
<DCCReference Include="pckUCDataConnector.dcp" />
|
||||
<DCCReference Include="pckUserControl_RT.dcp" />
|
||||
<DCCReference Include="PngComponentsD10.dcp" />
|
||||
<DCCReference Include="PNG_D10.dcp" />
|
||||
<DCCReference Include="RemObjects_Core_D11.dcp" />
|
||||
<DCCReference Include="rtl.dcp" />
|
||||
<DCCReference Include="TB2k_D10.dcp" />
|
||||
<DCCReference Include="tbx_d10.dcp" />
|
||||
<DCCReference Include="vcl.dcp" />
|
||||
<DCCReference Include="vclactnband.dcp" />
|
||||
<DCCReference Include="vcldb.dcp" />
|
||||
<DCCReference Include="vcljpg.dcp" />
|
||||
<DCCReference Include="VclSmp.dcp" />
|
||||
<DCCReference Include="vclx.dcp" />
|
||||
<DCCReference Include="xmlrtl.dcp" />
|
||||
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
|
||||
<DCCReference Include="Conexion\uConfigurarConexion.pas">
|
||||
<Form>fConfigurarConexion</Form>
|
||||
@ -127,10 +127,53 @@
|
||||
<Form>dmBase</Form>
|
||||
<DesignClass>TDataModule</DesignClass>
|
||||
</DCCReference>
|
||||
<DCCReference Include="Utiles\adortl.dcp" />
|
||||
<DCCReference Include="Utiles\ClassRegistry\uClassRegistryUtils.pas" />
|
||||
<DCCReference Include="Utiles\ClassRegistry\uEditorRegistryUtils.pas" />
|
||||
<DCCReference Include="Utiles\ClassRegistry\uInformeRegistryUtils.pas" />
|
||||
<DCCReference Include="Utiles\ClassRegistry\uViewRegistryUtils.pas" />
|
||||
<DCCReference Include="Utiles\cxDataD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxEditorsD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxExportD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxExtEditorsD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxGridD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxIntl6D11.dcp" />
|
||||
<DCCReference Include="Utiles\cxIntlPrintSys3D11.dcp" />
|
||||
<DCCReference Include="Utiles\cxLibraryD11.dcp" />
|
||||
<DCCReference Include="Utiles\cxPageControlD11.dcp" />
|
||||
<DCCReference Include="Utiles\DataAbstract_Core_D11.dcp" />
|
||||
<DCCReference Include="Utiles\dbrtl.dcp" />
|
||||
<DCCReference Include="Utiles\dclIndyCore.dcp" />
|
||||
<DCCReference Include="Utiles\designide.dcp" />
|
||||
<DCCReference Include="Utiles\dsnap.dcp" />
|
||||
<DCCReference Include="Utiles\dxGDIPlusD11.dcp" />
|
||||
<DCCReference Include="Utiles\dxPSCoreD11.dcp" />
|
||||
<DCCReference Include="Utiles\dxThemeD11.dcp" />
|
||||
<DCCReference Include="Utiles\GUISDK_D11.dcp" />
|
||||
<DCCReference Include="Utiles\IndyCore.dcp" />
|
||||
<DCCReference Include="Utiles\IndyProtocols.dcp" />
|
||||
<DCCReference Include="Utiles\IndySystem.dcp" />
|
||||
<DCCReference Include="Utiles\Jcl.dcp" />
|
||||
<DCCReference Include="Utiles\JclVcl.dcp" />
|
||||
<DCCReference Include="Utiles\JSDialog100.dcp" />
|
||||
<DCCReference Include="Utiles\JvCmpD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvCoreD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvCtrlsD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvDlgsD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvMMD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvNetD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvPageCompsD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvStdCtrlsD11R.dcp" />
|
||||
<DCCReference Include="Utiles\JvSystemD11R.dcp" />
|
||||
<DCCReference Include="Utiles\pckMD5.dcp" />
|
||||
<DCCReference Include="Utiles\pckUCDataConnector.dcp" />
|
||||
<DCCReference Include="Utiles\pckUserControl_RT.dcp" />
|
||||
<DCCReference Include="Utiles\PngComponentsD10.dcp" />
|
||||
<DCCReference Include="Utiles\PNG_D10.dcp" />
|
||||
<DCCReference Include="Utiles\RemObjects_Core_D11.dcp" />
|
||||
<DCCReference Include="Utiles\rtl.dcp" />
|
||||
<DCCReference Include="Utiles\TB2k_D10.dcp" />
|
||||
<DCCReference Include="Utiles\tbx_d10.dcp" />
|
||||
<DCCReference Include="Utiles\uCalculosUtils.pas" />
|
||||
<DCCReference Include="Utiles\uDataTableUtils.pas" />
|
||||
<DCCReference Include="Utiles\uDateUtils.pas" />
|
||||
@ -146,486 +189,3 @@
|
||||
<DCCReference Include="Utiles\uStringsUtils.pas" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
<!-- EurekaLog First Line
|
||||
[Exception Log]
|
||||
EurekaLog Version=6011
|
||||
Activate=0
|
||||
Activate Handle=1
|
||||
Save Log File=1
|
||||
Foreground Tab=0
|
||||
Freeze Activate=0
|
||||
Freeze Timeout=60
|
||||
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=
|
||||
EurekaLog Last Line -->
|
||||
|
||||
@ -32,7 +32,7 @@ function DarFicheroTemporal : String;
|
||||
function DarFicheroJPGTemporal : String;
|
||||
function DarFicheroBMPTemporal : String;
|
||||
function DarFicheroTIFFTemporal : String;
|
||||
function DarFicheroExportar (var Fichero : String) : Boolean;
|
||||
function DarFicheroWordExportar (var Fichero : String) : Boolean;
|
||||
function DarVersionFichero (Executable : String) : String;
|
||||
function DarFechaFichero (Executable : String) : String;
|
||||
procedure CopiarFichero(const Origen, Destino: string);
|
||||
@ -127,7 +127,7 @@ begin
|
||||
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'jpg';
|
||||
end;
|
||||
|
||||
function DarFicheroExportar (var Fichero : String) : Boolean;
|
||||
function DarFicheroWordExportar (var Fichero : String) : Boolean;
|
||||
var
|
||||
DialogoSalvar : TSaveDialog;
|
||||
begin
|
||||
|
||||
@ -7,10 +7,16 @@ uses
|
||||
|
||||
procedure StringToStrings(Source:string; Delimiter:char; Target:TStrings);
|
||||
function StringsToString(Source:TStrings; Delimiter:char):string;
|
||||
function EsCadenaVacia(const S: AnsiString): Boolean; overload;
|
||||
function EsCadenaVacia(const S: Variant): Boolean; overload;
|
||||
function EsNumerico(Cadena: String) : Boolean;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
Variants, SysUtils;
|
||||
|
||||
{ Convierte una cadena con items separados con un delimitador en un TString }
|
||||
procedure StringToStrings(Source:string; Delimiter:char; Target:TStrings);
|
||||
var i: integer;
|
||||
@ -30,4 +36,27 @@ begin
|
||||
if Result<>'' then Delete(Result, 1, 1)
|
||||
end;
|
||||
|
||||
function EsCadenaVacia(const S: AnsiString): Boolean;
|
||||
begin
|
||||
Result := (Length(Trim(S)) = 0)
|
||||
end;
|
||||
|
||||
function EsCadenaVacia(const S: Variant): Boolean; overload;
|
||||
begin
|
||||
Result := True;
|
||||
if VarIsNull(S) then
|
||||
Exit;
|
||||
Result := EsCadenaVacia(VarToStr(S));
|
||||
end;
|
||||
|
||||
function EsNumerico(Cadena: String) : Boolean;
|
||||
var
|
||||
Codigo: Integer;
|
||||
Valor: Double;
|
||||
begin
|
||||
Val(Cadena, Valor, Codigo);
|
||||
Result := (Codigo = 0)
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
||||
@ -58,22 +58,22 @@
|
||||
<DelphiCompile Include="GUIBase.dpk">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="..\Modulos\Contactos\Base.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\dbrtl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\dxBarD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\dxBarExtItemsD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\dxLayoutControlD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\dxPScxCommonD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\dxPScxGrid6LnkD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\dxPsPrVwAdvD11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\frx11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\frxe11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\fs11.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\JvAppFrmD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\JvCtrlsD11R.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\rtl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\vcl.dcp" />
|
||||
<DCCReference Include="..\Modulos\Contactos\vcldb.dcp" />
|
||||
<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\dxBarD11.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\dxBarExtItemsD11.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\dxLayoutControlD11.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\dxPScxCommonD11.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\dxPScxGrid6LnkD11.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\dxPsPrVwAdvD11.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\frx11.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\frxe11.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\fs11.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>
|
||||
|
||||
@ -6,7 +6,7 @@ inherited fEditorPreview: TfEditorPreview
|
||||
OnDestroy = FormDestroy
|
||||
OnResize = FormResize
|
||||
ExplicitWidth = 803
|
||||
ExplicitHeight = 492
|
||||
ExplicitHeight = 485
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
inherited JvNavPanelHeader: TJvNavPanelHeader
|
||||
|
||||
@ -11,7 +11,7 @@ uses
|
||||
pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport,
|
||||
frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode,
|
||||
ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar,
|
||||
frxExportMail, frxExportXLS, frxExportText, frxExportRTF;
|
||||
frxExportMail, frxExportXLS, frxExportText, frxExportRTF, uControllerBase;
|
||||
|
||||
type
|
||||
IEditorPreview = interface(IEditorBase)
|
||||
@ -28,6 +28,15 @@ type
|
||||
procedure Print;
|
||||
procedure Preview;
|
||||
|
||||
function GetController : IControllerBase;
|
||||
procedure SetController (const Value : IControllerBase);
|
||||
property Controller : IControllerBase read GetController
|
||||
write SetController;
|
||||
|
||||
function GetListaID : String;
|
||||
procedure SetListaID (const Value : String);
|
||||
property ListaID : String read GetListaID
|
||||
write SetListaID;
|
||||
end;
|
||||
|
||||
TfEditorPreview = class(TfEditorBase, IEditorPreview)
|
||||
@ -133,14 +142,26 @@ type
|
||||
procedure actExportarTextoExecute(Sender: TObject);
|
||||
private
|
||||
FPreview : TfrViewPreview;
|
||||
FTitle : TCaption;
|
||||
FController : IControllerBase;
|
||||
FListaID : String;
|
||||
procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer);
|
||||
procedure UpdateZoom;
|
||||
protected
|
||||
function GetReport: TfrxReport; virtual;
|
||||
procedure SetTitle(const Value: string);
|
||||
function GetTitle: string;
|
||||
procedure PonerTitulos(const ATitulo: String = ''); override;
|
||||
function GetController : IControllerBase;
|
||||
procedure SetController (const Value : IControllerBase);
|
||||
procedure SetListaID (const Value : String);
|
||||
function GetListaID : String;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
property ListaID : String read GetListaID
|
||||
write SetListaID;
|
||||
property Controller : IControllerBase read GetController
|
||||
write SetController;
|
||||
property Title: string read GetTitle write SetTitle;
|
||||
property Report: TfrxReport read GetReport;
|
||||
procedure Print;
|
||||
@ -160,6 +181,16 @@ uses
|
||||
|
||||
{ TfEditorBase1 }
|
||||
|
||||
function TfEditorPreview.GetController: IControllerBase;
|
||||
begin
|
||||
Result := FController;
|
||||
end;
|
||||
|
||||
function TfEditorPreview.GetListaID: String;
|
||||
begin
|
||||
Result := FListaID;
|
||||
end;
|
||||
|
||||
function TfEditorPreview.GetReport: TfrxReport;
|
||||
begin
|
||||
Result := frxReport1;
|
||||
@ -168,7 +199,7 @@ end;
|
||||
|
||||
function TfEditorPreview.GetTitle: string;
|
||||
begin
|
||||
Result := Self.Caption;
|
||||
Result := FTitle;
|
||||
end;
|
||||
|
||||
procedure TfEditorPreview.FormShow(Sender: TObject);
|
||||
@ -389,6 +420,21 @@ begin
|
||||
FPreview.Preview.OnPageChanged := OnPageChanged;
|
||||
end;
|
||||
|
||||
procedure TfEditorPreview.PonerTitulos(const ATitulo: String);
|
||||
var
|
||||
AText : String;
|
||||
begin
|
||||
AText := 'Previsualizar';
|
||||
|
||||
if (Length(ATitulo) > 0) then
|
||||
AText := AText + ' - ' + ATitulo
|
||||
else
|
||||
AText := AText + ' - ' + FTitle;
|
||||
|
||||
JvNavPanelHeader.Caption := AText;
|
||||
Caption := AText;
|
||||
end;
|
||||
|
||||
procedure TfEditorPreview.Preview;
|
||||
begin
|
||||
Self.ShowModal;
|
||||
@ -403,9 +449,20 @@ begin
|
||||
Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TfEditorPreview.SetController(const Value: IControllerBase);
|
||||
begin
|
||||
FController := Value;
|
||||
end;
|
||||
|
||||
procedure TfEditorPreview.SetListaID(const Value: String);
|
||||
begin
|
||||
FListaID := Value;
|
||||
end;
|
||||
|
||||
procedure TfEditorPreview.SetTitle(const Value: string);
|
||||
begin
|
||||
Self.Caption := 'Previsualizar - ' + Value;
|
||||
FTitle := Value;
|
||||
PonerTitulos(FTitle);
|
||||
end;
|
||||
|
||||
function TfEditorPreview.ExportToFile: String;
|
||||
|
||||
BIN
Source/Informes/Presupuesto.rdx
Normal file
BIN
Source/Informes/Presupuesto.rdx
Normal file
Binary file not shown.
@ -770,13 +770,12 @@ procedure TPresupuestosClienteController.Print(APresupuesto: IBizPresupuestoClie
|
||||
var
|
||||
AReportController : IPresupuestosClienteReportController;
|
||||
ID_Presupuestos: TStringList;
|
||||
|
||||
begin
|
||||
AReportController := TPresupuestosClienteReportController.Create;
|
||||
try
|
||||
ID_Presupuestos := TStringList.Create;
|
||||
|
||||
//Si deseamos previsualizar todos los items del objeto presupuesto
|
||||
//Si deseamos imprimimos todos los items del objeto presupuesto
|
||||
if AllItems then
|
||||
begin
|
||||
with APresupuesto.DataTable do
|
||||
@ -789,7 +788,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
end
|
||||
//Solo previsualizamos el item seleccionado
|
||||
//Solo imprimimos el item seleccionado
|
||||
else
|
||||
ID_Presupuestos.Add(IntToStr(APresupuesto.ID));
|
||||
|
||||
|
||||
@ -8,13 +8,14 @@ uses
|
||||
uBizPresupuestosCliente;
|
||||
|
||||
type
|
||||
IPresupuestosClienteReportController = interface
|
||||
IPresupuestosClienteReportController = interface(IControllerBase)
|
||||
['{D0686358-251C-43C4-9927-6112F2F4D3B8}']
|
||||
procedure Preview(const AID : String);
|
||||
procedure Print(const AID : String);
|
||||
procedure Preview(const AListaID : String);
|
||||
procedure Print(const AListaID : String);
|
||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||
end;
|
||||
|
||||
TPresupuestosClienteReportController = class(TInterfacedObject, IPresupuestosClienteReportController)
|
||||
TPresupuestosClienteReportController = class(TControllerBase, IPresupuestosClienteReportController)
|
||||
private
|
||||
FDataModule : IDataModulePresupuestosClienteReport;
|
||||
function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
|
||||
@ -22,8 +23,9 @@ type
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
|
||||
procedure Preview(const AID : String);
|
||||
procedure Print(const AID : String);
|
||||
procedure Preview(const AListaID : String);
|
||||
procedure Print(const AListaID : String);
|
||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||
end;
|
||||
|
||||
|
||||
@ -32,7 +34,7 @@ implementation
|
||||
uses
|
||||
uROTypes, uEditorRegistryUtils, uIEditorPresupuestosClientePreview,
|
||||
uEditorPreview, uDataModulePresupuestosCliente, uEditorBase,
|
||||
cxControls, uFactuGES_App;
|
||||
cxControls, uFactuGES_App, uStringsUtils, uSistemaFunc;
|
||||
|
||||
{ TPresupuestosClienteReportController }
|
||||
|
||||
@ -54,7 +56,30 @@ begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TPresupuestosClienteReportController.Preview(const AID : String);
|
||||
function TPresupuestosClienteReportController.ExportToWord(const AID: Integer; const AFileName : String) : Boolean;
|
||||
var
|
||||
AStream: Binary;
|
||||
AFile : String;
|
||||
begin
|
||||
AFile := AFileName;
|
||||
if EsCadenaVacia(AFile) and (not DarFicheroWordExportar(AFile)) then
|
||||
Exit;
|
||||
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
AStream := FDataModule.GetRptWordPresupuesto(AID);
|
||||
try
|
||||
AStream.SaveToFile(AFile);
|
||||
Result := True;
|
||||
finally
|
||||
FreeAndNil(AStream);
|
||||
end;
|
||||
finally
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TPresupuestosClienteReportController.Preview(const AListaID : String);
|
||||
var
|
||||
AStream: Binary;
|
||||
AEditor : IEditorPresupuestosClientePreview;
|
||||
@ -62,12 +87,14 @@ begin
|
||||
AEditor := NIL;
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
AStream := FDataModule.GetReport(AID);
|
||||
AStream := FDataModule.GetRptPresupuestos(AListaID);
|
||||
try
|
||||
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
|
||||
if Assigned(AEditor) then
|
||||
with AEditor do
|
||||
begin
|
||||
AEditor.Controller := Self;
|
||||
AEditor.ListaID := AListaID;
|
||||
Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
||||
LoadFromStream(AStream);
|
||||
Preview;
|
||||
@ -82,7 +109,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TPresupuestosClienteReportController.Print(const AID : String);
|
||||
procedure TPresupuestosClienteReportController.Print(const AListaID : String);
|
||||
var
|
||||
AStream: Binary;
|
||||
AEditor : IEditorPresupuestosClientePreview;
|
||||
@ -90,12 +117,14 @@ begin
|
||||
AEditor := NIL;
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
AStream := FDataModule.GetReport(AID);
|
||||
AStream := FDataModule.GetRptPresupuestos(AListaID);
|
||||
try
|
||||
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
|
||||
if Assigned(AEditor) then
|
||||
with AEditor do
|
||||
begin
|
||||
AEditor.Controller := Self;
|
||||
AEditor.ListaID := AListaID;
|
||||
AEditor.LoadFromStream(AStream);
|
||||
AEditor.Print;
|
||||
AEditor.Release;
|
||||
|
||||
@ -36,7 +36,8 @@ type
|
||||
function NewItem : IBizPresupuestoCliente;
|
||||
|
||||
// Report
|
||||
function GetReport(const AID: String): Binary;
|
||||
function GetRptPresupuestos(const AListaID: String): Binary;
|
||||
function GetRptWordPresupuesto(const AID: Integer): Binary;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -60,9 +61,15 @@ begin
|
||||
RORemoteService.Message := dmConexion.Message;
|
||||
end;
|
||||
|
||||
function TDataModulePresupuestosCliente.GetReport(const AID: String): Binary;
|
||||
function TDataModulePresupuestosCliente.GetRptPresupuestos(const AListaID: String): Binary;
|
||||
begin
|
||||
Result := (RORemoteService as IsrvPresupuestosCliente).GenerateReport(AID)
|
||||
Result := (RORemoteService as IsrvPresupuestosCliente).GenerateReport(AListaID)
|
||||
end;
|
||||
|
||||
function TDataModulePresupuestosCliente.GetRptWordPresupuesto(
|
||||
const AID: Integer): Binary;
|
||||
begin
|
||||
Result := (RORemoteService as IsrvPresupuestosCliente).GenerateReportEnWord(AID)
|
||||
end;
|
||||
|
||||
function TDataModulePresupuestosCliente.NewItem: IBizPresupuestoCliente;
|
||||
|
||||
@ -8,7 +8,8 @@ uses
|
||||
type
|
||||
IDataModulePresupuestosClienteReport = interface
|
||||
['{70CEBB06-376F-4363-B80F-DDA4324E0F85}']
|
||||
function GetReport(const AID: String): Binary;
|
||||
function GetRptPresupuestos(const AListaID: String): Binary;
|
||||
function GetRptWordPresupuesto(const AID: Integer): Binary;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
@ -25,9 +25,12 @@ package PresupuestosCliente_plugin;
|
||||
{$IMPLICITBUILD ON}
|
||||
|
||||
requires
|
||||
PluginSDK_D10R,
|
||||
PresupuestosCliente_controller,
|
||||
PresupuestosCliente_view;
|
||||
Base,
|
||||
GUIBase,
|
||||
ApplicationBase,
|
||||
Contactos_view,
|
||||
Articulos_view,
|
||||
PresupuestosCliente_controller;
|
||||
|
||||
contains
|
||||
uPluginPresupuestosCliente in 'uPluginPresupuestosCliente.pas' {PluginPresupuestosCliente};
|
||||
|
||||
@ -42,8 +42,32 @@
|
||||
<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><Excluded_Packages>
|
||||
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Pascal Script\Dcu\D10\PascalScript_RO_D10.bpl">RemObjects Pascal Script - RemObjects SDK 3.0 Integration</Excluded_Packages>
|
||||
<Excluded_Packages Name="C:\Archivos de programa\EurekaLog 5\Delphi10\ExceptionExpert10.bpl">EurekaLog 5.1.9</Excluded_Packages>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages><Source><Source Name="MainSource">PresupuestosCliente_plugin.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
|
||||
</ProjectExtensions>
|
||||
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
|
||||
@ -51,9 +75,29 @@
|
||||
<DelphiCompile Include="PresupuestosCliente_plugin.dpk">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="PluginSDK_D10R.dcp" />
|
||||
<DCCReference Include="PresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="PresupuestosCliente_view.dcp" />
|
||||
<DCCReference Include="..\Views\ApplicationBase.dcp" />
|
||||
<DCCReference Include="..\Views\APresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArticPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArticuloPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArticulosPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\Articulos_PresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\Articulos_viePresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\Articulos_viewPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\Articulos_viPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\Articulos_vPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArticulPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArticuPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArtiPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArtisPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArtisuPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\ArtPresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\Views\Base.dcp" />
|
||||
<DCCReference Include="..\Views\ContactosView.dcp" />
|
||||
<DCCReference Include="..\Views\Contactos_view.dcp" />
|
||||
<DCCReference Include="..\Views\Contactos_vView.dcp" />
|
||||
<DCCReference Include="..\Views\GUIBase.dcp" />
|
||||
<DCCReference Include="..\Views\PresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="uPluginPresupuestosCliente.pas">
|
||||
<Form>PluginPresupuestosCliente</Form>
|
||||
</DCCReference>
|
||||
@ -61,7 +105,7 @@
|
||||
</Project>
|
||||
<!-- EurekaLog First Line
|
||||
[Exception Log]
|
||||
EurekaLog Version=6006
|
||||
EurekaLog Version=6011
|
||||
Activate=1
|
||||
Activate Handle=1
|
||||
Save Log File=1
|
||||
|
||||
Binary file not shown.
408
Source/Modulos/Presupuestos de cliente/Reports/Literales.pas
Normal file
408
Source/Modulos/Presupuestos de cliente/Reports/Literales.pas
Normal file
@ -0,0 +1,408 @@
|
||||
{
|
||||
===============================================================================
|
||||
Copyright (©) 2002. Rodax Software.
|
||||
===============================================================================
|
||||
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
||||
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
|
||||
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
||||
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
|
||||
bajo el que se suministra.
|
||||
-----------------------------------------------------------------------------
|
||||
Web: www.rodax-software.com
|
||||
===============================================================================
|
||||
Fecha primera versión: 09-04-2003
|
||||
Versión actual: 1.0.0
|
||||
Fecha versión actual: 09-04-2003
|
||||
===============================================================================
|
||||
Modificaciones:
|
||||
|
||||
Fecha Comentarios
|
||||
---------------------------------------------------------------------------
|
||||
===============================================================================
|
||||
}
|
||||
|
||||
unit Literales;
|
||||
|
||||
interface
|
||||
|
||||
resourcestring
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Comunes
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgDeseaSalir = '¿Desea salir de FactuGES?';
|
||||
msgUsuarioInc = 'El usuario no tiene privilegios para la empresa seleccionada.';
|
||||
msgFacSitDistinta = 'Todas las facturas seleccionadas deben tener la misma situación.';
|
||||
msgIntervaloObligatorio = 'Debe seleccionar un intervalo.';
|
||||
msgIntervaloIniMenor = 'Debe seleccionar un intervalo válido.';
|
||||
msgIntervaloNombre = 'desde el nombre %s hasta el %s';
|
||||
msgFaltaNombreFichero = 'Debe introducir un nombre de fichero';
|
||||
msgSinProvincia = 'Antes de poder elegir una población debe indicar a qué provincia pertenece.';
|
||||
msgListaProvincias = 'Lista de provincias';
|
||||
msgListaPoblaciones = 'Lista de poblaciones de %s.';
|
||||
msgFechaIniMayor = 'La fecha inicial tiene que ser anterior a la fecha final.';
|
||||
msgCantidadNoValida = 'La cantidad introducida no es un valor correcto.';
|
||||
msgPrecioNoValido = 'El precio unidad introducido no es un valor correcto.';
|
||||
msgDtoNoValido = 'El descuento introducido no es un valor correcto.';
|
||||
msgIVANoValido = '%s no es un valor para el IVA válido.';
|
||||
msgFaltaFormaPago = 'Es necesario indicar la forma de pago.';
|
||||
msgIrInicio = 'Se ha llegado al final de la lista, ¿desea ir al inicio?';
|
||||
msgNoParametros = 'Debe introducir algún valor para poder realizar la búsqueda.';
|
||||
msgDeseaBorrar = '¿Desea eliminar este concepto?';
|
||||
msgDeseaBorrarConceptos = '¿Desea eliminar estos conceptos?';
|
||||
msgDeseaBorrarTodo = '¿Desea eliminar todos los conceptos?';
|
||||
msgGuardarCambios = '¿Desea guardar los cambios?';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Datos
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgFabPagFaltaDes = 'Es necesario que introduzca el nombre del fabricante, o en su defecto que elimine la fila.';
|
||||
msgFabPagTablaBloq = 'Los fabricantes están siendo modificados por otro usuario, intentelo más tarde.';
|
||||
msgFabExisteenArt = 'El fabricante tiene asignados artículos, por lo que no puede ser eliminado.';
|
||||
|
||||
msgDatBancoRepetido = 'Ya existe el banco %s. Cambie el banco por otro que no exista.';
|
||||
msgDatBancoFaltaDes = 'Es necesario que introduzca los datos de la cuenta bancaria, o en su defecto que elimine la fila.';
|
||||
msgDatBancoTablaBloq = 'Los bancos están siendo modificados por otro usuario, intentelo más tarde.';
|
||||
|
||||
msgForPagRepetida = 'Ya existe la forma de pago %s. Cambie la forma de pago por otra que no exista.';
|
||||
msgForPagFaltaDes = 'Es necesario que introduzca el nombre de la forma de pago, o en su defecto que elimine la fila.';
|
||||
msgForPagTablaBloq = 'Las formas de pago están siendo modificadas por otro usuario, intentelo más tarde.';
|
||||
|
||||
msgFamRepetida = 'Ya existe la familia %s. Cambie la familia por otra que no exista.';
|
||||
msgFamFaltaDes = 'Es necesario que introduzca el nombre de la familia, o en su defecto que elimine la fila.';
|
||||
msgFamTablaBloq = 'Las familias están siendo modificadas por otro usuario, intentelo más tarde.';
|
||||
|
||||
msgUniMedRepetida = 'Ya existe la unidad de medida %s. Cambie la unidad de medida por otra que no exista.';
|
||||
msgUniMedFaltaDes = 'Es necesario que introduzca el nombre de la unidad de medida, o en su defecto que elimine la fila.';
|
||||
msgUniMedTablaBloq = 'Las unidades de medida están siendo modificadas por otro usuario, intentelo más tarde.';
|
||||
|
||||
msgTipCliFaltaDes = 'Es necesario que introduzca el nombre del tipo de cliente, o en su defecto que elimine la fila.';
|
||||
msgTipCliTablaBloq = 'Los tipos de cliente están siendo modificados por otro usuario, intentelo más tarde.';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Cartas
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgCarFirma = '¿Desea firmar la carta?';
|
||||
msgCarFaltaProv = 'Falta indicar el proveedor al que va dirigida la carta.';
|
||||
msgCarFaltaCli = 'Falta indicar el cliente al que va dirigida la carta.';
|
||||
msgCarFaltaDir = 'Falta indicar la dirección a la que va dirigida la carta';
|
||||
msgCarFaltaPob = 'Falta indicar la población a la que va dirigida la carta';
|
||||
msgCarFaltaCP = 'Falta indicar el código postal al que va dirigida la carta';
|
||||
msgCarFaltaCarta = 'Debe escribir algo en la carta';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Articulos
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgArtCodArtNoExiste = 'No existe el artículo %s. Introduzca un codigo de artículo que sí exista.';
|
||||
msgArtCodArtIncorrecto = '%s no es un código de artículo correcto. Cambie el codigo del artículo por otro e inténtelo de nuevo.';
|
||||
msgArtCodArtRepetido = 'Ya existe el artículo %s. Cambie el código del artículo por otro que no exista.';
|
||||
msgArtExisteArtEnAlm = 'El artículo a eliminar existe en algún almacén, por lo tanto no puede ser eliminado.';
|
||||
msgArtExisteArtEnPed = 'El artículo a eliminar existe en algún pedido de proveedor pendiente de recibir, por lo que no puede ser eliminado.';
|
||||
msgArtNoExisteArt = 'El artículo %s no existe.';
|
||||
msgArtBloqueado = 'El artículo %s está siendo modificado por otro usuario.';
|
||||
msgArtFaltaDesArt = 'Es obligatorio introducir la descripción del artículo.';
|
||||
msgArtTieneExistencias = 'El artículo a eliminar tiene todavía existencias, por lo tanto no puede ser eliminado.';
|
||||
msgArtNoExisteArtAlm = 'El artículo %s no existe en el almacén.';
|
||||
msgArtNoHayArt = 'No hay articulos dados de alta, por lo tanto no es posible seleccionar.';
|
||||
msgArtNoHayArtAlm = 'No hay articulos en el almacén, por lo tanto no es posible seleccionar';
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Instaladores
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgInsFaltaCodigo = 'Debe introducir un código de instalador para poder realizar el listado.';
|
||||
msgInsCodInsNoExiste = 'No existe el instalador %s. Cambie el codigo del instalador por otro que sí exista.';
|
||||
msgInsCodInsIncorrecto = '%s no es un código de instalador correcto. Cambie el codigo del instalador por otro e inténtelo de nuevo.';
|
||||
msgInsCodInsRepetido = 'Ya existe el instalador %s. Cambie el codigo del instalador por otro que no exista.';
|
||||
msgInsFaltaNombre = 'Es obligatorio introducir el nombre del instalador.';
|
||||
msgInsNoExiste = 'El instalador %s no existe.';
|
||||
msgInsBloqueado = 'El instalador %s está siendo modificado por otro usuario.';
|
||||
msgInsNoHayInstaladores = 'No hay instaladores dados de alta, por lo tanto no es posible seleccionar.';
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Proveedores
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgProFaltaCodigo = 'Debe introducir un código de proveedor para poder realizar el listado.';
|
||||
msgProCodProvNoExiste = 'No existe el proveedor %s. Cambie el codigo del proveedor por otro que sí exista.';
|
||||
msgProCodProvIncorrecto = '%s no es un código de proveedor correcto. Cambie el codigo del proveedor por otro e inténtelo de nuevo.';
|
||||
msgProCodProvRepetido = 'Ya existe el proveedor %s. Cambie el codigo del proveedor por otro que no exista.';
|
||||
msgProFaltaNombreProv = 'Es obligatorio introducir el nombre del proveedor.';
|
||||
msgProvNoExisteProv = 'El proveedor %s no existe.';
|
||||
msgProvBloqueado = 'El proveedor %s está siendo modificado por otro usuario.';
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Pedidos de proveedor
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgPedYaFacturado = 'El pedido %s ya está facturado.';
|
||||
msgPedidoYaRecibido = 'El movimiento no se ha podido realizar, asegúrese que el pedido no esté ya totalmente recibido.';
|
||||
msgPedidoNoModificar = 'Este pedido no se puede modificar porque está %s.';
|
||||
msgPedidoNoEliminar = 'Este pedido no se puede eliminar porque está %s.';
|
||||
msgPedidoNoEmitir = 'Este pedido no se puede emitir porque está %s.';
|
||||
msgPedidoNoRecibir = 'Este pedido no se puede recibir porque está %s.';
|
||||
msgPedidoNoDevolver = 'Este pedido no se puede devolver porque está %s.';
|
||||
msgPedidoNoCancelar = 'Este pedido no se puede cancelar porque está %s.';
|
||||
msgPedidoNoFacturar = 'Este pedido no se puede facturar porque está %s.';
|
||||
msgCancelarPedido = '¿Desea cancelar el pedido %s?';
|
||||
msgPedCodPedRepetido = 'Ya existe el pedido %s. Cambie el codigo del pedido por otro que no exista.';
|
||||
msgPedCodPedIncorrecto = '%s no es un código correcto para un pedido a proveedor. Cambie el codigo del pedido por otro e inténtelo de nuevo.';
|
||||
msgPedPedProvNoExiste = 'El pedido a proveedor %s no existe. Cambie el codigo del pedido por otro que sí exista.';
|
||||
msgPedFaltaNombreProv = 'Es obligatorio introducir los datos del proveedor al que va dirigido este pedido.';
|
||||
msgPedFaltaFecAlta = 'Debe indicar la fecha de alta del pedido a proveedor.';
|
||||
msgPedFaltaFecRecepcion = 'Es obligatorio indicar la fecha de recepción del pedido.';
|
||||
msgPedFaltaFecEmision = 'Para poder emitir el pedido, debe indicar la fecha de emisión del pedido.';
|
||||
msgPedFaltaAlmDes = 'Es obligatorio introducir el código del almacén destino.';
|
||||
msgPedProvBloqueado = 'El pedido a proveedor %s está siendo modificado por otro usuario.';
|
||||
msgPedFaltaArticulos = 'Es obligatorio introducir al menos un artículo al pedido.';
|
||||
msgPedProvNotaPorDef = 'FECHA DE ENTREGA: INMEDIATA.';
|
||||
msgPedProvCodCliFinalIncorrecto = '%s no es un código de obra correcto. Cambie el codigo de la obra para el cliente final.';
|
||||
msgPedProvCodCliFinalNoExiste = 'No existe la obra %s. Introduzca un codigo de obra que sí exista.';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Facturas de proveedor
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
mFacturaNoModificar = 'Esta factura no se puede modificar porque ya ha sido pagada.';
|
||||
mFacturaNoEliminar = 'Esta factura no se puede eliminar porque ya ha sido pagada.';
|
||||
msgFacProCodFacRepetido = 'Ya existe la factura de proveedor %s. Cambie el codigo de la factura por otro que no exista.';
|
||||
msgFacProCodFacIncorrecto = '%s no es un código correcto para una factura de proveedor. Cambie el codigo de la factura por otro e inténtelo de nuevo.';
|
||||
msgFacProFaltaNombreProv = 'Es obligatorio introducir los datos del proveedor al que pertenece esta factura.';
|
||||
msgFacProNoExiste = 'La factura de proveedor %s no existe. Cambie el codigo de la factura por otra que sí exista';
|
||||
msgFacProBloqueada = 'La factura de proveedor %s está siendo modificada por otro usuario.';
|
||||
msgFacProPedNoPro = 'El pedido %s no pertenece al proveedor de la factura.';
|
||||
msgFacProCodPedRepetido = 'El código de pedido %s ya existe en la lista de pedidos de la factura.';
|
||||
msgFacProFaltaFecha = 'La factura de proveedor debe tener fecha de alta.';
|
||||
msgFacProFaltaFechaVto = 'La factura de proveedor debe tener fecha de vencimiento.';
|
||||
msgFacProFechaVtoAnterior = 'La fecha de vencimiento no puede ser anterior a la fecha de alta de la factura.';
|
||||
msgFacProFaltanDetalles = 'Es necesario introducir al menos un pedido en la factura de proveedor.';
|
||||
msgFacProBorrarFacPed = 'Si elimina esta factura, los pedidos que contiene dejarán de estar facturados. ¿Desea continuar?';
|
||||
msgFacProSitPedInc = 'No se puede añadir el pedido %s porque está %s y la factura es %s.';
|
||||
msgFacProErrorFacPed = 'Error. No se ha podido añadir el pedido %s a la factura.';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Clientes
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgCliFaltaNombreCli = 'Es obligatorio introducir el nombre del cliente.';
|
||||
msgCliFaltaCodigo = 'Debe introducir un código de cliente para poder realizar el listado.';
|
||||
msgCliCodCliNoExiste = 'No existe el cliente %s. Cambie el codigo del cliente por otro que sí exista.';
|
||||
msgCliCodCliIncorrecto = '%s no es un código de cliente correcto. Cambie el codigo del cliente por otro e inténtelo de nuevo.';
|
||||
msgCliCodCliRepetido = 'Ya existe el cliente %s. Cambie el codigo del cliente por otro que no exista.';
|
||||
msgCliFaltaCalle = 'Es obligatorio introducir la dirección principal del cliente.';
|
||||
msgCliNoExiste = 'El cliente %s no existe.';
|
||||
msgCliBloqueado = 'El cliente %s está siendo modificado por otro usuario.';
|
||||
msgCliConAlmAso = 'El cliente %s tiene almacenes u obras asociadas. No se puede eliminar el cliente.';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Presupuestos de cliente
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgPreYaFacturado = 'El presupuesto %s ya está facturado.';
|
||||
msgPreYaAceptado = 'El presupuesto %s ya ha sido aceptado.';
|
||||
msgPreYaAnulado = 'El presupuesto %s ya ha sido anulado.';
|
||||
msgCambiarAAceptar = 'El presupuesto %s está anulado. ¿Desea aceptarlo?';
|
||||
msgCambiarAAnular = 'El presupuesto %s está aceptado. ¿Desea anularlo?';
|
||||
msgPreNoSePuedeFacturar = 'El presupuesto %s no se puede facturar porque no está aceptado.';
|
||||
msgPreNoModificar = 'Este presupuesto no se puede modificar porque está %s.';
|
||||
msgPreNoEliminar = 'Este presupuesto no se puede eliminar porque está %s.';
|
||||
msgPreNoExistePre = 'No existe el presupuesto %s. Cambie el codigo del presupuesto por otro que sí exista.';
|
||||
msgPreCodPreIncorrecto = '%s no es un código correcto para un presupuesto de cliente. Cambie el codigo del presupuesto por otro e inténtelo de nuevo.';
|
||||
msgPreCodPreRepetido = 'Ya existe el presupuesto %s. Cambie el codigo del presupuesto por otro que no exista.';
|
||||
msgPreFaltaNombreCli = 'Es obligatorio introducir los datos del cliente al que pertenece este presupuesto.';
|
||||
msgPreFaltaFecAlta = 'Debe indicar la fecha de alta del presupuesto.';
|
||||
msgPreFaltaFecDecision = 'Para poder aceptar o anular el presupuesto, debe indicar la fecha de decisión del presupuesto.';
|
||||
msgPreSobraFecDecision = 'El presupuesto está pendiente de decisión por lo que todavía no puede tener fecha de decisión. Por favor, borre la fecha de decisión o modifique la situación del presupuesto.';
|
||||
msgPreFaltaArticulos = 'Es obligatorio introducir al menos un concepto en el presupuesto.';
|
||||
msgPreBloqueado = 'El presupuesto %s está siendo modificado por otro usuario.';
|
||||
msgPreNotaPorDefecto = '16% IVA NO INCLUIDO.' + #13 + 'FORMA DE PAGO:';
|
||||
msgPreNoEliminarEnObra = 'Este presupuesto no se puede eliminar porque está asociado a una obra.';
|
||||
msgPreFaltasDatosBoni = 'Si el presupuesto tiene bonificación, es obligatorio la descripción e importe de la misma.';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Albaranes de cliente
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgAlbCodAlbRepetido = 'Ya existe el albarán de cliente %s. Cambie el codigo del albarán por otro que no exista.';
|
||||
msgAlbCodAlbIncorrecto = '%s no es un código correcto para un albarán de cliente. Cambie el codigo del albarán por otro e inténtelo de nuevo.';
|
||||
msgAlbYaFacturado = 'El albarán %s ya está facturado.';
|
||||
msgAlbNoModificar = 'Este albarán no se puede modificar porque está facturado.';
|
||||
msgAlbNoEliminar = 'Este albarán no se puede eliminar porque está facturado.';
|
||||
msgAlbFaltaNombreCli = 'Es obligatorio introducir los datos del cliente al que pertenece este albarán.';
|
||||
msgAlbFaltaArticulos = 'Es obligatorio introducir al menos un concepto en el albarán.';
|
||||
msgAlbFaltaFechaAlta = 'Debe indicar la fecha de alta del albarán.';
|
||||
msgAlbNoExisteAlb = 'El albarán de cliente %s no existe. Cambie el codigo del albarán por otro que sí exista.';
|
||||
msgAlbBloqueado = 'El albarán de cliente %s está siendo modificado por otro usuario.';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Facturas de cliente
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgClaseFacDistinta = 'Sólo se pueden abonar facturas de cargo. La factura elegida es un abono.';
|
||||
msgFacTotalmenteAbonada = 'La factura de cargo ya está abonada totalmente. No se pueden hacer más abonos.';
|
||||
msgFacCliCodFacRepetido = 'Ya existe la factura de cliente %s. Cambie el codigo de la factura por otro que no exista.';
|
||||
msgFacCliCodFacIncorrecto = '%s no es un código correcto para una factura de cliente. Cambie el codigo de la factura por otro e inténtelo de nuevo.';
|
||||
msgFacCliCodPreAlbInvalido = 'No se puede determinar el tipo de factura (libre, presupuesto, albaran o abono). Datos erróneos.';
|
||||
msgFacCliCodFacCargoNoExiste = 'No existe la factura de cargo %s. Cambie el codigo de la factura por otro que sí exista.';
|
||||
msgFacCliCodFacCargoIncorrecto = '%s no es un código correcto para una factura de cargo. Cambie el codigo de la factura por otro e inténtelo de nuevo.';
|
||||
msgFacCliFacConAbonos = 'Esta factura tiene al menos un abono. No se puede eliminar.';
|
||||
msgFacCliImpAbonoSuperior = 'El importe de este abono es superior al importe de la factura de cargo.';
|
||||
msgFacCliImpAbonadoSuperior = 'El importe de todos los abonos es superior al importe de la factura de cargo.';
|
||||
msgFacCliNoExisteFac = 'La factura de cliente %s no existe.';
|
||||
msgFacCliBloqueado = 'La factura de cliente %s está siendo modificada por otro usuario.';
|
||||
msgFacCliCopiarConPre = '¿Desea copiar todos los conceptos del presupuesto %s a la factura?';
|
||||
msgFacCliFaltaFechaAlta = 'Debe indicar la fecha de alta de la factura de cliente.';
|
||||
msgFacCliDesFacPre = 'Importe de factura por trabajos realizados según indicaciones de nuestro presupuesto %s con fecha %s.';
|
||||
msgFacCliBorrarFacPre = 'Si elimina esta factura, el presupuesto %s dejará de estar facturado. ¿Desea continuar?';
|
||||
msgFacCliBorrarFacAlb = 'Si elimina esta factura, el albarán %s dejará de estar facturado. ¿Desea continuar?';
|
||||
msgFacCliFaltaArticulos = 'Es obligatorio introducir al menos un concepto en la factura de cliente.';
|
||||
msgFacCliFaltaFecVto = 'La factura de cliente debe tener fecha de vencimiento.';
|
||||
msgFacCliFecVtoMenorFecAlta = 'La fecha de vencimiento tiene que ser posterior a la fecha de alta de la factura de cliente.';
|
||||
msgFacCliClaseFacDistinta = 'Sólo se pueden abonar facturas de cargo. La factura %s es un abono.';
|
||||
msgFacCliImpDebeSerNeg = 'El importe de este abono debe ser negativo.';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Almacenes
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgAlmCodAlmRepetido = 'Ya existe el almacén %s. Cambie el codigo del almacén por otro que no exista.';
|
||||
msgAlmCodAlmIncorrecto = '%s no es un código de almacén correcto. Cambie el codigo del almacén por otro e inténtelo de nuevo.';
|
||||
msgAlmTieneExis = 'El almacén a eliminar tiene existencias por lo que no puede ser eliminado.';
|
||||
msgAlmFaltaNombre = 'Es obligatorio introducir el nombre del almacén.';
|
||||
msgAlmNoExisteAlm = 'El almacén %s no existe.';
|
||||
msgAlmBloqueado = 'El almacén %s está siendo modificado por otro usuario.';
|
||||
msgAlmCodAlmTienePedido = 'El pedido %s en situación de %s tiene este almacén como almacén destino y en caso de devolución será almacén origen, por lo que no puede ser eliminado.';
|
||||
msgAlmCodAlmTienePedidoPendiente = 'El pedido %s en situación de %s tiene este almacén como almacén destino, por lo que no puede ser eliminado.';
|
||||
msgAlmNoHayAlm = 'No hay almacenes dados de alta, por lo tanto no es posible seleccionar';
|
||||
msgAlmCodAlmNoExiste = 'No existe el almacén %s. Introduzca un codigo de almacén que sí exista.';
|
||||
msgAlmDeseaFinObra = 'Al finalizar una obra, todos los materiales existentes en la misma serán borrados, ¿esta seguro de querer finalizar la obra " %s "?';
|
||||
msgAlmDeseaRellCli = '¿Desea asignar los datos del cliente al almacén u obra?';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Movimientos
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgMovNoExiste = 'El movimiento no existe.';
|
||||
msgMovMismoAlmacen = 'El almacén origen y el almacén destino deben de ser distintos';
|
||||
msgMovStockNoValido = 'El stock introducido no es un valor correcto.';
|
||||
msgMovNoArticulos = 'Debe haber algún artículo en la lista para poder hacer el movimiento.';
|
||||
msgMovNoExistencias = 'No hay suficientes existencias';
|
||||
msgMovNoExistePedido = 'El pedido %s ya no existe.';
|
||||
msgMovCodArtAlmNoExiste = 'El artículo con código %s y nombre %s no existe en el almacen %s. Introduzca un código de artículo que sí exista.';
|
||||
msgMovFaltaAlmacenOrigen = 'Es necesario que introduzca un almacén origen existente en la aplicación.';
|
||||
msgMovFaltaAlmacenDestino = 'Es necesario que introduzca un almacén destino existente en la aplicación.';
|
||||
msgMovCantMayorCero = 'La cantidad de unidades de Entrada/Salida debe de ser siempre positiva';
|
||||
msgMovStockMayorCero = 'El stock máximo y mínimo debe de ser siempre positivo';
|
||||
msgMovCantRecibidaMayor = 'La cantidad recibida debe ser menor o igual a la cantidad pedida, en este caso restan por recibir %s unidades';
|
||||
msgMovPedidoRecibido = 'El pedido %s ya ha sido recibido totalmente';
|
||||
msgMovPedidoDevuelto = 'El pedido %s ya ha sido devuelto';
|
||||
msgMovNoRealizado = 'El movimiento no se ha podido realizar, compruebe que el almacén y los materiales existan';
|
||||
msgMovArtAlmIncorrecto = 'Este árticulo no se añadirá a la lista ya que pertenece a un almacen distinto que el establecido como origen';
|
||||
msgMovNoExisteArtExistencias = 'Asegurese que todos los artículos del movimiento existen en el almacén seleccionado, y que las cantidades no sean mayores que las existencias';
|
||||
msgMovNoExisteArticulo = 'El artículo %s ya no existe en la aplicación, y por tanto no se realizará el movimiento.';
|
||||
msgMovNoExisteAlmacen = 'El almacén %s ya no existe en la aplicación, y por tanto no se realizará el movimiento.';
|
||||
|
||||
etiMovEntrada = 'Entrada';
|
||||
etiMovSalida = 'Salida';
|
||||
etiMovTraslado = 'Traslado';
|
||||
etiMovPedido = 'Pedido';
|
||||
etiMovDevolucion = 'Devolucion';
|
||||
etiMovEntradaSalida = 'Entrada/Salida';
|
||||
etiMovEntSalTraslado = 'Entrada/Salida por traslado';
|
||||
etiMovRegularizacion = 'Regularización';
|
||||
etiMovEntRegularizacion = 'Entrada por regularizacion';
|
||||
etiMovEntradaPedido = 'Entrada por pedido a proveedor ';
|
||||
etiMovSalidaRegularizacion = 'Salida por regularizacion';
|
||||
etiMovSalidaDevolucion = 'Salida por devolucion a proveedor ';
|
||||
etiMovCodigoAlmObrDestino ='Cód. de almacén/obra destino:';
|
||||
etiMovNombreAlmObrDestino = 'Nombre del almacén/obra destino:';
|
||||
etiMovCodigoAlmObrOrigen = 'Cód. de almacén/obra origen:';
|
||||
etiMovNombreAlmObrOrigen = 'Nombre del almacén/obra origen:';
|
||||
etiMovIniTrasladoEnt = 'Entrada por traslado desde el almacén con código "';
|
||||
etiMovIniTrasladoSal = 'Salida por traslado al almacén con código "';
|
||||
etiMovMedTraslado = '" y nombre "';
|
||||
etiMovFinTraslado = '"';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Historicos
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgHisYaExisteObraHistorica = 'Ya existe una obra historica con el mismo nombre y misma fecha de finalización';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Empresas
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgEmpBorrarEmp = '¿Esta seguro de desear eliminar eliminar la empresa?, a su vez se eliminará toda la informacion relacionada con dicha empresa';
|
||||
msgEmpBorrarAb = 'No se puede eliminar una empresa si está abierta';
|
||||
msgEmpCodEmpRepetido = 'Ya existe la empresa %s.';
|
||||
msgEmpEmpBloqueado = 'La empresa ''%s'' está siendo modificada por otro usuario.';
|
||||
msgEmpNoExisteEmp = 'No exista la empresa %s.';
|
||||
msgEmpFaltaAlgo = 'Es obligatorio introducir %s de la empresa.';
|
||||
msgEmpNombre = 'el nombre';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Informes
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgInfDeseaImportes = '¿Desea imprimir los importes?';
|
||||
msgInfArticuloIniMayor = 'La descripción del artículo inicial debe ser alfabéticamente anterior al artículo final.';
|
||||
msgInfFamiliaIniMayor = 'La familia inicial debe ser alfabéticamente anterior a la familia final.';
|
||||
msgInfClienteIniMayor = 'El cliente inicial debe ser alfabéticamente anterior al cliente final.';
|
||||
msgInfProveedorIniMayor = 'El proveedor inicial debe ser alfabéticamente anterior al proveedor final.';
|
||||
msgInfFaltaAlmacen = 'Falta indicar el almacén que se utilizará para el listado.';
|
||||
msgInfTextoListarFacturasCli = 'Introduzca la fecha de vencimiento que desea utilizar para generar el listado de facturas de cliente pendientes.';
|
||||
msgInfTextoListarFacturasCliIVA = 'Introduzca la fecha de vencimiento que desea utilizar para generar el listado de IVA de las facturas de cliente.';
|
||||
msgInfTextoListarFacturasProv = 'Introduzca la fecha de vencimiento que desea utilizar para generar el listado de facturas de proveedores pendientes.';
|
||||
msgInfTextoListarFacturasProvIVA = 'Introduzca la fecha de vencimiento que desea utilizar para generar el listado de IVA de las facturas de proveedor.';
|
||||
msgInfIntervaloTodosArt = 'Todos los artículos';
|
||||
msgInfIntervaloTodosCli = 'Todos los clientes.';
|
||||
msgInfIntervaloTodosPro = 'Todos los proveedores';
|
||||
msgInfIntervaloTodosMov = 'Todos los movimientos';
|
||||
msgInfIntervaloDesArt = 'Desde el material ''%s'' hasta el ''%s''';
|
||||
msgInfIntervaloFam = 'Desde la familia ''%s'' hasta ''%s''';
|
||||
msgInfIntervaloCod = 'Desde el código %s hasta el %s';
|
||||
msgInfIntervaloCli = 'Desde el cliente ''%s'' hasta el cliente ''%s''.';
|
||||
msgInfIntervaloFec = 'Desde el %s hasta el %s.';
|
||||
msgInfIntervaloPro = 'Desde el proveedor ''%s'' hasta el proveedor ''%s''.';
|
||||
msgInfFaltaCodPre = 'Falta indicar el código del presupuesto a generar.';
|
||||
msgInfFaltaCodAlb = 'Falta indicar el código del albarán de cliente a generar.';
|
||||
msgInfFaltaCodFac = 'Falta indicar el código de la factura de cliente a generar.';
|
||||
msgInfFaltaCodPed = 'Falta indicar el código del pedido a proveedor a generar.';
|
||||
msgInfFaltaFicheroListado = 'Falta indicar el fichero donde se exportará el listado.';
|
||||
msgInfFalloRellenarCabecera = 'Se producido un error al generar la cabecera del informe en MS Word.';
|
||||
msgInfFalloRellenarInforme = 'Se producido un error al generar el informe en MS Word.';
|
||||
msgInfFalloRellenarPortada = 'Se producido un error al generar la portada del informe en MS Word.';
|
||||
msgInfFalloRellenarResumen = 'Se producido un error al generar el resumen en MS Word.';
|
||||
|
||||
//Estadisticas
|
||||
msgInfEstPreGeneral = 'Informe de presupuestos';
|
||||
msgInfEstPreResumen1 = 'Clientes con mayor capital en presupuestos';
|
||||
msgInfEstPreResumen2 = 'Clientes con más presupuestos aceptados';
|
||||
msgInfEstPreResumen3 = 'Clientes con más presupuestos anulados';
|
||||
|
||||
msgInfEstFacCliGeneral = 'Informe de facturación anual';
|
||||
msgInfEstFacCliResumen1 = 'Clientes con mayor capital facturado';
|
||||
msgInfEstFacCliResumen2 = 'Clientes con más descuento aplicado';
|
||||
|
||||
msgInfEstFacProGeneral = 'Informe de facturación anual';
|
||||
msgInfEstFacProResumen1 = 'Proveedores con mayor capital facturado';
|
||||
msgInfEstFacProResumen2 = 'Proveedores con más descuento aplicado';
|
||||
|
||||
msgInfEstBeneficios = 'Informe de beneficios';
|
||||
|
||||
msgInfEstTit31 = 'Comparativa del año ';
|
||||
msgInfEstTit32 = ' respecto al año ';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Opciones
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// CONTADORES
|
||||
msgOpcTablaContBloqueada = 'Los valores de los contadores están siendo modificados por otro usuario. Inténtelo más tarde.';
|
||||
msgOpcContadoresInc = 'Todos los contadores deben de ser números enteros.';
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Excepciones
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
msgExcIBGeneral = 'SQLCode: %d'+ #10#13 + 'IBNumber: %d' + #10#13 + '%s';
|
||||
msgExcIBEspecifico = '%s' + #10#13 + #10#13 + 'SQLCode: %d'+ #10#13 + 'IBNumber: %d' + #10#13 + '%s';
|
||||
msgExcErrorConexion = 'No se puede establecer conexión con el servidor.';
|
||||
msgExcLoginIncorrecto = 'No se puede iniciar la sesión. Compruebe que su nombre de usuario y su contraseña con correctos y repita la operacion.';
|
||||
msgExcBDSoloLectura = 'Esta base de datos es sólo de lectura. No se puede realizar ninguna modificación en los datos.';
|
||||
msgExcFichBDSoloLectura = 'No se puede iniciar la sesión. El fichero de la base de datos tiene activado el atributo de sólo lectura.';
|
||||
msgExcClavePrimaria = 'Ya existe otro registro con el mismo código.';
|
||||
|
||||
msgFunRangoNoValido = '%s no es un valor válido. Debe estar en el rango de 0 a 100.';
|
||||
|
||||
implementation
|
||||
end.
|
||||
@ -1,624 +0,0 @@
|
||||
object RptPresupuestosCliente: TRptPresupuestosCliente
|
||||
OldCreateOrder = True
|
||||
OnCreate = DataModuleCreate
|
||||
Height = 405
|
||||
Width = 447
|
||||
object DADataCabecera: TDADataSource
|
||||
DataSet = tbl_Cabecera.Dataset
|
||||
DataTable = tbl_Cabecera
|
||||
Left = 264
|
||||
Top = 72
|
||||
end
|
||||
object DADataDetalles: TDADataSource
|
||||
DataSet = tbl_Detalles.Dataset
|
||||
DataTable = tbl_Detalles
|
||||
Left = 344
|
||||
Top = 72
|
||||
end
|
||||
object frxRichObject1: TfrxRichObject
|
||||
Left = 48
|
||||
Top = 296
|
||||
end
|
||||
object frxBarCodeObject1: TfrxBarCodeObject
|
||||
Left = 144
|
||||
Top = 296
|
||||
end
|
||||
object frxOLEObject1: TfrxOLEObject
|
||||
Left = 48
|
||||
Top = 344
|
||||
end
|
||||
object frxCrossObject1: TfrxCrossObject
|
||||
Left = 144
|
||||
Top = 344
|
||||
end
|
||||
object frxCheckBoxObject1: TfrxCheckBoxObject
|
||||
Left = 256
|
||||
Top = 296
|
||||
end
|
||||
object frxGradientObject1: TfrxGradientObject
|
||||
Left = 360
|
||||
Top = 296
|
||||
end
|
||||
object schReport: TDASchema
|
||||
ConnectionManager = dmServer.ConnectionManager
|
||||
DataDictionary = DataDictionary
|
||||
Datasets = <
|
||||
item
|
||||
Params = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datInteger
|
||||
Value = '15'
|
||||
ParamType = daptInput
|
||||
end>
|
||||
Statements = <
|
||||
item
|
||||
Connection = 'IBX'
|
||||
TargetTable = 'PEDIDOS_CLIENTE'
|
||||
SQL =
|
||||
'SELECT'#10' V_PEDIDOS_CLIENTE.ID,'#10' V_PEDIDOS_CLIENTE.ID_EMPRESA,'#10' ' +
|
||||
' V_PEDIDOS_CLIENTE.ID_CLIENTE,'#10' V_PEDIDOS_CLIENTE.NOMBRE,'#10' V_C' +
|
||||
'LIENTES.NOMBRE_COMERCIAL,'#10' V_PEDIDOS_CLIENTE.REFERENCIA,'#10' V_PE' +
|
||||
'DIDOS_CLIENTE.REFERENCIA_CLIENTE,'#10' V_PEDIDOS_CLIENTE.SITUACION,' +
|
||||
#10' V_PEDIDOS_CLIENTE.FECHA_PEDIDO,'#10' V_PEDIDOS_CLIENTE.CALLE,'#10' ' +
|
||||
'V_PEDIDOS_CLIENTE.CODIGO_POSTAL,'#10' V_PEDIDOS_CLIENTE.POBLACION,'#10 +
|
||||
' V_PEDIDOS_CLIENTE.PROVINCIA,'#10' V_PEDIDOS_CLIENTE.PERSONA_CONTA' +
|
||||
'CTO,'#10' V_PEDIDOS_CLIENTE.TELEFONO,'#10' V_PEDIDOS_CLIENTE.OBSERVACI' +
|
||||
'ONES,'#10' V_PEDIDOS_CLIENTE.INCIDENCIAS,'#10' V_PEDIDOS_CLIENTE.INCID' +
|
||||
'ENCIAS_ACTIVAS,'#10' V_PEDIDOS_CLIENTE.FECHA_ALTA,'#10' V_PEDIDOS_CLIE' +
|
||||
'NTE.FECHA_MODIFICACION,'#10' V_PEDIDOS_CLIENTE.USUARIO,'#10' V_PEDIDOS' +
|
||||
'_CLIENTE.IMPORTE_NETO,'#10' V_PEDIDOS_CLIENTE.IMPORTE_PORTE,'#10' V_PE' +
|
||||
'DIDOS_CLIENTE.DESCUENTO,'#10' V_PEDIDOS_CLIENTE.IMPORTE_DESCUENTO,'#10 +
|
||||
' V_PEDIDOS_CLIENTE.BASE_IMPONIBLE,'#10' V_PEDIDOS_CLIENTE.IVA,'#10' V' +
|
||||
'_PEDIDOS_CLIENTE.IMPORTE_IVA,'#10' V_PEDIDOS_CLIENTE.IMPORTE_TOTAL,' +
|
||||
#10' V_PEDIDOS_CLIENTE.ID_FORMA_PAGO,'#10' EMPRESAS.NOMBRE AS NOMBRE_' +
|
||||
'EMPRESA,'#10' EMPRESAS.TELEFONO_1 as TELEFONO_1_EMPRESA,'#10' EMPRESAS' +
|
||||
'.FAX as FAX_EMPRESA'#10'FROM'#10' V_PEDIDOS_CLIENTE'#10' LEFT OUTER JOIN E' +
|
||||
'MPRESAS ON (V_PEDIDOS_CLIENTE.ID_EMPRESA = EMPRESAS.ID)'#10' LEFT O' +
|
||||
'UTER JOIN V_CLIENTES ON (V_CLIENTES.ID = V_PEDIDOS_CLIENTE.ID_CL' +
|
||||
'IENTE)'#10'WHERE'#10' V_PEDIDOS_CLIENTE.ID = :ID'
|
||||
StatementType = stSQL
|
||||
ColumnMappings = <
|
||||
item
|
||||
DatasetField = 'OBSERVACIONES'
|
||||
TableField = 'OBSERVACIONES'
|
||||
end
|
||||
item
|
||||
DatasetField = 'NOMBRE'
|
||||
TableField = 'NOMBRE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'CALLE'
|
||||
TableField = 'CALLE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'POBLACION'
|
||||
TableField = 'POBLACION'
|
||||
end
|
||||
item
|
||||
DatasetField = 'REFERENCIA'
|
||||
TableField = 'REFERENCIA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID'
|
||||
TableField = 'ID'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID_EMPRESA'
|
||||
TableField = 'ID_EMPRESA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_TOTAL'
|
||||
TableField = 'IMPORTE_TOTAL'
|
||||
end
|
||||
item
|
||||
DatasetField = 'CODIGO_POSTAL'
|
||||
TableField = 'CODIGO_POSTAL'
|
||||
end
|
||||
item
|
||||
DatasetField = 'FECHA_PEDIDO'
|
||||
TableField = 'FECHA_PEDIDO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'PROVINCIA'
|
||||
TableField = 'PROVINCIA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'PERSONA_CONTACTO'
|
||||
TableField = 'PERSONA_CONTACTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'TELEFONO'
|
||||
TableField = 'TELEFONO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID_CLIENTE'
|
||||
TableField = 'ID_CLIENTE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'SITUACION'
|
||||
TableField = 'SITUACION'
|
||||
end
|
||||
item
|
||||
DatasetField = 'INCIDENCIAS'
|
||||
TableField = 'INCIDENCIAS'
|
||||
end
|
||||
item
|
||||
DatasetField = 'INCIDENCIAS_ACTIVAS'
|
||||
TableField = 'INCIDENCIAS_ACTIVAS'
|
||||
end
|
||||
item
|
||||
DatasetField = 'FECHA_ALTA'
|
||||
TableField = 'FECHA_ALTA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'FECHA_MODIFICACION'
|
||||
TableField = 'FECHA_MODIFICACION'
|
||||
end
|
||||
item
|
||||
DatasetField = 'USUARIO'
|
||||
TableField = 'USUARIO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_NETO'
|
||||
TableField = 'IMPORTE_NETO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_PORTE'
|
||||
TableField = 'IMPORTE_PORTE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'DESCUENTO'
|
||||
TableField = 'DESCUENTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_DESCUENTO'
|
||||
TableField = 'IMPORTE_DESCUENTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'BASE_IMPONIBLE'
|
||||
TableField = 'BASE_IMPONIBLE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IVA'
|
||||
TableField = 'IVA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_IVA'
|
||||
TableField = 'IMPORTE_IVA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID_FORMA_PAGO'
|
||||
TableField = 'ID_FORMA_PAGO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'NOMBRE_EMPRESA'
|
||||
TableField = 'NOMBRE_EMPRESA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'TELEFONO_1_EMPRESA'
|
||||
TableField = 'TELEFONO_1_EMPRESA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'FAX_EMPRESA'
|
||||
TableField = 'FAX_EMPRESA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'NOMBRE_COMERCIAL'
|
||||
TableField = 'NOMBRE_COMERCIAL'
|
||||
end
|
||||
item
|
||||
DatasetField = 'REFERENCIA_CLIENTE'
|
||||
TableField = 'REFERENCIA_CLIENTE'
|
||||
end>
|
||||
end>
|
||||
Name = 'Informe_Cabecera'
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datInteger
|
||||
InPrimaryKey = True
|
||||
end
|
||||
item
|
||||
Name = 'ID_EMPRESA'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'ID_CLIENTE'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'NOMBRE_COMERCIAL'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_PEDIDO'
|
||||
DataType = datDateTime
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA_CLIENTE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'SITUACION'
|
||||
DataType = datString
|
||||
Size = 9
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'OBSERVACIONES'
|
||||
DataType = datMemo
|
||||
end
|
||||
item
|
||||
Name = 'NOMBRE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'CALLE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'CODIGO_POSTAL'
|
||||
DataType = datString
|
||||
Size = 10
|
||||
end
|
||||
item
|
||||
Name = 'PROVINCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'PERSONA_CONTACTO'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'TELEFONO'
|
||||
DataType = datString
|
||||
Size = 25
|
||||
end
|
||||
item
|
||||
Name = 'INCIDENCIAS'
|
||||
DataType = datMemo
|
||||
end
|
||||
item
|
||||
Name = 'INCIDENCIAS_ACTIVAS'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_ALTA'
|
||||
DataType = datDateTime
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_MODIFICACION'
|
||||
DataType = datDateTime
|
||||
end
|
||||
item
|
||||
Name = 'USUARIO'
|
||||
DataType = datString
|
||||
Size = 20
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_NETO'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_PORTE'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'DESCUENTO'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_DESCUENTO'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'BASE_IMPONIBLE'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'IVA'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_IVA'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'POBLACION'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'ID_FORMA_PAGO'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'NOMBRE_EMPRESA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'TELEFONO_1_EMPRESA'
|
||||
DataType = datString
|
||||
Size = 25
|
||||
end
|
||||
item
|
||||
Name = 'FAX_EMPRESA'
|
||||
DataType = datString
|
||||
Size = 25
|
||||
end>
|
||||
end
|
||||
item
|
||||
Params = <
|
||||
item
|
||||
Name = 'ID_PEDIDO'
|
||||
Value = ''
|
||||
ParamType = daptInput
|
||||
end>
|
||||
Statements = <
|
||||
item
|
||||
Connection = 'IBX'
|
||||
TargetTable = 'PEDIDOS_CLIENTE_DETALLES'
|
||||
SQL =
|
||||
'SELECT PEDIDOS_CLIENTE_DETALLES.ID, PEDIDOS_CLIENTE_DETALLES.ID_' +
|
||||
'PEDIDO,'#10' PEDIDOS_CLIENTE_DETALLES.POSICION, PEDIDOS_CLIENT' +
|
||||
'E_DETALLES.TIPO_DETALLE,'#10' PEDIDOS_CLIENTE_DETALLES.CONCEPT' +
|
||||
'O, PEDIDOS_CLIENTE_DETALLES.CANTIDAD,'#10' PEDIDOS_CLIENTE_DET' +
|
||||
'ALLES.IMPORTE_UNIDAD, PEDIDOS_CLIENTE_DETALLES.IMPORTE_TOTAL,'#10' ' +
|
||||
' ARTICULOS.REFERENCIA, ARTICULOS.FAMILIA, ARTICULOS.REFERENC' +
|
||||
'IA_PROV as REFERENCIA_PROVEEDOR'#10#10'FROM PEDIDOS_CLIENTE_DETALLES'#10'L' +
|
||||
'EFT JOIN ARTICULOS ON (PEDIDOS_CLIENTE_DETALLES.ID_ARTICULO = AR' +
|
||||
'TICULOS.ID)'#10'WHERE ID_PEDIDO = :ID_PEDIDO'#10'ORDER BY POSICION'
|
||||
StatementType = stSQL
|
||||
ColumnMappings = <
|
||||
item
|
||||
DatasetField = 'CANTIDAD'
|
||||
TableField = 'CANTIDAD'
|
||||
end
|
||||
item
|
||||
DatasetField = 'POSICION'
|
||||
TableField = 'POSICION'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID'
|
||||
TableField = 'ID'
|
||||
end
|
||||
item
|
||||
DatasetField = 'TIPO_DETALLE'
|
||||
TableField = 'TIPO_DETALLE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'CONCEPTO'
|
||||
TableField = 'CONCEPTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_UNIDAD'
|
||||
TableField = 'IMPORTE_UNIDAD'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_TOTAL'
|
||||
TableField = 'IMPORTE_TOTAL'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID_PEDIDO'
|
||||
TableField = 'ID_PEDIDO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'REFERENCIA'
|
||||
TableField = 'REFERENCIA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'FAMILIA'
|
||||
TableField = 'FAMILIA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'REFERENCIA_PROVEEDOR'
|
||||
TableField = 'REFERENCIA_PROVEEDOR'
|
||||
end>
|
||||
end>
|
||||
Name = 'Informe_Detalles'
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'ID_PEDIDO'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'POSICION'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'TIPO_DETALLE'
|
||||
DataType = datString
|
||||
Size = 10
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'CONCEPTO'
|
||||
DataType = datString
|
||||
Size = 2000
|
||||
end
|
||||
item
|
||||
Name = 'CANTIDAD'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_UNIDAD'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'FAMILIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA_PROVEEDOR'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end>
|
||||
end>
|
||||
JoinDataTables = <>
|
||||
UnionDataTables = <>
|
||||
Commands = <>
|
||||
RelationShips = <>
|
||||
UpdateRules = <>
|
||||
Version = 0
|
||||
Left = 48
|
||||
Top = 16
|
||||
end
|
||||
object DataDictionary: TDADataDictionary
|
||||
Fields = <>
|
||||
Left = 46
|
||||
Top = 142
|
||||
end
|
||||
object frxReport: 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, pbExportQuick]
|
||||
PreviewOptions.Zoom = 1.000000000000000000
|
||||
PrintOptions.Printer = 'Por defecto'
|
||||
ReportOptions.CreateDate = 39065.872423495400000000
|
||||
ReportOptions.LastChange = 39255.590290254630000000
|
||||
ScriptLanguage = 'PascalScript'
|
||||
ScriptText.Strings = (
|
||||
''
|
||||
'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);'
|
||||
'var'
|
||||
' Cadena: String;'
|
||||
'begin'
|
||||
' DatosEmpresa.Lines.Clear;'
|
||||
' if (<frxDBCabecera."TELEFONO_1_EMPRESA"> <> '#39#39') then'
|
||||
' Cadena := '#39'TLF: '#39' + <frxDBCabecera."TELEFONO_1_EMPRESA">;'
|
||||
' if (<frxDBCabecera."FAX_EMPRESA"> <> '#39#39') then'
|
||||
|
||||
' Cadena := Cadena + '#39' FAX: '#39' + <frxDBCabecera."FAX_EMPRESA' +
|
||||
'">;'
|
||||
' DatosEmpresa.Lines.Add(Cadena);'
|
||||
'end;'
|
||||
''
|
||||
'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);'
|
||||
'begin'
|
||||
' NombreEmpresa.Lines.Clear;'
|
||||
' NombreEmpresa.Lines.Add(<frxDBCabecera."NOMBRE_EMPRESA">);'
|
||||
'end;'
|
||||
''
|
||||
'procedure DireccionEnvioOnBeforePrint(Sender: TfrxComponent);'
|
||||
'var'
|
||||
' ACadena : String;'
|
||||
'begin'
|
||||
' ACadena := '#39#39';'
|
||||
' DireccionEnvio.Lines.Clear;'
|
||||
' if (<frxDBCabecera."REFERENCIA_CLIENTE"> <> '#39#39') then'
|
||||
' ACadena := <frxDBCabecera."REFERENCIA_CLIENTE">;'
|
||||
''
|
||||
' if (<frxDBCabecera."PERSONA_CONTACTO"> <> '#39#39') then'
|
||||
|
||||
' ACadena := ACadena + '#39' '#39' + <frxDBCabecera."PERSONA_CONTACT' +
|
||||
'O">;'
|
||||
''
|
||||
' DireccionEnvio.Lines.Add(ACadena);'
|
||||
' ACadena := '#39#39';'
|
||||
' DireccionEnvio.Lines.Add(<frxDBCabecera."CALLE">);'
|
||||
' if (<frxDBCabecera."CODIGO_POSTAL"> <> '#39#39') then'
|
||||
' ACadena := <frxDBCabecera."CODIGO_POSTAL"> + '#39' '#39';'
|
||||
' if (<frxDBCabecera."POBLACION"> <> '#39#39') then'
|
||||
' ACadena := ACadena + <frxDBCabecera."CODIGO_POSTAL">;'
|
||||
''
|
||||
' if (ACadena <> '#39#39') then'
|
||||
' DireccionEnvio.Lines.Add(ACadena);'
|
||||
''
|
||||
' if (<frxDBCabecera."PROVINCIA"> <> '#39#39') then'
|
||||
' DireccionEnvio.Lines.Add(<frxDBCabecera."PROVINCIA">);'
|
||||
''
|
||||
' if (<frxDBCabecera."TELEFONO"> <> '#39#39') then'
|
||||
' DireccionEnvio.Lines.Add(<frxDBCabecera."TELEFONO">);'
|
||||
'end;'
|
||||
''
|
||||
'begin'
|
||||
''
|
||||
'end.')
|
||||
ShowProgress = False
|
||||
StoreInDFM = False
|
||||
Left = 169
|
||||
Top = 16
|
||||
Datasets = <
|
||||
item
|
||||
DataSet = frxDBCabecera
|
||||
DataSetName = 'frxDBCabecera'
|
||||
end
|
||||
item
|
||||
DataSet = frxDBDetalles
|
||||
DataSetName = 'frxDBDetalles'
|
||||
end>
|
||||
Variables = <>
|
||||
Style = <>
|
||||
end
|
||||
object frxDBCabecera: TfrxDBDataset
|
||||
UserName = 'frxDBCabecera'
|
||||
CloseDataSource = False
|
||||
DataSource = DADataCabecera
|
||||
Left = 264
|
||||
Top = 16
|
||||
end
|
||||
object frxDBDetalles: TfrxDBDataset
|
||||
UserName = 'frxDBDetalles'
|
||||
CloseDataSource = False
|
||||
DataSource = DADataDetalles
|
||||
Left = 344
|
||||
Top = 16
|
||||
end
|
||||
object Bin2DataStreamer: TDABin2DataStreamer
|
||||
Left = 48
|
||||
Top = 80
|
||||
end
|
||||
object tbl_Cabecera: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <>
|
||||
Params = <>
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
IndexDefs = <>
|
||||
Left = 264
|
||||
Top = 128
|
||||
end
|
||||
object tbl_Detalles: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <>
|
||||
Params = <>
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
IndexDefs = <>
|
||||
Left = 344
|
||||
Top = 128
|
||||
end
|
||||
end
|
||||
@ -1,118 +0,0 @@
|
||||
unit uRptPedidosCliente_Server;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
|
||||
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
||||
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
||||
uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer;
|
||||
|
||||
type
|
||||
TRptPresupuestosCliente = class(TDataModule)
|
||||
DADataCabecera: TDADataSource;
|
||||
DADataDetalles: TDADataSource;
|
||||
frxRichObject1: TfrxRichObject;
|
||||
frxBarCodeObject1: TfrxBarCodeObject;
|
||||
frxOLEObject1: TfrxOLEObject;
|
||||
frxCrossObject1: TfrxCrossObject;
|
||||
frxCheckBoxObject1: TfrxCheckBoxObject;
|
||||
frxGradientObject1: TfrxGradientObject;
|
||||
frxChartObject1: TfrxChartObject;
|
||||
frxDBCabecera: TfrxDBDataset;
|
||||
frxDBDetalles: TfrxDBDataset;
|
||||
schReport: TDASchema;
|
||||
DataDictionary: TDADataDictionary;
|
||||
frxReport: TfrxReport;
|
||||
Bin2DataStreamer: TDABin2DataStreamer;
|
||||
tbl_Cabecera: TDAMemDataTable;
|
||||
tbl_Detalles: TDAMemDataTable;
|
||||
procedure DataModuleCreate(Sender: TObject);
|
||||
private
|
||||
FConnection: IDAConnection;
|
||||
procedure GenerarPedido(const AID : Integer); overload;
|
||||
public
|
||||
function GenerarPedido(const AID : String): Binary; overload;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
uDataModuleServer, schPedidosClienteClient_Intf;
|
||||
|
||||
const
|
||||
rptInforme = 'InfPedidoCliente.fr3';
|
||||
|
||||
{ Dataset names for schReport }
|
||||
ds_InformeCabecera = 'Informe_Cabecera';
|
||||
ds_InformeDetalles = 'Informe_Detalles';
|
||||
|
||||
|
||||
{ TRptPedidosProveedor }
|
||||
|
||||
|
||||
procedure TRptPresupuestosCliente.DataModuleCreate(Sender: TObject);
|
||||
begin
|
||||
schReport.ConnectionManager := dmServer.ConnectionManager;
|
||||
FConnection := dmServer.DarNuevaConexion;
|
||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||
end;
|
||||
|
||||
function TRptPresupuestosCliente.GenerarPedido(const AID: String): Binary;
|
||||
var
|
||||
ID_Pedidos: TStringList;
|
||||
i: Integer;
|
||||
|
||||
begin
|
||||
Result := Binary.Create;
|
||||
FConnection.BeginTransaction;
|
||||
|
||||
try
|
||||
ID_Pedidos := TStringList.Create;
|
||||
ID_Pedidos.CommaText := AID;
|
||||
|
||||
//Vamos generando todos y cada uno de los albaranes recibidos
|
||||
for i := 0 to ID_Pedidos.Count - 1 do
|
||||
GenerarPedido(StrToInt(ID_Pedidos.Strings[i]));
|
||||
|
||||
frxReport.PreviewPages.SaveToStream(Result);
|
||||
|
||||
finally
|
||||
FConnection.RollbackTransaction;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRptPresupuestosCliente.GenerarPedido(const AID: Integer);
|
||||
var
|
||||
AStream: TMemoryStream;
|
||||
dsMaster: IDADataset;
|
||||
dsDetail: IDADataset;
|
||||
begin
|
||||
AStream := TMemoryStream.Create;
|
||||
|
||||
try
|
||||
dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]);
|
||||
dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID_PEDIDO'], [AID], False);
|
||||
|
||||
AStream.Clear;
|
||||
DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
|
||||
DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE);
|
||||
|
||||
AStream.Clear;
|
||||
DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
|
||||
DABINAdapter.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE);
|
||||
|
||||
frxReport.LoadFromFile(DarRutaInformes + rptInforme, True);
|
||||
frxReport.PrepareReport(False);
|
||||
|
||||
finally
|
||||
AStream.Free;
|
||||
dsMaster := Nil;
|
||||
dsDetail := Nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
@ -80,9 +80,9 @@ type
|
||||
procedure DataModuleCreate(Sender: TObject);
|
||||
private
|
||||
FConnection: IDAConnection;
|
||||
procedure GenerarPresupuesto(const AID : Integer); overload;
|
||||
procedure _GenerarPresupuesto(const AID : Integer);
|
||||
public
|
||||
function GenerarPresupuesto(const AID : String): Binary; overload;
|
||||
function GenerarPresupuesto(const ListaID : String): Binary; overload;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -95,10 +95,6 @@ uses
|
||||
const
|
||||
rptInforme = 'InfPresupuestoCliente.fr3';
|
||||
|
||||
{ Dataset names for schReport }
|
||||
ds_InformeCabecera = 'Informe_Cabecera';
|
||||
ds_InformeCapitulos = 'Informe_Capitulos';
|
||||
|
||||
|
||||
{ TRptPresupuestosProveedor }
|
||||
|
||||
@ -110,7 +106,7 @@ begin
|
||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||
end;
|
||||
|
||||
function TRptPresupuestosCliente.GenerarPresupuesto(const AID: String): Binary;
|
||||
function TRptPresupuestosCliente.GenerarPresupuesto(const ListaID: String): Binary;
|
||||
var
|
||||
ID_Presupuestos: TStringList;
|
||||
i: Integer;
|
||||
@ -121,11 +117,11 @@ begin
|
||||
|
||||
try
|
||||
ID_Presupuestos := TStringList.Create;
|
||||
ID_Presupuestos.CommaText := AID;
|
||||
ID_Presupuestos.CommaText := ListaID;
|
||||
|
||||
//Vamos generando todos y cada uno de los presupuestos recibidos
|
||||
for i := 0 to ID_Presupuestos.Count - 1 do
|
||||
GenerarPresupuesto(StrToInt(ID_Presupuestos.Strings[i]));
|
||||
_GenerarPresupuesto(StrToInt(ID_Presupuestos.Strings[i]));
|
||||
|
||||
frxReport.PreviewPages.SaveToStream(Result);
|
||||
|
||||
@ -134,42 +130,8 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRptPresupuestosCliente.GenerarPresupuesto(const AID: Integer);
|
||||
var
|
||||
AStream: TMemoryStream;
|
||||
dsCabecera: IDADataset;
|
||||
dsCapitulos: IDADataset;
|
||||
I: Integer;
|
||||
procedure TRptPresupuestosCliente._GenerarPresupuesto(const AID: Integer);
|
||||
begin
|
||||
//AStream := TMemoryStream.Create;
|
||||
|
||||
try
|
||||
{ dsCabecera := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]);
|
||||
dsCapitulos := schReport.NewDataset(FConnection, ds_InformeCapitulos, ['ID_PRESUPUESTO'], [AID], False);
|
||||
|
||||
AStream.Clear;
|
||||
DABin2DataStreamer1.WriteDataset(AStream, dsCabecera, [woRows, woSchema]);
|
||||
DABin2DataStreamer1.ReadDataset(AStream, DAMemDataTable1, True, ds_InformeCabecera, True, True);
|
||||
AStream.Clear;
|
||||
DABin2DataStreamer1.WriteDataset(AStream, dsCapitulos, [woRows, woSchema]);
|
||||
DABin2DataStreamer1.ReadDataset(AStream, DAMemDataTable2, True, ds_InformeCapitulos, True, True);
|
||||
|
||||
|
||||
DADSCabecera.DataTable := DAMemDataTable1;
|
||||
frxDBCabecera.DataSource := DADSCabecera;
|
||||
|
||||
DADSCapitulos.DataTable := DAMemDataTable2;
|
||||
frxDBCapitulos.DataSource := DADSCapitulos;}
|
||||
|
||||
{ DAMemDataTable1.Active := True;
|
||||
|
||||
for I := 0 to DAMemDataTable1.RecordCount - 1 do
|
||||
ShowMessage(DAMemDataTable1.Fields[2].AsString);}
|
||||
|
||||
{ AStream.Clear;
|
||||
Bin2DataStreamer.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
|
||||
Bin2DataStreamer.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE);}
|
||||
|
||||
frxDBCabecera.DataSource := DADSCabecera;
|
||||
frxDBCapitulos.DataSource := DADSCapitulos;
|
||||
frxDBDetalles.DataSource := DADSDetalles;
|
||||
@ -187,11 +149,6 @@ begin
|
||||
|
||||
frxReport.LoadFromFile(DarRutaInformes + rptInforme, True);
|
||||
frxReport.PrepareReport(False);
|
||||
finally
|
||||
//AStream.Free;
|
||||
dsCabecera := Nil;
|
||||
dsCapitulos := Nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
@ -0,0 +1,646 @@
|
||||
object RptWordPresupuestosCliente: TRptWordPresupuestosCliente
|
||||
OldCreateOrder = False
|
||||
OnCreate = DataModuleCreate
|
||||
Height = 262
|
||||
Width = 374
|
||||
object schReport: TDASchema
|
||||
ConnectionManager = dmServer.ConnectionManager
|
||||
DataDictionary = DataDictionary
|
||||
Datasets = <
|
||||
item
|
||||
Params = <
|
||||
item
|
||||
Name = 'ID'
|
||||
Value = '31'
|
||||
ParamType = daptInput
|
||||
end>
|
||||
Statements = <
|
||||
item
|
||||
Connection = 'IBX'
|
||||
SQL =
|
||||
'SELECT'#10' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_' +
|
||||
'EMPRESA,'#10' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,'#10' V_PRE' +
|
||||
'SUPUESTOS_CLIENTE.REFERENCIA,'#10' V_PRESUPUESTOS_CLIENTE.PORTADA' +
|
||||
','#10' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS_CLIENTE.OBS' +
|
||||
'ERVACIONES,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO, V_PRESUPUES' +
|
||||
'TOS_CLIENTE.IMPORTE_PORTE,'#10' V_PRESUPUESTOS_CLIENTE.DESCUENTO,' +
|
||||
' V_PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO,'#10' V_PRESUPUESTOS_CL' +
|
||||
'IENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENTE.IVA,'#10' V_PRESUPUE' +
|
||||
'STOS_CLIENTE.ID_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.REFERENCIA_C' +
|
||||
'LIENTE,'#10' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,'#10' V_CLIENTES' +
|
||||
'.NIF_CIF, V_CLIENTES.NOMBRE,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_' +
|
||||
'IVA, V_PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL,'#10' V_CLIENTES.PERSON' +
|
||||
'A_CONTACTO, V_CLIENTES.CALLE, V_CLIENTES.POBLACION,'#10' V_CLIENT' +
|
||||
'ES.PROVINCIA, V_CLIENTES.CODIGO_POSTAL'#10'FROM'#10' V_PRESUPUESTOS_C' +
|
||||
'LIENTE INNER JOIN V_CLIENTES ON'#10' (V_PRESUPUESTOS_CLIENTE.' +
|
||||
'ID_CLIENTE = V_CLIENTES.ID)'#10' WHERE V_PRESUPUESTOS_CLIENTE.ID = ' +
|
||||
':ID'#10
|
||||
StatementType = stSQL
|
||||
ColumnMappings = <
|
||||
item
|
||||
DatasetField = 'ID'
|
||||
TableField = 'ID'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID_EMPRESA'
|
||||
TableField = 'ID_EMPRESA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'FECHA_PRESUPUESTO'
|
||||
TableField = 'FECHA_PRESUPUESTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'REFERENCIA'
|
||||
TableField = 'REFERENCIA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'PORTADA'
|
||||
TableField = 'PORTADA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'MEMORIA'
|
||||
TableField = 'MEMORIA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'OBSERVACIONES'
|
||||
TableField = 'OBSERVACIONES'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_NETO'
|
||||
TableField = 'IMPORTE_NETO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_PORTE'
|
||||
TableField = 'IMPORTE_PORTE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'DESCUENTO'
|
||||
TableField = 'DESCUENTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_DESCUENTO'
|
||||
TableField = 'IMPORTE_DESCUENTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'BASE_IMPONIBLE'
|
||||
TableField = 'BASE_IMPONIBLE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IVA'
|
||||
TableField = 'IVA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID_CLIENTE'
|
||||
TableField = 'ID_CLIENTE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'REFERENCIA_CLIENTE'
|
||||
TableField = 'REFERENCIA_CLIENTE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'CLIENTE_FINAL'
|
||||
TableField = 'CLIENTE_FINAL'
|
||||
end
|
||||
item
|
||||
DatasetField = 'NIF_CIF'
|
||||
TableField = 'NIF_CIF'
|
||||
end
|
||||
item
|
||||
DatasetField = 'NOMBRE'
|
||||
TableField = 'NOMBRE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_IVA'
|
||||
TableField = 'IMPORTE_IVA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_TOTAL'
|
||||
TableField = 'IMPORTE_TOTAL'
|
||||
end
|
||||
item
|
||||
DatasetField = 'PERSONA_CONTACTO'
|
||||
TableField = 'PERSONA_CONTACTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'CALLE'
|
||||
TableField = 'CALLE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'POBLACION'
|
||||
TableField = 'POBLACION'
|
||||
end
|
||||
item
|
||||
DatasetField = 'PROVINCIA'
|
||||
TableField = 'PROVINCIA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'CODIGO_POSTAL'
|
||||
TableField = 'CODIGO_POSTAL'
|
||||
end>
|
||||
end>
|
||||
Name = 'Informe_Cabecera'
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datInteger
|
||||
Required = True
|
||||
InPrimaryKey = True
|
||||
end
|
||||
item
|
||||
Name = 'ID_EMPRESA'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_PRESUPUESTO'
|
||||
DataType = datDateTime
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'PORTADA'
|
||||
DataType = datMemo
|
||||
end
|
||||
item
|
||||
Name = 'MEMORIA'
|
||||
DataType = datMemo
|
||||
end
|
||||
item
|
||||
Name = 'OBSERVACIONES'
|
||||
DataType = datMemo
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_NETO'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_PORTE'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'DESCUENTO'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_DESCUENTO'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'BASE_IMPONIBLE'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IVA'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'ID_CLIENTE'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA_CLIENTE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'CLIENTE_FINAL'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'NIF_CIF'
|
||||
DataType = datString
|
||||
Size = 15
|
||||
end
|
||||
item
|
||||
Name = 'NOMBRE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_IVA'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'PERSONA_CONTACTO'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'CALLE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'POBLACION'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'PROVINCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'CODIGO_POSTAL'
|
||||
DataType = datString
|
||||
Size = 10
|
||||
end>
|
||||
ReadOnly = True
|
||||
end
|
||||
item
|
||||
Params = <
|
||||
item
|
||||
Name = 'ID_PRESUPUESTO'
|
||||
Value = '2'
|
||||
ParamType = daptInput
|
||||
end>
|
||||
Statements = <
|
||||
item
|
||||
Connection = 'IBX'
|
||||
ConnectionType = 'Interbase'
|
||||
Default = True
|
||||
SQL =
|
||||
'SELECT '#10' ID, ID_PRESUPUESTO, POSICION, TIPO_DETALLE, ID_ARTIC' +
|
||||
'ULO, '#10' F_RTFTOTEXT(F_RTFTOTEXT(CONCEPTO)) as CONCEPTO, CONCEP' +
|
||||
'TO as CONCEPTO_RTF, CANTIDAD,'#10' IMPORTE_UNIDAD, DESCUENTO, IMP' +
|
||||
'ORTE_PORTE,'#10' IMPORTE_TOTAL, VISIBLE, FECHA_ALTA, FECHA_MODIFI' +
|
||||
'CACION'#10' FROM'#10' PRESUPUESTOS_CLIENTE_DETALLES'#10' WHERE {Where}'#10 +
|
||||
' AND (VISIBLE) <> 0'#10' AND (ID_PRESUPUESTO = :ID_PRESUPUESTO' +
|
||||
')'#10' ORDER BY ID_PRESUPUESTO, POSICION'#10
|
||||
StatementType = stSQL
|
||||
ColumnMappings = <
|
||||
item
|
||||
DatasetField = 'ID'
|
||||
TableField = 'ID'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID_PRESUPUESTO'
|
||||
TableField = 'ID_PRESUPUESTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'POSICION'
|
||||
TableField = 'POSICION'
|
||||
end
|
||||
item
|
||||
DatasetField = 'TIPO_DETALLE'
|
||||
TableField = 'TIPO_DETALLE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'CONCEPTO'
|
||||
TableField = 'CONCEPTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_TOTAL'
|
||||
TableField = 'IMPORTE_TOTAL'
|
||||
end
|
||||
item
|
||||
DatasetField = 'VISIBLE'
|
||||
TableField = 'VISIBLE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'ID_ARTICULO'
|
||||
TableField = 'ID_ARTICULO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'CANTIDAD'
|
||||
TableField = 'CANTIDAD'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_UNIDAD'
|
||||
TableField = 'IMPORTE_UNIDAD'
|
||||
end
|
||||
item
|
||||
DatasetField = 'DESCUENTO'
|
||||
TableField = 'DESCUENTO'
|
||||
end
|
||||
item
|
||||
DatasetField = 'IMPORTE_PORTE'
|
||||
TableField = 'IMPORTE_PORTE'
|
||||
end
|
||||
item
|
||||
DatasetField = 'FECHA_ALTA'
|
||||
TableField = 'FECHA_ALTA'
|
||||
end
|
||||
item
|
||||
DatasetField = 'FECHA_MODIFICACION'
|
||||
TableField = 'FECHA_MODIFICACION'
|
||||
end
|
||||
item
|
||||
DatasetField = 'CONCEPTO_RTF'
|
||||
TableField = 'CONCEPTO_RTF'
|
||||
end>
|
||||
end>
|
||||
Name = 'Informe_Detalles'
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datInteger
|
||||
InPrimaryKey = True
|
||||
end
|
||||
item
|
||||
Name = 'ID_PRESUPUESTO'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'POSICION'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'TIPO_DETALLE'
|
||||
DataType = datString
|
||||
Size = 10
|
||||
end
|
||||
item
|
||||
Name = 'ID_ARTICULO'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'CONCEPTO'
|
||||
DataType = datString
|
||||
Size = 2000
|
||||
end
|
||||
item
|
||||
Name = 'CONCEPTO_RTF'
|
||||
DataType = datString
|
||||
Size = 2000
|
||||
end
|
||||
item
|
||||
Name = 'CANTIDAD'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_UNIDAD'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'DESCUENTO'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_PORTE'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'VISIBLE'
|
||||
DataType = datSmallInt
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_ALTA'
|
||||
DataType = datDateTime
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_MODIFICACION'
|
||||
DataType = datDateTime
|
||||
end>
|
||||
ReadOnly = True
|
||||
end>
|
||||
JoinDataTables = <>
|
||||
UnionDataTables = <>
|
||||
Commands = <>
|
||||
RelationShips = <>
|
||||
UpdateRules = <>
|
||||
Version = 0
|
||||
Left = 48
|
||||
Top = 16
|
||||
end
|
||||
object DataDictionary: TDADataDictionary
|
||||
Fields = <>
|
||||
Left = 46
|
||||
Top = 142
|
||||
end
|
||||
object DABin2DataStreamer: TDABin2DataStreamer
|
||||
Left = 48
|
||||
Top = 80
|
||||
end
|
||||
object tbl_Cabecera: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datInteger
|
||||
Required = True
|
||||
InPrimaryKey = True
|
||||
end
|
||||
item
|
||||
Name = 'ID_EMPRESA'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_PRESUPUESTO'
|
||||
DataType = datDateTime
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'PORTADA'
|
||||
DataType = datMemo
|
||||
end
|
||||
item
|
||||
Name = 'MEMORIA'
|
||||
DataType = datMemo
|
||||
end
|
||||
item
|
||||
Name = 'OBSERVACIONES'
|
||||
DataType = datMemo
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_NETO'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_PORTE'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'DESCUENTO'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_DESCUENTO'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'BASE_IMPONIBLE'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IVA'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'ID_CLIENTE'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA_CLIENTE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'CLIENTE_FINAL'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'NIF_CIF'
|
||||
DataType = datString
|
||||
Size = 15
|
||||
end
|
||||
item
|
||||
Name = 'NOMBRE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_IVA'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'PERSONA_CONTACTO'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'CALLE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'POBLACION'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'PROVINCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
end
|
||||
item
|
||||
Name = 'CODIGO_POSTAL'
|
||||
DataType = datString
|
||||
Size = 10
|
||||
end>
|
||||
Params = <
|
||||
item
|
||||
Name = 'ID'
|
||||
Value = '31'
|
||||
ParamType = daptInput
|
||||
end>
|
||||
LogChanges = False
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteFetchEnabled = False
|
||||
LocalSchema = schReport
|
||||
LocalDataStreamer = DABin2DataStreamer
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
LogicalName = 'Informe_Cabecera'
|
||||
IndexDefs = <>
|
||||
Left = 168
|
||||
Top = 16
|
||||
end
|
||||
object tbl_Detalles: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datInteger
|
||||
InPrimaryKey = True
|
||||
end
|
||||
item
|
||||
Name = 'ID_PRESUPUESTO'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'POSICION'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'TIPO_DETALLE'
|
||||
DataType = datString
|
||||
Size = 10
|
||||
end
|
||||
item
|
||||
Name = 'ID_ARTICULO'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'CONCEPTO'
|
||||
DataType = datString
|
||||
Size = 2000
|
||||
end
|
||||
item
|
||||
Name = 'CONCEPTO_RTF'
|
||||
DataType = datString
|
||||
Size = 254
|
||||
end
|
||||
item
|
||||
Name = 'CANTIDAD'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_UNIDAD'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'DESCUENTO'
|
||||
DataType = datFloat
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_PORTE'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datCurrency
|
||||
end
|
||||
item
|
||||
Name = 'VISIBLE'
|
||||
DataType = datSmallInt
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_ALTA'
|
||||
DataType = datDateTime
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_MODIFICACION'
|
||||
DataType = datDateTime
|
||||
end>
|
||||
Params = <
|
||||
item
|
||||
Name = 'ID_PRESUPUESTO'
|
||||
Value = '2'
|
||||
ParamType = daptInput
|
||||
end>
|
||||
MasterParamsMappings.Strings = (
|
||||
'ID_PRESUPUESTO=ID_PRESUPUESTO')
|
||||
LogChanges = False
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteFetchEnabled = False
|
||||
LocalSchema = schReport
|
||||
LocalDataStreamer = DABin2DataStreamer
|
||||
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
|
||||
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
|
||||
LogicalName = 'Informe_Detalles'
|
||||
IndexDefs = <>
|
||||
Left = 264
|
||||
Top = 16
|
||||
end
|
||||
end
|
||||
@ -0,0 +1,634 @@
|
||||
unit uRptWordPresupuestoCliente;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils, Classes, AHWord97, IB, IBCustomDataSet, IBDatabase,
|
||||
Word2000,
|
||||
uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAClasses,
|
||||
uDAScriptingProvider, uDADataTable, uDAMemDataTable;
|
||||
|
||||
type
|
||||
TCapitulo = record
|
||||
Tipo : string;
|
||||
Nombre : string;
|
||||
Total : double;
|
||||
end;
|
||||
|
||||
TRptWordPresupuestosCliente = class(TDataModule)
|
||||
DABin2DataStreamer: TDABin2DataStreamer;
|
||||
tbl_Cabecera: TDAMemDataTable;
|
||||
tbl_Detalles: TDAMemDataTable;
|
||||
schReport: TDASchema;
|
||||
DataDictionary: TDADataDictionary;
|
||||
procedure DataModuleCreate(Sender: TObject);
|
||||
private
|
||||
FConnection: IDAConnection;
|
||||
FImportes : Boolean;
|
||||
FDesBonificacion : Variant;
|
||||
FImpBonificacion : Double;
|
||||
FPlantilla : string;
|
||||
FWordApp : TWordApp;
|
||||
FDocumento : TWordDoc;
|
||||
FNumCapitulos : Integer;
|
||||
FNumCapOpc : Integer;
|
||||
FContadorCap : Integer;
|
||||
FCodigoPresupuesto : string;
|
||||
FNombreFichero : String;
|
||||
ListaCapitulos : array[1..1000] of TCapitulo;
|
||||
procedure InsertarConceptos(Tabla : Table);
|
||||
function Generar : Boolean;
|
||||
function RellenarPortada : boolean; virtual;
|
||||
function RellenarCabecera : boolean; virtual;
|
||||
function RellenarInforme : boolean; virtual;
|
||||
function RellenarResumen : boolean; virtual;
|
||||
procedure _GenerarPresupuesto(const AID : String);
|
||||
public
|
||||
constructor Create (AOwner : TComponent); override;
|
||||
destructor Destroy; override;
|
||||
function Exportar(Codigo, Fichero : String): Boolean;
|
||||
end;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
Windows, Variants, Dialogs, uDataModuleServer, Literales;
|
||||
|
||||
const
|
||||
rptInforme = 'Presupuesto.rdx';
|
||||
DISPLAY_EUROS2 = '#,0.00 €';
|
||||
|
||||
type
|
||||
TCharSet = set of Char;
|
||||
|
||||
procedure VerMensaje(const A : String);
|
||||
begin
|
||||
ShowMessage(A);
|
||||
end;
|
||||
|
||||
function DarRutaTemporal: String;
|
||||
var
|
||||
nBufferLength : DWORD; // size, in characters, of the buffer
|
||||
lpBuffer : PChar; // address of buffer for temp. path
|
||||
begin
|
||||
nBufferLength := MAX_PATH + 1; // initialize
|
||||
GetMem( lpBuffer, nBufferLength );
|
||||
try
|
||||
if GetTempPath( nBufferLength, lpBuffer ) <> 0 then
|
||||
Result := StrPas( lpBuffer )
|
||||
else
|
||||
Result := '';
|
||||
finally
|
||||
FreeMem( lpBuffer );
|
||||
end;
|
||||
end;
|
||||
|
||||
function DarFicheroTemporal : String;
|
||||
var
|
||||
Buf: array [0..MAX_PATH] of Char;
|
||||
RutaTmp : string;
|
||||
begin
|
||||
RutaTmp := DarRutaTemporal;
|
||||
if GetTempFileName(PChar(RutaTmp), 'tmp', 0, Buf) <> 0 then
|
||||
SetString(Result, Buf, StrLen(Buf))
|
||||
else
|
||||
Result := '';
|
||||
end;
|
||||
|
||||
function DarFicheroBMPTemporal : String;
|
||||
var
|
||||
Cadena : String;
|
||||
begin
|
||||
Cadena := DarFicheroTemporal;
|
||||
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp';
|
||||
end;
|
||||
|
||||
function DarFicheroExportar (var Fichero : String) : Boolean;
|
||||
var
|
||||
DialogoSalvar : TSaveDialog;
|
||||
begin
|
||||
Result := False;
|
||||
DialogoSalvar := TSaveDialog.Create(NIL);
|
||||
try
|
||||
with DialogoSalvar do
|
||||
begin
|
||||
DefaultExt := 'doc';
|
||||
Filter := 'Documento de Word (*.doc)|*.doc';
|
||||
FilterIndex := 0;
|
||||
Options := [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofEnableSizing];
|
||||
end;
|
||||
Result := DialogoSalvar.Execute;
|
||||
if Result then
|
||||
Fichero := DialogoSalvar.FileName;
|
||||
finally
|
||||
DialogoSalvar.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure EscribirEnFichero (NombreFichero, Texto : string);
|
||||
var
|
||||
FicheroAux : TextFile;
|
||||
begin
|
||||
SysUtils.DeleteFile(NombreFichero);
|
||||
AssignFile(FicheroAux, NombreFichero);
|
||||
Rewrite(FicheroAux);
|
||||
WriteLn(FicheroAux, Texto);
|
||||
CloseFile(FicheroAux);
|
||||
end;
|
||||
|
||||
|
||||
function EsCadenaVacia(const S: AnsiString): Boolean; overload;
|
||||
begin
|
||||
Result := (Length(Trim(S)) = 0)
|
||||
end;
|
||||
|
||||
function EsCadenaVacia(const S: Variant): Boolean; overload;
|
||||
begin
|
||||
Result := True;
|
||||
if VarIsNull(S) then
|
||||
Exit;
|
||||
Result := EsCadenaVacia(VarToStr(S));
|
||||
end;
|
||||
|
||||
function EsCadenaVacia(const S: AnsiString; const EmptyChars: TCharSet): Boolean; overload;
|
||||
var
|
||||
I, SLen: Integer;
|
||||
begin
|
||||
SLen := Length(S);
|
||||
I := 1;
|
||||
while I <= SLen do begin
|
||||
if not (S[I] in EmptyChars) then begin
|
||||
Result := False;
|
||||
Exit;
|
||||
end
|
||||
else Inc(I);
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
|
||||
constructor TRptWordPresupuestosCliente.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
FDocumento := NIL;
|
||||
FImportes := True;
|
||||
FNumCapitulos := 0;
|
||||
|
||||
FPlantilla := DarRutaInformes + rptInforme;
|
||||
end;
|
||||
|
||||
procedure TRptWordPresupuestosCliente.DataModuleCreate(Sender: TObject);
|
||||
begin
|
||||
schReport.ConnectionManager := dmServer.ConnectionManager;
|
||||
FConnection := dmServer.DarNuevaConexion;
|
||||
end;
|
||||
|
||||
destructor TRptWordPresupuestosCliente.Destroy;
|
||||
begin
|
||||
if FDocumento <> NIL then
|
||||
FDocumento.Free;
|
||||
FDocumento := NIL;
|
||||
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TRptWordPresupuestosCliente.Exportar(Codigo, Fichero: String): Boolean;
|
||||
begin
|
||||
if EsCadenaVacia(Fichero) then
|
||||
begin
|
||||
Result := False;
|
||||
raise Exception.Create(msgInfFaltaFicheroListado);
|
||||
end;
|
||||
|
||||
FNombreFichero := Fichero;
|
||||
FCodigoPresupuesto := Codigo;
|
||||
_GenerarPresupuesto(Codigo);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TRptWordPresupuestosCliente.Generar : Boolean;
|
||||
var
|
||||
Aux : OleVariant;
|
||||
begin
|
||||
FWordApp := TWordApp.Create (False, False);
|
||||
with FWordApp do
|
||||
begin
|
||||
Visible := False;
|
||||
ScreenUpdating := False;
|
||||
end;
|
||||
|
||||
FDocumento := TWordDoc.CreateNewDoc(FWordApp, FPlantilla);
|
||||
FWordApp.ScreenUpdating := False;
|
||||
try
|
||||
if not RellenarPortada then
|
||||
begin
|
||||
VerMensaje(msgInfFalloRellenarPortada);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
if not RellenarCabecera then
|
||||
begin
|
||||
VerMensaje(msgInfFalloRellenarCabecera);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
if not RellenarInforme then
|
||||
begin
|
||||
VerMensaje(msgInfFalloRellenarInforme);
|
||||
Exit;
|
||||
end;
|
||||
|
||||
if (FNumCapitulos <> 0) and (FNumCapOpc < FNumCapitulos) then
|
||||
begin
|
||||
if not RellenarResumen then
|
||||
begin
|
||||
VerMensaje(msgInfFalloRellenarResumen);
|
||||
Exit;
|
||||
end;
|
||||
end
|
||||
else begin
|
||||
FDocumento.Document.Tables.Item(FDocumento.Document.Tables.Count-1).Delete;
|
||||
end;
|
||||
|
||||
FDocumento.SaveAs(FNombreFichero);
|
||||
FWordApp.CloseApp(wdDoNotSaveChanges);
|
||||
Result := True;
|
||||
finally
|
||||
FDocumento := NIL;
|
||||
FWordApp := NIL;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TRptWordPresupuestosCliente.InsertarConceptos(Tabla : Table);
|
||||
var
|
||||
numRows, numCols, mergeSplit, shiftCells : OleVariant;
|
||||
iContador : Integer;
|
||||
TotalConceptos : Double;
|
||||
begin
|
||||
numRows := 2;
|
||||
numCols := 1;
|
||||
mergeSplit := False;
|
||||
shiftCells := False;
|
||||
iContador := 2; // Empezar en la 2ª fila de celdas. La primera es la
|
||||
// cabecera de la tabla.
|
||||
|
||||
with Tabla, tbl_Detalles do
|
||||
begin
|
||||
while not EOF do
|
||||
begin
|
||||
if FieldByName('TIPO_DETALLE').AsString <> 'Concepto' then
|
||||
Break;
|
||||
// Partir la celda actual en 2 filas de 1 columna.
|
||||
Rows.Item(iContador).Cells.Split (numRows, numCols, mergesplit);
|
||||
Cell(iContador, 1).Range.Text := FieldByName('CONCEPTO').AsString;
|
||||
Cell(iContador, 2).Range.Text := FieldByName('CANTIDAD').AsString; {------- PENDIENTE + ' ' +
|
||||
FieldByName('UNIDADESMEDIDA').AsString; ------}
|
||||
if FImportes then
|
||||
Cell(iContador, 3).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_UNIDAD').AsFloat)
|
||||
else
|
||||
Cell(iContador, 3).Range.Text := '';
|
||||
|
||||
if FImportes then
|
||||
Cell(iContador, 4).Range.Text := FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat)
|
||||
else
|
||||
Cell(iContador, 4).Range.Text := '';
|
||||
|
||||
TotalConceptos := TotalConceptos + FieldByName('IMPORTE_TOTAL').AsFloat;
|
||||
Next;
|
||||
Inc (iContador);
|
||||
end;
|
||||
ListaCapitulos[FContadorCap].Total := TotalConceptos;
|
||||
// Borrar la fila vacía que sobra
|
||||
Rows.Item(iContador).Cells.Delete(shiftCells);
|
||||
if FImportes
|
||||
then Cell(iContador, 1).Range.Text := 'Total: ' + FormatFloat(DISPLAY_EUROS2, TotalConceptos)
|
||||
else Cell(iContador, 1).Range.Text := '';
|
||||
AutoFitBehavior(wdAutoFitWindow);
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
function TRptWordPresupuestosCliente.RellenarCabecera: boolean;
|
||||
var
|
||||
NombreFichero,
|
||||
Texto,
|
||||
FicheroTemporal : String;
|
||||
LinkToFile, SaveWithDocument, _Range : OleVariant;
|
||||
Imagen : InlineShape;
|
||||
What, Which, Count, Name : OleVariant;
|
||||
ovBookMarkName : OleVariant;
|
||||
TempRange : Word2000.Range;
|
||||
ovRange : OleVariant;
|
||||
begin
|
||||
|
||||
//PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA
|
||||
{ --------------------- PENDIENTE
|
||||
if (EmpresaActiva.Logotipo <> Nil) then
|
||||
begin
|
||||
//Activamos cabecera segunda
|
||||
What:=wdGoToSection;
|
||||
Which:=wdGoToFirst;
|
||||
Count:=2;
|
||||
Name:='';
|
||||
FWordApp.Application.ActiveWindow.ActivePane.Selection.GoTo_ (What, Which, Count, Name);
|
||||
FWordApp.Application.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader;
|
||||
LinkToFile := False;
|
||||
SaveWithDocument := True;
|
||||
_Range := EmptyParam;
|
||||
FicheroTemporal := DarFicheroTemporal;
|
||||
EmpresaActiva.Logotipo.SaveToFile (FicheroTemporal);
|
||||
Imagen := FWordApp.Application.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(FicheroTemporal, LinkToFile, SaveWithDocument, _Range);
|
||||
|
||||
//Formateamos imagen
|
||||
if ((Imagen.Get_Width > ANCHO_LOGO_INF)) then
|
||||
begin
|
||||
Imagen.Set_Height(((ANCHO_LOGO_INF * Imagen.Get_Height) /Imagen.Get_Width));
|
||||
Imagen.Set_Width(ANCHO_LOGO_INF);
|
||||
end;
|
||||
end;
|
||||
-------------------------------------- }
|
||||
|
||||
with FDocumento, tbl_Cabecera do
|
||||
begin
|
||||
{ ----------------------- PENDIENTE
|
||||
FDesBonificacion := FieldByName('DESBONIFICACION').AsVariant;
|
||||
FImpBonificacion := FieldByName('IMPBONIFICACION').AsFloat;
|
||||
----------------------- }
|
||||
|
||||
ReplaceBookmark('CodigoPresupuestoCab', FieldByName('REFERENCIA').AsString);
|
||||
ReplaceBookmark('FechaPresupuestoCab', FieldByName('FECHA_PRESUPUESTO').AsString);
|
||||
ReplaceBookmark('NombreClienteCab', FieldByName('NOMBRE').AsString);
|
||||
ReplaceBookmark('DireccionClienteCab', FieldByName('CALLE').AsString);
|
||||
ReplaceBookmark('PoblacionClienteCab',
|
||||
FieldByName('CODIGO_POSTAL').AsString + ' ' +
|
||||
FieldByName('POBLACION').AsString + ' ' + FieldByName('PROVINCIA').AsString);
|
||||
ReplaceBookmark('ContactoClienteCab', FieldByName('PERSONA_CONTACTO').AsString);
|
||||
ReplaceBookmark('NombreClienteFirma', FieldByName('NOMBRE').AsString);
|
||||
|
||||
if not EsCadenaVacia(FieldByName('MEMORIA').AsString) then
|
||||
begin
|
||||
Texto := FieldByName('MEMORIA').AsString;
|
||||
NombreFichero := DarFicheroTemporal;
|
||||
EscribirEnFichero(NombreFichero, Texto);
|
||||
FWordApp.InsertFile(NombreFichero, 'TextoPresupuesto');
|
||||
SysUtils.DeleteFile(NombreFichero);
|
||||
end
|
||||
else begin
|
||||
ovBookMarkName := 'TextoPresupuesto';
|
||||
TempRange := FWordApp.Application.ActiveDocument.Bookmarks.Item (ovBookMarkName).Range;
|
||||
What := wdCharacter;
|
||||
Count := 3;
|
||||
TempRange.Delete(What, Count);
|
||||
end;
|
||||
|
||||
Texto := FieldByName('OBSERVACIONES').AsString;
|
||||
NombreFichero := DarFicheroTemporal;
|
||||
EscribirEnFichero(NombreFichero, Texto);
|
||||
FWordApp.InsertFile(NombreFichero, 'Notas');
|
||||
SysUtils.DeleteFile(NombreFichero);
|
||||
|
||||
{ ----------------------------------------- pendiente
|
||||
ReplaceBookmark('NombreEmpresaPortada', EmpresaActiva.Nombre);
|
||||
ReplaceBookmark('DireccionEmpresaPortada',
|
||||
Format('%s, %s. %s %s', [EmpresaActiva.Calle, EmpresaActiva.Numero,
|
||||
EmpresaActiva.CodigoPostal, EmpresaActiva.Poblacion]));
|
||||
ReplaceBookmark('TelefonoEmpresaPortada', EmpresaActiva.Telefono);
|
||||
ReplaceBookmark('FaxEmpresaPortada', EmpresaActiva.Fax);
|
||||
ReplaceBookmark('CorreoEmpresaPortada', EmpresaActiva.Correo);
|
||||
|
||||
ReplaceBookmark('NombreEmpresa', EmpresaActiva.Nombre);
|
||||
ReplaceBookmark('CifEmpresa', EmpresaActiva.NifCif);
|
||||
ReplaceBookmark('DireccionEmpresa',
|
||||
Format('%s, %s. %s %s', [EmpresaActiva.Calle, EmpresaActiva.Numero,
|
||||
EmpresaActiva.CodigoPostal, EmpresaActiva.Poblacion]));
|
||||
ReplaceBookmark('TelefonoEmpresa', EmpresaActiva.Telefono);
|
||||
ReplaceBookmark('FaxEmpresa', EmpresaActiva.Fax);
|
||||
ReplaceBookmark('CorreoEmpresa', EmpresaActiva.Correo);
|
||||
|
||||
ReplaceBookmark('NombreEmpresaFirma', EmpresaActiva.Nombre);
|
||||
--------------------------------------------- }
|
||||
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TRptWordPresupuestosCliente.RellenarInforme: boolean;
|
||||
var
|
||||
NombreCapitulo : String;
|
||||
Estilo : OleVariant;
|
||||
begin
|
||||
FContadorCap := 0;
|
||||
FNumCapOpc := 0;
|
||||
with FDocumento, tbl_Detalles do
|
||||
begin
|
||||
First;
|
||||
|
||||
FieldByName('IMPORTE_UNIDAD').DisplayFormat := DISPLAY_EUROS2;
|
||||
FieldByName('IMPORTE_TOTAL').DisplayFormat := DISPLAY_EUROS2;
|
||||
|
||||
GoToSection(3);
|
||||
|
||||
{ Copiar la tabla de conceptos al portapapeles }
|
||||
Document.Tables.Item(2).Select;
|
||||
FWordApp.Application.Selection.Cut;
|
||||
|
||||
while not Eof do
|
||||
begin
|
||||
if (FieldByName('TIPO_DETALLE').AsString = 'Subtotal') then
|
||||
begin
|
||||
Next;
|
||||
Continue;
|
||||
end;
|
||||
|
||||
if (FieldByName('TIPO_DETALLE').AsString = 'Titulo') or
|
||||
(FieldByName('TIPO_DETALLE').AsString = 'Opcional') then
|
||||
begin
|
||||
NombreCapitulo := '';
|
||||
Estilo := 'TituloCapitulo';
|
||||
FWordApp.Application.Selection.Set_Style(Estilo);
|
||||
if (FieldByName('TIPO_DETALLE').AsString = 'Titulo') then
|
||||
NombreCapitulo := 'Capítulo ' + IntToStr(FContadorCap + 1) + '. ' + FieldByName('CONCEPTO').AsString
|
||||
else begin
|
||||
NombreCapitulo := 'Capítulo opcional. ' + FieldByName('CONCEPTO').AsString;
|
||||
Inc(FNumCapOpc);
|
||||
end;
|
||||
FWordApp.InsertText(NombreCapitulo);
|
||||
FWordApp.InsertText(#13);
|
||||
|
||||
Inc(FContadorCap);
|
||||
ListaCapitulos[FContadorCap].Tipo := FieldByName('TIPO_DETALLE').AsString;
|
||||
ListaCapitulos[FContadorCap].Nombre := NombreCapitulo;
|
||||
{ Pegar una tabla para rellenarla }
|
||||
FWordApp.Application.Selection.Paste;
|
||||
Next;
|
||||
end
|
||||
else begin
|
||||
if FContadorCap = 0 then
|
||||
begin
|
||||
Inc(FContadorCap); // Se considera el conjunto de conceptos sueltos como un capítulo.
|
||||
{ Pegar una tabla para rellenarla }
|
||||
FWordApp.Application.Selection.Paste;
|
||||
InsertarConceptos(Document.Tables.Item(Document.Tables.Count - 2));
|
||||
end
|
||||
else
|
||||
InsertarConceptos(Document.Tables.Item(Document.Tables.Count - 2));
|
||||
end;
|
||||
end;
|
||||
FNumCapitulos := FContadorCap;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TRptWordPresupuestosCliente.RellenarPortada: boolean;
|
||||
var
|
||||
NombreFichero,
|
||||
Texto,
|
||||
FicheroTemporal : string;
|
||||
LinkToFile, SaveWithDocument, _Range : OleVariant;
|
||||
Imagen : InlineShape;
|
||||
|
||||
begin
|
||||
|
||||
//PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA
|
||||
{--------------------------- PENDIENTE
|
||||
if (EmpresaActiva.Logotipo <> Nil) then
|
||||
begin
|
||||
FWordApp.GotoBookmark ('LogotipoEmpresa');
|
||||
LinkToFile := False;
|
||||
SaveWithDocument := True;
|
||||
_Range := EmptyParam;
|
||||
FicheroTemporal := DarFicheroTemporal;
|
||||
EmpresaActiva.Logotipo.SaveToFile (FicheroTemporal);
|
||||
Imagen := FWordApp.Application.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(FicheroTemporal, LinkToFile, SaveWithDocument, _Range);
|
||||
|
||||
//Formateamos imagen
|
||||
if ((Imagen.Get_Width > ANCHO_LOGO_INF_PRE)) then
|
||||
begin
|
||||
Imagen.Set_Height(((ANCHO_LOGO_INF_PRE * Imagen.Get_Height) /Imagen.Get_Width));
|
||||
Imagen.Set_Width(ANCHO_LOGO_INF_PRE);
|
||||
end;
|
||||
end;
|
||||
---------------------------- }
|
||||
|
||||
with FDocumento, tbl_Cabecera do
|
||||
begin
|
||||
ReplaceBookmark('CodigoPresupuestoPortada', FieldByName('REFERENCIA').AsString);
|
||||
ReplaceBookmark('FechaPresupuestoPortada', FieldByName('FECHA_PRESUPUESTO').AsString);
|
||||
ReplaceBookmark('NombreClientePortada', FieldByName('NOMBRE').AsString);
|
||||
if not EsCadenaVacia(FieldByName('PERSONA_CONTACTO').AsString) then
|
||||
ReplaceBookmark('PersonaContactoClientePortada', 'A la atención de: ' + FieldByName('PERSONA_CONTACTO').AsString);
|
||||
|
||||
Texto := FieldByName('PORTADA').AsString;
|
||||
NombreFichero := DarFicheroTemporal;
|
||||
EscribirEnFichero(NombreFichero, Texto);
|
||||
FWordApp.InsertFile(NombreFichero, 'TextoPortada');
|
||||
SysUtils.DeleteFile(NombreFichero);
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TRptWordPresupuestosCliente.RellenarResumen : boolean;
|
||||
var
|
||||
numRows, numCols, mergeSplit, shiftCells : OleVariant;
|
||||
iAux : Integer;
|
||||
iContador : Integer;
|
||||
TotalConceptos : Double;
|
||||
Tabla : Table;
|
||||
Estilo : OleVariant;
|
||||
begin
|
||||
numRows := 2;
|
||||
numCols := 1;
|
||||
mergeSplit := False;
|
||||
shiftCells := False;
|
||||
iContador := 2; // Empezar en la 2ª fila de celdas. La primera es la
|
||||
// cabecera de la tabla.
|
||||
|
||||
Estilo := 'TituloCapitulo';
|
||||
FWordApp.Application.Selection.Set_Style(Estilo);
|
||||
FWordApp.InsertText('RESUMEN');
|
||||
|
||||
Tabla := FDocumento.Document.Tables.Item(FDocumento.Document.Tables.Count-1);
|
||||
with Tabla do
|
||||
begin
|
||||
for iAux := 1 to FNumCapitulos do
|
||||
begin
|
||||
if (ListaCapitulos[iAux].Tipo = 'Opcional') then
|
||||
continue; // No sumamos los capítulos opcionales.
|
||||
|
||||
// Partir la celda actual en en 2 filas de 1 columna.
|
||||
Rows.Item(iContador).Cells.Split (numRows, numCols, mergesplit);
|
||||
|
||||
if EsCadenaVacia(ListaCapitulos[iAux].Nombre) then
|
||||
Cell(iContador, 1).Range.Text := 'General'
|
||||
else
|
||||
Cell(iContador, 1).Range.Text := ListaCapitulos[iAux].Nombre;
|
||||
if FImportes
|
||||
then Cell(iContador, 2).Range.Text := FormatFloat(DISPLAY_EUROS2, ListaCapitulos[iAux].Total)
|
||||
else Cell(iContador, 2).Range.Text := '';
|
||||
TotalConceptos := TotalConceptos + ListaCapitulos[iAux].Total;
|
||||
Inc (iContador);
|
||||
end;
|
||||
|
||||
// Borrar la fila vacía que sobra
|
||||
Rows.Item(iContador).Cells.Delete(shiftCells);
|
||||
if FImportes then
|
||||
begin
|
||||
//Comprobamos si el presupuesto tiene bonificación
|
||||
if VarIsNull(FDesBonificacion) then
|
||||
begin
|
||||
Cell(iContador, 1).Range.Text := 'Total: ' + FormatFloat(DISPLAY_EUROS2, TotalConceptos);
|
||||
// Borrar filas de bonificación
|
||||
inc(iContador);
|
||||
Rows.Item(iContador).Cells.Delete(shiftCells);
|
||||
Rows.Item(iContador).Cells.Delete(shiftCells);
|
||||
Rows.Item(iContador).Cells.Delete(shiftCells);
|
||||
end
|
||||
else
|
||||
begin
|
||||
//Elimino la ultima fila para enlazar la tabla las tres filas de bonificación
|
||||
Rows.Item(iContador).Cells.Delete(shiftCells);
|
||||
with FDocumento do
|
||||
begin
|
||||
ReplaceBookmark('DescripcionImpTotal', 'Total');
|
||||
ReplaceBookmark('ImporteTotal', FormatFloat(DISPLAY_EUROS2, TotalConceptos));
|
||||
ReplaceBookmark('DescripcionBonificacion', FDesBonificacion);
|
||||
ReplaceBookmark('ImporteBonificacion', FormatFloat(DISPLAY_EUROS2, ((-1)*FImpBonificacion)));
|
||||
ReplaceBookmark('DescripcionImpFinal', 'Importe final');
|
||||
ReplaceBookmark('ImpFinal', FormatFloat(DISPLAY_EUROS2, TotalConceptos - FImpBonificacion));
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
Cell(iContador, 1).Range.Text := '';
|
||||
// Borrar filas de bonificación
|
||||
inc(iContador);
|
||||
Rows.Item(iContador).Cells.Delete(shiftCells);
|
||||
Rows.Item(iContador).Cells.Delete(shiftCells);
|
||||
Rows.Item(iContador).Cells.Delete(shiftCells);
|
||||
end;
|
||||
|
||||
AutoFitBehavior(wdAutoFitWindow);
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
procedure TRptWordPresupuestosCliente._GenerarPresupuesto(const AID: String);
|
||||
begin
|
||||
tbl_Cabecera.ParamByName('ID').AsString := AID;
|
||||
tbl_Detalles.ParamByName('ID_PRESUPUESTO').AsString := AID;
|
||||
|
||||
tbl_Cabecera.Active := True;
|
||||
tbl_Detalles.Active := True;
|
||||
|
||||
FCodigoPresupuesto := AID;
|
||||
Generar;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
@ -33,18 +33,19 @@ type
|
||||
procedure DARemoteServiceCreate(Sender: TObject);
|
||||
protected
|
||||
{ IsrvPresupuestosCliente methods }
|
||||
function GenerateReport(const ID: String): Binary;
|
||||
function GenerateReport(const ListaID: String): Binary;
|
||||
function GenerateReportEnWord(const ID: Integer): Binary;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
uses
|
||||
Dialogs,
|
||||
Dialogs, uSistemaFunc,
|
||||
{Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils,
|
||||
schPresupuestosClienteClient_Intf, uRestriccionesUsuarioUtils,
|
||||
uRptPresupuestosCliente_Server,
|
||||
uBizPresupuestosClienteServer;
|
||||
uBizPresupuestosClienteServer, uRptWordPresupuestoCliente;
|
||||
|
||||
procedure Create_srvPresupuestosCliente(out anInstance : IUnknown);
|
||||
begin
|
||||
@ -77,13 +78,32 @@ begin
|
||||
ConnectionName := dmServer.ConnectionName;
|
||||
end;
|
||||
|
||||
function TsrvPresupuestosCliente.GenerateReport(const ID: String): Binary;
|
||||
function TsrvPresupuestosCliente.GenerateReport(const ListaID: String): Binary;
|
||||
var
|
||||
AReportGenerator : TRptPresupuestosCliente;
|
||||
begin
|
||||
AReportGenerator := TRptPresupuestosCliente.Create(nil);
|
||||
try
|
||||
Result := AReportGenerator.GenerarPresupuesto(ID);
|
||||
Result := AReportGenerator.GenerarPresupuesto(ListaID);
|
||||
finally
|
||||
FreeAndNIL(AReportGenerator);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TsrvPresupuestosCliente.GenerateReportEnWord(const ID: Integer): Binary;
|
||||
var
|
||||
AReportGenerator : TRptWordPresupuestosCliente;
|
||||
AFicheroTMP : TFileName;
|
||||
begin
|
||||
Result := NIL;
|
||||
AFicheroTMP := DarFicheroTemporal;
|
||||
AReportGenerator := TRptWordPresupuestosCliente.Create(nil);
|
||||
try
|
||||
if AReportGenerator.Exportar(IntToStr(ID), AFicheroTMP) then
|
||||
begin
|
||||
Result := Binary.Create;
|
||||
Result.LoadFromFile(AFicheroTMP);
|
||||
end;
|
||||
finally
|
||||
FreeAndNIL(AReportGenerator);
|
||||
end;
|
||||
|
||||
@ -47,8 +47,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<Excluded_Packages Name="c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl">Intraweb 8.0 Design Package for Borland Development Studio 2006</Excluded_Packages>
|
||||
</Excluded_Packages><Source><Source Name="MainSource">PresupuestosCliente_view.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
|
||||
</ProjectExtensions>
|
||||
@ -57,11 +55,11 @@
|
||||
<DelphiCompile Include="PresupuestosCliente_view.dpk">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="..\Articulos_view.dcp" />
|
||||
<DCCReference Include="..\Base.dcp" />
|
||||
<DCCReference Include="..\GUIBase.dcp" />
|
||||
<DCCReference Include="..\PresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="..\PresupuestosCliente_model.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\Articulos_view.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\Base.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\GUIBase.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\PresupuestosCliente_controller.dcp" />
|
||||
<DCCReference Include="C:\Documents and Settings\Usuario\PresupuestosCliente_model.dcp" />
|
||||
<DCCReference Include="uEditorElegirArticulosPresupuestoCliente.pas">
|
||||
<Form>fEditorElegirArticulosPresupuestoCliente</Form>
|
||||
<DesignClass>TfEditorElegirArticulosPedidoCliente</DesignClass>
|
||||
|
||||
Binary file not shown.
@ -161,6 +161,10 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente
|
||||
object pagContenido: TTabSheet
|
||||
Caption = 'Contenido'
|
||||
ImageIndex = 1
|
||||
ExplicitLeft = 0
|
||||
ExplicitTop = 0
|
||||
ExplicitWidth = 0
|
||||
ExplicitHeight = 0
|
||||
inline frViewDetallesPresupuestoCliente1: TfrViewDetallesPresupuestoCliente
|
||||
Left = 0
|
||||
Top = 0
|
||||
@ -177,95 +181,111 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
ReadOnly = False
|
||||
ExplicitWidth = 735
|
||||
ExplicitHeight = 386
|
||||
inherited ToolBar1: TToolBar
|
||||
Width = 735
|
||||
Height = 51
|
||||
Height = 78
|
||||
ExplicitWidth = 735
|
||||
ExplicitHeight = 51
|
||||
inherited ToolButton14: TToolButton
|
||||
ExplicitHeight = 78
|
||||
inherited ToolButton4: TToolButton [1]
|
||||
Left = 109
|
||||
Top = 0
|
||||
ExplicitLeft = 109
|
||||
ExplicitTop = 0
|
||||
end
|
||||
inherited ToolButton14: TToolButton [2]
|
||||
Left = 165
|
||||
Top = 0
|
||||
ExplicitLeft = 165
|
||||
end
|
||||
inherited FontName: TJvFontComboBox [3]
|
||||
Left = 230
|
||||
Top = 0
|
||||
ExplicitLeft = 230
|
||||
ExplicitTop = 0
|
||||
end
|
||||
inherited FontSize: TEdit [4]
|
||||
Left = 375
|
||||
Top = 0
|
||||
ExplicitLeft = 375
|
||||
ExplicitTop = 0
|
||||
end
|
||||
inherited UpDown1: TUpDown [5]
|
||||
Left = 417
|
||||
Top = 0
|
||||
ExplicitLeft = 417
|
||||
ExplicitTop = 0
|
||||
end
|
||||
inherited ToolButton13: TToolButton [6]
|
||||
end
|
||||
inherited ToolButton2: TToolButton [7]
|
||||
end
|
||||
inherited ToolButton6: TToolButton [8]
|
||||
Left = 114
|
||||
Top = 27
|
||||
Wrap = False
|
||||
ExplicitLeft = 114
|
||||
ExplicitTop = 27
|
||||
end
|
||||
inherited FontName: TJvFontComboBox
|
||||
Left = 399
|
||||
Top = 0
|
||||
ExplicitLeft = 399
|
||||
ExplicitTop = 0
|
||||
inherited ToolButton7: TToolButton [9]
|
||||
Left = 180
|
||||
Top = 27
|
||||
Wrap = False
|
||||
ExplicitLeft = 180
|
||||
ExplicitTop = 27
|
||||
end
|
||||
inherited FontSize: TEdit
|
||||
Left = 544
|
||||
Top = 0
|
||||
ExplicitLeft = 544
|
||||
ExplicitTop = 0
|
||||
inherited ToolButton8: TToolButton [10]
|
||||
Left = 247
|
||||
Top = 27
|
||||
ExplicitLeft = 247
|
||||
ExplicitTop = 27
|
||||
end
|
||||
inherited ToolButton13: TToolButton [7]
|
||||
inherited ToolButton12: TToolButton [11]
|
||||
Left = 0
|
||||
Top = 0
|
||||
Top = 27
|
||||
Wrap = True
|
||||
ExplicitLeft = 0
|
||||
ExplicitTop = 0
|
||||
ExplicitTop = 27
|
||||
ExplicitHeight = 27
|
||||
end
|
||||
inherited UpDown1: TUpDown [8]
|
||||
inherited ToolButton9: TToolButton [12]
|
||||
Left = 0
|
||||
Top = 27
|
||||
Top = 54
|
||||
ExplicitLeft = 0
|
||||
ExplicitTop = 27
|
||||
ExplicitTop = 54
|
||||
end
|
||||
inherited ToolButton6: TToolButton
|
||||
Left = 17
|
||||
Top = 27
|
||||
ExplicitLeft = 17
|
||||
ExplicitTop = 27
|
||||
inherited ToolButton10: TToolButton [13]
|
||||
Left = 145
|
||||
Top = 54
|
||||
ExplicitLeft = 145
|
||||
ExplicitTop = 54
|
||||
end
|
||||
inherited ToolButton7: TToolButton
|
||||
Left = 83
|
||||
Top = 27
|
||||
ExplicitLeft = 83
|
||||
ExplicitTop = 27
|
||||
inherited ToolButton3: TToolButton [14]
|
||||
Left = 270
|
||||
Top = 54
|
||||
ExplicitLeft = 270
|
||||
end
|
||||
inherited ToolButton8: TToolButton
|
||||
Left = 150
|
||||
Top = 27
|
||||
ExplicitLeft = 150
|
||||
ExplicitTop = 27
|
||||
end
|
||||
inherited ToolButton12: TToolButton
|
||||
Left = 233
|
||||
Top = 27
|
||||
Wrap = False
|
||||
ExplicitLeft = 233
|
||||
ExplicitTop = 27
|
||||
ExplicitHeight = 22
|
||||
end
|
||||
inherited ToolButton9: TToolButton
|
||||
Left = 241
|
||||
Top = 27
|
||||
ExplicitLeft = 241
|
||||
ExplicitTop = 27
|
||||
end
|
||||
inherited ToolButton10: TToolButton
|
||||
Left = 386
|
||||
Top = 27
|
||||
ExplicitLeft = 386
|
||||
ExplicitTop = 27
|
||||
end
|
||||
inherited ToolButton11: TToolButton
|
||||
Left = 511
|
||||
Top = 27
|
||||
ExplicitLeft = 511
|
||||
ExplicitTop = 27
|
||||
inherited ToolButton11: TToolButton [15]
|
||||
Left = 325
|
||||
Top = 54
|
||||
ExplicitLeft = 325
|
||||
ExplicitTop = 54
|
||||
end
|
||||
end
|
||||
inherited cxGrid: TcxGrid
|
||||
Top = 77
|
||||
Top = 104
|
||||
Width = 735
|
||||
Height = 309
|
||||
ExplicitTop = 99
|
||||
ExplicitHeight = 205
|
||||
Height = 282
|
||||
ExplicitTop = 77
|
||||
ExplicitWidth = 735
|
||||
ExplicitHeight = 309
|
||||
end
|
||||
inherited TBXDock1: TTBXDock
|
||||
Top = 51
|
||||
Top = 78
|
||||
Width = 735
|
||||
ExplicitTop = 51
|
||||
ExplicitWidth = 735
|
||||
inherited TBXToolbar1: TTBXToolbar
|
||||
ExplicitWidth = 702
|
||||
end
|
||||
@ -275,6 +295,10 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente
|
||||
object pagPortada: TTabSheet
|
||||
Caption = 'Portada'
|
||||
ImageIndex = 3
|
||||
ExplicitLeft = 0
|
||||
ExplicitTop = 0
|
||||
ExplicitWidth = 0
|
||||
ExplicitHeight = 0
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
@ -406,6 +430,10 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente
|
||||
object pagMemoria: TTabSheet
|
||||
Caption = 'Memoria'
|
||||
ImageIndex = 4
|
||||
ExplicitLeft = 0
|
||||
ExplicitTop = 0
|
||||
ExplicitWidth = 0
|
||||
ExplicitHeight = 0
|
||||
object Panel2: TPanel
|
||||
Left = 0
|
||||
Top = 0
|
||||
@ -708,6 +736,10 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente
|
||||
object pagInicidencias: TTabSheet
|
||||
Caption = 'Incidencias'
|
||||
ImageIndex = 2
|
||||
ExplicitLeft = 0
|
||||
ExplicitTop = 0
|
||||
ExplicitWidth = 0
|
||||
ExplicitHeight = 0
|
||||
inline frViewIncidenciasCli: TfrViewIncidencias
|
||||
Left = 0
|
||||
Top = 0
|
||||
|
||||
@ -1,22 +1,20 @@
|
||||
inherited fEditorPresupuestosClientePreview: TfEditorPresupuestosClientePreview
|
||||
Caption = 'Previsualizar el pedidos proveedor'
|
||||
ExplicitWidth = 803
|
||||
ExplicitHeight = 485
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
inherited JvNavPanelHeader: TJvNavPanelHeader
|
||||
ExplicitWidth = 795
|
||||
inherited Image1: TImage
|
||||
Left = 768
|
||||
ExplicitLeft = 768
|
||||
end
|
||||
end
|
||||
inherited StatusBar: TJvStatusBar
|
||||
ExplicitWidth = 795
|
||||
end
|
||||
inherited frxReport1: TfrxReport
|
||||
Datasets = <>
|
||||
Variables = <>
|
||||
Style = <>
|
||||
inherited TBXDock: TTBXDock
|
||||
inherited TBXToolbar1: TTBXToolbar
|
||||
ExplicitWidth = 540
|
||||
object TBXItem58: TTBXItem [1]
|
||||
Action = actExportarRTF
|
||||
DisplayMode = nbdmTextOnlyInMenus
|
||||
Images = SmallImages
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -10,14 +10,41 @@ uses
|
||||
JvComponentBase, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl,
|
||||
frxClass, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList,
|
||||
ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar,
|
||||
pngimage;
|
||||
pngimage, frxExportText, frxExportRTF, frxExportMail, frxExportXLS;
|
||||
|
||||
type
|
||||
TfEditorPresupuestosClientePreview = class(TfEditorPreview, IEditorPresupuestosClientePreview)
|
||||
TBXItem58: TTBXItem;
|
||||
procedure actExportarRTFExecute(Sender: TObject);
|
||||
end;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
uPresupuestosClienteReportController;
|
||||
|
||||
procedure TfEditorPresupuestosClientePreview.actExportarRTFExecute(
|
||||
Sender: TObject);
|
||||
var
|
||||
AListaID : TStringList;
|
||||
I: Integer;
|
||||
begin
|
||||
// inherited; <- No llamar al padre
|
||||
if Assigned(Controller) then
|
||||
begin
|
||||
AListaID := TStringList.Create;
|
||||
try
|
||||
AListaID.CommaText := Self.ListaID;
|
||||
for I := 0 to AListaID.Count - 1 do
|
||||
(Controller as IPresupuestosClienteReportController).ExportToWord(StrToInt(AListaID[I]));
|
||||
finally
|
||||
FreeAndNIL(AListaID);
|
||||
end;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
@ -267,10 +267,18 @@
|
||||
<Interface Name="Default" UID="{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}">
|
||||
<Operations>
|
||||
<Operation Name="GenerateReport" UID="{4B11FE7D-44AE-4674-9DA7-6FB6B63FC620}">
|
||||
<Documentation><![CDATA[]]></Documentation><Parameters>
|
||||
<Parameter Name="Result" DataType="Binary" Flag="Result">
|
||||
</Parameter>
|
||||
<Parameter Name="ListaID" DataType="String" Flag="In" >
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Operation>
|
||||
<Operation Name="GenerateReportEnWord" UID="{7C3C767B-41AC-42EC-925D-ECAE03BD8F58}">
|
||||
<Parameters>
|
||||
<Parameter Name="Result" DataType="Binary" Flag="Result">
|
||||
</Parameter>
|
||||
<Parameter Name="ID" DataType="String" Flag="In" >
|
||||
<Parameter Name="ID" DataType="Integer" Flag="In" >
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Operation>
|
||||
|
||||
@ -490,7 +490,8 @@ type
|
||||
{ IsrvPresupuestosCliente }
|
||||
IsrvPresupuestosCliente = interface(IDataAbstractService)
|
||||
['{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}']
|
||||
function GenerateReport(const ID: String): Binary;
|
||||
function GenerateReport(const ListaID: String): Binary;
|
||||
function GenerateReportEnWord(const ID: Integer): Binary;
|
||||
end;
|
||||
|
||||
{ CosrvPresupuestosCliente }
|
||||
@ -503,7 +504,8 @@ type
|
||||
protected
|
||||
function __GetInterfaceName:string; override;
|
||||
|
||||
function GenerateReport(const ID: String): Binary;
|
||||
function GenerateReport(const ListaID: String): Binary;
|
||||
function GenerateReportEnWord(const ID: Integer): Binary;
|
||||
end;
|
||||
|
||||
{ IsrvPedidosProveedor }
|
||||
@ -1358,12 +1360,29 @@ begin
|
||||
result := 'srvPresupuestosCliente';
|
||||
end;
|
||||
|
||||
function TsrvPresupuestosCliente_Proxy.GenerateReport(const ID: String): Binary;
|
||||
function TsrvPresupuestosCliente_Proxy.GenerateReport(const ListaID: String): Binary;
|
||||
begin
|
||||
try
|
||||
result := nil;
|
||||
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
|
||||
__Message.Write('ID', TypeInfo(String), ID, []);
|
||||
__Message.Write('ListaID', TypeInfo(String), ListaID, []);
|
||||
__Message.Finalize;
|
||||
|
||||
__TransportChannel.Dispatch(__Message);
|
||||
|
||||
__Message.Read('Result', TypeInfo(Binary), result, []);
|
||||
finally
|
||||
__Message.UnsetAttributes(__TransportChannel);
|
||||
__Message.FreeStream;
|
||||
end
|
||||
end;
|
||||
|
||||
function TsrvPresupuestosCliente_Proxy.GenerateReportEnWord(const ID: Integer): Binary;
|
||||
begin
|
||||
try
|
||||
result := nil;
|
||||
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReportEnWord');
|
||||
__Message.Write('ID', TypeInfo(Integer), ID, []);
|
||||
__Message.Finalize;
|
||||
|
||||
__TransportChannel.Dispatch(__Message);
|
||||
|
||||
@ -147,6 +147,7 @@ type
|
||||
protected
|
||||
published
|
||||
procedure Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
|
||||
procedure Invoke_GenerateReportEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
|
||||
end;
|
||||
|
||||
TsrvPedidosProveedor_Invoker = class(TDataAbstractService_Invoker)
|
||||
@ -553,17 +554,17 @@ end;
|
||||
{ TsrvPresupuestosCliente_Invoker }
|
||||
|
||||
procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
|
||||
{ function GenerateReport(const ID: String): Binary; }
|
||||
{ function GenerateReport(const ListaID: String): Binary; }
|
||||
var
|
||||
ID: String;
|
||||
ListaID: String;
|
||||
lResult: Binary;
|
||||
__lObjectDisposer: TROObjectDisposer;
|
||||
begin
|
||||
lResult := nil;
|
||||
try
|
||||
__Message.Read('ID', TypeInfo(String), ID, []);
|
||||
__Message.Read('ListaID', TypeInfo(String), ListaID, []);
|
||||
|
||||
lResult := (__Instance as IsrvPresupuestosCliente).GenerateReport(ID);
|
||||
lResult := (__Instance as IsrvPresupuestosCliente).GenerateReport(ListaID);
|
||||
|
||||
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerateReportResponse');
|
||||
__Message.Write('Result', TypeInfo(Binary), lResult, []);
|
||||
@ -580,6 +581,34 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TsrvPresupuestosCliente_Invoker.Invoke_GenerateReportEnWord(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
|
||||
{ function GenerateReportEnWord(const ID: Integer): Binary; }
|
||||
var
|
||||
ID: Integer;
|
||||
lResult: Binary;
|
||||
__lObjectDisposer: TROObjectDisposer;
|
||||
begin
|
||||
lResult := nil;
|
||||
try
|
||||
__Message.Read('ID', TypeInfo(Integer), ID, []);
|
||||
|
||||
lResult := (__Instance as IsrvPresupuestosCliente).GenerateReportEnWord(ID);
|
||||
|
||||
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvPresupuestosCliente', 'GenerateReportEnWordResponse');
|
||||
__Message.Write('Result', TypeInfo(Binary), lResult, []);
|
||||
__Message.Finalize;
|
||||
__Message.UnsetAttributes(__Transport);
|
||||
|
||||
finally
|
||||
__lObjectDisposer := TROObjectDisposer.Create(__Instance);
|
||||
try
|
||||
__lObjectDisposer.Add(lResult);
|
||||
finally
|
||||
__lObjectDisposer.Free();
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TsrvPedidosProveedor_Invoker }
|
||||
|
||||
procedure TsrvPedidosProveedor_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -12,8 +12,6 @@ uses
|
||||
uConfiguracion in 'Configuracion\uConfiguracion.pas' {fConfiguracion: TForm},
|
||||
uFrameConfiguracion in 'Configuracion\uFrameConfiguracion.pas' {FrameConfiguracion: TFrame},
|
||||
uDataModuleServer in 'uDataModuleServer.pas' {dmServer: TDataModule},
|
||||
FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas',
|
||||
FactuGES_Invk in '..\Servicios\FactuGES_Invk.pas',
|
||||
srvContactos_Impl in '..\Modulos\Contactos\Servidor\srvContactos_Impl.pas' {srvContactos: TDARemoteService},
|
||||
srvLogin_Impl in 'srvLogin_Impl.pas' {srvLogin: TDARemoteService},
|
||||
srvEmpresas_Impl in '..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas' {srvEmpresas: TDARemoteService},
|
||||
@ -103,6 +101,13 @@ uses
|
||||
schEmpresasClient_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas',
|
||||
schEmpresasServer_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas',
|
||||
uStringsUtils in '..\Base\Utiles\uStringsUtils.pas',
|
||||
FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas',
|
||||
FactuGES_Invk in '..\Servicios\FactuGES_Invk.pas',
|
||||
uRptWordPresupuestoCliente in '..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas' {RptWordPresupuestosCliente: TDataModule},
|
||||
Literales in '..\Modulos\Presupuestos de cliente\Reports\Literales.pas',
|
||||
AHWord97 in 'Utiles\AHWord97.pas',
|
||||
uSistemaFunc in '..\Base\Utiles\uSistemaFunc.pas',
|
||||
uStringsUtils in '..\Base\Utiles\uStringsUtils.pas',
|
||||
schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas',
|
||||
schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas';
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}</ProjectGuid>
|
||||
@ -56,6 +56,7 @@
|
||||
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas" />
|
||||
<DCCReference Include="..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas" />
|
||||
<DCCReference Include="..\Base\schBase_Intf.pas" />
|
||||
<DCCReference Include="..\Base\Utiles\uSistemaFunc.pas" />
|
||||
<DCCReference Include="..\Base\Utiles\uStringsUtils.pas" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas" />
|
||||
<DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas" />
|
||||
@ -141,9 +142,14 @@
|
||||
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas" />
|
||||
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas" />
|
||||
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\uBizPresupuestosClienteServer.pas" />
|
||||
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\Literales.pas" />
|
||||
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas">
|
||||
<Form>RptPresupuestosCliente</Form>
|
||||
</DCCReference>
|
||||
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas">
|
||||
<Form>RptWordPresupuestosCliente</Form>
|
||||
<DesignClass>TDataModule</DesignClass>
|
||||
</DCCReference>
|
||||
<DCCReference Include="..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas">
|
||||
<Form>srvPresupuestosCliente</Form>
|
||||
<DesignClass>TDataAbstractService</DesignClass>
|
||||
@ -223,6 +229,7 @@
|
||||
<DCCReference Include="uServerMainForm.pas">
|
||||
<Form>fServerForm</Form>
|
||||
</DCCReference>
|
||||
<DCCReference Include="Utiles\AHWord97.pas" />
|
||||
<DCCReference Include="Utiles\RegExpr.pas" />
|
||||
<DCCReference Include="Utiles\uBusinessUtils.pas" />
|
||||
<DCCReference Include="Utiles\uDatabaseUtils.pas" />
|
||||
|
||||
2217
Source/Servidor/Utiles/AHWord97.pas
Normal file
2217
Source/Servidor/Utiles/AHWord97.pas
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user