Aggiunto editor dei profili estratto conto.
git-svn-id: svn://10.65.10.50/trunk@2317 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7cb2f9ed77
commit
088de429da
21
sc/sc3.cpp
Executable file
21
sc/sc3.cpp
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#include <xvt.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <checks.h>
|
||||||
|
|
||||||
|
#include "sc3.h"
|
||||||
|
|
||||||
|
#define usage "Errore - uso : sc3 -{0}"
|
||||||
|
|
||||||
|
int main(int argc,char** argv)
|
||||||
|
{
|
||||||
|
const int n = (argc > 1) ? (atoi(&argv[1][1])) : 0;
|
||||||
|
|
||||||
|
switch(n)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sc3100(argc,argv); break;
|
||||||
|
default:
|
||||||
|
error_box(usage);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
49
sc/sc3.url
Executable file
49
sc/sc3.url
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#include <default.url>
|
||||||
|
|
||||||
|
#define MENU_FILE_ALT TASK_MENUBAR+4000
|
||||||
|
|
||||||
|
#define M_FIL1_NEW MENU_FILE_ALT+101
|
||||||
|
#define M_FIL1_OPEN MENU_FILE_ALT+102
|
||||||
|
#define M_FIL1_SAVE MENU_FILE_ALT+103
|
||||||
|
#define M_FIL1_SAVEAS MENU_FILE_ALT+104
|
||||||
|
#define M_FIL1_QUIT MENU_FILE_ALT+105
|
||||||
|
|
||||||
|
MENU MENU_FILE_ALT
|
||||||
|
ITEM M_FIL1_NEW "~Nuovo"
|
||||||
|
ITEM M_FIL1_OPEN "~Apri"
|
||||||
|
ITEM M_FIL1_SAVE "~Salva"
|
||||||
|
ITEM M_FIL1_SAVEAS "Salva ~con Nome"
|
||||||
|
ITEM M_FIL1_QUIT "~Fine"
|
||||||
|
SEPARATOR
|
||||||
|
ITEM M_FILE_ABOUT "~Informazioni"
|
||||||
|
|
||||||
|
MENU TASK_MENUBAR
|
||||||
|
SUBMENU MENU_FILE "~File"
|
||||||
|
SUBMENU BAR_ITEM(1) "~Dati"
|
||||||
|
SUBMENU BAR_ITEM(2) "~Testa"
|
||||||
|
SUBMENU BAR_ITEM(3) "~Corpo"
|
||||||
|
SUBMENU BAR_ITEM(4) "~Piede"
|
||||||
|
SUBMENU BAR_ITEM(5) "~Sfondo"
|
||||||
|
|
||||||
|
MENU BAR_ITEM(1)
|
||||||
|
ITEM MENU_ITEM(11) "~Relazione"
|
||||||
|
ITEM MENU_ITEM(12) "~Parametri"
|
||||||
|
ITEM MENU_ITEM(13) "Caratteri ~fincatura"
|
||||||
|
ITEM MENU_ITEM(14) "~Cambia profilo"
|
||||||
|
ITEM MENU_ITEM(15) "Imposta formato ~numeri"
|
||||||
|
ITEM MENU_ITEM(16) "Imposta formato ~date"
|
||||||
|
|
||||||
|
MENU BAR_ITEM(2)
|
||||||
|
ITEM MENU_ITEM(21) "~Normale"
|
||||||
|
|
||||||
|
MENU BAR_ITEM(3)
|
||||||
|
ITEM MENU_ITEM(31) "~Normale"
|
||||||
|
|
||||||
|
MENU BAR_ITEM(4)
|
||||||
|
ITEM MENU_ITEM(41) "~Normale"
|
||||||
|
|
||||||
|
MENU BAR_ITEM(5)
|
||||||
|
ITEM MENU_ITEM(51) "~Normale"
|
||||||
|
|
||||||
|
|
||||||
|
|
443
sc/sc3100.cpp
Executable file
443
sc/sc3100.cpp
Executable file
@ -0,0 +1,443 @@
|
|||||||
|
#ifndef __PRINTER_H
|
||||||
|
#include <printer.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "../ba/baformed.h"
|
||||||
|
#include "sc3.h"
|
||||||
|
#include "sc3100a.h"
|
||||||
|
#include "sc3100b.h"
|
||||||
|
#include "sc3100c.h"
|
||||||
|
#include "sc21pec.h"
|
||||||
|
|
||||||
|
class TForm_EC_editor : public TForm_editor
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
static bool cpy_handler(TMask_field& f, KEY k);
|
||||||
|
static bool font_handler(TMask_field& f, KEY k);
|
||||||
|
void load_fonts(TMask& m);
|
||||||
|
bool recalculate_positions(const char* name, int size);
|
||||||
|
virtual const char* selection_mask() const { return "sc3100a"; }
|
||||||
|
virtual bool ask_profile();
|
||||||
|
virtual bool edit(char s, pagetype p);
|
||||||
|
public:
|
||||||
|
};
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////
|
||||||
|
// serve per ricalcolare le posizioni //
|
||||||
|
/////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char name_1[80]; // Fontname old
|
||||||
|
char name_2[80]; // Fontname new
|
||||||
|
int size_1; // size (height) of old font
|
||||||
|
int size_2; // size (height) of new font
|
||||||
|
double ratio; // ratio (width_old_font/width_new_font)
|
||||||
|
} s_data;
|
||||||
|
|
||||||
|
BOOLEAN XVT_CALLCONV1 wprms (long data)
|
||||||
|
{
|
||||||
|
s_data* st =(s_data*)data;
|
||||||
|
WINDOW prwin = xvt_print_create_win(printer().get_printrcd(),"");
|
||||||
|
long width_old,width_new;
|
||||||
|
TString spc(100);
|
||||||
|
spc.fill('m');
|
||||||
|
xvt_set_font(prwin,st->name_1, XVT_FS_NONE, st->size_1);
|
||||||
|
width_old = xvt_dwin_get_text_width(prwin,(char*)(const char*)spc, 100);
|
||||||
|
xvt_set_font(prwin,st->name_2, XVT_FS_NONE, st->size_2);
|
||||||
|
width_new = xvt_dwin_get_text_width(prwin,(char*)(const char*)spc, 100);
|
||||||
|
st->ratio = (double)width_old / (double)width_new;
|
||||||
|
xvt_vobj_destroy(prwin);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TForm_EC_editor::cpy_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k==K_SPACE)
|
||||||
|
{
|
||||||
|
TLocalisamfile frm(LF_FORM),rfr(LF_RFORM);
|
||||||
|
TMask mm("sc3100b");
|
||||||
|
if (mm.run() == K_ENTER) // Prende in input il nome del profilo sorgente
|
||||||
|
{
|
||||||
|
long scode = mm.get_long(F_CCODES);
|
||||||
|
long dcode = mm.get_long(F_CCODED);
|
||||||
|
char slng = mm.get(F_CCODELS)[0];
|
||||||
|
char dlng = mm.get(F_CCODELD)[0];
|
||||||
|
TString form = mm.get(F_CBASE);
|
||||||
|
TString scod,dcod;
|
||||||
|
scod.format("%04ld%c",scode,slng); // Codice profilo sorgente
|
||||||
|
if (scode == 0) scod = "";
|
||||||
|
dcod.format("%04ld%c",dcode,dlng); // Codice profilo destinazione
|
||||||
|
frm.zero();
|
||||||
|
frm.put("TIPOPROF",form);frm.put("CODPROF",dcod);
|
||||||
|
if (frm.read()==NOERR)
|
||||||
|
{
|
||||||
|
error_box("Il profilo specificato come destinazione e' gia' esistente.");
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
//Effettua la copia dei record.
|
||||||
|
frm.zero(); frm.put("TIPOPROF",form); // Questo vale per tutti
|
||||||
|
frm.put("CODPROF",scod); //Profilo sorgente...
|
||||||
|
if (frm.read()==NOERR)
|
||||||
|
{
|
||||||
|
TLocalisamfile rfr_to_write(LF_RFORM);
|
||||||
|
frm.put("CODPROF",dcod); //Cambia il codice del profilo con quello di destinazione e lo scrive
|
||||||
|
frm.put("DESC",mm.get(F_CDESCD)); // Mette la descrizione
|
||||||
|
if (frm.write() != NOERR)
|
||||||
|
frm.rewrite();
|
||||||
|
if (frm.status() != NOERR)
|
||||||
|
{
|
||||||
|
error_box("Errore %d in scrittura testata profilo.",frm.status());
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
rfr.zero();rfr.put("TIPOPROF",form);
|
||||||
|
rfr.put("CODPROF",scod); //Profilo sorgente
|
||||||
|
rfr.read(_isgteq);
|
||||||
|
while ( rfr.get("CODPROF") == scod && rfr_to_write.good() && !rfr.eof())
|
||||||
|
{
|
||||||
|
rfr_to_write.curr() = rfr.curr();
|
||||||
|
rfr_to_write.put("CODPROF",dcod); // cambia il codice del profilo con quello di destinazione
|
||||||
|
if (rfr_to_write.write() != NOERR)
|
||||||
|
rfr_to_write.rewrite();
|
||||||
|
rfr.read(_isgreat);
|
||||||
|
}
|
||||||
|
if (rfr_to_write.status() != NOERR)
|
||||||
|
{
|
||||||
|
error_box("Errore %d in scrittura righe profilo.",rfr_to_write.status());
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
error_box("Non esiste il profilo sorgente specificato.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TForm_EC_editor::font_handler(TMask_field& f, KEY key)
|
||||||
|
{
|
||||||
|
if (key == K_SPACE)
|
||||||
|
{
|
||||||
|
main_app().begin_wait();
|
||||||
|
|
||||||
|
const char* family = f.get();
|
||||||
|
const int MAXSIZES = 16;
|
||||||
|
long sizes[MAXSIZES];
|
||||||
|
BOOLEAN scalable;
|
||||||
|
const int num_sizes = (int)xvt_fmap_get_family_sizes(printer().get_printrcd(),
|
||||||
|
(char*)family, sizes, &scalable, MAXSIZES);
|
||||||
|
|
||||||
|
TToken_string pn1(80), pn2(80);
|
||||||
|
if (scalable)
|
||||||
|
{
|
||||||
|
for (int i = 4; i <= 32; i++)
|
||||||
|
{
|
||||||
|
pn1.add(i);
|
||||||
|
pn2.add(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (num_sizes > 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < num_sizes; i++)
|
||||||
|
pn1.add(sizes[i]);
|
||||||
|
}
|
||||||
|
else pn1.add(printer().get_char_size());
|
||||||
|
pn2 = pn1;
|
||||||
|
}
|
||||||
|
TList_field& lst = (TList_field&)f.mask().field(F_SSIZE);
|
||||||
|
lst.replace_items(pn1, pn2);
|
||||||
|
lst.set(format("%d",printer().get_char_size()));
|
||||||
|
|
||||||
|
main_app().end_wait();
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TForm_EC_editor::load_fonts(TMask& m)
|
||||||
|
{
|
||||||
|
const int MAX_FAMILIES = 128;
|
||||||
|
char* family[MAX_FAMILIES];
|
||||||
|
const int num_families = (int)xvt_fmap_get_families(printer().get_printrcd(), family, MAX_FAMILIES);
|
||||||
|
bool font_found = FALSE;
|
||||||
|
TToken_string pn1(256), pn2(256);
|
||||||
|
|
||||||
|
for (int i = 0; i < num_families; i++)
|
||||||
|
{
|
||||||
|
pn1.add(family[i]);
|
||||||
|
pn2.add(family[i]);
|
||||||
|
if (!font_found)
|
||||||
|
if (form().fontname() == family[i]) font_found = TRUE;
|
||||||
|
xvt_mem_free(family[i]);
|
||||||
|
}
|
||||||
|
TList_field& lst = (TList_field&)m.field(F_SFONT);
|
||||||
|
lst.replace_items(pn1, pn2);
|
||||||
|
if (!font_found) warning_box("Il font %s non esiste per la stampante di default.",(const char*) form().fontname());
|
||||||
|
lst.set(form().fontname());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TForm_EC_editor::recalculate_positions(const char* name, int size)
|
||||||
|
{
|
||||||
|
if (!form().dirty()) form().set_dirty();
|
||||||
|
s_data prm;
|
||||||
|
prm.size_1=form().fontsize();
|
||||||
|
strcpy(prm.name_1,form().fontname());
|
||||||
|
prm.size_2=size;
|
||||||
|
strcpy(prm.name_2,name);
|
||||||
|
prm.ratio = 1.0;
|
||||||
|
// Next 3 lines may be changed
|
||||||
|
xvt_print_open();
|
||||||
|
xvt_print_start_thread (wprms, (long)&prm);
|
||||||
|
xvt_print_close();
|
||||||
|
|
||||||
|
form().fontname() = name;
|
||||||
|
form().fontsize() = size;
|
||||||
|
const char sechar[4] = { 'B', 'F', 'G', 'H' };
|
||||||
|
for (int sn = 0; sn < 4 ; sn++)
|
||||||
|
{
|
||||||
|
const char sc = sechar[sn];
|
||||||
|
for (pagetype pt = odd_page; pt <= last_page; pt = pagetype(pt+1))
|
||||||
|
{
|
||||||
|
TPrint_section* sec = form().exist(sc, pt);
|
||||||
|
if (sec != NULL)
|
||||||
|
{
|
||||||
|
sec->set_dirty();
|
||||||
|
for (word i = 0; i < sec->fields() ; i++)
|
||||||
|
{
|
||||||
|
TForm_item& fi = sec->field(i);
|
||||||
|
if (fi.x() > 0 && (prm.ratio != 1.0))
|
||||||
|
{
|
||||||
|
real x_pos;
|
||||||
|
x_pos = fi.x() * prm.ratio;
|
||||||
|
x_pos.round();
|
||||||
|
fi.x() = (short)x_pos.integer();
|
||||||
|
fi.set_dirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TForm_EC_editor::edit(char s, pagetype p)
|
||||||
|
{
|
||||||
|
TMask m("sc3100c");
|
||||||
|
TString80 caption;
|
||||||
|
bool dirty = FALSE;
|
||||||
|
bool other = FALSE;
|
||||||
|
KEY k;
|
||||||
|
|
||||||
|
if (extra())
|
||||||
|
{
|
||||||
|
if (s == 'R')
|
||||||
|
dirty = edit_relation();
|
||||||
|
else
|
||||||
|
if (s == 'D')
|
||||||
|
form_config();
|
||||||
|
else
|
||||||
|
if (s == 'K')
|
||||||
|
dirty = edit_fincatura();
|
||||||
|
else
|
||||||
|
if (s == 'J')
|
||||||
|
dirty = edit_formato_numero();
|
||||||
|
else
|
||||||
|
if (s == 'Y')
|
||||||
|
dirty = edit_formato_data();
|
||||||
|
else other = TRUE;
|
||||||
|
}
|
||||||
|
if (!extra() || (extra() && other))
|
||||||
|
{
|
||||||
|
// Carica i fonts disponibili nel listbox
|
||||||
|
load_fonts(m);
|
||||||
|
printer().set_char_size(form().fontsize()); // Questo settera' il carattere della stampante a quello del form
|
||||||
|
// Setta l'handler per il listbox dei fonts
|
||||||
|
m.set_handler(F_SFONT,font_handler);
|
||||||
|
// carica i dati relativi all'offset
|
||||||
|
m.set(F_SX, form().offset_x());
|
||||||
|
m.set(F_SY, form().offset_y());
|
||||||
|
TString ctp;
|
||||||
|
ctp << form().char_to_pos();
|
||||||
|
m.set(F_SCTP, ctp);
|
||||||
|
m.set(F_SIPX, form().ipx());
|
||||||
|
m.set(F_SIPY, form().ipy());
|
||||||
|
// carica i dati relativi ai flags (memorizzati in HEADER LAST)
|
||||||
|
if (form().exist('H', last_page))
|
||||||
|
{
|
||||||
|
TForm_item& flags = form().section('H',last_page).find_field(PEC_FLAGS);
|
||||||
|
TToken_string tt(flags.prompt());
|
||||||
|
if (tt.get(0) != NULL)
|
||||||
|
m.set(F_SVALUTA,tt.get(0));
|
||||||
|
if (tt.get(1) != NULL)
|
||||||
|
m.set(F_FINK,tt.get(1));
|
||||||
|
}
|
||||||
|
// carica i dati relativi allo sfondo (memorizzati in GRAPHICS ODD)
|
||||||
|
if (form().exist('G', odd_page))
|
||||||
|
{
|
||||||
|
TForm_item& pict = form().section('G',odd_page).find_field(PEC_PICTURE);
|
||||||
|
m.set(F_BACKGROUND,pict.prompt());
|
||||||
|
m.set(F_BACKWIDTH,pict.width());
|
||||||
|
m.set(F_BACKHEIGHT,pict.height());
|
||||||
|
m.set(F_BACKX,pict.x());
|
||||||
|
m.set(F_BACKY,pict.y());
|
||||||
|
}
|
||||||
|
while (TRUE)
|
||||||
|
{
|
||||||
|
bool local_dirty = FALSE;
|
||||||
|
k = m.run();
|
||||||
|
if ((m.field(F_SFONT).dirty() || m.field(F_SSIZE).dirty()))
|
||||||
|
{
|
||||||
|
TString ff(m.get(F_SFONT));
|
||||||
|
dirty = recalculate_positions(ff, m.get_int(F_SSIZE)); // Va bene dirty e non local_dirty
|
||||||
|
printer().set_char_size(m.get_int(F_SSIZE)); // Questo settera' il carattere della stampante a quello del form
|
||||||
|
}
|
||||||
|
if (k==K_F3) local_dirty = edit_fincatura();
|
||||||
|
else if (k==K_F4) local_dirty = edit_formato_data();
|
||||||
|
else if (k==K_F5) local_dirty = edit_formato_numero();
|
||||||
|
else if (k!= K_ESC && k!=K_ENTER)
|
||||||
|
{
|
||||||
|
if (k==K_F6) { s = 'H'; caption = "Testa"; }
|
||||||
|
else if (k==K_F7) { s = 'B'; caption = "Corpo"; }
|
||||||
|
else if (k==K_F8) { s = 'F'; caption = "Piede"; }
|
||||||
|
local_dirty = TRUE;
|
||||||
|
if (!form().exist(s, odd_page))
|
||||||
|
{
|
||||||
|
const KEY k = yesnocancel_box("La sezione %s non esiste:\n"
|
||||||
|
"si desidera generarla?",
|
||||||
|
(const char*)caption);
|
||||||
|
if (k == K_ESC)
|
||||||
|
local_dirty = FALSE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TPrint_section* sec = form().exist(s, odd_page, TRUE);
|
||||||
|
if (k == K_YES)
|
||||||
|
{
|
||||||
|
const TPrint_section* def = form().exist(s, odd_page);
|
||||||
|
if (def) *sec = *def;
|
||||||
|
else local_dirty = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (local_dirty)
|
||||||
|
local_dirty = form().section(s,odd_page).edit(caption);
|
||||||
|
}
|
||||||
|
if (local_dirty) dirty=TRUE;
|
||||||
|
if (k==K_ESC || k==K_ENTER)
|
||||||
|
break;
|
||||||
|
} // End of while
|
||||||
|
} // End if
|
||||||
|
|
||||||
|
if (m.dirty() != 0)
|
||||||
|
{
|
||||||
|
form().fontname() = m.get(F_SFONT);
|
||||||
|
form().fontsize() = m.get_int(F_SSIZE);
|
||||||
|
form().offset_x() = m.get_int(F_SX);
|
||||||
|
form().offset_y() = m.get_int(F_SY);
|
||||||
|
form().char_to_pos() = m.get(F_SCTP)[0];
|
||||||
|
form().ipx() = m.get_int(F_SIPX);
|
||||||
|
form().ipy() = m.get_int(F_SIPY);
|
||||||
|
if (form().exist('H', last_page))
|
||||||
|
{
|
||||||
|
TForm_item& flags = form().section('H',last_page).find_field(PEC_FLAGS);
|
||||||
|
TString s(m.get(F_SVALUTA));
|
||||||
|
s << "|" << m.get(F_FINK);
|
||||||
|
form().section('H',last_page).set_dirty();
|
||||||
|
flags.set_prompt(s);
|
||||||
|
flags.set_dirty();
|
||||||
|
}
|
||||||
|
if (form().exist('G', odd_page))
|
||||||
|
{
|
||||||
|
TForm_item& pict = form().section('G',odd_page).find_field(PEC_PICTURE);
|
||||||
|
pict.set_prompt(m.get(F_BACKGROUND));
|
||||||
|
pict.width() = m.get_int(F_BACKWIDTH);
|
||||||
|
pict.height() = m.get_int(F_BACKHEIGHT);
|
||||||
|
pict.x() = m.get_int(F_BACKX);
|
||||||
|
pict.y() = m.get_int(F_BACKY);
|
||||||
|
form().section('G',odd_page).set_dirty();
|
||||||
|
pict.set_dirty();
|
||||||
|
}
|
||||||
|
form().set_dirty();
|
||||||
|
if (!dirty) dirty = TRUE;
|
||||||
|
}
|
||||||
|
if ((dirty && k==K_ESC && yesno_box("Salvare le modifiche?")) || (dirty && k==K_ENTER))
|
||||||
|
{ // Se si preme annulla e sono state effettuate modifiche chiede la conferma per salvare
|
||||||
|
// Se invece si preme conferma e sono state effettuate modifiche non chiede la conferma
|
||||||
|
if (form().code() == "")
|
||||||
|
{
|
||||||
|
TFilename n(form().name()); n.ext("frm");
|
||||||
|
TFilename bak(n); bak.ext("bak");
|
||||||
|
rename(n, bak);
|
||||||
|
ofstream out(n);
|
||||||
|
form().print_on(out);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
form().write_profile();
|
||||||
|
}
|
||||||
|
if (!extra()) dispatch_e_menu(MENU_ITEM(14));
|
||||||
|
return dirty;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TForm_EC_editor::ask_profile()
|
||||||
|
{
|
||||||
|
KEY k;
|
||||||
|
mask().set_handler(DLG_COPY,cpy_handler);
|
||||||
|
while ((k = mask().run()) != K_QUIT)
|
||||||
|
{
|
||||||
|
TLocalisamfile frm(LF_FORM);
|
||||||
|
TLocalisamfile rfr(LF_RFORM);
|
||||||
|
TString fform = mask().get(F_BASE);
|
||||||
|
TString fdesc = mask().get(F_DESC);
|
||||||
|
long fcode = mask().get_long(F_CODE);
|
||||||
|
char flng = mask().get(F_CODEL)[0];
|
||||||
|
TString cod;
|
||||||
|
cod.format("%04ld%c",fcode,flng);
|
||||||
|
if (!extra() && fcode == 0 && flng=='\0')
|
||||||
|
{
|
||||||
|
error_box("Non e' possibile modificare il profilo standard.");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (k == K_ENTER)
|
||||||
|
{
|
||||||
|
check_form();
|
||||||
|
set_form(new TForm(fform, (fcode!=0) ? format("%04ld%c",fcode,flng) : "", extra() ? 2 :1, fdesc));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (k == K_DEL)
|
||||||
|
{
|
||||||
|
if (fcode != 0 &&
|
||||||
|
yesno_box("Confermare la cancellazione del profilo %04ld%c", fcode,flng))
|
||||||
|
{
|
||||||
|
frm.zero();
|
||||||
|
frm.put("TIPOPROF", fform);
|
||||||
|
if (fcode != 0 )
|
||||||
|
frm.put("CODPROF", cod);
|
||||||
|
if (frm.read() == NOERR)
|
||||||
|
frm.remove();
|
||||||
|
rfr.zero();
|
||||||
|
rfr.put("TIPOPROF", fform);
|
||||||
|
rfr.put("CODPROF", cod);
|
||||||
|
if (rfr.read(_isgteq) == NOERR)
|
||||||
|
{
|
||||||
|
for ( ; rfr.get("CODPROF") == cod && rfr.get("TIPOPROF") == fform; rfr.next())
|
||||||
|
rfr.remove();
|
||||||
|
}
|
||||||
|
mask().set(F_CODE,"");
|
||||||
|
mask().set(F_CODEL,"");
|
||||||
|
mask().set(F_DESC,"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (k == K_QUIT)
|
||||||
|
{
|
||||||
|
dispatch_e_menu(M_FILE_QUIT);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int sc3100(int argc, char** argv)
|
||||||
|
{
|
||||||
|
TForm_EC_editor a;
|
||||||
|
a.run(argc, argv, "Parametrizzazione profili EC");
|
||||||
|
return 0;
|
||||||
|
}
|
3
sc/sc3100a.h
Executable file
3
sc/sc3100a.h
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#define F_CODEL 501
|
||||||
|
#define DLG_COPY 601
|
||||||
|
|
84
sc/sc3100a.uml
Executable file
84
sc/sc3100a.uml
Executable file
@ -0,0 +1,84 @@
|
|||||||
|
#include "../ba/bafrm.h"
|
||||||
|
#include "sc3100a.h"
|
||||||
|
|
||||||
|
|
||||||
|
PAGE "Scelta profilo" -1 -1 75 6
|
||||||
|
|
||||||
|
STRING F_BASE 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "Profilo base "
|
||||||
|
HELP "Specificare il nome del profilo di base utilizzato"
|
||||||
|
USE LF_FORM SELECT (TIPOPROF==BASE_EC_PROFILE)
|
||||||
|
INPUT TIPOPROF F_BASE
|
||||||
|
INPUT CODPROF ""
|
||||||
|
FLAGS "D"
|
||||||
|
DISPLAY "Profilo base" TIPOPROF
|
||||||
|
DISPLAY "Descrizione@50" DESC
|
||||||
|
OUTPUT F_BASE TIPOPROF
|
||||||
|
OUTPUT F_DESC DESC
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CODE 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 2 "Codice profilo "
|
||||||
|
FLAGS "Z"
|
||||||
|
HELP "Codice del profilo"
|
||||||
|
USE LF_FORM SELECT (TIPOPROF==BASE_EC_PROFILE)
|
||||||
|
JOIN %LNG TO LF_FORM ALIAS 200 INTO CODTAB==CODPROF[5,5]
|
||||||
|
INPUT TIPOPROF F_BASE
|
||||||
|
INPUT CODPROF[1,4] F_CODE
|
||||||
|
INPUT CODPROF[5,5] F_CODEL
|
||||||
|
DISPLAY "Profilo base" TIPOPROF
|
||||||
|
DISPLAY "Codice" CODPROF[1,4]
|
||||||
|
DISPLAY "Lingua" CODPROF[5,5]
|
||||||
|
DISPLAY "Descrizione@50" DESC
|
||||||
|
DISPLAY "Desc. Lingua@50" -200->S0
|
||||||
|
OUTPUT F_BASE TIPOPROF
|
||||||
|
OUTPUT F_CODE CODPROF[1,4]
|
||||||
|
OUTPUT F_CODEL CODPROF[5,5]
|
||||||
|
OUTPUT F_DESC DESC
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CODEL 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 2 "Codice lingua "
|
||||||
|
HELP "Codice lingua del profilo"
|
||||||
|
USE %LNG
|
||||||
|
INPUT CODTAB F_CODEL
|
||||||
|
DISPLAY "Codice lingua" CODTAB
|
||||||
|
DISPLAY "Decrizione@50" S0
|
||||||
|
OUTPUT F_CODEL CODTAB
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESC 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Descrizione "
|
||||||
|
HELP "Descrizione profilo utente"
|
||||||
|
COPY ALL F_CODE
|
||||||
|
VALIDATE NOT_EMPTY_FUNC
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -14 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_DELREC 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -24 -1 ""
|
||||||
|
MESSAGE EXIT,K_DEL
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_COPY 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -34 -1 "~Copia da..."
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 8 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -44 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
11
sc/sc3100b.h
Executable file
11
sc/sc3100b.h
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
// maschera scelta form da copiare
|
||||||
|
#define F_CBASE 401
|
||||||
|
#define F_CCODES 402
|
||||||
|
#define F_CDESCS 403
|
||||||
|
#define F_CCODELS 404
|
||||||
|
#define F_CCODED 405
|
||||||
|
#define F_CDESCD 406
|
||||||
|
#define F_CCODELD 407
|
||||||
|
|
||||||
|
// nome base profilo estratto conto
|
||||||
|
#define BASE_EC_PROFILE "PEC"
|
104
sc/sc3100b.uml
Executable file
104
sc/sc3100b.uml
Executable file
@ -0,0 +1,104 @@
|
|||||||
|
#include "sc3100b.h"
|
||||||
|
|
||||||
|
|
||||||
|
PAGE "Scelta profilo da copiare" -1 -1 75 12
|
||||||
|
|
||||||
|
STRING F_CBASE 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 1 "Profilo base "
|
||||||
|
FLAGS "D"
|
||||||
|
HELP "Specificare il nome del profilo di base utilizzato"
|
||||||
|
USE LF_FORM SELECT (TIPOPROF==BASE_EC_PROFILE)
|
||||||
|
INPUT TIPOPROF F_CBASE
|
||||||
|
INPUT CODPROF ""
|
||||||
|
DISPLAY "Profilo base" TIPOPROF
|
||||||
|
DISPLAY "Descrizione@50" DESC
|
||||||
|
OUTPUT F_CBASE TIPOPROF
|
||||||
|
OUTPUT F_CDESCS DESCS
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 73 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Profilo sorgente"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CCODES 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Codice profilo "
|
||||||
|
FLAGS "Z"
|
||||||
|
HELP "Codice del profilo"
|
||||||
|
USE LF_FORM SELECT (TIPOPROF==BASE_EC_PROFILE)
|
||||||
|
JOIN %LNG TO LF_FORM ALIAS 200 INTO CODTAB==CODPROF[5,5]
|
||||||
|
INPUT TIPOPROF F_CBASE
|
||||||
|
INPUT CODPROF[1,4] F_CCODES
|
||||||
|
INPUT CODPROF[5,5] F_CCODELS
|
||||||
|
DISPLAY "Profilo base" TIPOPROF
|
||||||
|
DISPLAY "Codice" CODPROF[1,4]
|
||||||
|
DISPLAY "Lingua" CODPROF[5,5]
|
||||||
|
DISPLAY "Descrizione@50" DESC
|
||||||
|
DISPLAY "Desc. Lingua@50" -200->S0
|
||||||
|
OUTPUT F_CBASE TIPOPROF
|
||||||
|
OUTPUT F_CCODES CODPROF[1,4]
|
||||||
|
OUTPUT F_CCODELS CODPROF[5,5]
|
||||||
|
OUTPUT F_CDESCS DESC
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CCODELS 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 3 "Codice lingua "
|
||||||
|
HELP "Codice lingua del profilo"
|
||||||
|
USE %LNG
|
||||||
|
INPUT CODTAB F_CCODELS
|
||||||
|
DISPLAY "Codice lingua" CODTAB
|
||||||
|
DISPLAY "Decrizione@50" S0
|
||||||
|
OUTPUT F_CCODELS CODTAB
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CDESCS 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 4 "Descrizione "
|
||||||
|
HELP "Descrizione profilo utente"
|
||||||
|
COPY ALL F_CCODES
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 73 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Profilo destinazione"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CCODED 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Codice profilo "
|
||||||
|
FLAGS "Z"
|
||||||
|
VALIDATE NOT_EMPTY_FUNC
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CCODELD 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 7 "Codice lingua "
|
||||||
|
COPY USE F_CCODELS
|
||||||
|
INPUT CODTAB F_CCODELD
|
||||||
|
COPY DISPLAY F_CCODELS
|
||||||
|
OUTPUT F_CCODELD CODTAB
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CDESCD 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 8 "Descrizione "
|
||||||
|
VALIDATE NOT_EMPTY_FUNC
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 8 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
22
sc/sc3100c.h
Executable file
22
sc/sc3100c.h
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#define F_SFONT 101
|
||||||
|
#define F_SSIZE 102
|
||||||
|
#define F_SX 103
|
||||||
|
#define F_SY 104
|
||||||
|
#define F_SVALUTA 105
|
||||||
|
#define F_FINK 106
|
||||||
|
#define F_BACKGROUND 107
|
||||||
|
#define F_BACKWIDTH 108
|
||||||
|
#define F_BACKHEIGHT 109
|
||||||
|
#define F_BACKX 110
|
||||||
|
#define F_BACKY 111
|
||||||
|
#define F_SCTP 112
|
||||||
|
#define F_SIPX 113
|
||||||
|
#define F_SIPY 114
|
||||||
|
#define DLG_FINK 301
|
||||||
|
#define DLG_DATE 302
|
||||||
|
#define DLG_NUM 303
|
||||||
|
#define DLG_HEADER 304
|
||||||
|
#define DLG_BODY 305
|
||||||
|
#define DLG_FOOTER 306
|
||||||
|
|
||||||
|
|
155
sc/sc3100c.uml
Executable file
155
sc/sc3100c.uml
Executable file
@ -0,0 +1,155 @@
|
|||||||
|
#include "sc3100c.h"
|
||||||
|
|
||||||
|
PAGE "SELEZIONE DATI DI STAMPA" -1 -1 78 14
|
||||||
|
|
||||||
|
LIST F_SFONT 2 16
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Font "
|
||||||
|
ITEM "Courier New|Courier New"
|
||||||
|
HELP "Font di stampa su video o stampante"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_SSIZE 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Dimensione "
|
||||||
|
ITEM "12|12"
|
||||||
|
HELP "Dimensioni del carattere di stampa"
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 19 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 1 "Spostamento"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_SX 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 32 2 "Orizzontale "
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_SY 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 32 3 "Verticale "
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 22 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 1 "Posizionamento"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_SCTP 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 55 2 "Carattere "
|
||||||
|
HELP "Carattere da utilizzare per il posizionamento del modulo"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_SIPX 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 55 3 "Coordinate "
|
||||||
|
HELP "Coordinata X di posizionamento iniziale"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_SIPY 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 71 3 ""
|
||||||
|
HELP "Coordinata Y di posizionamento"
|
||||||
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_SVALUTA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 " E.C. in valuta"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST F_FINK 2 10
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Fincatura "
|
||||||
|
ITEM "0|Nessuna" MESSAGE CLEAR,5@
|
||||||
|
ITEM "1|Testo" MESSAGE CLEAR,5@
|
||||||
|
ITEM "2|Grafica" MESSAGE ENABLE,5@
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 45 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 31 5 "Sfondo"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_BACKGROUND 50 30
|
||||||
|
BEGIN
|
||||||
|
PROMPT 32 6 "Nome file "
|
||||||
|
GROUP 5
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_BACKX 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 32 7 "Posizione X "
|
||||||
|
GROUP 5
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_BACKY 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 63 7 "Y "
|
||||||
|
GROUP 5
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_BACKWIDTH 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 32 8 "Larghezza "
|
||||||
|
GROUP 5
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_BACKHEIGHT 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 63 8 "Altezza "
|
||||||
|
GROUP 5
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_FINK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -14 10 "~Fincatura"
|
||||||
|
MESSAGE EXIT,K_F3
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_DATE 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -24 10 "~Date"
|
||||||
|
MESSAGE EXIT,K_F4
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_NUM 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -34 10 "~Numeri"
|
||||||
|
MESSAGE EXIT,K_F5
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -44 10 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_HEADER 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -14 -1 "~Testata"
|
||||||
|
MESSAGE EXIT,K_F6
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_BODY 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -24 -1 "~Corpo"
|
||||||
|
MESSAGE EXIT,K_F7
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_FOOTER 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -34 -1 "~Piede"
|
||||||
|
MESSAGE EXIT,K_F8
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -44 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user