This commit was manufactured by cvs2svn to create branch 'R_10_00'.
git-svn-id: svn://10.65.10.50/branches/R_10_00@21308 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3336074cde
commit
a9ae94d684
72
cg/cg2105.h
Executable file
72
cg/cg2105.h
Executable file
@ -0,0 +1,72 @@
|
||||
#ifndef __CG2105_H__
|
||||
#define __CG2105_H__
|
||||
|
||||
#ifndef __CGSALDAC_H__
|
||||
#include "../cg/cgsaldac.h"
|
||||
#endif
|
||||
|
||||
#ifndef __AUTOMASK_H__
|
||||
#include <automask.h>
|
||||
#endif
|
||||
|
||||
class TNew_mask : public TAutomask
|
||||
{
|
||||
bool _allow_fatt;
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
void init(char tipocf, bool fatt, bool edit);
|
||||
TNew_mask(char tipocf, bool fatt, bool edit);
|
||||
};
|
||||
|
||||
class TGame_mask;
|
||||
|
||||
class TPay_mask : public TMask
|
||||
{
|
||||
TDate _datadoc, _datarat;
|
||||
real _da_pagare, _pagabile;
|
||||
|
||||
#ifndef __EXTRA__
|
||||
const TGame_mask* _parent;
|
||||
#endif
|
||||
tipo_movimento _tipomov;
|
||||
|
||||
bool _assigned;
|
||||
bool _can_solder;
|
||||
bool _swap_ritsoc;
|
||||
|
||||
protected:
|
||||
static bool importo_handler(TMask_field& f, KEY k);
|
||||
static bool importolire_handler(TMask_field& f, KEY k);
|
||||
static bool saldo_handler(TMask_field& f, KEY k);
|
||||
static bool datapag_handler(TMask_field& f, KEY k);
|
||||
static bool conto_handler(TMask_field& f, KEY k);
|
||||
static bool descr_handler(TMask_field& f, KEY k);
|
||||
void gioca_cambi(int force = 0x0);
|
||||
|
||||
#ifdef __EXTRA__
|
||||
static bool datareg_handler(TMask_field& f, KEY k);
|
||||
static bool datadoc_handler(TMask_field& f, KEY k);
|
||||
static bool numdoc_handler(TMask_field& f, KEY k);
|
||||
static bool sezione_handler(TMask_field& f, KEY k);
|
||||
#endif
|
||||
|
||||
public:
|
||||
void set_pag(const TRectype& oldpag, const TRiga_scadenze& scad, const TImporto& importo);
|
||||
void get_pag(TRectype& oldpag, TRectype& somma) const;
|
||||
|
||||
bool assigned() const { return _assigned; }
|
||||
bool unassigned() const { return !_assigned; }
|
||||
tipo_movimento tipo() const { return _tipomov; }
|
||||
|
||||
void attiva_valuta(bool on);
|
||||
|
||||
void init(const TGame_mask* parent, int mode);
|
||||
TPay_mask(const TGame_mask* parent, int mode);
|
||||
|
||||
virtual ~TPay_mask();
|
||||
};
|
||||
|
||||
#endif
|
16
ps/ps1002.cpp
Executable file
16
ps/ps1002.cpp
Executable file
@ -0,0 +1,16 @@
|
||||
#include <xvt.h>
|
||||
|
||||
#include "ps1002.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = argc > 1 ? atoi(argv[1]+1) : 0;
|
||||
switch(n)
|
||||
{
|
||||
case 0: ps1002100(argc, argv); break; //gestione rapida(?) delle righe documento Euroforesi
|
||||
default:
|
||||
ps1002100(argc, argv); break;
|
||||
}
|
||||
exit(0);
|
||||
return 0;
|
||||
}
|
1
ps/ps1002.h
Executable file
1
ps/ps1002.h
Executable file
@ -0,0 +1 @@
|
||||
int ps1002100(int argc, char* argv[]);
|
450
ps/ps1002100.cpp
Executable file
450
ps/ps1002100.cpp
Executable file
@ -0,0 +1,450 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <progind.h>
|
||||
#include <recarray.h>
|
||||
#include <recset.h>
|
||||
|
||||
#include "../ve/condv.h"
|
||||
#include "../ve/rcondv.h"
|
||||
#include "../ve/velib.h"
|
||||
|
||||
#include "ps1002.h"
|
||||
#include "ps1002100a.h"
|
||||
|
||||
|
||||
class TDoc_cache : public TCache
|
||||
{
|
||||
TString4 _codnum, _tipodoc;
|
||||
int _anno;
|
||||
long _codcf;
|
||||
TDate _data;
|
||||
|
||||
protected:
|
||||
virtual void discarding(const THash_object* obj);
|
||||
virtual TObject* key2obj(const char* key);
|
||||
|
||||
public:
|
||||
TDocumento& doc(const TToken_string& kdoc);
|
||||
TDoc_cache(const char* codnum, const char* tipodoc, const TDate& datadoc, const long codcf);
|
||||
};
|
||||
|
||||
//DISCARDING: salva un documento sul disco prima di eliminarlo dalla cache
|
||||
void TDoc_cache::discarding(const THash_object* obj)
|
||||
{
|
||||
TDocumento& doc = (TDocumento&)obj->obj();
|
||||
int err = doc.rewrite();
|
||||
}
|
||||
|
||||
//KEY2OBJ:sceglie il documento giusto da disco in modo da poterlo continuare, o lo crea se non c'è
|
||||
TObject* TDoc_cache::key2obj(const char* key)
|
||||
{
|
||||
TDocumento* doc = NULL;
|
||||
|
||||
TToken_string chiave(key);
|
||||
|
||||
const char provv = chiave.get(0)[0];
|
||||
const int anno = chiave.get_int(1);
|
||||
const TString& codnum = chiave.get(2);
|
||||
const long ndoc = chiave.get_long(3);
|
||||
|
||||
doc = new TDocumento(provv, anno, codnum, ndoc);
|
||||
|
||||
if (ndoc <= 0)
|
||||
{
|
||||
doc->put(DOC_PROVV, 'D');
|
||||
doc->put(DOC_ANNO, _anno);
|
||||
doc->put(DOC_CODNUM, _codnum);
|
||||
doc->put(DOC_NDOC, 0);
|
||||
doc->put(DOC_TIPODOC, _tipodoc);
|
||||
doc->put(DOC_STATO, 1);
|
||||
doc->put(DOC_DATADOC, _data);
|
||||
doc->put(DOC_TIPOCF, 'C');
|
||||
doc->put(DOC_CODCF, _codcf);
|
||||
}
|
||||
|
||||
return doc;
|
||||
}
|
||||
|
||||
//DOC: restituisce un puntatore ad un documento identificato dalla chiave documento completa
|
||||
TDocumento& TDoc_cache::doc(const TToken_string& kdoc)
|
||||
{
|
||||
return *(TDocumento*)objptr(kdoc);
|
||||
}
|
||||
|
||||
|
||||
//metodo costruttore di una cache di 20 elementi
|
||||
TDoc_cache::TDoc_cache(const char* codnum, const char* tipodoc, const TDate& datadoc, const long codcf) : TCache(13)
|
||||
{
|
||||
_codnum = codnum;
|
||||
_tipodoc = tipodoc;
|
||||
_anno = datadoc.year();
|
||||
_data = datadoc;
|
||||
_codcf = codcf;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TAutomask
|
||||
///////////////////////////////////////////////////////////
|
||||
class TEdit_rdocs_mask : public TAutomask
|
||||
{
|
||||
int _pos_art, _pos_desc, _pos_um, _pos_qta, _pos_qtaev, _pos_prz, _pos_iva, _pos_lav, _pos_col,
|
||||
_pos_dtprd, _pos_qtaprd, _pos_num, _pos_anno, _pos_provv, _pos_ndoc, _pos_nrig, _pos_desiva;
|
||||
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
void fill_sheet();
|
||||
void save_sheet();
|
||||
const TString4 find_um(const TString& codart) const;
|
||||
real find_prezzo_articolo(const TString& codart) const;
|
||||
|
||||
public:
|
||||
TEdit_rdocs_mask();
|
||||
~TEdit_rdocs_mask() {};
|
||||
};
|
||||
|
||||
TEdit_rdocs_mask::TEdit_rdocs_mask() : TAutomask ("ps1002100a")
|
||||
{
|
||||
//assegna le posizioni delle colonne dello sheet
|
||||
TSheet_field& sf_righe = sfield(F_RIGHE);
|
||||
_pos_art = sf_righe.cid2index(S_CODART);
|
||||
_pos_desc = sf_righe.cid2index(S_DESCR);
|
||||
_pos_um = sf_righe.cid2index(S_UM);
|
||||
_pos_qta = sf_righe.cid2index(S_QTA);
|
||||
_pos_qtaev = sf_righe.cid2index(S_QTAEVASA);
|
||||
_pos_prz = sf_righe.cid2index(S_PREZZO);
|
||||
_pos_iva = sf_righe.cid2index(S_CODIVA);
|
||||
_pos_lav = sf_righe.cid2index(S_LAV);
|
||||
_pos_col = sf_righe.cid2index(S_COLORE);
|
||||
_pos_dtprd = sf_righe.cid2index(S_DATAPROD);
|
||||
_pos_qtaprd = sf_righe.cid2index(S_QTAPROD);
|
||||
_pos_num = sf_righe.cid2index(S_CODNUM);
|
||||
_pos_anno = sf_righe.cid2index(S_ANNO);
|
||||
_pos_provv = sf_righe.cid2index(S_PROVV);
|
||||
_pos_ndoc = sf_righe.cid2index(S_NDOC);
|
||||
_pos_nrig = sf_righe.cid2index(S_NRIGA);
|
||||
|
||||
_pos_desiva = sf_righe.cid2index(S_DESIVA);
|
||||
}
|
||||
|
||||
bool TEdit_rdocs_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
{
|
||||
//maschera principale
|
||||
case F_RIGHE:
|
||||
if (e == se_notify_add) //righe aggiunte
|
||||
{
|
||||
TToken_string& riga_sheet = sfield(o.dlg()).row(jolly); //riga nuova dello sheet
|
||||
const TString& codnum = get(F_CODNUM);
|
||||
riga_sheet.add(codnum, _pos_num);
|
||||
const int anno = get_int(F_ANNO);
|
||||
riga_sheet.add(anno, _pos_anno);
|
||||
riga_sheet.add('D', _pos_provv);
|
||||
}
|
||||
|
||||
if (e == se_query_del) //righe da eliminare
|
||||
{
|
||||
//solo le righe senza NDOC ed NRIGA possono essere eliminate!
|
||||
TToken_string& riga_sheet = sfield(o.dlg()).row(jolly);
|
||||
const long ndoc = riga_sheet.get_long(_pos_ndoc);
|
||||
const int nriga = riga_sheet.get_int(_pos_nrig);
|
||||
return ndoc == 0L || nriga == 0;
|
||||
}
|
||||
break;
|
||||
|
||||
//maschera di sheet
|
||||
case S_CODART:
|
||||
if (e == fe_modify)
|
||||
{
|
||||
//al cambio articolo deve proporre il codiva, la um, il prezzo
|
||||
const TString& codart = o.get();
|
||||
const TString& um = find_um(codart);
|
||||
o.mask().set(S_UM, um);
|
||||
const TString& codiva = cache().get(LF_ANAMAG, codart, ANAMAG_CODIVA);
|
||||
o.mask().set(S_CODIVA, codiva);
|
||||
const real prezzo = find_prezzo_articolo(codart);
|
||||
o.mask().set(S_PREZZO, prezzo);
|
||||
}
|
||||
break;
|
||||
|
||||
//bottoni
|
||||
case DLG_SELECT: //carica i record nello sheet in base al filtro di testata
|
||||
if (e == fe_button)
|
||||
{
|
||||
if (check_fields())
|
||||
{
|
||||
disable(-1);
|
||||
enable(-2);
|
||||
fill_sheet();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DLG_CANCEL:
|
||||
if (e == fe_button && jolly == 0)
|
||||
{
|
||||
disable(-2);
|
||||
enable(-1);
|
||||
sfield(F_RIGHE).destroy();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case DLG_SAVEREC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
save_sheet();
|
||||
fill_sheet();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//cerca la um standard del codart
|
||||
const TString4 TEdit_rdocs_mask::find_um(const TString& codart) const
|
||||
{
|
||||
TToken_string key_umart;
|
||||
key_umart.add(codart);
|
||||
key_umart.add(1);
|
||||
const TRectype& rec_umart = cache().get(LF_UMART, key_umart);
|
||||
const TString4 um = rec_umart.get(UMART_UM);
|
||||
return um;
|
||||
}
|
||||
|
||||
//cerca prezzo in: contratto->listino->anamag
|
||||
real TEdit_rdocs_mask::find_prezzo_articolo(const TString& codart) const
|
||||
{
|
||||
const long codcf = get_long(F_CODCF);
|
||||
const TDate data_new_doc = get_date(F_DATADOC);
|
||||
real prezzo = ZERO;
|
||||
|
||||
//0) anagrafica articolo (umart): mal che vada proporrà questa; va vergognosamente messa all'inizio e non alla fine..
|
||||
//..perchè serve unità di misura un pò dappertutto
|
||||
TToken_string key_umart;
|
||||
key_umart.add(codart);
|
||||
key_umart.add(1);
|
||||
const TRectype& rec_umart = cache().get(LF_UMART, key_umart);
|
||||
const TString4 um = rec_umart.get(UMART_UM);
|
||||
const real umart_prezzo = rec_umart.get_real(UMART_PREZZO);
|
||||
|
||||
|
||||
//1) contratto
|
||||
//CONTRATTI: tipo=C|catven=|tipocf=C|codcf=codcf|cod=codcontr|tiporiga=A|codriga=codart|um=um
|
||||
TString query_contr;
|
||||
query_contr << "USE CONDV";
|
||||
query_contr << "\nFROM TIPO=C TIPOCF=C CODCF=#CODCF";
|
||||
query_contr << "\nTO TIPO=C TIPOCF=C CODCF=#CODCF";
|
||||
|
||||
TISAM_recordset recset_contr(query_contr);
|
||||
recset_contr.set_var("#CODCF", codcf);
|
||||
const long recset_contr_items = recset_contr.items();
|
||||
//deve cercare un contratto in essere per la data del documento (in teoria ce ne dovrebbe essere 1 solo, oppure nessuno)
|
||||
for (bool ok = recset_contr.move_first(); ok; ok = recset_contr.move_next())
|
||||
{
|
||||
const TDate dataini_c = recset_contr.get(CONDV_VALIN).as_date();
|
||||
TDate datafin_c = recset_contr.get(CONDV_VALFIN).as_date();
|
||||
if (!datafin_c.ok())
|
||||
datafin_c = data_new_doc;
|
||||
if (dataini_c <= data_new_doc && datafin_c >= data_new_doc)
|
||||
{
|
||||
TString4 codcontr = recset_contr.get(CONDV_COD).as_string();
|
||||
|
||||
//per um è necessario se il contratto scelto ha la gestione delle um accesa (tanto per complicarsi la vita)
|
||||
const bool gestum_contr = recset_contr.get(CONDV_GESTUM).as_string() == "X";
|
||||
|
||||
TToken_string key_contr;
|
||||
key_contr.add("C");
|
||||
key_contr.add("");
|
||||
key_contr.add("C");
|
||||
key_contr.add(codcf);
|
||||
key_contr.add("A");
|
||||
key_contr.add(codart);
|
||||
if (gestum_contr)
|
||||
key_contr.add(um);
|
||||
|
||||
const TRectype& rec_contratto = cache().get(LF_RCONDV, key_contr);
|
||||
const real contratto_prezzo = rec_contratto.get_real(RCONDV_PREZZO);
|
||||
if (!contratto_prezzo.is_zero())
|
||||
{
|
||||
prezzo = contratto_prezzo;
|
||||
break;
|
||||
}
|
||||
} //if (dataini_c <= data_new_doc...
|
||||
} //for (bool ok = recset_contr.move_first()...
|
||||
|
||||
//se non ha trovato il prezzo sul contratto -> passa ai listini
|
||||
|
||||
//2) listino
|
||||
//LISTINI: tipo=L|catven=catven|tipocf=|codcf=|cod=codlis|tiporiga=A|codriga=codart|um=um
|
||||
if (prezzo.is_zero())
|
||||
{
|
||||
TString query_list;
|
||||
query_list << "USE CONDV";
|
||||
query_list << "\nFROM TIPO=L";
|
||||
query_list << "\nTO TIPO=L";
|
||||
|
||||
TISAM_recordset recset_list(query_list);
|
||||
const long recset_list_items = recset_list.items();
|
||||
for (bool ok = recset_list.move_first(); ok; ok = recset_list.move_next())
|
||||
{
|
||||
const TDate dataini_l = recset_list.get(CONDV_VALIN).as_date();
|
||||
TDate datafin_l = recset_list.get(CONDV_VALFIN).as_date();
|
||||
if (!datafin_l.ok())
|
||||
datafin_l = data_new_doc;
|
||||
if (dataini_l <= data_new_doc && datafin_l >= data_new_doc)
|
||||
{
|
||||
TString4 codlist = recset_list.get(CONDV_COD).as_string();
|
||||
|
||||
const bool gestum_list = recset_list.get(CONDV_GESTUM).as_string() == "X";
|
||||
|
||||
TToken_string key_list;
|
||||
key_list.add("L");
|
||||
|
||||
//la catven se c'è è del cliente
|
||||
TToken_string key_cfven;
|
||||
key_cfven.add("C");
|
||||
key_cfven.add(codcf);
|
||||
const TString& catven = cache().get(LF_CFVEN, key_cfven, CFV_CATVEN);
|
||||
|
||||
key_list.add(catven);
|
||||
key_list.add("");
|
||||
key_list.add("");
|
||||
key_list.add(codlist);
|
||||
|
||||
key_list.add("A");
|
||||
key_list.add(codart);
|
||||
if (gestum_list)
|
||||
key_list.add(um);
|
||||
|
||||
const TRectype& rec_listino = cache().get(LF_RCONDV, key_list);
|
||||
const real listino_prezzo = rec_listino.get_real(RCONDV_PREZZO);
|
||||
if (!listino_prezzo.is_zero())
|
||||
{
|
||||
prezzo = listino_prezzo;
|
||||
break;
|
||||
}
|
||||
} //if (dataini_l <= data_new_doc...
|
||||
} //for (bool ok = recset_list.move_first()...
|
||||
} //if (prezzo.is_zero())...
|
||||
|
||||
//3) umart
|
||||
if (prezzo.is_zero())
|
||||
prezzo = umart_prezzo; //mal che vada sarà il prezzo di umart
|
||||
|
||||
return prezzo;
|
||||
}
|
||||
|
||||
//riempie lo sheet in base ai parametri di testata
|
||||
void TEdit_rdocs_mask::fill_sheet()
|
||||
{
|
||||
//recordset con tutti i documenti non evasi nell'anno per il cliente selezionato
|
||||
TString query;
|
||||
query << "USE DOC KEY 2";
|
||||
query << "\nSELECT (CODNUM=#CODNUM)&&(DOCEVASO!=\"X\")";
|
||||
query << "\nFROM TIPOCF=C CODCF=#CODCF PROVV=D ANNO=#ANNO";
|
||||
query << "\nTO TIPOCF=C CODCF=#CODCF PROVV=D ANNO=#ANNO";
|
||||
|
||||
TISAM_recordset recset(query);
|
||||
|
||||
recset.set_var("#CODCF", get_long(F_CODCF));
|
||||
recset.set_var("#CODNUM", get(F_CODNUM));
|
||||
recset.set_var("#ANNO", get(F_ANNO));
|
||||
|
||||
const long items = recset.items();
|
||||
const TRectype& rec = recset.cursor()->curr();
|
||||
|
||||
TSheet_field& sf_righe = sfield(F_RIGHE);
|
||||
sf_righe.destroy();
|
||||
|
||||
TProgind pi(items, TR("Caricamento documenti in corso..."), true, true);
|
||||
int k = 0;
|
||||
|
||||
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
//per ogni documento prende le sole righe non evase e le carica sullo sheet
|
||||
TDocumento doc(rec);
|
||||
FOR_EACH_PHYSICAL_RDOC(doc, r, rdoc)
|
||||
{
|
||||
if (!rdoc->is_evasa() && rdoc->is_evadibile())
|
||||
{
|
||||
sf_righe.autoload_line(++k, *rdoc); //aggiunge una riga nuova riempiendola con tutti i campi che hanno FIELD nella maschera
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sf_righe.force_update();
|
||||
}
|
||||
|
||||
//salva losheet con eventuali modifiche e nuove righe
|
||||
void TEdit_rdocs_mask::save_sheet()
|
||||
{
|
||||
const TString& codnum = get(F_CODNUM);
|
||||
const TString& tipodoc = get(F_TIPODOC);
|
||||
const TDate datadoc = get_date(F_DATADOC);
|
||||
const long codcf = get_long(F_CODCF);
|
||||
|
||||
TDoc_cache doc_cache(codnum, tipodoc, datadoc, codcf);
|
||||
|
||||
TSheet_field& sf_righe = sfield(F_RIGHE);
|
||||
|
||||
FOR_EACH_SHEET_ROW(sf_righe, r, row)
|
||||
{
|
||||
TToken_string key;
|
||||
key.add(row->get(_pos_provv));
|
||||
key.add(row->get(_pos_anno));
|
||||
key.add(row->get(_pos_num));
|
||||
key.add(row->get(_pos_ndoc));
|
||||
|
||||
int nriga = row->get_int(_pos_nrig);
|
||||
|
||||
TDocumento& curr_doc = doc_cache.doc(key);
|
||||
if (nriga <= 0)
|
||||
{
|
||||
const TRiga_documento& rdoc = curr_doc.new_row("01"); //solo righe merce sono aggiungibili
|
||||
nriga = rdoc.get_int(RDOC_NRIGA);
|
||||
row->add(curr_doc.get_long(DOC_NDOC), _pos_ndoc);
|
||||
row->add(nriga, _pos_nrig);
|
||||
}
|
||||
|
||||
sf_righe.autosave_line(r + 1, curr_doc[nriga]); //salva maggicamente la riga nuova
|
||||
}
|
||||
|
||||
doc_cache.destroy();
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////
|
||||
// TSkeleton_application
|
||||
///////////////////////////////////////
|
||||
class TEdit_rdocs : public TSkeleton_application
|
||||
{
|
||||
protected:
|
||||
virtual bool check_autorization() const { return false; }
|
||||
virtual const char* extra_modules() const { return "ve"; }
|
||||
virtual void main_loop();
|
||||
virtual bool create();
|
||||
};
|
||||
|
||||
void TEdit_rdocs::main_loop()
|
||||
{
|
||||
TEdit_rdocs_mask mask;
|
||||
mask.run();
|
||||
}
|
||||
|
||||
bool TEdit_rdocs::create()
|
||||
{
|
||||
open_files(LF_DOC, LF_RIGHEDOC, 0);
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
int ps1002100 (int argc, char* argv[])
|
||||
{
|
||||
TEdit_rdocs main_app;
|
||||
main_app.run(argc, argv, TR("Gestione righe per cliente"));
|
||||
return true;
|
||||
}
|
33
ps/ps1002100a.h
Executable file
33
ps/ps1002100a.h
Executable file
@ -0,0 +1,33 @@
|
||||
|
||||
//campi maschera normale
|
||||
#define F_CODCF 201
|
||||
#define F_RAGSOC 202
|
||||
#define F_CODNUM 203
|
||||
#define F_DESNUM 204
|
||||
#define F_ANNO 205
|
||||
#define F_TIPODOC 206
|
||||
#define F_DESTIPO 207
|
||||
#define F_DATADOC 208
|
||||
|
||||
#define F_RIGHE 220
|
||||
|
||||
//campi sheet F_RIGHE
|
||||
#define S_NDOC 101
|
||||
#define S_NRIGA 102
|
||||
#define S_CODART 103
|
||||
#define S_DESCR 104
|
||||
#define S_UM 105
|
||||
#define S_QTA 106
|
||||
#define S_QTAEVASA 107
|
||||
#define S_PREZZO 108
|
||||
#define S_CODIVA 109
|
||||
#define S_LAV 110
|
||||
#define S_COLORE 111
|
||||
#define S_DATAPROD 112
|
||||
#define S_QTAPROD 113
|
||||
#define S_CODNUM 114
|
||||
#define S_ANNO 115
|
||||
#define S_PROVV 116
|
||||
|
||||
|
||||
#define S_DESIVA 207
|
336
ps/ps1002100a.uml
Executable file
336
ps/ps1002100a.uml
Executable file
@ -0,0 +1,336 @@
|
||||
#include "ps1002100a.h"
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
|
||||
BUTTON DLG_SELECT 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "~Carica"
|
||||
PICTURE TOOL_MULTISEL
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
BUTTON DLG_SAVEREC 2 2
|
||||
BEGIN
|
||||
PROMPT 2 2 "~Salva"
|
||||
PICTURE TOOL_SAVEREC
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
#include <cancelbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Produttivita' giornaliera" 0 2 0 0
|
||||
|
||||
GROUPBOX DLG_NULL 76 7
|
||||
BEGIN
|
||||
PROMPT 0 0 "@bParametri documenti"
|
||||
END
|
||||
|
||||
NUMBER F_CODCF 6
|
||||
BEGIN
|
||||
PROMPT 1 1 "Cliente "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_CODCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Partita IVA@12" PAIV
|
||||
DISPLAY "Sospeso" SOSPESO
|
||||
OUTPUT F_CODCF CODCF
|
||||
OUTPUT F_RAGSOC RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "R"
|
||||
WARNING "Cliente assente"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 23 1 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_RAGSOC
|
||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Partita IVA@12" PAIV
|
||||
DISPLAY "Sospeso" SOSPESO
|
||||
COPY OUTPUT F_CODCF
|
||||
CHECKTYPE NORMAL
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 1 2 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUM CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "U"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_DESNUM 50
|
||||
BEGIN
|
||||
PROMPT 23 2 ""
|
||||
USE %NUM KEY 2
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
COPY OUTPUT F_CODNUM
|
||||
CHECKTYPE NORMAL
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 1 3 "Anno "
|
||||
FLAGS "A"
|
||||
CHECKTYPE REQUIRED
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 1 4 "Parametri degli eventuali documenti da creare"
|
||||
END
|
||||
|
||||
STRING F_TIPODOC 4
|
||||
BEGIN
|
||||
PROMPT 1 5 "Tipo doc. "
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC CODTAB
|
||||
OUTPUT F_DESTIPO S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "UP"
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING F_DESTIPO 50 33
|
||||
BEGIN
|
||||
PROMPT 23 5 ""
|
||||
USE %TIP KEY 2
|
||||
INPUT S0 F_DESTIPO
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
COPY OUTPUT F_TIPODOC
|
||||
CHECKTYPE NORMAL
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
DATA F_DATADOC
|
||||
BEGIN
|
||||
PROMPT 59 5 "Data "
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
SPREADSHEET F_RIGHE
|
||||
BEGIN
|
||||
PROMPT 1 8 "Righe documento"
|
||||
ITEM "N. doc."
|
||||
ITEM "N. riga"
|
||||
ITEM "Codice articolo@20"
|
||||
ITEM "Descrizione articolo@50"
|
||||
ITEM "UM"
|
||||
ITEM "Quantita@15"
|
||||
ITEM "Qta evasa@13"
|
||||
ITEM "Prezzo@18"
|
||||
ITEM "IVA@4"
|
||||
ITEM "Lav@3"
|
||||
ITEM "Colore"
|
||||
ITEM "Data Prod."
|
||||
ITEM "Qta prod.@15"
|
||||
ITEM "Num."
|
||||
ITEM "Anno"
|
||||
ITEM "P/D"
|
||||
GROUP 2
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
||||
|
||||
|
||||
//---------------------------------------------------
|
||||
//maschera di riga dello sheet (righe documenti)
|
||||
|
||||
PAGE "Riga" -1 -1 78 14
|
||||
|
||||
STRING S_CODART 20
|
||||
BEGIN
|
||||
PROMPT 1 1 "Articolo "
|
||||
USE LF_ANAMAG
|
||||
INPUT CODART S_CODART
|
||||
DISPLAY "Codice@20" CODART
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT S_CODART CODART
|
||||
OUTPUT S_DESCR DESCR
|
||||
WARNING "Articolo assente"
|
||||
FLAGS "U"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CODART
|
||||
END
|
||||
|
||||
STRING S_DESCR 50 40
|
||||
BEGIN
|
||||
PROMPT 35 1 ""
|
||||
USE LF_ANAMAG KEY 2
|
||||
INPUT DESCR S_DESCR
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
DISPLAY "Codice@20" CODART
|
||||
COPY OUTPUT S_CODART
|
||||
CHECKTYPE NORMAL
|
||||
FIELD DESCR
|
||||
END
|
||||
|
||||
STRING S_UM 2
|
||||
BEGIN
|
||||
PROMPT 1 2 "U.M. "
|
||||
USE LF_UMART KEY 2
|
||||
JOIN %UMS INTO CODTAB=UM
|
||||
INPUT CODART S_CODART SELECT
|
||||
INPUT UM S_UM
|
||||
DISPLAY "Codice@20" UM
|
||||
DISPLAY "Descrizione@50" %UMS->S0
|
||||
OUTPUT S_UM UM
|
||||
FLAGS "U"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD UMQTA
|
||||
END
|
||||
|
||||
NUMBER S_QTA 15 5
|
||||
BEGIN
|
||||
PROMPT 1 3 "Quantita "
|
||||
FIELD QTA
|
||||
END
|
||||
|
||||
NUMBER S_QTAEVASA 13 5
|
||||
BEGIN
|
||||
PROMPT 1 4 "Qta evasa "
|
||||
FIELD QTAEVASA
|
||||
END
|
||||
|
||||
CURRENCY S_PREZZO
|
||||
BEGIN
|
||||
PROMPT 1 5 "Prezzo "
|
||||
FLAGS "U"
|
||||
FIELD PREZZO
|
||||
END
|
||||
|
||||
STRING S_CODIVA 4
|
||||
BEGIN
|
||||
PROMPT 1 6 "Cod. IVA "
|
||||
USE %IVA
|
||||
INPUT CODTAB S_CODIVA
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT S_CODIVA CODTAB
|
||||
OUTPUT S_DESIVA S0
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD CODIVA
|
||||
END
|
||||
|
||||
STRING S_DESIVA 50
|
||||
BEGIN
|
||||
PROMPT 20 6 ""
|
||||
USE %IVA KEY 2
|
||||
INPUT S0 S_DESIVA
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT S_CODIVA
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING S_LAV 20
|
||||
BEGIN
|
||||
PROMPT 1 7 "Lavoraz. "
|
||||
FIELD CODCMS
|
||||
END
|
||||
|
||||
STRING S_COLORE 20
|
||||
BEGIN
|
||||
PROMPT 1 8 "Colore "
|
||||
FIELD FASCMS
|
||||
END
|
||||
|
||||
DATA S_DATAPROD
|
||||
BEGIN
|
||||
PROMPT 1 9 "Data prod "
|
||||
FIELD DATACONS
|
||||
END
|
||||
|
||||
NUMBER S_QTAPROD 13 5
|
||||
BEGIN
|
||||
PROMPT 1 10 "Qta prod "
|
||||
FIELD QTAGG1
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 76 3
|
||||
BEGIN
|
||||
PROMPT 1 11 "@bChiave riga"
|
||||
END
|
||||
|
||||
STRING S_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 2 12 "Num. "
|
||||
FLAGS "D"
|
||||
FIELD CODNUM
|
||||
END
|
||||
|
||||
NUMBER S_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 13 12 "Anno "
|
||||
FLAGS "D"
|
||||
FIELD ANNO
|
||||
END
|
||||
|
||||
STRING S_PROVV 1
|
||||
BEGIN
|
||||
PROMPT 24 12 "P "
|
||||
FLAGS "D"
|
||||
FIELD PROVV
|
||||
END
|
||||
|
||||
NUMBER S_NDOC 7
|
||||
BEGIN
|
||||
PROMPT 29 12 "N.doc. "
|
||||
FLAGS "D"
|
||||
FIELD NDOC
|
||||
END
|
||||
|
||||
NUMBER S_NRIGA 3
|
||||
BEGIN
|
||||
PROMPT 46 12 "N.Riga "
|
||||
FLAGS "D"
|
||||
FIELD NRIGA
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 2 2
|
||||
BEGIN
|
||||
PROMPT 2 1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
7
ps/ps1002_prod_gca.h
Executable file
7
ps/ps1002_prod_gca.h
Executable file
@ -0,0 +1,7 @@
|
||||
|
||||
//campi maschera report ps1002_prod_gca
|
||||
#define F_CODNUM 201
|
||||
#define F_DESNUM 202
|
||||
#define F_ANNO 203
|
||||
#define F_DADATA 204
|
||||
#define F_ADATA 205
|
98
ps/ps1002_prod_gca.rep
Executable file
98
ps/ps1002_prod_gca.rep
Executable file
@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<report name="ps1002_prod_gca" lpi="6">
|
||||
<description>Produzione giorno-cliente-articolo</description>
|
||||
<font face="Arial" size="8" />
|
||||
<section type="Head" pattern="1">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<field x="1" y="0.25" type="Testo" bg_color="#000000" txt_color="#FFFFFF" width="6" pattern="2" text="Data" />
|
||||
<field x="1" y="1.5" type="Testo" align="right" width="6" pattern="1" text="Cliente" />
|
||||
<field x="65" y="1.5" type="Testo" align="right" width="6" height="2" pattern="1" text="Qta Prod." />
|
||||
<field x="3" y="2.5" type="Testo" width="10" pattern="1" text="Articolo" />
|
||||
<field x="56" y="2.5" type="Testo" align="right" width="6" pattern="1" text="Prezzo" />
|
||||
<field x="76" y="2.5" type="Testo" align="right" width="6" pattern="1" text="Valore" />
|
||||
<field border="2" x="1" y="3.5" type="Linea" width="100" height="0" pattern="1" />
|
||||
</section>
|
||||
<section type="Head" level="1" pattern="1">
|
||||
<prescript description="H1 PRESCRIPT">MESSAGE RESET,F1.104
|
||||
MESSAGE RESET,F1.105</prescript>
|
||||
<field border="2" radius="100" x="15" y="0.5" type="Testo" valign="center" align="center" shade_offset="50" width="60" height="2" pattern="2" text="PRODUTTIVITA' GIORNALIERA">
|
||||
<font face="Arial" bold="1" size="14" />
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="2" page_break="1" pattern="1">
|
||||
<groupby>DATACONS</groupby>
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<prescript description="H2 PRESCRIPT">MESSAGE RESET,F2.104
|
||||
MESSAGE RESET,F2.105</prescript>
|
||||
<field x="1" y="0.25" type="Data" bg_color="#000000" txt_color="#FFFFFF" width="10" id="101" pattern="2">
|
||||
<source>DATACONS</source>
|
||||
<postscript description="H2.101 POSTSCRIPT">MESSAGE COPY,F2.101</postscript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Head" level="3" pattern="1">
|
||||
<groupby>DOC.TIPOCF+DOC.CODCF</groupby>
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<prescript description="H3 PRESCRIPT">MESSAGE RESET,F3.104
|
||||
MESSAGE RESET,F3.105</prescript>
|
||||
<field x="1" type="Numero" align="right" width="6" pattern="1">
|
||||
<source>33.CODCF</source>
|
||||
</field>
|
||||
<field x="8" type="Stringa" width="50" pattern="1">
|
||||
<prescript description="H3.0 PRESCRIPT">MESSAGE ISAMREAD,20,TIPOCF=33.TIPOCF!CODCF=33.CODCF,RAGSOC</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Body" pattern="1" />
|
||||
<section type="Body" level="1" pattern="1">
|
||||
<field x="3" type="Stringa" width="20" pattern="1">
|
||||
<source>CODART</source>
|
||||
</field>
|
||||
<field x="23" type="Stringa" width="30" pattern="1">
|
||||
<font face="Arial Narrow" size="7" />
|
||||
<source>DESCR</source>
|
||||
</field>
|
||||
<field x="54" type="Prezzo" align="right" width="8" id="103" pattern="1" text="#########,@@">
|
||||
<font face="Arial Narrow" size="8" />
|
||||
<source>PREZZO</source>
|
||||
</field>
|
||||
<field x="65" type="Numero" align="right" width="6" id="104" pattern="1">
|
||||
<source>QTAGG1</source>
|
||||
<prescript description="B1.104 PRESCRIPT">MESSAGE ADD,F3.104
|
||||
MESSAGE ADD,F2.104
|
||||
MESSAGE ADD,F1.104</prescript>
|
||||
</field>
|
||||
<field x="72" type="Prezzo" align="right" width="10" id="105" pattern="1" text="#########,@@">
|
||||
<source>#103*#104</source>
|
||||
<prescript description="B1.105 PRESCRIPT">MESSAGE ADD,F3.105
|
||||
MESSAGE ADD,F2.105
|
||||
MESSAGE ADD,F1.105</prescript>
|
||||
</field>
|
||||
</section>
|
||||
<section type="Foot" pattern="1" />
|
||||
<section type="Foot" level="1" pattern="1">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field border="2" x="1" y="1" type="Linea" width="100" height="0" pattern="1" />
|
||||
<field x="1" y="1.25" type="Testo" bg_color="#C0C0C0" width="63" pattern="2" text="TOTALE NEL PERIODO SELEZIONATO" />
|
||||
<field x="64" y="1.25" type="Numero" align="right" bg_color="#C0C0C0" width="7" id="104" pattern="2" />
|
||||
<field x="71" y="1.25" type="Prezzo" align="right" bg_color="#C0C0C0" width="11" id="105" pattern="2" text="#########,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="2" pattern="1">
|
||||
<font italic="1" face="Arial" bold="1" size="8" />
|
||||
<field border="2" y="0.25" type="Linea" width="100" height="0" pattern="1" />
|
||||
<field x="1" y="0.5" type="Testo" bg_color="#000000" txt_color="#FFFFFF" width="15" pattern="2" text="Totale in data" />
|
||||
<field x="16" y="0.5" type="Data" bg_color="#000000" txt_color="#FFFFFF" width="10" id="101" pattern="2" />
|
||||
<field x="64" y="0.75" type="Numero" align="right" width="7" id="104" pattern="1" />
|
||||
<field x="71" y="0.75" type="Prezzo" align="right" width="11" id="105" pattern="1" text="#########,@@" />
|
||||
</section>
|
||||
<section type="Foot" level="3" pattern="1">
|
||||
<font face="Arial" bold="1" size="8" />
|
||||
<field border="1" x="1" y="0.25" type="Linea" width="100" height="0" pattern="1" />
|
||||
<field x="64" y="0.5" type="Numero" align="right" width="7" id="104" pattern="1" />
|
||||
<field x="71" y="0.5" type="Prezzo" align="right" width="11" id="105" pattern="1" text="#########,@@" />
|
||||
</section>
|
||||
<sql>USE RDOC
|
||||
SELECT (BETWEEN(DATACONS,#DADATA,#ADATA))(33.TIPOCF="C")
|
||||
BY DATACONS 33.CODCF CODART
|
||||
JOIN DOC INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
|
||||
FROM CODNUM=#CODNUM ANNO=#ANNO PROVV=D
|
||||
TO CODNUM=#CODNUM ANNO=#ANNO PROVV=D</sql>
|
||||
</report>
|
60
ps/ps1002_prod_gca.uml
Executable file
60
ps/ps1002_prod_gca.uml
Executable file
@ -0,0 +1,60 @@
|
||||
#include "ps1002_prod_gca.h"
|
||||
|
||||
PAGE "Produzione giornaliera" -1 -1 78 5
|
||||
|
||||
STRING F_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 1 1 "Numerazione "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUM CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "U"
|
||||
FIELD #CODNUM
|
||||
END
|
||||
|
||||
STRING F_DESNUM 50
|
||||
BEGIN
|
||||
PROMPT 23 1 ""
|
||||
USE %NUM KEY 2
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice@8" CODTAB
|
||||
COPY OUTPUT F_CODNUM
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_ANNO 4
|
||||
BEGIN
|
||||
PROMPT 1 2 "Anno "
|
||||
FLAGS "A"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD #ANNO
|
||||
END
|
||||
|
||||
DATA F_DADATA
|
||||
BEGIN
|
||||
PROMPT 1 3 "Dalla data "
|
||||
FLAGS "A"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD DADATA
|
||||
END
|
||||
|
||||
DATA F_ADATA
|
||||
BEGIN
|
||||
PROMPT 30 3 "Alla data "
|
||||
FLAGS "A"
|
||||
CHECKTYPE REQUIRED
|
||||
FIELD ADATA
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
#include <printbar.h>
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
5
sc/sc0200b.h
Executable file
5
sc/sc0200b.h
Executable file
@ -0,0 +1,5 @@
|
||||
#include "sc0100a.h"
|
||||
|
||||
#define F_TUTTE 201
|
||||
#define F_CODVAL 202
|
||||
#define F_PARTITE 203
|
155
sc/sc0200b.uml
Executable file
155
sc/sc0200b.uml
Executable file
@ -0,0 +1,155 @@
|
||||
#include "sc0200b.h"
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
|
||||
BUTTON DLG_EDIT 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Modifica"
|
||||
PICTURE TOOL_EDIT
|
||||
END
|
||||
|
||||
BUTTON DLG_NEWREC 2 2
|
||||
BEGIN
|
||||
PROMPT 2 1 "Nuovo"
|
||||
PICTURE TOOL_NEWREC
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Gestione partite" 0 0 0 0
|
||||
|
||||
LIST F_TIPO 1 10
|
||||
BEGIN
|
||||
PROMPT 1 0 "Tipo conto "
|
||||
ITEM "|Conto"
|
||||
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
|
||||
ITEM "C|Cliente"
|
||||
MESSAGE HIDE,1@|SHOW,2@|HIDE,3@
|
||||
ITEM "F|Fornitore"
|
||||
MESSAGE HIDE,1@|HIDE,2@|SHOW,3@
|
||||
FLAGS "DG"
|
||||
END
|
||||
|
||||
NUMBER F_GRUPPO 3
|
||||
BEGIN
|
||||
PROMPT 27 0 "Gruppo "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CONTO 3
|
||||
BEGIN
|
||||
PROMPT 41 0 "Conto "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_SOTTOCONTO 6
|
||||
BEGIN
|
||||
PROMPT 54 0 "Sottoconto "
|
||||
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||
INPUT GRUPPO F_GRUPPO
|
||||
INPUT CONTO F_CONTO
|
||||
INPUT SOTTOCONTO F_SOTTOCONTO
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_GRUPPO GRUPPO
|
||||
OUTPUT F_CONTO CONTO
|
||||
OUTPUT F_SOTTOCONTO SOTTOCONTO
|
||||
OUTPUT F_DESCR DESCR
|
||||
GROUP 1
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_CLIENTE 6
|
||||
BEGIN
|
||||
PROMPT 54 0 "Cliente "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_CLIENTE
|
||||
DISPLAY "Cliente" CODCF
|
||||
DISPLAY "Descrizione@50" RAGSOC
|
||||
OUTPUT F_CLIENTE CODCF
|
||||
OUTPUT F_DESCRCLI RAGSOC
|
||||
ADD RUN cg0 -1 C
|
||||
GROUP 2
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_FORNITORE 6
|
||||
BEGIN
|
||||
PROMPT 54 0 "Fornitore "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "F"
|
||||
INPUT CODCF F_FORNITORE
|
||||
DISPLAY "Fornitore" CODCF
|
||||
DISPLAY "Descrizione@50" RAGSOC
|
||||
OUTPUT F_FORNITORE CODCF
|
||||
OUTPUT F_DESCRFOR RAGSOC
|
||||
ADD RUN cg0 -1 F
|
||||
GROUP 3
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DESCR 50 58
|
||||
BEGIN
|
||||
PROMPT 1 1 "Descrizione "
|
||||
GROUP 1
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DESCRCLI 50 58
|
||||
BEGIN
|
||||
PROMPT 1 1 "Descrizione "
|
||||
GROUP 2
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DESCRFOR 50 58
|
||||
BEGIN
|
||||
PROMPT 1 1 "Descrizione "
|
||||
GROUP 3
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
RADIOBUTTON F_TUTTE 1 38
|
||||
BEGIN
|
||||
PROMPT 1 2 "Mostra partite"
|
||||
ITEM "1|Aperte"
|
||||
ITEM "2|Chiuse"
|
||||
ITEM "3|Tutte"
|
||||
FLAGS "Z"
|
||||
END
|
||||
|
||||
STRING F_CODVAL 4
|
||||
BEGIN
|
||||
PROMPT 60 3 "Valuta "
|
||||
USE %VAL
|
||||
INPUT CODTAB F_CODVAL
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODVAL CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
TLIST F_PARTITE -3 -1
|
||||
BEGIN
|
||||
PROMPT 0 5 ""
|
||||
DISPLAY "Partita@35" DESCR
|
||||
DISPLAY "Docum.@8" NUMDOC
|
||||
DISPLAY "Data@10R" DATADOC
|
||||
DISPLAY "Dare@15R" DARE
|
||||
DISPLAY "Avere@15R" AVERE
|
||||
DISPLAY "Abbuoni@15R" ABBUONI
|
||||
DISPLAY "Diff. Cambio@15R" DIFFCAM
|
||||
DISPLAY "Ritenute fiscali@15R" RITENUTE
|
||||
DISPLAY "Ritenute sociali@15R" RITSOC
|
||||
DISPLAY "P.N." NREG
|
||||
END
|
||||
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user