Patch level :10.0 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento :iniziata personalizzazione leopardata git-svn-id: svn://10.65.10.50/trunk@17883 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8dc9af4134
commit
a85a85f0df
@ -51,6 +51,9 @@ Configurazione campi per utente
|
|||||||
PN0001
|
PN0001
|
||||||
Importazione dati vendite al dettaglio
|
Importazione dati vendite al dettaglio
|
||||||
|
|
||||||
|
PS0099
|
||||||
|
Statistiche ANIVAL
|
||||||
|
|
||||||
PS0544 Varauto
|
PS0544 Varauto
|
||||||
Trasferimento a SISIPHO
|
Trasferimento a SISIPHO
|
||||||
Trasferimento a SERVUS
|
Trasferimento a SERVUS
|
||||||
|
16
ps/ps0099.cpp
Executable file
16
ps/ps0099.cpp
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#include <xvt.h>
|
||||||
|
|
||||||
|
#include "ps0099.h"
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||||
|
switch(n)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
default:
|
||||||
|
ps0099100(argc, argv); break; //statistiche ANIVAL
|
||||||
|
}
|
||||||
|
exit(0);
|
||||||
|
return 0;
|
||||||
|
}
|
2
ps/ps0099.h
Executable file
2
ps/ps0099.h
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
int ps0099100(int argc, char* argv[]);
|
||||||
|
|
166
ps/ps0099100.cpp
Executable file
166
ps/ps0099100.cpp
Executable file
@ -0,0 +1,166 @@
|
|||||||
|
#include "ps0099100a.h"
|
||||||
|
|
||||||
|
#include <applicat.h>
|
||||||
|
#include <automask.h>
|
||||||
|
#include <modaut.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <recarray.h>
|
||||||
|
#include <relation.h>
|
||||||
|
#include <reprint.h>
|
||||||
|
#include <reputils.h>
|
||||||
|
#include <textset.h>
|
||||||
|
|
||||||
|
#include "../cg/cglib01.h"
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// MASCHERA
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
class TStatistiche_ANIVAL_mask : public TAutomask
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TStatistiche_ANIVAL_mask();
|
||||||
|
virtual ~TStatistiche_ANIVAL_mask() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
TStatistiche_ANIVAL_mask::TStatistiche_ANIVAL_mask() : TAutomask("ps0099100a")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStatistiche_ANIVAL_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
|
{
|
||||||
|
switch (o.dlg())
|
||||||
|
{
|
||||||
|
case F_ANNO:
|
||||||
|
if (e == fe_modify && !o.empty())
|
||||||
|
{
|
||||||
|
TEsercizi_contabili esc;
|
||||||
|
TDate inies, fines;
|
||||||
|
if (esc.code2range(atoi(o.get()), inies, fines))
|
||||||
|
{
|
||||||
|
set(F_DADATA, inies);
|
||||||
|
set(F_ADATA, fines);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case F_DADATA:
|
||||||
|
case F_ADATA:
|
||||||
|
if (e == fe_close)
|
||||||
|
{
|
||||||
|
const int anno = get_int(F_ANNO);
|
||||||
|
|
||||||
|
TEsercizi_contabili esc; //..le date devono essere incluse nell'esercizio selezionato!
|
||||||
|
const TDate data = o.get();
|
||||||
|
if (!data.empty() && esc.date2esc(data) != anno)
|
||||||
|
return error_box(TR("La data deve appartenere all'anno selezionato"));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
// REPORT
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
class TStatistiche_ANIVAL_report : public TReport
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual bool use_mask() { return false; }
|
||||||
|
public:
|
||||||
|
TStatistiche_ANIVAL_report() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
// CSV RECORDSET
|
||||||
|
/////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TStatistiche_ANIVAL_csv_recordset : public TCSV_recordset
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
//virtual const TVariant& get(const char* field_name) const;
|
||||||
|
public:
|
||||||
|
TStatistiche_ANIVAL_csv_recordset();
|
||||||
|
};
|
||||||
|
|
||||||
|
TStatistiche_ANIVAL_csv_recordset::TStatistiche_ANIVAL_csv_recordset()
|
||||||
|
: TCSV_recordset("CSV(,)\n")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// APPLICAZIONE
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TStatistiche_ANIVAL : public TSkeleton_application
|
||||||
|
{
|
||||||
|
virtual bool check_autorization() const {return false;}
|
||||||
|
virtual const char * extra_modules() const {return "ve";}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void elabora(const TMask& mask) const;
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual bool create();
|
||||||
|
virtual void main_loop();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//metodo di base per la ricerca delle righe documento che soddisfano i parametri dell'utonto
|
||||||
|
void TStatistiche_ANIVAL::elabora(const TMask& mask) const
|
||||||
|
{
|
||||||
|
TString query;
|
||||||
|
//scatta la query per la costruzione del recordset
|
||||||
|
query << "USE RDOC KEY 1\n";
|
||||||
|
query << "SELECT ((CODARTMAG!=\"\")&&(BETWEEN(33->DATADOC,#DADATA,#ADATA))&&(BETWEEN(CODARTMAG,#DACODART,#ACODART)))\n";
|
||||||
|
query << "JOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC\n";
|
||||||
|
query << "FROM CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
||||||
|
query << "TO CODNUM=#CODNUM ANNO=#ANNO PROVV='D'\n";
|
||||||
|
|
||||||
|
TISAM_recordset righe(query);
|
||||||
|
righe.set_var("#CODNUM", TVariant(mask.get(F_CODNUM)));
|
||||||
|
righe.set_var("#DADATA", mask.get_date(F_DADATA));
|
||||||
|
righe.set_var("#ADATA", mask.get_date(F_ADATA));
|
||||||
|
righe.set_var("#ANNO", TVariant((long)mask.get_int(F_ANNO)));
|
||||||
|
righe.set_var("#DACODART", TVariant(mask.get(F_DACODART)));
|
||||||
|
righe.set_var("#ACODART", TVariant(mask.get(F_ACODART)));
|
||||||
|
|
||||||
|
//se trova (si spera!) almeno una rigadoc buona comincia il bello del programma
|
||||||
|
const long nrighe = righe.items();
|
||||||
|
if (nrighe > 0)
|
||||||
|
{
|
||||||
|
const int cazzone = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TStatistiche_ANIVAL::main_loop()
|
||||||
|
{
|
||||||
|
TStatistiche_ANIVAL_mask mask;
|
||||||
|
|
||||||
|
while (mask.run() == K_ENTER)
|
||||||
|
{
|
||||||
|
elabora(mask);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TStatistiche_ANIVAL::create()
|
||||||
|
{
|
||||||
|
//se non ha le vendite è impossibile da utilizzare
|
||||||
|
if (!has_module(VEAUT))
|
||||||
|
return error_box(TR("Modulo non autorizzato"));
|
||||||
|
|
||||||
|
return TSkeleton_application::create();
|
||||||
|
}
|
||||||
|
|
||||||
|
int ps0099100(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TStatistiche_ANIVAL stat_anal;
|
||||||
|
stat_anal.run(argc, argv, TR("Statistiche ANIVAL"));
|
||||||
|
return 0;
|
||||||
|
}
|
11
ps/ps0099100a.h
Executable file
11
ps/ps0099100a.h
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
// Defines per maschera ps0099100a.uml (statistiche anival)
|
||||||
|
|
||||||
|
#define F_CODNUM 101
|
||||||
|
#define F_DESNUM 102
|
||||||
|
#define F_ANNO 103
|
||||||
|
#define F_DADATA 104
|
||||||
|
#define F_ADATA 105
|
||||||
|
#define F_DACODART 106
|
||||||
|
#define F_DADESART 107
|
||||||
|
#define F_ACODART 108
|
||||||
|
#define F_ADESART 109
|
116
ps/ps0099100a.uml
Executable file
116
ps/ps0099100a.uml
Executable file
@ -0,0 +1,116 @@
|
|||||||
|
#include "ps0099100a.h"
|
||||||
|
|
||||||
|
TOOLBAR "topbar" 0 0 0 2
|
||||||
|
#include <stdbar.h>
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Statistiche ANIVAL" -1 -1 80 11
|
||||||
|
|
||||||
|
GROUPBOX -1 78 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "@bParametri documenti di vendita"
|
||||||
|
FLAGS ""
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CODNUM 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Numerazione "
|
||||||
|
USE %NUM
|
||||||
|
INPUT CODTAB F_CODNUM
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT F_CODNUM CODTAB
|
||||||
|
OUTPUT F_DESNUM S0
|
||||||
|
CHECKTYPE FORCED
|
||||||
|
FLAGS "UPA"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESNUM 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 22 2 ""
|
||||||
|
USE %NUM KEY 2
|
||||||
|
INPUT S0 F_DESNUM
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
DISPLAY "Codice" CODTAB
|
||||||
|
COPY OUTPUT F_CODNUM
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ANNO 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Anno "
|
||||||
|
USE ESC
|
||||||
|
INPUT CODTAB F_ANNO
|
||||||
|
DISPLAY "Codice Esercizio" CODTAB
|
||||||
|
DISPLAY "Data inizio esercizio" D0
|
||||||
|
DISPLAY "Data fine esercizio " D1
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
OUTPUT F_ANNO CODTAB
|
||||||
|
OUTPUT F_DADATA D0
|
||||||
|
OUTPUT F_ADATA D1
|
||||||
|
NUM_EXPR #F_ANNO>0
|
||||||
|
FLAG "AP"
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DADATA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 4 "Da data "
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_ADATA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 30 4 "A data "
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DACODART 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Da articolo "
|
||||||
|
KEY 1
|
||||||
|
FLAG "UG"
|
||||||
|
USE LF_ANAMAG
|
||||||
|
INPUT CODART F_DACODART
|
||||||
|
DISPLAY "Codice@20" CODART
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_DACODART CODART
|
||||||
|
OUTPUT F_DADESART DESCR
|
||||||
|
CHECKTYPE SEARCH
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DADESART 50 40
|
||||||
|
BEGIN
|
||||||
|
PROMPT 38 7 ""
|
||||||
|
USE LF_ANAMAG KEY 2
|
||||||
|
INPUT DESCR F_DADESART
|
||||||
|
DISPLAY "Codice@20" CODART
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_DACODART CODART
|
||||||
|
OUTPUT F_DADESART DESCR
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_ACODART 20
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "A articolo "
|
||||||
|
KEY 1
|
||||||
|
FLAG "UG"
|
||||||
|
USE LF_ANAMAG
|
||||||
|
INPUT CODART F_ACODART
|
||||||
|
DISPLAY "Codice@20" CODART
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_ACODART CODART
|
||||||
|
OUTPUT F_ADESART DESCR
|
||||||
|
CHECKTYPE SEARCH
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_ADESART 50 40
|
||||||
|
BEGIN
|
||||||
|
PROMPT 38 8 ""
|
||||||
|
USE LF_ANAMAG KEY 2
|
||||||
|
INPUT DESCR F_ADESART
|
||||||
|
DISPLAY "Codice@20" CODART
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_ACODART CODART
|
||||||
|
OUTPUT F_ADESART DESCR
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user