Patch level :2.0 nopatch
Files correlati :ce4.exe & co. Ricompilazione Demo : [ ] Commento :prima stesura calcolo cespiti per commessa git-svn-id: svn://10.65.10.50/trunk@11625 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
613a47146f
commit
db03909b71
@ -7,9 +7,9 @@ int main(int argc,char** argv)
|
||||
const int r = (argc > 1) ? (argv[1][1]-'0') : 0;
|
||||
switch (r)
|
||||
{
|
||||
/* case 1:
|
||||
case 1:
|
||||
ce4200(argc,argv); break; //calcolo cespiti per commessa
|
||||
case 2:
|
||||
/* case 2:
|
||||
ce4300(argc,argv); break;*/ //stampa cespiti per commessa
|
||||
case 0:
|
||||
default: ce4100(argc,argv) ; break; // inserimento cespiti per commessa (personalizzazione CRPA)
|
||||
|
2
ce/ce4.h
2
ce/ce4.h
@ -2,7 +2,7 @@
|
||||
#define __CE4_H
|
||||
|
||||
int ce4100(int argc, char* argv[]);
|
||||
//int ce4200(int argc, char* argv[]);
|
||||
int ce4200(int argc, char* argv[]);
|
||||
//int ce4300(int argc, char* argv[]);
|
||||
|
||||
|
||||
|
262
ce/ce4200.cpp
Executable file
262
ce/ce4200.cpp
Executable file
@ -0,0 +1,262 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <doc.h>
|
||||
#include <rdoc.h>
|
||||
#include <recarray.h>
|
||||
|
||||
#include "ce4200a.h"
|
||||
#include "ce4200.h"
|
||||
|
||||
#include "ammce.h"
|
||||
#include "cespi.h"
|
||||
#include "salcecms.h"
|
||||
|
||||
#include "..\ve\velib.h"
|
||||
|
||||
//===============================================================================================
|
||||
//maschera
|
||||
|
||||
class TCalc_cesp_cms_mask: public TAutomask
|
||||
{
|
||||
public:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
TCalc_cesp_cms_mask():TAutomask("ce4200a") {}
|
||||
|
||||
};
|
||||
|
||||
bool TCalc_cesp_cms_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
/* switch (o.dlg())
|
||||
{
|
||||
default: break;
|
||||
}*/
|
||||
return true;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//form
|
||||
class TCalc_cesp_cms_form : public TForm
|
||||
{
|
||||
|
||||
public:
|
||||
virtual bool validate(TForm_item &cf, TToken_string &s);
|
||||
void set_testata() {set_header(1,TRUE);}
|
||||
void set_pedata() {set_footer(1,FALSE); set_footer(1,TRUE);}
|
||||
TCalc_cesp_cms_form();
|
||||
|
||||
virtual ~TCalc_cesp_cms_form();
|
||||
};
|
||||
|
||||
TCalc_cesp_cms_form::TCalc_cesp_cms_form() :TForm ("ce4200a")
|
||||
{
|
||||
}
|
||||
|
||||
TCalc_cesp_cms_form::~TCalc_cesp_cms_form()
|
||||
{
|
||||
}
|
||||
|
||||
bool TCalc_cesp_cms_form::validate(TForm_item &cf, TToken_string &s)
|
||||
{
|
||||
return TCalc_cesp_cms_form::validate(cf,s); //richiama la validate standard della classe genitore (TForm_cespiti)
|
||||
}
|
||||
|
||||
|
||||
//===============================================================================================
|
||||
//Applicazione
|
||||
|
||||
class TCalc_cesp_cms : public TSkeleton_application
|
||||
{
|
||||
TCalc_cesp_cms_mask* _mask;
|
||||
TCalc_cesp_cms_form* _form;
|
||||
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
|
||||
public:
|
||||
void utilizzo_per_cms(const TRectype& ammce_rec);
|
||||
real calc_perc_util_cesp(const TRectype& salcecms_rec, const TDate& dtinices, const TDate& dtfineces);
|
||||
};
|
||||
|
||||
|
||||
|
||||
real TCalc_cesp_cms::calc_perc_util_cesp(const TRectype& salcecms_rec, const TDate& dtinices, const TDate& dtfineces)
|
||||
{
|
||||
//prende il codice commessa del record..
|
||||
TString80 codcms = salcecms_rec.get(SALCECMS_CODCMS);
|
||||
//..ed accede cosi' alla tabella delle commesse
|
||||
const TRectype& cms = cache().get("CMS", codcms);
|
||||
//prende le date di inizio e fine commessa dalla tabella per poterle confrontare con le date limite
|
||||
//del cespite nell'esercizio
|
||||
TDate dtfine = dtfineces;
|
||||
const TDate dtfinecms = cms.get_date("D1");
|
||||
if ((dtfinecms.ok()) && (dtfinecms < dtfineces))
|
||||
dtfine = dtfinecms;
|
||||
|
||||
TDate dtini = dtinices;
|
||||
const TDate dtinicms = cms.get_date("D0");
|
||||
if ((dtinicms.ok()) && (dtinicms > dtinices))
|
||||
dtini = dtinicms;
|
||||
//intervallo giorni di utilizzo cespite nella commessa
|
||||
const real delta_cms = real(dtfine - dtini) / real(dtfineces - dtinices);
|
||||
|
||||
//adeesso prende la percentuale di utilizzo del cespite nella commessa..
|
||||
real percutil = salcecms_rec.get_real(SALCECMS_PERCUTIL);
|
||||
//normalizza la percentuale...
|
||||
percutil = percutil / CENTO;
|
||||
//...e la porta in giorni rispetto al totale di utilizzo dei giorni del cespite nell'esercizio
|
||||
//(il 100% sono i giorni di utilizzo del cespite in tutte le commesse dell'esercizio)
|
||||
percutil *= delta_cms;
|
||||
|
||||
return percutil;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TCalc_cesp_cms::utilizzo_per_cms(const TRectype& ammce_rec)
|
||||
{
|
||||
//totale quote del cespite in esame per l'esercizio corrente (per tutte le commesse)
|
||||
real qtot = ammce_rec.get_real(AMMCE_QNOR);
|
||||
qtot += ammce_rec.get_real(AMMCE_QACC);
|
||||
qtot += ammce_rec.get_real(AMMCE_QANT);
|
||||
//controllo su date inizio e fine del periodo di utilizzo del cespite nell'esercizio selezionato
|
||||
if (qtot != ZERO)
|
||||
{
|
||||
const TString16 idcesp = ammce_rec.get(CESPI_IDCESPITE);
|
||||
const TRectype& cespi = cache().get(LF_CESPI, idcesp);
|
||||
|
||||
const TDate dtinies = _mask->get_date(F_INIZIO_ES);
|
||||
const TDate dtfines = _mask->get_date(F_FINE_ES);
|
||||
|
||||
TDate dtfine = dtfines;
|
||||
const TDate dtalien = cespi.get_date(CESPI_DTALIEN);
|
||||
if ((dtalien.ok()) && (dtalien < dtfines))
|
||||
dtfine = dtalien;
|
||||
|
||||
TDate dtini = dtinies;
|
||||
const TDate dtfunz = cespi.get_date(CESPI_DTFUNZ);
|
||||
if ((dtfunz.ok()) && (dtfunz > dtinies))
|
||||
dtini = dtfunz;
|
||||
//..a questo punto dtini e dtfine rappresentano il periodo di utilizzo del cespite
|
||||
//nell'esercizio selezionato
|
||||
//quindi il periodo di utilizzo del cespite nell'esercizio,in giorni,sara'...
|
||||
const long delta_cesp = dtfine - dtini;
|
||||
|
||||
//Adesso si controlla la durata di ogni commessa (alla quale il cespite ha partecipato) durante
|
||||
//l'esercizio delezionato
|
||||
const int current_ese = ammce_rec.get_int(AMMCE_CODES);
|
||||
|
||||
//crea un record array dove memorizzare i record del file salcecms riguardanti il cespite e
|
||||
//l'esercizio selezionati
|
||||
TRecord_array salcecms(LF_SALCECMS, "NRIGA");
|
||||
TRectype* key = new TRectype(LF_SALCECMS);
|
||||
key->put("IDCESPITE",idcesp);
|
||||
key->put("CODES",current_ese);
|
||||
salcecms.read(key);
|
||||
|
||||
//ciclo su SALCECMS data una chiave idcespite + esercizio (si fa solo se salcecms non e' vuoto,
|
||||
//e' inutile perdere tempo..)
|
||||
if (salcecms.rows() > 0)
|
||||
{
|
||||
//crea documento relativo al cespite in questione (nell'esercizio);ogni riga del documento
|
||||
//sara' relativa ad una commessa
|
||||
const TString4 codnum = _mask->get(F_CODNUM);
|
||||
const TString4 tipodoc = _mask->get(F_TIPODOC);
|
||||
const TString4 tiporiga = _mask->get(F_TIPORIGA);
|
||||
TDocumento doc_cesp('D', current_ese, codnum, atol(idcesp));
|
||||
doc_cesp.put(DOC_TIPODOC, tipodoc);
|
||||
doc_cesp.put(DOC_DATADOC, TDate(TODAY));
|
||||
doc_cesp.body(LF_RIGHEDOC).destroy_rows();
|
||||
|
||||
TDistrib distrib(qtot, TCurrency::get_firm_dec());
|
||||
int i;
|
||||
for (i=1; i<=salcecms.last_row(); i++ )
|
||||
{
|
||||
const real perc = calc_perc_util_cesp(salcecms[i], dtini, dtfine);
|
||||
distrib.add(perc * qtot);
|
||||
}
|
||||
//e riempiamo 'sta riga!
|
||||
for (i=1; i<=salcecms.last_row(); i++ )
|
||||
{
|
||||
TRiga_documento& rigadoc = doc_cesp.new_row(tiporiga);
|
||||
rigadoc.put(RDOC_CODCMS, salcecms[i].get(SALCECMS_CODCMS)); //codice commessa
|
||||
rigadoc.put(RDOC_QTA, 1);
|
||||
const real quota = distrib.get();
|
||||
TString80 descr; //descrizione cosi' tanto x mettercela
|
||||
descr.format("Quota ammortamento per l'esercizio %s", (const char *) quota.stringa());
|
||||
rigadoc.put(RDOC_DESCR, descr);
|
||||
rigadoc.put(RDOC_PREZZO, quota); //ammortamento cespite per la commessa
|
||||
const real perc_cms = salcecms[i].get_real(SALCECMS_PERCUTIL);
|
||||
rigadoc.put(RDOC_QTAGG1, perc_cms); //% utilizzo cespite nella commessa
|
||||
rigadoc.put(RDOC_QTAGG2, dtfine - dtini); //giorni di utilizzo cespite nella commessa
|
||||
rigadoc.put(RDOC_QTAGG3, delta_cesp); //giorni di utilizzo cespite nell'esercizio
|
||||
rigadoc.put(RDOC_DATACONS, TDate(TODAY)); //data di elaborazione
|
||||
rigadoc.put(RDOC_CODIVA, _mask->get(F_CODIVA)); //codice IVA obbligatorio
|
||||
}
|
||||
//scrittura del documento
|
||||
doc_cesp.write();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool TCalc_cesp_cms::create()
|
||||
{
|
||||
_mask = new TCalc_cesp_cms_mask;
|
||||
_form = new TCalc_cesp_cms_form;
|
||||
|
||||
TConfig config_doc ("ce4200a.ini", "Main");
|
||||
_mask->set(F_CODNUM, config_doc.get("CODNUM"));
|
||||
_mask->set(F_TIPODOC, config_doc.get("TIPODOC"));
|
||||
_mask->set(F_TIPORIGA, config_doc.get("TIPORIGA"));
|
||||
_mask->set(F_CODIVA, config_doc.get("CODIVA"));
|
||||
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
bool TCalc_cesp_cms::destroy()
|
||||
{
|
||||
delete _mask;
|
||||
delete _form;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TCalc_cesp_cms::main_loop()
|
||||
{
|
||||
while (_mask->run() == K_ENTER)
|
||||
{
|
||||
TRectype darec(LF_AMMCE),arec(LF_AMMCE);
|
||||
|
||||
const int esercizio = _mask->get_int(F_ESERCIZIO);
|
||||
|
||||
darec.put(AMMCE_IDCESPITE, _mask->get(F_DA_IDCESPITE));
|
||||
arec.put(AMMCE_IDCESPITE, _mask->get(F_A_IDCESPITE));
|
||||
TString filtro;
|
||||
filtro.format("(CODES==%d)&&(TPSALDO==2)&&(TPAMM==1)",esercizio);
|
||||
|
||||
TRelation rel(LF_AMMCE);
|
||||
TCursor cur(&rel, filtro, 1, &darec, &arec);
|
||||
const long items = cur.items();
|
||||
cur.freeze();
|
||||
|
||||
//ciclo sui cespiti di AMMCE nel codes selezionato
|
||||
for (cur=0; cur.pos()<items; ++cur)
|
||||
{
|
||||
utilizzo_per_cms(cur.curr());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int ce4200(int argc, char* argv[])
|
||||
{
|
||||
TCalc_cesp_cms a;
|
||||
a.run(argc,argv,TR("Calcolo cespiti per commessa"));
|
||||
return 0;
|
||||
}
|
||||
|
8
ce/ce4200.h
Executable file
8
ce/ce4200.h
Executable file
@ -0,0 +1,8 @@
|
||||
//define dei campi del form ce4200a.frm
|
||||
#define FR_CODDITTA 101
|
||||
#define FR_RAGSOC 102
|
||||
#define FR_ESERCIZIO 103
|
||||
#define FR_DATAINIZIO 104
|
||||
#define FR_DATAFINE 105
|
||||
|
||||
|
112
ce/ce4200a.frm
Executable file
112
ce/ce4200a.frm
Executable file
@ -0,0 +1,112 @@
|
||||
#include "ce4200.h"
|
||||
|
||||
SECTION GRAPHICS ODD
|
||||
LINEA -1 132 1
|
||||
BEGIN
|
||||
PROMPT 1 7 "B"
|
||||
END
|
||||
|
||||
LINEA -1 132 1
|
||||
BEGIN
|
||||
PROMPT 1 10 ""
|
||||
END
|
||||
|
||||
LINEA -1 132 1
|
||||
BEGIN
|
||||
PROMPT 1 -3 "B"
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
SECTION HEADER ODD 10
|
||||
|
||||
STRINGA -1
|
||||
BEGIN
|
||||
KEY "Titolo"
|
||||
PROMPT 1 1 "@bSALDI PER COMMESSA"
|
||||
END
|
||||
|
||||
STRINGA FR_CODDITTA
|
||||
BEGIN
|
||||
KEY "Codice ditta"
|
||||
PROMPT 1 2 "@bDitta@r "
|
||||
PICTURE "#####"
|
||||
END
|
||||
|
||||
STRINGA FR_RAGSOC
|
||||
BEGIN
|
||||
KEY "Ragione sociale"
|
||||
PROMPT 25 2 ""
|
||||
END
|
||||
|
||||
STRINGA FR_ESERCIZIO
|
||||
BEGIN
|
||||
KEY "Esercizio"
|
||||
PROMPT 1 3 "@bEsercizio@r "
|
||||
END
|
||||
|
||||
STRINGA FR_DATAINIZIO
|
||||
BEGIN
|
||||
KEY "Inizio Esercizio"
|
||||
PROMPT 25 3 ""
|
||||
END
|
||||
|
||||
STRINGA FR_DATAFINE
|
||||
BEGIN
|
||||
KEY "Fine Esercizio"
|
||||
PROMPT 41 3 ""
|
||||
END
|
||||
|
||||
|
||||
END
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Valori cespite
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
SECTION BODY ODD 3
|
||||
|
||||
STRINGA -1
|
||||
BEGIN
|
||||
PROMPT 1 1 "@b"
|
||||
FIELD IDCESPITE
|
||||
END
|
||||
|
||||
STRINGA -1 54
|
||||
BEGIN
|
||||
PROMPT 17 1 ""
|
||||
FIELD DESC
|
||||
END
|
||||
|
||||
STRING -1
|
||||
BEGIN
|
||||
PROMPT 1 2 ""
|
||||
FIELD DTCOMP
|
||||
END
|
||||
|
||||
STRING -1
|
||||
BEGIN
|
||||
PROMPT 17 2 ""
|
||||
FIELD DTFUNZ
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
SECTION FOOTER ODD 3
|
||||
|
||||
DATA -1
|
||||
BEGIN
|
||||
PROMPT 1 2 "@bData@r "
|
||||
MESSAGE _TODAY
|
||||
END
|
||||
|
||||
NUMERO -1
|
||||
BEGIN
|
||||
PROMPT 120 2 "@bPagina@r "
|
||||
MESSAGE _PAGENO
|
||||
END
|
||||
|
||||
END
|
||||
|
20
ce/ce4200a.h
Executable file
20
ce/ce4200a.h
Executable file
@ -0,0 +1,20 @@
|
||||
//definizioni campi per la maschera ce4200a.uml (calcolo cespiti per commessa)
|
||||
#define F_DITTA 201
|
||||
#define F_RAGSOC 202
|
||||
#define F_ESERCIZIO 203
|
||||
#define F_INIZIO_ES 204
|
||||
#define F_FINE_ES 205
|
||||
#define F_DA_IDCESPITE 206
|
||||
#define F_DA_DESC 207
|
||||
#define F_A_IDCESPITE 208
|
||||
#define F_A_DESC 209
|
||||
#define F_CODNUM 211
|
||||
#define F_DESNUM 212
|
||||
#define F_TIPODOC 213
|
||||
#define F_DESTIPODOC 214
|
||||
#define F_TIPORIGA 215
|
||||
#define F_DESTIPORIGA 216
|
||||
#define F_CODIVA 217
|
||||
#define F_DESIVA 218
|
||||
#define F_STAMPA 219
|
||||
|
182
ce/ce4200a.uml
Executable file
182
ce/ce4200a.uml
Executable file
@ -0,0 +1,182 @@
|
||||
#include "ce4200a.h"
|
||||
|
||||
TOOLBAR "" 0 -2 0 2
|
||||
|
||||
BUTTON DLG_ELABORA 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -11 "~Elabora"
|
||||
PICTURE BMP_ELABORA
|
||||
MESSAGE EXIT,K_ENTER
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -11 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Calcolo saldi per commessa" -1 -1 0 -3
|
||||
|
||||
NUMBER F_DITTA 5
|
||||
BEGIN
|
||||
PROMPT 1 2 "Ditta "
|
||||
FLAGS "DF"
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 26 2 ""
|
||||
USE LF_NDITTE
|
||||
INPUT CODDITTA F_DITTA
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_ESERCIZIO 4
|
||||
BEGIN
|
||||
PROMPT 1 3 "Esercizio "
|
||||
FLAGS "AZ"
|
||||
USE CCE
|
||||
JOIN ESC ALIAS 104 INTO CODTAB==CODTAB
|
||||
INPUT CODTAB F_ESERCIZIO
|
||||
DISPLAY "Codice esercizio" CODTAB
|
||||
DISPLAY "Inizio esercizio" 104@->D0
|
||||
DISPLAY "Fine esercizio" 104@->D1
|
||||
OUTPUT F_ESERCIZIO CODTAB
|
||||
OUTPUT F_INIZIO_ES 104@->D0
|
||||
OUTPUT F_FINE_ES 104@->D1
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CODES
|
||||
END
|
||||
|
||||
DATE F_INIZIO_ES
|
||||
BEGIN
|
||||
PROMPT 26 3 "Inizio "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
DATE F_FINE_ES
|
||||
BEGIN
|
||||
PROMPT 50 3 "Fine "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DA_IDCESPITE 10
|
||||
BEGIN
|
||||
PROMPT 1 5 "Dal cespite "
|
||||
FLAGS "UZ"
|
||||
USE LF_SALCECMS SELECT NRIGA==1
|
||||
JOIN LF_CESPI INTO IDCESPITE==IDCESPITE
|
||||
INPUT IDCESPITE F_DA_IDCESPITE
|
||||
DISPLAY "Codice@10" IDCESPITE
|
||||
DISPLAY "Descrizione@50" LF_CESPI->DESC
|
||||
DISPLAY "Cat." LF_CESPI->CODCAT
|
||||
DISPLAY "Impianto@10" LF_CESPI->CODIMP
|
||||
DISPLAY "Data Acq.@10" LF_CESPI->DTCOMP
|
||||
DISPLAY "Data Ali.@10" LF_CESPI->DTALIEN
|
||||
OUTPUT F_DA_IDCESPITE IDCESPITE
|
||||
OUTPUT F_DA_DESC LF_CESPI->DESC
|
||||
CHECKTYPE SEARCH
|
||||
ADD RUN "ce0 -4"
|
||||
END
|
||||
|
||||
STRING F_DA_DESC 60 50
|
||||
BEGIN
|
||||
PROMPT 26 5 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_A_IDCESPITE 10
|
||||
BEGIN
|
||||
PROMPT 1 6 "Al cespite "
|
||||
FLAGS "UZ"
|
||||
COPY USE F_DA_IDCESPITE
|
||||
INPUT IDCESPITE F_A_IDCESPITE
|
||||
COPY DISPLAY F_DA_IDCESPITE
|
||||
OUTPUT F_A_IDCESPITE IDCESPITE
|
||||
OUTPUT F_A_DESC LF_CESPI->DESC
|
||||
CHECKTYPE SEARCH
|
||||
ADD RUN "ce0 -4"
|
||||
END
|
||||
|
||||
STRING F_A_DESC 60 50
|
||||
BEGIN
|
||||
PROMPT 26 6 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 1 9 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM
|
||||
OUTPUT F_DESNUM S0
|
||||
KEY 1 2
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "UD"
|
||||
END
|
||||
|
||||
STRING F_DESNUM 50
|
||||
BEGIN
|
||||
PROMPT 24 9 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC 4
|
||||
BEGIN
|
||||
PROMPT 1 10 "Tipo "
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC
|
||||
OUTPUT F_DESTIPODOC S0
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "UD"
|
||||
END
|
||||
|
||||
STRING F_DESTIPODOC 50
|
||||
BEGIN
|
||||
PROMPT 24 10 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_TIPORIGA 4
|
||||
BEGIN
|
||||
PROMPT 1 11 "Tipo riga "
|
||||
USE %TRI
|
||||
INPUT CODTAB F_TIPORIGA
|
||||
OUTPUT F_DESTIPORIGA S0
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DESTIPORIGA 50
|
||||
BEGIN
|
||||
PROMPT 24 11 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_CODIVA 4
|
||||
BEGIN
|
||||
PROMPT 1 12 "Codice IVA "
|
||||
USE %IVA
|
||||
INPUT CODTAB F_CODIVA
|
||||
OUTPUT F_DESIVA S0
|
||||
CHECTYPE NORMAL
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DESIVA 50
|
||||
BEGIN
|
||||
PROMPT 24 12 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BOOLEAN F_STAMPA
|
||||
BEGIN
|
||||
PROMPT 1 14 "Stampa i documenti"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
7
ce/salcecms.h
Executable file
7
ce/salcecms.h
Executable file
@ -0,0 +1,7 @@
|
||||
#define SALCECMS_IDCESPITE "IDCESPITE"
|
||||
#define SALCECMS_CODES "CODES"
|
||||
#define SALCECMS_NRIGA "NRIGA"
|
||||
#define SALCECMS_CODCMS "CODCMS"
|
||||
#define SALCECMS_PERCUTIL "PERCUTIL"
|
||||
#define SALCECMS_PERCOPE "PERCCOPE"
|
||||
#define SALCECMS_FONDO "FONDO"
|
Loading…
x
Reference in New Issue
Block a user