Patch level : aga 07 no patch
Files correlati : si0.exe Ricompilazione Demo : [ ] Commento : Corretta selezione stampa servizi In tutti i form bisogna fare un join da 20 (clienti) a 33 (documenti) git-svn-id: svn://10.65.10.50/trunk@10037 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
81fdc5499d
commit
2d0aeae806
@ -102,6 +102,7 @@ void TListe_application::set_limits()
|
|||||||
{
|
{
|
||||||
TCursor * c = _form->cursor();
|
TCursor * c = _form->cursor();
|
||||||
TRelation * r = c->relation();
|
TRelation * r = c->relation();
|
||||||
|
const int headlnum = r->lfile().num();
|
||||||
TString16 tipo(_select_mask->get(F_TIPOCF));
|
TString16 tipo(_select_mask->get(F_TIPOCF));
|
||||||
TString16 cli_fr(_select_mask->get(F_CODFR));
|
TString16 cli_fr(_select_mask->get(F_CODFR));
|
||||||
TString16 cli_to(_select_mask->get(F_CODTO));
|
TString16 cli_to(_select_mask->get(F_CODTO));
|
||||||
@ -109,31 +110,56 @@ void TListe_application::set_limits()
|
|||||||
from.put("TIPOCF", tipo);
|
from.put("TIPOCF", tipo);
|
||||||
TRectype to(from);
|
TRectype to(from);
|
||||||
|
|
||||||
if (cli_fr.empty() && cli_to.empty())
|
TString filter("(");
|
||||||
{
|
if (headlnum == LF_DOC)
|
||||||
TString16 rag_fr(_select_mask->get(F_RAGSOCFR));
|
{
|
||||||
if (rag_fr.not_empty())
|
if (cli_fr.empty() && cli_to.empty())
|
||||||
from.put("RAGSOC", rag_fr);
|
{
|
||||||
TString16 rag_to(_select_mask->get(F_RAGSOCTO));
|
TString16 rag_fr(_select_mask->get(F_RAGSOCFR));
|
||||||
if (rag_to.not_empty())
|
if (rag_fr.not_empty())
|
||||||
to.put("RAGSOC", rag_to);
|
filter << format("&&(20->RAGSOC>=\"%s\")", (const char *) rag_fr);
|
||||||
c->setkey(2);
|
TString16 rag_to(_select_mask->get(F_RAGSOCTO));
|
||||||
|
if (rag_to.not_empty())
|
||||||
|
filter << format("&&(20->RAGSOC<=\"%s\")", (const char *) rag_to);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TString16 cli_fr(_select_mask->get(F_CODFR));
|
||||||
|
if (cli_fr.not_empty())
|
||||||
|
from.put("CODCF", cli_fr);
|
||||||
|
TString16 rag_to(_select_mask->get(F_CODTO));
|
||||||
|
if (rag_to.not_empty())
|
||||||
|
to.put("CODCF", cli_to);
|
||||||
|
c->setkey(2);
|
||||||
|
}
|
||||||
|
c->setregion(from, to);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TString16 cli_fr(_select_mask->get(F_CODFR));
|
if (cli_fr.empty() && cli_to.empty())
|
||||||
if (cli_fr.not_empty())
|
{
|
||||||
from.put("CODCF", cli_fr);
|
TString16 rag_fr(_select_mask->get(F_RAGSOCFR));
|
||||||
TString16 rag_to(_select_mask->get(F_CODTO));
|
if (rag_fr.not_empty())
|
||||||
if (rag_to.not_empty())
|
filter << format("&&(20->RAGSOC>=\"%s\")", (const char *) rag_fr);
|
||||||
to.put("CODCF", cli_to);
|
TString16 rag_to(_select_mask->get(F_RAGSOCTO));
|
||||||
c->setkey(1);
|
if (rag_to.not_empty())
|
||||||
}
|
filter << format("&&(20->RAGSOC<=\"%s\")", (const char *) rag_to);
|
||||||
c->setregion(from, to);
|
}
|
||||||
TString filter;
|
else
|
||||||
|
{
|
||||||
|
TString16 cli_fr(_select_mask->get(F_CODFR));
|
||||||
|
if (cli_fr.not_empty())
|
||||||
|
from.put("CODCF", cli_fr);
|
||||||
|
TString16 rag_to(_select_mask->get(F_CODTO));
|
||||||
|
if (rag_to.not_empty())
|
||||||
|
to.put("CODCF", cli_to);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (filter != "(")
|
||||||
|
filter << "&&";
|
||||||
|
filter << format("(ANNO==%d)", _select_mask->get_int(F_ANNO));
|
||||||
|
filter << format("&&(PROVV==\"%c\")", _select_mask->get(F_PROVV)[0]);
|
||||||
|
|
||||||
filter << format("((33->ANNO==%d)", _select_mask->get_int(F_ANNO));
|
|
||||||
filter << format("&&(33->PROVV==\"%c\")", _select_mask->get(F_PROVV)[0]);
|
|
||||||
TSheet_field & s = _select_mask->sfield(F_SHEETNUMS);
|
TSheet_field & s = _select_mask->sfield(F_SHEETNUMS);
|
||||||
const int rows = s.items();
|
const int rows = s.items();
|
||||||
|
|
||||||
@ -149,7 +175,7 @@ void TListe_application::set_limits()
|
|||||||
if (riga.empty_items() || sw.empty())
|
if (riga.empty_items() || sw.empty())
|
||||||
break; // Interrompe alla prima riga vuota...
|
break; // Interrompe alla prima riga vuota...
|
||||||
|
|
||||||
e1.format("(33->CODNUM==\"%s\"", (const char*)sw);
|
e1.format("(CODNUM==\"%s\"", (const char*)sw);
|
||||||
e2 = "";
|
e2 = "";
|
||||||
for (int k=1; k<=6; k++) // Famme vede' li stati generali... Aho' A BURINO! Che e' la Rivoluzione Francese?
|
for (int k=1; k<=6; k++) // Famme vede' li stati generali... Aho' A BURINO! Che e' la Rivoluzione Francese?
|
||||||
{
|
{
|
||||||
@ -179,16 +205,16 @@ void TListe_application::set_limits()
|
|||||||
}
|
}
|
||||||
TDate data_fr(_select_mask->get(F_DA_DATADOC));
|
TDate data_fr(_select_mask->get(F_DA_DATADOC));
|
||||||
if (data_fr.ok())
|
if (data_fr.ok())
|
||||||
filter << format("&&(ANSI(33->DATADOC)>=%s)", (const char *) data_fr.string(ANSI));
|
filter << format("&&(ANSI(33->DATADOC)>=\"%s\")", (const char *) data_fr.string(ANSI));
|
||||||
TDate data_to(_select_mask->get(F_A_DATADOC));
|
TDate data_to(_select_mask->get(F_A_DATADOC));
|
||||||
if (data_to.ok())
|
if (data_to.ok())
|
||||||
filter << format("&&(ANSI(33->DATADOC)>=%s)", (const char *) data_to.string(ANSI));
|
filter << format("&&(ANSI(33->DATADOC)<=\"%s\")", (const char *) data_to.string(ANSI));
|
||||||
TDate art_fr(_select_mask->get(F_SERVFR));
|
TString80 art_fr(_select_mask->get(F_SERVFR));
|
||||||
if (art_fr.ok())
|
if (art_fr.not_empty())
|
||||||
filter << format("&&(34->CODARTMAG>=\"%s\")", (const char *) art_fr);
|
filter << format("&&(34->CODARTMAG>=\"%s\")", (const char *) art_fr);
|
||||||
TDate art_to(_select_mask->get(F_SERVTO));
|
TString80 art_to(_select_mask->get(F_SERVTO));
|
||||||
if (art_to.ok())
|
if (art_to.not_empty())
|
||||||
filter << format("&&(34->CODARTMAG>=\"%s\")", (const char *) art_to);
|
filter << format("&&(34->CODARTMAG<=\"%s\")", (const char *) art_to);
|
||||||
filter << ")";
|
filter << ")";
|
||||||
|
|
||||||
c->setfilter(filter, TRUE);
|
c->setfilter(filter, TRUE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user