Patch level : 10.0 patch 767
Files correlati : ve1.exe Ricompilazione Demo : [ ] Commento : Stampa fatture ordinate per cliente Dalla versione 3.2 git-svn-id: svn://10.65.10.50/trunk@20595 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a88513c510
commit
919156201f
@ -12,6 +12,10 @@
|
||||
#define F_A_DATADOC 129
|
||||
#define F_TIPOST 130
|
||||
|
||||
#define F_TIPOCFD 131
|
||||
#define F_DA_CLIFO 132
|
||||
#define F_A_CLIFO 133
|
||||
|
||||
#define F_TIPOCF 110
|
||||
#define F_CODFR 111
|
||||
#define F_CODTO 112
|
||||
|
@ -109,21 +109,28 @@ BEGIN
|
||||
PROMPT 1 4 "Selezione per "
|
||||
ITEM "N|Numero documento" MESSAGE SHOW,1@|HIDE,2@
|
||||
ITEM "D|Data documento" MESSAGE SHOW,2@|HIDE,1@
|
||||
ITEM "C|Cliente/Forntore" MESSAGE SHOW,3@|HIDE,1@|HIDE,2@
|
||||
FLAG "P"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 68 5
|
||||
BEGIN
|
||||
PROMPT 1 8 "Selezione per numero"
|
||||
PROMPT 1 9 "Selezione per numero"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 68 5
|
||||
BEGIN
|
||||
PROMPT 1 8 "Selezione per data"
|
||||
PROMPT 1 9 "Selezione per data"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 68 7
|
||||
BEGIN
|
||||
PROMPT 1 9 "Selezione per cliente"
|
||||
GROUP 3
|
||||
END
|
||||
|
||||
NUMBER F_DA_NDOC 7 0
|
||||
BEGIN
|
||||
PROMPT 2 9 "Dal numero "
|
||||
@ -187,7 +194,7 @@ END
|
||||
|
||||
DATE F_A_DATADOC
|
||||
BEGIN
|
||||
PROMPT 2 11 "Alla data "
|
||||
PROMPT 2 12 "Alla data "
|
||||
USE 33 KEY 3 SELECT (PROVV==#F_PROVV) && (ANNO==#F_ANNO) && (CODNUM==#F_CODNUM)
|
||||
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
|
||||
JOIN 13 TO 20 INTO COM=COMCF
|
||||
@ -204,6 +211,42 @@ BEGIN
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
LIST F_TIPOCFD 1 12
|
||||
BEGIN
|
||||
PROMPT 2 10 "Tipo "
|
||||
ITEM "C|Cliente"
|
||||
ITEM "F|Fornitore"
|
||||
GROUP 3
|
||||
END
|
||||
|
||||
NUMBER F_DA_CLIFO 7 0
|
||||
BEGIN
|
||||
PROMPT 2 12 "Dal Cli/For"
|
||||
USE 20
|
||||
JOIN 13 TO 20 INTO COM==COMCF
|
||||
INPUT TIPOCF F_TIPOCFD SELECT
|
||||
INPUT CODCF F_DA_CLIFO
|
||||
DISPLAY "Codice@7" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Comune@20" 13->DENCOM
|
||||
OUTPUT F_DA_CLIFO CODCF
|
||||
GROUP 3
|
||||
END
|
||||
|
||||
NUMBER F_A_CLIFO 7 0
|
||||
BEGIN
|
||||
PROMPT 2 14 "Al Cli/For "
|
||||
USE 20
|
||||
JOIN 13 TO 20 INTO COM==COMCF
|
||||
INPUT TIPOCF F_TIPOCFD SELECT
|
||||
INPUT CODCF F_A_CLIFO
|
||||
DISPLAY "Codice@7" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Comune@20" 13->DENCOM
|
||||
OUTPUT F_A_CLIFO CODCF
|
||||
GROUP 3
|
||||
END
|
||||
|
||||
RADIOBUTTON F_TIPOST 68
|
||||
BEGIN
|
||||
PROMPT 1 13 "Stampa"
|
||||
|
@ -101,15 +101,30 @@ const TVariant& TDoc_recordset::get_field(int logic, const char* field) const
|
||||
return TISAM_recordset::get_field(logic, field);
|
||||
}
|
||||
|
||||
static TString _sortexpr;
|
||||
static TToken_string _sortexpr;
|
||||
|
||||
static int compare_rdocs(const TObject** p1, const TObject** p2)
|
||||
{
|
||||
const TRectype& r1 = *(const TRectype*)(*p1);
|
||||
const TRectype& r2 = *(const TRectype*)(*p2);
|
||||
const TString& c1 = r1.get(_sortexpr);
|
||||
const TString& c2 = r2.get(_sortexpr);
|
||||
return c1.compare(c2);
|
||||
|
||||
int cmp = 0;
|
||||
FOR_EACH_TOKEN(_sortexpr, fld)
|
||||
{
|
||||
const TString& c1 = r1.get(fld);
|
||||
const TString& c2 = r2.get(fld);
|
||||
if (real::is_real(c1) && real::is_real(c2))
|
||||
{
|
||||
const real r1(c1);
|
||||
const real r2(c2);
|
||||
cmp = r1 == r2 ? 0 : (r1 < r2 ? -1 : +1);
|
||||
}
|
||||
else
|
||||
cmp = c1.compare(c2);
|
||||
if (cmp != 0)
|
||||
break;
|
||||
}
|
||||
return cmp;
|
||||
}
|
||||
|
||||
TDoc_recordset::TDoc_recordset(const TRecordset& doc, const TString& old_query)
|
||||
@ -131,12 +146,17 @@ TDoc_recordset::TDoc_recordset(const TRecordset& doc, const TString& old_query)
|
||||
const int pos = line.find("BY ");
|
||||
if (pos > 0)
|
||||
{
|
||||
_sortexpr = line.mid(pos + 3);
|
||||
_sortexpr.trim();
|
||||
if (_sortexpr.starts_with("34."))
|
||||
_sortexpr.ltrim(3);
|
||||
if (_sortexpr.starts_with("RDOC."))
|
||||
_sortexpr.ltrim(5);
|
||||
TToken_string by(line.mid(pos + 3), ' ');
|
||||
by.strip_d_spaces(); by.trim();
|
||||
FOR_EACH_TOKEN(by, tok)
|
||||
{
|
||||
TString16 fld = tok;
|
||||
if (fld.starts_with("34."))
|
||||
fld.ltrim(3);
|
||||
if (fld.starts_with("RDOC."))
|
||||
fld.ltrim(5);
|
||||
_sortexpr.add(fld);
|
||||
}
|
||||
}
|
||||
line = query.get();
|
||||
line.trim();
|
||||
@ -934,6 +954,7 @@ class TReport_doc_app : public TSkeleton_application
|
||||
bool _no_print_dlg;
|
||||
|
||||
protected:
|
||||
void add_cli_filter(TString& query, bool from) const;
|
||||
void add_data_filter(TString& query, bool from) const;
|
||||
void add_ndoc_filter(TString& query, bool from) const;
|
||||
void add_filter(TString& str, bool from) const;
|
||||
@ -1007,6 +1028,22 @@ bool TReport_doc_app::get_next_mail(TToken_string& to, TToken_string& cc, TToken
|
||||
return ok;
|
||||
}
|
||||
|
||||
void TReport_doc_app::add_cli_filter(TString& query, bool from) const
|
||||
{
|
||||
if (from)
|
||||
{
|
||||
query << " KEY 4 SELECT "
|
||||
<< "(PROVV='" << _msk->get(F_PROVV)
|
||||
<< "')&&(ANNO=" << _msk->get(F_ANNO)
|
||||
<< ")&&(CODNUM='" << _msk->get(F_CODNUM) << "')";
|
||||
}
|
||||
query << '\n';
|
||||
const TString4 tipocf = _msk->get(F_TIPOCFD);
|
||||
const long cod = _msk->get_long(from ? F_DA_CLIFO : F_A_CLIFO);
|
||||
if (cod > 0L)
|
||||
query << (from ? "FROM" : "TO") << " TIPOCF=" << tipocf << " CODCF=" << cod;
|
||||
}
|
||||
|
||||
void TReport_doc_app::add_data_filter(TString& query, bool from) const
|
||||
{
|
||||
if (from)
|
||||
@ -1033,11 +1070,20 @@ void TReport_doc_app::add_ndoc_filter(TString& query, bool from) const
|
||||
|
||||
void TReport_doc_app::add_filter(TString& query, bool from) const
|
||||
{
|
||||
const bool per_data = _msk->get(F_DATA_O_NUM) == "D";
|
||||
if (per_data)
|
||||
const char tipost = _msk->get(F_DATA_O_NUM)[0];
|
||||
|
||||
switch (tipost)
|
||||
{
|
||||
case 'D' :
|
||||
add_data_filter(query, from);
|
||||
else
|
||||
break;
|
||||
case 'C' :
|
||||
add_cli_filter(query, from);
|
||||
break;
|
||||
default :
|
||||
add_ndoc_filter(query, from);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool TReport_doc_app::create()
|
||||
|
Loading…
x
Reference in New Issue
Block a user