Patch level : 10.0
Files correlati : ve0200e.msk ve0.exe ve6.exe vetbcvm.msk Ricompilazione Demo : [ ] Commento : Aggiunto nuovo criterio di contabilizzazione per Categoria di Vendita/Gruppo Merceologico. Aggiunta tabella di modulo &CVM per l'immissione dei relativi conti. git-svn-id: svn://10.65.10.50/trunk@18411 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1ae303cb77
commit
143df3149d
@ -1,37 +1,17 @@
|
|||||||
#include "veconf.h"
|
#include "veconf.h"
|
||||||
|
|
||||||
TOOLBAR "" 0 0 0 2
|
TOOLBAR "" 0 0 0 2
|
||||||
|
#include <stdbar.h>
|
||||||
BUTTON DLG_OK 10 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT -14 -1 ""
|
|
||||||
END
|
|
||||||
|
|
||||||
BUTTON DLG_INFO 10 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT -24 -11 ""
|
|
||||||
END
|
|
||||||
|
|
||||||
BUTTON DLG_HELP 10 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT -34 -11 ""
|
|
||||||
END
|
|
||||||
|
|
||||||
BUTTON DLG_QUIT 10 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT -44 -1 ""
|
|
||||||
END
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Contabilizzazione" 0 0 0 0
|
PAGE "Contabilizzazione" 0 0 0 0
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 7
|
GROUPBOX DLG_NULL 78 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Ricerca primaria del conto di costo ricavo"
|
PROMPT 1 1 "@bRicerca primaria del conto di costo ricavo"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_RICERCACR1 36
|
LIST F_RICERCACR1 2 44
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Primo gruppo "
|
PROMPT 2 2 "Primo gruppo "
|
||||||
ITEM "CF|Clienti/Fornitori"
|
ITEM "CF|Clienti/Fornitori"
|
||||||
@ -39,11 +19,12 @@ ITEM "CA|Causale contabile"
|
|||||||
ITEM "AN|Anagrafica magazzino"
|
ITEM "AN|Anagrafica magazzino"
|
||||||
ITEM "CV|Categoria di vendita"
|
ITEM "CV|Categoria di vendita"
|
||||||
ITEM "CC|Categoria contabile"
|
ITEM "CC|Categoria contabile"
|
||||||
|
ITEM "VM|Categoria di vendita e gruppo merceologico"
|
||||||
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
||||||
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_RICERCACR2 36
|
LIST F_RICERCACR2 2 44
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Secondo gruppo "
|
PROMPT 2 3 "Secondo gruppo "
|
||||||
ITEM "-|Nessuno" MESSAGE CLEAR,1@
|
ITEM "-|Nessuno" MESSAGE CLEAR,1@
|
||||||
@ -52,11 +33,12 @@ ITEM "CA|Causale contabile" MESSAGE ENABLE,F_RICERCACR3
|
|||||||
ITEM "AN|Anagrafica magazzino" MESSAGE ENABLE,F_RICERCACR3
|
ITEM "AN|Anagrafica magazzino" MESSAGE ENABLE,F_RICERCACR3
|
||||||
ITEM "CV|Categoria di vendita" MESSAGE ENABLE,F_RICERCACR3
|
ITEM "CV|Categoria di vendita" MESSAGE ENABLE,F_RICERCACR3
|
||||||
ITEM "CC|Categoria contabile" MESSAGE ENABLE,F_RICERCACR3
|
ITEM "CC|Categoria contabile" MESSAGE ENABLE,F_RICERCACR3
|
||||||
|
ITEM "VM|Categoria di vendita e gruppo merceologico" MESSAGE ENABLE,F_RICERCACR3
|
||||||
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
||||||
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_RICERCACR3 36
|
LIST F_RICERCACR3 2 44
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Terzo gruppo "
|
PROMPT 2 4 "Terzo gruppo "
|
||||||
ITEM "-|Nessuno" MESSAGE CLEAR,2@
|
ITEM "-|Nessuno" MESSAGE CLEAR,2@
|
||||||
@ -65,12 +47,13 @@ ITEM "CA|Causale contabile" MESSAGE ENABLE,F_RICERCACR4
|
|||||||
ITEM "AN|Anagrafica magazzino" MESSAGE ENABLE,F_RICERCACR4
|
ITEM "AN|Anagrafica magazzino" MESSAGE ENABLE,F_RICERCACR4
|
||||||
ITEM "CV|Categoria di vendita" MESSAGE ENABLE,F_RICERCACR4
|
ITEM "CV|Categoria di vendita" MESSAGE ENABLE,F_RICERCACR4
|
||||||
ITEM "CC|Categoria contabile" MESSAGE ENABLE,F_RICERCACR4
|
ITEM "CC|Categoria contabile" MESSAGE ENABLE,F_RICERCACR4
|
||||||
|
ITEM "VM|Categoria di vendita e gruppo merceologico" MESSAGE ENABLE,F_RICERCACR4
|
||||||
GROUP 1
|
GROUP 1
|
||||||
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
||||||
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_RICERCACR4 36
|
LIST F_RICERCACR4 2 44
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 5 "Quarto gruppo "
|
PROMPT 2 5 "Quarto gruppo "
|
||||||
ITEM "-|Nessuno" MESSAGE CLEAR,F_RICERCACR5
|
ITEM "-|Nessuno" MESSAGE CLEAR,F_RICERCACR5
|
||||||
@ -79,12 +62,13 @@ ITEM "CA|Causale contabile" MESSAGE ENABLE,F_RICERCACR5
|
|||||||
ITEM "AN|Anagrafica magazzino" MESSAGE ENABLE,F_RICERCACR5
|
ITEM "AN|Anagrafica magazzino" MESSAGE ENABLE,F_RICERCACR5
|
||||||
ITEM "CV|Categoria di vendita" MESSAGE ENABLE,F_RICERCACR5
|
ITEM "CV|Categoria di vendita" MESSAGE ENABLE,F_RICERCACR5
|
||||||
ITEM "CC|Categoria contabile" MESSAGE ENABLE,F_RICERCACR5
|
ITEM "CC|Categoria contabile" MESSAGE ENABLE,F_RICERCACR5
|
||||||
|
ITEM "VM|Categoria di vendita e gruppo merceologico" MESSAGE ENABLE,F_RICERCACR5
|
||||||
GROUP 1 2
|
GROUP 1 2
|
||||||
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
||||||
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_RICERCACR5 36
|
LIST F_RICERCACR5 2 44
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Quinto gruppo "
|
PROMPT 2 6 "Quinto gruppo "
|
||||||
ITEM "-|Nessuno"
|
ITEM "-|Nessuno"
|
||||||
@ -93,6 +77,7 @@ ITEM "CA|Causale contabile"
|
|||||||
ITEM "AN|Anagrafica magazzino"
|
ITEM "AN|Anagrafica magazzino"
|
||||||
ITEM "CV|Categoria di vendita"
|
ITEM "CV|Categoria di vendita"
|
||||||
ITEM "CC|Categoria contabile"
|
ITEM "CC|Categoria contabile"
|
||||||
|
ITEM "VM|Categoria di vendita e gruppo merceologico"
|
||||||
GROUP 1 2
|
GROUP 1 2
|
||||||
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
|
||||||
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
|
||||||
@ -100,10 +85,10 @@ END
|
|||||||
|
|
||||||
GROUPBOX DLG_NULL 78 6
|
GROUPBOX DLG_NULL 78 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 "Ricerca per anagrafica del conto di costo ricavo"
|
PROMPT 1 8 "@bRicerca per anagrafica del conto di costo ricavo"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_RICERCAAN1 36
|
LIST F_RICERCAAN1 2 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Primo gruppo "
|
PROMPT 2 9 "Primo gruppo "
|
||||||
ITEM "AR|Articolo"
|
ITEM "AR|Articolo"
|
||||||
@ -114,7 +99,7 @@ ITEM "RF|Raggruppamento fiscale"
|
|||||||
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
|
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_RICERCAAN2 36
|
LIST F_RICERCAAN2 2 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Secondo gruppo "
|
PROMPT 2 10 "Secondo gruppo "
|
||||||
ITEM "-|Nessuno" MESSAGE CLEAR,3@
|
ITEM "-|Nessuno" MESSAGE CLEAR,3@
|
||||||
@ -126,7 +111,7 @@ ITEM "RF|Raggruppamento fiscale" MESSAGE ENABLE,F_RICERCAAN3
|
|||||||
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
|
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_RICERCAAN3 36
|
LIST F_RICERCAAN3 2 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 "Terzo gruppo "
|
PROMPT 2 11 "Terzo gruppo "
|
||||||
ITEM "-|Nessuno" MESSAGE CLEAR,F_RICERCAAN4
|
ITEM "-|Nessuno" MESSAGE CLEAR,F_RICERCAAN4
|
||||||
@ -139,7 +124,7 @@ GROUP 3
|
|||||||
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
|
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_RICERCAAN4 36
|
LIST F_RICERCAAN4 2 30
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 "Quarto gruppo "
|
PROMPT 2 12 "Quarto gruppo "
|
||||||
ITEM "-|Nessuno"
|
ITEM "-|Nessuno"
|
||||||
|
263
ve/ve0600.cpp
263
ve/ve0600.cpp
@ -1,27 +1,12 @@
|
|||||||
#include "ve0.h"
|
#include "ve0.h"
|
||||||
|
|
||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
|
#include <colors.h>
|
||||||
#include <modtbapp.h>
|
#include <modtbapp.h>
|
||||||
|
#include <recset.h>
|
||||||
|
#include <tabmod.h>
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
#include "../cg/cglib01.h"
|
||||||
// Maschera di gestione tabella CVM:
|
|
||||||
// Condizioni di vendita per categoria e gruppo merceologico
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
class TCVM_mask : public TAutomask
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
||||||
|
|
||||||
public:
|
|
||||||
int load(const TRectype& head) { return 0; }
|
|
||||||
TCVM_mask() : TAutomask("vetbcvm") {}
|
|
||||||
};
|
|
||||||
|
|
||||||
bool TCVM_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Applicazione per gestione maschere di modulo
|
// Applicazione per gestione maschere di modulo
|
||||||
@ -29,38 +14,240 @@ bool TCVM_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|||||||
|
|
||||||
class TVE_tab_mod_app : public TTable_module_application
|
class TVE_tab_mod_app : public TTable_module_application
|
||||||
{
|
{
|
||||||
protected:
|
|
||||||
virtual TMask* user_create_mask();
|
|
||||||
virtual int read(TMask& m);
|
|
||||||
|
|
||||||
public:
|
|
||||||
const TString& table_name() const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const TString& TVE_tab_mod_app::table_name() const
|
///////////////////////////////////////////////////////////
|
||||||
|
// Maschera di gestione tabella CVM:
|
||||||
|
// Condizioni di vendita per categoria e gruppo merceologico
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "vetbcvm.h"
|
||||||
|
|
||||||
|
class TCVM_mask : public TAutomask
|
||||||
{
|
{
|
||||||
TRelation* rel = get_relation();
|
protected:
|
||||||
return rel->curr().get("COD");
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TCVM_mask();
|
||||||
|
};
|
||||||
|
|
||||||
|
TCVM_mask::TCVM_mask() : TAutomask("vetbcvm")
|
||||||
|
{
|
||||||
|
TSheet_field& s = sfield(F_CVM_SHT);
|
||||||
|
s.set_nav_column(F_CVM_SOTTOCONTO, F_CVM_DESCONTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
TMask* TVE_tab_mod_app::user_create_mask()
|
bool TCVM_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
if (table_name() == "CVM")
|
switch(o.dlg())
|
||||||
return new TCVM_mask;
|
{
|
||||||
return TTable_module_application::user_create_mask();
|
case F_CVM_SHT:
|
||||||
|
switch (e)
|
||||||
|
{
|
||||||
|
case se_query_add:
|
||||||
|
case se_query_del:
|
||||||
|
return false; // Non sono ammesse aggiunte o cancellazioni
|
||||||
|
case se_notify_modify:
|
||||||
|
{
|
||||||
|
TSheet_field& s = (TSheet_field&)o;
|
||||||
|
TToken_string& row = s.row(jolly);
|
||||||
|
const long sc = row.get_long(s.cid2index(F_CVM_SOTTOCONTO));
|
||||||
|
if (sc > 0) // Colora le righe valide
|
||||||
|
s.set_back_and_fore_color(REQUIRED_BACK_COLOR, NORMAL_COLOR, jolly);
|
||||||
|
else
|
||||||
|
s.set_back_and_fore_color(COLOR_INVALID, COLOR_INVALID, jolly);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TVE_tab_mod_app::read(TMask& m)
|
class TCVM_tab_app : public TRelation_application
|
||||||
{
|
{
|
||||||
if (table_name() == "CVM")
|
TCVM_mask* _msk;
|
||||||
return ((TCVM_mask&)m).load(get_relation()->curr());
|
TRelation* _rel;
|
||||||
return TTable_module_application::read(m);
|
|
||||||
|
protected:
|
||||||
|
int find_gm(TSheet_field& s, const TString& gm) const;
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual TMask* get_mask(int) { return _msk; }
|
||||||
|
virtual TRelation* get_relation() const { return _rel; }
|
||||||
|
|
||||||
|
virtual bool user_create();
|
||||||
|
virtual bool user_destroy();
|
||||||
|
|
||||||
|
virtual void init_query_mode(TMask& m);
|
||||||
|
virtual void init_insert_mode(TMask& m);
|
||||||
|
virtual void init_modify_mode(TMask& m);
|
||||||
|
|
||||||
|
virtual int read(TMask& m);
|
||||||
|
virtual int write(const TMask& m);
|
||||||
|
virtual int rewrite(const TMask& m);
|
||||||
|
virtual bool remove();
|
||||||
|
};
|
||||||
|
|
||||||
|
void TCVM_tab_app::init_query_mode(TMask& m)
|
||||||
|
{
|
||||||
|
m.enable(-2);
|
||||||
|
m.hide(-3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TCVM_tab_app::init_insert_mode(TMask& m)
|
||||||
|
{
|
||||||
|
m.disable(-2);
|
||||||
|
m.show(-3);
|
||||||
|
read(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TCVM_tab_app::init_modify_mode(TMask& m)
|
||||||
|
{
|
||||||
|
m.disable(-2);
|
||||||
|
m.show(-3);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TCVM_tab_app::user_create()
|
||||||
|
{
|
||||||
|
_rel = new TRelation("CVE");
|
||||||
|
_msk = new TCVM_mask;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TCVM_tab_app::find_gm(TSheet_field& s, const TString& gm) const
|
||||||
|
{
|
||||||
|
int mini = 0, maxi = s.items()-1, midi = 0;
|
||||||
|
|
||||||
|
TString8 code;
|
||||||
|
while (mini <= maxi)
|
||||||
|
{
|
||||||
|
midi = (mini+maxi) / 2;
|
||||||
|
s.row(midi).get(0, code);
|
||||||
|
const int cmp = code.compare(gm);
|
||||||
|
if (cmp == 0)
|
||||||
|
break;
|
||||||
|
if (cmp > 0)
|
||||||
|
maxi = midi-1;
|
||||||
|
else
|
||||||
|
mini = midi+1;
|
||||||
|
}
|
||||||
|
return code == gm ? midi : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TCVM_tab_app::read(TMask& m)
|
||||||
|
{
|
||||||
|
TSheet_field& s = m.sfield(F_CVM_SHT);
|
||||||
|
s.destroy();
|
||||||
|
|
||||||
|
const TString& code = m.get(F_CVM_COD);
|
||||||
|
if (code.full())
|
||||||
|
{
|
||||||
|
TISAM_recordset gm("USE GMC");
|
||||||
|
for (bool ok = gm.move_first(); ok; ok = gm.move_next())
|
||||||
|
{
|
||||||
|
TToken_string& row = s.row(-1);
|
||||||
|
row = gm.get("CODTAB").as_string();
|
||||||
|
row.add(gm.get("S0").as_string());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!s.empty())
|
||||||
|
{
|
||||||
|
TISAM_recordset cvm("USE &CVM\nFROM CODTAB=#COD\nTO CODTAB=#COD");
|
||||||
|
cvm.set_var("#COD", code);
|
||||||
|
TString8 gm;
|
||||||
|
for (bool ok = cvm.move_first(); ok; ok = cvm.move_next())
|
||||||
|
{
|
||||||
|
gm = cvm.get("CODTAB[3,7]").as_string();
|
||||||
|
const int i = find_gm(s, gm);
|
||||||
|
if (i >= 0)
|
||||||
|
{
|
||||||
|
const int gr = cvm.get("I0").as_int();
|
||||||
|
const int co = cvm.get("I1").as_int();
|
||||||
|
const long so = cvm.get("I2").as_int();
|
||||||
|
if (so > 0)
|
||||||
|
{
|
||||||
|
TBill zio(gr, co, so);
|
||||||
|
TToken_string& row = s.row(i);
|
||||||
|
zio.add_to(row, 2, 0x2);
|
||||||
|
s.set_back_and_fore_color(REQUIRED_BACK_COLOR, NORMAL_COLOR, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return s.empty() ? _iskeynotfound : NOERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TCVM_tab_app::write(const TMask& m)
|
||||||
|
{
|
||||||
|
TSheet_field& s = m.sfield(F_CVM_SHT);
|
||||||
|
TModule_table cvm("&CVM");
|
||||||
|
FOR_EACH_SHEET_ROW(s, i, row)
|
||||||
|
{
|
||||||
|
const TBill zio(*row, 2);
|
||||||
|
TString16 code = m.get(F_CVM_COD);
|
||||||
|
code << row->get(0);
|
||||||
|
cvm.put("CODTAB", code);
|
||||||
|
if (zio.ok())
|
||||||
|
{
|
||||||
|
cvm.put("I0", zio.gruppo());
|
||||||
|
cvm.put("I1", zio.conto());
|
||||||
|
cvm.put("I2", zio.sottoconto());
|
||||||
|
cvm.rewrite_write();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cvm.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NOERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TCVM_tab_app::rewrite(const TMask& m)
|
||||||
|
{
|
||||||
|
return write(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TCVM_tab_app::remove()
|
||||||
|
{
|
||||||
|
const TString4 code = get_relation()->curr().get("CODTAB");
|
||||||
|
TISAM_recordset cvm("USE &CVM\nFROM CODTAB=#COD\nTO CODTAB=#COD");
|
||||||
|
cvm.set_var("#COD", code);
|
||||||
|
TLocalisamfile& f = cvm.cursor()->file();
|
||||||
|
for (bool ok = cvm.move_first(); ok; ok = cvm.move_next())
|
||||||
|
f.remove();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TCVM_tab_app::user_destroy()
|
||||||
|
{
|
||||||
|
delete _msk;
|
||||||
|
delete _rel;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// Selettore applicazione per gestione maschere di modulo
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
int ve0600(int argc, char* argv[])
|
int ve0600(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TVE_tab_mod_app a;
|
TString4 tab = argv[2];
|
||||||
a.run(argc, argv, TR("Tabelle module vendite"));
|
tab.upper(); tab.strip("&");
|
||||||
|
|
||||||
|
if (tab == "CVM")
|
||||||
|
{
|
||||||
|
TCVM_tab_app a;
|
||||||
|
a.run(argc, argv, TR("Conti per categoria e gruppo"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TVE_tab_mod_app a;
|
||||||
|
a.run(argc, argv, TR("Tabelle module vendite"));
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
25
ve/ve6.cpp
25
ve/ve6.cpp
@ -8,23 +8,14 @@ int main( int argc, char** argv )
|
|||||||
|
|
||||||
switch (r)
|
switch (r)
|
||||||
{
|
{
|
||||||
case 2:
|
case 2: ve6200(argc, argv); break; // creazione fatture partendo da bolle
|
||||||
ve6200(argc, argv); break; // creazione fatture partendo da bolle
|
case 3: ve6300(argc, argv); break; // generazione effetti
|
||||||
case 3:
|
case 4: ve6400(argc, argv); break; // generazione scontrini
|
||||||
ve6300(argc, argv); break; // generazione effetti
|
case 5: ve6500(argc, argv); break; // generazione righe da penna ottica
|
||||||
case 4:
|
case 6: ve6600(argc, argv); break; // collegamento contabilita' industriosa
|
||||||
ve6400(argc, argv); break; // generazione scontrini
|
case 7: ve6700(argc, argv); break; // copia documenti interattiva da ditta a ditta
|
||||||
case 5:
|
case 8: ve6800(argc, argv); break; // contabilizzazione analitica documenti
|
||||||
ve6500(argc, argv); break; // generazione righe da penna ottica
|
default: ve6100(argc, argv); break; // contabilizzazione documenti
|
||||||
case 6:
|
|
||||||
ve6600(argc, argv); break; // collegamento contabilita' industriosa
|
|
||||||
case 7:
|
|
||||||
ve6700(argc, argv); break; // copia documenti interattiva da ditta a ditta
|
|
||||||
case 8:
|
|
||||||
ve6800(argc, argv); break; // contabilizzazione analitica documenti
|
|
||||||
default:
|
|
||||||
ve6100(argc, argv); break; // contabilizzazione documenti
|
|
||||||
}
|
}
|
||||||
exit(0);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
110
ve/velib04b.cpp
110
ve/velib04b.cpp
@ -1604,14 +1604,12 @@ error_type TContabilizzazione::search_costo_ricavo(TBill& conto, const TRiga_doc
|
|||||||
long so = cli_file.get_long(CLI_SOTTOCRIC);
|
long so = cli_file.get_long(CLI_SOTTOCRIC);
|
||||||
conto.set(gr,co,so);
|
conto.set(gr,co,so);
|
||||||
if (conto.ok()) break; // se lo trova esce (tutti != 0)
|
if (conto.ok()) break; // se lo trova esce (tutti != 0)
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
if (tok == "CA")
|
if (tok == "CA")
|
||||||
{
|
{
|
||||||
CHECK(_caus,"Causale documento non valida");
|
CHECK(_caus,"Causale documento non valida");
|
||||||
if (_caus->IVA2bill(codiva,conto)) break; // se lo trova esce
|
if (_caus->IVA2bill(codiva,conto)) break; // se lo trova esce
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
if (tok == "AR")
|
if (tok == "AR")
|
||||||
{
|
{
|
||||||
if (skip_art_related) continue;
|
if (skip_art_related) continue;
|
||||||
@ -1621,60 +1619,82 @@ error_type TContabilizzazione::search_costo_ricavo(TBill& conto, const TRiga_doc
|
|||||||
conto.set(gr,co,so);
|
conto.set(gr,co,so);
|
||||||
if (!conto.ok()) // se il conto non c'e' guarda la categoria acquisti/vendite
|
if (!conto.ok()) // se il conto non c'e' guarda la categoria acquisti/vendite
|
||||||
{
|
{
|
||||||
TTable *t = is_cli ? _cra : _caa;
|
TTable& t = is_cli ? *_cra : *_caa;
|
||||||
|
t.put("CODTAB", _anamag->get(is_cli ? ANAMAG_CATCONV : ANAMAG_CATCONA));
|
||||||
t->put("CODTAB",_anamag->get(is_cli ? ANAMAG_CATCONV : ANAMAG_CATCONA));
|
if (t.read() == NOERR)
|
||||||
if (t->read() == NOERR)
|
|
||||||
{
|
{
|
||||||
gr = atoi(t->get("I0"));
|
gr = t.get_int("I0");
|
||||||
co = atoi(t->get("I1"));
|
co = t.get_int("I1");
|
||||||
so = atol(t->get("I2"));
|
so = t.get_long("I2");
|
||||||
conto.set(gr,co,so);
|
conto.set(gr, co, so);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (conto.ok()) break;
|
if (conto.ok())
|
||||||
}
|
break;
|
||||||
else
|
} else
|
||||||
if (tok == "GM" || tok == "SM" || tok == "RF")
|
if (tok == "GM" || tok == "SM" || tok == "RF")
|
||||||
{
|
{
|
||||||
if (skip_art_related) continue;
|
if (skip_art_related) continue;
|
||||||
const bool is_fis = tok == "RF";
|
const bool is_fis = tok == "RF";
|
||||||
TTable * tab = is_fis ? _rfa : _gmc;
|
TTable& tab = is_fis ? *_rfa : *_gmc;
|
||||||
TString16 codtab(_anamag->get(is_fis ? ANAMAG_RAGGFIS : ANAMAG_GRMERC));
|
TString16 codtab =_anamag->get(is_fis ? ANAMAG_RAGGFIS : ANAMAG_GRMERC);
|
||||||
if (tok == "GM" && codtab.len() > 3)
|
if (tok == "GM" && codtab.len() > 3)
|
||||||
codtab.cut(3); // gli ultimi 2 si riferiscono al sottogruppo.
|
codtab.cut(3); // gli ultimi 2 si riferiscono al sottogruppo.
|
||||||
tab->put("CODTAB",codtab);
|
tab.put("CODTAB",codtab);
|
||||||
if (tab->read() == NOERR)
|
if (tab.read() == NOERR)
|
||||||
{
|
{
|
||||||
int gr = tab->get_int(is_cli ? "I3" : "I0");
|
int gr = tab.get_int(is_cli ? "I3" : "I0");
|
||||||
int co = tab->get_int(is_cli ? "I4" : "I1");
|
int co = tab.get_int(is_cli ? "I4" : "I1");
|
||||||
long so = tab->get_long(is_cli ? "I5" : "I2");
|
long so = tab.get_long(is_cli ? "I5" : "I2");
|
||||||
conto.set(gr,co,so);
|
conto.set(gr, co, so);
|
||||||
}
|
}
|
||||||
if (conto.ok()) break;
|
if (conto.ok())
|
||||||
}
|
break;
|
||||||
else
|
} else
|
||||||
if (tok == "CV" || tok == "CC")
|
if (tok == "CV" || tok == "CC")
|
||||||
{
|
{
|
||||||
const bool is_cve = tok == "CV";
|
const bool is_cve = tok == "CV";
|
||||||
if (is_cve && !is_cli) continue; // se e' un fornitore salta questa condizione
|
if (is_cve && !is_cli) continue; // se e' un fornitore salta questa condizione
|
||||||
TTable* t = is_cve ? _cve : _cco;
|
TTable& t = is_cve ? *_cve : *_cco;
|
||||||
TString16 cod(is_cve ? r.doc().get(DOC_CATVEN) : EMPTY_STRING);
|
TString16 cod = is_cve ? r.doc().get(DOC_CATVEN) : EMPTY_STRING;
|
||||||
if (cod.empty())
|
if (cod.empty())
|
||||||
{
|
{
|
||||||
if (skip_clifo) continue; // se non aveva trovato il cliente salta al prossimo
|
if (skip_clifo) continue; // se non aveva trovato il cliente salta al prossimo
|
||||||
cod = _clifo->lfile(LF_CFVEN).get(is_cve ? CFV_CATVEN : CFV_CODCATC);
|
cod = _clifo->curr(LF_CFVEN).get(is_cve ? CFV_CATVEN : CFV_CODCATC);
|
||||||
}
|
}
|
||||||
t->put("CODTAB",cod);
|
t.put("CODTAB",cod);
|
||||||
if (t->read() == NOERR)
|
if (t.read() == NOERR)
|
||||||
{
|
{
|
||||||
const bool x =(is_cve || is_cli);
|
const bool x = (is_cve || is_cli);
|
||||||
int gr = t->get_int(x ? "I3" : "I0");
|
const int gr = t.get_int(x ? "I3" : "I0");
|
||||||
int co = t->get_int(x ? "I4" : "I1");
|
const int co = t.get_int(x ? "I4" : "I1");
|
||||||
long so = t->get_long(x ? "I5": "I2");
|
const long so = t.get_long(x ? "I5": "I2");
|
||||||
conto.set(gr,co,so);
|
conto.set(gr,co,so);
|
||||||
}
|
}
|
||||||
if (conto.ok()) break;
|
if (conto.ok())
|
||||||
|
break;
|
||||||
|
} else
|
||||||
|
if (tok == "VM")
|
||||||
|
{
|
||||||
|
if (!is_cli) continue; // se non e' un cliente salta questa condizione
|
||||||
|
// Costruisco il codice Categoria(2)+Gruppo(3)+Sottogruppo(2)
|
||||||
|
TString8 cod = _clifo->curr(LF_CFVEN).get(CFV_CATVEN);
|
||||||
|
cod << _anamag->get(ANAMAG_GRMERC);
|
||||||
|
const TRectype* t = &cache().get("&CVM", cod);
|
||||||
|
if (t->empty() && cod.len() > 5)
|
||||||
|
{
|
||||||
|
cod.cut(5); // Tiene solo categoria+gruppo e scarta il sottogruppo
|
||||||
|
t = &cache().get("&CVM", cod);
|
||||||
|
}
|
||||||
|
if (!t->empty())
|
||||||
|
{
|
||||||
|
const int gr = t->get_int("I0");
|
||||||
|
const int co = t->get_int("I1");
|
||||||
|
const long so = t->get_long("I2");
|
||||||
|
conto.set(gr,co,so);
|
||||||
|
if (conto.ok())
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1690,9 +1710,9 @@ error_type TContabilizzazione::search_costo_ricavo(TBill& conto, const TRiga_doc
|
|||||||
conto.set(gr,co,so);
|
conto.set(gr,co,so);
|
||||||
if (!conto.ok())
|
if (!conto.ok())
|
||||||
{
|
{
|
||||||
gr = r.get_int("QTAGG1");
|
gr = r.get_int(RDOC_QTAGG1);
|
||||||
co = r.get_int("QTAGG2");
|
co = r.get_int(RDOC_QTAGG2);
|
||||||
so = r.get_long("QTAGG3");
|
so = r.get_long(RDOC_QTAGG3);
|
||||||
conto.set(gr,co,so);
|
conto.set(gr,co,so);
|
||||||
|
|
||||||
if (!conto.ok()) // Cerca il conto nella stringa di ricerca (solo per prestazioni)
|
if (!conto.ok()) // Cerca il conto nella stringa di ricerca (solo per prestazioni)
|
||||||
@ -2321,14 +2341,14 @@ error_type TContabilizzazione::compile_rows_mov(TDocumento& doc)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (contomat.ok() && contomat != conto && pricemat != 0)
|
if (contomat.ok() && contomat != conto && pricemat != 0)
|
||||||
{
|
{
|
||||||
TRiga_documento rlav(r);
|
TRiga_documento rlav(r);
|
||||||
TRiga_documento rmat(r);
|
TRiga_documento rmat(r);
|
||||||
const real prezzo = r.get_real(RDOC_PREZZO);
|
const real prezzo = r.get_real(RDOC_PREZZO);
|
||||||
rmat.put(RDOC_PREZZO, pricemat);
|
rmat.put(RDOC_PREZZO, pricemat);
|
||||||
const real valmat = rmat.imponibile();
|
const real valmat = rmat.imponibile();
|
||||||
const real diff = r.imponibile() - valmat;
|
const real diff = r.imponibile() - valmat;
|
||||||
|
|
||||||
rlav.put(RDOC_PREZZO, diff);
|
rlav.put(RDOC_PREZZO, diff);
|
||||||
rlav.put(RDOC_QTA, 1);
|
rlav.put(RDOC_QTA, 1);
|
||||||
@ -2343,8 +2363,6 @@ error_type TContabilizzazione::compile_rows_mov(TDocumento& doc)
|
|||||||
_righe_iva->add(r, conto);
|
_righe_iva->add(r, conto);
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString4 cod(r.get(RDOC_CODIVA));
|
|
||||||
|
|
||||||
if (r.doc().tipo().calcolo_lordo()) // Si ricorda che calcolo_lordo() e fattura_commerciale() sono esclusivi.
|
if (r.doc().tipo().calcolo_lordo()) // Si ricorda che calcolo_lordo() e fattura_commerciale() sono esclusivi.
|
||||||
{
|
{
|
||||||
// Totalizza per ogni codice iva il lordo
|
// Totalizza per ogni codice iva il lordo
|
||||||
@ -4276,7 +4294,7 @@ bool TContabilizzazione::elabora(TLista_documenti& doc_in, TLista_documenti& doc
|
|||||||
if (_error == movement_error || !_movimento->movement_ok())
|
if (_error == movement_error || !_movimento->movement_ok())
|
||||||
{
|
{
|
||||||
TToken_string str(32, ' ');
|
TToken_string str(32, ' ');
|
||||||
msg.format("%24s %24s Conto", "Dare", "Avere");
|
msg.format(FR("%24s %24s Conto"), TR("Dare"), TR("Avere"));
|
||||||
_viswin->add_line(msg);
|
_viswin->add_line(msg);
|
||||||
|
|
||||||
const int imax = _movimento->cg_items();
|
const int imax = _movimento->cg_items();
|
||||||
@ -4325,9 +4343,9 @@ bool TContabilizzazione::elabora(TLista_documenti& doc_in, TLista_documenti& doc
|
|||||||
if (!interattivo)
|
if (!interattivo)
|
||||||
{
|
{
|
||||||
if (_viswin->frozen())
|
if (_viswin->frozen())
|
||||||
message_box("Contabilizzazione interrotta dall'utente");
|
warning_box(TR("Contabilizzazione interrotta dall'utente"));
|
||||||
else
|
else
|
||||||
message_box("Contabilizzazione terminata");
|
message_box(TR("Contabilizzazione terminata"));
|
||||||
}
|
}
|
||||||
if (!exporting())
|
if (!exporting())
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,7 @@ TOOLBAR "Toolbar" 0 0 0 2
|
|||||||
#include <relapbar.h>
|
#include <relapbar.h>
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Conti di vendita per categoria e gruppo" 0 2 0 0
|
PAGE "Conti per categoria di vendita e gruppo merceologico" 0 2 0 0
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 3
|
GROUPBOX DLG_NULL 78 3
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -20,7 +20,8 @@ BEGIN
|
|||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_CVM_COD CODTAB
|
OUTPUT F_CVM_COD CODTAB
|
||||||
OUTPUT F_CVM_DES S0
|
OUTPUT F_CVM_DES S0
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE FORCED
|
||||||
|
FLAGS "U"
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -33,47 +34,52 @@ BEGIN
|
|||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
COPY OUTPUT F_CVM_COD
|
COPY OUTPUT F_CVM_COD
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
KEY 1
|
GROUP 2
|
||||||
|
KEY 2
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 "@bGruppi merceologici"
|
PROMPT 1 3 "@bGruppi merceologici"
|
||||||
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
SPREADSHEET F_CVM_SHT
|
SPREADSHEET F_CVM_SHT
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 4 ""
|
PROMPT 0 4 ""
|
||||||
ITEM "Gruppo\nMerc."
|
ITEM "Gruppo\nMerc.@6F"
|
||||||
ITEM "Descrizione\nGruppo merceologico@50"
|
ITEM "Descrizione\nGruppo merceologico@50"
|
||||||
ITEM "Gruppo\nCont."
|
ITEM "Gruppo\nCont.@5"
|
||||||
ITEM "Conto\nCont."
|
ITEM "Conto\nCont.@5"
|
||||||
ITEM "Sottoconto\nCont."
|
ITEM "Sottoconto\nCont.@9"
|
||||||
ITEM "Descrizione\nConto contabile@50"
|
ITEM "Descrizione\nConto contabile@50"
|
||||||
|
GROUP 3
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
PAGE "Conto" -1 -1 60 6
|
PAGE "Conto" -1 -1 56 8
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 58 3
|
GROUPBOX DLG_NULL 54 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Gruppo Merceologico"
|
PROMPT 1 0 "Gruppo Merceologico"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CVM_CODGM 5
|
STRING F_CVM_CODGM 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Codice "
|
PROMPT 2 1 "Codice "
|
||||||
|
FLAGS "DU"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CVM_DESGM 50
|
STRING F_CVM_DESGM 52
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 12 2 ""
|
PROMPT 2 2 ""
|
||||||
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 58 4
|
GROUPBOX DLG_NULL 54 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Conto contabile"
|
PROMPT 1 4 "Conto contabile"
|
||||||
END
|
END
|
||||||
@ -81,25 +87,72 @@ END
|
|||||||
NUMBER F_CVM_GRUPPO 3
|
NUMBER F_CVM_GRUPPO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 5 "Gruppo "
|
PROMPT 2 5 "Gruppo "
|
||||||
|
FLAGS "U"
|
||||||
|
GROUP 4
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CVM_CONTO 3
|
NUMBER F_CVM_CONTO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 16 5 "Conto "
|
PROMPT 18 5 "Conto "
|
||||||
|
FLAGS "U"
|
||||||
|
VALIDATE REQIF_FUNC 1 F_CVM_GRUPPO
|
||||||
|
GROUP 4
|
||||||
|
WARNING "Conto errato o mancante"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CVM_SOTTOCONTO 6
|
NUMBER F_CVM_SOTTOCONTO 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 30 5 "Sottoconto "
|
PROMPT 35 5 "Sottoconto "
|
||||||
USE LF_PCON
|
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||||
INPUT GRUPPO F_CVM_GRUPPO
|
INPUT GRUPPO F_CVM_GRUPPO
|
||||||
INPUT CONTO F_CVM_CONTO
|
INPUT CONTO F_CVM_CONTO
|
||||||
INPUT SOTTOCONTO F_CVM_SOTTOCONTO
|
INPUT SOTTOCONTO F_CVM_SOTTOCONTO
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_CVM_GRUPPO GRUPPO
|
||||||
|
OUTPUT F_CVM_CONTO CONTO
|
||||||
|
OUTPUT F_CVM_SOTTOCONTO SOTTOCONTO
|
||||||
|
OUTPUT F_CVM_DESCONTO DESCR
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
VALIDATE REQIF_FUNC 2 F_CVM_GRUPPO F_CVM_CONTO
|
||||||
|
WARNING "Sottoconto errato o mancante"
|
||||||
|
GROUP 4
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CVM_DESCONTO 50
|
STRING F_CVM_DESCONTO 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "Descrizione"
|
PROMPT 2 6 ""
|
||||||
|
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
|
||||||
|
INPUT DESCR F_CVM_DESCONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
COPY OUTPUT F_CVM_SOTTOCONTO
|
||||||
|
GROUP 4
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
TOOLBAR "topbar" 0 0 0 2
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -13 -11 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_USER 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -23 -11 "Azzera"
|
||||||
|
PICTURE TOOL_DELREC
|
||||||
|
MESSAGE RESET,4@
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -33 -11 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user