Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@19410 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-10-08 15:45:59 +00:00
parent 9192910bb5
commit d0a42fb961
10 changed files with 783 additions and 220 deletions

View File

@ -455,6 +455,10 @@
RelativePath="..\ba\bainst23.cpp"
>
</File>
<File
RelativePath="..\ba\bainst27.cpp"
>
</File>
<File
RelativePath="..\ba\bainst31.cpp"
>
@ -624,6 +628,10 @@
RelativePath="..\ba\bainst23.uml"
>
</File>
<File
RelativePath="..\ba\bainst27.uml"
>
</File>
<File
RelativePath="..\ba\bainst31.uml"
>

View File

@ -31,44 +31,59 @@
Name="VCPreBuildEventTool"
/>
<Tool
Name="IniCompiler"
Name="DatCompiler"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="BmpCompiler"
/>
<Tool
Name="GifCompiler"
/>
<Tool
Name="DesCompiler"
/>
<Tool
Name="SrcDebugCompiler"
/>
<Tool
Name="MskCompiler"
/>
<Tool
Name="FormCompiler"
/>
<Tool
Name="AlxCompiler"
/>
<Tool
Name="TxtCompiler"
/>
<Tool
Name="PngCompiler"
/>
<Tool
Name="JpegCompiler"
/>
<Tool
Name="IniCompiler"
/>
<Tool
Name="MenCompiler"
/>
<Tool
Name="RepCompiler"
/>
<Tool
Name="FormCompiler"
/>
<Tool
Name="DesCompiler"
/>
<Tool
Name="GifCompiler"
/>
<Tool
Name="TrrCompiler"
/>
<Tool
Name="SrcReleaseCompiler"
/>
<Tool
Name="DirCompiler"
/>
<Tool
Name="MskCompiler"
/>
<Tool
Name="TxtCompiler"
/>
<Tool
Name="JpegCompiler"
/>
<Tool
Name="AlxCompiler"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
@ -163,44 +178,59 @@
Name="VCPreBuildEventTool"
/>
<Tool
Name="IniCompiler"
Name="DatCompiler"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="BmpCompiler"
/>
<Tool
Name="GifCompiler"
/>
<Tool
Name="DesCompiler"
/>
<Tool
Name="SrcDebugCompiler"
/>
<Tool
Name="MskCompiler"
/>
<Tool
Name="FormCompiler"
/>
<Tool
Name="AlxCompiler"
/>
<Tool
Name="TxtCompiler"
/>
<Tool
Name="PngCompiler"
/>
<Tool
Name="JpegCompiler"
/>
<Tool
Name="IniCompiler"
/>
<Tool
Name="MenCompiler"
/>
<Tool
Name="RepCompiler"
/>
<Tool
Name="FormCompiler"
/>
<Tool
Name="DesCompiler"
/>
<Tool
Name="GifCompiler"
/>
<Tool
Name="TrrCompiler"
/>
<Tool
Name="SrcReleaseCompiler"
/>
<Tool
Name="DirCompiler"
/>
<Tool
Name="MskCompiler"
/>
<Tool
Name="TxtCompiler"
/>
<Tool
Name="JpegCompiler"
/>
<Tool
Name="AlxCompiler"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
@ -288,6 +318,14 @@
Name="Sources"
Filter="cpp"
>
<File
RelativePath="..\ca\calib01.cpp"
>
</File>
<File
RelativePath="..\ca\calib02.cpp"
>
</File>
<File
RelativePath="..\cg\cglib01.cpp"
>
@ -648,110 +686,26 @@
<File
RelativePath="..\sc\sc2100a.uml"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\sc\sc2200a.uml"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\sc\sc2300a.uml"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\sc\sc2400a.uml"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\sc\sc2500.uml"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\sc\sc2600a.uml"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="MskCompiler"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
@ -818,20 +772,6 @@
<File
RelativePath="..\sc\pec.frm"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="FormCompiler"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="FormCompiler"
/>
</FileConfiguration>
</File>
</Filter>
<File

4
projects/pd6292.rc Executable file
View File

@ -0,0 +1,4 @@
"9012" ICON DISCARDABLE "../res/exe.ico"
rcinclude ../../wx289/include/wx/msw/wx.rc

419
projects/pd6292.vcproj Executable file
View File

@ -0,0 +1,419 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="pd6292"
ProjectGUID="{BC839F6C-7042-4A5F-B04E-62380CE25912}"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\..\debug"
IntermediateDirectory=".\..\debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\..\debug/pd6292.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\include,..\xvaga,..\xi"
PreprocessorDefinitions="_DEBUG;WIN32;DBG;_WINDOWS"
MinimalRebuild="true"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\..\debug/pd6292.pch"
AssemblerListingLocation=".\..\debug/"
ObjectFile=".\..\debug/"
ProgramDataBaseFileName=".\..\debug/"
BrowseInformation="1"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1040"
AdditionalIncludeDirectories="..\..\wx289\include"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="version.lib wsock32.lib comctl32.lib rpcrt4.lib"
OutputFile="..\exed\pd6292.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="libc.lib"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\..\debug/pd6292.pdb"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\debug/pd6292.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory=".\..\release"
IntermediateDirectory=".\..\release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\..\release/pd6292.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\include,..\xvaga,..\xi"
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;XVT"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\..\release/pd6292.pch"
AssemblerListingLocation=".\..\release/"
ObjectFile=".\..\release/"
ProgramDataBaseFileName=".\..\release/"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1040"
AdditionalIncludeDirectories="..\..\wx289\include"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="version.lib wsock32.lib comctl32.lib rpcrt4.lib"
OutputFile="D:\Release\campo100/pd6292.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="libc.lib"
ProgramDatabaseFile=".\..\release/pd6292.pdb"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\..\release/pd6292.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Sources"
Filter="cpp"
>
<File
RelativePath="..\cg\cglib01.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="..\cg\cglib02.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="..\cg\cgsaldac.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="..\ps\pd6292.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="..\ps\pd6292100.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="..\sc\sc2201.cpp"
>
</File>
<File
RelativePath="..\sc\scselect.cpp"
>
</File>
</Filter>
<Filter
Name="Masks"
Filter="uml"
>
<File
RelativePath="..\ps\pd6292100a.uml"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Compiling mask $(InputPath)..."
CommandLine="msk32 $(InputPath) $(TargetDir)$(InputName).msk&#x0D;&#x0A;"
Outputs="$(TargetDir)$(InputName).msk"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Compiling mask $(InputPath)..."
CommandLine="msk32 $(InputPath) $(TargetDir)$(InputName).msk&#x0D;&#x0A;"
Outputs="$(TargetDir)$(InputName).msk"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Headers"
Filter="h"
>
<File
RelativePath="..\ps\pd6292.h"
>
</File>
<File
RelativePath="..\ps\pd6292100.h"
>
</File>
</Filter>
<File
RelativePath="..\lib\AgaLib.lib"
>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\lib\AgaLibD.lib"
>
</File>
<File
RelativePath="pd6292.rc"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories=""
ResourceOutputFileName="..\Debug/pd6292.res"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
AdditionalIncludeDirectories=""
/>
</FileConfiguration>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -81,6 +81,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pg0068", "pg0068.vcproj", "
{A1CE9743-A597-4F92-B55A-345A366C9E55} = {A1CE9743-A597-4F92-B55A-345A366C9E55}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pd6292", "pd6292.vcproj", "{BC839F6C-7042-4A5F-B04E-62380CE25912}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@ -199,6 +201,10 @@ Global
{DE9692C8-AD5E-4AD1-A0BB-16B9A4F722F1}.Debug|Win32.Build.0 = Debug|Win32
{DE9692C8-AD5E-4AD1-A0BB-16B9A4F722F1}.Release|Win32.ActiveCfg = Release|Win32
{DE9692C8-AD5E-4AD1-A0BB-16B9A4F722F1}.Release|Win32.Build.0 = Release|Win32
{BC839F6C-7042-4A5F-B04E-62380CE25912}.Debug|Win32.ActiveCfg = Debug|Win32
{BC839F6C-7042-4A5F-B04E-62380CE25912}.Debug|Win32.Build.0 = Debug|Win32
{BC839F6C-7042-4A5F-B04E-62380CE25912}.Release|Win32.ActiveCfg = Release|Win32
{BC839F6C-7042-4A5F-B04E-62380CE25912}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -536,15 +536,7 @@
>
</File>
<File
RelativePath="..\tc\tctstabm.txt"
>
</File>
<File
RelativePath="..\tc\tsricl.txt"
>
</File>
<File
RelativePath="..\tc\tstab.txt"
RelativePath="..\tc\tctabmod.txt"
>
</File>
</Filter>

View File

@ -931,6 +931,10 @@
Name="Trr"
Filter="trr"
>
<File
RelativePath="..\ve\f115.trr"
>
</File>
<File
RelativePath="..\ve\f33.trr"
>
@ -976,6 +980,10 @@
Name="Dir"
Filter="dir"
>
<File
RelativePath="..\ve\f115.dir"
>
</File>
<File
RelativePath="..\ve\f33.dir"
>

View File

@ -577,6 +577,10 @@
RelativePath="..\ve\ve2600.cpp"
>
</File>
<File
RelativePath="..\ve\ve2700.cpp"
>
</File>
<File
RelativePath="..\ve\velib01.cpp"
>
@ -652,10 +656,22 @@
RelativePath="..\ve\ve2500a.uml"
>
</File>
<File
RelativePath="..\ve\ve2500b.uml"
>
</File>
<File
RelativePath="..\ve\ve2600a.uml"
>
</File>
<File
RelativePath="..\ve\ve2700a.uml"
>
</File>
<File
RelativePath="..\ve\ve2700b.uml"
>
</File>
</Filter>
<Filter
Name="Headers"
@ -709,18 +725,22 @@
RelativePath="..\ve\ve2401.h"
>
</File>
<File
RelativePath="..\ve\ve2500.h"
>
</File>
<File
RelativePath="..\ve\ve2500a.h"
>
</File>
<File
RelativePath="..\ve\ve2500b.h"
>
</File>
<File
RelativePath="..\ve\ve2600a.h"
>
</File>
<File
RelativePath="..\ve\ve2700.h"
>
</File>
</Filter>
<File
RelativePath="..\Lib\AgaLib.lib"

View File

@ -21,9 +21,9 @@
///////////////////////////////////////////////////////////////////////////////
class TAggiorna_listini_edit_mask : public TAutomask
{
TMask* _query_mask; //puntatore alla maschera di query
TMask* _query_mask; //puntatore alla maschera di query
TString8 _curr_grmerc; //iniziale grmerc-sotgrmerc
bool _ges_um;
bool _ges_um; //gestione unità di misura del listino padre
protected:
//Metodi dello sheet listini figli
@ -33,12 +33,15 @@ protected:
//Metodi dello sheet aggiornamento multilistini
void set_header_multilistini_sheet(); //compila le intestazioni delle colonne dello sheet multilistino (costruttore)
int crea_famiglia_listini(TToken_string& keys_listini) const; //crea la famiglia padre+figli
void fill_multilistini_sheet(); //riempie lo sheet multilistino (on_field)
void update_sons_prices(); //aggiorna i prezzi dei listini figli (on_field)
int find_or_add_codart(TSheet_field& sf, const TString& codart, const TString& um); //cerca l'articolo nello sheet (on_field)
bool one_checked(); //controlla se nella colonna dei check ce ne è almeno 1 checkato (on_field)
int find_codart(TSheet_field& sf, const TString& codart, const TString& um) const; //cerca l'articolo (on_field)
int find_or_add_codart(TSheet_field& sf, const TString& codart, const TString& um); //cerca l'articolo nello sheet e lo aggiunge se non c'è (on_field)
bool one_checked() const; //controlla se nella colonna dei check ce ne è almeno 1 checkato (on_field)
void check_all(const bool checked); //checka-dechecka la colonna dei check (on_field)
void add_art(); //aggiunge un articolo ai listini (on_field)
void save_listini(); //salva tutte le righe listini (padre e figli) così come sono sullo sheet (on_field)
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
@ -177,8 +180,9 @@ void TAggiorna_listini_edit_mask::save_children_list()
//metodi F_MULTILISTINI
//restituisce la posizione della riga ALTA, quella disabilitata
int TAggiorna_listini_edit_mask::find_or_add_codart(TSheet_field& sf, const TString& codart, const TString& codum)
//cerca nello sheet la coppia codart+um che gli viene passata restituendo la posizione della riga ALTA..
//della coppia di righe sheet interessate (è la riga disabilitata);
int TAggiorna_listini_edit_mask::find_codart(TSheet_field& sf, const TString& codart, const TString& codum) const
{
//cerca la riga tra quelle esistenti
const int codart_pos = sf.cid2index(F_CODRIGA);
@ -192,33 +196,43 @@ int TAggiorna_listini_edit_mask::find_or_add_codart(TSheet_field& sf, const TStr
if (codart == art && (!_ges_um || codum == um))
return i - 1;
}
return -1;
}
//non trova la riga nel padre -> la aggiunge
TToken_string& row_alta = sf.row(-1);
sf.disable_cell(sf.items()-1, -1);
const TString& descr = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR);
row_alta.add(descr, codart_pos);
if (_ges_um)
row_alta.add(codum, codum_pos);
//cerca nello sheet la coppia codart+um che gli viene passata restituendo la posizione della riga ALTA..
//della coppia di righe sheet interessate (è la riga disabilitata); se non trova la coppia articolo+um ..
//..aggiunge la coppia di righe
int TAggiorna_listini_edit_mask::find_or_add_codart(TSheet_field& sf, const TString& codart, const TString& codum)
{
//cerca la riga nello sheet
int riga = find_codart(sf, codart, codum);
TToken_string& row_bassa = sf.row(-1);
row_bassa.add("X");
row_bassa.add(codart, codart_pos);
if (riga < 0)
{
const int codart_pos = sf.cid2index(F_CODRIGA);
const int codum_pos = codart_pos + 1;
return sf.items() - 2; //ritorna la penultima riga (riga alta)
//non trova la riga nel padre -> la aggiunge
TToken_string& row_alta = sf.row(-1);
sf.disable_cell(sf.items()-1, -1);
const TString& descr = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR);
row_alta.add(descr, codart_pos);
if (_ges_um)
row_alta.add(codum, codum_pos);
TToken_string& row_bassa = sf.row(-1);
row_bassa.add("X");
row_bassa.add(codart, codart_pos);
riga = sf.items() - 2; //ritorna la penultima riga (riga alta)
}
return riga;
}
//riempie lo sheet dei multilistini
void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
int TAggiorna_listini_edit_mask::crea_famiglia_listini(TToken_string& keys_listini) const
{
//popola il double-deck sheet
//cerca tutte le righe che appartengono a padre e figli; se una riga appartiene ad un figlio e non al padre..
//..viene aggiunta al padre medesimo (i padri devono sapere tutto dei figli, sennò che genitori sono?)
//se invece la riga appartiene al padre e non a uno o più figli questi ultimi saranno lasciati nella..
//..loro ignoranza di tale riga (un padre qualche vantaggio dovrà pur averlo, no?)
TToken_string keys_listini(140, ';');
keys_listini.separator(';');
TToken_string key;
key.add(get(F_FATHCATVEN));
@ -236,12 +250,28 @@ void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
key.trim();
keys_listini.add(key);
}
return keys_listini.items();
}
//riempie lo sheet dei multilistini
void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
{
//popola il double-deck sheet
//cerca tutte le righe che appartengono a padre e figli; se una riga appartiene ad un figlio e non al padre..
//..viene aggiunta al padre medesimo (i padri devono sapere tutto dei figli, sennò che genitori sono?)
//se invece la riga appartiene al padre e non a uno o più figli questi ultimi saranno lasciati nella..
//..loro ignoranza di tale riga (un padre qualche vantaggio dovrà pur averlo, no?)
TToken_string keys_listini(140, ';');
const int componenti_famiglia = crea_famiglia_listini(keys_listini);
TProgind pi(keys_listini.items(), TR("Creazione righe listini..."), true, true);
TSheet_field& sf_multilistini = sfield(F_MULTILISTINI);
sf_multilistini.destroy();
const int prezzo_pos = sf_multilistini.cid2index(F_PREZZO);
TToken_string key;
FOR_EACH_TOKEN(keys_listini, tok)
{
@ -319,7 +349,7 @@ void TAggiorna_listini_edit_mask::update_sons_prices()
}
//controlla sulla colonna delle spunte se almeno una è checkata
bool TAggiorna_listini_edit_mask::one_checked()
bool TAggiorna_listini_edit_mask::one_checked() const
{
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
@ -410,6 +440,91 @@ void TAggiorna_listini_edit_mask::add_art()
}
}
//salva i listini così come li trova sulle righe dello sheet multilistini
void TAggiorna_listini_edit_mask::save_listini()
{
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
const int prezzo_pos = sf_listini.cid2index(F_PREZZO);
TToken_string keys_listini;
const int num_listini_da_agg = crea_famiglia_listini(keys_listini);
TProgind pi(num_listini_da_agg, TR("Registrazione listini..."), true, true);
TToken_string key;
//giro su tutti i listini che compaiono nello sheet; padre e figli
//prende le righe di un listino alla volta
FOR_EACH_TOKEN(keys_listini, tok)
{
if (!pi.addstatus(1))
break;
key = tok; //assegnamento necessario causa tipo (se usasse tok direttamente non funzionerebbe)
const int pos = keys_listini.get_pos(key);
TString query;
query << "USE RCONDV\n";
query << "SELECT ANAMAG.GRMERC=#GRMERC\n";
query << "JOIN ANAMAG INTO CODART==CODRIGA\n";
query << "FROM TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
query << "TO TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
TISAM_recordset recset_rows(query);
TString8 grmerc;
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
recset_rows.set_var("#GRMERC", grmerc);
const TString4 catven = key.get(0);
recset_rows.set_var("#CATVEN", catven);
const TString4 cod = key.get(1);
recset_rows.set_var("#COD", cod);
const long recset_rows_items = recset_rows.items();
for (bool ok = recset_rows.move_first(); ok; ok = recset_rows.move_next())
{
TLocalisamfile& file = recset_rows.cursor()->file();
//prende codart e um dal record su file rcondv
const TString& codart = recset_rows.get(RCONDV_CODRIGA).as_string();
const TString& um = recset_rows.get(RCONDV_UM).as_string();
//cerca sullo sheet la coppia codart+um
const int riga_alta = find_codart(sf_listini, codart, um);
const real prezzo = sf_listini.row(riga_alta + 1).get(prezzo_pos + pos);
//se non la trova o se il prezzo è 0 elimina la riga dal file
if (riga_alta < 0 || prezzo == ZERO)
{
file.remove();
continue;
}
//alla fine della storia registra tutto lo sheet sul file
FOR_EACH_SHEET_ROW(sf_listini, r, riga)
{
//file.zero(); //achtung! se l'articolo è nuovo ci può stare, ma se c'era già no
file.put(RCONDV_TIPO, "L");
file.put(RCONDV_CATVEN, catven);
file.put(RCONDV_COD, cod);
file.put(RCONDV_TIPORIGA, "A");
file.put(RCONDV_CODRIGA, codart);
file.put(RCONDV_UM, um);
file.put(RCONDV_PREZZO, prezzo);
}
file.setkey(1);
const int nuovo_articolo = file.read();
//alla fine della fiera deve salvare su file veramente!
//se è in inserimento deve fare un write, se in modifica la rewrite
if (nuovo_articolo > 0)
file.rewrite_write();
else
file.write_rewrite();
}
}
}
bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch(o.dlg())
@ -444,6 +559,26 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
}
break;
case F_PREZZO:
if (e == fe_modify && real::is_null(o.get()))
{
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
TMask& rowmask = sf_listini.sheet_mask();
rowmask.field(DLG_USER).on_hit();
}
break;
case DLG_USER:
if (e == fe_button)
{
if (yesno_box(TR("Si conferma l'eliminazione di questo articolo da tutti i listini collegati?")))
{
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
const int selected_riga = sf_listini.selected();
TMask& rowmask = sf_listini.sheet_row_mask(selected_riga);
rowmask.reset(-1);
}
}
break;
//applica i cambiamenti dovuti ai ricarichi e salva questi ultimi in gmc
case DLG_APPLICA:
if (e == fe_button)
@ -466,6 +601,12 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
add_art();
}
break;
case DLG_SAVEREC:
if (e == fe_button)
{
save_listini();
}
break;
default:
break;
}
@ -524,10 +665,13 @@ void TAggiorna_listini_edit_mask::set_header_multilistini_sheet()
//..secondo la solita catven+codlis; fa sparire le colonne che non servono. Ricordiamo infatti che..
//...si posson avere al massimo 10 figli (controllo demografico sui listini)
TSheet_field& sf_multilistini = sfield(F_MULTILISTINI);
TMask& row_mask = sf_multilistini.sheet_row_mask(0);
TSheet_field& sf_figli = sfield(F_LISTINI_FIGLI);
TString column_header;
int num_of_columns = 3;
//giro su tutte le righe dello sheet dei figli per avere intestazioni da mettere nei campi..
//..dello sheet multilistinico
FOR_EACH_SHEET_ROW(sf_figli, r, riga)
{
column_header.cut(0);
@ -535,12 +679,21 @@ void TAggiorna_listini_edit_mask::set_header_multilistini_sheet()
column_header.trim();
column_header << riga->get(1);
//rinomina intestazione colonna dello sheet multilistinico
sf_multilistini.set_column_header(num_of_columns, column_header);
//sistema di conseguenza la maschera di riga
row_mask.efield(num_of_columns + 101).set_prompt(column_header);
num_of_columns ++;
}
//cancella i figli in eccesso
for( ;sf_multilistini.exist_column(num_of_columns); num_of_columns++)
{
//colonne sheet
sf_multilistini.delete_column(num_of_columns);
//sistema di conseguenza la maschera di riga
row_mask.efield(num_of_columns + 101).hide();
}
}
@ -702,6 +855,6 @@ bool TAggiorna_listini::create()
int ve2700(int argc, char* argv[])
{
TAggiorna_listini a;
a.run(argc, argv, TR("Aggiornamneto listini multiplo"));
a.run(argc, argv, TR("Sincronizzazione listini"));
return 0;
}

View File

@ -8,7 +8,7 @@ BEGIN
PICTURE TOOL_SAVEREC
END
BUTTON DLG_NULL 2 2
BUTTON DLG_NULL 4 2
BEGIN
PROMPT 2 1 ""
PICTURE 0
@ -32,29 +32,29 @@ BEGIN
PICTURE TOOL_IMPORT
END
BUTTON DLG_NULL 2 2
BUTTON DLG_NULL 4 2
BEGIN
PROMPT -1 1 ""
PROMPT 6 1 ""
PICTURE 0
END
BUTTON DLG_INFO 2 2
BEGIN
PROMPT 1 1 "Info"
PROMPT 7 1 "Info"
MESSAGE EXIT,K_F2
PICTURE TOOL_INFO
END
BUTTON DLG_HELP 2 2
BEGIN
PROMPT 2 1 "Help"
PROMPT 8 1 "Help"
MESSAGE EXIT,K_F1
PICTURE TOOL_HELP
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 3 1 "Annulla"
PROMPT 9 1 "Annulla"
MESSAGE EXIT,K_ESC
PICTURE TOOL_CANCEL
END
@ -238,30 +238,12 @@ ENDMASK
///////////////////////////////////////////////
//maschera di riga sheet aggiornamento listini
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
PAGE "Riga aggiornamento listini" -1 -1 78 22
PAGE "Riga aggiornamento listini" -1 -1 40 10
BOOLEAN F_CHECK
BEGIN
PROMPT 1 0 "Includere "
PROMPT 1 0 "Applica ricarico "
GROUP 1
END
STRING F_CODRIGA 50 20
@ -274,66 +256,97 @@ STRING F_PREZZO 8
BEGIN
PROMPT 1 2 "Prezzo "
FLAGS "R"
GROUP 1
END
CURRENCY F_LIST1 8
BEGIN
PROMPT 1 4 "List1 "
PROMPT 1 4 "List1 "
FLAGS "U"
GROUP 1
END
CURRENCY F_LIST2 8
BEGIN
PROMPT 1 5 "List2 "
PROMPT 1 5 "List2 "
FLAGS "U"
GROUP 1
END
CURRENCY F_LIST3 8
BEGIN
PROMPT 1 6 "List3 "
PROMPT 1 6 "List3 "
FLAGS "U"
GROUP 1
END
CURRENCY F_LIST4 8
BEGIN
PROMPT 1 7 "List4 "
PROMPT 1 7 "List4 "
FLAGS "U"
GROUP 1
END
CURRENCY F_LIST5 8
BEGIN
PROMPT 1 8 "List5 "
PROMPT 1 8 "List5 "
FLAGS "U"
GROUP 1
END
CURRENCY F_LIST6 8
BEGIN
PROMPT 1 9 "List6 "
PROMPT 21 4 "List6 "
FLAGS "U"
GROUP 1
END
CURRENCY F_LIST7 8
BEGIN
PROMPT 1 10 "List7 "
PROMPT 21 5 "List7 "
FLAGS "U"
GROUP 1
END
CURRENCY F_LIST8 8
BEGIN
PROMPT 1 11 "List8 "
PROMPT 21 6 "List8 "
FLAGS "U"
GROUP 1
END
CURRENCY F_LIST9 8
BEGIN
PROMPT 1 12 "List9 "
PROMPT 21 7 "List9 "
FLAGS "U"
GROUP 1
END
CURRENCY F_LIST10 8
BEGIN
PROMPT 1 13 "List10 "
PROMPT 21 8 "List10 "
FLAGS "U"
GROUP 1
END
ENDPAGE
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 ""
END
BUTTON DLG_USER 2 2
BEGIN
PROMPT 2 1 "A~zzera"
PICTURE TOOL_CELLULAR
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 3 1 ""
END
ENDPAGE