Aggiunta la gestione di stampa N copie dei documenti.
Corretta il filtro sui documenti nel caso non vengano indicati estremi. git-svn-id: svn://10.65.10.50/trunk@3503 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
2b9b39685b
commit
2badd9b34e
@ -8,6 +8,7 @@
|
|||||||
#include <printer.h>
|
#include <printer.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
|
#include <progind.h>
|
||||||
|
|
||||||
#include "velib02.h"
|
#include "velib02.h"
|
||||||
|
|
||||||
@ -740,6 +741,7 @@ class TStampa_Doc_Vendita: public TApplication {
|
|||||||
TString _codnum; // codice di numerazione
|
TString _codnum; // codice di numerazione
|
||||||
TString _provv; // stampa provvisioria
|
TString _provv; // stampa provvisioria
|
||||||
int _anno; // anno della documentazione
|
int _anno; // anno della documentazione
|
||||||
|
int _ncopie; // numero di copie per ogni documento
|
||||||
long _dalnum, _alnum; // estremi di numerazione dei documenti
|
long _dalnum, _alnum; // estremi di numerazione dei documenti
|
||||||
TDate _dadata, _adata; // estremi di data dei documenti
|
TDate _dadata, _adata; // estremi di data dei documenti
|
||||||
bool _order_by_num; // flag che indica se e' stato selezionato l'ordine principale per numero documento
|
bool _order_by_num; // flag che indica se e' stato selezionato l'ordine principale per numero documento
|
||||||
@ -852,6 +854,7 @@ bool TStampa_Doc_Vendita::create() {
|
|||||||
_dalnum= atol(argv(5)); // il quarto è il numero di documento di partenza
|
_dalnum= atol(argv(5)); // il quarto è il numero di documento di partenza
|
||||||
_alnum= atol(argv(6)); // il quinto è il numero di documento di fine
|
_alnum= atol(argv(6)); // il quinto è il numero di documento di fine
|
||||||
_definitiva= (strcmp(argv(7), "D")==0); // il sesto è se la stampa è definitiva (rinumerazione dei documenti)
|
_definitiva= (strcmp(argv(7), "D")==0); // il sesto è se la stampa è definitiva (rinumerazione dei documenti)
|
||||||
|
_ncopie = atoi(argv(8));
|
||||||
_interattivo= FALSE;
|
_interattivo= FALSE;
|
||||||
print();
|
print();
|
||||||
} else { // oppure lancio della maschera
|
} else { // oppure lancio della maschera
|
||||||
@ -885,6 +888,7 @@ int TStampa_Doc_Vendita::select() {
|
|||||||
_provv= m.get(F_PROVV);
|
_provv= m.get(F_PROVV);
|
||||||
_dalnum= m.get_long(F_DA_NDOC);
|
_dalnum= m.get_long(F_DA_NDOC);
|
||||||
_alnum= m.get_long(F_A_NDOC);
|
_alnum= m.get_long(F_A_NDOC);
|
||||||
|
_ncopie = m.get_int(F_NCOPIE);
|
||||||
if (_alnum == 0) _alnum = 9999999L;
|
if (_alnum == 0) _alnum = 9999999L;
|
||||||
wdate = m.get(F_DA_DATADOC);
|
wdate = m.get(F_DA_DATADOC);
|
||||||
if (wdate.not_empty()) _dadata = wdate;
|
if (wdate.not_empty()) _dadata = wdate;
|
||||||
@ -926,7 +930,9 @@ void TStampa_Doc_Vendita::print() {
|
|||||||
doc.put("PROVV", _provv);
|
doc.put("PROVV", _provv);
|
||||||
doc.put("NDOC", _alnum);
|
doc.put("NDOC", _alnum);
|
||||||
if (!_order_by_num) doc.put("DATADOC", _adata);
|
if (!_order_by_num) doc.put("DATADOC", _adata);
|
||||||
doc.read(); // posiziona il file sul record
|
const int err = doc.read(); // posiziona il file sul record
|
||||||
|
if (err == _iseof) doc.last();
|
||||||
|
else if (err == _iskeynotfound) doc.prev();
|
||||||
const long num_lim_sup = doc.get_int("NDOC");
|
const long num_lim_sup = doc.get_int("NDOC");
|
||||||
const TDate date_lim_sup = doc.get_date("DATADOC");
|
const TDate date_lim_sup = doc.get_date("DATADOC");
|
||||||
if (num_lim_sup > _alnum || (!_order_by_num && date_lim_sup < _adata))
|
if (num_lim_sup > _alnum || (!_order_by_num && date_lim_sup < _adata))
|
||||||
@ -938,7 +944,9 @@ void TStampa_Doc_Vendita::print() {
|
|||||||
printer().open(); // apre la stampante
|
printer().open(); // apre la stampante
|
||||||
TRectype arec= doc.curr(); // copia il record di fine cursore
|
TRectype arec= doc.curr(); // copia il record di fine cursore
|
||||||
cur.setregion(darec, arec); // imposta il filtro sul cursore di stampa (nell'ordine giusto :-)
|
cur.setregion(darec, arec); // imposta il filtro sul cursore di stampa (nell'ordine giusto :-)
|
||||||
|
TProgind pi(cur.items(),"Stampa documenti in corso...",FALSE,TRUE,10);
|
||||||
for (cur= 0; cur.pos()<cur.items(); ++cur) { // ciclo sugli elementi del cursore di stampa
|
for (cur= 0; cur.pos()<cur.items(); ++cur) { // ciclo sugli elementi del cursore di stampa
|
||||||
|
pi.addstatus(1L);
|
||||||
tip.put("CODTAB", doc.get("TIPODOC")); // posiziona la tabella dei tipi di documento
|
tip.put("CODTAB", doc.get("TIPODOC")); // posiziona la tabella dei tipi di documento
|
||||||
int err=tip.read(); // legge la tabella
|
int err=tip.read(); // legge la tabella
|
||||||
if (err==NOERR) { // se non ci sono errori procede con la stampa
|
if (err==NOERR) { // se non ci sono errori procede con la stampa
|
||||||
@ -959,7 +967,8 @@ void TStampa_Doc_Vendita::print() {
|
|||||||
|
|
||||||
TDocumentoEsteso * doc_est = new TDocumentoEsteso(cur.curr()); // istanzia TDocumentoEsteso sulla testata attuale
|
TDocumentoEsteso * doc_est = new TDocumentoEsteso(cur.curr()); // istanzia TDocumentoEsteso sulla testata attuale
|
||||||
// Da implementare quando verra gestito il numero di copie
|
// Da implementare quando verra gestito il numero di copie
|
||||||
// const int ncopie = doc_est->get_int("NCOPIE"); // Numero di copie da stampare per questo documento
|
int ncopie = _ncopie == 0 ? doc_est->tipo().ncopie() : _ncopie; // Numero di copie da stampare per questo documento
|
||||||
|
if (ncopie == 0) ncopie = 1;
|
||||||
_form = new TDocVen_Form(nomeform, *_firmrel, doc_est); // istanzia il form, passandogli il documento. (la delete del documento e' nel ditruttore
|
_form = new TDocVen_Form(nomeform, *_firmrel, doc_est); // istanzia il form, passandogli il documento. (la delete del documento e' nel ditruttore
|
||||||
const TString &modulo= _form->get_module_code(); // legge dal form il codice del modulo di carta per la stampa
|
const TString &modulo= _form->get_module_code(); // legge dal form il codice del modulo di carta per la stampa
|
||||||
if (modulo_prec.empty()) modulo_prec= modulo; // se siamo al primo passaggio la variabile di modulo precedente viene riempita
|
if (modulo_prec.empty()) modulo_prec= modulo; // se siamo al primo passaggio la variabile di modulo precedente viene riempita
|
||||||
@ -978,7 +987,7 @@ void TStampa_Doc_Vendita::print() {
|
|||||||
fcur.setregion(darec_r, arec_r); // setta il filtro sul cursore del form
|
fcur.setregion(darec_r, arec_r); // setta il filtro sul cursore del form
|
||||||
fcur.set_filterfunction(filter_rows); // setta il filtro per escludere alcuni tipi riga indicati nel form
|
fcur.set_filterfunction(filter_rows); // setta il filtro per escludere alcuni tipi riga indicati nel form
|
||||||
// Da implementare quando verra gestito il numero di copie
|
// Da implementare quando verra gestito il numero di copie
|
||||||
// for (int j=0; j<ncopie; j++)
|
for (int j=0; j<ncopie; j++)
|
||||||
_form->print(); // stampa il form corrente
|
_form->print(); // stampa il form corrente
|
||||||
if (_definitiva && (numerazione_definitiva(doc) != NOERR)) { // se la stampa è definitiva viene lanciata la procedura di rinumerazione
|
if (_definitiva && (numerazione_definitiva(doc) != NOERR)) { // se la stampa è definitiva viene lanciata la procedura di rinumerazione
|
||||||
if (_interattivo) error_box("Non è possibile completare la procedura di numerazione definitiva dei documenti");
|
if (_interattivo) error_box("Non è possibile completare la procedura di numerazione definitiva dei documenti");
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#define F_CODNUM 101
|
#define F_CODNUM 101
|
||||||
#define F_ANNO 102
|
#define F_ANNO 102
|
||||||
#define F_PROVV 103
|
#define F_PROVV 103
|
||||||
|
#define F_NCOPIE 104
|
||||||
|
|
||||||
#define F_DATA_O_NUM 201
|
#define F_DATA_O_NUM 201
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "ve1100.h"
|
#include "ve1100.h"
|
||||||
|
|
||||||
PAGE "Stampa Documenti Vendita" -1 -1 40 19
|
PAGE "Stampa Documenti Vendita" -1 -1 40 20
|
||||||
|
|
||||||
STRING F_CODNUM 4 4
|
STRING F_CODNUM 4 4
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -20,38 +20,45 @@ BEGIN
|
|||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
RADIOBUTTON F_DATA_O_NUM 20
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 3 "Selezione su "
|
|
||||||
ITEM "N|Numero" MESSAGE ENABLE,1@|CLEAR,2@
|
|
||||||
ITEM "D|Data" MESSAGE ENABLE,2@|CLEAR,1@
|
|
||||||
END
|
|
||||||
|
|
||||||
LIST F_PROVV 12
|
LIST F_PROVV 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 24 4 ""
|
PROMPT 1 3 "Tipo numerazione "
|
||||||
ITEM "P|Provvisoria"
|
ITEM "P|Provvisoria"
|
||||||
ITEM "D|Definitiva"
|
ITEM "D|Definitiva"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 38 5
|
NUMBER F_NCOPIE 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "Selezione per numero"
|
PROMPT 1 4 "Numero copie "
|
||||||
|
NUM_EXPR {(#THIS_FIELD >= 0)}
|
||||||
|
WARNING "Il numero di copie deve essere positivo"
|
||||||
|
END
|
||||||
|
|
||||||
|
RADIOBUTTON F_DATA_O_NUM 38
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 "Selezione su "
|
||||||
|
ITEM "N|Numero documento" MESSAGE ENABLE,1@|CLEAR,2@
|
||||||
|
ITEM "D|Data documento" MESSAGE ENABLE,2@|CLEAR,1@
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 38 5
|
GROUPBOX DLG_NULL 38 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 12 "Selezione per data"
|
PROMPT 1 9 "Selezione per numero"
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 38 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 14 "Selezione per data"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_DA_NDOC 7 0
|
NUMBER F_DA_NDOC 7 0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Dal num. "
|
PROMPT 2 10 "Dal num. "
|
||||||
USE 33 KEY 1 SELECT (CODNUM==#F_CODNUM) && (ANNO==#F_ANNO) && (PROVV==#F_PROVV)
|
USE 33 KEY 1 SELECT (CODNUM==#F_CODNUM) && (ANNO==#F_ANNO) && (PROVV==#F_PROVV)
|
||||||
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
||||||
JOIN 13 TO 20 INTO COM=COMCF
|
JOIN 13 TO 20 INTO COM=COMCF
|
||||||
INPUT CODNUM F_CODNUM SELECT
|
INPUT CODNUM F_CODNUM
|
||||||
INPUT ANNO F_ANNO SELECT
|
INPUT ANNO F_ANNO
|
||||||
INPUT NDOC F_DA_NDOC
|
INPUT NDOC F_DA_NDOC
|
||||||
INPUT PROVV F_PROVV
|
INPUT PROVV F_PROVV
|
||||||
DISPLAY "Data@10" DATADOC
|
DISPLAY "Data@10" DATADOC
|
||||||
@ -65,12 +72,12 @@ END
|
|||||||
|
|
||||||
NUMBER F_A_NDOC 7 0
|
NUMBER F_A_NDOC 7 0
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Al num. "
|
PROMPT 2 12 "Al num. "
|
||||||
USE 33 KEY 1 SELECT (CODNUM==#F_CODNUM) && (ANNO==#F_ANNO) && (PROVV==#F_PROVV)
|
USE 33 KEY 1 SELECT (CODNUM==#F_CODNUM) && (ANNO==#F_ANNO) && (PROVV==#F_PROVV)
|
||||||
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
||||||
JOIN 13 TO 20 INTO COM=COMCF
|
JOIN 13 TO 20 INTO COM=COMCF
|
||||||
INPUT CODNUM F_CODNUM SELECT
|
INPUT CODNUM F_CODNUM
|
||||||
INPUT ANNO F_ANNO SELECT
|
INPUT ANNO F_ANNO
|
||||||
INPUT NDOC F_A_NDOC
|
INPUT NDOC F_A_NDOC
|
||||||
INPUT PROVV F_PROVV
|
INPUT PROVV F_PROVV
|
||||||
COPY DISPLAY F_DA_NDOC
|
COPY DISPLAY F_DA_NDOC
|
||||||
@ -82,7 +89,7 @@ END
|
|||||||
|
|
||||||
DATE F_DA_DATADOC
|
DATE F_DA_DATADOC
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 "Dalla data "
|
PROMPT 2 15 "Dalla data "
|
||||||
USE 33 KEY 3 SELECT (CODNUM==#F_CODNUM) && (ANNO==#F_ANNO) && (PROVV==#F_PROVV)
|
USE 33 KEY 3 SELECT (CODNUM==#F_CODNUM) && (ANNO==#F_ANNO) && (PROVV==#F_PROVV)
|
||||||
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
||||||
JOIN 13 TO 20 INTO COM=COMCF
|
JOIN 13 TO 20 INTO COM=COMCF
|
||||||
@ -98,7 +105,7 @@ END
|
|||||||
|
|
||||||
DATE F_A_DATADOC
|
DATE F_A_DATADOC
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 15 "Alla data "
|
PROMPT 2 17 "Alla data "
|
||||||
COPY USE F_DA_DATADOC
|
COPY USE F_DA_DATADOC
|
||||||
INPUT CODNUM F_CODNUM
|
INPUT CODNUM F_CODNUM
|
||||||
INPUT ANNO F_ANNO
|
INPUT ANNO F_ANNO
|
||||||
|
Loading…
x
Reference in New Issue
Block a user