Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@19757 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2009-12-11 13:56:59 +00:00
parent f0981b9e59
commit 2e23636e1c

View File

@ -18,7 +18,83 @@
#include <mov.h>
#include <rmoviva.h>
class TErogazioni_wincard : public TAS400_recordset
{
const TVariant& get_field(const TAS400_column_info& fi) const;
public:
TErogazioni_wincard(const char* query = "");
virtual ~TErogazioni_wincard() { }
};
TErogazioni_wincard::TErogazioni_wincard(const char* query)
: TAS400_recordset(TString("AS400(269,0,0)\n") << query)
{
create_field("Impianto", 0, 8);
create_field("Cliente", 8, 3);
create_field("Filler01", 11, 14);
create_field("Schede", 25, 5, _intfld);
create_field("Data", 30, 8, _datefld);
create_field("Ora", 38, 8);
create_field("Pompa", 46, 2);
create_field("Prodotto", 48, 15);
create_field("Volume", 63, 15, _realfld);
create_field("Importo", 78, 15, _realfld);
create_field("Prezzo", 93, 15, _realfld);
create_field("Note", 108, 20);
create_field("Ins.Manuale", 128, 1);
create_field("Num. Buono", 129, 10, _realfld);
create_field("DataStampa", 139, 8, _datefld);
create_field("OraStampa", 147, 8);
create_field("Fller02", 155, 1);
create_field("Contatore", 156, 10, _realfld);
create_field("Num. Fattura", 166, 10, _realfld);
create_field("Sconto", 176, 15, _realfld);
create_field("Mess Inc.", 191, 4);
create_field("ID", 195, 10, _realfld);
create_field("Ora Registrazione", 205, 8);
create_field("Venduto", 213, 1);
create_field("Temperatura", 214, 15, _realfld);
create_field("Densità", 229, 15, _realfld);
create_field("Fatt54b", 244, 15, _realfld);
create_field("Data", 259, 8, _datefld);
}
const TVariant& TErogazioni_wincard::get_field(const TAS400_column_info& ci) const
{
if (ci._type == _datefld)
{
TVariant & var = get_tmp_var();
const TRecnotype n = current_row();
if (n >= 0 && n < items())
{
const TString& str = row(n).mid(ci._pos, ci._width);
long ansi = 20000000L + atoi(str.right(2)) * 10000 + atoi(str.mid(3,2)) * 100 + atoi(str.left(2));
if (ansi > 20510000L)
ansi -= 1000000L;
var = TDate(ansi);
}
return var;
}
else
if (ci._type == _realfld)
{
TVariant & var = get_tmp_var();
const TRecnotype n = current_row();
if (n >= 0 && n < items())
{
const TString& str = row(n).mid(ci._pos, ci._width);
var = real(real::ita2eng(str));
}
return var;
}
return TAS400_recordset::get_field(ci);
}
///////////////////////////////////////////////////////////