Merge branch 'R_10_00' of http://10.65.20.33/CAMPO/campo into R_10_00

This commit is contained in:
Mattia Tollari 2019-02-27 16:58:51 +01:00
commit f3e218c238
30 changed files with 418 additions and 88 deletions

7
cd/test/fp0710.txt Normal file
View File

@ -0,0 +1,7 @@
fp0.exe
fp0100a.msk
fp0400a.msk
Monitor fatt. passive:
Sistemato numero documento da number a string;
Sistemato formato data da yyyy-mm-dd a italiano.

21
cd/test/fp0710a.ini Normal file
View File

@ -0,0 +1,21 @@
[Main]
Demo=0
[fp1]
File(0) = fp0.exe|X
File(1) = fp0100a.msk|X
File(4) = fp0400a.msk|X
Patch = 0710
Versione = 21511200
[fp]
Data = 25-02-2019
Descrizione = Fattura Elettronica
Dischi = 1
Moduli = cg,ve
OEM =
Patch = 710
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/fp0710a1.zip Normal file

Binary file not shown.

5
cd/test/fp0712.txt Normal file
View File

@ -0,0 +1,5 @@
fp0.exe
fp0100a.msk
fp0400a.msk
Corrette maschere configurazione e monitor passive

21
cd/test/fp0712a.ini Normal file
View File

@ -0,0 +1,21 @@
[Main]
Demo=0
[fp1]
File(0) = fp0.exe|X
File(1) = fp0100a.msk|X
File(4) = fp0400a.msk|X
Patch = 0712
Versione = 21511200
[fp]
Data = 26-02-2019
Descrizione = Fattura Elettronica
Dischi = 1
Moduli = cg,ve
OEM =
Patch = 712
PostProcess =
PreProcess =
Versione = 21511200

BIN
cd/test/fp0712a1.zip Normal file

Binary file not shown.

3
cd/test/sy0710.txt Normal file
View File

@ -0,0 +1,3 @@
xvtdb.dll
Sistemata get per SQLApi: restituiva puntatore sbagliato alla stringa: aggiunto static alla variabile

21
cd/test/sy0710a.ini Normal file
View File

@ -0,0 +1,21 @@
[Main]
Demo=0
[sy1]
File(54) = xvtdb.dll|X
Patch = 710
Versione = 21511200
[sy]
Data = 25-02-2019
Descrizione = Sistema
Dischi = 1
Moduli =
OEM =
Patch = 710
PostProcess =
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/sy0710a1.zip Normal file

Binary file not shown.

3
cd/test/sy0712.txt Normal file
View File

@ -0,0 +1,3 @@
xvtdb.dll
Ricompilazione dll per funzionamento anomalo sprintf in get_date

21
cd/test/sy0712a.ini Normal file
View File

@ -0,0 +1,21 @@
[Main]
Demo=0
[sy1]
File(54) = xvtdb.dll|X
Patch = 0712
Versione = 21511200
[sy]
Data = 26-02-2019
Descrizione = Sistema
Dischi = 1
Moduli =
OEM =
Patch = 712
PostProcess =
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/sy0712a1.zip Normal file

Binary file not shown.

3
cd/test/ve0710.txt Normal file
View File

@ -0,0 +1,3 @@
ve1.exe
Stampa avanzata documenti: aggiunto parametro in chiamata per disabilitare archiviazione

129
cd/test/ve0710a.ini Normal file
View File

@ -0,0 +1,129 @@
[Main]
Demo=0
[ve1]
File(19) = ve1.exe|X
Patch = 710
Versione = 21511200
[ve99]
Kill(0) = batbcld.msk|x
Kill(1) = bastspp.rep|x
Kill(2) = basttri.msk|x
Kill(3) = batbeld.msk|x
Kill(4) = ve7700a.msk|x
Kill(5) = batbspt.msk|x
Kill(6) = ve7300a.msk|x
Kill(7) = bastcra.rep|x
Kill(8) = batbfca.msk|x
Kill(9) = bastgcg.rep|x
Kill(10) = bastabe.rep|x
Kill(11) = batbpro.msk|x
Kill(12) = bastgca.msk|x
Kill(13) = ve7400a.msk|x
Kill(14) = batbtag.msk|x
Kill(15) = batbtri.msk|x
Kill(16) = baststd.msk|x
Kill(17) = baststd.rep|x
Kill(18) = batbrfc.msk|x
Kill(19) = ve7200a.msk|x
Kill(20) = batbmre.msk|x
Kill(21) = bastctr.msk|x
Kill(22) = batbcau.msk|x
Kill(23) = ve7400a.ini|x
Kill(24) = basteld.rep|x
Kill(25) = batbrfa.msk|x
Kill(26) = bastcaa.rep|x
Kill(27) = ve7701a.ini|x
Kill(28) = bastfrd.rep|x
Kill(29) = batbgcg.msk|x
Kill(30) = bastums.rep|x
Kill(31) = bastgca.rep|x
Kill(32) = basttri.rep|x
Kill(33) = batbfrr.msk|x
Kill(34) = batbums.msk|x
Kill(35) = bastimb.rep|x
Kill(36) = bastfca.msk|x
Kill(37) = bastfrr.msk|x
Kill(38) = batbbnp.msk|x
Kill(39) = bastasf.msk|x
Kill(40) = bastnum.msk|x
Kill(41) = bastfca.rep|x
Kill(42) = ve7400conf.ini|x
Kill(43) = ve7500a.msk|x
Kill(44) = bastgmc.msk|x
Kill(45) = bastfrm.rep|x
Kill(46) = batbfsa.msk|x
Kill(47) = basttip.rep|x
Kill(48) = batbstd.msk|x
Kill(49) = bastcau.msk|x
Kill(50) = bastrfa.msk|x
Kill(51) = bastnum.rep|x
Kill(52) = bastubi.msk|x
Kill(53) = ve7600a.msk|x
Kill(54) = ve7100a.msk|x
Kill(55) = batbprs.msk|x
Kill(56) = batbspp.msk|x
Kill(57) = batbcaa.msk|x
Kill(58) = bastrfc.msk|x
Kill(59) = bastimb.msk|x
Kill(60) = bastums.msk|x
Kill(61) = batbctr.msk|x
Kill(62) = batbfid.msk|x
Kill(63) = bastspp.msk|x
Kill(64) = batbubi.msk|x
Kill(65) = bastctr.rep|x
Kill(66) = bastubi.rep|x
Kill(67) = basttag.msk|x
Kill(68) = bastcaa.msk|x
Kill(69) = bastfrr.rep|x
Kill(70) = bastcau.rep|x
Kill(71) = batbtip.msk|x
Kill(72) = basteld.msk|x
Kill(73) = bastgcg.msk|x
Kill(74) = ve7200a.frm|x
Kill(75) = bastprs.rep|x
Kill(76) = bastbnp.msk|x
Kill(77) = batbgsa.msk|x
Kill(78) = batbasf.msk|x
Kill(79) = efstbnp.rep|x
Kill(80) = eftbbnp.msk|x
Kill(81) = basttag.rep|x
Kill(82) = batbgca.msk|x
Kill(83) = ve7.exe|x
Kill(84) = ve7300a.frm|x
Kill(85) = batbfrm.msk|x
Kill(86) = bastrfc.rep|x
Kill(87) = batbnum.msk|x
Kill(88) = bastcra.msk|x
Kill(89) = bastfrd.msk|x
Kill(90) = bastprs.msk|x
Kill(91) = batbcra.msk|x
Kill(92) = bastasf.rep|x
Kill(93) = bastabe.msk|x
Kill(94) = batbgmc.msk|x
Kill(95) = bastbnp.rep|x
Kill(96) = efstbnp.msk|x
Kill(97) = batbabe.msk|x
Kill(98) = batbacr.msk|x
Kill(99) = batbimb.msk|x
Kill(100) = batbfrd.msk|x
Kill(101) = batbprv.msk|x
Kill(102) = bastgmc.rep|x
Kill(103) = bastfrm.msk|x
Kill(104) = basttip.msk|x
Kill(105) = bastrfa.rep|x
[ve]
Data = 26-02-2019
Descrizione = Vendite
Dischi = 1
Moduli = ba,cg9,pr9,mg9,sv9,in9,ef9
OEM =
Patch = 710
PostProcess = bainst -0 VE
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/ve0710a1.zip Normal file

Binary file not shown.

4
cd/test/ve0712.txt Normal file
View File

@ -0,0 +1,4 @@
ve1.exe
Tolto controllo stato iniziale/finale nel cambio stato documenti
Spostato flag archiviazione prima di effetuare la stampa

129
cd/test/ve0712a.ini Normal file
View File

@ -0,0 +1,129 @@
[Main]
Demo=0
[ve1]
File(19) = ve1.exe|X
Patch = 0712
Versione = 21511200
[ve99]
Kill(0) = batbimb.msk|x
Kill(1) = batbacr.msk|x
Kill(2) = bastfrd.msk|x
Kill(3) = bastbnp.rep|x
Kill(4) = bastcra.msk|x
Kill(5) = batbgmc.msk|x
Kill(6) = batbabe.msk|x
Kill(7) = efstbnp.msk|x
Kill(8) = batbfrm.msk|x
Kill(9) = batbcra.msk|x
Kill(10) = ve7300a.frm|x
Kill(11) = bastprs.msk|x
Kill(12) = batbnum.msk|x
Kill(13) = bastabe.msk|x
Kill(14) = bastrfc.rep|x
Kill(15) = bastasf.rep|x
Kill(16) = basttag.rep|x
Kill(17) = eftbbnp.msk|x
Kill(18) = ve7.exe|x
Kill(19) = batbgca.msk|x
Kill(20) = ve7200a.msk|x
Kill(21) = batbrfa.msk|x
Kill(22) = bastgca.rep|x
Kill(23) = batbrfc.msk|x
Kill(24) = basteld.rep|x
Kill(25) = bastums.rep|x
Kill(26) = ve7701a.ini|x
Kill(27) = batbfrr.msk|x
Kill(28) = bastcaa.rep|x
Kill(29) = basttri.rep|x
Kill(30) = batbtri.msk|x
Kill(31) = bastctr.msk|x
Kill(32) = batbtag.msk|x
Kill(33) = batbmre.msk|x
Kill(34) = baststd.rep|x
Kill(35) = ve7400a.ini|x
Kill(36) = baststd.msk|x
Kill(37) = batbcau.msk|x
Kill(38) = batbpro.msk|x
Kill(39) = bastabe.rep|x
Kill(40) = ve7400a.msk|x
Kill(41) = bastgca.msk|x
Kill(42) = bastimb.msk|x
Kill(43) = bastctr.rep|x
Kill(44) = batbtip.msk|x
Kill(45) = bastrfc.msk|x
Kill(46) = batbubi.msk|x
Kill(47) = bastcau.rep|x
Kill(48) = basttag.msk|x
Kill(49) = bastgcg.msk|x
Kill(50) = bastubi.rep|x
Kill(51) = basteld.msk|x
Kill(52) = bastcau.msk|x
Kill(53) = batbprs.msk|x
Kill(54) = batbctr.msk|x
Kill(55) = batbstd.msk|x
Kill(56) = ve7100a.msk|x
Kill(57) = bastums.msk|x
Kill(58) = batbcaa.msk|x
Kill(59) = bastspp.msk|x
Kill(60) = batbspp.msk|x
Kill(61) = batbfid.msk|x
Kill(62) = bastasf.msk|x
Kill(63) = bastfrm.rep|x
Kill(64) = bastnum.rep|x
Kill(65) = batbbnp.msk|x
Kill(66) = bastgmc.msk|x
Kill(67) = bastrfa.msk|x
Kill(68) = basttip.rep|x
Kill(69) = ve7600a.msk|x
Kill(70) = batbfsa.msk|x
Kill(71) = bastubi.msk|x
Kill(72) = batbgcg.msk|x
Kill(73) = bastimb.rep|x
Kill(74) = bastfca.rep|x
Kill(75) = bastfrd.rep|x
Kill(76) = batbums.msk|x
Kill(77) = bastnum.msk|x
Kill(78) = bastfrr.msk|x
Kill(79) = ve7500a.msk|x
Kill(80) = bastfca.msk|x
Kill(81) = ve7400conf.ini|x
Kill(82) = efstbnp.rep|x
Kill(83) = batbasf.msk|x
Kill(84) = bastfrr.rep|x
Kill(85) = bastprs.rep|x
Kill(86) = bastcaa.msk|x
Kill(87) = ve7200a.frm|x
Kill(88) = batbgsa.msk|x
Kill(89) = bastbnp.msk|x
Kill(90) = bastrfa.rep|x
Kill(91) = basttip.msk|x
Kill(92) = batbprv.msk|x
Kill(93) = batbfrd.msk|x
Kill(94) = bastfrm.msk|x
Kill(95) = bastgmc.rep|x
Kill(96) = bastgcg.rep|x
Kill(97) = batbfca.msk|x
Kill(98) = bastspp.rep|x
Kill(99) = batbcld.msk|x
Kill(100) = batbspt.msk|x
Kill(101) = ve7700a.msk|x
Kill(102) = batbeld.msk|x
Kill(103) = basttri.msk|x
Kill(104) = bastcra.rep|x
Kill(105) = ve7300a.msk|x
[ve]
Data = 26-02-2019
Descrizione = Vendite
Dischi = 1
Moduli = ba,cg9,pr9,mg9,sv9,in9,ef9
OEM =
Patch = 712
PostProcess = bainst -0 VE
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/ve0712a1.zip Normal file

Binary file not shown.

View File

@ -4167,7 +4167,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
if (risul > ZERO)
{
if (gestione_manuale_credito_compensabile)
credito_utilizzabile = lim.get_real("R15");
credito_utilizzabile -= lim.get_real("R15");
credito_utilizzato_iva = min(risul, credito_utilizzabile);
res_cred += credito_utilizzato_iva;
risultato -= credito_utilizzato_iva;

View File

@ -5,7 +5,7 @@ TOOLBAR "topbar" 0 0 0 2
ENDPAGE
PAGE "Configurazione FP" 0 2 0 0
PAGE "Configurazione FP (1)" 0 2 0 0
GROUPBOX DLG_NULL 78 6
BEGIN
@ -102,14 +102,14 @@ BEGIN
END
GROUPBOX DLG_NULL 78 2
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 8 "@BControlli preventivi"
END
BOOLEAN F_CHECK_NOT_BLOCK
BEGIN
PROMPT 2 11 "Rendi controlli XML non bloccanti"
PROMPT 2 9 "Rendi controlli XML non bloccanti"
END

View File

@ -157,7 +157,6 @@ void TPassive_mask::elenco_prots_sel(TString& string) const
string = "";
}
void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TSheet_field& sf_err)
{
int forn_code = -1;
@ -461,23 +460,33 @@ void TPassive_mask::aggiorna_forn()
if (row->starts_with("X") && cod_forn == no_match_cf)
{
TString num; num.format("%04d", nr);
TFilename newf_ini;
TString temp_path = newf_ini.tempdir();
newf_ini.tempdir() << "\\" << newf << num << ".ini";
TConfig forn_conf(newf_ini, "Transaction");
TLocalisamfile clifo(LF_CLIFO);
bool is_not_gruppo_iva = false;
clifo.setkey(5);
clifo.put(CLI_TIPOCF, 'F');
clifo.put(CLI_STATOPAIV, row->get(1));
clifo.put(CLI_PAIV, row->get(2));
is_not_gruppo_iva = (clifo.read() == NOERR && clifo.get(CLI_ALLEG) != 'G');
if(is_not_gruppo_iva)
{
TString num; num.format("%04d", nr);
TFilename newf_ini;
TString temp_path = newf_ini.tempdir();
newf_ini.tempdir() << "\\" << newf << num << ".ini";
TConfig forn_conf(newf_ini, "Transaction");
forn_conf.set("Action", "MODIFY");
forn_conf.set("Action", "MODIFY");
forn_conf.set_paragraph("20");
forn_conf.set("TIPOCF", "F");
forn_conf.set("COFI", row->get(sf.cid2index(S_CODFIERR)));
forn_conf.set("CODCF", row_elenco_fatt.get(sf.cid2index(S_FORNITORE)));
forn_conf.set_paragraph("20");
forn_conf.set("TIPOCF", "F");
forn_conf.set("COFI", row->get(sf.cid2index(S_CODFIERR)));
forn_conf.set("CODCF", row_elenco_fatt.get(sf.cid2index(S_FORNITORE)));
TExternal_app app(TString("cg0 -1 -i") << temp_path << "\\" << newf << "*" << ".ini" << " /u" << user());
message_box(TString("Sto andando a modificare il codice fiscale del fornitore:\n") << row->get(sf.cid2index(S_RAGSERR)));
app.run();
row->add("", 0);
TExternal_app app(TString("cg0 -1 -i") << temp_path << "\\" << newf << "*" << ".ini" << " /u" << user());
message_box(TString("Sto andando a modificare il codice fiscale del fornitore:\n") << row->get(sf.cid2index(S_RAGSERR)));
app.run();
row->add("", 0);
}
}
}
sf.force_update();

View File

@ -64,19 +64,19 @@ BEGIN
PROMPT 0 2 ""
ITEM ""
ITEM "Anno"
ITEM "Tipo SDI@6"
ITEM "Num.\nDoc.@20"
ITEM "Tipo Doc.\nSDI@6"
ITEM "Numero\nDocumento@20"
ITEM "Data\nDoc.@10"
ITEM "Totale\nDoc."
ITEM "Totale\nDocumento"
ITEM "Salvato in\nFP PRO@7"
ITEM "Fornitore"
ITEM "Ragione Sociale@50"
ITEM "Stato P.IVA@2"
ITEM "P. IVA@16"
ITEM "Stato\nP.IVA@4"
ITEM "Partita IVA@16"
ITEM "Cod. Fiscale@16"
ITEM "Allegati"
ITEM "Codice\ndestinatario@7"
ITEM "Rag. Soc. (XML)@50"
ITEM "Codice\ndestinatario@8"
ITEM "Ragione Sociale (XML)@50"
ITEM "Numero Protocollo (in entrata)\n[anno-tipo prot/progressivo]@22"
ITEM "Chiave Prot.@80"
END

View File

@ -27,7 +27,7 @@ void set_connection(SSimple_query& s)
TString ip = fp_settings().get_db_indirizzo();
if (ip.upper() != "TESTCAMPO2012")
{
if (s.sq_connect("TESTCAMPO2012@campo_fp",
if (s.sq_connect("TESTCAMPO2012@FP_HDI",
"fp",
"fp",
TSDB_MSSQL) != NOERR)
@ -774,7 +774,7 @@ bool TDoc_fp::check_row(const TRiga_documento& rdoc)
if(rdoc.is_spese())
{
const TSpesa_prest& spesa = rdoc.spesa();
if(spesa.perc().is_zero())
if(spesa.is_percentuale() && spesa.perc().is_zero())
{
msg.cut(0) << "É corretto che per la spesa " << spesa.codice() << " la percentuale sia zero?";
log(1, msg);

View File

@ -395,7 +395,7 @@ static bool all_zeroes(const TString& str)
}
void TExpression::eval()
{
{
TEval_stack evalstack;
TBit_array types;
int type_pointer = 0;
@ -472,8 +472,13 @@ void TExpression::eval()
if (!evalstack.peek_real().is_zero())
if (_ignore_error)
_error=1;
else
print_error("Divisione per zero!");
else
{
TString msg("Espressione : ");
msg << _original << ": Divisione per zero!";
print_error(msg);
}
} else
evalstack.peek_real() /= r;
}

View File

@ -301,8 +301,7 @@ bool TMotore_application::changing_mask( int mode )
{
static int lastmode = NO_MODE;
static TString4 last_tipodoc;
const TDocumento & doc = (const TDocumento &) get_relation()->curr();
const TString& tipodoc = mode == MODE_QUERY ? EMPTY_STRING : doc.tipo().codice();
const TString& tipodoc = mode == MODE_QUERY ? EMPTY_STRING : query_mask().get(F_TIPODOC);
const bool change = ( mode != lastmode) || (last_tipodoc != tipodoc);
lastmode = mode;
@ -747,7 +746,7 @@ bool TMotore_application::user_create( )
_msk->set_handler(F_CODNUM, TDocumento_mask::num_handler);
_msk->set_handler(F_TIPODOC, tdoc_handler);
_msk->set_handler(F_NUMDOCRIF, TDocumento_mask::numdocrif_search_handler);
// _msk->set_handler(F_RAGSOCSEARCH, TDocumento_mask::ragsoc_search_handler);
// _msk->set_handler(F_RAGSOCSEARCH, TDocumento_mask::ragsoc_search_handler);
if (_msk->id2pos(F_RIFSEARCH) > 0)
_msk->set_handler( F_RIFSEARCH, TDocumento_mask::rif_search_handler );
_msk->set_handler(F_NDOC, ndoc_handler);

View File

@ -204,7 +204,7 @@ STRING F_RAGSOCSEARCH 50
BEGIN
PROMPT 2 9 "Ragione Sociale "
USE LF_DOC SELECT (TIPOCF==#F_TIPOCF)&&(BETWEEN(STATO,#F_STATO,#F_STATO))
BY LF_CLIFO->RAGSOC NDOC
BY UPPER(LF_CLIFO->RAGSOC) NDOC
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN LF_COMUNI TO LF_CLIFO INTO STATO==STATOCF COM==COMCF
INPUT PROVV F_PROVV SELECT
@ -214,6 +214,7 @@ BEGIN
COPY DISPLAY F_CODCF
COPY OUTPUT F_CODCF
CHECKTYPE NORMAL
FLAGS "B"
END
ENDPAGE

View File

@ -1706,8 +1706,6 @@ void TReport_doc_app::main_loop()
// argv(7); // Provvisiorio o Definitivo testato altrove!
if (a > 8)
_msk->set(F_NCOPIE, argv(8)); // Numero copie
print_selection(mode);
if(a > 9)
{
@ -1726,6 +1724,8 @@ void TReport_doc_app::main_loop()
}
}
print_selection(mode);
return;
}

View File

@ -87,8 +87,6 @@ BEGIN
OUTPUT F_FINALE CODTAB
OUTPUT F_DESCFIN S0
CHECKTYPE REQUIRED
NUM_EXPR (#F_FINALE!=#F_INIZIALE)
WARNING "Lo stato finale deve essere diverso da quello iniziale"
END
STRING F_DESCFIN 50 52

View File

@ -1099,7 +1099,6 @@ public:
static bool num_handler( TMask_field& f, KEY key );
static bool tipo_handler( TMask_field& f, KEY key );
static bool numdocrif_search_handler( TMask_field& f, KEY key );
static bool ragsoc_search_handler( TMask_field& f, KEY key );
static bool rif_search_handler( TMask_field& f, KEY key );
static bool datadocrif_handler(TMask_field& f, KEY key);
static bool sheet_handler(TMask_field& f, KEY key);

View File

@ -2645,54 +2645,6 @@ bool TDocumento_mask::numdocrif_search_handler(TMask_field& f, KEY key)
return true;
}
bool TDocumento_mask::ragsoc_search_handler(TMask_field& f, KEY key)
{
if (key == K_F9)
{
TMask& m = f.mask();
TRelation rel(LF_DOC);
rel.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF");
rel.add(LF_COMUNI, "STATO==STATOCF|COM==COMCF", 1 , LF_CLIFO);
TRectype& filtrec = rel.curr();
filtrec.put(DOC_PROVV, m.get(F_PROVV));
filtrec.put(DOC_ANNO, m.get(F_ANNO));
filtrec.put(DOC_CODNUM, m.get(F_CODNUM));
TSorted_cursor cur(&rel, "TIPOCF|UPPER(20->RAGSOC)|PROVV|ANNO|CODNUM|PROVV|NDOC", "", 1, &filtrec, &filtrec);
TString filter; filter.format("(CODNUM==\"%s\")&&(PROVV==\"D\")&&(TIPOCF==\"%s\")",
(const char*)m.get(F_CODNUM), (const char*)m.get(F_TIPOCF));
cur.setfilter(filter, true);
TToken_string siblings;
TToken_string header(HR("Ragione Sociale@50|Codice|Documento|Data\nDocumento@10|Totale\nDocumento@18V|Valuta|Stato|Partita IVA"));
TToken_string fieldlist("20->RAGSOC|CODCF|NDOC|DATADOC|G1:TOTDOC|CODVAL|STATO|20->PAIV");
add_custom_search_fields(m, fieldlist, header);
TBrowse_sheet sheet(&cur, fieldlist, TR("Ragione Sociale"),
header, 0, (TEdit_field&)f, siblings);
if (!f.empty())
{
TString ragsoc(f.get()); ragsoc.upper();
filtrec.zero();
filtrec.put(DOC_TIPOCF, m.get(F_TIPOCF));
rel.curr(LF_CLIFO).put(CLI_RAGSOC, ragsoc);
cur.read();
}
if (sheet.run() == K_ENTER)
{
const int pos_ndoc = fieldlist.get_pos(DOC_NDOC);
const long ndoc = sheet.row(-1).get_long(pos_ndoc);
m.set(F_NDOC, ndoc);
m.stop_run(K_AUTO_ENTER);
}
}
return true;
}
bool TDocumento_mask::rif_search_handler(TMask_field& f, KEY key)
{
if (key == K_F9)