Nuova rilevazione ore

git-svn-id: svn://10.65.10.50/branches/R_10_00@22882 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-07-26 15:43:33 +00:00
parent fae432278f
commit 1b64d55829
26 changed files with 2403 additions and 220 deletions

View File

@ -8,10 +8,11 @@ int main(int argc, char** argv)
{
case 0 : ci0100(argc,argv); break; // gestione tabelle cont. ind.
case 1 : ci0200(argc,argv); break; // gestione risorse / attrezzature
case 2 : ci0300(argc,argv); break; // parametri configurazione Contabilita' Industriale
case 2 : ci0300(argc,argv); break; // parametri configurazione Contabilità Industriale
case 3 : ci0400(argc,argv); break; // immssione documenti
case 4 : ci0500(argc,argv); break; // gestione disponibilità risorse / attrezzature
case 5 : ci0600(argc,argv); break; // gestione default risorse / attrezzature
case 6 : ci0700(argc,argv); break; // creazione do
default: ci0100(argc,argv); break; // gestione tabelle cont. ind.
}
return 0;

View File

@ -7,5 +7,6 @@ int ci0300(int argc, char* argv[]); // parametri configurazione Contabilita' Ind
int ci0400(int argc, char* argv[]); // immssione documenti
int ci0500(int argc, char* argv[]); // gestione disponibilità risorse / attrezzature
int ci0600(int argc, char* argv[]); // gestione default risorse / attrezzature
int ci0700(int argc, char* argv[]); // generazione documenti da movana.ini
#endif // __CI0_H

View File

@ -88,7 +88,7 @@ void TRisoatt_msk::riempi_sheet()
{
TSheet_field& sheet = sfield(F_SHEET);
if (sheet.items() > 0 && sheet.dirty() && yesno_box("Vuoi salvare le modifiche"))
if (sheet.items() > 0 && sheet.dirty() && yesno_box("Salvare le modifiche"))
registra();
TString filtro;
@ -106,17 +106,32 @@ void TRisoatt_msk::riempi_sheet()
default: break;
}
filtro << add_field_to_tab_filter(F_ANNO);
filtro << add_field_to_tab_filter(F_MESE, 2) << "01";
filtro << add_field_to_tab_filter(F_MESE, 2) << "??";
filtro << add_field_to_tab_filter(F_TPORA);
TString query("USE &ROA\n");
if (filtro.full())
query << "SELECT CODTAB?=\"" << filtro << "\"";
if(risoatt != 'T')
if (filtro.ends_with("?"))
{
query << "\nFROM CODTAB=" << risoatt
<< "\nTO CODTAB=" << risoatt;
int i = 0;
for (i = filtro.len()-1; i >= 0 && filtro[i] == '?'; i--);
if (i >= 0)
{
filtro.overwrite("*", i+1);
filtro.cut(i+2);
}
else
filtro.cut(0);
}
TString query;
query << "USE &ROA";
if (filtro.full())
{
query << "\nSELECT CODTAB?=\"" << filtro << "\"";
if (risoatt != 'T' && filtro[0] != '?')
{
query << "\nFROM CODTAB=" << filtro.left(5)
<< "\nTO CODTAB=" << filtro.left(5);
}
}
TISAM_recordset roa(query);
@ -126,7 +141,7 @@ void TRisoatt_msk::riempi_sheet()
//riempio lo sheet con i dati che soddisfano il filtro preparato prima
for(bool ok = roa.move_first(); ok; ok = roa.move_next())
{
TRisoatt roa(roa.cursor()->curr());
const TRisoatt& roa(roa.cursor()->curr());
TRisoatt_key roakey(roa.chiave());
TToken_string& riga = sheet.row(-1);
riga.add(roakey.tipo(), sheet.cid2index(S_RISOATT));
@ -174,7 +189,7 @@ void TRisoatt_msk::nuova_riga()
const TString4 tipo = tutti ? "R" : get(F_RISOATT);
int mese = get_int(F_MESE);
int anno = get_int(F_ANNO);
TString tpora = get(F_TPORA);
const TString& tpora = get(F_TPORA);
riga.add(tipo, sheet.cid2index(S_RISOATT));
@ -228,7 +243,6 @@ void TRisoatt_msk::azzera_tutto(TSheet_field& sheet)
//REGISTRA: metodo che salva nella tabella di modulo le
void TRisoatt_msk::registra()
{
//TLocalisamfile tabmod(LF_TABMOD);
TModule_table tab("&ROA");
const int anno = get_int(F_ANNO);
TSheet_field& sheet = sfield(F_SHEET);
@ -236,12 +250,11 @@ void TRisoatt_msk::registra()
FOR_EACH_SHEET_ROW(sheet, r, row)
{
chiave.cut(0);
TToken_string& riga = *(TToken_string*)row;
const TString4 del = riga.get(sheet.cid2index(S_DEL));
const TString4 lis = add_field_to_tab_key(riga, F_LIS);
chiave << lis;
chiave = lis;
const TString4 tipo = add_field_to_tab_key(riga, S_RISOATT, 1);
chiave << tipo;
chiave << add_field_to_tab_key(riga, tipo[0] == 'R' ? S_CODRIS : S_CODATT);
@ -254,10 +267,9 @@ void TRisoatt_msk::registra()
tab.put("CODTAB", chiave);
int err = tab.read();
if(err == NOERR)
if (err == NOERR)
{
if (del =="X")
if (del == "X")
tab.remove();
else
{

View File

@ -46,7 +46,6 @@ END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 1 "Anno "
CHECTYPE REQUIRED
FLAGS "A"
END
@ -59,30 +58,31 @@ END
STRING F_LIS 4
BEGIN
PROMPT 44 1 "Listino "
PROMPT 45 1 "Listino "
USE &LIS
FLAGS "UZ"
INPUT CODTAB F_LIS
DISPLAY "Codice@16" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_LIS CODTAB
CHECKTYPE NORMAL
CHECKTYPE REQUIRED
END
STRING F_TPORA 2
BEGIN
PROMPT 59 1 "Tipo ora "
PROMPT 62 1 "Tipo ora "
USE &ORE
INPUT CODTAB F_TPORA
DISPLAY "Codice@16" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TPORA CODTAB
CHECKTYPE NORMAL
END
LISTBOX F_RISOATT 1 12
BEGIN
PROMPT 2 2 "@bTipo "
ITEM "T|Tutti"
PROMPT 2 2 "@bTipo "
ITEM "T|Tutte"
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@|DISABLE,DLG_COPY
ITEM "R|Risorsa"
MESSAGE HIDE,1@|SHOW,2@|HIDE,3@|ENABLE,DLG_COPY
@ -95,16 +95,23 @@ STRING F_CODICE 16
BEGIN
PROMPT 23 2 "Codice "
USE &ROA
DISPLAY "Tipo@5" CODTAB[1,1]
DISPALY "Codice@16" CODTAB[2,17]
DISPLAY "Anno@5" CODTAB[18,21]
DISPLAY "Mese@5" CODTAB[22,23]
DISPLAY "Tipo\nora@5" CODTAB[24,25]
OUTPUT F_RISOATT CODTAB[1,1]
OUTPUT F_CODICE CODTAB[2,17]
DISPLAY "Listino" CODTAB[1,4]
DISPLAY "Tipo\nR/A@4" CODTAB[5,5]
DISPLAY "Codice\nR/A@16" CODTAB[6,21]
DISPLAY "Anno" CODTAB[22,25]
DISPLAY "Mese" CODTAB[26,27]
DISPLAY "Giorno" CODTAB[28,29]
DISPLAY "Tipo\nora@5" CODTAB[30,31]
OUTPUT F_LIS CODTAB[1,4]
OUTPUT F_RISOATT CODTAB[5,5]
OUTPUT F_CODICE CODTAB[6,21]
//OUTPUT F_ANNO CODTAB[22,25]
//OUTPUT F_MESE CODTAB[26,27]
GROUP 1
FLAGS "U"
CHECKTYPE NORMAL
MESSAGE COPY,F_CODRIS
MESSAGE COPY,F_CODATT
END
STRING F_CODRIS 16
@ -154,13 +161,13 @@ SPREADSHEET F_SHEET -19 0
BEGIN
PROMPT 1 4 ""
ITEM "Canc"
ITEM "Tipo"
ITEM "Codice@16"
ITEM "Tipo\nR/A"
ITEM "Codice\nR/A@16"
ITEM "Anno"
ITEM "Mese"
ITEM "Tipo\nOra@5"
ITEM "Costo@10"
ITEM "Costo Preventivo@10"
ITEM "Tipo\nOra@4"
ITEM "Costo\nConsuntivo@10"
ITEM "Costo\nPreventivo@10"
ITEM "Descrizione@50"
END

View File

@ -1,14 +1,9 @@
#include <applicat.h>
#include <automask.h>
#include <sheet.h>
#include <utility.h>
#include <doc.h>
#include "../ve/velib.h"
#include "ci0.h"
#include "cilib.h"
#include "ci0300.h"
#include "../ve/velib.h"
///////////////////////////////////////////////////////////
// TConfigurazioneIndustriale_mask
@ -26,10 +21,11 @@ void TConfigurazioneIndustriale_mask::moveup_element(long selrow)
return;
rows_array().swap(selrow,selrow - 1);
sheet().check_row(selrow - 1);
sheet().check_row(selrow);
sheet().force_update();
sheet().select(selrow-1);
TSheet_field& s = sheet();
s.check_row(selrow - 1);
s.check_row(selrow);
s.force_update();
s.select(selrow-1);
}
@ -45,10 +41,11 @@ void TConfigurazioneIndustriale_mask::movedown_element(long selrow)
return;
rows_array().swap(selrow,selrow+1);
sheet().check_row(selrow);
sheet().check_row(selrow + 1);
sheet().force_update();
sheet().select(selrow+1);
TSheet_field& s = sheet();
s.check_row(selrow);
s.check_row(selrow + 1);
s.force_update();
s.select(selrow+1);
}
@ -65,17 +62,16 @@ bool TConfigurazioneIndustriale_mask::on_field_event(TOperable_field& o, TField_
case FR_TIPODOC:
if (e == fe_modify)
{
TCodice_numerazione cod_num(o.mask().get(FR_NUM));
const TCodice_numerazione cod_num(o.mask().get(FR_NUM));
const TString& tipo = o.get();
int last = cod_num.ntipi_doc();
const int last = cod_num.ntipi_doc();
for (int i = 0; i < last; i++ )
{
const TString16 curtipo(cod_num.tipo_doc(i));
const TString& curtipo = cod_num.tipo_doc(i);
if (curtipo == tipo)
return true;
}
return o.error_box( "Tipo non valido per la numerazione selezionata!" );
return o.error_box(TR("Tipo non valido per la numerazione selezionata!"));
}
case FR_COLL:
@ -89,9 +85,10 @@ bool TConfigurazioneIndustriale_mask::on_field_event(TOperable_field& o, TField_
row_mask.set(FR_VAR, "");
row_mask.set(FR_MODCOLL, "");
const int row = sheet().selected();
sheet().update_row(row);
sheet().check_row(row);
sheet().force_update(row);
TSheet_field& s = sheet();
s.update_row(row);
s.check_row(row);
s.force_update(row);
}
default:
break;
@ -118,7 +115,6 @@ bool TConfigurazioneIndustriale_app::create()
bool TConfigurazioneIndustriale_app::destroy()
{
delete _mask;
return TSkeleton_application::destroy();
}
@ -128,7 +124,6 @@ void TConfigurazioneIndustriale_app::main_loop()
while ((exitval=_mask->run()) != K_QUIT)
{
switch(exitval)
{
case K_ESC:
@ -146,11 +141,13 @@ void TConfigurazioneIndustriale_app::main_loop()
void TConfigurazioneIndustriale_app::file_to_sheet()
{
TConfig configfile(CONFIG_DITTA, "ci");
int item = 0;
while (configfile.exist("Descr",item))
TConfigurazioneIndustriale_mask& m = mask();
TSheet_field& s = m.sheet();
for (int item = 0; configfile.exist("Descr", item); item++)
{
TToken_string & t = mask().sheet().row(item);
TToken_string & t = s.row(item);
t.add(configfile.get("Filter", NULL,item, "F01"));
t.add(configfile.get("Descr", NULL,item, "Fatture"));
t.add(configfile.get("InsertRemain", NULL,item, ""));
@ -162,25 +159,28 @@ void TConfigurazioneIndustriale_app::file_to_sheet()
t.add(configfile.get("ModColl", NULL, item, ""));
t.add(configfile.get("Var", NULL, item, ""));
t.add(configfile.get("DeleteClosed", NULL, item, ""));
mask().sheet().check_row(item);
item++;
s.check_row(item);
}
mask().set(F_DETTDISP, configfile.get("DETTDISP"));
mask().set(F_DETTCONS, configfile.get("DETTCONS"));
mask().set(F_CODNUMPR, configfile.get("CODNUMPR"));
mask().set(F_TIPODOCPR, configfile.get("TIPODOCPR"));
mask().set(F_CODNUMCN, configfile.get("CODNUMCN"));
mask().set(F_TIPODOCCN, configfile.get("TIPODOCCN"));
mask().sheet().force_update();
FOR_EACH_MASK_FIELD(m, i, f)
{
const TFieldref* fr = f->field();
if (fr != NULL)
{
const TString& v = configfile.get(fr->name());
f->set(v);
}
}
s.force_update();
}
void TConfigurazioneIndustriale_app::sheet_to_file()
{
TConfigurazioneIndustriale_mask& m = mask();
TConfig configfile(CONFIG_DITTA, "ci");
int totlen = 0;
int items;
items = mask().items();
int items = m.items();
configfile.remove_all();
if (items>_maxelem)
@ -189,31 +189,37 @@ void TConfigurazioneIndustriale_app::sheet_to_file()
items=16;
}
TString currdesc;
for (int i=0;i<items;i++)
{
TString currdesc(mask().row(i).get(1));
configfile.set("Filter", mask().row(i).get(0), NULL, true, i);
configfile.set("Descr", currdesc, NULL, true, i);
configfile.set("InsertRemain", mask().row(i).get(2), NULL, true, i);
configfile.set("ModifyRemain", mask().row(i).get(3), NULL, true, i);
configfile.set("DocColl", mask().row(i).get(4), NULL, true, i);
configfile.set("NumColl", mask().row(i).get(5), NULL, true, i);
configfile.set("TipoColl", mask().row(i).get(6), NULL, true, i);
configfile.set("StatoColl", mask().row(i).get(7), NULL, true, i);
configfile.set("ModColl", mask().row(i).get(8), NULL, true, i);
configfile.set("Var", mask().row(i).get(9), NULL, true, i);
configfile.set("DeleteClosed", mask().row(i).get(10), NULL, true, i);
totlen+=currdesc.len();
TToken_string& ri = m.row(i);
currdesc = ri.get(1);
configfile.set("Filter", ri.get(0), NULL, true, i);
configfile.set("Descr", currdesc, NULL, true, i);
configfile.set("InsertRemain", ri.get(2), NULL, true, i);
configfile.set("ModifyRemain", ri.get(3), NULL, true, i);
configfile.set("DocColl", ri.get(4), NULL, true, i);
configfile.set("NumColl", ri.get(5), NULL, true, i);
configfile.set("TipoColl", ri.get(6), NULL, true, i);
configfile.set("StatoColl", ri.get(7), NULL, true, i);
configfile.set("ModColl", ri.get(8), NULL, true, i);
configfile.set("Var", ri.get(9), NULL, true, i);
configfile.set("DeleteClosed", ri.get(10), NULL, true, i);
totlen += currdesc.len();
}
FOR_EACH_MASK_FIELD(m, i, f)
{
const TFieldref* fr = f->field();
if (fr != NULL)
{
const TString& v = f->get();
configfile.set(fr->name(), v);
}
}
configfile.set("DETTDISP", mask().get(F_DETTDISP));
configfile.set("DETTCONS", mask().get(F_DETTCONS));
configfile.set("CODNUMPR", mask().get(F_CODNUMPR));
configfile.set("TIPODOCPR", mask().get(F_TIPODOCPR));
configfile.set("CODNUMCN", mask().get(F_CODNUMCN));
configfile.set("TIPODOCCN", mask().get(F_TIPODOCCN));
if (totlen>_maxlen)
message_box("E' probabile che la lunghezza delle descrizioni inserite ne impedisca la totale visualizzazione sullo schermo");
warning_box(TR("E' probabile che la lunghezza delle descrizioni inserite ne impedisca la totale visualizzazione sullo schermo"));
}

View File

@ -17,8 +17,8 @@ public:
void movedown_element(long selrow);
public:
TSheet_field& sheet() { return (TSheet_field&)field(F_SHEET); }
int items() { return sheet().items(); }
TSheet_field& sheet() const { return sfield(F_SHEET); }
int items() const { return sheet().items(); }
TString_array& rows_array() { return sheet().rows_array(); }
TToken_string& row(int i) { return sheet().row(i); }

View File

@ -1,20 +1,28 @@
// DEFINIZIONE CAMPI MASCHERE PER LA CONFIGURAZIONE di CI
// campi maschera ci0300a.uml
#define F_SHEET 151
#define F_MOVEUP 152
#define F_MOVEDN 153
#define F_DETTDISP 154
#define F_DETTCONS 156
#define F_CODNUMPR 157
#define F_DESNUMPR 158
#define F_TIPODOCPR 159
#define F_DESTIPODOCPR 160
#define F_CODNUMCN 161
#define F_DESNUMCN 162
#define F_TIPODOCCN 163
#define F_DESTIPODOCCN 164
#define F_SHEET 151
#define F_MOVEUP 152
#define F_MOVEDN 153
#define F_DETTDISP 154
#define F_DETTCONS 156
#define F_CODNUMPR 157
#define F_DESNUMPR 158
#define F_TIPODOCPR 159
#define F_DESTIPODOCPR 160
#define F_CODNUMCN 161
#define F_DESNUMCN 162
#define F_TIPODOCCN 163
#define F_DESTIPODOCCN 164
#define F_CAUSCN 171
#define F_DESCAUSCN 172
#define F_CODNUMNI 165
#define F_DESNUMNI 166
#define F_TIPODOCNI 167
#define F_DESTIPODOCNI 168
#define F_CODIVANI 169
#define F_DESIVANI 170
#define FR_FILTRO 101
#define FR_DES 102
@ -28,6 +36,6 @@
#define FR_VAR 110
#define FR_DELCLOSE 111
#define FR_DESNUM 201
#define FR_DESTIPODOC 202
#define FR_DESSTA 203
#define FR_DESNUM 251
#define FR_DESTIPODOC 252
#define FR_DESSTA 253

View File

@ -46,6 +46,11 @@ ENDPAGE
PAGE "Parametri" 0 2 0 0
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 1 "@bLivello di dettaglio"
END
LISTBOX F_DETTDISP 6
BEGIN
PROMPT 2 2 "Dettaglio disponibilità "
@ -57,16 +62,21 @@ END
LISTBOX F_DETTCONS 6
BEGIN
PROMPT 2 4 "Dettaglio Consuntivi "
PROMPT 2 3 "Dettaglio consuntivi "
ITEM "G|Giorno"
ITEM "M|Mese"
ITEM "A|Anno"
FIELD DETTCONS
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 5 "@bPreventivi"
END
STRING F_CODNUMPR 4
BEGIN
PROMPT 2 6 "Num.preventivi "
PROMPT 2 6 "Numerazione "
FIELD CODNUMPR
HELP "Codice numerazione"
USE %NUM
@ -83,7 +93,7 @@ END
STRING F_DESNUMPR 50
BEGIN
PROMPT 26 6 ""
PROMPT 25 6 ""
HELP "Descrizione numerazione"
USE %NUM KEY 2
INPUT S0 F_DESNUMPR
@ -94,7 +104,7 @@ END
STRING F_TIPODOCPR 4
BEGIN
PROMPT 2 8 "Tipo preventivi"
PROMPT 2 7 "Tipo documento "
FIELD TIPODOCPR
HELP "Codice tipo documento"
USE %TIP
@ -109,7 +119,7 @@ END
STRING F_DESTIPODOCPR 50
BEGIN
PROMPT 26 8 ""
PROMPT 25 7 ""
HELP "Descrizione tipo documento"
USE %TIP KEY 2
INPUT S0 F_DESTIPODOCPR
@ -118,9 +128,14 @@ BEGIN
COPY OUTPUT F_TIPODOCPR
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 9 "@bConsuntivi"
END
STRING F_CODNUMCN 4
BEGIN
PROMPT 2 10 "Num.consuntivi "
PROMPT 2 10 "Numerazione "
FIELD CODNUMCN
HELP "Codice numerazione"
USE %NUM
@ -132,12 +147,11 @@ BEGIN
CHECKTYPE NORMAL
FLAG "UPA"
WARNING "Numerazione assente"
KEY 1 2
END
STRING F_DESNUMCN 50
BEGIN
PROMPT 26 10 ""
PROMPT 25 10 ""
HELP "Descrizione numerazione"
USE %NUM KEY 2
INPUT S0 F_DESNUMCN
@ -148,8 +162,8 @@ END
STRING F_TIPODOCCN 4
BEGIN
PROMPT 2 12 "Tipo consuntivi"
FIELD TIPODOCPR
PROMPT 2 11 "Tipo documento "
FIELD TIPODOCCN
HELP "Codice tipo documento"
USE %TIP
INPUT CODTAB F_TIPODOCCN
@ -163,7 +177,7 @@ END
STRING F_DESTIPODOCCN 50
BEGIN
PROMPT 26 12 ""
PROMPT 25 11 ""
HELP "Descrizione tipo documento"
USE %TIP KEY 2
INPUT S0 F_DESTIPODOCCN
@ -171,6 +185,118 @@ BEGIN
DISPLAY "Codice" CODTAB
COPY OUTPUT F_TIPODOCCN
END
STRING F_CAUSCN 4
BEGIN
PROMPT 2 12 "Casuale cont. "
USE LF_CAUSALI SELECT MOVIND="X"
INPUT CODCAUS F_CAUSCN
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Analitica@C" MOVIND
DISPLAY "Industriale@C" MOVCGIND
OUTPUT F_CAUSCN CODCAUS
OUTPUT F_DESCAUSCN DESCR
CHECKTYPE NORMAL
ADD RUN cg0 -4
FIELD CODCAUSCN
END
STRING F_DESCAUSCN 50
BEGIN
PROMPT 25 12 ""
USE LF_CAUSALI KEY 2 SELECT MOVIND="X"
INPUT DESCR F_DESCAUSCN
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" CODCAUS
DISPLAY "Analitica@C" MOVIND
DISPLAY "Industriale@C" MOVCGIND
COPY OUTPUT F_CAUSCN
CHECKTYPE NORMAL
ADD RUN cg0 -4
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 14 "@bMovimenti NON IVA"
END
STRING F_CODNUMNI 4
BEGIN
PROMPT 2 15 "Numerazione "
FIELD CODNUMNI
HELP "Codice numerazione"
COPY USE F_CODNUMPR
INPUT CODTAB F_CODNUMNI
COPY DISPLAY F_CODNUMPR
OUTPUT F_CODNUMNI CODTAB
OUTPUT F_DESNUMNI S0
CHECKTYPE NORMAL
FLAG "UPA"
WARNING "Numerazione assente"
END
STRING F_DESNUMNI 50
BEGIN
PROMPT 25 15 ""
HELP "Descrizione numerazione"
COPY USE F_DESNUMPR
INPUT S0 F_DESNUMNI
COPY DISPLAY F_DESNUMPR
COPY OUTPUT F_CODNUMNI
END
STRING F_TIPODOCNI 4
BEGIN
PROMPT 2 16 "Tipo documento "
FIELD TIPODOCNI
HELP "Codice tipo documento"
COPY USE F_TIPODOCPR
INPUT CODTAB F_TIPODOCNI
COPY DISPLAY F_TIPODOCPR
OUTPUT F_TIPODOCNI CODTAB
OUTPUT F_DESTIPODOCNI S0
CHECKTYPE NORMAL
FLAG "UP"
END
STRING F_DESTIPODOCNI 50
BEGIN
PROMPT 25 16 ""
HELP "Descrizione tipo documento"
COPY USE F_DESTIPODOCPR
INPUT S0 F_DESTIPODOCNI
COPY DISPLAY F_DESTIPODOCPR
COPY OUTPUT F_TIPODOCNI
END
STRING F_CODIVANI 4
BEGIN
PROMPT 2 17 "Codice IVA "
FIELD CODIVANI
HELP "Codice IVA"
USE %IVA
INPUT CODTAB F_CODIVANI
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODIVANI CODTAB
OUTPUT F_DESIVANI S0
CHECKTYPE NORMAL
FLAGS "U"
END
STRING F_DESIVANI 50
BEGIN
PROMPT 25 17 ""
HELP "Descrizione IVA"
USE %IVA KEY 2
INPUT S0 F_DESIVANI
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODIVANI
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK

View File

@ -6,17 +6,10 @@ int main(int argc, char** argv)
const int op = (argc > 1) ? argv[1][1] - '0' : 0;
switch (op)
{
case 1:
ci1200(argc,argv); // stampa
break;
case 2:
ci1300(argc,argv); // rilevazione ore mensili per risorsa - attrezzatura
break;
case 3:
ci1400(argc,argv); // rilevazione ore mensili per cms - cdc
break;
default:
break;
case 1: ci1200(argc,argv); break; // stampa
case 2: ci1300(argc,argv); break; // rilevazione ore mensili per risorsa - attrezzatura
case 3: ci1400(argc,argv); break; // rilevazione ore mensili per cms - cdc
default: break;
}
return 0;
}

View File

@ -9,8 +9,9 @@
#include "../ca/rmovana.h"
#include "../ve/velib07.h"
#include "../include/doc.h"
#include "../include/rdoc.h"
//#include "../include/doc.h"
//#include "../include/rdoc.h"
#include "../ca/commesse.h"
///////////////////////////////////////////////////////////
// TRiepiloghi_mask
@ -136,6 +137,7 @@ class TRiepiloghi_recordset : public TDocument_recordset
TString _da_codart, _a_codart;
TString _codcosto, _codcms, _codfas;
TString_array _tipidoc;
int _chiusure;
protected:
static bool rdoc_filter(const TRelation* rel);
@ -155,18 +157,27 @@ bool TRiepiloghi_recordset::valid_record(const TRelation& rel) const
{
const TRectype& doc = rel.curr(LF_DOC);
const TDate data = doc.get(DOC_DATADOC);
if (data < _da_data || (_a_data.ok() && data > _a_data))
return false;
if (_da_data.ok() || _a_data.ok())
{
const TDate data = doc.get(DOC_DATADOC);
if (data < _da_data || (_a_data.ok() && data > _a_data))
return false;
}
if (_da_clifo > 0 || _a_clifo > 0)
{
const long clifo = doc.get_long(DOC_CODCF);
if (clifo < _da_clifo || (_a_clifo > 0 && clifo > _a_clifo))
return false;
}
const long clifo = doc.get_long(DOC_CODCF);
if (clifo < _da_clifo || (_a_clifo > 0 && clifo > _a_clifo))
return false;
const TRectype& rdoc = rel.curr(LF_RIGHEDOC);
const TString& codart = rdoc.get(RDOC_CODART);
if (codart < _da_codart || (_a_codart.not_empty() && codart.compare(_a_codart, _a_codart.len()) > 0))
return false;
if (_da_codart.full() || _a_codart.full())
{
const TString& codart = rdoc.get(RDOC_CODART);
if (codart < _da_codart || (_a_codart.not_empty() && codart.compare(_a_codart, _a_codart.len()) > 0))
return false;
}
if (!_tipidoc.empty())
{
@ -195,25 +206,34 @@ bool TRiepiloghi_recordset::valid_record(const TRelation& rel) const
return false;
}
if (_codcosto.not_empty())
if (_codcosto.full())
{
const TString& cos = rdoc.get(RDOC_CODCOSTO);
if (cos != _codcosto)
return false;
}
if (_codcms.not_empty())
TString80 codcms = rdoc.get(RDOC_CODCMS);
if (codcms.blank())
codcms = doc.get(DOC_CODCMS);
if (_codcms.full() && codcms != _codcms)
return false;
if (codcms.full() && (_chiusure == 1 || _chiusure == 2)) // Solo aperte o solo chiuse
{
const TString& cms = rdoc.get(RDOC_CODCMS);
if (cms != _codcms)
const TRectype& cms = cache().get(LF_COMMESSE, codcms);
const int c = cms.get_bool(COMMESSE_CHIUSA) ? 2 : 1;
if (_chiusure != c)
return false;
}
if (_codfas.not_empty())
if (_codfas.full())
{
const TString& fas = rdoc.get(RDOC_FASCMS);
if (fas != _codfas)
return false;
}
return true;
}
@ -314,6 +334,8 @@ void TRiepiloghi_recordset::set_filter(const TRiepiloghi_mask& msk, int cms_row)
_a_codart = msk.get(F_A_CODART);
set_var("#S_DACODART", TVariant(_da_codart), true);
set_var("#S_ACODART", TVariant(_a_codart), true);
_chiusure = msk.get_int(F_CHIUSURA);
}
///////////////////////////////////////////////////////////

View File

@ -1,5 +1,7 @@
#define F_REPORT 151
#define F_CHIUSURA 152
#define F_DA_DATA 153
#define F_A_DATA 154

View File

@ -122,6 +122,14 @@ BEGIN
CHECKTYPE NORMAL
END
RADIOBUTTON F_CHIUSURA 1 15
BEGIN
PROMPT 63 6 "Commesse"
ITEM "0|Tutte"
ITEM "1|Aperte"
ITEM "2|Chiuse"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 10 "@bTipi documento"

View File

@ -6,9 +6,9 @@ int main(int argc, char** argv)
const int op = (argc > 1) ? argv[1][1] - '0' : 0;
switch (op)
{
case 0 : ci2100(argc,argv); break; // Rilevamento preventivi
case 1 : ci2200(argc,argv); break; // Rilevamento consuntivo
case 2 : ci2300(argc,argv); break; // Importatore da TeamSystem
case 3 : ci2400(argc,argv); break; // Rilevamento consuntivo avanzato
default: ci2100(argc,argv); break; // Rilevamento preventivi
}
return 0;

View File

@ -3,6 +3,7 @@
int ci2100(int argc, char* argv[]); // Rilevamento preventivi
int ci2200(int argc, char* argv[]); // Rilevamento consuntivi
int ci2300(int argc, char* argv[]); // Rilevamento consuntivi
int ci2300(int argc, char* argv[]); // Importazione consuntivi
int ci2400(int argc, char* argv[]); // Rilevamento consuntivi avanzato
#endif // __CI2_H

View File

@ -127,7 +127,7 @@ BEGIN
GROUP 3
END
SPREADSHEET F_SHEET -18 0
SPREADSHEET F_SHEET 0 0
BEGIN
PROMPT 1 7 ""
ITEM "Canc"

View File

@ -32,7 +32,6 @@ class TRil_tree : public TBidirectional_tree
TString4 _dett;
int _month;
TEsercizi_contabili _es;
protected:
@ -319,7 +318,7 @@ public:
const TString & TRilevamento_cons_msk::proponi_costo(const TMask& msk)
{
const TString8 codlist = msk.get(S_CODLIST);
const TString& codlist = msk.get(S_CODLIST);
const char tipo = msk.get(S_RISOATT)[0];
TString80 codice;
switch(tipo)
@ -1013,6 +1012,7 @@ void TRilevamento_cons_msk::riempi_nuova_riga(int r)
riga.add(proponi_costo(riga), sheet.cid2index(S_COSTO));
sheet.force_update(r);
}
//AZZERA_RIGA: metodo che azzera il valore unitario della riga selezionata
void TRilevamento_cons_msk::azzera_riga(TSheet_field& sheet)
{
@ -1033,7 +1033,7 @@ void TRilevamento_cons_msk::azzera_tutto(TSheet_field& sheet)
//REGISTRA: metodo che salva nella tabella di modulo le
//righe dello sheet che hanno valore > 0, ed elimina quelle che hanno
//vaoler pari a zero, e poi ricarica lo sheet
//valore pari a zero, e poi ricarica lo sheet
void TRilevamento_cons_msk::registra()
{
@ -1209,7 +1209,7 @@ bool TRilevamento_cons_msk::on_field_event(TOperable_field& f, TField_event e, l
{
const short dlg = f.dlg();
if (f.dlg() == _scms_lid)
if (dlg == _scms_lid)
{
if (e == fe_init || e == fe_modify)
{
@ -1480,7 +1480,8 @@ TRilevamento_cons_msk::TRilevamento_cons_msk()
set_universal_handler(id + 100);
}
}
for (short id = S_CDC12 + 100; id >= S_CDC1 + 100; id--)
for (short id = S_CDC12 + 100; id >= S_CDC1 + 100; id--)
{
const int pos = sm.id2pos(id);
if (pos >= 0)
@ -1495,7 +1496,7 @@ TRilevamento_cons_msk::TRilevamento_cons_msk()
s.enable_column(id);
set_insheet_universal_handler(F_SHEET, id);
set_insheet_universal_handler(F_SHEET, id + 50);
}
}
else
s.delete_column(id);
}

View File

@ -656,22 +656,6 @@ bool TImporta_rilore_msk::on_field_event(TOperable_field& f, TField_event e, lon
return true;
}
TImporta_rilore_msk::TImporta_rilore_msk()
: TAutomask("ci2300a")
{
}
////////////////////////////////////////////
//// CLASSE TRilevamento_imp_app ////
////////////////////////////////////////////
//classe TRilevamento_imp_app
class TImporta_rilore__app : public TSkeleton_application
{
public:
virtual void main_loop();
};
static bool scan_rss(const TRelation & rel, void *pJolly)
{
TImporta_rilore_msk & mask = *((TImporta_rilore_msk *)pJolly);
@ -682,11 +666,11 @@ static bool scan_rss(const TRelation & rel, void *pJolly)
if (matricola.full())
{
const TString16 codice = rel.curr().get("CODTAB");
mask.matricole().add(matricola, codice);
}
return true;
}
static bool scan_ore(const TRelation & rel, void *pJolly)
{
TImporta_rilore_msk & mask = *((TImporta_rilore_msk *)pJolly);
@ -697,23 +681,38 @@ static bool scan_ore(const TRelation & rel, void *pJolly)
return true;
}
void TImporta_rilore__app::main_loop()
TImporta_rilore_msk::TImporta_rilore_msk()
: TAutomask("ci2300a")
{
TRelation rrss("RSS");
TCursor crss(&rrss);
crss.scan(scan_rss, (void *)this);
TRelation rore("&ORE");
TCursor core(&rore);
core.scan(scan_ore, (void *)this);
}
////////////////////////////////////////////
//// CLASSE TRilevamento_imp_app ////
////////////////////////////////////////////
//classe TRilevamento_imp_app
class TImporta_rilore_app : public TSkeleton_application
{
public:
virtual void main_loop();
};
void TImporta_rilore_app::main_loop()
{
TImporta_rilore_msk msk;
TRelation rrss("RSS");
TCursor crss(&rrss);
crss.scan(scan_rss, (void *) &msk);
TRelation rore("&ORE");
TCursor core(&rore);
core.scan(scan_ore, (void *) &msk);
while (msk.run() != K_QUIT) ;
while (msk.run() != K_QUIT);
}
int ci2300(int argc, char *argv[])
{
TImporta_rilore__app a;
a.run (argc, argv, TR("Importazione Ore"));
return TRUE;
}
TImporta_rilore_app a;
a.run(argc, argv, TR("Importazione Ore"));
return 0;
}

1465
ci/ci2400.cpp Normal file

File diff suppressed because it is too large Load Diff

65
ci/ci2400a.h Normal file
View File

@ -0,0 +1,65 @@
//Campi maschera ci2400a
#define F_ANNO 301
#define F_MESE 302
#define F_GIORNO 303
#define F_TPORA 304
#define F_RISOATT 305
#define F_CODICE 306
#define F_CODRIS 307
#define F_DESRIS 308
#define F_CODATT 309
#define F_DESATT 310
#define F_CALENDAR 311
#define C_MESE 402
#define C_GIORNO 403
#define C_TPORA 404
#define C_RISOATT 405
#define C_CODICE 406
#define F_ANAL 314
#define F_CDC1 314
#define F_CDC2 315
#define F_CDC3 316
#define F_CDC4 317
#define F_CDC5 318
#define F_CDC6 319
#define F_CDC7 320
#define F_CDC8 321
#define F_CDC9 322
#define F_CDC10 323
#define F_CDC11 324
#define F_CDC12 325
#define F_SHEET 330
#define S_DATA 101
#define S_RISOATT 102
#define S_CODRIS 103
#define S_CODATT 203
#define S_DESRIS 104
#define S_DESATT 204
#define S_TPORA 105
#define S_QTAORE 106
#define S_COSTO 107
#define S_CDC1 108
#define S_CDC2 109
#define S_CDC3 110
#define S_CDC4 111
#define S_CDC5 112
#define S_CDC6 113
#define S_CDC7 114
#define S_CDC8 115
#define S_CDC9 116
#define S_CDC10 117
#define S_CDC11 118
#define S_CDC12 119
#define S_CODIVA 120
#define S_CODLIST 121
#define S_NOTE 122
#define S_CUP 123
#define S_CIG 124
#define S_STATO 125
#define S_ID 126
#define S_CMSH 143

463
ci/ci2400a.uml Normal file
View File

@ -0,0 +1,463 @@
#include "ci2400a.h"
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_FINDREC
BEGIN
PROMPT 1 1 "Carica"
PICTURE TOOL_FINDREC
END
BUTTON DLG_SAVEREC 2 2
BEGIN
PROMPT 2 1 "Salva"
PICTURE TOOL_SAVEREC
END
BUTTON DLG_NULL 2 2
BEGIN
PROMPT 3 1 ""
END
BUTTON DLG_ELABORA 2 2
BEGIN
PROMPT 4 1 "Contabilizza"
PICTURE TOOL_ELABORA
END
#include <helpbar.h>
ENDPAGE
PAGE "Consuntivazione ore" 0 2 0 0
GROUPBOX DLG_NULL 78 8
BEGIN
PROMPT 1 0 "@bSelezione"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 1 "Anno "
FLAGS "A"
CHECKTYPE REQUIRED
NUM_EXPR #F_ANNO>2000
WARNING "Inserire un anno valido"
END
BOOLEAN C_MESE
BEGIN
PROMPT 16 1 "Mese"
END
LISTBOX F_MESE 2 11
BEGIN
PROMPT 24 1 ""
FLAGS "AM"
END
BOOLEAN C_GIORNO
BEGIN
PROMPT 41 1 "Giorno"
END
DATE F_GIORNO
BEGIN
PROMPT 51 1 ""
FLAGS "A"
END
BOOLEAN C_TPORA
BEGIN
PROMPT 66 1 "Ora"
END
STRING F_TPORA 2
BEGIN
PROMPT 73 1 ""
USE &ORE
INPUT CODTAB F_TPORA
DISPLAY "Codice@16" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TPORA CODTAB
CHECKTYPE NORMAL
END
BOOLEAN C_RISOATT
BEGIN
PROMPT 2 2 ""
END
LISTBOX F_RISOATT 1 7
BEGIN
PROMPT 5 2 ""
ITEM "R|Risorsa"
MESSAGE SHOW,2@|HIDE,3@
ITEM "A|Attrez."
MESSAGE HIDE,2@|SHOW,3@
END
BOOLEAN C_CODICE
BEGIN
PROMPT 16 2 ""
END
STRING F_CODRIS 16
BEGIN
PROMPT 19 2 ""
USE RSS
INPUT CODTAB F_CODRIS
DISPLAY "Codice@16" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "IVA@4" S3[1,4]
OUTPUT F_CODRIS CODTAB
OUTPUT F_DESRIS S0
GROUP 2
FLAGS "U"
CHECKTYPE NORMAL
END
STRING F_DESRIS 50 34
BEGIN
PROMPT 41 2 ""
USE RSS KEY 2
INPUT S0 F_DESRIS
DISPLAY "Descrizione@50" S0
DISPLAY "Codice@16" CODTAB
DISPLAY "IVA@4" S3[1,4]
COPY OUTPUT F_CODRIS
CHECKTYPE SEARCH
GROUP 2
END
STRING F_CODATT 16
BEGIN
PROMPT 19 2 ""
USE ATR
INPUT CODTAB F_CODATT
DISPLAY "Codice@16" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "IVA@4" S3[1,4]
OUTPUT F_CODATT CODTAB
OUTPUT F_DESATT S0
GROUP 3
FLAGS "U"
CHECKTYPE NORMAL
END
STRING F_DESATT 50 34
BEGIN
PROMPT 41 2 ""
USE ATR KEY 2
INPUT S0 F_DESRIS
DISPLAY "Descrizione@50" S0
DISPLAY "Codice@16" CODTAB
DISPLAY "IVA@4" S3[1,4]
COPY OUTPUT F_CODATT
CHECKTYPE SEARCH
GROUP 3
END
CALENDAR F_CALENDAR -1 7
BEGIN
PROMPT 80 0 ""
END
SPREADSHEET F_SHEET
BEGIN
PROMPT 0 8 ""
ITEM "Data@10"
ITEM "R/A"
ITEM "Codice@16"
ITEM "Descrizione@20"
ITEM "Tipo@5"
ITEM "Ore@7"
ITEM "Prezzo@6"
ITEM "CDC1"
ITEM "CDC2"
ITEM "CDC3"
ITEM "CDC4"
ITEM "CDC5"
ITEM "CDC6"
ITEM "CDC7"
ITEM "CDC8"
ITEM "CDC9"
ITEM "CDC10"
ITEM "CDC11"
ITEM "CDC12"
ITEM "IVA"
ITEM "List."
ITEM "Note@30"
ITEM "CUP@15"
ITEM "CIG@10"
ITEM "Stato"
ITEM "ID@8"
END
ENDPAGE
ENDMASK
PAGE "Riga consuntivo" -1 -1 78 10
DATE S_DATA
BEGIN
PROMPT 1 0 "Data "
CHECKTYPE REQUIRED
FIELD DADATA
END
LIST S_STATO 1 12
BEGIN
PROMPT 39 0 "Stato "
ITEM "1|Inserita"
ITEM "5|Contabiliz."
FLAGS "D"
END
NUMBER S_ID 8
BEGIN
PROMPT 63 0 "ID "
FLAGS "D"
FIELD ID
END
LISTBOX S_RISOATT 1 7
BEGIN
PROMPT 1 1 ""
ITEM "R|Risorsa"
MESSAGE SHOW,1@|HIDE,2@
ITEM "A|Attrez."
MESSAGE HIDE,1@|SHOW,2@
FIELD TIPORA
END
STRING S_CODRIS 16
BEGIN
PROMPT 18 1 ""
COPY USE -F_CODRIS
INPUT CODTAB S_CODRIS
COPY DISPLAY -F_CODRIS
OUTPUT S_CODRIS CODTAB
OUTPUT S_DESRIS S0
OUTPUT S_CODIVA S3[1,4]
CHECKTYPE REQUIRED
FLAGS "GU"
GROUP 1
CHECKTYPE REQUIRED
FIELD CODICE
END
STRING S_DESRIS 50 33
BEGIN
PROMPT 39 1 ""
COPY USE -F_DESRIS
INPUT S0 S_DESRIS
COPY DISPLAY -F_DESRIS
COPY OUTPUT S_CODRIS
CHECKTYPE NORMAL
GROUP 1
END
STRING S_CODATT 16
BEGIN
PROMPT 18 1 ""
COPY USE -F_CODATT
INPUT CODTAB S_CODATT
COPY DISPLAY -F_CODATT
OUTPUT S_CODATT CODTAB
OUTPUT S_DESATT S0
OUTPUT S_CODIVA S3[1,4]
CHECKTYPE REQUIRED
FLAGS "GU"
GROUP 2
FIELD CODICE
MESSAGE COPY,S_CODRIS
END
STRING S_DESATT 50 33
BEGIN
PROMPT 39 1 ""
COPY USE -F_DESATT
INPUT S0 S_DESATT
COPY DISPLAY -F_DESATT
COPY OUTPUT S_CODATT
CHECKTYPE NORMAL
GROUP 2
END
STRING S_TPORA 2
BEGIN
PROMPT 1 2 "ORE: Tipo "
COPY USE -F_TPORA
INPUT CODTAB S_TPORA
COPY DISPLAY -F_TPORA
OUTPUT S_TPORA CODTAB
CHECKTYPE REQUIRED
FIELD TPORA
END
NUMBER S_QTAORE 7 2
BEGIN
PROMPT 18 2 "Q.tà "
FIELD QTAORE
CHECKTYPE REQUIRED
END
NUMBER S_COSTO 6 2
BEGIN
PROMPT 34 2 "Prezzo "
FIELD COSTO
END
STRING S_CODIVA 4
BEGIN
PROMPT 50 2 "IVA "
FLAGS "D"
END
STRING S_CODLIST 4
BEGIN
PROMPT 61 2 "Listino "
FLAGS "DUZ"
END
STRING S_NOTE 50
BEGIN
PROMPT 1 3 "Note "
FIELD NOTE
END
STRING S_CDC1 20
BEGIN
PROMPT 1 8 "Cdc 1"
FLAGS "HB"
END
STRING S_CDC2 20
BEGIN
PROMPT 1 8 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC3 20
BEGIN
PROMPT 1 8 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC4 20
BEGIN
PROMPT 1 8 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC5 20
BEGIN
PROMPT 1 9 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC6 20
BEGIN
PROMPT 1 9 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC7 20
BEGIN
PROMPT 1 9 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC8 20
BEGIN
PROMPT 1 9 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC9 20
BEGIN
PROMPT 1 10 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC10 20
BEGIN
PROMPT 1 10 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC11 20
BEGIN
PROMPT 1 10 "Cdc 2"
FLAGS "HB"
END
STRING S_CDC12 20
BEGIN
PROMPT 1 10 "Cdc 2"
FLAGS "HB"
END
STRING S_CMSH 20
BEGIN
PROMPT 1 80 "Commessa"
FLAGS "H"
END
STRING S_CUP 15
BEGIN
PROMPT 1 -2 "CUP "
USE LF_CFCMS KEY 2 SELECT TIPOCF=="C"
JOIN %CUP INTO CODTAB==CUP
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT COMMESSA S_CMSH SELECT
INPUT CUP S_CUP
DISPLAY "Codice CUP@15" CUP
DISPLAY "Descrizione@50" %CUP->S0
DISPLAY "Codice Cliente" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
OUTPUT S_CUP CUP
CHECKTYPE NORMAL
FIELD CUP
END
STRING S_CIG 10
BEGIN
PROMPT 1 -1 "CIG "
USE LF_CFCMS KEY 3 SELECT TIPOCF=="C"
JOIN %CIG INTO CODTAB==CIG
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
INPUT COMMESSA S_CMSH SELECT
INPUT CIG S_CIG
DISPLAY "Codice CIG@15" CIG
DISPLAY "Descrizione@50" %CIG->S0
DISPLAY "Codice Cliente" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
OUTPUT S_CIG CIG
CHECKTYPE NORMAL
FIELD CIG
END
ENDPAGE
TOOLBAR "" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 ""
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 2 1 ""
PICTURE TOOL_DELREC
END
#include <helpbar.h>
ENDPAGE
ENDMASK

View File

@ -297,10 +297,11 @@ TField_window* TAlmanac_field::create_window(int x, int y, int dx, int dy, WINDO
void TAlmanac_field::create(short id, const RCT& rect, WINDOW parent)
{
const int cols = mask().columns();
int x = rect.left/CHARX, y = rect.top/ROWY;
int h = (rect.bottom - rect.top)/ROWY, w = (rect.right - rect.left)/CHARX;
if (x+w > 80)
x = x + w - mask().columns() - 1;
x = x + w - cols - 1;
TWindowed_field::create(id, x, y, w, h, parent);
}
@ -510,7 +511,7 @@ TAlmanac_mask::TAlmanac_mask(const char* name)
////////////////////////////
//codlist: metodo che restituisce il codice listino
const TString & TRisoatt_key::codlist() const
const TString& TRisoatt_key::codlist() const
{
return left(4);
}
@ -547,9 +548,8 @@ const TString& TRisoatt_key::giorno() const
const TString& TRisoatt_key::data() const
{
TDate d(mid(21, 8));
const TDate d(mid(21, 8));
TString & str = get_tmp_string(12);
str = d.string(ANSI);
return str;
}
@ -557,25 +557,21 @@ const TString& TRisoatt_key::data() const
//TPORA: metodo che restituisce il tipo dell'ora a cui fa riferimento la risorsa o l'attrezzatura
const TString& TRisoatt_key::tpora() const
{
return right(2);
return mid(29, 2);
}
TRisoatt_key::TRisoatt_key(const char* codlist, const char risoatt, const char* codice, const int anno, const char* mese, const char* giorno, const char* tpora)
{
TString16 lis = codlist; lis.left_just(4);
TString4 lis = codlist; lis.left_just(4);
TString16 cod = codice; cod.left_just(16);
TString chiave; chiave << lis << risoatt << cod << anno << mese << giorno << tpora;
set(chiave);
cut(0) << lis << risoatt << cod << anno << mese << giorno << tpora;
}
TRisoatt_key::TRisoatt_key(const char* codlist, const char risoatt, const char* codice, const TDate & date, const char* tpora)
{
TString16 lis = codlist; lis.lpad(4, '0');
TString4 lis = codlist; lis.lpad(4, '0');
TString16 cod = codice; cod.left_just(16);
TString chiave; chiave << lis << risoatt << cod << date.string(ANSI) << tpora;
set(chiave);
cut(0) << lis << risoatt << cod << date.string(ANSI) << tpora;
}
TRisoatt_key::TRisoatt_key(const char* roakey)
@ -844,8 +840,12 @@ TRilevamento_ore::TRilevamento_ore() : TRectype(LF_RILORE)
{ zero(); }
const long date2ndoc(const TDate& data)
{ return data.month() * 100 + data.day(); }
long date2ndoc(const TDate& data)
{
const long ndoc = data.month() * 100 + data.day();
CHECKD(ndoc > 0, "NDOC non valido ", ndoc);
return ndoc;
}
///////////////////////////
//// TDoc_cache ////

View File

@ -156,14 +156,14 @@ class TRisoatt_key : public TString80
public:
TRisoatt_key & operator =(const TRisoatt_key& roakey) { return *this; }
const TString& codlist() const;
const char tipo() const;
const TString& cod() const;
const int anno() const;
const TString& mese() const;
const TString& codlist() const;
const char tipo() const;
const TString& cod() const;
const int anno() const;
const TString& mese() const;
const TString& giorno() const;
const TString& tpora() const;
const TString& data() const;
const TString& tpora() const;
const TString& data() const;
//costruttore
TRisoatt_key(const char* codlist, const char risoatt, const char* codice, const int anno, const char* mese, const char * giorno, const char* tpora);
@ -249,7 +249,7 @@ public:
//// TDoc_cache ////
///////////////////////////
const long date2ndoc(const TDate& data);
long date2ndoc(const TDate& data);
//classe TDoc_cache
class TDoc_cache : public TCache

View File

@ -1,5 +1,5 @@
[CIMENU_001]
Caption = "Contabilita' Industriale"
Caption = "Contabilità Industriale"
Picture = <ve01>
Module = 8
Flags = "F"
@ -9,7 +9,7 @@ Item_03 = "Immissione documenti", "ci0 -3", "F"
Item_04 = "Stampa riepiloghi", "ci1 -1", "F"
[CIMENU_002]
Caption = "Parametri Contabilita' Industriale"
Caption = "Parametri Contabilità Industriale"
Picture = <cg01>
Module = 8
Flags = "F"
@ -27,7 +27,8 @@ Item_04 = "Gestione Disponibilit
Item_05 = "Gestione Predefiniti", "ci0 -5", "F"
Item_06 = "Rilevazione ore preventivo", "ci2 -0", "F"
Item_07 = "Rilevazione ore consuntivo", "ci2 -1", "F"
Item_08 = "Stampe", [CIMENU_004]
Item_08 = "Consuntivazione ore", "ci2 -3", "F"
Item_09 = "Stampe", [CIMENU_004]
[CIMENU_004]
Caption = "Stampe Rilevazione Ore"

View File

@ -1,3 +1,3 @@
125
0
$rilore|3882|3890|164|0|Rilevamento Ore|||
$rilore|0|0|214|0|Rilevamento Ore|||

View File

@ -1,5 +1,5 @@
125
21
22
TIPO|1|1|0|<D>efault <P>reventivo <C>onsuntivo
ID|3|8|0|Id del record
TIPORA|1|1|0|<R>isorsa <A>ttrezzatura
@ -21,6 +21,7 @@ IDRIGA|3|6|0|Chiave doc -IDRIGA
CUP|1|15|0|Codice Unico di Progetto
CIG|1|10|0|Codice Identificativo di Gara
RIMBORSO|8|1|0|Rimborso
NOTE|1|50|0|Note
5
TIPO+ID|
TIPO+DADATA+TIPORA+CODICE+TPORA+CODCOSTO+CODCMS+CODFASE|X

View File

@ -22,5 +22,6 @@
#define RILORE_CUP "CUP"
#define RILORE_CIG "CIG"
#define RILORE_RIMBORSO "RIMBORSO"
#define RILORE_NOTE "NOTE"
#endif