Patch level : 10.0 patch ???
Files correlati : ha3 ha3100a.msk Ricompilazione Demo : [ ] Commento : Aggiunto il programma di gestione giri git-svn-id: svn://10.65.10.50/branches/R_10_00@21809 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c9a82e3b18
commit
f50543a411
19
ha/ha3.cpp
Executable file
19
ha/ha3.cpp
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#include <xvt.h>
|
||||||
|
#include <checks.h>
|
||||||
|
|
||||||
|
#include "ha3.h"
|
||||||
|
|
||||||
|
#define usage "Error - usage : %s -{0|1}"
|
||||||
|
|
||||||
|
int main(int argc,char** argv)
|
||||||
|
{
|
||||||
|
int rt = -1 ;
|
||||||
|
const int r = (argc > 1) ? atoi(&argv[1][1]) : -1;
|
||||||
|
|
||||||
|
switch (r)
|
||||||
|
{
|
||||||
|
case 0: rt = ha3100(argc, argv); break; //Gestione giri
|
||||||
|
default: error_box(usage, argv[0]); break;
|
||||||
|
}
|
||||||
|
return rt;
|
||||||
|
}
|
381
ha/ha3100.cpp
Executable file
381
ha/ha3100.cpp
Executable file
@ -0,0 +1,381 @@
|
|||||||
|
#include <applicat.h>
|
||||||
|
#include <automask.h>
|
||||||
|
#include <defmask.h>
|
||||||
|
#include <recset.h>
|
||||||
|
#include <tabmod.h>
|
||||||
|
|
||||||
|
#include "../pr/agenti.h"
|
||||||
|
|
||||||
|
#include "ha3.h"
|
||||||
|
#include "ha3100a.h"
|
||||||
|
|
||||||
|
const char* const APPNAME = TR("Gestione giri");
|
||||||
|
|
||||||
|
/////////////////////////
|
||||||
|
//// TGIRI_KEY ////
|
||||||
|
/////////////////////////
|
||||||
|
class TGiri_key : public TObject
|
||||||
|
{
|
||||||
|
TString8 _agente;
|
||||||
|
int _giorno;
|
||||||
|
long _cliente;
|
||||||
|
|
||||||
|
public:
|
||||||
|
TGiri_key& operator =(const TGiri_key& gkey) {return *this;}
|
||||||
|
|
||||||
|
const TString8 agente() const;
|
||||||
|
const int giorno() const;
|
||||||
|
const long cliente() const;
|
||||||
|
|
||||||
|
void set_agente (const char* codag);
|
||||||
|
void set_giorno (const int giorno);
|
||||||
|
void set_cliente (const long codcli);
|
||||||
|
|
||||||
|
const char* key() const;
|
||||||
|
|
||||||
|
TGiri_key(const char* codag, const int giorno, const long codcli);
|
||||||
|
TGiri_key(const TString& key);
|
||||||
|
};
|
||||||
|
|
||||||
|
const TString8 TGiri_key::agente() const
|
||||||
|
{
|
||||||
|
return _agente;
|
||||||
|
}
|
||||||
|
|
||||||
|
const int TGiri_key::giorno() const
|
||||||
|
{
|
||||||
|
return _giorno;
|
||||||
|
}
|
||||||
|
|
||||||
|
const long TGiri_key::cliente() const
|
||||||
|
{
|
||||||
|
return _cliente;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TGiri_key::set_agente(const char* codag)
|
||||||
|
{
|
||||||
|
_agente = codag;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TGiri_key::set_giorno(const int giorno)
|
||||||
|
{
|
||||||
|
_giorno = giorno;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TGiri_key::set_cliente(const long codcli)
|
||||||
|
{
|
||||||
|
_cliente = codcli;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const char* TGiri_key::key() const
|
||||||
|
{
|
||||||
|
TString& str = get_tmp_string();
|
||||||
|
str = _agente;
|
||||||
|
|
||||||
|
TString8 tmp;
|
||||||
|
tmp.format("%01d", _giorno);
|
||||||
|
str << tmp;
|
||||||
|
|
||||||
|
tmp.cut(0);
|
||||||
|
tmp.format("%06d", _cliente);
|
||||||
|
str << tmp;
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
TGiri_key::TGiri_key(const char* codag, const int giorno, const long codcli/*, const int coditi*/)
|
||||||
|
{
|
||||||
|
set_agente(codag);
|
||||||
|
set_giorno(giorno);
|
||||||
|
set_cliente(codcli);
|
||||||
|
}
|
||||||
|
|
||||||
|
TGiri_key::TGiri_key(const TString& key)
|
||||||
|
{
|
||||||
|
set_agente(key.left(5));
|
||||||
|
set_giorno(atoi(key.mid(5,1)));
|
||||||
|
set_cliente(atol(key.mid(6,6)));
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
//// FUNZIONI DI ORDINAMENTO ////
|
||||||
|
///////////////////////////////////////
|
||||||
|
|
||||||
|
static int sort_by_stop(TSheet_field& sheet, int r1, int r2)
|
||||||
|
{
|
||||||
|
TToken_string& row1 = sheet.row(r1);
|
||||||
|
TToken_string& row2 = sheet.row(r2);
|
||||||
|
|
||||||
|
const int i1 = row1.get_int(sheet.cid2index(S_ORDPASS));
|
||||||
|
const int i2 = row2.get_int(sheet.cid2index(S_ORDPASS));
|
||||||
|
|
||||||
|
int dif = i1 - i2;
|
||||||
|
if (dif == 0)
|
||||||
|
{
|
||||||
|
dif = row1.get_int(sheet.cid2index(S_CLIENTE)) - row2.get_int(sheet.cid2index(S_CLIENTE));
|
||||||
|
|
||||||
|
if (dif == 0)
|
||||||
|
dif = row1.get_int(sheet.cid2index(S_AGENTE)) - row2.get_int(sheet.cid2index(S_AGENTE));
|
||||||
|
}
|
||||||
|
|
||||||
|
return dif;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////
|
||||||
|
//// TGESTIONE_GIRI_MSK ////
|
||||||
|
//////////////////////////////////
|
||||||
|
|
||||||
|
class TGestione_giri_msk : public TAutomask
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
|
void riempi_sheet();
|
||||||
|
void aggiungi_riga();
|
||||||
|
void registra();
|
||||||
|
|
||||||
|
public:
|
||||||
|
TGestione_giri_msk();
|
||||||
|
virtual ~TGestione_giri_msk() {};
|
||||||
|
};
|
||||||
|
|
||||||
|
//RIEMPI_SHEET: riempie lo sheet tenendo conto dei filtri impostati
|
||||||
|
void TGestione_giri_msk::riempi_sheet()
|
||||||
|
{
|
||||||
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
|
sheet.destroy();
|
||||||
|
|
||||||
|
//leggi dalla maschera i filtri
|
||||||
|
TString8 agente; agente.format("%05d", get_long(F_AGENTE));
|
||||||
|
const long giorno = get_int(F_GIORNO);
|
||||||
|
const long cliente = get_long(F_CLIENTE);
|
||||||
|
|
||||||
|
//prepara la query;
|
||||||
|
//ATTENZIONE: le query su tabmod non funzionano con il semplice USE &TAB, ma vogliono SEMPRE FROM e TO
|
||||||
|
TString query;
|
||||||
|
query << "USE &HGI\n"
|
||||||
|
<< "SELECT STR((BETWEEN(CODTAB[6,6];" << giorno << ';' << giorno << "))&&(BETWEEN(CODTAB[7,12];" << cliente << ';' << cliente << ")))";
|
||||||
|
|
||||||
|
if(!field(F_AGENTE).empty())
|
||||||
|
{
|
||||||
|
query << "\nFROM CODTAB=\"" << agente << "\""
|
||||||
|
<< "\nTO CODTAB=\"" << agente << "\"";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TISAM_recordset agenti(TR("USE AGENTI"));
|
||||||
|
|
||||||
|
agenti.move_first();
|
||||||
|
query << "\nFROM CODTAB=\"" << agenti.get(AGE_CODAGE).as_string() << "\"";
|
||||||
|
|
||||||
|
agenti.move_last();
|
||||||
|
query << "\nTO CODTAB=\"" << agenti.get(AGE_CODAGE).as_string() << "\"";
|
||||||
|
}
|
||||||
|
|
||||||
|
TISAM_recordset giri(query);
|
||||||
|
|
||||||
|
//se non ho trovato niente con i filtri impostati, lo segnalo
|
||||||
|
if(giri.items() == 0)
|
||||||
|
{
|
||||||
|
warning_box(TR("Non è stato possibile trovare giri con i filtri selezionati."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//riempio lo sheet con i dati trovati sulla tabella di modulo
|
||||||
|
for(bool ok = giri.move_first(); ok; ok = giri.move_next())
|
||||||
|
{
|
||||||
|
TToken_string& riga = sheet.row(-1);
|
||||||
|
|
||||||
|
TGiri_key gkey(giri.get("CODTAB").as_string());
|
||||||
|
|
||||||
|
riga.add(gkey.agente(), sheet.cid2index(S_AGENTE));
|
||||||
|
riga.add(gkey.giorno(), sheet.cid2index(S_GIORNO));
|
||||||
|
riga.add(gkey.cliente(), sheet.cid2index(S_CLIENTE));
|
||||||
|
riga.add(giri.get("I0").as_int(), sheet.cid2index(S_ORDPASS));
|
||||||
|
riga.add(giri.get("S0").as_string(), sheet.cid2index(S_ORAPASS));
|
||||||
|
}
|
||||||
|
|
||||||
|
//faccio fare gli output ai campi della riga e disabilito le celle dei campi chiave
|
||||||
|
FOR_EACH_SHEET_ROW(sheet, r, row)
|
||||||
|
{
|
||||||
|
sheet.check_row(r);
|
||||||
|
sheet.disable_cell(r, sheet.cid2index(S_AGENTE));
|
||||||
|
sheet.disable_cell(r, sheet.cid2index(S_RAGSOC));
|
||||||
|
sheet.disable_cell(r, sheet.cid2index(S_GIORNO));
|
||||||
|
sheet.disable_cell(r, sheet.cid2index(S_CLIENTE));
|
||||||
|
sheet.disable_cell(r, sheet.cid2index(S_CLIRAGSOC));
|
||||||
|
}
|
||||||
|
sheet.force_update();
|
||||||
|
}
|
||||||
|
|
||||||
|
//AGGIUNGI_RIGA: aggiunge una riga allo sheet tetendo conto dei filtri impostati in testata
|
||||||
|
//(compila i campi già compilati e li disabilita)
|
||||||
|
void TGestione_giri_msk::aggiungi_riga()
|
||||||
|
{
|
||||||
|
const long agente = get_long(F_AGENTE);
|
||||||
|
const long giorno = get_int(F_GIORNO);
|
||||||
|
const long cliente = get_long(F_CLIENTE);
|
||||||
|
TString8 codage; codage.format("%05d", agente);
|
||||||
|
|
||||||
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
|
|
||||||
|
const short pos_codage = sheet.cid2index(S_AGENTE);
|
||||||
|
const short pos_giorno = sheet.cid2index(S_GIORNO);
|
||||||
|
const short pos_codcli = sheet.cid2index(S_CLIENTE);
|
||||||
|
|
||||||
|
TToken_string& riga = sheet.row(-1);
|
||||||
|
const int r = sheet.items() - 1;
|
||||||
|
|
||||||
|
if(agente > 0L)
|
||||||
|
riga.add(codage, pos_codage);
|
||||||
|
|
||||||
|
if(giorno > 0L)
|
||||||
|
riga.add(giorno, pos_giorno);
|
||||||
|
else
|
||||||
|
riga.add(1L, pos_giorno);
|
||||||
|
|
||||||
|
if(agente > 0L)
|
||||||
|
riga.add(cliente, pos_codcli);
|
||||||
|
|
||||||
|
riga.add("00:00", sheet.cid2index(S_ORAPASS));
|
||||||
|
|
||||||
|
sheet.force_update();
|
||||||
|
sheet.check_row(sheet.items() - 1);
|
||||||
|
|
||||||
|
if(agente > 0L)
|
||||||
|
{
|
||||||
|
sheet.disable_cell(r, pos_codage);
|
||||||
|
sheet.disable_cell(r, sheet.cid2index(S_RAGSOC));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(giorno > 0L)
|
||||||
|
sheet.disable_cell(r, pos_giorno);
|
||||||
|
|
||||||
|
if(cliente > 0L)
|
||||||
|
{
|
||||||
|
sheet.disable_cell(r, pos_codcli);
|
||||||
|
sheet.disable_cell(r, sheet.cid2index(S_CLIRAGSOC));
|
||||||
|
}
|
||||||
|
sheet.sort(sort_by_stop);
|
||||||
|
sheet.force_update();
|
||||||
|
}
|
||||||
|
|
||||||
|
//REGISTRA: registra le variazioni ai record esistenti, aggiunge quelli nuovi e cancella quelli contrasegnati
|
||||||
|
void TGestione_giri_msk::registra()
|
||||||
|
{
|
||||||
|
TModule_table giri("&HGI");
|
||||||
|
TSheet_field& sheet = sfield(F_SHEET);
|
||||||
|
|
||||||
|
TAssoc_array chiavi;
|
||||||
|
|
||||||
|
FOR_EACH_SHEET_ROW(sheet, r, riga)
|
||||||
|
{
|
||||||
|
giri.zero();
|
||||||
|
TToken_string& row = *(TToken_string*)riga;
|
||||||
|
|
||||||
|
const bool cancella = row.get_char(sheet.cid2index(S_CANC)) == 'X' ? true : false;
|
||||||
|
const TString8 agente = row.get(sheet.cid2index(S_AGENTE));
|
||||||
|
const int giorno = row.get_int(sheet.cid2index(S_GIORNO));
|
||||||
|
const long cliente = row.get_long(sheet.cid2index(S_CLIENTE));
|
||||||
|
const long ordpass = row.get_long(sheet.cid2index(S_ORDPASS));
|
||||||
|
const TString8 orapass = row.get(sheet.cid2index(S_ORAPASS));
|
||||||
|
|
||||||
|
const TGiri_key gkey(agente, giorno, cliente);
|
||||||
|
const TString80 codtab = gkey.key();
|
||||||
|
|
||||||
|
chiavi.add(codtab, codtab);
|
||||||
|
|
||||||
|
//se esiste un'altra riga sullo sheet con la stessa chiave, lo segnala e chiede se sovrascrivere quella già registrata
|
||||||
|
if(chiavi.is_key(codtab))
|
||||||
|
{
|
||||||
|
TString msg;
|
||||||
|
msg << "Attenzione: il passaggio dell'agente " << agente << " presso il cliente " << cliente << " previsto per il giorno " << itow(giorno)
|
||||||
|
<< " risulta duplicato. Si desidera sovrascrivere?";
|
||||||
|
if(!yesno_box(msg))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//cancella le righe contrassegnate e aggiorna le altre
|
||||||
|
giri.put("CODTAB", codtab);
|
||||||
|
if (!cancella)
|
||||||
|
{
|
||||||
|
giri.put("I0", ordpass);
|
||||||
|
giri.put("S0", orapass);
|
||||||
|
giri.rewrite_write();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
giri.remove();
|
||||||
|
}
|
||||||
|
riempi_sheet();
|
||||||
|
}
|
||||||
|
|
||||||
|
//ON_FIELD_EVENT: gestisce i comportamenti modificati dei bottoni e dello sheet
|
||||||
|
bool TGestione_giri_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
|
{
|
||||||
|
switch (o.dlg())
|
||||||
|
{
|
||||||
|
case DLG_FINDREC:
|
||||||
|
if(e == fe_button)
|
||||||
|
{
|
||||||
|
riempi_sheet();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case DLG_SAVEREC:
|
||||||
|
if(e == fe_button)
|
||||||
|
{
|
||||||
|
registra();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case F_SHEET:
|
||||||
|
if(e == se_notify_add)
|
||||||
|
aggiungi_riga();
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TGestione_giri_msk::TGestione_giri_msk()
|
||||||
|
: TAutomask ("ha3100a")
|
||||||
|
{}
|
||||||
|
|
||||||
|
///////////////////////////////////////
|
||||||
|
// TSkeleton_application
|
||||||
|
///////////////////////////////////////
|
||||||
|
class TGestione_giri_app : public TSkeleton_application
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual const char * extra_modules() const {return "ha";}
|
||||||
|
void elabora(const TMask& msk);
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual void main_loop();
|
||||||
|
virtual bool create();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void TGestione_giri_app::elabora(const TMask& msk)
|
||||||
|
{}
|
||||||
|
|
||||||
|
void TGestione_giri_app::main_loop()
|
||||||
|
{
|
||||||
|
TGestione_giri_msk msk;
|
||||||
|
while (msk.run() == K_ENTER)
|
||||||
|
elabora(msk);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TGestione_giri_app::create()
|
||||||
|
{
|
||||||
|
return TSkeleton_application::create();
|
||||||
|
}
|
||||||
|
|
||||||
|
int ha3100 (int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TGestione_giri_app elabapp;
|
||||||
|
elabapp.run(argc, argv, APPNAME);
|
||||||
|
return 0;
|
||||||
|
}
|
16
ha/ha3100a.h
Executable file
16
ha/ha3100a.h
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
//Campi maschera ha3100
|
||||||
|
#define F_AGENTE 201
|
||||||
|
#define F_DESAGENTE 202
|
||||||
|
#define F_CLIENTE 203
|
||||||
|
#define F_DESCLIENTE 204
|
||||||
|
#define F_GIORNO 205
|
||||||
|
#define F_SHEET 206
|
||||||
|
|
||||||
|
#define S_CANC 101
|
||||||
|
#define S_AGENTE 102
|
||||||
|
#define S_RAGSOC 103
|
||||||
|
#define S_GIORNO 104
|
||||||
|
#define S_CLIENTE 105
|
||||||
|
#define S_CLIRAGSOC 106
|
||||||
|
#define S_ORDPASS 107
|
||||||
|
#define S_ORAPASS 108
|
200
ha/ha3100a.uml
Executable file
200
ha/ha3100a.uml
Executable file
@ -0,0 +1,200 @@
|
|||||||
|
#include "ha3100a.h"
|
||||||
|
|
||||||
|
TOOLBAR "" 0 0 0 2
|
||||||
|
|
||||||
|
BUTTON DLG_FINDREC 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 3 1 "Ricerca"
|
||||||
|
PICTURE TOOL_FINDREC
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_SAVEREC 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Salva"
|
||||||
|
PICTURE TOOL_SAVEREC
|
||||||
|
END
|
||||||
|
|
||||||
|
#include <helpbar.h>
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Gestione giri" 0 2 0 0
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 80 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "@bFitri"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_AGENTE 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Filtra agente "
|
||||||
|
USE LF_AGENTI
|
||||||
|
INPUT CODAGE F_AGENTE
|
||||||
|
DISPLAY "Codice" CODAGE
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
OUTPUT F_AGENTE CODAGE
|
||||||
|
OUTPUT F_DESAGENTE RAGSOC
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESAGENTE 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 2 ""
|
||||||
|
USE LF_AGENTI KEY 2
|
||||||
|
INPUT RAGSOC F_DESAGENTE
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODAGE
|
||||||
|
COPY OUTPUT F_AGENTE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CLIENTE 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Filtra cliente"
|
||||||
|
FLAGS "ZU"
|
||||||
|
USE LF_CLIFO
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT CODCF F_CLIENTE
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
OUTPUT F_CLIENTE CODCF
|
||||||
|
OUTPUT F_DESCLIENTE RAGSOC
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCLIENTE 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 3 ""
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT RAGSOC F_DESCLIENTE
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT F_CLIENTE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
END
|
||||||
|
|
||||||
|
LISTBOX F_GIORNO 1 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 4 "Giorno "
|
||||||
|
ITEM "0|"
|
||||||
|
ITEM "1|Lunedì"
|
||||||
|
ITEM "2|Martedì"
|
||||||
|
ITEM "3|Mercoledì"
|
||||||
|
ITEM "4|Giovedì"
|
||||||
|
ITEM "5|Venerdì"
|
||||||
|
ITEM "6|Sabato"
|
||||||
|
ITEM "7|Domenica"
|
||||||
|
END
|
||||||
|
|
||||||
|
SPREADSHEET F_SHEET 0 -1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Giri"
|
||||||
|
ITEM "Canc."
|
||||||
|
ITEM "Agente@6"
|
||||||
|
ITEM "Ragione Sociale@25"
|
||||||
|
ITEM "Giorno@10"
|
||||||
|
ITEM "Cliente@6"
|
||||||
|
ITEM "Ragione Sociale@25"
|
||||||
|
ITEM "Ordine\nPassaggio@9"
|
||||||
|
ITEM "Ora\nPassaggio@9"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
TOOLBAR "" 0 0 0 2
|
||||||
|
|
||||||
|
#include <stdbar.h>
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Giri" 0 2 0 0
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 80 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 0 "@bRiga"
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN S_CANC
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "Cancellare"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_AGENTE 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Agente "
|
||||||
|
USE LF_AGENTI
|
||||||
|
INPUT CODAGE S_AGENTE
|
||||||
|
DISPLAY "Codice" CODAGE
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
OUTPUT S_AGENTE CODAGE
|
||||||
|
OUTPUT S_RAGSOC RAGSOC
|
||||||
|
CHECTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_RAGSOC 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 19 2 ""
|
||||||
|
USE LF_AGENTI KEY 2
|
||||||
|
INPUT RAGSOC S_RAGSOC
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODAGE
|
||||||
|
COPY OUTPUT S_AGENTE
|
||||||
|
CHECTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
LISTBOX S_GIORNO 1 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Giorno "
|
||||||
|
ITEM "1|Lunedì"
|
||||||
|
ITEM "2|Martedì"
|
||||||
|
ITEM "3|Mercoledì"
|
||||||
|
ITEM "4|Giovedì"
|
||||||
|
ITEM "5|Venerdì"
|
||||||
|
ITEM "6|Sabato"
|
||||||
|
ITEM "7|Domenica"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_CLIENTE 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 4 "Cliente "
|
||||||
|
FLAGS "ZU"
|
||||||
|
USE LF_CLIFO
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT CODCF S_CLIENTE
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
OUTPUT S_CLIENTE CODCF
|
||||||
|
OUTPUT S_CLIRAGSOC RAGSOC
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_CLIRAGSOC 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 19 4 ""
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT RAGSOC S_CLIRAGSOC
|
||||||
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT S_CLIENTE
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S_ORDPASS 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 6 "Ordine di passaggio "
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S_ORAPASS 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 35 6 "Ora arrivo "
|
||||||
|
PICTURE "@@:@@"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user