diff --git a/m770/770.cpp b/m770/770.cpp new file mode 100755 index 000000000..1ed577ac2 --- /dev/null +++ b/m770/770.cpp @@ -0,0 +1,31 @@ +#include +#include +#include "770.h" + +#define usage "Error - usage : %s -{0|1|2|3|4|5} [params]" + +int main(int argc,char** argv) +{ + const int n = (argc > 1) ? atoi(argv[1]+1) : -1; + switch(n) + { + case 0: + SchedaPerc(argc,argv); break; + case 1: + collega_vers_rit(argc,argv); break; + case 2: + // cg1300(argc,argv); break; + case 3: + // cg1400(argc,argv); break; + case 4: + // cg1500(argc,argv); break; + case 5: + // cg1600(argc,argv); break; + case 6: + // cg1700(argc,argv); break; + default: + error_box(usage, argv[0]); break; + } + + return n < 0; +} diff --git a/m770/770.h b/m770/770.h new file mode 100755 index 000000000..a56fe5ee3 --- /dev/null +++ b/m770/770.h @@ -0,0 +1,19 @@ +#ifndef __770_H +#define __770_H + +#ifdef MAIN +#define extern +#endif + +#ifdef MAIN +#undef extern +#endif + +#ifndef __STRINGS_H +#include +#endif + +int SchedaPerc(int argc, char* argv[]); +int collega_vers_rit(int argc, char* argv[]); + +#endif // __770_H diff --git a/m770/770.mak b/m770/770.mak new file mode 100755 index 000000000..ccf6b5b02 --- /dev/null +++ b/m770/770.mak @@ -0,0 +1,436 @@ +# Microsoft Visual C++ generated build script - Do not modify + +PROJ = 770 +DEBUG = 1 +PROGTYPE = 0 +CALLER = +ARGS = -0 -u prassi +DLLS = +D_RCDEFINES = /d_DEBUG +R_RCDEFINES = /dNDEBUG +ORIGIN = MSVC +ORIGIN_VER = 1.00 +PROJPATH = F:\NIK\P.DUE\77\ +USEMFC = 0 +CC = cl +CPP = cl +CXX = cl +CCREATEPCHFLAG = +CPPCREATEPCHFLAG = +CUSEPCHFLAG = +CPPUSEPCHFLAG = +FIRSTC = +FIRSTCPP = 770.CPP +RC = rc +CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"770.PDB" +CFLAGS_R_WEXE = /nologo /Gs /Gy /W3 /Gf /AL /Gt65000 /O1 /D "XVT_OS"="400" /FR /GA +LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO +LFLAGS_R_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE +LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib +LIBS_R_WEXE = oldnames libw llibcew toolhelp.lib +RCFLAGS = /nologo +RESFLAGS = /nologo /k +RUNFLAGS = +DEFFILE = ..\WIN\LIB\UNIVERSL.DEF +OBJS_EXT = +LIBS_EXT = ..\WIN\LIB\WINDUED.LIB ..\WIN\LIB\WINGFM.LIB ..\WIN\LIB\WINUNO.LIB ..\WIN\LIB\XVT400.LIB \ + ..\WIN\LIB\HLAPI_CW.LIB +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS_D_WEXE) +LFLAGS = $(LFLAGS_D_WEXE) +LIBS = $(LIBS_D_WEXE) +MAPFILE = nul +RCDEFINES = $(D_RCDEFINES) +!else +CFLAGS = $(CFLAGS_R_WEXE) +LFLAGS = $(LFLAGS_R_WEXE) +LIBS = $(LIBS_R_WEXE) +MAPFILE = nul +RCDEFINES = $(R_RCDEFINES) +!endif +!if [if exist MSVC.BND del MSVC.BND] +!endif +SBRS = 770.SBR \ + 770100.SBR \ + 770101.SBR \ + 770102.SBR \ + 770200.SBR + + +WINDUED_DEP = + +WINGFM_DEP = + +WINUNO_DEP = + +XVT400_DEP = + +HLAPI_CW_DEP = + +770_DEP = f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\checks.h \ + f:\p.due\77\770.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h + + +770100_DEP = f:\p.due\include\relapp.h \ + f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\date.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\msksheet.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\mailbox.h \ + f:\p.due\include\scperc.h \ + f:\p.due\include\rver.h \ + f:\p.due\include\rpag.h \ + f:\p.due\include\perc.h \ + f:\p.due\77\770101.h \ + f:\p.due\77\770102.h \ + f:\p.due\include\sheet.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\77\770100a.h \ + f:\p.due\77\770.h \ + f:\p.due\77\77lib.h + + +770101_DEP = f:\p.due\include\tabutil.h \ + f:\p.due\include\isam.h \ + f:\p.due\77\770101.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\perc.h \ + f:\p.due\include\scperc.h \ + f:\p.due\include\rver.h \ + f:\p.due\include\rpag.h \ + f:\p.due\cg/cg2103.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\stdtypes.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\date.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\cg/\conto.h + + +770102_DEP = f:\p.due\77\770100a.h \ + f:\p.due\77\770101.h \ + f:\p.due\include\relation.h \ + f:\p.due\77\770102.h \ + f:\p.due\include\sheet.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\window.h \ + f:\p.due\include\msksheet.h \ + f:\p.due\include\config.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\relapp.h + + +770200_DEP = f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\date.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\progind.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\urldefid.h \ + f:\p.due\include\defmask.h \ + f:\p.due\include\sheet.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\scanner.h \ + f:\p.due\77\770200a.h + + +770_RCDEP = + +all: $(PROJ).EXE $(PROJ).BSC + +770.OBJ: 770.CPP $(770_DEP) + $(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c 770.CPP + +770100.OBJ: 770100.CPP $(770100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 770100.CPP + +770101.OBJ: 770101.CPP $(770101_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 770101.CPP + +770102.OBJ: 770102.CPP $(770102_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 770102.CPP + +770200.OBJ: 770200.CPP $(770200_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 770200.CPP + +770.RES: C:\PRASSI\770.RC $(770_RCDEP) + $(RC) $(RCFLAGS) $(RCDEFINES) -r -FoF:\NIK\P.DUE\77\770.RES C:\PRASSI\770.RC + + +$(PROJ).EXE:: 770.RES + +$(PROJ).EXE:: 770.OBJ 770100.OBJ 770101.OBJ 770102.OBJ 770200.OBJ $(OBJS_EXT) $(DEFFILE) + echo >NUL @<<$(PROJ).CRF +770.OBJ + +770100.OBJ + +770101.OBJ + +770102.OBJ + +770200.OBJ + +$(OBJS_EXT) +$(PROJ).EXE +$(MAPFILE) +c:\vc\lib\+ +f:\p.due\win\lib\+ +f:\xvt.403\win_x86\ptk\lib\+ +f:\xvt.403\win_x86\xpo\lib\+ +..\WIN\LIB\WINDUED.LIB+ +..\WIN\LIB\WINGFM.LIB+ +..\WIN\LIB\WINUNO.LIB+ +..\WIN\LIB\XVT400.LIB+ +..\WIN\LIB\HLAPI_CW.LIB+ +$(LIBS) +$(DEFFILE); +<< + link $(LFLAGS) @$(PROJ).CRF + $(RC) $(RESFLAGS) 770.RES $@ + @copy $(PROJ).CRF MSVC.BND + +$(PROJ).EXE:: 770.RES + if not exist MSVC.BND $(RC) $(RESFLAGS) 770.RES $@ + +run: $(PROJ).EXE + $(PROJ) $(RUNFLAGS) + + +$(PROJ).BSC: $(SBRS) + bscmake @<< +/o$@ $(SBRS) +<< diff --git a/m770/770.rc b/m770/770.rc new file mode 100755 index 000000000..ee30a564b --- /dev/null +++ b/m770/770.rc @@ -0,0 +1,1560 @@ +/* +This file was generated by CURL (4.01) a product of: + XVT Software Inc. + Box 18750 + Boulder, CO 80308 USA + (303) 443-4223 + FAX: (303) 443-0969 +Generated on Wed Jun 05 04:58:16 1996 + + */ + +#include + + +/* + Application icon is required; crosshair cursor is a standard XVT cursor + shape that's not predefined by Windows +*/ +9012 ICON DISCARDABLE f:\xvt.403\win_x86\ptk\lib\PRASSI.ico +2 CURSOR DISCARDABLE f:\xvt.403\win_x86\ptk\lib\croshair.cur +5 CURSOR DISCARDABLE f:\xvt.403\win_x86\ptk\lib\objhelp.cur + +/* + MDI Windows menu +*/ +xvt_WindowMenu MENU +BEGIN + POPUP "&Window" + BEGIN + MENUITEM "&Tile", ((0x8000) + 1) + MENUITEM "&Cascade", ((0x8000) + 2) + MENUITEM "&Arrange Icons", ((0x8000) + 3) + END +END + +/* + Dialog box for xvt_dm_post_ask() +*/ +9051 DIALOG LOADONCALL MOVEABLE DISCARDABLE 58, 19, 205, 73 +STYLE WS_POPUP | WS_VISIBLE | WS_SYSMENU | WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | DS_MODALFRAME +CAPTION "PRASSI" +BEGIN + CONTROL "", 1, "button", BS_DEFPUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 160, 10, 40, 14 + CONTROL "", 4, "button", BS_PUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 160, 30, 40, 14 + CONTROL "", 2, "button", BS_PUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 160, 50, 40, 14 + CONTROL "", 5, "static", SS_LEFT | WS_CHILD | SS_NOPREFIX, 35, 10, 115, 55 + ICON 32514, 9001, 10, 10, 0, 0 +END + +/* + Dialog box for xvt_dm_post_error() +*/ +9052 DIALOG LOADONCALL MOVEABLE DISCARDABLE 58, 19, 205, 73 +STYLE WS_POPUP | WS_VISIBLE | WS_SYSMENU | WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | DS_MODALFRAME +CAPTION "PRASSI" +BEGIN + CONTROL "", 1, "button", BS_DEFPUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 160, 10, 40, 14 + CONTROL "", 2, "button", BS_PUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 160, 30, 40, 14 + CONTROL "", 4, "button", BS_PUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 160, 50, 40, 14 + CONTROL "", 5, "static", SS_LEFT | WS_CHILD | SS_NOPREFIX, 35, 10, 115, 55 + ICON 32515, 9001, 10, 10, 0, 0 +END + +/* + Dialog box for xvt_dm_post_note() +*/ +9053 DIALOG LOADONCALL MOVEABLE DISCARDABLE 58, 19, 205, 73 +STYLE WS_POPUP | WS_VISIBLE | WS_SYSMENU | WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | DS_MODALFRAME +CAPTION "PRASSI" +BEGIN + CONTROL "", 1, "button", BS_DEFPUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 160, 10, 40, 14 + CONTROL "", 2, "button", BS_PUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 160, 30, 40, 14 + CONTROL "", 4, "button", BS_PUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 160, 50, 40, 14 + CONTROL "", 5, "static", SS_LEFT | WS_CHILD | SS_NOPREFIX, 35, 10, 115, 55 + ICON 32516, 9001, 10, 10, 0, 0 +END + +/* + Dialog box for xvt_dm_post_str_response(). +*/ +9059 DIALOG LOADONCALL MOVEABLE DISCARDABLE 12, 19, 222, 78 +STYLE WS_POPUP | WS_VISIBLE | WS_SYSMENU | WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | DS_MODALFRAME +CAPTION "PRASSI" +BEGIN + CONTROL "", 5, "edit", ES_LEFT | WS_BORDER | WS_CHILD | WS_GROUP | WS_TABSTOP|ES_AUTOHSCROLL, 5, 60, 210, 12 + CONTROL "OK", 1, "button", BS_DEFPUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 185, 5, 30, 14 + CONTROL "Cancel", 2, "button", BS_PUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 185, 25, 30, 14 + CONTROL "", 4, "static", SS_LEFT | WS_CHILD | SS_NOPREFIX, 5, 5, 170, 46 +END + +/* + Dialog box for printing cancellation +*/ +9055 DIALOG LOADONCALL MOVEABLE DISCARDABLE 30,40,90, 76 +STYLE WS_POPUP | WS_VISIBLE | WS_SYSMENU | WS_CAPTION | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | DS_MODALFRAME +CAPTION "PRASSI" +BEGIN + CONTROL "Cancel", 2, "button", BS_DEFPUSHBUTTON | WS_CHILD | WS_GROUP | WS_TABSTOP, 29, 56, 32, 14 + CONTROL "Printing", -1, "static", SS_CENTER | WS_CHILD | SS_NOPREFIX, 0, 8, 90, 8 + CONTROL "", 4, "static", SS_CENTER | WS_CHILD | SS_NOPREFIX, 0, 18, 90, 16 + CONTROL "", 5, "static", SS_CENTER | WS_CHILD | SS_NOPREFIX, 0, 40, 90, 8 +END + +8001 CURSOR DISCARDABLE f:/p.due/bmp/resize.cur +8002 CURSOR DISCARDABLE f:/p.due/bmp/hand.cur +8003 CORSOR DISCARDABLE f:/p.due/bmp/vresize.cur +1026 ICON DISCARDABLE f:/p.due/bmp/combo.ico +109 ICON DISCARDABLE f:/p.due/bmp/search.ico +110 ICON DISCARDABLE f:/p.due/bmp/checkon.ico +111 ICON DISCARDABLE f:/p.due/bmp/checkoff.ico +10000 MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "Scelta &Ditta...", 32001 + MENUITEM "Impostazione &Parametri...", 32006 + MENUITEM SEPARATOR + MENUITEM "&Impostazione Stampante...", 32007 + MENUITEM "&Stampa", 32008, GRAYED + MENUITEM SEPARATOR + MENUITEM "I&nformazioni", 32011 + MENUITEM "&Fine", 32009 + END +END + +7000 MENU +BEGIN + POPUP "&Visualizzazione" + BEGIN + MENUITEM "Interrompi ESC", 32032 + MENUITEM "Colle&ga... Ctrl+G", 32027, GRAYED + MENUITEM "&Esporta... Ctrl+E", 32029 + MENUITEM "&Stampa... Ctrl+S", 32031, GRAYED + MENUITEM SEPARATOR + MENUITEM "Mostra &righelli", 32045 + MENUITEM "Mostra &bottoni", 32046 + MENUITEM "Ri&disegna", 32026 + MENUITEM SEPARATOR + MENUITEM "Chiudi ESC+ESC", 32035 + END + POPUP "&Edit" + BEGIN + MENUITEM "&Copia", 32028, GRAYED + MENUITEM "&Annulla", 32030, GRAYED + MENUITEM SEPARATOR + MENUITEM "Cerca... F7", 32033 + MENUITEM "Cerca il prossimo F8", 32034, GRAYED + END +END + +10001 MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "Scelta &Ditta...", 32001 + MENUITEM "Impostazione &Parametri...", 32006 + MENUITEM SEPARATOR + MENUITEM "&Impostazione Stampante...", 32007 + MENUITEM "&Stampa", 32008, GRAYED + MENUITEM SEPARATOR + MENUITEM "I&nformazioni", 32011 + MENUITEM "&Fine", 32009 + END +END + +9001 ACCELERATORS +BEGIN + "F", 5000, VIRTKEY, ALT +END + +STRINGTABLE DISCARDABLE +BEGIN + 30001, "OK" + 30002, "Cancel" + 30003, "Help" + 30004, "Can't show the about box" + 30005, "Cancelling..." + 30006, "Initializing" + 30007, "(Untitled)" + 30008, "(Starting Document)" + 30009, "(Started Document)" + 30010, "(Ending Document)" + 30011, "Page setup dialog not implemented." + 30012, "(Starting Page %d)" + 30013, "(Finishing Page %d)" + 30014, "Error" + 30015, "Replace" + 30016, "Replace existing %s?" + 30017, "DEBUG" + 30018, "Alert (Cancel exits program)" + 30019, "System Error" + 30020, "Can't access font %d" + 30021, "Picture still locked." + 30023, "(Opening Printer)" + 30024, "Can't draw picture" + 30022, "Cannot Print" + 30025, "Can't get printer information" + 30026, "Alert" + 30401, "Not Enough Memory to Print" + 30402, "Not Enough Disk Space to Print" + 30403, "Unimplemented printer escape" + 30027, "Arial" + 30028, "System" + 30029, "Arial" + 30030, "Courier New" + 30031, "Times New Roman" + 30032, "Courier New" + 30399, "PRASSI" + 40000, "HLP" +END + +10000 RCDATA +BEGIN + 0x3931, 0x3130, 0x2039, 0x3031, 0x3030, 0x2031, 0x3135, 0x2032 +END + +10001 RCDATA +BEGIN + 0xadde, 0xdec0, 0x0400, 0x2800, 0x0000, 0x6b48, 0x0000, 0x0000, + 0x1300, 0x3a66, 0x702f, 0x642e, 0x6575, 0x622f, 0x706d, 0x6f2f, + 0x2e6b, 0x6d62, 0x0070, 0x0000, 0x0200, 0x42fe, 0xfe4d, 0x0002, + 0x0000, 0x0000, 0x7600, 0x0000, 0x2800, 0x0000, 0x4800, 0x0000, + 0x1200, 0x0000, 0x0100, 0x0400, 0x0000, 0x0000, 0x8800, 0x0002, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, + 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x0080, 0x8000, 0x8080, + 0xc000, 0xc0c0, 0x0000, 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, + 0xff00, 0x0000, 0xff00, 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, + 0x8800, 0x8888, 0x2888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x2f82, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x2f22, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8288, + 0x2222, 0x88f8, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x2288, 0x2222, 0x88f8, 0x8888, 0xff8f, 0x88f8, 0xffff, + 0xff88, 0xff88, 0xf88f, 0xff88, 0x88ff, 0x88ff, 0xf88f, 0xf88f, + 0xf88f, 0xf88f, 0x88f8, 0x2282, 0x2222, 0x882f, 0x8888, 0x00f0, + 0x8f0f, 0x0000, 0x00f8, 0x0088, 0x0880, 0x008f, 0xf800, 0x8800, + 0x0880, 0x0880, 0x0880, 0x0ff0, 0x8808, 0x2222, 0x2222, 0x882f, + 0x8f88, 0x8800, 0x8000, 0x7007, 0x0008, 0x0088, 0x0880, 0x0780, + 0x0870, 0x8800, 0x0880, 0x0880, 0x0880, 0x7000, 0x8208, 0x2222, + 0x7222, 0xf822, 0x8088, 0x8808, 0x8088, 0x8008, 0x0008, 0x0088, + 0x0880, 0x0f80, 0x78f7, 0x8800, 0x0880, 0x0880, 0x0880, 0xf000, + 0x2208, 0x2222, 0x7227, 0xf822, 0x8088, 0x8808, 0x8088, 0x8008, + 0x0008, 0x0088, 0x0880, 0x0080, 0x0800, 0x8f00, 0x0880, 0x0880, + 0x0880, 0x0080, 0x7208, 0x2222, 0x7278, 0x2f22, 0x8088, 0x8808, + 0x8088, 0xf00f, 0x0008, 0x00ff, 0x0ff0, 0x0880, 0x0880, 0xff00 +END + +10002 RCDATA +BEGIN + 0x0f80, 0x0ff0, 0x08f0, 0x8008, 0x8708, 0x2722, 0x7288, 0x2f22, + 0x8088, 0x880f, 0x87ff, 0x0000, 0x0078, 0x0700, 0x0000, 0x0087, + 0x7800, 0x0000, 0x0080, 0x7000, 0x7800, 0x0770, 0x8878, 0x7872, + 0x8788, 0x2222, 0x87f8, 0xff00, 0x8800, 0x7777, 0x7788, 0x7877, + 0x0f70, 0x77f8, 0x8877, 0x7777, 0x7787, 0x8777, 0x8877, 0x7787, + 0x8888, 0x8887, 0x8788, 0x2222, 0x88f8, 0x0070, 0x8807, 0x8888, + 0x8888, 0x8888, 0x0087, 0x8808, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x2272, 0x882f, 0x7787, + 0x8878, 0x8888, 0x8888, 0x8888, 0x7788, 0x8878, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x2272, + 0x882f, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x2287, 0xf822, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x2287, 0xf822, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x7788, 0x7877, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x0088, 0x0000, 0x0000, 0x6617, + 0x2f3a, 0x2e70, 0x7564, 0x2f65, 0x6d62, 0x2f70, 0x6163, 0x636e, + 0x6c65, 0x622e, 0x706d, 0x0000, 0x0000, 0xb602, 0x4d42, 0x02b6, + 0x0000, 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, 0x003c, + 0x0000, 0x0012, 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, 0x0240, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, 0x8000, + 0x0080, 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, 0xc0c0, + 0x00c0, 0x8080, 0x0080, 0x0000, 0x00ff, 0xff00, 0x0000, 0xff00, + 0x00ff, 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, 0xffff, + 0x00ff, 0xff77, 0x7777, 0x7777, 0xff77, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0000, 0x9978, 0x77f7, 0x7777, 0x997f, 0x77f7, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777 +END + +10003 RCDATA +BEGIN + 0x0000, 0x9989, 0x779f, 0x7777, 0x99f9, 0x779f, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0000, 0x9989, 0xf799, 0x7f77, 0x9999, 0x7790, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0000, 0x9970, 0x9f99, 0xf977, 0x9999, 0x7707, 0x77ff, 0xf77f, + 0x77ff, 0x7fff, 0x7ff7, 0x7ff7, 0xffff, 0xf77f, 0x77ff, 0x7fff, + 0x0000, 0x0977, 0x9999, 0x99ff, 0x9099, 0x7077, 0x770f, 0xf000, + 0x700f, 0x000f, 0x00f7, 0x00f7, 0x0f00, 0xf000, 0x700f, 0x0f07, + 0x0000, 0x7077, 0x9999, 0x9999, 0x0799, 0x7077, 0xff0f, 0xf000, + 0x700f, 0x000f, 0x00f7, 0x0ff0, 0x0f70, 0xf000, 0x000f, 0x0ff0, + 0x0000, 0x7777, 0x9909, 0x9999, 0x7790, 0x7077, 0x0000, 0x7000, + 0x700f, 0x000f, 0x00f7, 0x0ff0, 0x0f70, 0xf000, 0x000f, 0x0ff0, + 0x0000, 0x7777, 0x9970, 0x9999, 0x7707, 0x7777, 0xf000, 0x7007, + 0x700f, 0x000f, 0x00f7, 0x0ff0, 0x0f70, 0xf000, 0x700f, 0x0f00, + 0x0000, 0x7777, 0x997f, 0x9999, 0x77f7, 0x7777, 0xf000, 0x7007, + 0xf00f, 0x0007, 0x00ff, 0x0f70, 0x0f70, 0xf000, 0x070f, 0x07f0, + 0x0000, 0x7777, 0x99f9, 0x9999, 0x779f, 0x7777, 0xf000, 0x7007, + 0x0000, 0x0077, 0x0700, 0x0770, 0x0770, 0xf000, 0x700f, 0x7700, + 0x0000, 0x7f77, 0x9999, 0x9999, 0xf799, 0x7777, 0x0070, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0xf000, 0x770f, 0x7777, + 0x0000, 0xf977, 0x9999, 0x9900, 0x9f99, 0x7777, 0x0070, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7000, 0x7707, 0x7777, + 0x0000, 0x997f, 0x9099, 0x0977, 0x9999, 0x77f7, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0000, 0x9989, 0x0799, 0x7077, 0x9999, 0x779f, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0000, 0x9989, 0x7790, 0x7777, 0x9909, 0x779f, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0000, 0x9978, 0x7707, 0x7777, 0x9970, 0x77f7, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0000, 0x8877, 0x7777, 0x7777, 0x8877, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777 +END + +10004 RCDATA +BEGIN + 0x0000, 0x0000, 0x0000, 0x1500, 0x3a66, 0x702f, 0x642e, 0x6575, + 0x622f, 0x706d, 0x712f, 0x6975, 0x2e74, 0x6d62, 0x0070, 0x0000, + 0x0100, 0x42de, 0xde4d, 0x0001, 0x0000, 0x0000, 0x7600, 0x0000, + 0x2800, 0x0000, 0x2800, 0x0000, 0x1200, 0x0000, 0x0100, 0x0400, + 0x0000, 0x0000, 0x6800, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, + 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, 0x8000, + 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, 0xc0c0, 0x0000, 0xff00, + 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, 0xff00, + 0xff00, 0x00ff, 0xff00, 0xffff, 0x8800, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x0088, 0x0000, 0x0000, 0x0000, + 0x8808, 0x88ff, 0xff88, 0xf88f, 0xf88f, 0xff8f, 0x88f8, 0x660e, + 0x6666, 0x0766, 0x8088, 0x880f, 0x0f80, 0xf800, 0xf800, 0x0000, + 0x88ff, 0x660e, 0x6666, 0x0766, 0x8088, 0x880f, 0x0f80, 0xf800, + 0xf000, 0x800f, 0x8808, 0x660e, 0x6666, 0x0766, 0x8088, 0x880f, + 0x0f80, 0xf800, 0xf000, 0xff0f, 0x88ff, 0x660e, 0x6666, 0x0766, + 0x8088, 0xff0f, 0x0ff0, 0xf800, 0xf000, 0x0000, 0x880f, 0x660e, + 0x6666, 0x0766, 0x8088, 0x0000, 0x0f80, 0xff00, 0x8000, 0xf00f, + 0x8808, 0x600e, 0x6666, 0x0766, 0x8088, 0x880f, 0x0f80, 0x0000, + 0x8808, 0x0000, 0x8888, 0x660e, 0x6666, 0x0766, 0x8088, 0xff0f, + 0xfff8, 0x8888, 0x8888, 0x8888, 0x8888, 0x660e, 0x6666, 0x0766, + 0x8088, 0x0000, 0x0880, 0x8888, 0x8888, 0x8888, 0x8888, 0x660e, + 0x6666, 0x0766, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x660e, 0x6666, 0x0766, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x660e, 0x6666, 0x0766, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0xee0e, 0xeeee, 0x07ee, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0000, + 0x0000, 0x0800, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888 +END + +10005 RCDATA +BEGIN + 0x0088, 0x0000, 0x0000, 0x6617, 0x2f3a, 0x2e70, 0x7564, 0x2f65, + 0x6d62, 0x2f70, 0x7571, 0x7469, 0x6e64, 0x622e, 0x706d, 0x0000, + 0x0000, 0xde01, 0x4d42, 0x01de, 0x0000, 0x0000, 0x0000, 0x0076, + 0x0000, 0x0028, 0x0000, 0x0028, 0x0000, 0x0012, 0x0000, 0x0001, + 0x0004, 0x0000, 0x0000, 0x0168, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0080, 0x8000, 0x0000, 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, + 0x0080, 0x8080, 0x0000, 0x8080, 0x0080, 0xc0c0, 0x00c0, 0x0000, + 0x00ff, 0xff00, 0x0000, 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, + 0x00ff, 0xffff, 0x0000, 0xffff, 0x00ff, 0x8888, 0xe680, 0x8808, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0xe680, 0x8860, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0xe680, 0x0866, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0xe680, 0x6066, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0800, 0xe680, 0x6666, + 0x0800, 0xff88, 0x8888, 0x8fff, 0x8ff8, 0x8ff8, 0xf8ff, 0x0888, + 0xe680, 0x6666, 0x8807, 0x0f80, 0x8088, 0x000f, 0x00f8, 0x00f8, + 0xff00, 0x0888, 0xe680, 0x6666, 0x8807, 0x0f80, 0x8088, 0x000f, + 0x00f8, 0x0ff0, 0x0880, 0x0088, 0xe600, 0x6606, 0x8807, 0x0f80, + 0x8088, 0x000f, 0x00f8, 0x0ff0, 0xffff, 0x0788, 0xe670, 0x6666, + 0x8807, 0x0f80, 0xf0ff, 0x000f, 0x00f8, 0x00f0, 0x0f00, 0x0788, + 0xe670, 0x6666, 0x8807, 0x0080, 0x8000, 0x000f, 0x00ff, 0x0f80, + 0x08f0, 0x0788, 0xe670, 0x6666, 0x8807, 0x0f80, 0x8088, 0x000f, + 0x0800, 0x0088, 0x8800, 0x0788, 0xe670, 0x6666, 0x8807, 0x0f80, + 0xf8ff, 0x88ff, 0x8888, 0x8888, 0x8888, 0x0788, 0x0e77, 0x6666, + 0x8807, 0x0080, 0x8000, 0x8808, 0x8888, 0x8888, 0x8888, 0x0788, + 0x7077, 0x66e6, 0x8807, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x0788, 0x7777, 0x660e, 0x8807, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x0788, 0x7777, 0xee70, 0x8807, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0788, 0x7777, 0x0e77, + 0x8807, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0088, + 0x0000, 0x0000, 0x8808, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888 +END + +10006 RCDATA +BEGIN + 0x8888, 0x0000, 0x0000, 0x1700, 0x3a66, 0x702f, 0x642e, 0x6575, + 0x622f, 0x706d, 0x732f, 0x6c65, 0x6365, 0x2e74, 0x6d62, 0x0070, + 0x0000, 0x0200, 0x426e, 0x6e4d, 0x0002, 0x0000, 0x0000, 0x7600, + 0x0000, 0x2800, 0x0000, 0x4600, 0x0000, 0x0e00, 0x0000, 0x0100, + 0x0400, 0x0000, 0x0000, 0xf800, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, + 0x8000, 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, 0xc0c0, 0x0000, + 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, + 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x8f00, 0xbfbf, 0xbfbf, + 0x88bf, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8bff, + 0xfbf1, 0xfbfb, 0x88fb, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8f00, 0xbf11, 0xbfbf, 0x88bf, 0x8f88, 0xf8ff, 0xff88, + 0x88ff, 0x88ff, 0xffff, 0xff88, 0xf8ff, 0x88ff, 0xffff, 0xff88, + 0xff88, 0xff88, 0x88ff, 0x8100, 0x1011, 0xfbfb, 0x88fb, 0x0088, + 0xff00, 0x0080, 0xf00f, 0x800f, 0x0f00, 0x00f0, 0x8000, 0x800f, + 0x0f00, 0x0ff0, 0x0f80, 0x0080, 0xf80f, 0x8100, 0xb11f, 0xbf1b, + 0x88bf, 0x0880, 0x0f80, 0xf800, 0x8000, 0x000f, 0x0088, 0x0f80, + 0x80f8, 0x000f, 0x00f8, 0x0ff0, 0x0f80, 0xf800, 0x8800, 0x8100, + 0xf1fb, 0xbb10, 0x88fb, 0x8888, 0x0ff0, 0xff00, 0xf0ff, 0x000f, + 0xffff, 0x00f8, 0x80ff, 0x000f, 0x00f8, 0x0ff0, 0x0f80, 0xff00, + 0xf8ff, 0x8f00, 0xbbbf, 0x0b0b, 0x88bf, 0x8088, 0x0800, 0x0000, + 0xf000, 0x000f, 0x0000, 0x80f8, 0xf00f, 0x000f, 0x00f8, 0x0ff0, + 0x0f80, 0x0000, 0xf800, 0x8b30, 0xfbfb, 0xb0b0, 0x88bb, 0x0088, + 0x8808, 0xff00, 0x8000, 0x000f, 0x00ff, 0xff88, 0xf000, 0x000f, + 0x00f8, 0x0f80, 0x08f0, 0xff00, 0x8800, 0x8fcc, 0xbfb1, 0x0bbb, + 0x880b, 0x0880, 0xff88, 0x0080, 0x8008, 0x800f, 0x0800, 0x0080, + 0x8000, 0x8008, 0x0800, 0x0080, 0x8800, 0x0080, 0x8808, 0x8b00, + 0xfb11, 0xb0fb, 0xb8b0, 0x0f80, 0x08f0, 0x8888, 0x8088, 0x880f, + 0x8888, 0x8888, 0x8888, 0x88ff, 0x8888, 0x8888, 0x8888, 0x8888 +END + +10007 RCDATA +BEGIN + 0x8888, 0x8100, 0x1f11, 0xbbbf, 0x0b0b, 0x0088, 0x8800, 0x8888, + 0x8088, 0x8808, 0x8888, 0x8888, 0x8088, 0x8808, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8113, 0xf11b, 0xfbfb, 0x33b0, 0x8838, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x818d, 0xbfbf, 0xbfbf, + 0x31bb, 0x8838, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8bc5, + 0xfbfb, 0xfbfb, 0x33fb, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x00b7, 0x0000, 0x0000, 0x6618, 0x2f3a, 0x2e70, 0x7564, + 0x2f65, 0x6d62, 0x2f70, 0x7473, 0x706f, 0x6572, 0x2e63, 0x6d62, + 0x0070, 0x0000, 0x0000, 0x42d6, 0xd64d, 0x0000, 0x0000, 0x0000, + 0x7600, 0x0000, 0x2800, 0x0000, 0x0c00, 0x0000, 0x0c00, 0x0000, + 0x0100, 0x0400, 0x0000, 0x0000, 0x6000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, + 0x8000, 0x8000, 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, 0xc0c0, + 0x0000, 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, + 0xff00, 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x8800, 0x8888, + 0x8888, 0x0088, 0x8800, 0xffff, 0xffff, 0x00f8, 0x8700, 0x6666, + 0x6666, 0x00f8, 0x8700, 0x6666, 0x6666, 0x00f8, 0x8700, 0x6666, + 0x6666, 0x00f8, 0x8700, 0x6666, 0x6666, 0x00f8, 0x8700, 0x6666, + 0x6666, 0x00f8, 0x8700, 0x6666, 0x6666, 0x00f8, 0x8700, 0x6666, + 0x6666, 0x00f8, 0x8700, 0x6666, 0x6666, 0x00f8, 0x8700, 0x7777, + 0x7777, 0x0088, 0x8800, 0x8888, 0x8888, 0x0088, 0x0000, 0x0000, + 0x0000, 0x6618, 0x2f3a, 0x2e70, 0x7564, 0x2f65, 0x6d62, 0x2f70, + 0x6173, 0x6576, 0x6572, 0x2e63, 0x6d62, 0x0070, 0x0000, 0x0200, + 0x426e, 0x6e4d, 0x0002, 0x0000, 0x0000, 0x7600, 0x0000, 0x2800, + 0x0000, 0x4200, 0x0000, 0x0e00, 0x0000, 0x0100, 0x0400, 0x0000, + 0x0000, 0xf800, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, + 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000 +END + +10008 RCDATA +BEGIN + 0x0080, 0xc000, 0xc0c0, 0x8000, 0x8080, 0x0000, 0xff00, 0x0000, + 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, 0xff00, 0xff00, + 0x00ff, 0xff00, 0xffff, 0x7700, 0x88cc, 0x8888, 0xcc88, 0x77c7, + 0xff77, 0xffff, 0x77f7, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7c00, 0x8ccc, 0x88c8, + 0xcc88, 0x77c7, 0x0070, 0x0000, 0x7777, 0x7777, 0xff7f, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7c00, + 0x8ccc, 0x88c8, 0xcc88, 0x77c7, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0000, 0x77ff, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0000, 0x7c00, 0x8ccc, 0x88c8, 0xcc88, 0x77c7, 0xff77, 0x7f77, + 0xfff7, 0x70ff, 0xf07f, 0x7f0f, 0x7ff7, 0xf7ff, 0xff77, 0xf77f, + 0x7f77, 0xf7f7, 0x0000, 0x7c00, 0x88cc, 0x8888, 0xcc88, 0x77c7, + 0x0f70, 0x0077, 0x0070, 0xf70f, 0x0000, 0x000f, 0x00f7, 0xf700, + 0x0770, 0xf700, 0x0077, 0xf770, 0x0000, 0x7c00, 0xcccc, 0xcccc, + 0xcccc, 0x77c7, 0x0f70, 0x0770, 0x7700, 0x7000, 0x700f, 0x000f, + 0x0ff0, 0x0ff0, 0xf700, 0xf700, 0x0f70, 0xf700, 0x0000, 0x7c00, + 0x66cc, 0x6666, 0xcc66, 0x77c7, 0x0f70, 0x7700, 0xff00, 0xf0ff, + 0x700f, 0x000f, 0xf0f7, 0x0700, 0xf700, 0xf700, 0x0f70, 0xf700, + 0x0000, 0x7c00, 0x66cc, 0x6666, 0xcc66, 0x77c7, 0x0070, 0xff00, + 0x0000, 0xf000, 0x700f, 0x000f, 0x00f0, 0xff07, 0xf700, 0xf700, + 0x0077, 0xf700, 0x0000, 0x7c00, 0x66cc, 0x6666, 0xcc66, 0x77c7, + 0x0f70, 0x0f70, 0xff00, 0x7000, 0xf00f, 0x000f, 0x0ff0, 0x07f0, + 0xff00, 0xff00, 0x7ff0, 0x7700, 0x0000, 0x7c00, 0x66cc, 0x6666, + 0xcc66, 0x77c7, 0x0f70, 0x0f70, 0x0070, 0x7707, 0x0000, 0x0007, + 0x0077, 0x7000, 0x0700, 0x0000, 0x0077, 0x7707, 0x0000, 0x7c00, + 0x66cc, 0x6666, 0xcc66, 0x77c7, 0x0f70, 0x07f0, 0x7777, 0x7777, + 0x7777, 0x7f77, 0x77f7, 0x7777, 0xf700, 0x7777, 0x7777, 0x7777, + 0x0000, 0x7c00, 0x66cc, 0x6666, 0xcc66, 0x77c7, 0x0070, 0x7700, + 0x7777, 0x7777, 0x7777, 0x0077, 0x7777, 0x7777, 0x7770, 0x7777, + 0x7777, 0x7777, 0x0000, 0x7c00, 0x667c, 0x6666, 0xc066, 0x77c7, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7c00, 0xcccc, 0xcccc +END + +10009 RCDATA +BEGIN + 0xcccc, 0x77c7, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6619, 0x2f3a, 0x2e70, 0x7564, 0x2f65, 0x6d62, + 0x2f70, 0x6173, 0x6576, 0x6572, 0x6463, 0x622e, 0x706d, 0x0000, + 0x0000, 0x6e02, 0x4d42, 0x026e, 0x0000, 0x0000, 0x0000, 0x0076, + 0x0000, 0x0028, 0x0000, 0x0042, 0x0000, 0x000e, 0x0000, 0x0001, + 0x0004, 0x0000, 0x0000, 0x01f8, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0080, 0x8000, 0x0000, 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, + 0x0080, 0x8080, 0x0000, 0xc0c0, 0x00c0, 0x8080, 0x0080, 0x0000, + 0x00ff, 0xff00, 0x0000, 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, + 0x00ff, 0xffff, 0x0000, 0xffff, 0x00ff, 0xcc77, 0x88cc, 0x8888, + 0xc788, 0x7777, 0xffff, 0xf7ff, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0077, 0x0000, 0xcc7c, + 0x80cc, 0x8808, 0xc788, 0x7077, 0x0000, 0x7700, 0x7777, 0x7f77, + 0x77ff, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0077, + 0x0000, 0xcc7c, 0x80cc, 0x1811, 0xc788, 0x7777, 0x7777, 0x7777, + 0x7777, 0x0077, 0xff00, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x0077, 0x0000, 0xcc7c, 0x80cc, 0x0b11, 0xc788, 0x7777, + 0x77ff, 0xf77f, 0xffff, 0x7f70, 0x0ff0, 0xf77f, 0xff7f, 0x77f7, + 0x7fff, 0x77f7, 0xf77f, 0x00f7, 0x0000, 0xcc7c, 0x88cc, 0xb010, + 0xc7b8, 0x7077, 0x770f, 0x7000, 0x0f00, 0x00f7, 0x0f00, 0xf700, + 0x0000, 0x70f7, 0x0007, 0x77f7, 0x7000, 0x00f7, 0x0000, 0xcc7c, + 0xcccc, 0x0bcb, 0xc70b, 0x7077, 0x700f, 0x0007, 0x0077, 0x0f70, + 0x0f70, 0xf000, 0xf00f, 0x000f, 0x00f7, 0x70f7, 0x000f, 0x00f7, + 0x0000, 0xcc7c, 0x6666, 0xb066, 0xb7b0, 0x7077, 0x000f, 0x0077, + 0xffff, 0x0ff0, 0x0f70, 0xf700, 0x00f0, 0x0007, 0x00f7, 0x70f7, + 0x000f, 0x00f7, 0x0000, 0xcc7c, 0x6666, 0x6b66, 0x0b0b, 0x7077, + 0x0000, 0x00ff, 0x0000, 0x0ff0, 0x0f70, 0xf000, 0x0700, 0x00ff, + 0x00f7, 0x77f7, 0x0000, 0x00f7, 0x0000, 0xcc7c, 0x6666, 0x6666, + 0xb0b0, 0x70b7, 0x700f, 0x000f, 0x00ff, 0x0f70, 0x0ff0, 0xf000, + 0xf00f, 0x0007, 0x00ff, 0xf0ff, 0x007f, 0x0077, 0x0000, 0xcc7c +END + +10010 RCDATA +BEGIN + 0x6666, 0x6666, 0x0bcb, 0x7033, 0x700f, 0x700f, 0x0700, 0x0077, + 0x0700, 0x7700, 0x0000, 0x0070, 0x0007, 0x7700, 0x0700, 0x0077, + 0x0000, 0xcc7c, 0x6666, 0x6666, 0xb3cc, 0x7013, 0xf00f, 0x7707, + 0x7777, 0x7777, 0x7777, 0xf77f, 0x7777, 0x0077, 0x77f7, 0x7777, + 0x7777, 0x0077, 0x0000, 0xcc7c, 0x6666, 0x6666, 0xc3cc, 0x7037, + 0x0000, 0x7777, 0x7777, 0x7777, 0x7777, 0x7700, 0x7777, 0x7077, + 0x7777, 0x7777, 0x7777, 0x0077, 0x0000, 0x7c7c, 0x6666, 0x6666, + 0xc7c0, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0077, 0x0000, 0xcc7c, + 0xcccc, 0xcccc, 0xc7cc, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0077, + 0x0000, 0x0000, 0x0000, 0x1700, 0x3a66, 0x702f, 0x642e, 0x6575, + 0x622f, 0x706d, 0x6e2f, 0x7765, 0x6572, 0x2e63, 0x6d62, 0x0070, + 0x0000, 0x0100, 0x42c6, 0xc64d, 0x0001, 0x0000, 0x0000, 0x7600, + 0x0000, 0x2800, 0x0000, 0x3000, 0x0000, 0x0e00, 0x0000, 0x0100, + 0x0400, 0x0000, 0x0000, 0x5000, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, + 0x8000, 0x8000, 0x0080, 0xc000, 0xc0c0, 0x8000, 0x8080, 0x0000, + 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, + 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0xbf00, 0xbfbf, 0xbfbf, + 0x77b7, 0xff7f, 0xf7ff, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0xfb77, 0xfbfb, 0xfbfb, 0x77f7, 0x0000, 0x7700, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0xbf77, 0xbfbf, 0xbfbf, + 0x77b7, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0xfb77, 0xfbfb, 0xfbfb, 0x77f7, 0xf77f, 0xf77f, 0xff7f, + 0x77ff, 0xffff, 0x7f77, 0x77ff, 0xff7f, 0xbff7, 0xbfbf, 0xbfbf, + 0x77b7, 0xf700, 0xf700, 0x0000, 0x700f, 0x0f00, 0x00f7, 0x770f, + 0x0000, 0xfbff, 0xfbfb, 0xfbfb, 0x77f7, 0xf700, 0xf000, 0x700f, + 0x000f, 0x00f7, 0x00f7, 0xf00f, 0x700f, 0xbf0f, 0xbfbf, 0xbfbf, + 0x77b7, 0xf000, 0xf000, 0x700f, 0x000f, 0x00f7, 0x0ff0, 0xf000, + 0x700f, 0xfb0f, 0xfbfb, 0xfbfb, 0x77f7, 0xf000, 0xf000, 0x700f +END + +10011 RCDATA +BEGIN + 0x000f, 0x00f7, 0x0ff0, 0xf000, 0x700f, 0xbf0f, 0xbfbf, 0xbfbf, + 0x77b7, 0x0f00, 0xf000, 0x700f, 0x000f, 0x00ff, 0x0f70, 0xf000, + 0xf00f, 0x3307, 0x3b33, 0xfbfb, 0x77f7, 0x0700, 0xf000, 0x7007, + 0x7007, 0x0700, 0x0770, 0x7700, 0x0000, 0xfb77, 0x3ffb, 0xbfbf, + 0x77b7, 0xf700, 0xf700, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7f77, 0x3bbf, 0xfbfb, 0x77f7, 0x7700, 0x7700, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x3ffb, 0xbfbf, + 0x77b7, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x3b7f, 0xfbfb, 0x77f7, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0077, 0x0000, 0x0000, + 0x6619, 0x2f3a, 0x2e70, 0x7564, 0x2f65, 0x6d62, 0x2f70, 0x656e, + 0x7277, 0x6365, 0x6e64, 0x622e, 0x706d, 0x0000, 0x0000, 0xc601, + 0x4d42, 0x01c6, 0x0000, 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, + 0x0000, 0x0030, 0x0000, 0x000e, 0x0000, 0x0001, 0x0004, 0x0000, + 0x0000, 0x0150, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, + 0x0000, 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, + 0x0000, 0xc0c0, 0x00c0, 0x8080, 0x0080, 0x0000, 0x00ff, 0xff00, + 0x0000, 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, + 0x0000, 0xffff, 0x00ff, 0xfbfb, 0xfbfb, 0xf7fb, 0x7f77, 0xffff, + 0x77f7, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0xbfbf, + 0xbfbf, 0xb7bf, 0x0077, 0x0000, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0xfbfb, 0xfbfb, 0xf7fb, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x11b1, + 0xbfbf, 0xb7bf, 0x7f77, 0x7ff7, 0x7ff7, 0xffff, 0xff77, 0x77ff, + 0xff7f, 0x7f77, 0xf7ff, 0xfbf1, 0xfb11, 0xf7fb, 0x0077, 0x00f7, + 0x00f7, 0x0f00, 0x0070, 0xf70f, 0x0f00, 0x0077, 0xff00, 0xbfb1, + 0x0b11, 0xb7bf, 0x0077, 0x00f7, 0x0ff0, 0x0f70, 0xf700, 0xf700, + 0x0f00, 0x0ff0, 0x0f70, 0x11f1, 0xb0f0, 0xf7bb, 0x0077, 0x00f0, + 0x0ff0, 0x0f70, 0xf700, 0xf000, 0x000f, 0x0ff0, 0x0f70, 0xbfbf, + 0x0bbf, 0xb70b, 0x0077, 0x00f0, 0x0ff0, 0x0f70, 0xf700, 0xf000, + 0x000f, 0x0ff0, 0x0f70, 0xfbfb, 0xb0fb, 0xb7b0, 0x0077, 0x000f +END + +10012 RCDATA +BEGIN + 0x0ff0, 0x0f70, 0xff00, 0x7000, 0x000f, 0x0ff0, 0x07f0, 0x3333, + 0xbb3f, 0x0b0b, 0x0077, 0x0007, 0x07f0, 0x0770, 0x0070, 0x7007, + 0x0007, 0x0077, 0x7700, 0xfbfb, 0xfb3b, 0xb0b0, 0x00b7, 0x00f7, + 0x77f7, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0xbf7f, + 0xbf3f, 0x03bb, 0x0033, 0x0077, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0xfb77, 0xfb3b, 0xb3fb, 0x7713, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7f77, + 0xbf3f, 0xb3bf, 0x7737, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x0000, 0x0000, 0x1700, 0x3a66, 0x702f, + 0x642e, 0x6575, 0x622f, 0x706d, 0x642f, 0x6c65, 0x6572, 0x2e63, + 0x6d62, 0x0070, 0x0000, 0x0100, 0x42fe, 0xfe4d, 0x0001, 0x0000, + 0x0000, 0x7600, 0x0000, 0x2800, 0x0000, 0x3600, 0x0000, 0x0e00, + 0x0000, 0x0100, 0x0400, 0x0000, 0x0000, 0x8800, 0x0001, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, + 0x0000, 0x8000, 0x8000, 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, + 0xc0c0, 0x0000, 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, + 0x0000, 0xff00, 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x8800, + 0x8888, 0x7888, 0x8888, 0xff88, 0xf8ff, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x883b, 0x8888, 0x7787, + 0x8888, 0x0080, 0x8800, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x88bb, 0x8888, 0xf777, 0x8878, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8801, 0x8788, 0xff7f, 0x8877, 0xff88, 0xf8ff, 0x8fff, + 0xfff8, 0xff88, 0xff88, 0xf88f, 0x88ff, 0x88ff, 0x8fff, 0x8812, + 0x7788, 0xffff, 0x88f7, 0x0080, 0x8000, 0x000f, 0x0ff0, 0x0f80, + 0x0f80, 0xf000, 0x800f, 0x800f, 0x0f08, 0x8836, 0x7f87, 0xffff, + 0x88ff, 0x0880, 0x8088, 0x000f, 0x0ff0, 0x0f80, 0x0f80, 0xf000, + 0x800f, 0x000f, 0x0ff0, 0x8809, 0xff47, 0xffff, 0x88f8, 0x0880, + 0x8088, 0x000f, 0x0ff0, 0x0f80, 0x0f80, 0xf000, 0x800f, 0x000f, + 0x0ff0, 0x8469, 0xff4f, 0xffff, 0x8888, 0x0f80, 0xf0ff, 0x000f, + 0x0ff0, 0x0f80, 0x0f80, 0xf000, 0x800f, 0x800f, 0x0f00, 0x440e +END + +10013 RCDATA +BEGIN + 0xffcc, 0xf8ff, 0x8888, 0x0080, 0x8000, 0x000f, 0x0ff0, 0x08f0, + 0x08f0, 0xf000, 0xf00f, 0x0808, 0x08f0, 0x4c90, 0xcfcc, 0x88ff, + 0x8888, 0x0880, 0x8088, 0x000f, 0x0080, 0x8000, 0x8800, 0x8000, + 0x0000, 0x8088, 0x8800, 0xcc70, 0xcccc, 0x88f8, 0x8888, 0x0f80, + 0xf0ff, 0x8f0f, 0x88f8, 0x8888, 0x8888, 0xf88f, 0x8888, 0x8888, + 0x8888, 0x8cfb, 0xcccc, 0x8888, 0x8888, 0x0080, 0x8000, 0x0008, + 0x8888, 0x8888, 0x8888, 0x8800, 0x8888, 0x8888, 0x8888, 0x88ba, + 0xc8cc, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8881, 0x888c, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x004e, 0x0000, 0x0000, 0x6619, 0x2f3a, + 0x2e70, 0x7564, 0x2f65, 0x6d62, 0x2f70, 0x6564, 0x726c, 0x6365, + 0x6e64, 0x622e, 0x706d, 0x0000, 0x0000, 0xfe01, 0x4d42, 0x01fe, + 0x0000, 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, 0x0036, + 0x0000, 0x000e, 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, 0x0188, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, 0x8000, + 0x0080, 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, 0x8080, + 0x0080, 0xc0c0, 0x00c0, 0x0000, 0x00ff, 0xff00, 0x0000, 0xff00, + 0x00ff, 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, 0xffff, + 0x00ff, 0x7788, 0x8888, 0x8888, 0x8888, 0xffff, 0x88f8, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x3b88, 0x7787, + 0x8878, 0x8888, 0x8088, 0x0000, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0xbb88, 0xff77, 0x8877, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x0188, 0xff7f, 0x78f7, 0x8888, 0x8888, 0xffff, + 0xfff8, 0xf88f, 0x88ff, 0x88ff, 0x8fff, 0xfff8, 0xff88, 0xff88, + 0x128f, 0xffff, 0x77ff, 0x8888, 0x8088, 0x0000, 0x0f80, 0xf000, + 0x800f, 0x800f, 0x000f, 0x0ff0, 0x0f80, 0x0880, 0x360f, 0xffff, + 0xf7ff, 0x8878, 0x8088, 0x8808, 0x0f80, 0xf000, 0x800f, 0x800f, + 0x000f, 0x0ff0, 0x0f80, 0xf000, 0x090f, 0xff8f, 0xffff, 0x8874, + 0x8088, 0x8808, 0x0f80, 0xf000, 0x800f, 0x800f, 0x000f, 0x0ff0 +END + +10014 RCDATA +BEGIN + 0x0f80, 0xf000, 0x690f, 0xff88, 0xffff, 0x48f4, 0x8088, 0xff0f, + 0x0ff0, 0xf000, 0x800f, 0x800f, 0x000f, 0x0ff0, 0x0f80, 0x0080, + 0x0e0f, 0x8f88, 0xffff, 0x44cc, 0x8088, 0x0000, 0x0f80, 0xf000, + 0xf00f, 0xf008, 0x0008, 0x0ff0, 0x08f0, 0xf008, 0x9008, 0x8888, + 0xfcff, 0xc4cc, 0x8088, 0x8808, 0x0f80, 0x8000, 0x0000, 0x0080, + 0x0088, 0x0080, 0x8800, 0x0080, 0x7088, 0x8888, 0xcc8f, 0xcccc, + 0x8088, 0xff0f, 0x0ff0, 0xf88f, 0x8888, 0x8888, 0x8f88, 0x88f8, + 0x8888, 0x8888, 0xfb88, 0x8888, 0xcc88, 0xc8cc, 0x8088, 0x0000, + 0x0880, 0x8800, 0x8888, 0x8888, 0x0088, 0x8888, 0x8888, 0x8888, + 0xba88, 0x8888, 0x8c88, 0x88cc, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8188, 0x8888, + 0x8888, 0x88c8, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x4e88, 0x0000, 0x0000, 0x1800, + 0x3a66, 0x702f, 0x642e, 0x6575, 0x622f, 0x706d, 0x662f, 0x6e69, + 0x7264, 0x6365, 0x622e, 0x706d, 0x0000, 0x0000, 0x7602, 0x4d42, + 0x0276, 0x0000, 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, + 0x003a, 0x0000, 0x0010, 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, + 0x0200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, + 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, + 0xc0c0, 0x00c0, 0x8080, 0x0080, 0x0000, 0x00ff, 0xff00, 0x0000, + 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, + 0xffff, 0x00ff, 0x0777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0xff7f, 0x77ff, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0x0070, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x0000, 0x7707, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0x000f, 0x7707, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0xf070, 0x7700, 0x7777, 0x7777, 0x7f77, 0x77f7, + 0xffff, 0xff77, 0x77f7, 0xffff, 0xff77, 0x7777, 0xf7ff, 0xff77, + 0x007f, 0x0000, 0x0f77, 0x0700, 0x7777, 0x7777, 0x0077, 0x70f7, + 0x0f00, 0x0070, 0x70ff, 0x0f00, 0x0ff0, 0x7077, 0xff00, 0x0770 +END + +10015 RCDATA +BEGIN + 0x000f, 0x0000, 0x7077, 0x00f0, 0x0000, 0x7787, 0x0077, 0x00f7, + 0x0f70, 0xf000, 0x0007, 0x00f7, 0x0f70, 0x0077, 0x07f0, 0xf000, + 0x000f, 0x0000, 0x7777, 0x000f, 0x7787, 0x7780, 0x0077, 0x07f0, + 0x0f70, 0xf700, 0x0077, 0xffff, 0x0ff0, 0x0077, 0x77f7, 0xf000, + 0x000f, 0x0000, 0x7777, 0x0870, 0x6767, 0x0778, 0x0077, 0x0f00, + 0x0ff0, 0xf700, 0x00ff, 0x0000, 0x0ff0, 0x0077, 0xffff, 0x0070, + 0x000f, 0x0000, 0x7777, 0x8670, 0x7676, 0x8877, 0x0077, 0x00f7, + 0x0ff0, 0xf000, 0x0007, 0x00ff, 0x0f70, 0x00ff, 0x07f0, 0xf007, + 0x0007, 0x0000, 0x7777, 0x6770, 0x6767, 0x7067, 0x0077, 0x00f7, + 0x07f0, 0x0070, 0x7077, 0x0700, 0x0070, 0x7007, 0x7700, 0x0070, + 0x0077, 0x0000, 0x7777, 0x7670, 0x6666, 0x7076, 0x0077, 0x00ff, + 0xff77, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0x7777, 0x6770, 0x6766, 0x7067, 0x0077, 0x0700, + 0x0770, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0x7777, 0x8678, 0x6666, 0x8876, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0x7777, 0x0877, 0x6767, 0x0768, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0x7777, 0x7077, 0x7686, 0x7780, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0x7777, 0x7777, 0x0080, 0x7787, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0x0000, 0x0000, 0x1700, 0x3a66, 0x702f, 0x642e, + 0x6575, 0x622f, 0x706d, 0x732f, 0x6165, 0x6372, 0x2e68, 0x6d62, + 0x0070, 0x0000, 0x0000, 0x429a, 0x9a4d, 0x0000, 0x0000, 0x0000, + 0x7600, 0x0000, 0x2800, 0x0000, 0x0700, 0x0000, 0x0900, 0x0000, + 0x0100, 0x0400, 0x0000, 0x0000, 0x2400, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, + 0x8000, 0x8000, 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, 0xc0c0, + 0x0000, 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, + 0xff00, 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x0000, 0x0000 +END + +10016 RCDATA +BEGIN + 0x880d, 0x8888, 0x888d, 0x8880, 0x8888, 0x0800, 0x8088, 0x0000, + 0x0080, 0x0000, 0x8800, 0x0800, 0x8880, 0x0800, 0x8880, 0x0800, + 0x0080, 0x0000, 0x0000, 0x6618, 0x2f3a, 0x2e70, 0x7564, 0x2f65, + 0x6d62, 0x2f70, 0x6863, 0x6365, 0x6f6b, 0x2e6e, 0x6d62, 0x0070, + 0x0000, 0x0000, 0x42f6, 0xf64d, 0x0000, 0x0000, 0x0000, 0x7600, + 0x0000, 0x2800, 0x0000, 0x1000, 0x0000, 0x1000, 0x0000, 0x0100, + 0x0400, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, + 0x8000, 0x8000, 0x0080, 0xc000, 0xc0c0, 0x8000, 0x8080, 0x0000, + 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, + 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x6800, 0x8888, 0x8888, + 0x8888, 0xe688, 0x6666, 0x6666, 0x6666, 0xe668, 0x6666, 0x6666, + 0x6666, 0xe668, 0xe666, 0x6666, 0x6666, 0xe668, 0x0e60, 0x6666, + 0x66ee, 0xe668, 0x0068, 0x60e6, 0xe600, 0xe668, 0x8066, 0x000e, + 0x6600, 0xe668, 0x6866, 0x0000, 0x6606, 0xe668, 0x6666, 0x0000, + 0x66e6, 0xe668, 0x6666, 0x0000, 0x66e6, 0xe668, 0x6866, 0x0000, + 0x660e, 0xe668, 0x8066, 0x6806, 0xe600, 0xe668, 0x8066, 0x6806, + 0xe600, 0xe668, 0x8066, 0x6666, 0x6688, 0xe668, 0x6866, 0x6666, + 0x6666, 0xee68, 0xeeee, 0xeeee, 0xeeee, 0x00e6, 0x0000, 0x0000, + 0x6619, 0x2f3a, 0x2e70, 0x7564, 0x2f65, 0x6d62, 0x2f70, 0x6863, + 0x6365, 0x6f6b, 0x6666, 0x622e, 0x706d, 0x0000, 0x0000, 0xf600, + 0x4d42, 0x00f6, 0x0000, 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, + 0x0000, 0x0010, 0x0000, 0x0010, 0x0000, 0x0001, 0x0004, 0x0000, + 0x0000, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, + 0x0000, 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, + 0x0000, 0xc0c0, 0x00c0, 0x8080, 0x0080, 0x0000, 0x00ff, 0xff00, + 0x0000, 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, + 0x0000, 0xffff, 0x00ff, 0x8868, 0x8888, 0x8888, 0x8888, 0x66e6, + 0x6666, 0x6666, 0x6866, 0x66e6, 0x6666, 0x6666, 0x6866, 0x66e6, + 0x6666, 0x6666, 0x6866, 0x66e6, 0x6666, 0x6666, 0x6866, 0x66e6 +END + +10017 RCDATA +BEGIN + 0x6666, 0x6666, 0x6866, 0x66e6, 0x6666, 0x6666, 0x6866, 0x66e6, + 0x6666, 0x6666, 0x6866, 0x66e6, 0x6666, 0x6666, 0x6866, 0x66e6, + 0x6666, 0x6666, 0x6866, 0x66e6, 0x6666, 0x6666, 0x6866, 0x66e6, + 0x6666, 0x6666, 0x6866, 0x66e6, 0x6666, 0x6666, 0x6866, 0x66e6, + 0x6666, 0x6666, 0x6866, 0x66e6, 0x6666, 0x6666, 0x6866, 0xeeee, + 0xeeee, 0xeeee, 0xe6ee, 0x0000, 0x0000, 0x1800, 0x3a66, 0x702f, + 0x642e, 0x6575, 0x622f, 0x706d, 0x722f, 0x6461, 0x6f69, 0x6e6f, + 0x622e, 0x706d, 0x0000, 0x0000, 0xf600, 0x4d42, 0x00f6, 0x0000, + 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, 0x0010, 0x0000, + 0x0010, 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, 0x0080, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, 0x8000, 0x0080, + 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, 0xc0c0, 0x00c0, + 0x8080, 0x0080, 0x0000, 0x00ff, 0xff00, 0x0000, 0xff00, 0x00ff, + 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, 0xffff, 0x00ff, + 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xee6e, 0x66ee, 0x6666, 0x6666, 0x8868, 0xee88, 0x6666, + 0x6866, 0x6686, 0x8666, 0x66e6, 0x8866, 0x8866, 0x6886, 0x66e6, + 0x0666, 0x0060, 0x6600, 0x668e, 0x0668, 0x0080, 0x8600, 0x668e, + 0x0668, 0x0080, 0x8600, 0x668e, 0x0668, 0x0080, 0x8600, 0x668e, + 0x0668, 0x0060, 0x6600, 0x668e, 0x0866, 0x8866, 0x6886, 0x6666, + 0x8066, 0x6686, 0x8866, 0x66e6, 0x6866, 0x0000, 0x8600, 0x6666, + 0x6666, 0x8868, 0x6686, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, + 0x0000, 0x0000, 0x1900, 0x3a66, 0x702f, 0x642e, 0x6575, 0x622f, + 0x706d, 0x722f, 0x6461, 0x6f69, 0x666f, 0x2e66, 0x6d62, 0x0070, + 0x0000, 0x0000, 0x42f6, 0xf64d, 0x0000, 0x0000, 0x0000, 0x7600, + 0x0000, 0x2800, 0x0000, 0x1000, 0x0000, 0x1000, 0x0000, 0x0100, + 0x0400, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, + 0x8000, 0x8000, 0x0080, 0xc000, 0xc0c0, 0x8000, 0x8080, 0x0000, + 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00 +END + +10018 RCDATA +BEGIN + 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x6600, 0x6666, 0x6666, + 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x8888, + 0x6666, 0x6666, 0x8066, 0x0000, 0x6608, 0x6666, 0x86e8, 0x6666, + 0x8680, 0x6666, 0x6668, 0x6666, 0x0668, 0x6e66, 0x6686, 0x6666, + 0x0866, 0x6e66, 0x6686, 0x6666, 0x0866, 0x6e66, 0x6686, 0x6666, + 0x0866, 0x6e66, 0x6686, 0x6666, 0x0866, 0x6e66, 0x6686, 0x6666, + 0x0666, 0x6666, 0x66e8, 0x6666, 0x8668, 0x6666, 0x86e6, 0x6666, + 0x6688, 0x6666, 0xe86e, 0x8888, 0x6666, 0x6666, 0x6e66, 0xeeee, + 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x0066, 0x0000, 0x0000, + 0x6618, 0x2f3a, 0x2e70, 0x7564, 0x2f65, 0x6d62, 0x2f70, 0x6f6d, + 0x7564, 0x656c, 0x2e31, 0x6d62, 0x0070, 0x0000, 0x0200, 0x4276, + 0x764d, 0x0002, 0x0000, 0x0000, 0x7600, 0x0000, 0x2800, 0x0000, + 0x2000, 0x0000, 0x2000, 0x0000, 0x0100, 0x0400, 0x0000, 0x0000, + 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0080, + 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x0080, + 0x8000, 0x8080, 0xc000, 0xc0c0, 0x0000, 0xff00, 0x0000, 0x00ff, + 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, 0xff00, 0xff00, 0x00ff, + 0xff00, 0xffff, 0xff00, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x0077, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0x00bb, 0x0000, 0xbb00, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0x0000, 0xb000, 0x000b, + 0x0b00, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0x000b, 0x0000, 0x0b00, + 0x0b00, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0x00b0, 0xbb00, 0xbbbb, + 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0x0bbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0xb000, 0x0000, 0x0000, + 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0x00bb, 0xb000, 0x0000, 0x0000 +END + +10019 RCDATA +BEGIN + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0x99bb, 0x9999, 0xbb9b, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0x9999, 0xbb9b, 0xbbbb, + 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0x9999, 0x99b9, 0x99b9, + 0xbb9b, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0xb999, 0x9999, 0x9999, + 0xbb99, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0x99b9, 0x99b9, 0x9999, + 0xbb9b, 0xffbb, 0x00f0, 0xfbf0, 0x99bb, 0x99b9, 0x99b9, 0x9999, + 0xbb99, 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xbbbb, 0xf0bb, 0x00f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0x00f0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6618, 0x2f3a, 0x2e70, + 0x7564, 0x2f65, 0x6d62, 0x2f70, 0x6f6d, 0x7564, 0x656c, 0x2e32, + 0x6d62, 0x0070, 0x0000, 0x0200, 0x4276, 0x764d, 0x0002, 0x0000, + 0x0000, 0x7600, 0x0000, 0x2800, 0x0000, 0x2000, 0x0000, 0x2000, + 0x0000, 0x0100, 0x0400, 0x0000, 0x0000, 0x0000, 0x0002, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, + 0x0000, 0x8000, 0x8000, 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, + 0xc0c0, 0x0000, 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, + 0x0000, 0xff00, 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0xff00, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0077, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xfbff, 0x99bb, 0x9999, 0x99b9, 0x99b9, 0xbb9b, 0xffbb, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0 +END + +10020 RCDATA +BEGIN + 0xfbff, 0x99bb, 0xb999, 0x9999, 0x9999, 0xbb99, 0xffbb, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xfbff, 0x99bb, 0x99b9, 0x99b9, 0x9999, 0xbb9b, 0xffbb, 0x00f0, + 0xfbf0, 0x99bb, 0x99b9, 0x99b9, 0x9999, 0xbb99, 0xf0bb, 0x00f0, + 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, + 0xfbf0, 0x00bb, 0x0000, 0xbb00, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xfbff, 0x00bb, 0x0000, 0xb000, 0x000b, 0x0b00, 0xffbb, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xfbff, 0x00bb, 0x000b, 0x0000, 0x0b00, 0x0b00, 0xffbb, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xfbff, 0x00bb, 0x00b0, 0xbb00, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0x0bbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xfbff, 0x00bb, 0xb000, 0x0000, 0x0000, 0xbbbb, 0xffbb, 0x00f0, + 0xfbf0, 0x00bb, 0xb000, 0x0000, 0x0000, 0xbbbb, 0xf0bb, 0x00f0, + 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, + 0xfbf0, 0x99bb, 0x9999, 0xbb9b, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xfbff, 0x99bb, 0x9999, 0xbb9b, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, + 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, + 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x00f0, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x6618, 0x2f3a, 0x2e70, 0x7564, 0x2f65, 0x6d62, + 0x2f70, 0x6f6d, 0x7564, 0x656c, 0x2e33, 0x6d62, 0x0070, 0x0000, + 0x0200, 0x4276, 0x764d, 0x0002, 0x0000, 0x0000, 0x7600, 0x0000, + 0x2800, 0x0000, 0x2000, 0x0000, 0x2000, 0x0000, 0x0100, 0x0400 +END + +10021 RCDATA +BEGIN + 0x0000, 0x0000, 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, + 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, 0x8000, + 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, 0xc0c0, 0x0000, 0xff00, + 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, 0xff00, + 0xff00, 0x00ff, 0xff00, 0xffff, 0xff00, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0077, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0x99bb, 0x9999, + 0xbb9b, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0x9999, + 0xbb9b, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0x9999, + 0x99b9, 0x99b9, 0xbb9b, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0xb999, + 0x9999, 0x9999, 0xbb99, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0x99b9, + 0x99b9, 0x9999, 0xbb9b, 0xffbb, 0x00f0, 0xfbf0, 0x99bb, 0x99b9, + 0x99b9, 0x9999, 0xbb99, 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0x00bb, 0x0000, + 0xbb00, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0x0000, + 0xb000, 0x000b, 0x0b00, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0x000b, + 0x0000, 0x0b00, 0x0b00, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0x00b0, + 0xbb00, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0x0bbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0xb000 +END + +10022 RCDATA +BEGIN + 0x0000, 0x0000, 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0x00bb, 0xb000, + 0x0000, 0x0000, 0xbbbb, 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, + 0xbbbb, 0xbbbb, 0xbbbb, 0xf0bb, 0x00f0, 0xffff, 0xffff, 0xffff, + 0xffff, 0xffff, 0xffff, 0xffff, 0x00f0, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6618, + 0x2f3a, 0x2e70, 0x7564, 0x2f65, 0x6d62, 0x2f70, 0x6f6d, 0x7564, + 0x656c, 0x2e34, 0x6d62, 0x0070, 0x0000, 0x0200, 0x4276, 0x764d, + 0x0002, 0x0000, 0x0000, 0x7600, 0x0000, 0x2800, 0x0000, 0x2000, + 0x0000, 0x2000, 0x0000, 0x0100, 0x0400, 0x0000, 0x0000, 0x0000, + 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0080, 0x0000, + 0x8080, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x0080, 0x8000, + 0x8080, 0xc000, 0xc0c0, 0x0000, 0xff00, 0x0000, 0x00ff, 0x0000, + 0xffff, 0xff00, 0x0000, 0xff00, 0xff00, 0xff00, 0x00ff, 0xff00, + 0xffff, 0xff00, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x0077, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xfbff, 0x00bb, 0x000b, 0x0000, 0x0b00, 0x0b00, + 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0x00b0, 0xbb00, 0xbbbb, 0xbbbb, + 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0x0bbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0xb000, 0x0000, 0x0000, 0xbbbb, + 0xffbb, 0x00f0, 0xfbf0, 0x00bb, 0xb000, 0x0000, 0x0000, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xffbb, 0x00f0, 0xfbf0, 0x99bb, 0x9999, 0xbb9b, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0x9999, 0xbb9b, 0xbbbb, 0xbbbb, + 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0x9999, 0x99b9, 0x99b9, 0xbb9b +END + +10023 RCDATA +BEGIN + 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0xb999, 0x9999, 0x9999, 0xbb99, + 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0x99bb, 0x99b9, 0x99b9, 0x9999, 0xbb9b, + 0xffbb, 0x00f0, 0xfbf0, 0x99bb, 0x99b9, 0x99b9, 0x9999, 0xbb99, + 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xffbb, 0x00f0, 0xfbf0, 0x00bb, 0x0000, 0xbb00, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xfbff, 0x00bb, 0x0000, 0xb000, 0x000b, 0x0b00, + 0xffbb, 0x00f0, 0xfbf0, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, + 0xf0bb, 0x00f0, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, + 0xffff, 0x00f0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6616, 0x2f3a, 0x2e70, 0x7564, + 0x2f65, 0x6d62, 0x2f70, 0x6f62, 0x6b6f, 0x2e31, 0x6d62, 0x0070, + 0x0000, 0x0100, 0x420e, 0x0e4d, 0x0001, 0x0000, 0x0000, 0x7600, + 0x0000, 0x2800, 0x0000, 0x1000, 0x0000, 0x1300, 0x0000, 0x0100, + 0x0400, 0x0000, 0x0000, 0x9800, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, + 0x8000, 0x8000, 0x0080, 0xc000, 0xc0c0, 0x8000, 0x8080, 0x0000, + 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, + 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x0000, 0x6866, 0x6686, + 0x6086, 0x0006, 0x8866, 0x8868, 0x8888, 0x0080, 0x8888, 0x8688, + 0x8888, 0x008f, 0x8666, 0x8888, 0x6888, 0x008f, 0x8888, 0x8868, + 0x6866, 0x008f, 0x8666, 0x8688, 0x8888, 0x008b, 0x8688, 0x8888, + 0x8868, 0x008b, 0x8688, 0x6686, 0x8888, 0x008b, 0x8866, 0x6866, + 0x8866, 0x008f, 0x6866, 0x8888, 0x8888, 0x008f, 0x6688, 0x0000, + 0x8806, 0x008f, 0x8066, 0xff6f, 0x88f0, 0x008f, 0x6088, 0xff6f, + 0x88f0, 0x008b, 0x8088, 0xff6f, 0x88f0, 0x008b, 0x8688, 0x0000 +END + +10024 RCDATA +BEGIN + 0x8606, 0x006b, 0x8666, 0x8888, 0x8868, 0x008f, 0x8866, 0x8668, + 0x6888, 0x008f, 0x0000, 0x0000, 0x0000, 0x0800, 0x8888, 0x8888, + 0x8888, 0x0088, 0x0000, 0x0000, 0x6616, 0x2f3a, 0x2e70, 0x7564, + 0x2f65, 0x6d62, 0x2f70, 0x6f62, 0x6b6f, 0x2e32, 0x6d62, 0x0070, + 0x0000, 0x0100, 0x420e, 0x0e4d, 0x0001, 0x0000, 0x0000, 0x7600, + 0x0000, 0x2800, 0x0000, 0x1000, 0x0000, 0x1300, 0x0000, 0x0100, + 0x0400, 0x0000, 0x0000, 0x9800, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, + 0x8000, 0x8000, 0x0080, 0xc000, 0xc0c0, 0x8000, 0x8080, 0x0000, + 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, + 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x6600, 0x6600, 0x6686, + 0x6688, 0x6060, 0x8888, 0x8888, 0x8668, 0x0f60, 0x8888, 0x8886, + 0x8888, 0x0f80, 0x6888, 0x8888, 0x8686, 0x0f60, 0x6688, 0x8868, + 0x8868, 0x0b80, 0x8888, 0x8886, 0x8686, 0x0b60, 0x8888, 0x8868, + 0x8886, 0x0b80, 0x8888, 0x6686, 0x8886, 0x0f80, 0x8688, 0x6668, + 0x8668, 0x0f60, 0x8888, 0x8888, 0x6688, 0x0f60, 0x8888, 0x8668, + 0x6886, 0x0f80, 0x8888, 0x8886, 0x8686, 0x0b60, 0x8888, 0x6886, + 0x6886, 0x0b80, 0x8888, 0x8686, 0x8886, 0x0b80, 0x8866, 0x8868, + 0x8886, 0x0f80, 0x8888, 0x8868, 0x8686, 0x0f60, 0x6888, 0x8886, + 0x8668, 0x0060, 0x0000, 0x0000, 0x0000, 0x0800, 0x8888, 0x8888, + 0x8888, 0x0088, 0x0000, 0x0000, 0x6616, 0x2f3a, 0x2e70, 0x7564, + 0x2f65, 0x6d62, 0x2f70, 0x6f62, 0x6b6f, 0x2e33, 0x6d62, 0x0070, + 0x0000, 0x0100, 0x42a6, 0xa64d, 0x0001, 0x0000, 0x0000, 0x7600, + 0x0000, 0x2800, 0x0000, 0x2000, 0x0000, 0x1300, 0x0000, 0x0100, + 0x0400, 0x0000, 0x0000, 0x3000, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, + 0x8000, 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, 0xc0c0, 0x0000, + 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, + 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x6600, 0x6666, 0x6666, + 0x6666, 0x0000, 0x6600, 0x6666, 0x6666, 0x6066, 0x0000, 0x0000 +END + +10025 RCDATA +BEGIN + 0x0000, 0x0f0f, 0x0000, 0x0000, 0x0000, 0x6006, 0x7777, 0x0077, + 0x8808, 0x0080, 0x8888, 0x0700, 0x7777, 0x6070, 0x0070, 0x8800, + 0x0088, 0x080f, 0x0800, 0x8088, 0x0000, 0x6070, 0x8070, 0x0f00, + 0xfff8, 0x08ff, 0xffff, 0x00ff, 0x7000, 0x6070, 0x8070, 0xf8ff, + 0xffff, 0x0f8f, 0x8fff, 0xffff, 0x70f0, 0x6070, 0x8070, 0xfff8, + 0xfff8, 0x0f7f, 0xff77, 0xffff, 0x70f0, 0x6070, 0x9070, 0xffff, + 0xff7f, 0x0f8f, 0x8fff, 0xff7f, 0x70f0, 0x6070, 0x8070, 0xff97, + 0xfff8, 0x08ff, 0xffff, 0xf7ff, 0x70f0, 0x6070, 0x8070, 0xf8ff, + 0x77ff, 0x0f7f, 0x7f77, 0xffff, 0x70f0, 0x6070, 0x8070, 0x78f7, + 0xffff, 0x0f8f, 0xffff, 0x77ff, 0x70f0, 0x6070, 0x8070, 0xfff8, + 0x77f8, 0x087f, 0x7f77, 0xffff, 0x70f0, 0x6070, 0x8070, 0xf7ff, + 0xff77, 0x0f8f, 0xf7ff, 0xff77, 0x70f0, 0x6070, 0xf070, 0x7ff7, + 0xfff8, 0x08ff, 0xffff, 0x77ff, 0x70f0, 0x6070, 0xf070, 0xf8ff, + 0x77ff, 0x0f7f, 0x7f77, 0xffff, 0x70f0, 0x6070, 0xf070, 0xf7f8, + 0xff77, 0x08f8, 0xf7ff, 0xff77, 0x70f0, 0x6070, 0xf000, 0xfff8, + 0x00f8, 0x6606, 0x0f00, 0xffff, 0x70f0, 0x6600, 0x0060, 0xf0ff, + 0x6600, 0x6666, 0x6066, 0xff00, 0x00f0, 0x6666, 0x6066, 0x0600, + 0x6666, 0x6666, 0x6666, 0x0066, 0x6600, 0x0066, 0x0000, 0x0000, + 0x6617, 0x2f3a, 0x2e70, 0x7564, 0x2f65, 0x6d62, 0x2f70, 0x6f6d, + 0x7564, 0x656c, 0x622e, 0x706d, 0x0000, 0x0000, 0x7602, 0x4d42, + 0x0276, 0x0000, 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, + 0x0020, 0x0000, 0x0020, 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, + 0x0200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, + 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, + 0x8080, 0x0080, 0xc0c0, 0x00c0, 0x0000, 0x00ff, 0xff00, 0x0000, + 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, + 0xffff, 0x00ff, 0x77ff, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xfb00, 0xfbfb, 0xfbfb, 0xfbfb, 0xfbfb, 0xfbfb, + 0xfbfb, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x6666, 0x6666, 0x6666, 0x6666 +END + +10026 RCDATA +BEGIN + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x0000, 0x0000, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x0000, 0x0000, 0x0660, 0x0000, + 0x6606, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x0600, 0x0000, 0x0000, 0x0006, + 0x6606, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x6000, 0x0000, 0x6666, 0x6666, + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6606, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x0000, 0x0060, 0x0000, 0x6600, + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x0000, 0x0060, 0x0000, 0x6600, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0xfbfb, 0xfbfb, 0xfbfb, 0xfbfb, 0xfbfb, + 0xfbfb, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x9999, 0x9699, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x9999, 0x9699, 0x6666, 0x6666, + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x9999, 0x6999, 0x6999, 0x9699, + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x9999, 0x9969, 0x9999, 0x9999, + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x6999, 0x6999, 0x9999, 0x9699, + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x6999, 0x6999, 0x9999, 0x9999, + 0x6666, 0xb0b0, 0xfb00, 0x66f6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xf0fb, 0xb000, 0x66b6, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0xb0b0, 0xfb00, 0xfbfb, 0xfbfb, 0xfbfb, 0xfbfb, 0xfbfb, + 0xfbfb, 0xf0fb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1500, 0x3a66, 0x702f, 0x642e, + 0x6575, 0x622f, 0x706d, 0x652f, 0x6964, 0x2e74, 0x6d62, 0x0070, + 0x0000, 0x0100, 0x428e, 0x8e4d, 0x0001, 0x0000, 0x0000, 0x7600, + 0x0000, 0x2800, 0x0000, 0x2400, 0x0000, 0x0e00, 0x0000, 0x0100, + 0x0400, 0x0000, 0x0000, 0x1800, 0x0001, 0x0000, 0x0000, 0x0000 +END + +10027 RCDATA +BEGIN + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, 0x8000, + 0x8000, 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, 0xc0c0, 0x0000, + 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, 0xff00, + 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0xfb00, 0xfbfb, 0xfbfb, + 0x88f8, 0x8f88, 0xffff, 0x8888, 0x8888, 0x8888, 0x5788, 0xb0f5, + 0x0000, 0xbf00, 0x88b8, 0x0088, 0x0800, 0x8888, 0x8888, 0x8888, + 0xf788, 0xfbf5, 0xfbfb, 0xfbfb, 0x88f8, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x5788, 0xb0f5, 0xbf00, 0xbfbf, 0x88b8, 0x8f88, + 0xffff, 0xff88, 0xf8ff, 0x88ff, 0xf7f8, 0xf0f5, 0x11fb, 0xfbfb, + 0x88f8, 0x0088, 0x0800, 0x0080, 0xf000, 0x800f, 0x57f8, 0xb0f5, + 0x11bf, 0xbf0b, 0x88b8, 0x0088, 0x8888, 0xf800, 0xf000, 0x000f, + 0x88f8, 0xf000, 0xf000, 0xbbb0, 0x88f8, 0x0088, 0x8888, 0xf800, + 0xf000, 0x000f, 0x8af8, 0xbf88, 0xbfbf, 0x0b0b, 0x88b8, 0x0088, + 0xffff, 0xf800, 0xf000, 0x000f, 0xc4f8, 0xfb44, 0xfbfb, 0xb0b0, + 0x88b8, 0x0088, 0x0800, 0xff00, 0xf000, 0x000f, 0x31ff, 0x330a, + 0x3f33, 0x0bbb, 0x880b, 0x0088, 0x8888, 0x0080, 0xf000, 0x0000, + 0x1108, 0xfb00, 0x3bfb, 0xb0fb, 0xb8b0, 0x0088, 0xffff, 0x8888, + 0xf800, 0x00ff, 0x4cf8, 0x8f00, 0x3fbf, 0xbbbf, 0x3303, 0x0088, + 0x0800, 0x8888, 0x8000, 0x8008, 0x8388, 0x8890, 0x3bfb, 0xfbfb, + 0x13b3, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0xee88, 0x8800, + 0x3f8f, 0xbfbf, 0x38b3, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x0088, 0x0000, 0x0000, 0x0000, 0x6615, 0x2f3a, 0x2e70, 0x7564, + 0x2f65, 0x6d62, 0x2f70, 0x696c, 0x6b6e, 0x622e, 0x706d, 0x0000, + 0x0000, 0xb602, 0x4d42, 0x02b6, 0x0000, 0x0000, 0x0000, 0x0076, + 0x0000, 0x0028, 0x0000, 0x003c, 0x0000, 0x0012, 0x0000, 0x0001, + 0x0004, 0x0000, 0x0000, 0x0240, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0080, 0x8000, 0x0000, 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, + 0x0080, 0x8080, 0x0000, 0xc0c0, 0x00c0, 0x8080, 0x0080, 0x0000, + 0x00ff, 0xff00, 0x0000, 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, + 0x00ff, 0xffff, 0x0000, 0xffff, 0x00ff, 0x7777, 0x7777, 0x7777 +END + +10028 RCDATA +BEGIN + 0x77f7, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7777, 0x7777, 0xf077, + 0x77f7, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7777, 0x7777, 0x00f0, + 0x77f7, 0x7f77, 0xffff, 0x77ff, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7777, 0xf077, 0x0000, + 0x77f7, 0x0077, 0x0000, 0x7707, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0xffff, 0x7777, 0x7777, 0x0000, 0x7777, 0x00f0, 0x0000, + 0x77f7, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7077, 0x0f00, 0x7777, 0x7777, 0x0000, 0xf077, 0x0000, 0x0000, + 0xffff, 0x77ff, 0xff7f, 0x7ff7, 0xffff, 0xff7f, 0xf7ff, 0xff7f, + 0x07f7, 0x0077, 0x7ff7, 0xf7ff, 0x0000, 0x0070, 0x0000, 0x0000, + 0x0000, 0x770f, 0x0000, 0x70ff, 0x0f00, 0x0ff0, 0xf700, 0x0000, + 0x70ff, 0x0000, 0x00f7, 0xf700, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x700f, 0x7007, 0x000f, 0x0077, 0x0ff0, 0xf000, 0x700f, + 0x000f, 0x00f7, 0x0ff0, 0xf700, 0x0000, 0x0070, 0x0000, 0x0000, + 0x0000, 0x000f, 0x77f7, 0x0077, 0x0077, 0x0ff0, 0xf000, 0xff0f, + 0x00ff, 0x00f7, 0x0ff0, 0xf700, 0x0000, 0x7077, 0x0000, 0x0000, + 0x00f7, 0x000f, 0x77f7, 0x0077, 0x0077, 0x0ff0, 0xf000, 0x0000, + 0x000f, 0x00f7, 0x00f7, 0xf700, 0x0000, 0x7777, 0x0070, 0x0000, + 0x00f7, 0x000f, 0x77f7, 0x0077, 0x0077, 0x0f70, 0xf000, 0xf00f, + 0x000f, 0x00ff, 0x7ff0, 0x7700, 0x0000, 0x7777, 0x7077, 0x0000, + 0x00f7, 0x000f, 0x77ff, 0x70f7, 0x0700, 0x0f70, 0xf700, 0x0000, + 0x70f7, 0x0000, 0x0077, 0x7707, 0x0000, 0x7777, 0x7777, 0x0070, + 0x0077, 0x700f, 0xf00f, 0x77f7, 0x7777, 0x0f70, 0xf700, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7777, 0x7777, 0x7077, + 0x0077, 0x770f, 0x0000, 0x7777, 0x7777, 0x0770, 0x7700, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7777, 0x7777, 0x7777, + 0x00ff, 0x770f, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7777, 0x7777, 0x7077, + 0x0000, 0x770f, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7777, 0x7777, 0x7077 +END + +10029 RCDATA +BEGIN + 0x0000, 0x770f, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x7777, 0x7777, 0x7077, + 0x0000, 0x7707, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x0000, 0x0000, 0x1600, + 0x3a66, 0x702f, 0x642e, 0x6575, 0x622f, 0x706d, 0x702f, 0x6972, + 0x746e, 0x622e, 0x706d, 0x0000, 0x0000, 0x3602, 0x4d42, 0x0236, + 0x0000, 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, 0x003e, + 0x0000, 0x000e, 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, 0x01c0, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, 0x8000, + 0x0080, 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, 0xc0c0, + 0x00c0, 0x8080, 0x0080, 0x0000, 0x00ff, 0xff00, 0x0000, 0xff00, + 0x00ff, 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, 0xffff, + 0x00ff, 0x0077, 0x0000, 0x0000, 0x0000, 0x7777, 0xff77, 0xffff, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0xbf70, 0xbfbf, 0xbfbf, 0xbfbf, 0x7707, 0x0070, 0x0700, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0xff7f, 0x7777, 0x7777, + 0x0077, 0xfb0b, 0xfbfb, 0xfbfb, 0xfbfb, 0x77f0, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0f70, 0x7777, 0x7777, + 0x0077, 0x7707, 0xbfbf, 0xbfbf, 0x9999, 0x77b0, 0xff77, 0xf7ff, + 0x0f7f, 0xff7f, 0xffff, 0xfff7, 0xfff7, 0x0ff0, 0xf7ff, 0xff7f, + 0x00ff, 0x770b, 0xfbfb, 0xfbfb, 0x9999, 0x77f0, 0x0077, 0xff00, + 0xff70, 0x0070, 0x000f, 0x00f7, 0x00f7, 0x00f0, 0xff00, 0x0070, + 0x000f, 0xbf70, 0xbfbf, 0xbfbf, 0xbfbf, 0x7707, 0x0770, 0x0f70, + 0xf700, 0x7000, 0x000f, 0x00f7, 0x00f7, 0x07f0, 0x0f70, 0x7000, + 0x000f, 0x0077, 0x0000, 0x0000, 0x0000, 0x7777, 0x7777, 0x0f70, + 0xf700, 0x7000, 0x000f, 0x00f7, 0x00f7, 0x07f0, 0x0f70, 0x7000, + 0x000f, 0x7777, 0xff0f, 0xffff, 0x77f0, 0x7777, 0x7077, 0x0f00, + 0xf700, 0x0070, 0x000f, 0x00f7, 0x00f7, 0x07f0, 0x0f70, 0x0070, + 0x000f, 0x7777, 0x007f, 0x0f00, 0x77f7, 0x7777, 0x0077, 0x7707, + 0xff00, 0x7007, 0x000f, 0x00f7, 0x00f7, 0x07f0, 0x0f70, 0x7007, + 0x000f, 0x7777, 0xff0f, 0xffff, 0x77f0, 0x7777, 0x0770, 0x7077 +END + +10030 RCDATA +BEGIN + 0x0f00, 0x0070, 0x00ff, 0x0700, 0x0f00, 0x0070, 0xf700, 0x0070, + 0x00f7, 0x7777, 0x000f, 0xffff, 0x77f0, 0x7777, 0x0770, 0x0f70, + 0xff00, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x7777, 0x007f, 0x0000, 0x77f7, 0x7777, 0x0077, 0xf700, + 0xf770, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x7777, 0x7707, 0x7777, 0x7770, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x7777, 0x0070, 0x0000, 0x7707, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, + 0x0077, 0x0000, 0x0000, 0x1900, 0x3a66, 0x702f, 0x642e, 0x6575, + 0x622f, 0x706d, 0x732f, 0x7465, 0x7270, 0x6e69, 0x2e74, 0x6d62, + 0x0070, 0x0000, 0x0300, 0x421e, 0x1e4d, 0x0003, 0x0000, 0x0000, + 0x7600, 0x0000, 0x2800, 0x0000, 0x5000, 0x0000, 0x1100, 0x0000, + 0x0100, 0x0400, 0x0000, 0x0000, 0xa800, 0x0002, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x8000, 0x0000, 0x0080, 0x0000, 0x8080, 0x8000, 0x0000, + 0x8000, 0x8000, 0x8000, 0x0080, 0x8000, 0x8080, 0xc000, 0xc0c0, + 0x0000, 0xff00, 0x0000, 0x00ff, 0x0000, 0xffff, 0xff00, 0x0000, + 0xff00, 0xff00, 0xff00, 0x00ff, 0xff00, 0xffff, 0x8800, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0xff8f, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x0f80, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x0000, 0x0000, 0x0000, 0x8800, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x0f80, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8088, 0xbfbf, + 0xbfbf, 0xbfbf, 0x08bf, 0x8888, 0xff8f, 0xff8f, 0xff8f, 0xff8f, + 0x0f80, 0xf8ff, 0xff88, 0x88ff, 0xff88, 0x88ff, 0xff88, 0xfff8, + 0xf8ff, 0x8888, 0x0b88, 0xfbfb, 0xfbfb, 0xfbfb, 0xf0fb, 0x8888 +END + +10031 RCDATA +BEGIN + 0x0f80, 0x0f80, 0x0f80, 0x0f80, 0x0080, 0xf800, 0x0088, 0xf800, + 0x0088, 0xf800, 0x0088, 0x00f8, 0x0f00, 0x8888, 0x0888, 0xbf88, + 0xbfbf, 0x99bf, 0xb099, 0x8888, 0x0f80, 0x0f80, 0x0f80, 0x0f80, + 0x0880, 0x0f80, 0x0880, 0x0f80, 0x0880, 0x0f80, 0x0f80, 0x0880, + 0x0f80, 0x8888, 0x0b88, 0xfb88, 0xfbfb, 0x99fb, 0xf099, 0x8888, + 0x0f80, 0x0f80, 0x0f80, 0x0f80, 0x0880, 0x0f80, 0x0880, 0x0f80, + 0x8888, 0x0f80, 0x0f80, 0x0880, 0x0f80, 0x8888, 0x8088, 0xbfbf, + 0xbfbf, 0xbfbf, 0x08bf, 0x8888, 0x0f80, 0x0f80, 0x0f80, 0x0f80, + 0x0880, 0x0f80, 0x0880, 0x0f80, 0x0088, 0xf800, 0x0f80, 0x0088, + 0x0f80, 0x8888, 0x8888, 0x0000, 0x0000, 0x0000, 0x8800, 0x8888, + 0x0f80, 0x0f80, 0x0f80, 0x0f80, 0x0880, 0x0f80, 0x0880, 0x0f80, + 0x0f80, 0x8888, 0x0f80, 0x8088, 0x0f00, 0x8888, 0x8888, 0x0f88, + 0xffff, 0xf0ff, 0x8888, 0x8888, 0x0f80, 0x0f80, 0x0f80, 0x0f80, + 0x0880, 0x0f80, 0x0880, 0x0f80, 0x0f80, 0x0880, 0x0f80, 0x0880, + 0x0f80, 0x8888, 0x8888, 0x8f88, 0x0000, 0xf80f, 0x8888, 0x8888, + 0x0f80, 0x0080, 0x0000, 0x8800, 0x0080, 0xf800, 0x0088, 0xf800, + 0x0088, 0xf800, 0x0000, 0x00f8, 0xf800, 0x8888, 0x8888, 0x0f88, + 0xffff, 0xf0ff, 0x8888, 0x8888, 0x0f80, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0f80, 0x8888, + 0x8888, 0x8888, 0x8888, 0x0f88, 0xff00, 0xf0ff, 0x8888, 0x8888, + 0x0f80, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x0f80, 0x8888, 0x8888, 0x8888, 0x8888, 0x8f88, + 0x0000, 0xf800, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x0888, 0x8888, 0x8088, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8088, + 0x0000, 0x0800, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x0088, 0x0000, 0x0000, 0x6617, 0x2f3a, 0x2e70, + 0x7564, 0x2f65, 0x6d62, 0x2f70, 0x6572, 0x6163, 0x636c, 0x622e, + 0x706d, 0x0000, 0x0000, 0x3602, 0x4d42, 0x0236, 0x0000, 0x0000 +END + +10032 RCDATA +BEGIN + 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, 0x003e, 0x0000, 0x000e, + 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, 0x01c0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, 0x8000, 0x0080, 0x0080, + 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, 0x8080, 0x0080, 0xc0c0, + 0x00c0, 0x0000, 0x00ff, 0xff00, 0x0000, 0xff00, 0x00ff, 0x00ff, + 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, 0xffff, 0x00ff, 0x0080, + 0x0000, 0x0800, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0088, 0x0000, + 0x0000, 0x0000, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0088, 0x9900, + 0x0990, 0x0099, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0088, 0x9900, + 0x0990, 0x0099, 0x8888, 0x88f8, 0xffff, 0xff88, 0x88f8, 0xffff, + 0xf88f, 0xff8f, 0x8f88, 0xf8ff, 0xf88f, 0xff8f, 0x00f8, 0x0000, + 0x0000, 0x0000, 0x0088, 0x80f8, 0x0f00, 0x0080, 0x80ff, 0x0f00, + 0xf800, 0x0f00, 0x00f8, 0xff00, 0xf800, 0x0000, 0x00f8, 0x9900, + 0x0990, 0x0099, 0x0088, 0x00f8, 0x0f80, 0xf000, 0x0008, 0x0ff0, + 0xf000, 0x000f, 0x0f80, 0x0f80, 0xf000, 0x000f, 0x00f8, 0x9900, + 0x0990, 0x0099, 0x0088, 0x0ff0, 0x0f80, 0xf800, 0x0088, 0x0ff0, + 0xf000, 0x880f, 0x0f80, 0x0f80, 0xf000, 0x000f, 0x00f8, 0x0000, + 0x0000, 0x0000, 0x0088, 0x0f00, 0x0ff0, 0xf800, 0x80ff, 0x0f00, + 0xf000, 0x8f0f, 0x0ff0, 0x0880, 0xf800, 0x0000, 0x00f8, 0x0000, + 0x0000, 0x0000, 0x0088, 0x00f8, 0x0ff0, 0xf000, 0x0808, 0x08f0, + 0xf000, 0x0008, 0x0f80, 0x08f0, 0xf000, 0x008f, 0x0088, 0xbf0b, + 0xffbb, 0xb0ff, 0x0088, 0x00f8, 0x08f0, 0x0080, 0x8088, 0x8800, + 0xf800, 0x0800, 0x0088, 0x8800, 0xf800, 0x0800, 0x0088, 0xbf0b, + 0xbbfb, 0xb0bb, 0x0088, 0x00ff, 0xff88, 0x8888, 0x8888, 0x8888, + 0xf800, 0x8888, 0x8888, 0x8888, 0xf800, 0x8888, 0x0088, 0x0000, + 0x0000, 0x0000, 0x0088, 0x0800, 0x0880, 0x8888, 0x8888, 0x8888, + 0x8800, 0x8888, 0x8888, 0x8888, 0x8800, 0x8888, 0x0088, 0x0000, + 0x0000, 0x0000, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888 +END + +10033 RCDATA +BEGIN + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0088, 0x0080, + 0x0000, 0x0800, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, + 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x8888, 0x0088, 0x0000, + 0x0000, 0x1400, 0x3a66, 0x702f, 0x642e, 0x6575, 0x622f, 0x706d, + 0x622f, 0x706d, 0x622e, 0x706d, 0x0000, 0x0000, 0xf600, 0x4d42, + 0x00f6, 0x0000, 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, + 0x0010, 0x0000, 0x0010, 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, + 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, + 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, + 0xc0c0, 0x00c0, 0x8080, 0x0080, 0x0000, 0x00ff, 0xff00, 0x0000, + 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, + 0xffff, 0x00ff, 0x7077, 0x3300, 0x3033, 0x7777, 0x0877, 0xb4bb, + 0xbb4b, 0x7730, 0x0b77, 0xbcbb, 0x4bcc, 0x77b3, 0xbb70, 0xbc1b, + 0xbbcc, 0x07bb, 0xb90b, 0x1b99, 0xbbbb, 0x07bb, 0xb90b, 0xbb91, + 0x0bb0, 0x07bb, 0xbb0b, 0xbb9b, 0x300c, 0x77b3, 0xaa02, 0xbb2b, + 0x0030, 0x7787, 0xaa0b, 0xbbab, 0xb0bb, 0x7707, 0xaa0b, 0xbbbb, + 0x07bb, 0x7700, 0xbb0b, 0xd5b5, 0x77b3, 0x0770, 0xbb0b, 0xdbdd, + 0x77b0, 0x0077, 0xbb70, 0xdbdd, 0x7737, 0x7077, 0x0b77, 0xb3bb, + 0x7777, 0x7777, 0x7077, 0x0700, 0x7777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x0000, 0x0000, 0x1400, 0x3a66, 0x702f, 0x642e, + 0x6575, 0x622f, 0x706d, 0x782f, 0x736c, 0x622e, 0x706d, 0x0000, + 0x0000, 0xf600, 0x4d42, 0x00f6, 0x0000, 0x0000, 0x0000, 0x0076, + 0x0000, 0x0028, 0x0000, 0x0010, 0x0000, 0x0010, 0x0000, 0x0001, + 0x0004, 0x0000, 0x0000, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0010, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0080, 0x8000, 0x0000, 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, + 0x0080, 0x8080, 0x0000, 0xc0c0, 0x00c0, 0x8080, 0x0080, 0x0000, + 0x00ff, 0xff00, 0x0000, 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, + 0x00ff, 0xffff, 0x0000, 0xffff, 0x00ff, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x8877, 0x8888, 0x0080, + 0x8700, 0x0077, 0x0000, 0x6600, 0x8766, 0x8877, 0x8888, 0x6670 +END + +10034 RCDATA +BEGIN + 0x8066, 0x0077, 0x0000, 0x00e0, 0x8800, 0x7077, 0x0e77, 0x7ee7, + 0x8808, 0x7777, 0xe077, 0xe77e, 0x0887, 0x7777, 0xe77e, 0x007e, + 0x0000, 0x7077, 0x7ee0, 0x88e7, 0x7787, 0x7e88, 0x7ee7, 0x7008, + 0x8780, 0xe080, 0xe77e, 0x7787, 0x8788, 0xe70e, 0x077e, 0x7770, + 0x0770, 0x7e00, 0x77e7, 0x7777, 0x0777, 0x7777, 0x7777, 0x7777, + 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x0000, 0x0000, 0x1400, + 0x3a66, 0x702f, 0x642e, 0x6575, 0x622f, 0x706d, 0x772f, 0x7661, + 0x622e, 0x706d, 0x0000, 0x0000, 0xf600, 0x4d42, 0x00f6, 0x0000, + 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, 0x0010, 0x0000, + 0x0010, 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, 0x0080, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, 0x8000, 0x0080, + 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, 0xc0c0, 0x00c0, + 0x8080, 0x0080, 0x0000, 0x00ff, 0xff00, 0x0000, 0xff00, 0x00ff, + 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, 0xffff, 0x00ff, + 0x8770, 0x7777, 0x0777, 0x7787, 0x0877, 0x7777, 0x0077, 0x7707, + 0x0877, 0x7787, 0x8777, 0x7707, 0x7877, 0x6786, 0x0877, 0x7787, + 0x7777, 0x6660, 0x8877, 0x7787, 0x7777, 0x6606, 0x8867, 0x7707, + 0x7777, 0x607e, 0x0000, 0x7707, 0x7777, 0xe077, 0x6700, 0x7777, + 0x7777, 0x7e77, 0x6600, 0x7777, 0x7777, 0x7777, 0x66e6, 0x8768, + 0x7777, 0x7777, 0x667e, 0x8800, 0x7777, 0x7777, 0xe877, 0x0888, + 0x7777, 0x7777, 0x0677, 0x8080, 0x7777, 0x7777, 0x0677, 0x8008, + 0x7777, 0x7777, 0x7077, 0x8766, 0x7777, 0x7777, 0x7777, 0x7700, + 0x0000, 0x0000, 0x1400, 0x3a66, 0x702f, 0x642e, 0x6575, 0x622f, + 0x706d, 0x642f, 0x636f, 0x622e, 0x706d, 0x0000, 0x0000, 0xf600, + 0x4d42, 0x00f6, 0x0000, 0x0000, 0x0000, 0x0076, 0x0000, 0x0028, + 0x0000, 0x0010, 0x0000, 0x0010, 0x0000, 0x0001, 0x0004, 0x0000, + 0x0000, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x8000, + 0x0000, 0x8000, 0x0080, 0x0080, 0x0000, 0x0080, 0x0080, 0x8080, + 0x0000, 0xc0c0, 0x00c0, 0x8080, 0x0080, 0x0000, 0x00ff, 0xff00, + 0x0000, 0xff00, 0x00ff, 0x00ff, 0x0000, 0x00ff, 0x00ff, 0xffff +END + +10035 RCDATA +BEGIN + 0x0000, 0xffff, 0x00ff, 0x08f8, 0xffff, 0x0800, 0xffff, 0xf080, + 0x7088, 0xe066, 0x7787, 0x440f, 0x06ff, 0xee60, 0x8800, 0xff0f, + 0x064f, 0xee60, 0x0000, 0xf4ff, 0x66f0, 0xee0e, 0xe00e, 0xfff4, + 0x66f0, 0xeeee, 0xe00e, 0xff44, 0x6006, 0xeeee, 0xe0ee, 0x4fff, + 0x6006, 0xeeee, 0xe0ee, 0xff66, 0x0000, 0xeee0, 0xe0e0, 0x6ff6, + 0x6606, 0xee06, 0xe000, 0x66ff, 0xf0ff, 0x0e00, 0xe060, 0x66f6, + 0xff44, 0x6066, 0xe060, 0x6f66, 0xff4f, 0xf0ff, 0x0066, 0xff66, + 0xf0f4, 0x7777, 0x0000, 0xff0f, 0x0744, 0x7777, 0x7777, 0xfff0, + 0x0fff, 0xffff, 0xffff, 0x0000, 0x0000, 0x1600, 0x3a66, 0x702f, + 0x642e, 0x6575, 0x622f, 0x706d, 0x6c2f, 0x6e65, 0x6574, 0x622e, + 0x706d, 0x0000, 0x0000, 0xe600, 0x4d42, 0x00e6, 0x0000, 0x0000, + 0x0000, 0x0076, 0x0000, 0x0028, 0x0000, 0x000c, 0x0000, 0x000e, + 0x0000, 0x0001, 0x0004, 0x0000, 0x0000, 0x0070, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0080, 0x8000, 0x0000, 0x8000, 0x0080, 0x0080, + 0x0000, 0x0080, 0x0080, 0x8080, 0x0000, 0xc0c0, 0x00c0, 0x8080, + 0x0080, 0x0000, 0x00ff, 0xff00, 0x0000, 0xff00, 0x00ff, 0x00ff, + 0x0000, 0x00ff, 0x00ff, 0xffff, 0x0000, 0xffff, 0x00ff, 0x7770, + 0x7777, 0x7777, 0x0000, 0x0700, 0x7777, 0x7777, 0x0000, 0x00f0, + 0x7777, 0x7777, 0x0000, 0x000f, 0x7707, 0x7777, 0x0000, 0xf070, + 0x0000, 0x7708, 0x0000, 0x0f77, 0x8700, 0x0778, 0x0000, 0x7077, + 0x6708, 0x8077, 0x0000, 0x7077, 0x7686, 0x7067, 0x0000, 0x7077, + 0x6767, 0x7076, 0x0000, 0x7077, 0x6667, 0x7076, 0x0000, 0x7877, + 0x6686, 0x6867, 0x0000, 0x7777, 0x6708, 0x8076, 0x0000, 0x7777, + 0x8670, 0x0768, 0x0000, 0x7777, 0x8077, 0x7708, 0x0000, 0x0100, + 0x8813, 0x4600, 0x1000, 0x0400, 0x6946, 0x656c, 0x0000, 0x0800, + 0x017d, 0x4400, 0x0000, 0x0f00, 0x6353, 0x6c65, 0x6174, 0x4420, + 0x7469, 0x6174, 0x2e2e, 0x002e, 0x7d00, 0x0006, 0x0050, 0x0000, + 0x4919, 0x706d, 0x736f, 0x6174, 0x697a, 0x6e6f, 0x2065, 0x6150, + 0x6172, 0x656d, 0x7274, 0x2e69, 0x2e2e, 0x0000, 0xffff, 0x0000, + 0x0800, 0x0000, 0x0000, 0x077d, 0x4900, 0x0000, 0x1900, 0x6d49, + 0x6f70, 0x7473, 0x7a61, 0x6f69, 0x656e, 0x5320, 0x6174, 0x706d +END + +10036 RCDATA +BEGIN + 0x6e61, 0x6574, 0x2e2e, 0x002e, 0x7d00, 0x0008, 0x0053, 0x0001, + 0x5306, 0x6174, 0x706d, 0x0061, 0xff00, 0x00ff, 0x0000, 0x0008, + 0x0000, 0x7d00, 0x000b, 0x006e, 0x0000, 0x490c, 0x666e, 0x726f, + 0x616d, 0x697a, 0x6e6f, 0x0069, 0x7d00, 0x0009, 0x0046, 0x0000, + 0x4604, 0x6e69, 0x0065, 0x0000, 0x1b02, 0x00bc, 0x0056, 0x0010, + 0x560f, 0x7369, 0x6175, 0x696c, 0x7a7a, 0x7a61, 0x6f69, 0x656e, + 0x0000, 0x0a00, 0x207d, 0x0000, 0x0000, 0x0e00, 0x6e49, 0x6574, + 0x7272, 0x6d6f, 0x6970, 0x4509, 0x4353, 0x0000, 0x1b7d, 0x6700, + 0x0100, 0x1100, 0x6f43, 0x6c6c, 0x6765, 0x2e61, 0x2e2e, 0x4309, + 0x7274, 0x2b6c, 0x0047, 0x7d00, 0x001d, 0x0045, 0x0000, 0x4511, + 0x7073, 0x726f, 0x6174, 0x2e2e, 0x092e, 0x7443, 0x6c72, 0x452b, + 0x0000, 0x1f7d, 0x5300, 0x0100, 0x1100, 0x7453, 0x6d61, 0x6170, + 0x2e2e, 0x202e, 0x4309, 0x7274, 0x2b6c, 0x0053, 0xff00, 0x00ff, + 0x0000, 0x0008, 0x0000, 0x7d00, 0x002d, 0x0072, 0x0002, 0x4d0f, + 0x736f, 0x7274, 0x2061, 0x6972, 0x6867, 0x6c65, 0x696c, 0x0000, + 0x2e7d, 0x6200, 0x0200, 0x0e00, 0x6f4d, 0x7473, 0x6172, 0x6220, + 0x746f, 0x6f74, 0x696e, 0x0000, 0x1a7d, 0x6400, 0x0000, 0x0900, + 0x6952, 0x6964, 0x6573, 0x6e67, 0x0061, 0xff00, 0x00ff, 0x0000, + 0x0008, 0x0000, 0x7d00, 0x0023, 0x0000, 0x0000, 0x430e, 0x6968, + 0x6475, 0x0969, 0x5345, 0x2b43, 0x5345, 0x0043, 0x7d00, 0x0019, + 0x0045, 0x0010, 0x4504, 0x6964, 0x0074, 0x0000, 0x7d05, 0x001c, + 0x0043, 0x0001, 0x4305, 0x706f, 0x6169, 0x0000, 0x1e7d, 0x4100, + 0x0100, 0x0700, 0x6e41, 0x756e, 0x6c6c, 0x0061, 0xff00, 0x00ff, + 0x0000, 0x0008, 0x0000, 0x7d00, 0x0021, 0x0000, 0x0000, 0x430b, + 0x7265, 0x6163, 0x2e2e, 0x092e, 0x3746, 0x0000, 0x227d, 0x0000, + 0x0100, 0x1400, 0x6543, 0x6372, 0x2061, 0x6c69, 0x7020, 0x6f72, + 0x7373, 0x6d69, 0x096f, 0x3846, 0x0000, 0x0100, 0x8813, 0x4600, + 0x1000, 0x0400, 0x6946, 0x656c, 0x0000, 0x0800, 0x017d, 0x4400, + 0x0000, 0x0f00, 0x6353, 0x6c65, 0x6174, 0x4420, 0x7469, 0x6174, + 0x2e2e, 0x002e, 0x7d00, 0x0006, 0x0050, 0x0000, 0x4919, 0x706d, + 0x736f, 0x6174, 0x697a, 0x6e6f, 0x2065, 0x6150, 0x6172, 0x656d, + 0x7274, 0x2e69, 0x2e2e, 0x0000, 0xffff, 0x0000, 0x0800, 0x0000 +END + +10037 RCDATA +BEGIN + 0x0000, 0x077d, 0x4900, 0x0000, 0x1900, 0x6d49, 0x6f70, 0x7473, + 0x7a61, 0x6f69, 0x656e, 0x5320, 0x6174, 0x706d, 0x6e61, 0x6574, + 0x2e2e, 0x002e, 0x7d00, 0x0008, 0x0053, 0x0001, 0x5306, 0x6174, + 0x706d, 0x0061, 0xff00, 0x00ff, 0x0000, 0x0008, 0x0000, 0x7d00, + 0x000b, 0x006e, 0x0000, 0x490c, 0x666e, 0x726f, 0x616d, 0x697a, + 0x6e6f, 0x0069, 0x7d00, 0x0009, 0x0046, 0x0000, 0x4604, 0x6e69, + 0x0065, 0x0000, 0x1301, 0x0088, 0x0066, 0x1b04, 0x0058, 0x0000, + 0x0100, 0x0063, 0x4600, 0x2747, 0x0010, 0x0000, 0x0000, 0x00b9, + 0x4500, 0x278e, 0x0011, 0x0000, 0x0000, 0x00b9, 0x4700, 0x23aa, + 0x0029, 0x0002, 0x0000, 0x0008, 0x4800, 0x0063, 0x0065, 0x0007, + 0x0300, 0x001d, 0x0000, 0x000c, 0x0066, 0x0007, 0x0200, 0x00d9, + 0x0300, 0x0029, 0x0067, 0x0007, 0x0200, 0x0092, 0x0d00, 0x008d, + 0x0068, 0x0007, 0x0200, 0x0021, 0x1600, 0x0086, 0x0069, 0x0007, + 0x0100, 0x00e9, 0x1200, 0x00b2, 0x006d, 0x0007, 0x0000, 0x00bd, + 0x1d00, 0x0064, 0x006e, 0x0007, 0x0100, 0x001a, 0x1e00, 0x0021, + 0x006f, 0x0007, 0x0100, 0x001b, 0x1f00, 0x003b, 0x0070, 0x0007, + 0x0100, 0x001a, 0x2000, 0x0056, 0x0071, 0x0007, 0x0100, 0x001b, + 0x2100, 0x0070, 0x0072, 0x0007, 0x0100, 0x00ff, 0x0600, 0x0002, + 0x0073, 0x0007, 0x0200, 0x0091, 0x0a00, 0x0002, 0x0074, 0x0007, + 0x0100, 0x00af, 0x3300, 0x00b4, 0x0075, 0x0007, 0x0200, 0x00d7, + 0x3500, 0x0063, 0x0076, 0x0007, 0x0200, 0x0058, 0x3800, 0x003a, + 0x0077, 0x0007, 0x0200, 0x0059, 0x3d00, 0x00d5, 0x007b, 0x0007, + 0x0000, 0x00fa, 0x0c00, 0x0093, 0x007e, 0x0007, 0x0200, 0x009a, + 0x1a00, 0x00ca, 0x007f, 0x0007, 0x0200, 0x009a, 0x2200, 0x008b, + 0x0080, 0x0007, 0x0200, 0x009a, 0x2500, 0x0025, 0x0081, 0x0007, + 0x0200, 0x009a, 0x2700, 0x00bf, 0x0082, 0x0007, 0x0200, 0x009a, + 0x2a00, 0x0059, 0x0083, 0x0007, 0x0100, 0x0030, 0x2c00, 0x00f3, + 0x0084, 0x0007, 0x0100, 0x0030, 0x2e00, 0x0023, 0x0085, 0x0007, + 0x0100, 0x00c8, 0x2f00, 0x0053, 0x0086, 0x0007, 0x0200, 0x0099, + 0x3100, 0x001b, 0x0087, 0x0007, 0x0100, 0x0016, 0x4000, 0x002e, + 0x0088, 0x0007, 0x0100, 0x0016, 0x4200, 0x005a, 0x0089, 0x0007, + 0x0100, 0x0016, 0x4100, 0x0044, 0x008a, 0x0007, 0x0100, 0x0016 +END + +10038 RCDATA +BEGIN + 0x4300, 0x0070, 0x0099, 0x0007, 0x0200, 0x0093, 0x1000, 0x001f, + 0x009a, 0x0007, 0x0200, 0x0023, 0x1800, 0x00a7, 0x009b, 0x0007, + 0x0100, 0x00eb, 0x1400, 0x009b, 0x00a4, 0x0007, 0x0200, 0x0001, + 0x0800, 0x0001, 0x00a5, 0x0007, 0x0300, 0x0043, 0x3a00, 0x0092, + 0x00a6, 0x0007, 0x0100, 0x0008, 0x4400, 0x0086 +END + +/* --------------------------------------------------- */ +/* End of file */ +/* --------------------------------------------------- */ diff --git a/m770/770.url b/m770/770.url new file mode 100755 index 000000000..b6d43c1e8 --- /dev/null +++ b/m770/770.url @@ -0,0 +1,12 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(1) + +MENU MENU_BAR(1) + SUBMENU MENU_FILE "~File" + + + diff --git a/m770/770100.cpp b/m770/770100.cpp new file mode 100755 index 000000000..bffa02eed --- /dev/null +++ b/m770/770100.cpp @@ -0,0 +1,954 @@ +// 770100.cpp - Scheda percipienti +#include +#include +#include +#include + +#include "scperc.h" +#include "rver.h" +#include "rpag.h" +#include "perc.h" + +#include "770101.h" +#include "770102.h" +#include "770100a.h" +#include "770.h" +#include "77lib.h" + +HIDDEN TString80 __tmp; +HIDDEN const int NUM_COL_VERS = 8; // Contano da 0 +HIDDEN const int NUM_COL_PAG = 9; // " " " " " + +TSchedaPercipienti::TSchedaPercipienti(): _rel(NULL), _flag_cg(FALSE) +{ + _from_modify = FALSE; + memset(_msk, 0, sizeof(_msk)); +} + +void TSchedaPercipienti::update_lasts(TMask& m) +{ + if (m.mode() == MODE_MOD) + { + const long codditta = m.get_long(F_CODDITTA); + const char tipoa = m.get(F_TIPOA)[0]; + const long codanagr = m.get_long(F_CODANAGR); + const int nprog = m.get_int(F_NPROG); + +// Determino ultimo numero di riga usato nei PAGAMENTI + _rpag->zero(); + _rpag->put("CODDITTA", (long) codditta); + _rpag->put("TIPOA", tipoa); + _rpag->put("CODANAGR", (long) codanagr); + _rpag->put("NPROG", nprog); + + TRectype dep(_rpag->curr()); + long nriga = 0L; + + for (_rpag->read(); !_rpag->eof(); _rpag->next()) + { + if (_rpag->curr() > dep) break; + nriga = _rpag->get_long("NRIGA"); + } + _lastpag = nriga; + +// Determino ultimo numero di riga usato nei VERSAMENTI + _rver->zero(); + _rver->put("CODDITTA", (long) codditta); + _rver->put("TIPOA", tipoa); + _rver->put("CODANAGR", (long) codanagr); + _rver->put("NPROG", nprog); + + TRectype dep2(_rver->curr()); + long nrigav = 0L; + + for (_rver->read(); !_rver->eof(); _rver->next()) + { + if (_rver->curr() > dep2) break; + nrigav = _rver->get_long("NRIGA"); + } + _lastvers = nrigav; + } + else + _lastpag = _lastvers = 0L; +} + +bool TSchedaPercipienti::changing_mask(int mode) +{ + if (mode == MODE_QUERY) + return _mode != MODE_QUERY; + else + return TRUE; +} + +TMask* TSchedaPercipienti::get_mask(int mode) +{ + const int m = (mode == MODE_QUERY) ? 0 : 1; + _mode = mode; + return load_mask(m); +} + + +TMask* TSchedaPercipienti::load_mask(int n) +{ + if (_msk[n] != NULL) + return _msk[n]; + + TFilename name("770100"); name << char(n == 0 ? 'a' : 'b'); + TMask* m = new TMask(name); + + switch (n) + { + case 0: + m->set_handler(F_NPROG, nprog_handler); + m->set_handler(F_CODDITTA, codditta_handler); + m->set_handler(F_CODANAGRCOM, codanagr_handler); + m->set_handler(F_CODANAGRPERC, codanagr_handler); + break; + case 1: + { + m->set_handler(F_DATADOC, check_handler); + m->set_handler(F_CODCAUS, check_causale); + m->set_handler(F_SPESE, check_spese); + m->set_handler(F_COMPENS, check_compensi); + +//////////////////////////////////////////////////////////////////////// +// Handler versamenti +//////////////////////////////////////////////////////////////////////// + TSheet_field& vers = (TSheet_field&) m->field(F_VERSAMENTI); + vers.set_notify(vers_notify); + vers.sheet_mask().set_handler(F_VERS_1015, vers1015_handler); + vers.sheet_mask().set_handler(DLG_SELPAG, pag_select); + vers.sheet_mask().set_handler(DLG_AZZERA, ver_azzera); + vers.sheet_mask().set_handler(F_TIPOVERS, tipo_hndl); + vers.sheet_mask().set_handler(F_LUOVERS, luo_hndl); + vers.sheet_mask().set_handler(F_ABI, abicab_hndl); + vers.sheet_mask().set_handler(F_CAB, abicab_hndl); + +//////////////////////////////////////////////////////////////////////// +// Handler pagamenti +//////////////////////////////////////////////////////////////////////// + TSheet_field& pags = (TSheet_field&) m->field(F_PAGAMENTI); + pags.set_notify(pags_notify); + pags.sheet_mask().set_handler(MPAG_COMPENSO, compenso_handler); + pags.sheet_mask().set_handler(MPAG_IMPONIBILE, imponibile_handler); + pags.sheet_mask().set_handler(MPAG_PERCRA, percra_handler); + pags.sheet_mask().set_handler(MPAG_NETTO, netto_handler); + pags.sheet_mask().set_handler(MPAG_SPESA, spesa_handler); + pags.sheet_mask().set_handler(MPAG_RITPAG, check_ritenuta); + pags.sheet_mask().set_handler(DLG_AZZERAPAG, pag_azzera); + } + break; + default: + CHECKD(0, "Che strano genere di maschera e' la ", n); + break; + } + return _msk[n] = m; +} + +// Ricerca e output dell'ultimo nprog del percipiente scelto +bool TSchedaPercipienti::setta_nprog(TMask& m, const bool variazione, const char* codanag) +{ + long nprog = 0L; + TString16 numdoc; + const char tipoa = m.get(F_TIPOA)[0]; + TString16 codanagr(codanag ? codanag : m.get(F_CODANAGR)); + const long codditta = app().tipo_coll()==nessuno ? get_firm_770() : app().get_firm(); + +// Scrivi nprog solo se il percipiente ESISTE sull'arkivio, non SEMPRE + if (!app().esiste_perc(m, codanagr)) + return TRUE; + + TLocalisamfile scperc(LF_SCPERC, FALSE); + scperc.zero(); + scperc.put("CODDITTA", codditta); + scperc.put("TIPOA", tipoa); + scperc.put("CODANAGR", codanagr); + if (variazione) + { + scperc.put("CODANAGR", codanagr); + scperc.put("DATADOC", app()._coll._datadoc); + scperc.setkey(2); + } + + TRectype rec(scperc.curr()); + bool trovato = FALSE; + bool one_rec = FALSE; + + scperc.read(); + + if (scperc.eof()) + { + one_rec = TRUE; + nprog = scperc.get_long("NPROG"); + numdoc = scperc.get("NUMDOC"); + + trovato = scperc.curr() == rec; + +/* if (variazione) + trovato = scperc.curr() == rec; // (numdoc == app()._coll._numdoc); + else + trovato = scperc.curr() == rec; */ + } + else + for ( ; !scperc.eof(); scperc.next()) + { + if (trovato || scperc.curr() > rec) break; + numdoc = scperc.get("NUMDOC"); + numdoc.trim(); + nprog = scperc.get_long("NPROG"); + +// trovato = scperc.curr() == rec; + + if (variazione) + trovato = (numdoc == app()._coll._numdoc); + } + +// Azzero nprog se la scheda non e' quella giusta + if (variazione || one_rec) + if (!trovato) nprog = 0L; + + app()._last_scheda = nprog; + + m.set(F_NPROG, variazione ? nprog : nprog+1); + + return TRUE; +} + +bool TSchedaPercipienti::codditta_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; +// Se chiamata dalla contabilita' prendo ditta con get_firm + if (app().tipo_coll() == nessuno) + codditta << get_firm_770(); + else + codditta << app().get_firm(); + + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + return TRUE; +} + +bool TSchedaPercipienti::codanagr_handler(TMask_field& f, KEY k) +{ +// if (k == K_TAB && f.focusdirty()) +// Faccio sempre l'output di codesto numeretto + if (k == K_TAB) + { + TMask& m = f.mask(); + const bool variazione = app().coll_variazione(); + char tipo = f.mask().get(F_TIPOA)[0]; + TString16 codanagr(f.get()); + if (codanagr.not_empty()) + setta_nprog(m, variazione, codanagr); + } + + return TRUE; +} + +bool TSchedaPercipienti::esiste_perc(TMask& m, const char* codanag) +{ + const char tipoa = m.get(F_TIPOA)[0]; + TString16 codanagr(codanag ? codanag : m.get(F_CODANAGR)); + +// Controllo che l'anagrafica esista + TLocalisamfile anag(LF_ANAG); + anag.zero(); + anag.put("TIPOA", tipoa); + anag.put("CODANAGR", codanagr); + const bool esiste_anagr = anag.read() == NOERR; + + return esiste_anagr; +} + +// Passa al modo inserimento/modifica. +bool TSchedaPercipienti::nprog_handler(TMask_field& f, KEY key) +{ + if (!f.mask().is_running()) + return TRUE; + + const int nprog = atoi(f.get()); + + if (key == K_ENTER) + if (app()._flag_cg) + { + app()._flag_cg = FALSE; // avoid recursion + if (nprog==0 || !app().esiste_perc(f.mask())) + return FALSE; + + f.mask().stop_run(K_AUTO_ENTER); + } + + if (key == K_TAB) + { + if (nprog==0 || !app().esiste_perc(f.mask())) + return FALSE; + f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica/inserimento + } + return TRUE; +} + +bool TSchedaPercipienti::user_create() +{ + _per = new TLocalisamfile(LF_PERC); + _rel = new TSchedaPE; + _rver = new TLocalisamfile(LF_RVER); + _rpag = new TLocalisamfile(LF_RPAG); + + _pags = new TNikArray_sheet(-1, -1, 0, 0, "Selezione Pagamenti", + "@1|Data@11|Compenso@16|Spese@16|Ritenuta@16|", + 0,NULL_WIN,5); + + set_search_field(F_CODANAGRPERC); + +// Collegamento da contabilita' + TMailbox m; + TMessage* msg = m.next_s("LINK770"); + + if (msg != NULL) + { + if ( !_coll.read(msg->body()) ) +#ifdef DBG + return warning_box("Errore nei parametri passati"); +#endif + ; + + const long ditta_cg = get_firm(); + if (!exist_dichiar_770(ditta_cg)) + if (yesno_box("Creo la dichiarazione per la ditta %ld", ditta_cg)) + if (!enter_dichiar_770(ditta_cg)) +#ifdef DBG + return warning_box("Creazione dichiarazione fallita!"); +#endif + ; + + } + + load_mask(0); + + return TRUE; +} + +bool TSchedaPercipienti::user_destroy() +{ + if (_msk[1] != NULL) delete _msk[1]; + if (_msk[0] != NULL) delete _msk[0]; + + delete _rel; delete _per; delete _rver; + delete _rpag; delete _pags; + + return TRUE; +} + +// +// COMPILA_TESTATA +// +// Usata nel collegamento da cg +// +void TSchedaPercipienti::compila_testata(TMask& m) +{ + m.set(F_DATADOC, _coll._datadoc); + m.set(F_NUMDOC, _coll._numdoc); + + m.set(F_IVA, _coll._imposte.string()); + m.set(F_SPESE, _coll._spese.string()); + m.set(F_COMPENS, _coll._compenso.string()); + + switch (tipo_coll()) + { + case ritenuta: + m.set(F_COMPENS, _coll._compenso.string()); + m.set(F_TOTDOC, _coll._compenso.string()); + break; + case fattura: + m.set(F_TOTDOC, _coll._totdoc.string()); + m.set(F_TOTRIT, _coll._ritenute.string()); + break; + default: + break; + } +} + +bool TSchedaPercipienti::coll_variazione() const +{ + return _coll._immissione == 'M' || tipo_coll() == pagamento || + tipo_coll() == pagamento_piu_perc; +} + +void TSchedaPercipienti::init_mask(TMask& m) +{ + update_lasts(m); + + if (tipo_coll() != nessuno) + { + const bool variazione = coll_variazione(); + if (!variazione) compila_testata(m); + switch (tipo_coll()) + { + case pagamento: + case ritenuta: +// Compilo riga di pagamento SOLO SE NON ce ne sono gia'.. + if ( (tipo_coll() == pagamento && _rel->pag_items() == 0) + || + tipo_coll() == ritenuta ) + { + const real totrit(m.get(F_TOTRIT)); + const real totdoc(m.get(F_TOTDOC)); + const real compenso(m.get(F_COMPENS)); + const real spese(m.get(F_SPESE)); + + if ( (tipo_coll() == pagamento && ( _coll._compenso + totrit == totdoc) ) + || + (tipo_coll() == ritenuta) ) + { + TSheet_field& pags = (TSheet_field&)m.field(F_PAGAMENTI); + TRectype rpag(_rel->pag(0)); + rpag.zero(); + real& imponibile = _coll._compenso; + + rpag.put("DATAPAG", _coll._datadoc); + rpag.put("COMPENSO", compenso); + + const real impo_calc = calcola_imponibile(compenso); + rpag.put("IMPONIBILE", impo_calc); + + rpag.put("SPESA", spese); + + const real rite_calc = calcola_ritenuta(impo_calc); + rpag.put("RITENUTA", rite_calc); + + real perc = (rite_calc * 100) / impo_calc; + perc.round(2); + rpag.put("PERC", perc); + rpag.put("NUMVERS", (long)-1); + const real netto = compenso - rite_calc + spese; + rpag.put("NETTO", netto); +// Update spreadsheet + rec2row(pags.row(0), rpag, 0); + pags.force_update(); + } + } + break; + default: + break; + } + } + fill_sheet(m); +} + +void TSchedaPercipienti::get_ragsoc(const char* tipoa, const long codanagr) +{ + TLocalisamfile anag(LF_ANAG); + anag.zero(); + anag.setkey(1); + anag.put("TIPOA", tipoa); + anag.put("CODANAGR", codanagr); + const int rc = anag.read(); + if (rc != NOERR) + anag.zero(); + _ragsoc = anag.get("RAGSOC"); +} + +void TSchedaPercipienti::init_modify_mode(TMask& m) +{ + _from_modify = TRUE; + _codanagr = m.get_long(F_CODANAGR); + _tipoa = m.get(F_TIPOA); + get_ragsoc(_tipoa, _codanagr); + init_mask(m); +} + +void TSchedaPercipienti::init_insert_mode(TMask& m) +{ + init_mask(m); +} + +void TSchedaPercipienti::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL); +} + +void TSchedaPercipienti::init_query_mode(TMask& m) +{ + m.set(F_ANNODIC, _anno_dic); + +// Controllo se chiamata dalla contabilita' + if (tipo_coll() != nessuno) + { + const bool variazione = coll_variazione(); + _flag_cg = TRUE; + TString16 tipo(""); + tipo << _coll._tipo; + m.set(F_TIPOA, tipo); + if (_coll._codanagr != 0L) + { + m.set(F_CODANAGR, _coll._codanagr); + m.set(F_CODANAGRPERC, _coll._codanagr, TRUE); + m.set(F_CODANAGRCOM, _coll._codanagr); + } + + switch (tipo_coll()) + { + case fattura: + setta_nprog(m, variazione); + m.send_key(K_AUTO_ENTER,0); + return; + break; + case pagamento: + if (coll_datanum()) + { + setta_nprog(m, variazione); + m.send_key(K_AUTO_ENTER, 0); + } + return; + break; + case ritenuta: + /* + setta_nprog(m,FALSE); // Sempre in aggiunta + m.send_key(K_AUTO_ENTER, 0); */ + return; + break; + default: + break; + } + } + + if (_from_modify) + { + m.set(F_TIPOA, _tipoa); + m.set(F_CODANAGR, _codanagr); + m.set(F_CODANAGRPERC, _codanagr); + m.set(F_CODANAGRCOM, _codanagr); + m.set(F_RAGSOCPER, _ragsoc); + m.set(F_RAGSOCCOM, _ragsoc); + } + else + { + m.send_key(K_SHIFT+K_CTRL+'h', -1); // group 1 Scelta ANAGR + m.send_key(K_SHIFT+K_CTRL+'s', -2); // group 3 Ricerca su DATI PER + } + + _from_modify = FALSE; + +// forza il ricalcolo dell'ultimo numero disponibile + TString16 dummy(m.get(F_NPROG)); + if (dummy.not_empty()) + setta_nprog(m); +} + +void TSchedaPercipienti::init_query_insert_mode(TMask& m) +{ + m.set(F_ANNODIC, _anno_dic); + +// Se vengo da modifica mantieni la selezione precedente + if (_from_modify) + { + m.set(F_TIPOA, _tipoa); + m.set(F_CODANAGR, _codanagr); + m.set(F_CODANAGRPERC, _codanagr); + m.set(F_CODANAGRCOM, _codanagr); + m.set(F_RAGSOCPER, _ragsoc); + m.set(F_RAGSOCCOM, _ragsoc); + } + else + { + m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 3 Nasconde ricerca su PERC + m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR + } +} + +void TSchedaPercipienti::rec2row(TToken_string& r, TRectype& rec, int row) +{ + TString16 dver, dpag, serie, numero, rite; + TString16 comp, impo, perc, spesa, netto; + TString16 nrigavers, numpag, progrbanca; + TString SsnPerc, SsnCompl; + + r = ""; + if (rec.num() == LF_RVER) + { + char v1015 = rec.get_bool("VERS1015") ? 'X' : ' '; + dver = rec.get("DATAVERS"); + char tv = rec.get_char("TIPOVERS"); + char lv = rec.get_char("LUOVERS"); + serie = rec.get("SERIE"); + numero = rec.get("NUMERO"); + rite = rec.get("RITENUTA"); + progrbanca = rec.get("PROGBANC"); + nrigavers = rec.get("NRIGA"); + + if (rite.empty()) rite = " "; + if (progrbanca.empty()) progrbanca = " "; + if (nrigavers.empty()) nrigavers = " "; + if (serie.empty()) serie = " "; + if (numero.empty()) numero = " "; + + r.add(v1015, 0); + r.add(dver,1); + r.add(lv == '\0' ? ' ' : lv); + r.add(tv == '\0' ? ' ' : tv); + r.add(serie); + r.add(numero); + r.add(progrbanca); + r.add(rite); + r.add(nrigavers); + + if (v1015 == 'X') + disable_vers_cells(row); + else + enable_vers_cells(row); + } + + if (rec.num() == LF_RPAG) + { + dpag = rec.get("DATAPAG"); + comp = rec.get("COMPENSO"); + impo = rec.get("IMPONIBILE"); + perc = rec.get("PERC"); + rite = rec.get("RITENUTA"); + spesa = rec.get("SPESA"); + netto = rec.get("NETTO"); + SsnPerc = rec.get("CTSSNPERC"); + SsnCompl = rec.get("CTSSNCOMP"); + nrigavers = rec.get("NUMVERS"); + + r.add(dpag); r.add(comp); + r.add(spesa); r.add(impo); + r.add(perc); r.add(rite); + r.add(SsnPerc); r.add(SsnCompl); + r.add(netto); + r.add(nrigavers); + } +} + +int TSchedaPercipienti::read(TMask& m) +{ + m.autoload(_rel); + + TSheet_field& pags = (TSheet_field&)m.field(F_PAGAMENTI); + pags.destroy(); + + for (int r = 0; r < _rel->pag_items(); r++) + rec2row(pags.row(r), _rel->pag(r), r); + + TSheet_field& vers = (TSheet_field&)m.field(F_VERSAMENTI); + vers.destroy(); + + for (r = 0; r < _rel->ver_items(); r++) + rec2row(vers.row(r), _rel->ver(r), r); + + return 0; +} + +void TSchedaPercipienti::enable_vers_cells(int r, bool enable) +{ + TSheet_field& ver = vers(); + for (int i=1; irewrite(); + scrivi_dati_per(_rel->curr()); +// update_lasts(); // aggiorna lastvers e lastpag + return err; +} + +int TSchedaPercipienti::write(const TMask& m) +{ + mask2rel(m); + const int err = _rel->write(); + scrivi_dati_per(_rel->curr()); +// update_lasts(); // aggiorna lastvers e lastpag + return err; +} + +bool TSchedaPercipienti::check_compensi(TMask_field& f, KEY k) +{ + if (k == K_ENTER) + { + const bool forzatura = f.mask().get_bool(F_FORCED); + real doc_compenso(f.get()); + + if (app()._tot_compenso > doc_compenso) + { + warning_box ("Il totale dei compensi non puo' superare\n" + "il compenso indicato nel documento"); + + return forzatura; + } + } + return TRUE; +} + +bool TSchedaPercipienti::check_spese(TMask_field& f, KEY k) +{ + if (k == K_ENTER) + { + const bool forzatura = f.mask().get_bool(F_FORCED); + real doc_spese(f.get()); + + if (app()._tot_spese > doc_spese) + { + warning_box ("Il totale delle spese non puo' superare\n" + "la spesa indicata nel documento"); + return forzatura; + } + } + return TRUE; +} + +// +// Calcola: +// +// totale compenzi +// totale spese +// totale netti pagati +// +// - NB - +// FUNZIONA SOLO SE PASSA PRIMA DI QUA! +// +bool TSchedaPercipienti::check_handler(TMask_field& f, KEY k) +{ + if (k == K_ENTER) + { + const bool forzatura = f.mask().get_bool(F_FORCED); + int i; + TArray& rpag = app().pags().rows_array(); + + app()._tot_compenso = ZERO; + app()._tot_spese = ZERO; + app()._tot_netto = ZERO; + app()._tot_rit = ZERO; + +// Calcolo totale compensi e totale spese e totale netti + for (i = 0; i < rpag.items(); i++) + { + TToken_string& row = (TToken_string&)rpag[i]; + + if (app().my_empty_items(row, FALSE)) continue; + + real compenso (row.get(1)); + real spese (row.get(2)); + real ritenuta (row.get(5)); + real netto (row.get(8)); + + app()._tot_compenso += compenso; + app()._tot_spese += spese; + app()._tot_netto += netto; + app()._tot_rit += ritenuta; + } + + /**const real somma = doc_compenso + doc_spese; + if (tot_netto > somma) + { + warning_box ("Il totale dei netti pagati non puo' superare\n" + "la somma del compenso e della spesa indicate nel documento"); + return forzatura; + }**/ + + TArray& rver = app().vers().rows_array(); + app()._tot_vers = ZERO; + +// Calcola totale versato + for (i = 0; i < rver.items(); i++) + { + TToken_string& row = (TToken_string&)rver[i]; + if (app().my_empty_items(row, TRUE)) continue; + real versato (row.get(7)); + app()._tot_vers += versato; + } + + app()._tot_rit.round(0); + app()._tot_vers.round(0); + + const real THRESOLD = 500.00; + const real diff = app()._tot_vers - app()._tot_rit; + + if (diff > ZERO) + if (diff > THRESOLD) + { + warning_box ("La differenza tra il totale dei versamenti " + "e il totale delle ritenute non puo' superare " + "le %s lire", THRESOLD.string()); + return forzatura; + } + } + return TRUE; +} + +// Trasferisce i dati dalla maschera alla relazione +void TSchedaPercipienti::mask2rel(const TMask& m) +{ + _rel->lfile().zero(); + m.autosave(_rel); + + const long codditta = m.get_long(F_CODDITTA); + const char tipoa = m.get(F_TIPOA)[0]; + const long codanagr = m.get_long(F_CODANAGR); + const int nprogr = m.get_int(F_NPROG); + + _rel->destroy_rows(); // Destroy all records + pag_pack(); // Destroy all null rows + + TArray& rows = pags().rows_array(); + + for (int i = 0; i < rows.items(); i++) + { + TToken_string& row = (TToken_string&)rows[i]; + TRectype &r = _rel->pag(i); + + long nriga = i + 1; + + r.zero(); + r.put("CODDITTA", codditta); + r.put("TIPOA", tipoa); + r.put("CODANAGR", codanagr); + r.put("NPROG", nprogr); + r.put("NRIGA", nriga); + +// LEGGO SPREADSHEET PAGAMENTI + TString16 datap = row.get(0); + const TDate datapag(datap); + real compenso (row.get(1)); + real spese (row.get(2)); + real imponibile(row.get(3)); + const real aliquota(row.get(4)); + real ritenuta (row.get(5)); + real SsnPerc (row.get(6)); + real SsnCompl (row.get(7)); + real compnetto (row.get(8)); + const int numvers (row.get_int(9)); +// const int numpag (row.get_int(8)); + + r.put("DATAPAG", datapag); + r.put("COMPENSO", compenso); + r.put("IMPONIBILE", imponibile); + r.put("PERC", aliquota); + r.put("RITENUTA", ritenuta); + r.put("SPESA", spese); + r.put("NETTO", compnetto); + r.put("NUMVERS", (long)numvers); + r.put("CTSSNPERC", SsnPerc); + r.put("CTSSNCOMP", SsnCompl); +// r.put("NUMPAG", (long)nriga); +// r.put("NUMPAG", (long)numpag); + } + +// ver_pack(); // Destroy all null rows + + rows = vers().rows_array(); + + for (i = 0; i < rows.items(); i++) + { + TToken_string& row = (TToken_string&)rows[i]; + TRectype &r = _rel->ver(i); + + if (my_empty_items(row, TRUE)) + continue; // non salvare righe vuote + + long nriga = i+1; + + r.zero(); + r.put("CODDITTA", codditta); + r.put("TIPOA", tipoa); + r.put("CODANAGR", codanagr); + r.put("NPROG", nprogr); + r.put("NRIGA", nriga); + +// LEGGO SPREADSHEET VERSAMENTI + const bool vers1015 = (row.get_char(0) == 'X'); + TString16 datav = row.get(1); + const TDate dataver(datav); + + const char luogo = row.get_char(2); + const char tipo = row.get_char(3); + + TString16 serie(row.get(4)); + TString numero(row.get(5)); + const long ProgBanca = row.get_long(6); + real ritenuta (row.get(7)); + const int numvers (row.get_int(8)); + + r.put("VERS1015", vers1015); + r.put("DATAVERS", dataver); + r.put("LUOVERS", luogo); + r.put("TIPOVERS", tipo); + + r.put("SERIE", serie); + r.put("NUMERO", numero); + r.put("PROGBANC", (long)ProgBanca); + r.put("RITENUTA", ritenuta); +// r.put("NUMVERS", (long)nriga); +// r.put("NUMVERS", (long)numvers); + } +} + +int SchedaPerc (int argc, char* argv[]) +{ + TSchedaPercipienti a; + a.run(argc, argv, "Scheda Percipienti"); + return 0; +} diff --git a/m770/770100a.h b/m770/770100a.h new file mode 100755 index 000000000..7d4d0e198 --- /dev/null +++ b/m770/770100a.h @@ -0,0 +1,74 @@ +#ifndef __770100a_H +#define __770100a_H + +// m70100a +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_TIPOA 103 +#define F_CODANAGR 104 +#define F_TIPOAPER 105 +//#define F_CODANAGRPER 106 +#define F_TIPOACOM 107 +#define F_CODANAGRCOM 108 +#define F_ANNODIC 109 +#define F_RICERCA 110 +#define F_RAGSOC 111 + +#define F_CODANAGRPERC 112 +#define F_NPROGA 113 +#define F_IC 114 +#define F_CT 115 +#define F_RIT 116 +#define F_ARTBIL 117 + +#define F_CODDITTA2 118 +#define F_TIPOA2 119 +#define F_NPROG2 120 + +// m70100b +#define F_NPROG 121 +#define F_CODCAUS 122 +#define F_DESCRCAUS 123 +#define F_CODTRIB 124 +#define F_DATADOC 125 +#define F_NUMDOC 126 +#define F_COMPENS 127 +#define F_SPESE 128 +#define F_IVA 129 +#define F_TOTDOC 130 +#define F_PAGAMENTI 131 +#define F_VERSAMENTI 132 +#define F_MESECOMP 133 +#define F_ANNOCOMP 134 + +#define F_QUOTAIMP 136 +#define F_PERRIT 137 + +#define F_RAGSOCCOM 138 +#define F_RAGSOCPER 139 +#define F_CODQUA 140 + +#define DLG_SELPAG 100 // Bottone di selezione +#define DLG_AZZERA 150 +#define DLG_AZZERAPAG 151 + +#define F_FORCED 142 + +#define F_CODANAGR_G 144 +#define F_RAGSOC2 145 +#define F_TOTRIT 146 +#define F_GESTPERC 147 + +#define SPF_CAUSD 148 +#define SPF_CAUSD1 149 + +#define PAGF_NUMVERS 110 // nascosto, usato in load_pags +#define VERF_NUMVERS 109 + +#define F_PERC_ASS_INPS 150 +#define F_PERC_COMMIT_INPS 151 +#define F_FLAG_INPS 152 +#define F_PERC_INPS 153 +#define F_CASSA_PREV 154 + +#endif diff --git a/m770/770100a.uml b/m770/770100a.uml new file mode 100755 index 000000000..0d7fef322 --- /dev/null +++ b/m770/770100a.uml @@ -0,0 +1,167 @@ +#include "770100a.h" +TOOLBAR "" 0 18 0 4 + +BUTTON F_GESTPERC 21 2 +BEGIN + PROMPT -13 -3 "~Percipienti" + MESSAGE RUN,775,-0,#F_CODDITTA,#F_TIPOA,#F_CODANAGR +END + +#include + +ENDPAGE + +PAGE "MODULO 770 - SCHEDA PERCIPIENTI" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "RDG" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_SCPERC->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati percipiente" +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 8 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + CHECKTYPE REQUIRED + KEY 1 + FIELD LF_SCPERC->TIPOA +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_SCPERC->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGRPERC 5 +BEGIN + PROMPT 15 8 "" + USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (TIPOA=#F_TIPOA)) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRPERC + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRPERC CODANAGR + OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC + MESSAGE COPY, F_CODANAGR + ADD RUN 775 -0 + GROUP 2 +END + +NUMBER F_CODANAGRCOM 5 +BEGIN + PROMPT 15 8 "" + USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRCOM + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + MESSAGE COPY, F_CODANAGR + MESSAGE COPY, F_CODANAGRPERC + ADD RUN BA4 -1 + FLAGS "H" + GROUP 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 8 "" + FLAGS "H" +END + +STRING F_RAGSOCCOM 50 +BEGIN + PROMPT 25 8 "" + USE LF_ANAG KEY 2 + INPUT RAGSOC F_RAGSOCCOM + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_TIPOA TIPOA + ADD RUN BA4 -1 + MESSAGE COPY, F_RAGSOC + MESSAGE COPY, F_RAGSOCPER + GROUP 1 +END + +STRING F_RAGSOCPER 50 +BEGIN + PROMPT 25 8 "" + FLAGS "D" + GROUP 2 + MESSAGE COPY, F_RAGSOC +END + +NUMBER F_NPROG 6 +BEGIN + PROMPT 1 10 "@bScheda numero " + CHECKTYPE REQUIRED + KEY 1 + FIELD LF_SCPERC->NPROG + USE LF_SCPERC + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR SELECT + INPUT NPROG F_NPROG + DISPLAY "N°" NPROG + DISPLAY "Data doc.@10" DATADOC + DISPLAY "Num.@8" NUMDOC + DISPLAY "Cau." CODCAUS + DISPLAY "Tot. doc.@15" TOTALE + DISPLAY "Compenso@15" COMPENSO + DISPLAY "Spese@15" SPESE + DISPLAY "Iva@15" IVA + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_NPROG NPROG +END + +ENDPAGE + +ENDMASK + diff --git a/m770/770100b.uml b/m770/770100b.uml new file mode 100755 index 000000000..9989089dc --- /dev/null +++ b/m770/770100b.uml @@ -0,0 +1,331 @@ +#include "770100a.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "Scheda percipienti" -1 -1 78 20 + +NUMBER F_CODDITTA 5 +BEGIN + FLAGS "AH" + FIELD LF_SCPERC->CODDITTA + KEY 1 +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 0 0 "" + FIELD LF_SCPERC->TIPOA + ITEM "F|Fisica" + ITEM "G|Giuridica" + KEY 1 + FLAGS "D" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 14 0 "" + FIELD LF_SCPERC->CODANAGR + MESSAGE COPY, F_CODANAGR_G + KEY 1 + FLAGS "D" +END + +NUMBER F_CODANAGR_G 5 +BEGIN + PROMPT 17 0 "" + USE LF_ANAG KEY 1 + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_RAGSOC2 RAGSOC + CHECKTYPE REQUIRED + FLAGS "HG" +END + +STRING F_RAGSOC2 45 +BEGIN + PROMPT 24 0 "" + FLAGS "D" +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 72 0 "" + FIELD LF_SCPERC->NPROG + FLAGS "D" + KEY 1 +END + +STRING F_CODCAUS 2 +BEGIN + FIELD LF_SCPERC->CODCAUS + PROMPT 0 1 "" + USE %CA7 SELECT ((I0!="1015") && ((S1="C")||(S1="D")||(S1="D1")||(S1="E")||(S1="E1")||(S1="E2")) + CHECKTYPE REQUIRED + INPUT CODTAB F_CODCAUS + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + DISPLAY "C.T." B2 + DISPLAY "T.S." B3 + DISPLAY "R.A." B0 + DISPLAY "Causale D" S2 + DISPLAY "Causale D1" S3 + OUTPUT F_CODCAUS CODTAB + OUTPUT F_CODTRIB I0 + OUTPUT F_DESCRCAUS S0 + OUTPUT F_CODQUA S1 + OUTPUT F_ARTBIL I3 + OUTPUT F_IC B3 + OUTPUT F_CT B2 + OUTPUT F_RIT B0 + OUTPUT F_QUOTAIMP R4 + OUTPUT F_PERRIT R0 + OUTPUT F_FLAG_INPS B4 + OUTPUT F_PERC_INPS R1 + OUTPUT F_PERC_ASS_INPS R2 + OUTPUT F_PERC_COMMIT_INPS R3 + OUTPUT F_CASSA_PREV R5 + OUTPUT SPF_CAUSD S2 + OUTPUT SPF_CAUSD1 S3 + FLAGS "Z" + WARNING "Manca la causale" + ADD RUN 773 -3 %CA7 +END + +NUMBER F_PERC_INPS 6 +BEGIN + PROMPT 1 10 "" + PICTURE ".2" + FLAGS "H" +END + +NUMBER F_PERC_ASS_INPS 6 +BEGIN + PROMPT 1 11 "" + PICTURE ".2" + FLAGS "H" +END + +NUMBER F_PERC_COMMIT_INPS 6 +BEGIN + PROMPT 1 12 "" + PICTURE ".2" + FLAGS "H" +END + +BOOLEAN F_FLAG_INPS +BEGIN + PROMPT 1 13 "" + FLAGS "H" +END + +NUMBER F_CASSA_PREV 6 +BEGIN + PROMPT 1 14 "" + PICTURE ".2" + FLAGS "H" +END + +STRING F_CODQUA 2 +BEGIN + PROMPT 12 1 "" + FLAGS "D" +END + +NUMBER F_CODTRIB 4 +BEGIN + PROMPT 6 1 "" + FLAGS "D" +END + +STRING F_DESCRCAUS 60 +BEGIN + PROMPT 16 1 "" + FLAGS "D" +END + +NUMBER F_ARTBIL 2 +BEGIN + PROMPT 0 2 "Art.bil." + FLAGS "D" +END + +BOOLEAN F_IC +BEGIN + PROMPT 13 2 "T.S." + FLAGS "D" +END + +BOOLEAN F_CT +BEGIN + PROMPT 22 2 "C.T." + FLAGS "D" +END + +BOOLEAN F_RIT +BEGIN + PROMPT 29 2 "Rit." + FLAGS "D" +END + +NUMBER F_QUOTAIMP 6 +BEGIN + PROMPT 1 1 "" + FLAGS "H" +END + +NUMBER F_PERRIT 5 +BEGIN + PROMPT 1 1 "" + PICTURE ".2" + FLAGS "H" +END + +DATE F_DATADOC +BEGIN + PROMPT 0 3 "Data " + FIELD LF_SCPERC->DATADOC + WARNING "Manca la data del documento" + CHECKTYPE REQUIRED +END + +STRING F_NUMDOC 7 +BEGIN + PROMPT 17 3 "Numero" + FIELD LF_SCPERC->NUMDOC +END + +NUMBER F_COMPENS 15 +BEGIN + PROMPT 32 3 "Compenso " + FIELD LF_SCPERC->COMPENSO + PICTURE "." + FLAGS "R" + MESSAGE K_TAB, F_TOTDOC +END + +NUMBER F_IVA 15 +BEGIN + PROMPT 58 3 "Iva " + FIELD LF_SCPERC->IVA + PICTURE "." + FLAGS "R" + MESSAGE K_TAB, F_TOTDOC +END + +NUMBER F_SPESE 15 +BEGIN + PROMPT 0 4 "Spese " + FIELD LF_SCPERC->SPESE + PICTURE "." + FLAGS "R" + MESSAGE K_TAB, F_TOTDOC +END + +NUMBER F_TOTDOC 15 +BEGIN + PROMPT 23 4 "Totale " + FIELD LF_SCPERC->TOTALE + PICTURE "." + FLAGS "R" + NUM_CALC {#F_COMPENS + #F_SPESE + #F_IVA} +END + +TEXT DLG_NULL +BEGIN + PROMPT 48 4 "Competenza:" +END + +NUMBER F_MESECOMP 2 +BEGIN + PROMPT 59 4 "Mese " + FIELD LF_SCPERC->MESEC + NUM_EXPR {(#THIS>=0) && (#THIS<13)} + WARNING "Mese non valido" + HELP "Inserire il mese di competenza" + FLAGS "Z" +END + +NUMBER F_ANNOCOMP 4 +BEGIN + PROMPT 68 4 "Anno " + FIELD LF_SCPERC->ANNOC + NUM_EXPR {(#THIS==0)||((#THIS>1900)&&(#THIS<2100))} + WARNING "Anno non valido" + HELP "Inserire l'anno di competenza" +END + +NUMBER F_TOTRIT 15 +BEGIN + PROMPT 53 5 "" + FIELD LF_SCPERC->TOTRIT + FLAGS "H" +END + +STRING SPF_CAUSD 1 +BEGIN + PROMPT 38 2 "Causale D " + FLAGS "D" +END + +STRING SPF_CAUSD1 1 +BEGIN + PROMPT 52 2 "Causale D1 " + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 5 "@bPagamenti" +END + +SPREADSHEET F_PAGAMENTI 0 6 +BEGIN + PROMPT 0 6 "" + ITEM "Data@10" + ITEM "Compenso@15" + ITEM "Spese@15" + ITEM "Imponibile@15" + ITEM "% R.a.@7" + ITEM "Ritenuta effettuata" + ITEM "Cont.SSN/INPS perc." + ITEM "Cont.SSN/INPS complessivi" + ITEM "Netto corrisposto" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 12 "@bVersamenti" +END + +SPREADSHEET F_VERSAMENTI 79 5 +BEGIN + PROMPT 0 13 "" + ITEM "1015" + ITEM "Data@10" + ITEM "Luogo" + ITEM "Tipo" + ITEM "Serie-ABI@5" + ITEM "Numero-CAB@11" + ITEM "Progressivo banca" + ITEM "Ritenuta@15" + WARNING "Versamento inconsistente" +END + +BOOLEAN F_FORCED +BEGIN + FIELD LF_SCPERC->FORZATURA + PROMPT 1 18 "Forzatura" + HELP "Attivare questo flag per forzare la registrazione anche di dati incongruenti" +END + +ENDPAGE + +ENDMASK + +#include "770100c.uml" +#include "770100d.uml" + diff --git a/m770/770100c.uml b/m770/770100c.uml new file mode 100755 index 000000000..83e036a91 --- /dev/null +++ b/m770/770100c.uml @@ -0,0 +1,109 @@ +// m70100c.uml - masksheet riga pagamento +PAGE "Pagamento " -1 -1 66 13 + +DATE 101 +BEGIN + PROMPT 1 1 "Data pagamento " + FIELD LF_RPAG->DATAPAG + GROUP 1 +END + +GROUPBOX DLG_NULL 65 7 +BEGIN + PROMPT 1 2 "" +END + +NUMBER 102 15 +BEGIN + PROMPT 2 3 "Compenso " + PICTURE "." + FLAGS "R" + FIELD LF_RPAG->COMPENSO + GROUP 1 +END + +NUMBER 103 15 +BEGIN + PROMPT 38 3 "Spese " + PICTURE "." + FLAGS "R" + FIELD LF_RPAG->SPESA + GROUP 1 +END + +NUMBER 104 15 +BEGIN + PROMPT 2 4 "Imponibile " + PICTURE "." + FLAGS "R" + FIELD LF_RPAG->IMPONIBILE + GROUP 1 +END + +NUMBER 105 6 +BEGIN + PROMPT 2 5 "% Ritenuta " + FLAGS "R" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + FIELD LF_RPAG->PERC + PICTURE ".2" + GROUP 1 +END + +NUMBER 106 15 +BEGIN + PROMPT 38 5 "Ritenuta " + PICTURE "." + FLAGS "R" + FIELD LF_RPAG->RITENUTA + GROUP 1 +END + +NUMBER 107 15 +BEGIN + PROMPT 2 6 "Contributi SSN/INPS a carico del percipiente " + PICTURE "." + GROUP 1 +END + +NUMBER 108 15 +BEGIN + PROMPT 2 7 "Contributi SSN/INPS complessivi " + PICTURE "." + GROUP 1 +END + +NUMBER 109 15 +BEGIN + PROMPT 2 9 "Netto corrisposto " + PICTURE "." + FLAGS "RD" + FIELD LF_RPAG->NETTO + GROUP 1 +END + +NUMBER PAGF_NUMVERS 6 +BEGIN + PROMPT 38 21 "VER " + FLAGS "D" +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_AZZERAPAG 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK diff --git a/m770/770100d.uml b/m770/770100d.uml new file mode 100755 index 000000000..ccc4e65cf --- /dev/null +++ b/m770/770100d.uml @@ -0,0 +1,185 @@ +// m70100d.uml - VERSAMENTI +PAGE "Versamento " -1 -1 68 11 + +BOOLEAN 101 +BEGIN + PROMPT 1 1 "Codice tributo 1015 " + FIELD LF_RVER->VERS1015 +END + +GROUPBOX DLG_NULL 68 3 +BEGIN + PROMPT 1 2 "@bDati versamento" +END + +DATE 102 +BEGIN + PROMPT 2 3 "Data " + FIELD LF_RVER->DATAVERS + VALIDATE REQIF_FUNC 4 103 104 105 106 107 + WARNING "Inserire la data del versamento" + GROUP 1 +END + +STRING 103 1 +BEGIN + PROMPT 19 3 "Luogo " + HELP "Indicare il luogo del versamento" + SHEET "Cod.|Descrizione@30" + INPUT 103 + ITEM " |Nessuno" + ITEM "T|Tesoreria" + ITEM "C|Concessione" + OUTPUT 103 + OUTPUT 71 + FLAGS "U" + FIELD LF_RVER->LUOVERS + CHECKTYPE REQUIRED + GROUP 1 +END + +STRING 71 12 +BEGIN + PROMPT 29 3 "" + FLAGS "D" +END + +TEXT 209 +BEGIN + PROMPT 2 5 "Serie " + GROUP 2 4 +END + +TEXT 210 +BEGIN + PROMPT 2 5 "Codice ABI " + GROUP 2 6 +END + +TEXT 212 +BEGIN + PROMPT 25 5 "Codice CAB " + GROUP 2 6 +END + +TEXT 213 +BEGIN + PROMPT 25 5 "Quietanza " + GROUP 2 3 +END + +TEXT 211 +BEGIN + PROMPT 25 5 "Numero " + GROUP 2 4 5 +END + +STRING 104 1 +BEGIN + PROMPT 42 3 "Tipo " + FIELD LF_RVER->TIPOVERS + SHEET "Cod.|Descrizione@30" + INPUT 104 + ITEM " |Nessuno" + ITEM "C|C/C Postale" + ITEM "D|Distinta" + ITEM "B|Delega bancaria" + OUTPUT 104 + OUTPUT 70 + GROUP 1 + CHECKTYPE REQUIRED + FLAGS "U" +END + +STRING 70 16 +BEGIN + PROMPT 51 3 "" + FLAGS "D" +END + +STRING 105 5 +BEGIN + PROMPT 16 5 "" + FIELD LF_RVER->SERIE + FLAGS "G" + WARNING "Inserire la serie" + HELP "Inserire la serie" + GROUP 1 2 4 6 +END + +STRING 106 11 +BEGIN + PROMPT 39 5 "" + FIELD LF_RVER->NUMERO + VALIDATE REQIF_FUNC 2 103 104 + WARNING "Inserire il numero" + HELP "Inserire il numero" + MESSAGE COPY,72 + FLAGS "G" + GROUP 1 2 3 4 5 +END + +STRING 72 5 +BEGIN + PROMPT 39 5 "" + FIELD LF_RVER->NUMERO + VALIDATE REQIF_FUNC 2 103 104 + WARNING "Inserire il codice CAB" + HELP "CODICE CAB LUNGO 5" + MESSAGE COPY,106 + FLAGS "HG" + GROUP 2 6 +END + +NUMBER 107 6 +BEGIN + PROMPT 2 6 "Progressivo per versamento banca " + FLAGS "DZ" + GROUP 2 6 +END + +// "Se indico la data aloora devo indicare anche l'importo" +NUMBER 108 15 +BEGIN + PROMPT 2 7 "Importo versato " + PICTURE "." + FLAGS "R" + FIELD LF_RVER->RITENUTA + VALIDATE REQIF_FUNC 1 102 + WARNING "Inserire la ritenuta" + HELP "Inserire la ritenuta" + GROUP 3 +END + +NUMBER VERF_NUMVERS 6 +BEGIN + PROMPT 1 8 "NUMVERS " + FLAGS "H" +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -14 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -24 -1 "" + MESSAGE CLEAR,103|CLEAR,104|CLEAR,105|CLEAR,106|CLEAR,107|CLEAR,108 +END + +BUTTON DLG_AZZERA 9 2 +BEGIN + PROMPT -34 -1 "Azzera" + MESSAGE RESET,1@|RESET,2@|RESET,3@|RESET,101 +END + +BUTTON DLG_SELPAG 9 2 +BEGIN + PROMPT -44 -1 "~Pagamenti" + HELP "Seleziona i pagamenti collegati" +END + +ENDPAGE + +ENDMASK diff --git a/m770/770101.cpp b/m770/770101.cpp new file mode 100755 index 000000000..fbff8a055 --- /dev/null +++ b/m770/770101.cpp @@ -0,0 +1,236 @@ +#include +#include +#include "770101.h" +#include "perc.h" +#include "scperc.h" +#include "rver.h" +#include "rpag.h" +#include "../cg/cg2103.h" + +// Calcola l'anno di esercizio di una data +// Certified 99% +int date2esc(const TDate& d, int* prevesc) +{ + if (prevesc) *prevesc = 0; + TTable esc("ESC"); + for (int err = esc.first(); err == NOERR; err = esc.next()) + { + const TDate ia(esc.get("D0")); // Data inizio esercizio + const TDate fa(esc.get("D1")); // Data fine esercizio + TString16 sanno(esc.get("CODTAB")); sanno.cut(4); + const int anno = atoi(sanno); + if (d >= ia && d <= fa) + return anno; + if (prevesc) *prevesc = anno; + } + return 0; +} + +/////////////////////////////////////////////////////////// +// Scheda Percipiente +/////////////////////////////////////////////////////////// + +TSchedaPE::TSchedaPE() +: TRelation(LF_SCPERC), _old_ver(0), _old_pag(0) +{ + add(LF_RVER, "CODDITTA==CODDITTA|TIPOA==TIPOA|CODANAGR==CODANAGR|NPROG==NPROG"); + add(LF_RPAG, "CODDITTA==CODDITTA|TIPOA==TIPOA|CODANAGR==CODANAGR|NPROG==NPROG"); +} + +void TSchedaPE::destroy_rows() +{ + _pag.destroy(); + _ver.destroy(); +} + +TRectype& TSchedaPE::pag(int i) +{ + TRectype* r = (TRectype*)_pag.objptr(i); + if (r == NULL) + { + r = new TRectype(LF_RPAG); + _pag.add(r, i); + } + return *r; +} + +TRectype& TSchedaPE::ver(int i) +{ + TRectype* r = (TRectype*)_ver.objptr(i); + if (r == NULL) + { + r = new TRectype(LF_RVER); + _ver.add(r, i); + } + return *r; +} + +int TSchedaPE::read_scperc_rows() +{ + const TLocalisamfile& rver = lfile(LF_RVER); + const TLocalisamfile& rpag = lfile(LF_RPAG); + position_rels(); + + destroy_rows(); + int i = 0; + +// "Se ho delle righe vuote devo raggruppare" + for(bool ok = is_first_match(LF_RVER); ok; ok = next_match(LF_RVER)) + ver(i++) = rver.curr(); + + _old_ver = ver_items(); + + i = 0; + for(ok = is_first_match(LF_RPAG); ok; ok = next_match(LF_RPAG)) + pag(i++) = rpag.curr(); + + _old_pag = pag_items(); + + return NOERR; +} + +int TSchedaPE::read(TIsamop op, TReclock lockop, TDate& atdate) +{ + int err = file().read(op, lockop, atdate); + if (err == NOERR) err = read_scperc_rows(); + return err; +} + +int TSchedaPE::write_rec(bool re, const TRectype& rec, TLocalisamfile& f) +{ + if (re) + { + const bool scrivi = f.rewrite(rec) != NOERR; + if (scrivi) f.write(rec); + } + else + { + f.write(rec); + } + + return f.status(); +} + +int TSchedaPE::cancella(TLocalisamfile& f, int da, int a) +{ + const long codditta = lfile().get_long(SPR_CODDITTA); + const char tipoa = lfile().get_char(SPR_TIPOA); + const long codanagr = lfile().get_long(SPR_CODANAGR); + const int nprog = lfile().get_int (SPR_NPROG); + + for (int i = da; i <= a; i++) + { + f.zero(); + f.put(VER_CODDITTA, codditta); + f.put(VER_TIPOA , tipoa); + f.put(VER_CODANAGR, codanagr); + f.put(VER_NPROG , nprog); + f.put(VER_NRIGA , i); + if (f.read(_isequal, _lock) == NOERR) + f.remove(); + } + return f.status(); +} + +bool TSchedaPE::empty_vers(TRectype& ver) +{ + TString16 datv(ver.get("DATAVERS")); + TString16 v15(ver.get("VERS1015")); + + datv.trim(); + v15.trim(); + return (datv.empty() && v15.empty()); +} + +int TSchedaPE::registra(bool re, bool force) +{ + TLocalisamfile& sc = lfile(); + + const int err = write_rec(re, sc.curr(), sc); + if (err != NOERR) return err; + + TLocalisamfile& rver = lfile(LF_RVER); + + const long codditta = sc.get_long("CODDITTA"); + const char tipoa = sc.get_char("TIPOA"); + const long codanagr = sc.get_long("CODANAGR"); + const int nprog = sc.get_int ("NPROG"); + + for (int i = 0 ; i < ver_items(); i++) + { + const bool vers_vuoto = empty_vers(ver(i)); + + if (!re) + { + ver(i).put("CODDITTA", codditta); + ver(i).put("TIPOA" , tipoa); + ver(i).put("CODANAGR", codanagr); + ver(i).put("NPROG" , nprog); + } + + ver(i).put("NRIGA" , i+1); + + if (vers_vuoto) + { + if (i < _old_ver) + cancella(rver, i+1, i+1); + } + else + { + const int err = write_rec(re, ver(i), rver); + if (!force && err != NOERR) return err; + } + } + + if (i < _old_ver) + cancella(rver, i+1, _old_ver); + + _old_ver = ver_items(); + + TLocalisamfile& rpag = lfile(LF_RPAG); + + for (i = 0 ; i < pag_items(); i++) + { + if (!re) + { + pag(i).put("CODDITTA", codditta); + pag(i).put("TIPOA" , tipoa); + pag(i).put("CODANAGR", codanagr); + pag(i).put("NPROG" , nprog); + } + pag(i).put("NRIGA" , i+1); + + const int err = write_rec(re, pag(i), rpag); + if (!force && err != NOERR) return err; + } + + if (i < _old_pag) + cancella(rpag, i+1, _old_pag); + _old_pag = pag_items(); + + return err; +} + +int TSchedaPE::write(bool force, TDate&) +{ + return registra(FALSE, force); +} + +int TSchedaPE::rewrite(bool force, TDate&) +{ + return registra(TRUE, force); +} + +int TSchedaPE::remove(TDate&) +{ + TLocalisamfile& scheda = lfile(); + TLocalisamfile& rver = lfile(LF_RVER); + TLocalisamfile& rpag = lfile(LF_RPAG); + + cancella(rver, 1, _old_ver); + cancella(rpag, 1, _old_pag); + scheda.remove(); + _old_ver = _old_pag = 0; + return scheda.status(); +} + diff --git a/m770/770101.h b/m770/770101.h new file mode 100755 index 000000000..df8913c6f --- /dev/null +++ b/m770/770101.h @@ -0,0 +1,48 @@ +// TSchedaPE : ovvero scheda percipienti + +#ifndef __M70101_H +#define __M70101_H + +#ifndef __RELATION_H +#include +#endif + +class TSchedaPE : public TRelation +{ + TArray _pag,_ver; + int _old_pag, _old_ver; +// long _lastvers, _lastpag; + +protected: + int write_rec(bool re,const TRectype& r,TLocalisamfile& f); + int cancella (TLocalisamfile& f,int da,int a); + int registra (bool re,bool force); + int read_scperc_rows(); + +public: + virtual int next (TReclock lockop = _nolock) {return (file().next(lockop) || read_scperc_rows());} + virtual int prev (TReclock lockop = _nolock) {return (file().prev(lockop) || read_scperc_rows());} + virtual int first(TReclock lockop = _nolock) {return (file().first(lockop) || read_scperc_rows());} + virtual int last (TReclock lockop = _nolock) {return (file().last(lockop) || read_scperc_rows());} + virtual int skip (TRecnotype nrec,TReclock lockop = _nolock) {return (file().skip(nrec,lockop) || read_scperc_rows());} + virtual int read (TIsamop op = _isgteq,TReclock lockop = _nolock,TDate& atdate = (TDate&)botime); + virtual int write(bool force = TRUE,TDate& atdate = (TDate&)botime); + virtual int rewrite(bool force = TRUE,TDate& atdate = (TDate&)botime); + virtual int remove(TDate& atdate = (TDate&)botime); + + TRectype& pag(int i); + TRectype& ver(int i); + + int pag_items() const { return _pag.items(); } + int ver_items() const { return _ver.items(); } + + bool empty_vers(TRectype& ver); + + void destroy_rows(); + + TSchedaPE(); + virtual ~TSchedaPE() {} +}; + +#endif + \ No newline at end of file diff --git a/m770/770102.cpp b/m770/770102.cpp new file mode 100755 index 000000000..1b249f930 --- /dev/null +++ b/m770/770102.cpp @@ -0,0 +1,1170 @@ +#include "770100a.h" +#include "770101.h" +#include "770102.h" +#include +// +// Lista modifiche +// +// 27.5.96 work_tipoluogo() disabilita il campo PROGRBANCA e lo abilita +// solo se e' un versamento in banca +// +// 5.6.96 Calcolo contributo INPS +// + +HIDDEN TString80 tmp1, tmp2; +HIDDEN real __impo = ZERO; +HIDDEN real __compe = ZERO; +HIDDEN real __percra; +HIDDEN TString80 __rite; + +bool TSchedaPercipienti::vers_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { +// Pulisco descrizioni luogo e tipo versamento (solo se non gia' indicati!) + case K_SPACE: + { + TSheet_field& vers = app().vers(); + TMask& mp = vers.sheet_mask(); + TString16 tipo(mp.get(F_TIPOVERS)); + TString16 luo (mp.get(F_LUOVERS)); + if (tipo.empty()) + mp.reset(70); + if (luo.empty()) + mp.reset(71); + break; + } + case K_INS: + { +// Aggiorna NUMVERS nella riga aggiunta +/* TSheet_field& vers = app().vers(); + TToken_string& riga = vers.row(r); + riga.add(++(app()._lastvers), 7); + break;*/ + } + default: + break; + } + return TRUE; +} + +bool TSchedaPercipienti::pags_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { +// Pulisco i buffer di confronto + case K_ENTER: + __impo = ZERO; + __compe = ZERO; + __percra = ZERO; + __rite = ""; + break; + case K_INS: + { +// Aggiorna NUMVERS e NUMPAG nella riga aggiunta +/* + TSheet_field& pags = app().pags(); + TToken_string& riga = pags.row(r); + riga.add(-1, 7); + riga.add(++(app()._lastpag), 8); + break; */ + } + case K_SPACE: + { + app()._azzerato_pag = FALSE; +// Se c'e' competenza => diventa obbligatoria DATAPAG + TSheet_field& pags = app().pags(); + TMask& m = app().curr_mask(); +// Salvo imponibile e compenso precedenti alla modifica. +// v. imponibile_handler e compenso_handler + TToken_string& row = pags.row(r); + __compe = row.get(1); + __impo = row.get(3); + __percra = atof(row.get(4)); + __rite = row.get(7); + if (__percra == 0.0) + __percra = atof(s.mask().get(F_PERRIT)); + const long annoc = m.get_long(F_ANNOCOMP); + const long mesec = m.get_long(F_MESECOMP); +#define F_DATAPAG 101 + TMask& mp = pags.sheet_mask(); + TEdit_field& fld = mp.efield(F_DATAPAG); + + if (annoc != 0L || mesec != 0L) + fld.check_type(CHECK_REQUIRED); + else + fld.check_type(CHECK_NONE); + break; + } + default: + break; + } + return TRUE; +} + +TSheet_field& TSchedaPercipienti::pags() const +{ + TSheet_field& s = (TSheet_field&)curr_mask().field(F_PAGAMENTI); + return s; +} + +TSheet_field& TSchedaPercipienti::vers() const +{ + TSheet_field& s = (TSheet_field&)curr_mask().field(F_VERSAMENTI); + return s; +} + +bool TSchedaPercipienti::my_empty_items(TToken_string& r, bool vers) +{ + TString rr; + + if (vers) + for (int i=0; i < COLONNE_SIGNIFICATIVE_SPREADSHEET_VERSAMENTI; i++) + { + rr = r.get(i); + rr.trim(); + switch (i) { + case 0: // 1015 + if (rr.not_empty()) + return FALSE; + break; + case 1: + if (rr.not_empty()) + return FALSE; + break; + case 2: // lugo e tipo vers. + case 3: + if (rr.not_empty()) + if (rr != "N") + return FALSE; + break; + case 4: + case 5: + if (rr.not_empty()) + return FALSE; + break; + case 6: + if (rr.not_empty()) { + real rrr(real::ita2eng(rr)); + if (rrr != ZERO) + return FALSE; + } + break; + default: + break; + } + } + else + for (int i=0; i < COLONNE_SIGNIFICATIVE_SPREADSHEET_PAGAMENTI; i++) + { + rr = r.get(i); + rr.trim(); + switch (i) { + case 0: // Data + if (rr.not_empty()) + return FALSE; + break; + case 1: // Compenso + if (rr.not_empty()) { + real rrr(real::ita2eng(rr)); + if (rrr != ZERO) + return FALSE; + } + break; + case 2: // Spese e Imponibile + case 3: + if (rr.not_empty()) { + real rrr(real::ita2eng(rr)); + if (rrr != ZERO) + return FALSE; + } + break; + case 4: // r.a. che faccio ? + break; + case 5: + case 6: + if (rr.not_empty()) { + real rrr(real::ita2eng(rr)); + if (rrr != ZERO) + return FALSE; + } + break; + default: + break; + } + } + return TRUE; +} + +void TSchedaPercipienti::pag_pack() +{ + TString_array& rows = pags().rows_array(); + + const int max = rows.items(); + for (int i = 0; i < max; i++) + { + TToken_string& r = (TToken_string&)rows[i]; + if (my_empty_items(r, FALSE)) // Remove all empty strings + rows.destroy(i, FALSE); + } + + rows.pack(); +// rows.sort(compare_rows); // Pack and sort array +} + +void TSchedaPercipienti::ver_pack() +{ + TString_array& rows = vers().rows_array(); + + const int max = rows.items(); + for (int i = 0; i < max; i++) + { + TToken_string& r = (TToken_string&)rows[i]; + if (my_empty_items(r, TRUE)) // Remove all empty strings + rows.destroy(i, FALSE); + } + rows.pack(); +// rows.sort(compare_rows); // Pack and sort array +} + + +// +// LOAD_PAG_SHEET +// +// Inizializza array sheet dei pagamenti +// +void TSchedaPercipienti::load_pag_sheet(const long numvers) +{ + real comp, spese, imp, ritpag; + int i, nriga; + + TSheet_field& pag = pags(); + _pags->destroy(); + + for ( i = 0, nriga = 0; i < pag.items(); i++, nriga++ ) + { + TToken_string* d = new TToken_string(64); + TToken_string& riga = pag.row(i); + +// Scarto le righe non significative + if (my_empty_items(riga, FALSE)) continue; + + const long nvers = riga.get_long(9); + +// "Se il pagamento e' gia' stato selezionato DA UN ALTRO versamento +// NON si deve vedere! " + if (nvers > 0 && nvers != numvers) + continue; + + const long npag = nriga; + +// Setto il bit alla posizione numpag + if (nvers == numvers) + _selected.set(npag); + + d->add(" "); // 0 spazio per la 'X' di selezione + TString16 dep (riga.get(0)); + d->add(dep); // 1 data pagamento + comp = riga.get(1); + d->add(comp.string(".")); // 2 compenso + spese = riga.get(2); + d->add(spese.string(".")); // 3 spese + +// NB +// se cambia posizione nriga o ritpag nella tokenstring cambia +// anche in pag_select()! + ritpag = riga.get(SS_POS_RITPAG); + d->add(ritpag.string(".")); + + d->add(nriga, SS_POS_NRIGA); +// Metto nell'array-sheet anche NUMVERS + d->add(nvers, SS_POS_NVER); + + _pags->add(*d); // aggiungo la riga nell'array_sheet + } +} + +void TSchedaPercipienti::attach_pag_vers (int pag, long numvers) +{ + TSheet_field& pag_s = pags(); + TToken_string& riga = pag_s.row(pag); + +// setta NUMVERS nello sheet + riga.destroy(9); + riga.add(numvers, 9); + +// setta NUMVERS nel record + _rel->pag(pag).put("NUMVERS", numvers); +} + +void TSchedaPercipienti::detach_pag_vers (int pag) +{ + TSheet_field& pag_s = pags(); + TToken_string& riga = pag_s.row(pag); + + riga.destroy(9); + riga.add(-1L, 9); + +// setta NUMVERS nel record + _rel->pag(pag).put("NUMVERS", -1L); +} + +// +// VERS_ATTACHED ( numvers ) +// +// Determina se c'e' ALMENO UN pagamento collegato al versamento NUMVERS +// +bool TSchedaPercipienti::vers_attached(const long numvers) +{ + long numv = 0L; + +// Aggiorna lo sheet dei pagamenti per questo versamento + app().load_pag_sheet(numvers); + + for (int j = 0; j < _pags->items(); j++) + { +// Leggo NUMVERS + TToken_string& riga = _pags->row(j); + numv = riga.get_long(SS_POS_NVER); + + if (numv > 0L) + if (numv == numvers) + return TRUE; + } + return FALSE; +} + +// +// CHECK_PAGAMENTI +// Questo serve solo a impedire di uscire senza aver collegato almeno +// un pagamento +// +bool TSchedaPercipienti::check_pagamenti(TMask_field& f, KEY k) +{ + const long numvers = get_numvers(f); + return app().vers_attached(numvers); +} + +void TSchedaPercipienti::setta_ritvers(TMask_field& f, const real& ritenuta) +{ + TString80 rit_str(ritenuta.string()); + f.mask().set(F_RITVERS, rit_str); + f.mask().field(F_RITVERS).set_dirty(); // Forza on_hit() +} + +// Guardo se ho compilato la data OPP. il flag 1015 +// Leggo la maschera o la riga dello ss +bool TSchedaPercipienti::compilato_vers(TMask_field& f) +{ + TString16 datav; + char v1015; + + if (f.mask().is_running()) + { + datav = f.mask().get(F_DATAVERS); + v1015 = f.mask().get(F_VERS_1015)[0]; + } + else + { + TSheet_field& ver = app().vers(); + const int riga_corr = ver.selected(); + TToken_string& riga = ver.row(riga_corr); + v1015 = riga.get(0)[0]; + datav = riga.get(1); + datav.trim(); + } + return datav.not_empty() || v1015 == 'X'; +} + + +// +// GET_NUMVERS +// +// Determina il numero di versamento corrente, prendendolo : +// +// dalla maschera, se e' running SENNO' +// dalla riga corrente dello spreadsheet +// +long TSchedaPercipienti::get_numvers(TMask_field& f) +{ + long numvers = 0L; + +// Prendo il numvers da campo nascosto nella maschera + if (f.mask().is_running()) + numvers = f.mask().get_long(VERF_NUMVERS); + else + { + TSheet_field& ver = app().vers(); + const int riga_corr = ver.selected(); + TToken_string& riga = ver.row(riga_corr); + numvers = riga_corr + 1; +// numvers = riga.get_long(SS_POS_NUMVERS); + } + return numvers; +} + +bool TSchedaPercipienti::pag_azzera (TMask_field& f, KEY k) +{ + if (k == K_SPACE) + app()._azzerato_pag = TRUE; // Messo a FALSE in pag_notify + // Serve per NON far riscrivere la % di ritenuta + return TRUE; +} + +bool TSchedaPercipienti::ver_azzera (TMask_field& f, KEY k) +{ + long numvers = get_numvers(f); + int nriga = 0; + TNikArray_sheet& pags = *app()._pags; + + if (k == K_SPACE) + { + app().load_pag_sheet(numvers); + + for (int j = 0; j < pags.items(); j++) + { + TToken_string& riga = pags.row(j); + long numv = riga.get_long(SS_POS_NVER); + + if (numv > 0L) + if (numv == numvers) + { + nriga = pags.row(j).get_int(SS_POS_NRIGA); + pags.row(j).add(-1L, SS_POS_NVER); + app().detach_pag_vers(nriga); + } + } + } + return TRUE; +} + +// +// PAG_SELECT +// +// Collegamento tra versamenti e pagamenti +// +// Calcolo ritenuta = SUM(ritpag) {dei pagamenti collegati} +// +// Usa: load_pag_sheet() attach_pag_vers() e detach_pag_vers() +// +bool TSchedaPercipienti::pag_select (TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + if (!app().compilato_vers(f)) + return f.warning_box("Inserire prima la data del versamento"); + + long numvers = get_numvers(f); + long numpag = 0L; + int nriga = 0; +// 13.7.95 Ricalcola la ritenuta, azzerando contenuto precedente + real ritenuta = ZERO; + TBit_array& selected = app()._selected; + + selected.reset(); + +// Costruisce array_sheet dei pagamenti + app().load_pag_sheet(numvers); + + TNikArray_sheet& ASpags = *app()._pags; + +// Metto la 'X' per quelli gia' collegati (se e' acceso il bit[NUMPAG]) + for (int j = 0; j < ASpags.items(); j++) + ASpags.check(j, selected[j]); + +// seleziona e aggiungi alle gia' selezionate + if (ASpags.run() == K_ENTER) + { + for (int j = 0; j < ASpags.items(); j++) + { + // get effettivo numero riga pag. + nriga = ASpags.row(j).get_int(AS_POS_NRIGA); + + int mesec = -1; + int annoc = -1; // competenza + + if (ASpags.checked(j)) + { +// Scrive nello spread-sheet e nella relazione + app().attach_pag_vers(nriga, numvers); + + // Scrive nell'array_sheet (e' da qui che leggo dopo) + ASpags.row(j).add((long)numvers, AS_POS_NVER); + + TDate datapag(ASpags.row(j).get(1)); + if (mesec < 0) + { + mesec = datapag.month(); + annoc = datapag.year(); + } + else + { + if (mesec != datapag.month() || annoc != datapag.year()) +// TBI inserire un'altra riga di versamento (?) + ; + } + selected.set(numpag); + + real dep(real::ita2eng(ASpags.row(j).get(AS_POS_RITPAG))); + ritenuta += dep; + } + else // pags.checked() + { +// resetta se era stato settato prima + if (selected[numpag]) + { + selected.reset(numpag); + ASpags.row(j).add(-1L, AS_POS_NVER); + app().detach_pag_vers(nriga); + } + } + } + setta_ritvers(f, ritenuta); + } // if k==K_ENTER + } + return TRUE; +} + +#define F_SER_VERS 209 +#define F_ABI_VERS 210 +#define F_NUM_VERS 211 +#define F_CAB_VERS 212 +#define F_QUIETANZA_VERS 213 + +void TSchedaPercipienti::work_tipoluogo(TMask_field& f) +{ + TMask& m = f.mask(); + char tipo = m.get(F_TIPOVERS)[0]; + char luogo = m.get(F_LUOVERS)[0]; + TSheet_field& ss = app().vers(); + const int row = ss.selected(); + + m.hide (-2); // nasconde tutto + ss.enable_cell(row,4); + m.disable(SM_PROGRBANCA); + + if (tipo == 'D') + { + if (luogo == 'T') + { + m.show(-3); // SOLO quietanza + ss.disable_cell(row,4); + } + else + m.show(-4); // serie e numero + } + else + if (tipo == 'B') + { + m.show (-6); // ABI e CAB + m.enable(SM_PROGRBANCA); // abilita progressivo vers.banca + ss.enable_cell(row,6); + } + else + if (tipo == 'C') + { + m.show (-5); // SOLO numero versamento + ss.disable_cell(row,4); + } +} + +bool TSchedaPercipienti::luo_hndl(TMask_field& f, KEY k) +{ + if (k == K_TAB) + work_tipoluogo(f); + + if (k == K_ENTER) + { + TMask& m = f.mask(); + char tipo = m.get(F_TIPOVERS)[0]; + char luogo = m.get(F_LUOVERS)[0]; + +// Se ho indicato il luogo => devo indicare anche il TIPO + if (isalpha(luogo)) + return tipo == ' ' || tipo == '\0' ? + f.warning_box("Indicare il tipo del versamento") : TRUE; + } + return TRUE; + +} + +bool TSchedaPercipienti::abicab_hndl(TMask_field& f, KEY k) +{ + if (f.to_check(k)) + { + TString16 park(f.get()); + TMask& m = f.mask(); + char tipo = m.get(F_TIPOVERS)[0]; + +// ABI/CAB solo se tipo e' B + if (tipo != 'B') + return TRUE; + + for (int i=0; i devo indicare anche il LUOGO + if (isalpha(tipo)) + return luogo == ' ' || luogo == '\0' ? + f.warning_box("Indicare il luogo del versamento") : TRUE; + } + return TRUE; +} + +// +// VERS1015_HANDLER +// +bool TSchedaPercipienti::vers1015_handler(TMask_field& f, KEY k) +{ + if (k == K_ENTER) + { + TString16 datas = f.mask().get(F_DATAVERS); + const bool v1015 = f.mask().get_bool(F_VERS_1015); + const bool attaccati = check_pagamenti(f,k); + + if (attaccati) + if (!v1015 && datas.empty()) + return f.warning_box("Manca la data del versamento"); + +// Non considerare versamenti non significativi + if (v1015 || datas.not_empty()) + return attaccati ? TRUE : f.warning_box("Nessun pagamento collegato"); + + const real rite (f.mask().get(F_RITVERS)); +// Pero' se c'e' la ritenuta non lo far passare + if (rite != ZERO) + return f.warning_box("Manca la data oppure il flag di versamento 1015"); + + return TRUE; + } + + if (k == K_SPACE || k == K_F2) + { + TSheet_field& ss = app().vers(); + const bool v1015 = (f.get() == "X"); + const int row = ss.selected(); + int i; + +// Disabilito tutto MA NON ritenuta + if (v1015) + { +// Se son gia' disabilitati non fare nulla + if (ss.cell_disabled(row, 1)) + return TRUE; + + f.mask().reset(102); + f.mask().reset(103); + f.mask().reset(104); + f.mask().reset(105); + f.mask().reset(106); + + f.mask().disable(102); + f.mask().disable(103); + f.mask().disable(104); + f.mask().disable(105); + f.mask().disable(106); + + for (i=1; i<6; i++) + ss.disable_cell(row,i); + } + else + { + f.mask().enable(102); + f.mask().enable(103); + f.mask().enable(104); + f.mask().enable(105); + f.mask().enable(106); + + for (i=1; i<6; i++) + ss.enable_cell(row,i); + } + } + return TRUE; +} + +// +// Quadro C e E1: immissione per le sole persone fisiche +// +bool TSchedaPercipienti::check_causale(TMask_field& f, KEY k) +{ +// if (k == K_TAB) + if (f.to_check(k)) + { + TFixed_string cod_caus(f.get(),3); + + if (cod_caus.empty() && f.mask().is_running()) + { + KEY ke = f.mask().last_key(); + if (ke != K_QUIT && ke != K_ESC) + return f.warning_box("Manca la causale"); + } + else + { + TString16 cod_qua (f.mask().get(F_CODQUA)); + char tipo = f.mask().get(F_TIPOA)[0]; + + if (cod_qua == "C" || cod_qua == "E1") + if (tipo == 'G') + return f.warning_box("Con il quadro C o E1 e' possibile l'immissione" + " per le sole persone fisiche"); + } + } + return TRUE; +} + +/////////////////////////////////////////////////////////////////////////// +// +// RIGA PAGAMENTI +// +/////////////////////////////////////////////////////////////////////////// +/***************** +bool TSchedaPercipienti::pag_handler(TMask_field& f, KEY k) +{ + const bool forzatura = app().curr_mask().get_bool(F_FORCED); + const real compenso (f.mask().get(MPAG_COMPENSO)); + real imponibile_calc = ZERO; + TString16 cod_qua(app().curr_mask().get(F_CODQUA)); + + if (k == K_TAB) + { + if (__compe != ZERO && compenso == ZERO) + app()._azzerato_pag = FALSE; + + const bool cambiato_compenso = __compe == ZERO ? __compe != compenso : FALSE; + + if (cambiato_compenso) + { + imponibile_calc = calcola_imponibile(f, compenso, cambiato_compenso); + calcola_ritenuta(f, imponibile_calc, cambiato_compenso); +// "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso" + if (cod_qua != "E1") + if (imponibile_calc > compenso) + { + f.warning_box("L'imponibile non puo' essere" + " maggiore del compenso"); + return forzatura; + } + f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto + } + + const real imponibile(f.mask().get(MPAG_IMPONIBILE)); + const bool imponibile_cambiato = __impo != ZERO ? imponibile != __impo : FALSE; + if (imponibile_cambiato) + calcola_ritenuta(f, imponibile, imponibile_cambiato); + } + + if (k == K_ENTER) + { + // "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso" + if (cod_qua != "E1") + if (imponibile_calc > compenso) + { + f.warning_box("L'imponibile non puo' essere" + " maggiore del compenso"); + return forzatura; + } + } + + return TRUE; +} +*****************************/ +// +// SPESA_HANDLER +// +// Forza il ricalcolo del netto se cambia la spesa +// +bool TSchedaPercipienti::spesa_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto + return TRUE; +} + +// CHECK_RITENUTA +// o Controlla se la ritenuta e' corretta +// o Ricalcola la ritenuta se e' stata vuotata +bool TSchedaPercipienti::check_ritenuta(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TString rit(f.get()); + const bool changed_rit = __rite.not_empty() ? __rite != rit : FALSE; + const real imponibile(f.mask().get(MPAG_IMPONIBILE)); + + if (rit.empty()) + calcola_ritenuta(f,imponibile); + else + if (changed_rit) + f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto + } + + if (k == K_ENTER) + { + const bool forzatura = app().curr_mask().get_bool(F_FORCED); + real perc_ra = (f.mask().get_real(MPAG_PERCRA) ); + if (perc_ra == ZERO) + perc_ra = 100.00; + const real imponibile (f.mask().get(MPAG_IMPONIBILE)); + real ritenuta (f.mask().get(MPAG_RITPAG)); + + real rite = ZERO; +// Se non indico la percentuale => considero come 100% + if (perc_ra != ZERO) + rite = (imponibile * perc_ra) / 100.00; + else + rite = imponibile; + + rite.trunc(); + ritenuta.trunc(); + rite.round(0); + ritenuta.round(0); + +#ifdef DBG + TString rites(rite.string()); + TString riten(ritenuta.string()); +#endif + +// Segnala solo se la ritenuta calcolata non e' compresa in quella +// letta piu' o meno 1 + if ( (rite < ritenuta-1) || (rite > ritenuta+1) ) + { +#ifdef DBG + f.warning_box("Ritenuta errata calcolo: %s trovo: %s", (const char*) rites, (const char*) riten); +#else + f.warning_box("Ritenuta errata"); +#endif + return forzatura; + } + } + return TRUE; +} + +// +// CALCOLA_IMPONIBILE +// +// Chiamato dall'handler del COMPENSO +// Calcola l'imponibile SE il compenso e' diverso da ZERO +// e lo setta nella maschera +// +real TSchedaPercipienti::calcola_imponibile(TMask_field& f, const real& compenso, + const bool force) +{ + TMask& mm = app().curr_mask(); + TMask& lm = f.mask(); + real quota_imp = mm.get_real(F_QUOTAIMP); + TString16 cod_qua = mm.get(F_CODQUA); + real imponibile_calcolato = ZERO; + const bool bContributoInps = mm.get_bool(F_FLAG_INPS); + const real imp_prec(lm.get(MPAG_IMPONIBILE)); + +// Ricalcolo sempre. NO! modifica del 4/10/95. Su richiesta di Omero + if (imp_prec != ZERO && !force) + return imp_prec; + +// Calcola imponibile + if (compenso != ZERO) + { +// "Se la perc.ass.imponibile = 0 => percentuale = 100% " + if (quota_imp == ZERO) + imponibile_calcolato = compenso; + else + imponibile_calcolato = (compenso * quota_imp) / 100.00; + imponibile_calcolato.trunc(); +// imponibile_calcolato = round_770(imponibile_calcolato); + +// 13.6.96 toglie il contributo inps + if (bContributoInps) + { + real rPercCassaPrev=ZERO; + rPercCassaPrev = mm.get_real(F_CASSA_PREV); + imponibile_calcolato = (imponibile_calcolato / (100.00 + rPercCassaPrev)) * 100.00; + } + + TString impost(imponibile_calcolato.string()); + lm.set(MPAG_IMPONIBILE, impost); + } + return imponibile_calcolato; +} + +// Utilizzato in collegamento da cg +real TSchedaPercipienti::calcola_imponibile(const real& compenso) +{ + TTable cau("%ca7"); + TString codcau(curr_mask().get(F_CODCAUS)); + cau.zero(); + cau.put("CODTAB", codcau); + cau.read(); + real quota_imp = cau.get_int("R4"); + TString16 cod_qua(cau.get("S1")); + real imponibile_calcolato = ZERO; + + +// Calcola imponibile + if (compenso != ZERO) + { +// "Se la perc.ass.imponibile = 0 => percentuale = 100% " + if (quota_imp == ZERO) + imponibile_calcolato = compenso; + else + imponibile_calcolato = (compenso * quota_imp) / 100.00; +// imponibile_calcolato = round_770(imponibile_calcolato); + } + return imponibile_calcolato; +} + + +bool TSchedaPercipienti::imponibile_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + const real imponibile(f.mask().get(MPAG_IMPONIBILE)); + const bool forza_ricalcolo = __impo != ZERO ? imponibile != __impo : FALSE; + if (__impo != imponibile) + __impo = imponibile; + if (forza_ricalcolo) + calcola_ritenuta(f, imponibile, forza_ricalcolo); + } + return TRUE; +} + +// +// Handler del COMPENSO +// +// "Calcola ritenuta quando inserisci il compenso" +// chiama calcola_imponibile se compenso e' cambiato +// +bool TSchedaPercipienti::compenso_handler(TMask_field& f, KEY k) +{ + TMask& mm = app().curr_mask(); // main mask + TMask& lm = f.mask(); // local mask + const bool forzatura = mm.get_bool(F_FORCED); + const real compenso (lm.get(MPAG_COMPENSO)); + real imponibile = ZERO; + TString16 cod_qua(mm.get(F_CODQUA)); + const bool bContributoInps = mm.get_bool(F_FLAG_INPS); + + if (k == K_TAB) + { + if (__compe != ZERO && compenso == ZERO) + app()._azzerato_pag = FALSE; + + if (compenso == ZERO) + return TRUE; + + const bool forza_ricalcolo = __compe != ZERO ? __compe != compenso : FALSE; + if (__compe != compenso) + __compe = compenso; // per evitare di perdere l'imponibile + + imponibile = calcola_imponibile(f, compenso, forza_ricalcolo); + +#ifdef DBG + tmp1 = imponibile.string(); + tmp2 = compenso.string(); + if (cod_qua != "E1") + if (imponibile > compenso) + warning_box("Imponibile = %s - Compenso = %s", (const char*)tmp1,(const char*)tmp2 ); +#endif + + calcola_ritenuta(f, imponibile, forza_ricalcolo); + +// "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso" + if (cod_qua != "E1") + if (imponibile > compenso) + { + f.warning_box("L'imponibile non puo' essere" + " maggiore del compenso"); + return forzatura; + } + +// Calcolo contributo INPS + if (bContributoInps) + { + real /*rQuotaPrev,*/rScorporaComp, rImpInps, rInpsComplex, rInpsPerc; + + real rPercCassaPrev = mm.get_real(F_CASSA_PREV); + real rPercContrInps = mm.get_real(F_PERC_INPS); + real rPercAssContrInps = mm.get_real(F_PERC_ASS_INPS); + real rQuotaCommitContrInps = mm.get_real(F_PERC_COMMIT_INPS); + +// rQuotaPrev = compenso / (100.00 + rPercCassaPrev); +// rQuotaPrev.round(0); + rScorporaComp = (compenso / (100.00 + rPercCassaPrev)) * 100.00; + rImpInps = (rScorporaComp / 100.00) * rPercAssContrInps; + rImpInps.round(0); + rInpsComplex = (rImpInps / 100.00 ) * rPercContrInps; +// Se zero si considera 2/3 + if (rQuotaCommitContrInps == ZERO) + rInpsPerc = rInpsComplex - ((rInpsComplex * 2)/3); + else + rInpsPerc = rInpsComplex - ((rInpsComplex * rQuotaCommitContrInps)/100.00); + + rInpsComplex.trunc(); + rInpsPerc.trunc(); + + TString sInpsComp(rInpsComplex.string()); + TString sInpsPerc(rInpsPerc.string()); + lm.set(MPAG_INPSPERC, sInpsPerc); + lm.set(MPAG_INPSCOMP, sInpsComp); + } + lm.send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto + } + + if (k == K_ENTER) + { + // "Solo per il quadro E1 l'imponibile puo' essere maggiore del compenso" + if (cod_qua != "E1") + if (imponibile > compenso) + { + f.warning_box("L'imponibile non puo' essere" + " maggiore del compenso"); + return forzatura; + } + } + return TRUE; +} + +// +// CALCOLA_RITENUTA +// +// Calcola la ritenuta in base alla % r.a. indicata ( o, se vuota, a quella +// della causale ) e setta il campo della maschera +// +// --[ NB ]-- +// Ricalcola solo se VUOTA +// +bool TSchedaPercipienti::calcola_ritenuta(TMask_field& f, const real& imponibile, const bool forza, const real percent) +{ + real rPercRaRiga = f.mask().get_real(MPAG_PERCRA); + real rPercRaCaus = app().curr_mask().get_real(F_PERRIT); + const bool azzerato = app()._azzerato_pag; + const real rit_prec(f.mask().get(MPAG_RITPAG)); + + if (rit_prec != ZERO && !forza) + return FALSE; + + real rPerc = ZERO; +// Uso la percentuale della causale SE NON indicata qui E +// SE NON viene passata come parametro (in percra_handler quando si cambia +// l'aliquota) + if (percent == ZERO) + rPerc = rPercRaRiga != ZERO ? rPercRaRiga : rPercRaCaus; + else + rPerc = percent; +// +// Faccio vedere % R.A. presa dalla causale se non l'ho indicata +// e se non ho premuto Azzera (1.12.95) +// Pero' se uno fa azzera e poi riscrive il compenso deve riapparire... +// +// const bool prendi_ra_da_causale = forza ? TRUE : perc_ra == ZERO && !azzerato; + const bool prendi_ra_da_causale = rPercRaRiga == ZERO && !azzerato; + if (prendi_ra_da_causale) + { + TString quota_rast(rPercRaCaus.string()); + f.mask().set(MPAG_PERCRA, quota_rast); + } + +// Calcolo ritenuta ... +// Se non indico la percentuale => considero come 100% + real rite = ZERO; + if (rPerc == ZERO) + rite = imponibile; + else + rite = (imponibile * rPerc) / 100.00; + + rite.trunc(); +// rite.round(); +// .. riempie il campo corrispondente + TString ritest(rite.string()); + f.mask().set(MPAG_RITPAG, ritest); + f.mask().send_key(K_TAB, MPAG_NETTO); // forza il ricalcolo del netto + return TRUE; +} + +// Utilizzato in collegamento da cg +real TSchedaPercipienti::calcola_ritenuta(const real& imponibile) +{ + TTable cau("%ca7"); + TString codcau(curr_mask().get(F_CODCAUS)); + cau.zero(); + cau.put("CODTAB", codcau); + cau.read(); + real rQuotaRaCaus = cau.get_real("R0"); + real rite = ZERO; + +// Calcolo ritenuta ... +// Se non indico la percentuale => considero come 100% + if (rQuotaRaCaus == ZERO) + rite = imponibile; + else + rite = (imponibile * rQuotaRaCaus)/100.00; + return rite; +} + + +// +// Handler della percentuale di r.a. +// ricalcolo la ritenuta quando cambia +// +bool TSchedaPercipienti::percra_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + const real compenso (f.mask().get(MPAG_COMPENSO)); + const real imponibile (f.mask().get(MPAG_IMPONIBILE)); + real percra(f.get()); + const bool forza_ricalcolo = __percra != percra; + if (__percra != percra) + __percra = percra; + + if (compenso != ZERO) + { + if (forza_ricalcolo) + calcola_ritenuta (f, imponibile, forza_ricalcolo); + } + } + return TRUE; +} + +bool TSchedaPercipienti::netto_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + calcola_netto(f); + return TRUE; +} + +// +// Calcola e setta il NETTO +// +// Il netto e' ricalcolato e settato sempre visto che non e' gestibile +// +real TSchedaPercipienti::calcola_netto(TMask_field& f) +{ + real netto = ZERO; + TMask& m = f.mask(); + const real ritenuta (m.get(MPAG_RITPAG)); + const real compenso (m.get(MPAG_COMPENSO)); + const real spesa (m.get(MPAG_SPESA)); + const real inpsperc (m.get(MPAG_INPSPERC)); + + netto = compenso - ritenuta + spesa - inpsperc; + + f.mask().set(MPAG_NETTO, netto.string()); + + return netto; +} + diff --git a/m770/770102.h b/m770/770102.h new file mode 100755 index 000000000..ec4e868c3 --- /dev/null +++ b/m770/770102.h @@ -0,0 +1,203 @@ +#ifndef __M70102_H +#define __M70102_H + +#ifndef __MSKSHEET_H +#include +#endif + +#ifndef __CONFIG_H +#include +#endif + +#ifndef __RELAPP_H +#include +#endif + +#ifndef __77LIB_H +#include "77lib.h" +#endif + +#ifndef __770100a_H +#include "770100a.h" +#endif + +// Id della maschera di edit dello sheet pagamenti +#define MPAG_DATAPAG 101 +#define MPAG_COMPENSO 102 +#define MPAG_SPESA 103 +#define MPAG_IMPONIBILE 104 +#define MPAG_PERCRA 105 +#define MPAG_RITPAG 106 +#define MPAG_INPSPERC 107 +#define MPAG_INPSCOMP 108 +#define MPAG_NETTO 109 + +// Id della maschera di edit dello sheet versamenti +#define F_VERS_1015 101 +#define F_DATAVERS 102 +#define F_LUOVERS 103 +#define F_TIPOVERS 104 +#define F_RITVERS 108 +#define F_ABI 105 // abi e cab +#define F_CAB 72 +#define SM_PROGRBANCA 107 + +// Posizioni nella riga +const int SS_POS_NUMVERS = 8; +const int SS_POS_RITPAG = 5; +const int SS_POS_NRIGA = 5; +const int SS_POS_NVER = 6; +const int SS_POS_RITVERS = 7; + +// Posizioni nell'array-sheet dei pagamenti +const int AS_POS_NRIGA = 5; +const int AS_POS_NVER = 6; +const int AS_POS_RITPAG = 4; + +#define COLONNE_SIGNIFICATIVE_SPREADSHEET_VERSAMENTI 7 +#define COLONNE_SIGNIFICATIVE_SPREADSHEET_PAGAMENTI 7 + + +class TSchedaPercipienti : public TRelation_application +{ + private: + bool _from_modify; + bool _azzerato_pag; + TLink770 _coll; + TSchedaPE* _rel; + TMask* _msk[2]; + long _codanagr; + TString16 _tipoa; + TString80 _ragsoc; + int _nproga; + int _mode; + TLocalisamfile* _per, *_scper, *_rver, *_rpag; + long _rigavers; + long _lastvers, _lastpag, _last_scheda; + long _numreg; // NUMREG inviato dalla 1. nota + int _anno_dic; // anno dichiarazione + +// Collegamento versamento->pagamenti + TBit_array _selected; + TNikArray_sheet* _pags; + + real _tot_compenso, _tot_spese, _tot_netto; + real _tot_vers, _tot_rit; + + private: + void get_ragsoc(const char* tipoa, const long codanagr); + static void work_tipoluogo(TMask_field& f); + static bool check_pagamenti (TMask_field& f, KEY key); + static real calcola_imponibile (TMask_field& f,const real& compenso,const bool force=FALSE); + static bool calcola_ritenuta (TMask_field& f,const real& compenso,const bool forza=FALSE,const real perc=ZERO); + static real calcola_netto (TMask_field& f); + real calcola_imponibile(const real& compenso); + real calcola_ritenuta (const real& imponibile); + static long get_numvers (TMask_field& f); + static void setta_ritvers(TMask_field& f, const real& ritenuta); + + static bool nprog_handler (TMask_field& f, KEY key); + static bool codanagr_handler (TMask_field& f, KEY key); + static bool codditta_handler (TMask_field& f, KEY key); + + static bool check_compensi (TMask_field& f, KEY k); + static bool check_spese (TMask_field& f, KEY k); + +// Handler del versamento + static bool vers_notify (TSheet_field& s, int r, KEY key); + static bool pags_notify (TSheet_field& s, int r, KEY key); + static bool vers1015_handler (TMask_field& f, KEY key); + + static bool compilato_vers(TMask_field& f); + +// static bool pag_handler (TMask_field& f, KEY key); + + static bool compenso_handler (TMask_field& f, KEY key); + static bool imponibile_handler (TMask_field& f, KEY key); + static bool percra_handler (TMask_field& f, KEY key); + static bool spesa_handler (TMask_field& f, KEY key); + static bool netto_handler (TMask_field& f, KEY k); + static bool tipo_hndl (TMask_field& f, KEY key); + static bool luo_hndl (TMask_field& f, KEY key); + static bool abicab_hndl (TMask_field& f, KEY key); + static bool check_handler (TMask_field& f, KEY key); + static bool check_ritenuta (TMask_field& f, KEY k); + static bool check_causale (TMask_field& f, KEY k); + + static bool forced_handler (TMask& m, KEY key); + + static bool ver_notify (int r, KEY key); + static bool pag_select (TMask_field& f, KEY key); + static bool ver_azzera (TMask_field& f, KEY key); + static bool pag_azzera (TMask_field& f, KEY key); + + void enable_vers_cells (int r, bool enable=TRUE); + void disable_vers_cells (int r) { enable_vers_cells(r,FALSE); } + + bool vers_attached(const long numvers); + + void pag_pack(); + void ver_pack(); + + static bool setta_nprog (TMask& m, const bool variazione=FALSE, + const char* codanagr=NULL); + + protected: + virtual bool user_create(); + virtual bool user_destroy(); + + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode); + virtual bool changing_mask(int mode); + virtual void init_query_mode (TMask&); + virtual void init_query_insert_mode (TMask&); + virtual void init_insert_mode(TMask&); + virtual void init_modify_mode(TMask&); + virtual int rewrite(const TMask& m); + virtual int write(const TMask& m); + virtual int read(TMask& m); + + virtual void on_config_change(); + + void init_mask(TMask&); + + TMask* load_mask(int n); + void fill_sheet(TMask&); + bool scrivi_dati_per(TRectype& rec); + + void mask2rel(const TMask& m); + void rec2row(TToken_string& r, TRectype& rec, int row); + +// void update_lasts(); + void update_lasts(TMask& m); + + void attach_pag_vers (int pag, long numvers); + void detach_pag_vers (int pag); + + bool my_empty_items(TToken_string& r, bool versamenti); + void new_row(TSheet_field& ver_pag, int r, bool vers); + + int anno_dic() const { return _anno_dic; } + + public: + bool _flag_cg; + + public: + void load_pag_sheet(const long numvers); + TTipo_coll tipo_coll() const { return _coll._tipo_coll; } + void compila_testata(TMask& m); + bool coll_variazione() const; + bool coll_datanum() const { return _coll._datadoc.not_empty() && _coll._numdoc.not_empty(); } + bool esiste_perc(TMask& m, const char* coda=NULL); + + TSheet_field& pags() const; + TSheet_field& vers() const; + + public: + TSchedaPercipienti (); + ~TSchedaPercipienti() {}; +}; + +inline TSchedaPercipienti& app() { return (TSchedaPercipienti&) main_app();} + +#endif diff --git a/m770/770200.cpp b/m770/770200.cpp new file mode 100755 index 000000000..8475dfb39 --- /dev/null +++ b/m770/770200.cpp @@ -0,0 +1,731 @@ +// 770200 - collegamento 1a nota (versamento) - ritenuta percipienti + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "77lib.h" +#include "770200a.h" + +class TVersa_rit : public TApplication +{ + private: + TLink770 _coll; + real _versato; + TRelation* _rel; + TCursor* _cur; + TBrowse_sheet* _sheet_perc; + TArray_sheet* _schede; + TArray_sheet* _pagam; + TMask* _msk; + TLocalisamfile* _perc, *_scperc, *_rpag, *_rver; + TAssoc_array _apags; +// Estremi versamento + TString16 _data, _serie, _numero; + char _luogo, _tipo; + + void add(const long codditta, char tipoa, const long codanagr, + const int nprog, TToken_string& rriga); + TToken_string* find(const long codditta, char tipoa, const long codanagr, + const int nprog); + void remove(const long codditta, char tipoa, const long codanagr, + const int nprog); + static void work_tipoluogo(TMask_field& f); + static bool luo_hndl (TMask_field& f, KEY k); + static bool tipo_hndl(TMask_field& f, KEY k); + static bool abicab_hndl(TMask_field& f, KEY k); + + protected: + virtual bool create(); + virtual bool destroy(); + virtual bool menu(MENU_TAG m); + + int split_rpag(const long codditta,char tipoa, + const long codanagr, const int nprog, + const int nriga, real& versato, real& da_versare, + const long newvers); + int attach_rpag(const long codditta, char tipoa, + const long codanagr, const int nprog, + const int nriga, const long new_vers); + long add_new_vers(const long codditta, char tipoa, + const long codanagr, const int nprog, + real& versato); + + void attach_pag_vers(TToken_string& r, real& versato, const bool last=FALSE); + + real ritenuta_versata(const long codditta,const long numvers); + bool ha_pagamenti_non_versati(const long codditta, + char tipoa,const long codanagr,const int nprog); + TCursor* meik_curs(TRelation* rel); + bool do_all(); + void build_schede_sheet(const long codditta); + void build_pagam_sheet(const long codditta); + + public: + TVersa_rit() {} + ~TVersa_rit() {} +}; + +TCursor* TVersa_rit::meik_curs(TRelation* rel) +{ + TString16 filt; + TCursor* cur; + const long codditta = get_firm(); + + filt.format("CODDITTA=%ld", codditta); + cur = new TCursor(rel, filt); + return cur; +} + +bool TVersa_rit::create() +{ + TApplication::create(); + +// Collegamento da contabilita' + TMailbox m; + TMessage* msg = m.next_s("LINK770"); + +// Questo programma si richiama solo dalla contabilita' + if (!msg) return FALSE; + if ( !_coll.read(msg->body()) ) + return warning_box("Errore nei parametri passati"); + + _perc = new TLocalisamfile(LF_PERC); + _scperc = new TLocalisamfile(LF_SCPERC); + _rpag = new TLocalisamfile(LF_RPAG); + _rver = new TLocalisamfile(LF_RVER); + _rel = new TRelation(LF_PERC); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR"); + _cur = meik_curs(_rel); + + _msk = new TMask("770200a"); + _msk->set_handler(F_LUOGO, luo_hndl); + _msk->set_handler(F_TIPO, tipo_hndl); + _msk->set_handler(F_SERIE, abicab_hndl); + _msk->set_handler(F_NUMERO, abicab_hndl); + + _msk->set(F_DATA, _coll._datadoc); + _msk->set(F_VERSATO, _coll._ritenute.string()); + + KEY kp = _msk->run(); + + if (kp != K_ENTER) + return FALSE; + else + { + _data = _msk->get(F_DATA); + _luogo = _msk->get(F_LUOGO)[0]; + _tipo = _msk->get(F_TIPO)[0]; + _versato = real(_msk->get(F_VERSATO)); + _serie = _msk->get(F_SERIE); + _numero = _msk->get(F_NUMERO); + } + + TEdit_field& dummy = (TEdit_field&)_msk->field(F_CODANAGRPERC); + + _sheet_perc = new TBrowse_sheet(_cur," |TIPOA|CODANAGR|6->RAGSOC", "Selezione percipienti", + "@1|Tipo|Codice|Ragione sociale@50", 8, &dummy); + _sheet_perc->maximize(); + + _schede = new TArray_sheet(-1, -1, 0, 0, "Selezione Schede","@1|T|Codice|Ragione@50|N.|Data@10"); + _schede->maximize(); + + _pagam = new TArray_sheet(-1, -1, 0, 0, "Selezione Ritenute da versare", + "@1|T|Codice|Scheda n.|Riga n.|Ritenuta@15"); + _pagam->maximize(); + + _apags.destroy(); + + dispatch_e_menu (BAR_ITEM(1)); + return TRUE; +} + +bool TVersa_rit::destroy() +{ + delete _rel; + delete _cur; + delete _msk; + delete _schede; + delete _pagam; + delete _sheet_perc; + delete _rver; delete _rpag; delete _scperc; delete _perc; + return TApplication::destroy(); +} + +void TVersa_rit::work_tipoluogo(TMask_field& f) +{ + TMask& m = f.mask(); + char tipo = m.get(F_TIPO)[0]; + char luogo = m.get(F_LUOGO)[0]; + + m.hide (-2); // nasconde tutto + + if (tipo == 'D') + { + if (luogo == 'T') + m.show(-3); // SOLO quietanza + else + m.show(-4); // serie e numero + } + else + if (tipo == 'B') + m.show (-6); // ABI e CAB + else + if (tipo == 'C') + m.show (-5); // SOLO numero versamento +} + +bool TVersa_rit::luo_hndl(TMask_field& f, KEY k) +{ + if (k == K_TAB) + work_tipoluogo(f); + + if (k == K_ENTER) + { + TMask& m = f.mask(); + char tipo = m.get(F_TIPO)[0]; + char luogo = m.get(F_LUOGO)[0]; + +// Se ho indicato il luogo => devo indicare anche il TIPO + if (isalpha(luogo)) + return tipo == ' ' || tipo == '\0' ? + f.warning_box("Indicare il tipo del versamento") : TRUE; + } + return TRUE; + +} + +bool TVersa_rit::tipo_hndl(TMask_field& f, KEY k) +{ + if (k == K_TAB) + work_tipoluogo(f); + + if (k == K_ENTER || k == K_TAB) + { + TMask& m = f.mask(); + char tipo = m.get(F_TIPO)[0]; + char luogo = m.get(F_LUOGO)[0]; + +// Se ho indicato il tipo => devo indicare anche il LUOGO + if (isalpha(tipo)) + return luogo == ' ' || luogo == '\0' ? + f.warning_box("Indicare il luogo del versamento") : TRUE; + } + return TRUE; +} + +bool TVersa_rit::abicab_hndl(TMask_field& f, KEY k) +{ + if (f.to_check(k)) + { + TString16 park(f.get()); + TMask& m = f.mask(); + char tipo = m.get(F_TIPO)[0]; + +// ABI/CAB solo se tipo e' B + if (tipo != 'B') + return TRUE; + + for (int i=0; i ZERO) + { + found = TRUE; + rriga.add(nriga); + rriga.add(resto.string()); + } + } +***************************************************************/ + rpag.next(); + } + + if (found) add(codditta,tipoa,codanagr,nprog,rriga); + + return found; +} + +void TVersa_rit::build_pagam_sheet(const long codditta) +{ + _pagam->destroy(); +// build array_sheet dei pagamenti non collegati o non del tutto versati + int nriga = 0; + + for (int i=0; i < _schede->items(); i++) + if (_schede->checked(i)) + { + TToken_string& r = _schede->row(i); + char tipoa = r.get_char(1); + long codanagr = r.get_long(2); + const int nprog = r.get_int(4); + + TToken_string* tpag = find(codditta,tipoa,codanagr,nprog); + + if (!tpag) continue; + + while ( (nriga = tpag->get_int()) != 0 ) // le righe partono da 1 + { + real da_versare(tpag->get()); // leggo importo rimasto da versare + + TToken_string rr(100); + rr.add(" "); // Spazio per selezionare + rr.add(tipoa); + rr.add(codanagr); +// rr.add(ragsoc); + rr.add(nprog); + rr.add(nriga); + rr.add(da_versare.string()); + _pagam->add(rr); + } + } +} + +void TVersa_rit::build_schede_sheet(const long codditta) +{ +// Costruisco lista schede + _schede->destroy(); + + TLocalisamfile sch(LF_SCPERC); + sch.setkey(1); + + for (int i=0; i<_sheet_perc->items(); i++) + if (_sheet_perc->checked(i)) + { +// Leggo tipo e codice del percipiente selezionato + TToken_string& r = _sheet_perc->row(i); + char tipoa = r.get_char(1); + long codanagr = r.get_long(2); + TString80 ragsoc(r.get(3)); + + sch.zero(); + sch.put("CODDITTA", (long)codditta); + sch.put("TIPOA", tipoa); + sch.put("CODANAGR", codanagr); + TRectype dep(sch.curr()); + +// Leggo tutte le schede del percipiente scelto + sch.read(_isgteq); + while (sch.curr() == dep && !sch.eof()) + { + const int nprog = sch.get_int("NPROG"); + TString16 datadoc(sch.get("DATADOC")); + +// Considero solo le schede con pagamenti non ancora versati + if (ha_pagamenti_non_versati(codditta,tipoa,codanagr,nprog)) + { + TToken_string rr(100); + rr.add(" "); // Spazio per selezionare + rr.add(tipoa); + rr.add(codanagr); + rr.add(ragsoc); + rr.add(nprog); + rr.add(datadoc); + _schede->add(rr); + } + sch.next(); + } + } // if checked +} + +bool TVersa_rit::do_all() +{ + KEY kp; + long items = 0L; + + while (TRUE) + { + items = _sheet_perc->items(); + + if (items == 0L) + { + warning_box("Nessun percipiente registrato"); + return FALSE; + } + + kp = _sheet_perc->run(); + + if (kp == K_ENTER) + if (!_sheet_perc->one_checked()) + { + warning_box("Nessun percipiente selezionato"); + continue; + } + + if (kp == K_ESC) + return FALSE; + + const long selected = _sheet_perc->selected(); + const long codditta = get_firm(); + + build_schede_sheet(codditta); + + items = _schede->items(); + + if (items == 0L) + { + warning_box("Non esistono pagamenti non versati per i percipienti selezionati"); + continue; + } + + kp = _schede->run(); + + if (kp == K_ENTER) + if (!_schede->one_checked()) + { + warning_box("Nessuna scheda selezionata"); + continue; + } + + if (kp == K_ESC) + continue; + + build_pagam_sheet(codditta); + + kp = _pagam->run(); + + if (kp == K_ENTER) + if (!_pagam->one_checked()) + { + warning_box("Nessun pagamento selezionato"); + continue; + } + + if (kp == K_ESC) + continue; + +// Leggo importo arrivato dalla contabilita' +// _versato = _coll._totdoc; + +// Distribuisce _versato sui pagamenti selezionati creando la riga di +// versamento se occorre + long chk = 0L; + for (int i=0; i < _pagam->items(); i++) + if (_pagam->checked(i)) + { + chk++; + if (_versato == ZERO) break; +// Sull'ultimo pagamento metto tutto il versamento rimasto + const bool last_checked = chk == _pagam->checked(); + + TToken_string& r = _pagam->row(i); + real da_versare(r.get(5)); + + attach_pag_vers(r, _versato, last_checked); + + if (da_versare > _versato) + _versato = ZERO; + else + _versato -= da_versare; + } + return warning_box("Creazione versamenti terminata"); + } // while (TRUE) + + return TRUE; +} + +void TVersa_rit::attach_pag_vers(TToken_string& r, real& versato, const bool last) +{ + char tipoa = r.get_char(1); + const long codanagr = r.get_long(2); + const int nprog = r.get_int(3); + const int nriga = r.get_int(4); + const long codditta = get_firm(); + real da_versare(r.get(5)); // importo ancora "scoperto" in questo pag. + +/************************************************************************* + TLocalisamfile rpag(LF_RPAG); + rpag.setkey(1); + rpag.zero(); + rpag.put("CODDITTA", (long)codditta); + rpag.put("TIPOA", tipoa); + rpag.put("CODANAGR", (long)codanagr); + rpag.put("NPROG", nprog); + rpag.put("NRIGA", nriga); + if (rpag.read() != NOERR) return; // Non dovrebbe succedere mai +// Decido l'importo da attribuire al nuovo versamento + real ritenuta = rpag.get_real("RITENUTA"); +*************************************************************************/ + + real vers_corr = ZERO; + +// Se e' l'ultimo pagamento metto tutto l'importo del versamento + if (last) + vers_corr = versato; + else + vers_corr = versato > da_versare ? da_versare : versato; + +// const long numvers = rpag.get_long("NUMVERS"); + const long new_vers = add_new_vers(codditta,tipoa,codanagr,nprog,vers_corr); + +// Se il pagamento era gia' collegato ad un versamento lo divido in due +// pagamenti: uno lo lascio collegato al precedente versamento, l'altro +// collegato al nuovo. +// Ogni pagamento puo' essere collegato A UNO E UNO SOLO versamento +/****** + if (numvers > 0) + split_rpag(codditta,tipoa,codanagr,nprog,nriga,versato,da_versare,new_vers); + else +*****/ + attach_rpag(codditta,tipoa,codanagr,nprog,nriga,new_vers); +} + +int TVersa_rit::split_rpag(const long codditta,char tipoa, + const long codanagr, const int nprog, + const int nriga, real& versato, real& da_versare, + const long new_vers) +{ + TLocalisamfile rpag(LF_RPAG); + long numpag = 0L; + long pag = 0L; + int new_riga = 0; + int ret_code = 0; + +// Determino un nuovo NUMPAG + for (rpag.first(); !rpag.eof(); rpag.next()) + { + pag = rpag.get_long("NUMPAG"); + if (pag > numpag) numpag = pag; + } + numpag++; + +// Determino un nuovo NRIGA + rpag.zero(); + rpag.put("CODDITTA", (long)codditta); + rpag.put("TIPOA", tipoa); + rpag.put("CODANAGR", (long)codanagr); + rpag.put("NPROG", nprog); + + TRectype dep(rpag.curr()); + rpag.read(_isgteq); + while (rpag.curr() == dep && !rpag.eof()) + { + new_riga = rpag.get_int("NRIGA"); + rpag.next(); + } + new_riga++; + +// Sposto il pagamento preesistente + rpag.zero(); + rpag.put("CODDITTA", (long)codditta); + rpag.put("TIPOA", tipoa); + rpag.put("CODANAGR", (long)codanagr); + rpag.put("NPROG", nprog); + rpag.put("NRIGA", nriga); + + if ((ret_code = rpag.read()) != NOERR) + return ret_code; + +// Leggo ritenuta del vecchio record e il suo versamento eventuale +// La parte che era stata gia' versata resta con il vecchio record +// La parte versata ora viene registrata nel nuovo. + real ritenuta = rpag.get_real("RITENUTA"); + real parte_versata = ritenuta - da_versare; + + TRectype salvo(rpag.curr()); + + rpag.zero(); + rpag.curr() = salvo; + +// Cambio solo: NUMPAG, NRIGA, e aggiorno la ritenuta. NUMVERS resta uguale + rpag.put("NUMPAG", (long)numpag); + rpag.put("NRIGA", new_riga); + rpag.put("RITENUTA", parte_versata); + +// Registro il vecchio pagamento nella nuova posizione + if ((ret_code = rpag.write()) != NOERR) + warning_box("Pagamento non inserito. Codice %d", ret_code); + +// Modifico l'originale per puntare al nuovo versamento + rpag.zero(); + rpag.curr() = salvo; + rpag.put("NUMVERS", (long) new_vers); + rpag.put("RITENUTA", da_versare); + +// Salvo le modifiche al vecchio pagamento + if ((ret_code = rpag.rewrite()) != NOERR) + warning_box("Pagamento non modificato. Codice %d", ret_code); + + return ret_code; +} + +int TVersa_rit::attach_rpag(const long codditta, char tipoa, + const long codanagr, const int nprog, + const int nriga, const long new_vers) +{ + TLocalisamfile rpag(LF_RPAG); + int ret_code = 0; + + rpag.zero(); + rpag.put("CODDITTA", (long)codditta); + rpag.put("TIPOA", tipoa); + rpag.put("CODANAGR", (long)codanagr); + rpag.put("NPROG", nprog); + rpag.put("NRIGA", nriga); + + if ((ret_code = rpag.read()) != NOERR) + { + warning_box("Pagamento non trovato. Codice %d", ret_code); + return ret_code; + } + rpag.put("NUMVERS", (long)new_vers); + + if ((ret_code = rpag.rewrite()) != NOERR) + { + warning_box("Pagamento non modificato. Codice %d", ret_code); + return ret_code; + } + + return ret_code; +} + +long TVersa_rit::add_new_vers(const long codditta, char tipoa, + const long codanagr, const int nprog, + real& versata) +{ + TLocalisamfile rver(LF_RVER); + int nriga = 0; + +// Determino un numero di riga nuovo + rver.zero(); + rver.put("CODDITTA", (long)codditta); + rver.put("TIPOA", tipoa); + rver.put("CODANAGR", (long)codanagr); + rver.put("NPROG", nprog); + + TRectype dep(rver.curr()); + rver.read(_isgteq); + while (rver.curr() == dep && !rver.eof()) + { + nriga = rver.get_int("NRIGA"); + rver.next(); + } + nriga++; + +// Scrivo il nuovo record + rver.zero(); + rver.put("CODDITTA", (long)codditta); + rver.put("TIPOA", tipoa); + rver.put("CODANAGR", (long)codanagr); + rver.put("NPROG", nprog); + rver.put("NRIGA", nriga); +// rver.put("NUMVERS", (long)nriga); + rver.put("DATAVERS", _data); + rver.put("LUOVERS", _luogo); + rver.put("TIPOVERS", _tipo); + rver.put("SERIE", _serie); + rver.put("NUMERO", _numero); + rver.put("RITENUTA", versata); + + if (rver.write() != NOERR) + { + warning_box("Fallita creazione versamento. Codice %d", rver.status()); + return 0L; + } + + return nriga; +} + + +bool TVersa_rit::menu(MENU_TAG m) +{ + if (m == BAR_ITEM(1)) + return do_all(); + + return FALSE; +} + + +int collega_vers_rit(int argc, char* argv[]) +{ + TVersa_rit a; + a.run(argc, argv, "Versamento ritenute"); + return 0; +} + diff --git a/m770/770200a.h b/m770/770200a.h new file mode 100755 index 000000000..2fa1406f1 --- /dev/null +++ b/m770/770200a.h @@ -0,0 +1,18 @@ +#ifndef __770200a_H +#define __770200a_H + +#define F_CODDITTA 101 + +#define F_LUOGO 103 +#define F_TIPO 104 + +#define F_SERIE 105 +#define F_NUMERO 106 +#define F_DATA 102 +#define F_VERSATO 107 + +#define F_RAGDITTA 108 + +#define F_CODANAGRPERC 112 +#define F_TIPOA 113 +#endif diff --git a/m770/770200a.uml b/m770/770200a.uml new file mode 100755 index 000000000..f3281256b --- /dev/null +++ b/m770/770200a.uml @@ -0,0 +1,218 @@ +#include "770200a.h" + +PAGE "MODULO 770 - Collegamento versamento ritenute" -1 -1 75 15 + +GROUPBOX DLG_NULL 74 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "FRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGDITTA RAGSOC +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 15 1 "Ragione " + FLAGS "D" +END + +/** +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END +**/ + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 8 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "H" +END + +// Questo campo serve solo per poter istanziare un browse_sheet nel programma +NUMBER F_CODANAGRPERC 5 +BEGIN + PROMPT 15 8 "" + USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRPERC + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRPERC CODANAGR +// OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC + FLAGS "HG" +END + +GROUPBOX DLG_NULL 74 5 +BEGIN + PROMPT 1 4 "@bDati versamento" +END + +DATE F_DATA +BEGIN + PROMPT 2 5 "Data " + CHECKTYPE REQUIRED + WARNING "Inserire la data del versamento" + HELP "Inserire la data del versamento" + GROUP 1 +END + +STRING F_LUOGO 1 +BEGIN + PROMPT 21 5 "Luogo " + HELP "Indicare il luogo del versamento" + SHEET "Cod.|Descrizione@30" + INPUT F_LUOGO + ITEM " |Nessuno" + ITEM "T|Tesoreria" + ITEM "C|Concessione" + OUTPUT F_LUOGO + OUTPUT 71 + FLAGS "U" + CHECKTYPE REQUIRED + WARNING "Manca il luogo del versamento" + HELP "Inserire il luogo del versamento" + VALIDATE NOT_EMPTY_FUNC + GROUP 1 +END + +STRING 71 12 +BEGIN + PROMPT 31 5 "" + FLAGS "D" +END + +TEXT 209 +BEGIN + PROMPT 2 7 "Serie " + GROUP 2 4 +END + +TEXT 210 +BEGIN + PROMPT 2 7 "Codice ABI " + GROUP 2 6 +END + +TEXT 212 +BEGIN + PROMPT 25 7 "Codice CAB " + GROUP 2 6 +END + +TEXT 213 +BEGIN + PROMPT 25 7 "Quietanza " + GROUP 2 3 +END + +TEXT 211 +BEGIN + PROMPT 25 7 "Numero " + GROUP 2 4 5 +END + +STRING F_TIPO 1 +BEGIN + PROMPT 46 5 "Tipo " + SHEET "Cod.|Descrizione@30" + INPUT F_TIPO + ITEM " |Nessuno" + ITEM "C|C/C Postale" + ITEM "D|Distinta" + ITEM "B|Delega bancaria" + OUTPUT F_TIPO + OUTPUT 70 + GROUP 1 + CHECKTYPE REQUIRED + HELP "Inserire il tipo di versamento" + WARNING "Manca il tipo di versamento" + FLAGS "U" + VALIDATE NOT_EMPTY_FUNC +END + +STRING 70 16 +BEGIN + PROMPT 55 5 "" + FLAGS "D" +END + +/* +LIST 104 16 +BEGIN + PROMPT 42 3 "Tipo " + ITEM " |Nessuno" + MESSAGE SHOW,210|SHOW,212|HIDE,209|HIDE,211|SHOW,105 + ITEM "C|C/C Postale" + MESSAGE HIDE,209|SHOW,211|HIDE,210|HIDE,212|HIDE,105 + ITEM "D|Distinta" + MESSAGE SHOW,209|SHOW,211|HIDE,210|HIDE,212|SHOW,105 + ITEM "B|Delega bancaria" + MESSAGE SHOW,210|SHOW,212|HIDE,209|HIDE,211|SHOW,105 + GROUP 1 +END +*/ + +STRING F_SERIE 5 +BEGIN + PROMPT 16 7 "" +// VALIDATE REQIF_FUNC 2 103 104 + CHECKTYPE REQUIRED + FLAGS "G" + WARNING "Inserire il numero di serie/codice CAB" + HELP "Inserire la serie" + GROUP 1 2 4 6 +END + +STRING F_NUMERO 11 +BEGIN + PROMPT 39 7 "" + VALIDATE REQIF_FUNC 2 103 104 + WARNING "Inserire il numero/codice ABI/quietanza" + HELP "Inserire il numero" + FLAGS "G" + GROUP 1 2 3 4 5 6 +END + +NUMBER F_VERSATO 15 +BEGIN + PROMPT 2 10 "Importo versato " + PICTURE "." + HELP "Inserire l'importo versato" + WARNING "Manca l'importo versato" + CHECKTYPE REQUIRED +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -22 -1 "" +// MESSAGE CLEAR,103|CLEAR,104|CLEAR,105|CLEAR,106|CLEAR,107 +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/770300.cpp b/m770/770300.cpp new file mode 100755 index 000000000..3c6b02064 --- /dev/null +++ b/m770/770300.cpp @@ -0,0 +1,67 @@ +/***************************************************************** + TDate d(TODAY); + TString16 dat, v15; + bool sposta_pag = FALSE; + if (d == TDate("14-09-1995") || d == TDate("15-09-1995")) + { + for (_rver->first(); !_rver->eof(); _rver->next()) + { + dat = _rver->get("DATAVERS"); + v15 = _rver->get("VERS1015"); + dat.trim(); + v15.trim(); + if (dat.empty() && v15.empty()) + { + sposta_pag = TRUE; + _rver->remove(); + } + } + if (sposta_pag) + { + for (_rpag->first(); !_rpag->eof(); _rpag->next()) + { + const long nvers = _rpag->get_long("NUMVERS"); + if (nvers <= 0L) continue; + TSchedaP sch(_rpag->curr()); + _rver->zero(); + _rver->put(VER_CODDITTA, sch.codditta()); + _rver->put(VER_TIPOA, sch.tipoa()); + _rver->put(VER_CODANAGR, sch.codanagr()); + _rver->put(VER_NPROG, sch.nprog()); + _rver->put(VER_NRIGA, (long)nvers); + const int rt = _rver->read(); + if (rt == NOERR) + continue; // vuol dire che c'e' il versamento + else + { + _rver->zero(); + _rver->put(VER_CODDITTA, sch.codditta()); + _rver->put(VER_TIPOA, sch.tipoa()); + _rver->put(VER_CODANAGR, sch.codanagr()); + _rver->put(VER_NPROG, sch.nprog()); + + _rver->read(); + + TSchedaP sch2 (_rver->curr()); + if (sch2 == sch) // Se sono ancora nella stessa scheda + { + int nriga = _rver->get_int("NRIGA"); + if (nriga == nvers) + continue; // e' il versamento giusto + if (nriga > 10) // sicuramente errata + { + nriga = 1; + _rver->remove(); + _rver->put("NRIGA", (long)nriga); + _rver->put("NUMVERS", (long)nriga); + const int rc1 = _rver->write(); + _rpag->put("NUMVERS", (long)nriga); + const int rc2 = _rpag->rewrite(); + } + } + } + } + } + } +***************************************************************/ + diff --git a/m770/771.cpp b/m770/771.cpp new file mode 100755 index 000000000..35a4acf8c --- /dev/null +++ b/m770/771.cpp @@ -0,0 +1,63 @@ +#include +#include + +#include "771.h" + +#define usage "Error - usage : %s -{0|1|2|3|4|5|6}" + +int main(int argc,char** argv) +{ + int n = (argc > 1) ? atoi(argv[1]+1) : -1; + + switch (n) + { +// Manutenzione dati anagrafici + case 0: + m71100(argc,argv); + break; +// Quadro H + case 1: + m71290(argc,argv); + break; +// Quadro I e Prospetto dati generali + case 2: + m71300(argc,argv); + break; +// Quadro L + case 3: + m71310(argc,argv); + break; +// Dettaglio H + case 4: + m71295(argc,argv); + break; +////////////////////////////////////// +// 1: Quadro D1 +// C: Quadro C +// 771mod -5 E: Quadro E +// 2: Quadro E1 +// 3: Quadro E2 +////////////////////////////////////// + case 5: + quadriC_E2 (argc,argv); + break; +////////////////////////////////////// +// 0 = F, +// 1 = F1, +// 771mod -6 2 = F2, +// 3 = G +// 4 = distinta G +// 5 = G-1 +////////////////////////////////////// + case 6: + quadroF (argc,argv); + break; +// Quadro A + case 7: + quadriA_A3(argc,argv); + break; + default: + error_box(usage, argv[0]) ; + } + return 0; +} diff --git a/m770/771.h b/m770/771.h new file mode 100755 index 000000000..2a7ceaf6e --- /dev/null +++ b/m770/771.h @@ -0,0 +1,15 @@ +// 771.h +#ifndef __771_H +#define __771_H + +extern int m71100 (int argc, char* argv[]); +extern int m71290 (int argc, char* argv[]); +extern int m71300 (int argc, char* argv[]); +extern int m71310 (int argc, char* argv[]); +extern int m71295 (int argc, char* argv[]); +extern int quadriC_E2(int argc, char* argv[]); +extern int quadroF(int argc, char* argv[]); +extern int quadriA_A3(int argc, char* argv[]); + +#endif + diff --git a/m770/771.mak b/m770/771.mak new file mode 100755 index 000000000..daab8d342 --- /dev/null +++ b/m770/771.mak @@ -0,0 +1,775 @@ +# Microsoft Visual C++ generated build script - Do not modify + +PROJ = 771 +DEBUG = 1 +PROGTYPE = 0 +CALLER = +ARGS = -3 +DLLS = +D_RCDEFINES = /d_DEBUG +R_RCDEFINES = /dNDEBUG +ORIGIN = MSVC +ORIGIN_VER = 1.00 +PROJPATH = C:\PRASSI\ +USEMFC = 0 +CC = cl +CPP = cl +CXX = cl +CCREATEPCHFLAG = +CPPCREATEPCHFLAG = +CUSEPCHFLAG = +CPPUSEPCHFLAG = +FIRSTC = +FIRSTCPP = 771.CPP +RC = rc +CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"771.PDB" /GEs +CFLAGS_R_WEXE = /nologo /Gs /Gy /W3 /Gf /AL /O1 /D "XVT_OS"="400" /FR /GA +LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO +LFLAGS_R_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE +LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib +LIBS_R_WEXE = oldnames libw llibcew toolhelp.lib +RCFLAGS = /nologo +RESFLAGS = /nologo /k /k +RUNFLAGS = +DEFFILE = F:\P.DUE\WIN\LIB\UNIVERSL.DEF +OBJS_EXT = +LIBS_EXT = F:\P.DUE\WIN\LIB\HLAPI_CW.LIB F:\P.DUE\WIN\LIB\WINDUED.LIB F:\P.DUE\WIN\LIB\WINGFM.LIB \ + F:\P.DUE\WIN\LIB\WINUNO.LIB F:\P.DUE\WIN\LIB\XVT400.LIB +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS_D_WEXE) +LFLAGS = $(LFLAGS_D_WEXE) +LIBS = $(LIBS_D_WEXE) +MAPFILE = nul +RCDEFINES = $(D_RCDEFINES) +!else +CFLAGS = $(CFLAGS_R_WEXE) +LFLAGS = $(LFLAGS_R_WEXE) +LIBS = $(LIBS_R_WEXE) +MAPFILE = nul +RCDEFINES = $(R_RCDEFINES) +!endif +!if [if exist MSVC.BND del MSVC.BND] +!endif +SBRS = 771.SBR \ + 771310.SBR \ + 774100.SBR \ + 771100.SBR \ + 771290.SBR \ + 771295.SBR \ + 771300.SBR \ + 77LIB01.SBR + + +771_RCDEP = + +771_DEP = f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\checks.h \ + f:\p.due\77\771.h + + +771310_DEP = f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\text.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\msksheet.h \ + f:\p.due\include\relapp.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\urldefid.h \ + f:\p.due\include\defmask.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\utility.h \ + f:\p.due\77\771310.h \ + f:\p.due\77\774100.h \ + f:\p.due\77\77lib.h \ + f:\p.due\include\scperc.h \ + f:\p.due\include\rver.h \ + f:\p.due\include\rpag.h \ + f:\p.due\include\quadrol.h + + +774100_DEP = f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\text.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\printapp.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\progind.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\urldefid.h \ + f:\p.due\include\defmask.h \ + f:\p.due\include\execp.h \ + f:\p.due\77\774100.h \ + f:\p.due\include\rpag.h \ + f:\p.due\include\rver.h \ + f:\p.due\include\scperc.h \ + f:\p.due\include\quadrol.h \ + f:\p.due\77\77lib.h + + +771100_DEP = f:\p.due\include\mask.h \ + f:\p.due\include\window.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\array.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\strings.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\printapp.h \ + f:\p.due\include\applicat.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\text.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\urldefid.h \ + f:\p.due\include\defmask.h \ + f:\p.due\include\mailbox.h \ + f:\p.due\include\execp.h \ + f:\p.due\77\771.h \ + f:\p.due\77\771100.h \ + f:\p.due\ba/ba4200.h \ + f:\p.due\include\comuni.h \ + f:\p.due\include\anagr.h \ + f:\p.due\include\nditte.h \ + f:\p.due\77\77lib.h \ + f:\p.due\ba/ba4500.h + + +771290_DEP = f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\text.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\msksheet.h \ + f:\p.due\include\relapp.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\urldefid.h \ + f:\p.due\include\defmask.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\mailbox.h \ + f:\p.due\include\execp.h \ + f:\p.due\77\771290.h \ + f:\p.due\77\771295.h \ + f:\p.due\77\77lib.h \ + f:\p.due\include\nditte.h + + +771295_DEP = f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\text.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\msksheet.h \ + f:\p.due\include\relapp.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\urldefid.h \ + f:\p.due\include\defmask.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\mailbox.h \ + f:\p.due\include\execp.h \ + f:\p.due\77\771295.h \ + f:\p.due\include\nditte.h + + +771300_DEP = f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\text.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\msksheet.h \ + f:\p.due\include\relapp.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\urldefid.h \ + f:\p.due\include\defmask.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\utility.h \ + f:\p.due\77\771300.h + + +77LIB01_DEP = f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\text.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\real.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\77\77lib.h + + +HLAPI_CW_DEP = + +WINDUED_DEP = + +WINGFM_DEP = + +WINUNO_DEP = + +XVT400_DEP = + +all: $(PROJ).EXE $(PROJ).BSC + +771.RES: 771.RC $(771_RCDEP) + $(RC) $(RCFLAGS) $(RCDEFINES) -r 771.RC + +771.OBJ: F:\P.DUE\77\771.CPP $(771_DEP) + $(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c F:\P.DUE\77\771.CPP + +771310.OBJ: F:\P.DUE\77\771310.CPP $(771310_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771310.CPP + +774100.OBJ: F:\P.DUE\77\774100.CPP $(774100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\774100.CPP + +771100.OBJ: F:\P.DUE\77\771100.CPP $(771100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771100.CPP + +771290.OBJ: F:\P.DUE\77\771290.CPP $(771290_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771290.CPP + +771295.OBJ: F:\P.DUE\77\771295.CPP $(771295_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771295.CPP + +771300.OBJ: F:\P.DUE\77\771300.CPP $(771300_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\771300.CPP + +77LIB01.OBJ: F:\P.DUE\77\77LIB01.CPP $(77LIB01_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\77LIB01.CPP + + +$(PROJ).EXE:: 771.RES + +$(PROJ).EXE:: 771.OBJ 771310.OBJ 774100.OBJ 771100.OBJ 771290.OBJ 771295.OBJ 771300.OBJ \ + 77LIB01.OBJ $(OBJS_EXT) $(DEFFILE) + echo >NUL @<<$(PROJ).CRF +771.OBJ + +771310.OBJ + +774100.OBJ + +771100.OBJ + +771290.OBJ + +771295.OBJ + +771300.OBJ + +77LIB01.OBJ + +$(OBJS_EXT) +$(PROJ).EXE +$(MAPFILE) +f:\msvc\lib\+ +f:\p.due\win\lib\+ +f:\P.DUE\WIN\OBJD\+ +F:\P.DUE\WIN\LIB\HLAPI_CW.LIB+ +F:\P.DUE\WIN\LIB\WINDUED.LIB+ +F:\P.DUE\WIN\LIB\WINGFM.LIB+ +F:\P.DUE\WIN\LIB\WINUNO.LIB+ +F:\P.DUE\WIN\LIB\XVT400.LIB+ +$(LIBS) +$(DEFFILE); +<< + link $(LFLAGS) @$(PROJ).CRF + $(RC) $(RESFLAGS) 771.RES $@ + @copy $(PROJ).CRF MSVC.BND + +$(PROJ).EXE:: 771.RES + if not exist MSVC.BND $(RC) $(RESFLAGS) 771.RES $@ + +run: $(PROJ).EXE + $(PROJ) $(RUNFLAGS) + + +$(PROJ).BSC: $(SBRS) + bscmake @<< +/o$@ $(SBRS) +<< diff --git a/m770/771100.cpp b/m770/771100.cpp new file mode 100755 index 000000000..96833158a --- /dev/null +++ b/m770/771100.cpp @@ -0,0 +1,730 @@ +// 771100.cpp - Manutenzione dati anagrafici +// +// 771mod -0 A : "Dichiarante" +// 771mod -0 C : "Rappresentante" +// 771mod -0 D : "Scritture contabili" +// 771mod -0 E : "Dati C.A.A.F." +// 771mod -0 F : "Direttore / Professionista" +// 771mod -0 G : "Concessione / UIDD" +// +// Lista modifiche: +// +// 1.4.96 Rappresentante: codice e carica rappr. non vengono piu' registrati +// su NDITTE ma bensi' su BASE +// +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "771.h" +#include "771100.h" +#include "../ba/ba4200.h" + +#include +#include +#include +#include "77lib.h" + +#include "../ba/ba4500.h" + +class TDati_anagrafici : public TApplication +{ + private: + static bool indirizzo (TMask_field&, KEY); + static bool cod_conc (TMask_field&, KEY); + static bool niscraa (TMask_field&, KEY); + static bool ditta_caaf(TMask_field&, KEY); + static bool attivita_handler(TMask_field&, KEY); + static bool fisica_handler(TMask_field&, KEY); + static bool giuridica_handler(TMask_field&, KEY); + static bool anagrafica_handler(TMask_field&, KEY); + TMask* _msk; + TRelation* _rel; + char _ana; + bool Dichiarante() const { return _ana == 'A'; } + bool Rappresentante() const { return _ana == 'C'; } + bool ScrittureContabili() const { return _ana == 'D'; } + bool DatiCAAF() const { return _ana == 'E'; } + bool DirProf() const { return _ana == 'F'; } + bool ConcUIDD() const { return _ana == 'G'; } + public: + TString _titolo; + virtual bool create(); + virtual bool destroy(); + virtual bool menu(MENU_TAG m); + bool main_loop(); + void registra(); + void registra_fis_giu(); + void registra_rappr(); + void registra_caaf(); + void registra_dirprof(); + void registra_dativari(); + static bool codditta_hnd(TMask_field& f, KEY k); + TDati_anagrafici(char anagrafica); +}; + +TDati_anagrafici::TDati_anagrafici(char anagrafica) : _titolo(50), _ana(toupper(anagrafica)) +{ + if (Dichiarante()) + _titolo = "Dichiarante"; + + if (Rappresentante()) + _titolo = "Rappresentante"; + + if (ScrittureContabili()) + _titolo = "Scritture contabili"; + + if (DatiCAAF()) + _titolo = "Dati C.A.A.F."; + + if (DirProf()) + _titolo = "Direttore / Professionista"; + + if (ConcUIDD()) + _titolo = "Concessione / UIDD"; +} + +HIDDEN TDati_anagrafici& app() { return (TDati_anagrafici &) main_app(); } + +bool TDati_anagrafici::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + + return TRUE; +} + +bool TDati_anagrafici::attivita_handler(TMask_field& m, KEY k) +{ + if (k != K_SPACE) + return TRUE; + + app().registra(); + m.mask().stop_run(K_ESC); + + TString appname; + + appname = "ba4 -4"; + + TString body(16); + + body << "1" << "|"; + body << m.mask().get(F_CODDITTA) << "|"; + body << m.mask().get(F_ATTIV) << "|"; + body << m.mask().get(F_ATTIV); + + TMessage msg(cmd2name(appname), MSG_LN, (const char*) body); + + TMailbox mb; + mb.send(msg); + TExternal_app a(appname); + a.run(); + m.set_focus(); + + return TRUE; +} + +bool TDati_anagrafici::fisica_handler(TMask_field& m, KEY k) +{ + if (k != K_SPACE) + return TRUE; + + app().registra(); + m.mask().stop_run(K_ESC); + + TToken_string body(16); + + body << "1" << "|"; + body << m.mask().get(F_ANAGR); + + TString16 cmd ("ba4 -1 F"); + + TMessage msg(cmd, MSG_LN, (const char*) body); + TMailbox mb; + mb.send(msg); + + TExternal_app a(cmd); + a.run(); + + m.set_focus(); + + return FALSE; +} + +bool TDati_anagrafici::giuridica_handler(TMask_field& m, KEY k) +{ + if (k != K_SPACE) + return TRUE; + + app().registra(); + m.mask().stop_run(K_ESC); + + TToken_string body(16); + + body << "1" << "|"; + body << m.mask().get(F_ANAGR); + + TString16 cmd ("ba4 -1 G"); + + TMessage msg(cmd, MSG_LN, (const char*) body); + TMailbox mb; + mb.send(msg); + + TExternal_app a(cmd); + a.run(); + m.set_focus(); + + return FALSE; +} + +bool TDati_anagrafici::anagrafica_handler(TMask_field& m, KEY k) +{ + TString16 cmd; + + if (k != K_SPACE) + return TRUE; + + app().registra(); + m.mask().stop_run(K_ESC); + + TToken_string body(16); + + body << "1" << "|"; + body << m.mask().get(F_ANAGR); + + char tipoa = m.mask().get(ASCF_TIPOA)[0]; + + if (tipoa == 'F') + cmd = "ba4 -1 F"; + else + if (tipoa == 'G') + cmd = "ba4 -1 G"; + + TMessage msg(cmd, MSG_LN, (const char*) body); + TMailbox mb; + mb.send(msg); + + TExternal_app a(cmd); + a.run(); + + m.set_focus(); + + return FALSE; +} + +bool TDati_anagrafici::indirizzo (TMask_field& f, KEY k) +{ + TLocalisamfile anag (LF_ANAG, FALSE); + TLocalisamfile comuni (LF_COMUNI, FALSE); + long codanagr; + char tipoa; + TString ragione,nome,cognome,ind,civ,cap,com,prov,codcom; + + if ( k == K_TAB )// && f.mask().is_running() ) + { + tipoa = f.mask().get (ASCF_TIPOA)[0]; + codanagr = f.mask().get_long(F_ANAGR); + + // Ricerca sull'archivio anagrafiche dei dati relativi al depositario + + anag.setkey(1); + anag.zero(); + anag.put("TIPOA", tipoa); + anag.put("CODANAGR", codanagr); + if (anag.read() == NOERR) + { + ragione = anag.get("RAGSOC"); + codcom = anag.get("COMRF"); + + if (codcom != "") + { + ind = anag.get("INDRF"); + civ = anag.get("CIVRF"); + cap = anag.get("CAPRF"); + } + else + { + ind = anag.get("INDRES"); + civ = anag.get("CIVRES"); + cap = anag.get("CAPRES"); + codcom = anag.get("COMRES"); + } + } + + if (tipoa == 'F') + { + cognome = ragione.mid(0,30); + nome = ragione.mid(30,20); + f.mask().hide(F_RAGIONE); + f.mask().show(F_COGNOME); + f.mask().show(F_NOME); + f.mask().set(F_COGNOME, cognome); + f.mask().set(F_NOME, nome); + } + else + if (tipoa == 'G') + { + f.mask().hide(F_COGNOME); + f.mask().hide(F_NOME); + f.mask().show(F_RAGIONE); + f.mask().set(F_RAGIONE, ragione); + } + + // Ricerca dati relativi al comune del depositario + + comuni.setkey(1); + comuni.zero(); + comuni.put("STATO", ""); + comuni.put("COM", codcom); + if (comuni.read() == NOERR) + { + com = comuni.get("DENCOM"); + prov = comuni.get("PROVCOM"); + } + + f.mask().set(F_IND, ind); + f.mask().set(F_CIV, civ); + f.mask().set(F_CAP, cap); + f.mask().set(F_COM, com); + f.mask().set(F_PROV, prov); + } + return TRUE; +} + +bool TDati_anagrafici::cod_conc (TMask_field& f, KEY k) +{ + TLocalisamfile anag (LF_ANAG); + TLocalisamfile comuni (LF_COMUNI); + long codanagr; + char tipoa; + int codconc,uffiidd,codcs; + TString codcom; + + if ( k == K_TAB || k == K_SPACE )// && f.mask().is_running() ) + { + tipoa = f.mask().get (F_TIPOA)[0]; + codanagr = f.mask().get_long(F_ANAGR); + + // Ricerca sull'archivio anagrafiche dei dati + + anag.setkey(1); + anag.zero(); + anag.put("TIPOA", tipoa); + anag.put("CODANAGR", codanagr); + if (anag.read() == NOERR) + { + codcom = anag.get("COMRF"); + + if (codcom == "") + codcom = anag.get("COMRES"); + } + + // Ricerca dati relativi al comune + + comuni.setkey(1); + comuni.zero(); + comuni.put("STATO", ""); + comuni.put("COM", codcom); + if (comuni.read() == NOERR) + { + codconc = comuni.get_int("UFFCONC"); + uffiidd = comuni.get_int("UFFIIDD1"); + + if (uffiidd == 0) + uffiidd = comuni.get_int("UFFIIDD2"); + + if (uffiidd == 0) + uffiidd = comuni.get_int("UFFIIDD3"); + + codcs = comuni.get_int("UFFCSERV"); + + if (codconc != 0) + f.mask().set(F_CODCONC1, codconc); + if (uffiidd != 0) + f.mask().set(F_CODUI, uffiidd); + if (codcs != 0) + f.mask().set(F_CODCS, codcs); + + f.mask().send_key(K_TAB, F_CODUI); + f.mask().send_key(K_TAB, F_CODCS); + } + } + return TRUE; +} + +bool TDati_anagrafici::niscraa(TMask_field& f, KEY k) +{ + if (k == K_TAB && !f.mask().is_running()) + { + TLocalisamfile base (LF_BASE); + TLocalisamfile ditte(LF_NDITTE); + TString16 niscraa = ""; + long dittacaaf = 0; + + long codditta = f.mask().get_long(F_CODDITTA); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", codditta); + if (base.read() == NOERR) + { + dittacaaf = base.get_long("DITTACAAF"); + + ditte.setkey(1); + ditte.zero(); + ditte.put(NDT_CODDITTA, dittacaaf); + if (ditte.read() == NOERR) + niscraa = ditte.get(NDT_NISCRAA); + } + f.mask().set(F_NISCRAA, niscraa); + if (dittacaaf != 0) + f.mask().set(F_DITTACAAF, dittacaaf); + + } + + return TRUE; +} + +bool TDati_anagrafici::ditta_caaf(TMask_field& f, KEY k) +{ + if (k == K_TAB || k == K_ENTER) + { + long caaf = f.mask().get_long(F_ANAGR); + long ditta = atol(f.get()); + + if (caaf == 0 && ditta != 0) + return f.warning_box("Se non indicato il codice del CAAF la ditta non deve essere indicata"); + + if (caaf != 0 && ditta == 0) + return f.warning_box("Se indicato il codice del CAAF deve essere indicata anche la ditta a cui e' collegato"); + } + + return TRUE; +} + +bool TDati_anagrafici::create() +{ + TApplication::create(); + _rel = new TRelation (LF_NDITTE); + _rel->add(LF_BASE, "CODDITTA=CODDITTA"); + _rel->add(LF_BASEBIS, "CODDITTA=CODDITTA"); + + if (Dichiarante()) + { + char tipo_pers = tipo_persona(get_firm_770()); + if (tipo_pers == ' ' || tipo_pers == '\0') + { + message_box("Il titolare della ditta non e' stato compilato correttamente."); + return TRUE; + } + if (tipo_pers == 'G') + { + _msk = new TMask ("771100b"); + _msk->set_handler(F_GIURIDICA, giuridica_handler); + } + else + if (tipo_pers == 'F') + { + _msk = new TMask ("771100a"); + _msk->set_handler(F_FISICA, fisica_handler); + } + _msk->set_handler(F_ATTIVITA, attivita_handler); + } + + if (Rappresentante()) + { + _msk = new TMask ("771100c"); + _msk->set_handler(F_FISICA, fisica_handler); + } + + if (ScrittureContabili()) + { + _msk = new TMask ("771100d"); + _msk->set_handler(F_ANAGR, indirizzo); + _msk->set_handler(F_ATTIVITA, attivita_handler); + _msk->set_handler(F_ANAGRAFICA, anagrafica_handler); + } + + if (DatiCAAF()) + { + _msk = new TMask ("771100e"); + _msk->set_handler(F_ANAGR, niscraa); + _msk->set_handler(F_GIURIDICA, giuridica_handler); + _msk->set_handler(F_DITTACAAF, ditta_caaf); + _msk->set_mode(NO_MODE); + } + + if (DirProf()) + { + _msk = new TMask ("771100f"); + _msk->set_handler(F_FISICA, fisica_handler); + } + + if (ConcUIDD()) + { + _msk = new TMask ("771100g"); + _msk->field(F_CODCONC2).set_dirty(); + _msk->set_handler(F_CODCONC2, cod_conc); + _msk->set_handler(F_ANAGRAFICA, anagrafica_handler); + } + + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + _msk->set(F_CODDITTA,codditta); + + dispatch_e_menu (BAR_ITEM(1)); + + return TRUE; +} + +bool TDati_anagrafici::destroy() +{ + delete _msk; + delete _rel; + + return TApplication::destroy(); +} + +bool TDati_anagrafici::main_loop() +{ + KEY tasto; + + do + { + _rel->lfile().put("CODDITTA", get_firm_770()); + _rel->read(); + _msk->autoload(_rel); + tasto = _msk->run(); + + switch (tasto) + { + case K_ESC : + break; + + case K_QUIT : + break; + + case K_SAVE : + { + registra(); + } + break; + + default: + break; + } + } + while (tasto != K_QUIT); //K_ENTER + + return FALSE; +} + +void TDati_anagrafici::registra() +{ + if (_ana == 'A' || _ana == 'B') + registra_fis_giu(); + + if (_ana == 'C') + registra_rappr(); + + if (_ana == 'E') + registra_caaf(); + + if (_ana == 'F') + registra_dirprof(); + + if (_ana == 'G') + registra_dativari(); +} + +void TDati_anagrafici::registra_fis_giu() +{ + TLocalisamfile base(LF_BASE); + long codditta; + + codditta = _msk->get_long(F_CODDITTA); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", codditta); + if (base.read() == NOERR) + { + int rss = _msk->get_int(F_RSS); + base.put("RSS", rss); + base.rewrite(); + } + else + { + int rss = _msk->get_int(F_RSS); + base.zero(); + base.put("CODDITTA", codditta); + base.put("RSS", rss); + base.write(); + } +} + +void TDati_anagrafici::registra_rappr() +{ + TLocalisamfile base(LF_BASE); + const long codditta = _msk->get_long(F_CODDITTA); + const long CodiceRappr = _msk->get_long(F_ANAGR); + const int CaricaRappr = _msk->get_int(F_CARRAP); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", codditta); + if (base.read() == NOERR) + { + base.put("RAPPR", CodiceRappr); + base.put("CARRAPP", CaricaRappr); + base.rewrite(); + } + else + { + base.zero(); + base.put("RAPPR", CodiceRappr); + base.put("CARRAPP", CaricaRappr); + base.write(); + } +} + +void TDati_anagrafici::registra_caaf() +{ + TLocalisamfile ditte(LF_NDITTE); + TLocalisamfile base (LF_BASE); + long codditta; + char tipoa = 'G'; + + // Registro il codice caaf sull'archivio base + + codditta = _msk->get_long(F_CODDITTA); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", codditta); + if (base.read() == NOERR) + { + long codice = _msk->get_long(F_ANAGR); + long dittacaaf = _msk->get_long(F_DITTACAAF); + + base.put("CODCAAF", codice); + base.put("DITTACAAF", dittacaaf); + base.rewrite(); + } + else + { + long codice = _msk->get_long(F_ANAGR); + long dittacaaf = _msk->get_long(F_DITTACAAF); + + base.zero(); + base.put("CODDITTA", codditta); + base.put("CODCAAF", codice); + base.put("DITTACAAF", dittacaaf); + base.write(); + } +} + +void TDati_anagrafici::registra_dirprof() +{ + TLocalisamfile base (LF_BASE); + long codditta; + + codditta = _msk->get_long(F_CODDITTA); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", codditta); + if (base.read() == NOERR) + { + long codpro = _msk->get_long(F_ANAGR); + bool flart4 = _msk->get_bool(F_CONTROLLI); + + base.put("CODPRO", codpro); + base.put("FLART4", flart4); + base.rewrite(); + } + else + { + long codpro = _msk->get_long(F_ANAGR); + bool flart4 = _msk->get_bool(F_CONTROLLI); + + base.zero(); + base.put("CODDITTA", codditta); + base.put("CODPRO", codpro); + base.put("FLART4", flart4); + base.write(); + } +} + +void TDati_anagrafici::registra_dativari() +{ + TLocalisamfile base(LF_BASEBIS); + long codditta; + + codditta = _msk->get_long(F_CODDITTA); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", codditta); + if (base.read() == NOERR) + { + TString16 codconc1(_msk->get(F_CODCONC1)); + TString16 codconc2(_msk->get(F_CODCONC2)); + TString16 codconc3(_msk->get(F_CODCONC3)); + int codtes1 = _msk->get_int(F_CODTES1); + int codtes2 = _msk->get_int(F_CODTES2); + int codtes3 = _msk->get_int(F_CODTES3); + base.put("L0CCONC1", codconc1); + base.put("L0CCONC2", codconc2); + base.put("L0CCONC3", codconc3); + base.put("L0CTES1", codtes1); + base.put("L0CTES2", codtes2); + base.put("L0CTES3", codtes3); + base.rewrite(); + } + else + { + TString16 codconc1(_msk->get(F_CODCONC1)); + TString16 codconc2(_msk->get(F_CODCONC2)); + TString16 codconc3(_msk->get_int(F_CODCONC3)); + int codtes1 = _msk->get_int(F_CODTES1); + int codtes2 = _msk->get_int(F_CODTES2); + int codtes3 = _msk->get_int(F_CODTES3); + base.zero(); + base.put("CODDITTA", codditta); + base.put("L0CCONC1", codconc1); + base.put("L0CCONC2", codconc2); + base.put("L0CCONC3", codconc3); + base.put("L0CTES1", codtes1); + base.put("L0CTES2", codtes2); + base.put("L0CTES3", codtes3); + base.write(); + } +} + +bool TDati_anagrafici::menu(MENU_TAG m) +{ + if (m == BAR_ITEM(1)) + return main_loop(); + return FALSE; +} + +int m71100 (int argc, char* argv[]) +{ + TDati_anagrafici main_app(*argv[2]); + main_app.run(argc, argv, main_app._titolo); + return TRUE; +} diff --git a/m770/771100.h b/m770/771100.h new file mode 100755 index 000000000..23b85af54 --- /dev/null +++ b/m770/771100.h @@ -0,0 +1,118 @@ +// Campi maschera persone fisiche 771100a.uml +#ifndef _771100_H +#define _771100_H + +#define F_CODDITTA 500 +#define F_RAGSOC 501 + +#define APF_CODDITTA 101 +#define APF_RAGSOC 102 +#define F_COFI 103 +#define F_COGNOME 104 +#define F_NOME 105 +#define F_SESSO 106 +#define F_DATANASC 107 +#define F_COMNASC 108 +#define F_PROVNASC 109 +#define F_ATTIV 110 +#define F_DESCRATT 111 +#define F_RSS 112 +#define F_INDRES 113 +#define F_CIVRES 114 +#define F_CAPRES 115 +#define F_COMRES 116 +#define F_PROVRES 117 +#define F_INDRF 118 +#define F_CIVRF 119 +#define F_CAPRF 120 +#define F_COMRF 121 +#define F_PROVRF 122 +#define F_DOMFISC 123 +#define F_EVECC 124 +#define F_GIURIDICA 125 +#define F_ANAGR 126 + +// Campi maschera persone giuridiche 771100b.uml + +#define F_RAGIONE 150 +#define F_SEDELEG 151 +#define F_PTELRF 152 +#define F_TELRF 153 +#define F_DATAAPPBIL 154 +#define F_DATATAPPBI 155 +#define F_STATOSOC 156 +#define F_SITSOC 157 +#define F_NATGIU 158 +#define F_FISICA 159 + +// Campi maschera rappresentanti 771100c.uml + +#define F_CARRAP 201 + +// Campi maschera Luogo di conservazione delle scritture contabili 771100d.uml + +#define ASCF_TIPOA 250 +#define F_CODDEP 251 +#define F_IND 252 +#define F_CIV 253 +#define F_CAP 254 +#define F_COM 255 +#define F_PROV 256 +#define F_INDCS 257 +#define F_CIVCS 258 +#define F_CAPCS 259 +#define F_COMCS 260 +#define F_PROVCS 261 +#define F_PTELCS 262 +#define F_TELCS 263 +#define F_ATTIVITA 264 + +// Campi maschera dati CAAF 771100e.uml + +#define F_NISCRAA 301 +#define F_DITTACAAF 302 + +// Campi maschera direttore/professionista 771100f.uml + +#define F_CONTROLLI 325 + +// Campi maschera Dati Vari 771100g.uml +#define F_TIPOA 503 +#define F_CODCONC1 350 +#define F_CODCONC2 351 +#define F_CODCONC3 352 +#define F_CODTES1 353 +#define F_CODTES2 354 +#define F_CODTES3 355 +#define F_INDUI 356 +#define F_CIVUI 357 +#define F_CAPUI 358 +#define F_COMUI 359 +#define F_PROVUI 360 +//#define GF_ANAGR 361 +#define F_CODUI 362 +#define F_CODCS 363 +#define F_DESCRUI 364 +#define F_DESCRCS 375 +#define F_ANAGRAFICA 376 + +// Campi maschera Societa' trasformate 771100h.uml +#define MDSTF_CODDITTA 181 +#define MDSTF_RAGSOC 415 +#define F_SOC_COFI 400 +#define F_SOC_COGNOME 401 +#define F_SOC_NOME 402 +#define F_SOC_SESSO 403 +#define F_SOC_DATANAS 404 +#define F_SOC_COMUNE 405 +#define F_SOC_PROVNAS 406 +#define F_SOC_DENOMIN 407 +#define F_SOC_COMRES 408 +#define F_SOC_PROVRES 409 +#define F_SOC_INDRES 410 +#define F_SOC_CONSBOCC 411 +#define F_SOC_LAVDIPCIN 412 +#define F_SOC_DATAINPI 413 +#define F_SOC_DATAFINPI 414 + +#endif diff --git a/m770/771100a.uml b/m770/771100a.uml new file mode 100755 index 000000000..fdb6534f7 --- /dev/null +++ b/m770/771100a.uml @@ -0,0 +1,262 @@ +#include "771100.h" +// +// Lista modifiche +// +// 1.4.96 Aggiunti campi prefisso/telefono +// +TOOLBAR "" 0 20 0 2 + +BUTTON F_FISICA 10 2 +BEGIN + PROMPT -15 -1 "~Fisiche" +END + +BUTTON F_ATTIVITA 10 2 +BEGIN + PROMPT -25 -1 "~Attivita'" +END + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -35 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -45 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -55 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Dati relativi alle persone fisiche" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "RDG" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + JOIN LF_ANAG TO LF_NDITTE INTO TIPOA=TIPOA CODANAGR=CODANAGR + JOIN LF_ANAGFIS TO LF_ANAG INTO CODANAGR=CODANAGR + JOIN LF_COMUNI TO LF_ANAGFIS INTO COM==COMNASC + JOIN LF_COMUNI TO LF_ANAG ALIAS 1 INTO COM==COMRES + JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF + OUTPUT APF_RAGSOC LF_NDITTE->RAGSOC + OUTPUT F_ATTIV LF_NDITTE->CODATTPREV + OUTPUT F_ANAGR LF_ANAG->CODANAGR + OUTPUT F_COFI LF_ANAG->COFI + OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30] + OUTPUT F_NOME LF_ANAG->RAGSOC[31,50] + OUTPUT F_INDRES LF_ANAG->INDRES + OUTPUT F_CIVRES LF_ANAG->CIVRES + OUTPUT F_CAPRES LF_ANAG->CAPRES + OUTPUT F_INDRF LF_ANAG->INDRF + OUTPUT F_CIVRF LF_ANAG->CIVRF + OUTPUT F_CAPRF LF_ANAG->CAPRF + OUTPUT F_EVECC LF_ANAG->EVECC + OUTPUT F_SESSO LF_ANAGFIS->SESSO + OUTPUT F_DATANASC LF_ANAGFIS->DATANASC + OUTPUT F_COMNASC LF_COMUNI->DENCOM + OUTPUT F_PROVNASC LF_COMUNI->PROVCOM + OUTPUT F_COMRES 1@->DENCOM + OUTPUT F_PROVRES 1@->PROVCOM + OUTPUT F_COMRF 2@->DENCOM + OUTPUT F_PROVRF 2@->PROVCOM + OUTPUT F_PTELRF LF_ANAG->PTELRF + OUTPUT F_TELRF LF_ANAG->TELRF + OUTPUT F_DOMFISC LF_ANAG->VARSLORES + KEY 1 +END + +STRING APF_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" +END + +NUMBER F_ANAGR 5 +BEGIN + PROMPT -1 -1 "" + FLAGS "H" +END + +STRING F_COFI 16 +BEGIN + PROMPT 1 4 "Codice fiscale " + FLAGS "D" +END + +NUMBER F_EVECC 1 +BEGIN + PROMPT 46 4 "Eventi naturali eccezionali " + FLAGS "D" +END + +STRING F_COGNOME 30 +BEGIN + PROMPT 1 5 "Cognome " + FLAGS "D" +END + +LIST F_RSS 7 +BEGIN + PROMPT 58 5 "R.S.S. " + ITEM " |Nessuna" + ITEM "1|VA" + ITEM "2|SA" + ITEM "3|SI" + FIELD LF_BASE->RSS +END + +STRING F_NOME 20 +BEGIN + PROMPT 1 6 "Nome " + FLAGS "D" +END + +STRING F_SESSO 1 +BEGIN + PROMPT 39 6 "Sesso " + FLAGS "D" +END + +DATE F_DATANASC +BEGIN + PROMPT 49 6 "Data di nascita " + FLAGS "D" +END + +STRING F_COMNASC 50 +BEGIN + PROMPT 1 7 "Comune nascita " + FLAGS "D" +END + +STRING F_PROVNASC 5 +BEGIN + PROMPT 70 7 "" + FLAGS "D" +END + +STRING F_ATTIV 5 +BEGIN + PROMPT 1 8 "Attivita' " + USE %AIS + INPUT CODTAB F_ATTIV + OUTPUT F_DESCRATT S0 + CHECKTYPE REQUIRED + FLAGS "D" +END + +STRING F_DESCRATT 50 +BEGIN + PROMPT 25 8 "" + FLAGS "D" +END + +BOOLEAN F_DOMFISC +BEGIN + PROMPT 1 9 "Dom.fiscale o residenza variati rispetto all'anno precedente " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 10 "Residenza" +END + +STRING F_INDRES 35 +BEGIN + PROMPT 1 11 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVRES 10 +BEGIN + PROMPT 47 11 "" + FLAGS "D" +END + +STRING F_CAPRES 5 +BEGIN + PROMPT 63 11 "C.A.P. " + FLAGS "D" +END + +STRING F_COMRES 50 +BEGIN + PROMPT 1 12 "Comune " + FLAGS "D" +END + +STRING F_PROVRES 5 +BEGIN + PROMPT 63 12 "Prov. " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 14 "Domicilio fiscale " +END + +STRING F_PTELRF 10 +BEGIN + PROMPT 1 15 "Telefono " + FLAGS "D" +END + +STRING F_TELRF 30 +BEGIN + PROMPT 20 15 "" + FLAGS "D" +END + +STRING F_INDRF 35 +BEGIN + PROMPT 1 16 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVRF 10 +BEGIN + PROMPT 47 16 "" + FLAGS "D" +END + +STRING F_CAPRF 5 +BEGIN + PROMPT 63 16 "C.A.P. " + FLAGS "D" +END + +STRING F_COMRF 50 +BEGIN + PROMPT 1 17 "Comune " + FLAGS "D" +END + +STRING F_PROVRF 5 +BEGIN + PROMPT 63 17 "Prov. " + FLAGS "D" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771100b.uml b/m770/771100b.uml new file mode 100755 index 000000000..a3f6bd4a3 --- /dev/null +++ b/m770/771100b.uml @@ -0,0 +1,308 @@ +#include "771100.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON F_GIURIDICA 10 2 +BEGIN + PROMPT -15 -1 "~Giuridiche" +END + +BUTTON F_ATTIVITA 10 2 +BEGIN + PROMPT -25 -1 "~Attivita'" +END + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -35 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -45 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -55 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Altri soggetti" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + JOIN LF_ANAG TO LF_NDITTE INTO TIPOA=TIPOA CODANAGR=CODANAGR + JOIN LF_ANAGGIU TO LF_ANAG INTO CODANAGR=CODANAGR + JOIN LF_COMUNI TO LF_ANAG ALIAS 1 INTO COM==COMRES + JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF + OUTPUT F_RAGSOC LF_NDITTE->RAGSOC + OUTPUT F_ATTIV LF_NDITTE->CODATTPREV + OUTPUT F_ANAGR LF_ANAG->CODANAGR + OUTPUT F_COFI LF_ANAG->COFI + OUTPUT F_RAGIONE LF_ANAG->RAGSOC + OUTPUT F_COMRES 1@->DENCOM + OUTPUT F_PROVRES 1@->PROVCOM + OUTPUT F_INDRES LF_ANAG->INDRES + OUTPUT F_CIVRES LF_ANAG->CIVRES + OUTPUT F_CAPRES LF_ANAG->CAPRES + OUTPUT F_EVECC LF_ANAG->EVECC + OUTPUT F_COMRF 2@->DENCOM + OUTPUT F_PROVRF 2@->PROVCOM + OUTPUT F_INDRF LF_ANAG->INDRF + OUTPUT F_CIVRF LF_ANAG->CIVRF + OUTPUT F_CAPRF LF_ANAG->CAPRF + OUTPUT F_PTELRF LF_ANAG->PTELRF + OUTPUT F_TELRF LF_ANAG->TELRF + OUTPUT F_DATAAPPBIL LF_ANAGGIU->DATAAPPBIL + OUTPUT F_DATATAPPBI LF_ANAGGIU->DATATAPPBI + OUTPUT F_STATOSOC LF_ANAGGIU->STATOSOC + OUTPUT F_NATGIU LF_ANAGGIU->NATGIU + OUTPUT F_SITSOC LF_ANAGGIU->SITSOC + OUTPUT F_SEDELEG LF_ANAG->VARSLORES + OUTPUT F_DOMFISC LF_ANAG->VARDF + MESSAGE COPY,1@ + MESSAGE DISABLE,F_SEDELEG|DISABLE,F_DOMFISC + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" + MESSAGE COPY,2@ +END + +NUMBER F_ANAGR 5 +BEGIN + PROMPT -1 -1 "" + FLAGS "H" +END + +STRING F_ATTIV 5 +BEGIN + PROMPT 1 4 "Attivita' " + USE %AIS + INPUT CODTAB F_ATTIV + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_DESCRATT S0 + CHECKTYPE REQUIRED + FLAGS "D" +END + +STRING F_DESCRATT 50 +BEGIN + PROMPT 26 4 "" + FLAGS "D" +END + +STRING F_COFI 16 +BEGIN + PROMPT 1 6 "Codice fiscale " + FLAGS "D" +END + +STRING F_RAGIONE 50 +BEGIN + PROMPT 1 7 "Denominazione " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 8 "" +END + +BOOLEAN F_SEDELEG +BEGIN + PROMPT 1 9 "Sede legale" + //FLAGS "D" +END + +STRING F_COMRES 50 +BEGIN + PROMPT 1 10 "Comune " + FLAGS "D" +END + +STRING F_PROVRES 5 +BEGIN + PROMPT 63 10 "Prov. " + FLAGS "D" +END + +STRING F_INDRES 35 +BEGIN + PROMPT 1 11 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVRES 10 +BEGIN + PROMPT 47 11 "" + FLAGS "D" +END + +STRING F_CAPRES 5 +BEGIN + PROMPT 63 11 "C.A.P. " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 13 "" +END + +BOOLEAN F_DOMFISC +BEGIN + PROMPT 1 14 "Domicilio fiscale" + //FLAGS "D" +END + +STRING F_PTELRF 10 +BEGIN + PROMPT 25 14 "Telefono " + FLAGS "D" +END + +STRING F_TELRF 30 +BEGIN + PROMPT 45 14 "" + FLAGS "D" +END + +STRING F_COMRF 50 +BEGIN + PROMPT 1 15 "Comune " + FLAGS "D" +END + +STRING F_PROVRF 5 +BEGIN + PROMPT 63 15 "Prov. " + FLAGS "D" +END + +STRING F_INDRF 35 +BEGIN + PROMPT 1 16 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVRF 10 +BEGIN + PROMPT 47 16 "" + FLAGS "D" +END + +STRING F_CAPRF 5 +BEGIN + PROMPT 63 16 "C.A.P. " + FLAGS "D" +END + +ENDPAGE + +PAGE "Altri soggetti" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "FRD" + GROUP 1 +END + +STRING DLG_NULL 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" + GROUP 2 +END + +DATE F_DATAAPPBIL +BEGIN + PROMPT 1 5 "Data approvazione del bilancio " + FLAGS "D" +END + +DATE F_DATATAPPBI +BEGIN + PROMPT 1 6 "Data termine del bilancio " + FLAGS "D" +END + +NUMBER F_STATOSOC 1 +BEGIN + PROMPT 1 8 "Stato " + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 15 8 "(Tab.A)" +END + +NUMBER F_NATGIU 2 +BEGIN + PROMPT 48 8 "Natura giuridica " + FLAGS "RD" +END + +TEXT DLG_NULL +BEGIN + PROMPT 69 8 "(Tab.B)" +END + +NUMBER F_SITSOC 1 +BEGIN + PROMPT 1 9 "Situazione " + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 15 9 "(Tab.E)" +END + +LIST F_RSS 7 +BEGIN + PROMPT 48 9 "R.S.S. " + ITEM " |Nessuna" + ITEM "1|VA" + ITEM "2|SA" + ITEM "3|SI" + FIELD LF_BASE->RSS +END + +NUMBER F_EVECC 1 +BEGIN + PROMPT 1 11 "Eventi naturali eccezionali " + FLAGS "D" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771100c.uml b/m770/771100c.uml new file mode 100755 index 000000000..afd12c0c6 --- /dev/null +++ b/m770/771100c.uml @@ -0,0 +1,245 @@ +// 771100c.uml - Dati rappresentante +#include "771100.h" + +// +// Lista modifiche +// +// 2.4.96 Aggiunto numero di telefono +// + +TOOLBAR "" 0 20 0 2 + +BUTTON F_FISICA 10 2 +BEGIN + PROMPT -14 -1 "~Fisiche" +END + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -24 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -34 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -44 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Dati relativi al rappresentante" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGSOC LF_NDITTE->RAGSOC + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" +END + +NUMBER F_ANAGR 5 +BEGIN + PROMPT 1 4 "Codice rappresentante " + USE LF_ANAGFIS KEY 1 + INPUT CODANAGR F_ANAGR + JOIN LF_ANAG TO LF_ANAGFIS INTO CODANAGR=CODANAGR TIPOA="F" + JOIN LF_COMUNI TO LF_ANAGFIS INTO COM==COMNASC + JOIN LF_COMUNI TO LF_ANAG ALIAS 1 INTO COM==COMRES + JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF + DISPLAY "Codice" CODANAGR + DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC + OUTPUT F_COFI LF_ANAG->COFI + OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30] + OUTPUT F_NOME LF_ANAG->RAGSOC[31,50] + OUTPUT F_SESSO SESSO + OUTPUT F_DATANASC DATANASC + OUTPUT F_COMNASC LF_COMUNI->DENCOM + OUTPUT F_PROVNASC LF_COMUNI->PROVCOM + OUTPUT F_INDRES LF_ANAG->INDRES + OUTPUT F_CIVRES LF_ANAG->CIVRES + OUTPUT F_CAPRES LF_ANAG->CAPRES + OUTPUT F_INDRF LF_ANAG->INDRF + OUTPUT F_CIVRF LF_ANAG->CIVRF + OUTPUT F_CAPRF LF_ANAG->CAPRF + OUTPUT F_COMRES 1@->DENCOM + OUTPUT F_PROVRES 1@->PROVCOM + OUTPUT F_COMRF 2@->DENCOM + OUTPUT F_PROVRF 2@->PROVCOM + OUTPUT F_DOMFISC LF_ANAG->VARSLORES + OUTPUT F_ANAGR LF_ANAGFIS->CODANAGR + OUTPUT F_PTELRF LF_ANAG->PTELRF + OUTPUT F_TELRF LF_ANAG->TELRF + FIELD LF_BASE->RAPPR + CHECKTYPE NORMAL + FLAGS "R" +END + +STRING F_COFI 16 +BEGIN + PROMPT 1 5 "Codice fiscale " + FLAGS "D" +END + +STRING F_COGNOME 30 +BEGIN + PROMPT 1 6 "Cognome " + FLAGS "D" +END + +STRING F_NOME 20 +BEGIN + PROMPT 1 7 "Nome " + FLAGS "D" +END + +STRING F_SESSO 1 +BEGIN + PROMPT 39 7 "Sesso " + FLAGS "D" +END + +DATE F_DATANASC +BEGIN + PROMPT 49 7 "Data di nascita " + FLAGS "D" +END + +STRING F_COMNASC 50 +BEGIN + PROMPT 1 8 "Comune nascita " + FLAGS "D" +END + +STRING F_PROVNASC 5 +BEGIN + PROMPT 70 8 "" + FLAGS "D" +END + +LIST F_CARRAP 51 +BEGIN + PROMPT 1 9 "Carica " + HELP "Codice della carica del rappresentante legale" + ITEM " |Nessun rappresentante" + ITEM "1|Rappresentante legale o di fatto" + ITEM "2|Curatore fallimentare" + ITEM "3|Liquidatore" + ITEM "4|Nominato in Italia per società con sede all'estero" + ITEM "5|Erede" + ITEM "6|Curatore di eredità giacente" + FIELD LF_BASE->CARRAPP +END + +BOOLEAN F_DOMFISC +BEGIN + PROMPT 15 10 "Dom.fiscale o residenza variati rispetto all'anno precedente " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 10 "Residenza" +END + +STRING F_INDRES 35 +BEGIN + PROMPT 1 11 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVRES 10 +BEGIN + PROMPT 47 11 "" + FLAGS "D" +END + +STRING F_CAPRES 5 +BEGIN + PROMPT 63 11 "C.A.P. " + FLAGS "D" +END + +STRING F_COMRES 50 +BEGIN + PROMPT 1 12 "Comune " + FLAGS "D" +END + +STRING F_PROVRES 5 +BEGIN + PROMPT 63 12 "Prov. " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 14 "Domicilio fiscale " +END + +STRING F_PTELRF 10 +BEGIN + PROMPT 1 15 "Telefono " + FLAGS "D" +END + +STRING F_TELRF 30 +BEGIN + PROMPT 20 15 "" + FLAGS "D" +END + +STRING F_INDRF 35 +BEGIN + PROMPT 1 16 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVRF 10 +BEGIN + PROMPT 47 16 "" + FLAGS "D" +END + +STRING F_CAPRF 5 +BEGIN + PROMPT 63 16 "C.A.P. " + FLAGS "D" +END + +STRING F_COMRF 50 +BEGIN + PROMPT 1 17 "Comune " + FLAGS "D" +END + +STRING F_PROVRF 5 +BEGIN + PROMPT 63 17 "Prov. " + FLAGS "D" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771100d.uml b/m770/771100d.uml new file mode 100755 index 000000000..b442289d9 --- /dev/null +++ b/m770/771100d.uml @@ -0,0 +1,189 @@ +#include "771100.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON F_ANAGRAFICA 10 2 +BEGIN + PROMPT -15 -1 "~Anagrafica" +END + +BUTTON F_ATTIVITA 10 2 +BEGIN + PROMPT -25 -1 "~Attività" +END + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -35 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -45 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -55 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Luogo di conservazione delle scritture contabili" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + JOIN LF_ATTIV TO LF_NDITTE INTO CODDITTA=CODDITTA CODATT=CODATTPREV + JOIN LF_COMUNI TO LF_ATTIV INTO COM==COMCS + OUTPUT F_RAGSOC LF_NDITTE->RAGSOC + OUTPUT F_ATTIV LF_ATTIV->CODATT + OUTPUT ASCF_TIPOA LF_ATTIV->TIPOADS + OUTPUT F_ANAGR LF_ATTIV->CODANGRDS + OUTPUT F_INDCS LF_ATTIV->INDCS + OUTPUT F_CIVCS LF_ATTIV->CIVCS + OUTPUT F_CAPCS LF_ATTIV->CAPCS + OUTPUT F_COMCS LF_COMUNI->DENCOM + OUTPUT F_PROVCS LF_COMUNI->PROVCOM + OUTPUT F_PTELCS LF_ATTIV->PTELCS + OUTPUT F_TELCS LF_ATTIV->TELCS + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" +END + +STRING F_ATTIV 5 +BEGIN + PROMPT -1 -1 "" + FLAGS "H" +END + +LIST ASCF_TIPOA 9 +BEGIN + PROMPT 1 5 "Tipo persona " + ITEMS "G|Societa'" + ITEMS "F|Fisica" + FLAGS "D" +END + +NUMBER F_ANAGR 5 +BEGIN + PROMPT 52 5 "Codice depositario " + FLAGS "RD" +END + +STRING F_COGNOME 30 +BEGIN + PROMPT 1 7 "Cognome/Nome " + FLAGS "D" +END + +STRING F_NOME 20 +BEGIN + PROMPT 45 7 "" + FLAGS "D" +END + +STRING F_RAGIONE 50 +BEGIN + PROMPT 1 7 "Ragione soc. " + FLAGS "D" +END + +STRING F_IND 35 +BEGIN + PROMPT 1 8 "Indirizzo " + FLAGS "D" +END + +STRING F_CIV 10 +BEGIN + PROMPT 50 8 "" + FLAGS "D" +END + +STRING F_CAP 5 +BEGIN + PROMPT 64 8 "C.A.P. " + FLAGS "D" +END + +STRING F_COM 50 +BEGIN + PROMPT 1 9 "Comune " + FLAGS "D" +END + +STRING F_PROV 5 +BEGIN + PROMPT 66 9 "Prov." + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 11 "Luogo di conservazione delle scritture contabili (solo se diverso)" +END + +STRING F_INDCS 35 +BEGIN + PROMPT 1 12 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVCS 10 +BEGIN + PROMPT 47 12 "" + FLAGS "D" +END + +STRING F_CAPCS 5 +BEGIN + PROMPT 63 12 "C.A.P. " + FLAGS "D" +END + +STRING F_COMCS 50 +BEGIN + PROMPT 1 13 "Comune " + FLAGS "D" +END + +STRING F_PROVCS 5 +BEGIN + PROMPT 63 13 "Prov. " + FLAGS "D" +END + +STRING F_PTELCS 10 +BEGIN + PROMPT 1 14 "Telefono " + FLAGS "D" +END + +STRING F_TELCS 30 +BEGIN + PROMPT 22 14 "" + FLAGS "D" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771100e.uml b/m770/771100e.uml new file mode 100755 index 000000000..ada785287 --- /dev/null +++ b/m770/771100e.uml @@ -0,0 +1,198 @@ +#include "771100.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON F_GIURIDICA 10 2 +BEGIN +PROMPT -14 -1 "~Giuridiche" +END + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -24 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -34 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -44 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Dati C.A.A.F." -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + JOIN LF_BASE TO LF_NDITTE INTO CODDITTA=CODDITTA + OUTPUT F_RAGSOC LF_NDITTE->RAGSOC + OUTPUT F_ANAGR LF_BASE->CODCAAF + CHECKTYPE REQUIRED + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 4 "Dati anagrafici" +END + +NUMBER F_ANAGR 5 +BEGIN + PROMPT 1 5 "Codice " + USE LF_ANAGGIU KEY 1 + INPUT CODANAGR F_ANAGR + JOIN LF_ANAG TO LF_ANAGGIU INTO CODANAGR=CODANAGR TIPOA="G" + JOIN LF_COMUNI TO LF_ANAG ALIAS 1 INTO COM==COMRES + JOIN LF_COMUNI TO LF_ANAG ALIAS 2 INTO COM==COMRF + DISPLAY "Codice" CODANAGR + DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC + OUTPUT F_COFI LF_ANAG->COFI + OUTPUT F_RAGIONE LF_ANAG->RAGSOC + OUTPUT F_INDRES LF_ANAG->INDRES + OUTPUT F_CIVRES LF_ANAG->CIVRES + OUTPUT F_CAPRES LF_ANAG->CAPRES + OUTPUT F_INDRF LF_ANAG->INDRF + OUTPUT F_CIVRF LF_ANAG->CIVRF + OUTPUT F_CAPRF LF_ANAG->CAPRF + OUTPUT F_COMRES 1@->DENCOM + OUTPUT F_PROVRES 1@->PROVCOM + OUTPUT F_COMRF 2@->DENCOM + OUTPUT F_PROVRF 2@->PROVCOM + OUTPUT F_ANAGR CODANAGR + CHECKTYPE NORMAL + FLAGS "R" +END + +STRING F_COFI 16 +BEGIN + PROMPT 43 5 "Codice fiscale " + FLAGS "D" +END + +STRING F_RAGIONE 50 +BEGIN + PROMPT 1 6 "Ragione sociale " + FLAGS "D" +END + +NUMBER F_DITTACAAF 5 +BEGIN + PROMPT 1 9 "Ditta CAAF " + FLAGS "RZ" + USE LF_NDITTE KEY 3 SELECT CODANAGR=#F_ANAGR + INPUT TIPOA "G" + INPUT CODANAGR F_ANAGR + INPUT CODDITTA F_DITTACAAF + DISPLAY "Ditta" CODDITTA + DISPLAY "Tipo" TIPOA + DISPLAY "Cod.Anagrafico" CODANAGR + DISPLAY "Num.Iscr.Albo" NISCRAA + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_NISCRAA NISCRAA + OUTPUT F_DITTACAAF CODDITTA + CHECKTYPE NORMAL + FIELD LF_BASE->DITTACAAF +END + +STRING F_NISCRAA 10 +BEGIN + PROMPT 30 9 "Numero di iscrizione all'albo " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 11 "Sede legale" +END + +STRING F_INDRES 35 +BEGIN + PROMPT 1 12 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVRES 10 +BEGIN + PROMPT 47 12 "" + FLAGS "D" +END + +STRING F_CAPRES 5 +BEGIN + PROMPT 63 12 "C.A.P. " + FLAGS "D" +END + +STRING F_COMRES 50 +BEGIN + PROMPT 1 13 "Comune " + FLAGS "D" +END + +STRING F_PROVRES 5 +BEGIN + PROMPT 63 13 "Prov. " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 15 "Domicilio fiscale " +END + +STRING F_INDRF 35 +BEGIN + PROMPT 1 16 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVRF 10 +BEGIN + PROMPT 47 16 "" + FLAGS "D" +END + +STRING F_CAPRF 5 +BEGIN + PROMPT 63 16 "C.A.P. " + FLAGS "D" +END + +STRING F_COMRF 50 +BEGIN + PROMPT 1 17 "Comune " + FLAGS "D" +END + +STRING F_PROVRF 5 +BEGIN + PROMPT 63 17 "Prov. " + FLAGS "D" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771100f.uml b/m770/771100f.uml new file mode 100755 index 000000000..5ea2d1975 --- /dev/null +++ b/m770/771100f.uml @@ -0,0 +1,133 @@ +#include "771100.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON F_FISICA 10 2 +BEGIN +PROMPT -14 -1 "~Fisiche" +END + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -24 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -34 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -44 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Dati relativi alle persone fisiche" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGSOC RAGSOC + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 0 5 "Dati anagrafici" +END + +NUMBER F_ANAGR 5 +BEGIN + PROMPT 1 6 "Codice " + USE LF_ANAGFIS KEY 1 + CHECKTYPE NORMAL + INPUT CODANAGR F_ANAGR + JOIN LF_ANAG TO LF_ANAGFIS INTO TIPOA="F" CODANAGR=CODANAGR + JOIN LF_COMUNI TO LF_ANAGFIS INTO COM==COMNASC + DISPLAY "Codice" CODANAGR + DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC + OUTPUT F_COFI LF_ANAG->COFI + OUTPUT F_COGNOME LF_ANAG->RAGSOC[1,30] + OUTPUT F_NOME LF_ANAG->RAGSOC[31,50] + OUTPUT F_SESSO SESSO + OUTPUT F_DATANASC DATANASC + OUTPUT F_COMNASC LF_COMUNI->DENCOM + OUTPUT F_PROVNASC LF_COMUNI->PROVCOM + OUTPUT F_ANAGR CODANAGR + FIELD LF_BASE->CODPRO + FLAGS "R" + KEY 1 +END + +STRING F_COFI 16 +BEGIN + PROMPT 1 7 "Codice fiscale " + FLAGS "D" +END + +STRING F_COGNOME 30 +BEGIN + PROMPT 1 8 "Cognome " + FLAGS "D" +END + +STRING F_NOME 20 +BEGIN + PROMPT 1 9 "Nome " + FLAGS "D" +END + +STRING F_SESSO 1 +BEGIN + PROMPT 39 9 "Sesso " + FLAGS "D" +END + +DATE F_DATANASC +BEGIN + PROMPT 49 9 "Data di nascita " + FLAGS "D" +END + +STRING F_COMNASC 50 +BEGIN + PROMPT 1 10 "Comune nascita " + FLAGS "D" +END + +STRING F_PROVNASC 5 +BEGIN + PROMPT 70 10 "" + FLAGS "D" +END + +BOOLEAN F_CONTROLLI +BEGIN + PROMPT 1 13 "Si attesta che sono stati eseguiti i controlli di cui art.4" + FIELD LF_BASE->FLART4 +END + +ENDPAGE + +ENDMASK diff --git a/m770/771100g.uml b/m770/771100g.uml new file mode 100755 index 000000000..35a785ace --- /dev/null +++ b/m770/771100g.uml @@ -0,0 +1,241 @@ +#include "771100.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON F_ANAGRAFICA 10 2 +BEGIN +PROMPT -14 -1 "~Anagrafica" +END + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -24 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -34 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -44 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Dati vari" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGSOC LF_NDITTE->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_ANAGR CODANAGR + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" +END + +STRING F_TIPOA 1 +BEGIN + PROMPT -1 -1 "" + FLAGS "H" +END + +NUMBER F_ANAGR 5 +BEGIN + PROMPT -1 -1 "" + FLAGS "H" +END + +NUMBER F_CODCONC1 3 +BEGIN + PROMPT 1 5 "Cod.Concessione " + FLAGS "DRZ" + FIELD LF_BASEBIS->L0CCONC1 +END + +NUMBER F_CODCONC2 3 +BEGIN + PROMPT 23 5 "Cod.Concessione " + FLAGS "RZ" + USE %UCC + INPUT CODTAB F_CODCONC2 + DISPLAY "Codice" CODTAB + DISPLAY "Ufficio@30" S0 + OUTPUT F_CODCONC2 CODTAB + HELP "Codice dell'ufficio concessioni" + CHECKTYPE NORMAL + FIELD LF_BASEBIS->L0CCONC2 +END + +NUMBER F_CODCONC3 3 +BEGIN + PROMPT 47 5 "Cod.Concessione " + FLAGS "RZ" + COPY USE F_CODCONC2 + INPUT CODTAB F_CODCONC3 + COPY DISPLAY F_CODCONC2 + OUTPUT F_CODCONC3 CODTAB + HELP "Codice dell'ufficio concessioni" + CHECKTYPE NORMAL + FIELD LF_BASEBIS->L0CCONC3 +END + +NUMBER F_CODTES1 3 +BEGIN + PROMPT 1 6 "Cod.Tesoreria " + FLAGS "RZ" + FIELD LF_BASEBIS->L0CTES1 +END + +NUMBER F_CODTES2 3 +BEGIN + PROMPT 23 6 "Cod.Tesoreria " + FLAGS "RZ" + FIELD LF_BASEBIS->L0CTES2 +END + +NUMBER F_CODTES3 3 +BEGIN + PROMPT 47 6 "Cod.Tesoreria " + FLAGS "RZ" + FIELD LF_BASEBIS->L0CTES3 +END + + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 8 "" +END + +NUMBER F_CODUI 3 +BEGIN + PROMPT 1 9 "Ufficio imposte " + FLAGS "RZD" + USE %UID + JOIN LF_COMUNI TO %UID INTO COM==S6 + INPUT CODTAB F_CODUI + OUTPUT F_DESCRUI S0 + OUTPUT F_INDUI S1 + OUTPUT F_CIVUI S3 + OUTPUT F_CAPUI S7 + OUTPUT F_COMUI LF_COMUNI->DENCOM + OUTPUT F_PROVUI LF_COMUNI->PROVCOM + CHECKTYPE NORMAL +END + +STRING F_DESCRUI 50 +BEGIN + PROMPT 25 9 "" + FLAGS "D" +END + +STRING F_INDUI 35 +BEGIN + PROMPT 1 10 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVUI 10 +BEGIN + PROMPT 47 10 "" + FLAGS "D" +END + +STRING F_CAPUI 5 +BEGIN + PROMPT 63 10 "C.A.P. " + FLAGS "D" +END + +STRING F_COMUI 50 +BEGIN + PROMPT 1 11 "Comune " + FLAGS "D" +END + +STRING F_PROVUI 5 +BEGIN + PROMPT 63 11 "Prov. " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 14 "" +END + +NUMBER F_CODCS 3 +BEGIN + PROMPT 1 15 "Centro servizi " + FLAGS "RZD" + USE %UCS + JOIN LF_COMUNI TO %UCS INTO COM==S6 + INPUT CODTAB F_CODCS + OUTPUT F_DESCRCS S0 + OUTPUT F_INDCS S1 + OUTPUT F_CIVCS S3 + OUTPUT F_CAPCS S7 + OUTPUT F_COMCS LF_COMUNI->DENCOM + OUTPUT F_PROVCS LF_COMUNI->PROVCOM + CHECKTYPE NORMAL +END + +STRING F_DESCRCS 50 +BEGIN + PROMPT 25 15 "" + FLAGS "D" +END + +STRING F_INDCS 35 +BEGIN + PROMPT 1 16 "Indirizzo " + FLAGS "D" +END + +STRING F_CIVCS 10 +BEGIN + PROMPT 47 16 "" + FLAGS "D" +END + +STRING F_CAPCS 5 +BEGIN + PROMPT 63 16 "C.A.P. " + FLAGS "D" +END + +STRING F_COMCS 50 +BEGIN + PROMPT 1 17 "Comune " + FLAGS "D" +END + +STRING F_PROVCS 5 +BEGIN + PROMPT 63 17 "Prov. " + FLAGS "D" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771100h.uml b/m770/771100h.uml new file mode 100755 index 000000000..f68b82a5f --- /dev/null +++ b/m770/771100h.uml @@ -0,0 +1,172 @@ +#include "771100.h" + +TOOLBAR "" 0 20 0 2 + +#include + +ENDPAGE + +PAGE "Manutenzione dati societa' trasformate" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER MDSTF_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "GR" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA MDSTF_CODDITTA + OUTPUT MDSTF_RAGSOC RAGSOC + FIELD LF_SOCTRASF->CODDITTA +END + +STRING MDSTF_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 0 4 "Persone fisiche: imprese individuali e soggetti esercenti arti e professioni" + GROUP 1 +END + +STRING F_SOC_COFI 16 +BEGIN + PROMPT 1 5 "Codice fiscale " + CHECKTYPE REQUIRED + FIELD LF_SOCTRASF->CODFISC + GROUP 1 +END + +STRING F_SOC_COGNOME 30 +BEGIN + PROMPT 1 6 "Cognome " + CHECKTYPE REQUIRED + FIELD LF_SOCTRASF->DENOMIN[1,30] + GROUP 1 +END + +TEXT DLG_NULL +BEGIN + PROMPT 48 6 "(Per donne quello da nubile)" + GROUP 1 +END + +STRING F_SOC_NOME 20 +BEGIN + PROMPT 1 7 "Nome " + CHECKTYPE REQUIRED + FIELD LF_SOCTRASF->NOME + GROUP 1 +END + +STRING F_SOC_SESSO 1 +BEGIN + PROMPT 39 7 "Sesso " + FIELD LF_SOCTRASF->SESSO + GROUP 1 +END + +DATE F_SOC_DATANAS +BEGIN + PROMPT 48 7 "Data di nascita " + FIELD LF_SOCTRASF->DATANAS + GROUP 1 +END + +STRING F_SOC_COMUNE 20 +BEGIN + PROMPT 1 8 "Comune " + FIELD LF_SOCTRASF->COMNAS + GROUP 1 +END + +STRING F_SOC_PROVNAS 2 +BEGIN + PROMPT 48 8 "Provincia " + FIELD LF_SOCTRASF->PROVNAS + GROUP 1 + FLAGS "U" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 5 "Altri soggetti: art.5 e 87 del T.U. imposte sui redditi DPR 22/12/1986 n.917" + GROUP 2 +END + +STRING F_SOC_COFI 16 +BEGIN + PROMPT 1 6 "Codice fiscale " + CHECKTYPE REQUIRED + FIELD LF_SOCTRASF->CODFISC + GROUP 2 +END + +STRING F_SOC_DENOMIN 40 +BEGIN + PROMPT 1 7 "Denominazione " + CHECKTYPE REQUIRED + FIELD LF_SOCTRASF->DENOMIN + GROUP 2 +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 10 "Domicilio" +END + +STRING F_SOC_COMRES 20 +BEGIN + PROMPT 1 11 "Comune " + FIELD LF_SOCTRASF->COMDOM +END + +STRING F_SOC_PROVRES 2 +BEGIN + PROMPT 48 11 "Provincia " + FIELD LF_SOCTRASF->PROVDOM + FLAGS "U" +END + +STRING F_SOC_INDRES 35 +BEGIN + PROMPT 1 12 "Indirizzo " + FIELD LF_SOCTRASF->INDDOM +END + +NUMBER F_SOC_CONSBOCC 5 +BEGIN + PROMPT 1 14 "Consistenza base occupazionale al 12/06/94 " + FIELD LF_SOCTRASF->CONSBOCC +END + +NUMBER F_SOC_LAVDIPCIN 5 +BEGIN + PROMPT 1 15 "Lavoratori dipendenti in mobilita' o cassa integrazione al 12/06/94 " + FIELD LF_SOCTRASF->LAVDIPCIN +END + +DATE F_SOC_DATAINPI +BEGIN + PROMPT 1 16 "Periodo d'imposta dal " + FIELD LF_SOCTRASF->DATAINPI +END + +DATE F_SOC_DATAFINPI +BEGIN + PROMPT 34 16 " al " + FIELD LF_SOCTRASF->DATAFINPI +END + +ENDPAGE + +ENDMASK diff --git a/m770/771150.h b/m770/771150.h new file mode 100755 index 000000000..be3d3c391 --- /dev/null +++ b/m770/771150.h @@ -0,0 +1,56 @@ +#ifndef _771150_H +#define _771150_H + +// Campi maschera manutenzione anagrafica dipendenti +#define ADF_CODDITTA 181 +#define F_RAGSOCIALE 102 +#define F_DIP_CODDIP 103 +#define F_DIP_CODFI 104 +#define F_DIP_COGNOME 105 +#define F_DIP_NOME 106 +#define F_DIP_SESSO 107 +#define F_DIP_DATANA 108 +#define F_DIP_COMUNENA 109 +#define F_DIP_PROVNA 110 +#define F_DIP_COMUNERE 111 +#define F_DIP_PROVRE 112 +#define F_DIP_INDRE 113 +#define F_DIP_QUALIFICA 114 +#define F_DIP_STATOCIV 115 +#define F_DIP_EREDE 116 +#define F_DIP_CODEREDE0 117 +#define F_DIP_CODEREDE1 118 +#define F_DIP_CODEREDE2 119 +#define F_DIP_CODEREDE3 120 +#define F_DIP_CODEREDE4 121 +#define F_DIP_CODEREDE5 122 +#define F_DIP_CODEREDE6 123 +#define F_DIP_CODEREDE7 124 +#define F_DIP_CODEREDE8 125 +#define F_DIP_CODEREDE9 126 +#define F_DIP_COGNEREDE0 127 +#define F_DIP_COGNEREDE1 128 +#define F_DIP_COGNEREDE2 129 +#define F_DIP_COGNEREDE3 130 +#define F_DIP_COGNEREDE4 131 +#define F_DIP_COGNEREDE5 132 +#define F_DIP_COGNEREDE6 133 +#define F_DIP_COGNEREDE7 134 +#define F_DIP_COGNEREDE8 135 +#define F_DIP_COGNEREDE9 136 +#define F_DIP_NOMEREDE0 137 +#define F_DIP_NOMEREDE1 138 +#define F_DIP_NOMEREDE2 139 +#define F_DIP_NOMEREDE3 140 +#define F_DIP_NOMEREDE4 141 +#define F_DIP_NOMEREDE5 142 +#define F_DIP_NOMEREDE6 143 +#define F_DIP_NOMEREDE7 144 +#define F_DIP_NOMEREDE8 145 +#define F_DIP_NOMEREDE9 146 + +// Aggiunte 96 +#define ADF_CODDIPDEC 147 +#define ADF_ASSFIS 148 + +#endif diff --git a/m770/771150a.uml b/m770/771150a.uml new file mode 100755 index 000000000..a1066ce80 --- /dev/null +++ b/m770/771150a.uml @@ -0,0 +1,488 @@ +#include "anadip.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - Anagrafica Dipendenti" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 0 0 "" +END + +NUMBER ADF_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "RDG" + USE LF_NDITTE KEY 1 + FIELD LF_DIPEND->CODDITTA + CHECKTYPE REQUIRED + INPUT CODDITTA ADF_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGSOCIALE RAGSOC + KEY 1 +END + +STRING F_RAGSOCIALE 50 +BEGIN + PROMPT 19 1 "" + FLAGS "D" +END + +NUMBER ADF_DIP_CODDIP 6 +BEGIN + PROMPT 1 3 "Codice dipendente " + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + FIELD LF_DIPEND->CODIP + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP ADF_DIP_CODDIP + DISPLAY "Codice dipendente" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT ADF_DIP_CODDIP CODIP + OUTPUT F_DIP_COGNOME COGNOME + OUTPUT F_DIP_NOME NOME + FLAGS "R" + CHECKTYPE REQUIRED + KEY 1 +END + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 0 4 "" +END + +STRING F_DIP_CODFI 16 +BEGIN + PROMPT 1 5 "Codice fiscale " + FLAGS "U" + FIELD LF_DIPEND->CODFI + VALIDATE CF_FUNC F_DIP_CODFI +END + +STRING F_DIP_COGNOME 24 +BEGIN + PROMPT 1 6 "Cognome " + FIELD LF_DIPEND->COGNOME +END + +STRING F_DIP_NOME 20 +BEGIN + PROMPT 50 6 "Nome " + FIELD LF_DIPEND->NOME +END + +LIST F_DIP_SESSO 1 +BEGIN + PROMPT 1 7 "Sesso " + ITEM "M|M" + ITEM "F|F" + FIELD LF_DIPEND->SESSO +END + +DATA F_DIP_DATANA +BEGIN + PROMPT 1 8 "Data di nascita " + FIELD LF_DIPEND->DATANA +END + +STRING F_DIP_COMUNENA 20 +BEGIN + PROMPT 37 8 "Comune di nascita " + FIELD LF_DIPEND->COMUNENA +END + +STRING F_DIP_PROVNA 2 +BEGIN + PROMPT 1 9 "Provincia di nasc." + FIELD LF_DIPEND->PROVNA + FLAGS "U" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 11 "Residenza" +END + +STRING F_DIP_INDRE 24 +BEGIN + PROMPT 1 12 "Indirizzo " + FIELD LF_DIPEND->INDRES +END + +STRING F_DIP_COMUNERE 20 +BEGIN + PROMPT 1 13 "Comune " + FIELD LF_DIPEND->COMRES +END + +STRING F_DIP_PROVRE 2 +BEGIN + PROMPT 61 13 "Provincia " + FIELD LF_DIPEND->PROVRES + FLAGS "U" +END + +NUMBER F_DIP_QUALIFICA 2 +BEGIN + PROMPT 1 15 "Qualifica " + FIELD LF_DIPEND->QUALIFICA + SHEET "Codice|Descrizione@85" + INPUT F_DIP_QUALIFICA + ITEM "01|Pensionati" + ITEM "02|Operai generici" + ITEM "03|Operai specializzati" + ITEM "04|Impiegati" + ITEM "05|Quadri" + ITEM "06|Dirigenti" + ITEM "07|Insegnanti universitari compresi docenti,incaricati,ricercatori,e assimilati" + ITEM "08|Insegnanti e presidi di scuola media" + ITEM "09|Insegnanti e direttori di scuola elementare e materna" + ITEM "10|Ministri di culto" + ITEM "11|Eredi" + FLAG "Z" + WARNING "Manca la qualifica" + OUTPUT F_DIP_QUALIFICA +END + +LIST F_DIP_STATOCIV 23 +BEGIN + PROMPT 37 15 "Stato civile " + FIELD LF_DIPEND->STATOCIV + ITEM "|" + ITEM "1|Celibe/Nubile" + ITEM "2|Coniugato/a" + ITEM "3|Vedovo/a" + ITEM "4|Separato/a legalmente" + ITEM "5|Divorziato/a" + ITEM "6|Deceduto/a" + ITEM "7|Tutelato/a" + ITEM "8|Figlio/a minore" +END + +NUMBER ADF_CODDIPDEC 6 +BEGIN + PROMPT 1 16 "Codice dipendente deceduto " + USE LF_DIPEND KEY 1 SELECT ((CODIP!=#ADF_DIP_CODDIP) && (CODDITTA=#ADF_CODDITTA)) + FIELD LF_DIPEND->CODDIPDEC + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP ADF_CODDIPDEC + DISPLAY "Codice dipendente" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT ADF_CODDIPDEC CODIP + FLAGS "R" +END + +LISTBOX ADF_ASSFIS 1 40 +BEGIN + PROMPT 1 17 "Si è avvalso dell'assist. fiscale " + ITEM "0|Non si è avvalso dell'assistenza fiscale" + ITEM "1|Del datore di lavoro" + ITEM "2|Del CAAF" + FIELD LF_DIPEND->ASSFIS +END + +ENDPAGE + +PAGE "MODULO 770 - Anagrafica Dipendenti" -1 -1 78 21 + +GROUPBOX DLG_NULL 76 12 +BEGIN + PROMPT 1 1 "Eredi" +END + +NUMBER F_DIP_CODEREDE0 5 +BEGIN + PROMPT 3 2 "Codice " + FIELD LF_DIPEND->CODEREDE0 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE0 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE0 CODIP + OUTPUT F_DIP_COGNEREDE0 COGNOME + OUTPUT F_DIP_NOMEREDE0 NOME + FLAG "DGR" + CHECKTYPE NORMAL +END + +STRING F_DIP_COGNEREDE0 24 +BEGIN + PROMPT 22 2 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE0 20 +BEGIN + PROMPT 50 2 "" + FLAG "D" +END + +NUMBER F_DIP_CODEREDE1 5 +BEGIN + PROMPT 11 3 "" + FIELD LF_DIPEND->CODEREDE1 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE1 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE1 CODIP + OUTPUT F_DIP_COGNEREDE1 COGNOME + OUTPUT F_DIP_NOMEREDE1 NOME + CHECKTYPE NORMAL + FLAG "DR" +END + +STRING F_DIP_COGNEREDE1 24 +BEGIN + PROMPT 22 3 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE1 20 +BEGIN + PROMPT 50 3 "" + FLAG "D" +END + +NUMBER F_DIP_CODEREDE2 5 +BEGIN + PROMPT 11 4 "" + FIELD LF_DIPEND->CODEREDE2 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE2 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE2 CODIP + OUTPUT F_DIP_COGNEREDE2 COGNOME + OUTPUT F_DIP_NOMEREDE2 NOME + CHECKTYPE NORMAL + FLAG "DR" +END + +STRING F_DIP_COGNEREDE2 24 +BEGIN + PROMPT 22 4 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE2 20 +BEGIN + PROMPT 50 4 "" + FLAG "D" +END + +NUMBER F_DIP_CODEREDE3 5 +BEGIN + PROMPT 11 5 "" + FIELD LF_DIPEND->CODEREDE3 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE3 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE3 CODIP + OUTPUT F_DIP_COGNEREDE3 COGNOME + OUTPUT F_DIP_NOMEREDE3 NOME + CHECKTYPE NORMAL + FLAG "DR" +END + +STRING F_DIP_COGNEREDE3 24 +BEGIN + PROMPT 22 5 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE3 20 +BEGIN + PROMPT 50 5 "" + FLAG "D" +END + +NUMBER F_DIP_CODEREDE4 5 +BEGIN + PROMPT 11 6 "" + FIELD LF_DIPEND->CODEREDE4 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE4 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE4 CODIP + OUTPUT F_DIP_COGNEREDE4 COGNOME + OUTPUT F_DIP_NOMEREDE4 NOME + FLAG "DR" + CHECKTYPE NORMAL +END + +STRING F_DIP_COGNEREDE4 24 +BEGIN + PROMPT 22 6 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE4 20 +BEGIN + PROMPT 50 6 "" + FLAG "D" +END + +NUMBER F_DIP_CODEREDE5 5 +BEGIN + PROMPT 11 7 "" + FIELD LF_DIPEND->CODEREDE5 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE5 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE5 CODIP + OUTPUT F_DIP_COGNEREDE5 COGNOME + OUTPUT F_DIP_NOMEREDE5 NOME + FLAG "DR" + CHECKTYPE NORMAL +END + +STRING F_DIP_COGNEREDE5 24 +BEGIN + PROMPT 22 7 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE5 20 +BEGIN + PROMPT 50 7 "" + FLAG "D" +END + +NUMBER F_DIP_CODEREDE6 5 +BEGIN + PROMPT 11 8 "" + FIELD LF_DIPEND->CODEREDE6 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE6 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE6 CODIP + OUTPUT F_DIP_COGNEREDE6 COGNOME + OUTPUT F_DIP_NOMEREDE6 NOME + FLAG "DR" + CHECKTYPE NORMAL +END + +STRING F_DIP_COGNEREDE6 24 +BEGIN + PROMPT 22 8 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE6 20 +BEGIN + PROMPT 50 8 "" + FLAG "D" +END + +NUMBER F_DIP_CODEREDE7 5 +BEGIN + PROMPT 11 9 "" + FIELD LF_DIPEND->CODEREDE7 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE7 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE7 CODIP + OUTPUT F_DIP_COGNEREDE7 COGNOME + OUTPUT F_DIP_NOMEREDE7 NOME + FLAG "DR" + CHECKTYPE NORMAL +END + +STRING F_DIP_COGNEREDE7 24 +BEGIN + PROMPT 22 9 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE7 20 +BEGIN + PROMPT 50 9 "" + FLAG "D" +END + +NUMBER F_DIP_CODEREDE8 5 +BEGIN + PROMPT 11 10 "" + FIELD LF_DIPEND->CODEREDE8 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE8 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE8 CODIP + OUTPUT F_DIP_COGNEREDE8 COGNOME + OUTPUT F_DIP_NOMEREDE8 NOME + FLAG "DR" + CHECKTYPE NORMAL +END + +STRING F_DIP_COGNEREDE8 24 +BEGIN + PROMPT 22 10 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE8 20 +BEGIN + PROMPT 50 10 "" + FLAG "D" +END + +NUMBER F_DIP_CODEREDE9 5 +BEGIN + PROMPT 11 11 "" + FIELD LF_DIPEND->CODEREDE9 + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#ADF_CODDITTA)) + INPUT CODDITTA ADF_CODDITTA + INPUT CODIP F_DIP_CODEREDE9 + DISPLAY "Codice" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_DIP_CODEREDE9 CODIP + OUTPUT F_DIP_COGNEREDE9 COGNOME + OUTPUT F_DIP_NOMEREDE9 NOME + FLAG "DR" + CHECKTYPE NORMAL +END + +STRING F_DIP_COGNEREDE9 24 +BEGIN + PROMPT 22 11 "" + FLAG "D" +END + +STRING F_DIP_NOMEREDE9 20 +BEGIN + PROMPT 50 11 "" + FLAG "D" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771200.cpp b/m770/771200.cpp new file mode 100755 index 000000000..d89073ad9 --- /dev/null +++ b/m770/771200.cpp @@ -0,0 +1,878 @@ +////////////////////////////////////////// +// 771200.cpp - Quadro A 771mod -7 A // +// - Quadro A1 771mod -7 1 // +// - Quadro A2 771mod -7 2 // +// - Quadro A3 771mod -7 3 // +////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "77lib.h" + +#include "dipend.h" +#include "quadroa.h" +#include "quadroa3.h" +#include "soctrasf.h" + +#include "771200.h" +#include "774200.h" + +bool QA_cerca_codA(const long codditta, const long coddip, TString& quadro); + +bool QA_cerca_codA(const long codditta, const long coddip, TString& quadro) +{ + TString16 c58(""); + bool Result = FALSE; + TLocalisamfile qq(quadro == "A" ? LF_QUAA : LF_QUAA2); + qq.zero(); + qq.put(QUA_CODDITTA, codditta); + qq.put(QUA_CODIP, coddip); + TRectype dep(qq.curr()); + + for (qq.read(); !qq.eof(); qq.next()) + { + if (qq.curr() > dep) break; + c58 = qq.get(QUA_RETCON); + if (c58 == "A") + { + Result = TRUE; + break; + } + } + return Result; +} + +class TQuadroA : public TRelation_application +{ + private: + TString _quadro; // Codice del quadro in gestione + bool _registra; // Se TRUE fa i riporti + TRelation* _rel; + TMask* _msk[2]; + long _coddip; + char _tipoq; + int _nproga; + int _mode; + int _anno_dic; // anno dichiarazione + TLocalisamfile* _qd; + TRiporti _rip; + int _file; + bool _soc_trasf; + TString _cognome,_nome; + long _codditta,_codip; + + private: +// Handler relativi ai quadri A - A1 - A2 - A3 + static bool nprog_handler (TMask_field& f, KEY key); + static bool codanagr_handler (TMask_field& f, KEY key); + static bool codditta_hnd (TMask_field& f, KEY key); + static bool setta_nprog (TMask_field& f); + +// Handler relativi alla manutenzione quadro A + static bool QA_comp_netti_hnd (TMask_field& f, KEY key); + static bool QA_tot_impon_hnd (TMask_field& f, KEY key); + static bool QA_tot_detraz_hnd (TMask_field& f, KEY key); + static bool QA_cfdlprec_hnd (TMask_field& f, KEY key); + static bool QA_chech_ritdatlav (TMask_field& f, KEY key); + static bool QA_check_ritdovute (TMask_field& f, KEY key); + static bool QA_check_2527 (TMask_field& f, KEY key); + static bool QA_A2_check_58 (TMask_field& f, KEY key); + +// Handler relativi alla manutenzione quadro A3 + static bool QA3_codip_handler (TMask_field& f, KEY key); + static bool QA3_base_occupazionale(TMask_field& f, KEY key); + static bool QA3_nprog (TMask_field& f, KEY key); + + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode); + virtual bool changing_mask(int mode); + virtual void init_query_mode (TMask&); + virtual void init_query_insert_mode (TMask&); + virtual void init_modify_mode (TMask&); + virtual void init_insert_mode(TMask& m); + virtual void on_config_change(); + TMask* load_mask(int n); + int anno_dic() const { return _anno_dic; } + bool QuadroA() const { return _quadro == "A"; } + bool QuadroA1() const { return _quadro == "A1"; } + bool QuadroA2() const { return _quadro == "A2"; } + bool QuadroA3() const { return _quadro == "A3"; } + + public: + bool is_societa_trasformata(TMask& m); + void carica_record2_A3(TMask& m); + char tipo_trasformata(long codditta); + void registra_record2_A3(const TMask& m); + void cancella_record2_A3(); + + TQuadroA(char tipo); + virtual ~TQuadroA() {}; +}; + +inline TQuadroA& app() { return (TQuadroA&) main_app(); } + +TQuadroA::TQuadroA(char tipo): _rel(NULL), _mode(0), _tipoq(tipo) +{ + memset(_msk, 0, sizeof(_msk)); +} + +bool TQuadroA::changing_mask(int mode) +{ + if (mode == MODE_QUERY) + return _mode != MODE_QUERY; + else + return TRUE; +} + +TMask* TQuadroA::get_mask(int mode) +{ + const int m = (mode == MODE_QUERY) ? 0 : 1; + _mode = mode; + return load_mask(m); +} + +TMask* TQuadroA::load_mask(int n) +{ + if (_msk[n] != NULL) + return _msk[n]; + + TFilename name("771200"); + + if (n == 0) + { + switch (_tipoq) + { + case 'A': // Manutenzione quadro A + name << 'a'; + break; + case '1': // Manutenzione quadro A1 + name << 'c'; + break; + case '2': // Manutenzione quadro A2 + name << 'e'; + break; + case '3': // Manutenzione quadro A3 + name << 'g'; + break; + default: + break; + } + } + else + { + switch (_tipoq) + { + case 'A': // Manutenzione quadro A + name << 'b'; + break; + case '1': // Manutenzione quadro A1 + name << 'd'; + break; + case '2': // Manutenzione quadro A2 + name << 'f'; + break; + case '3': // Manutenzione quadro A3 + name << 'h'; + break; + default: + break; + } + } + + TMask* m = new TMask(name); + + switch (n) + { + case 0: + if (m) + { + m->set_handler(QAF_CODDITTA, codditta_hnd); + if (!QuadroA3()) + { + m->set_handler(QAF_NPROG, nprog_handler); + m->set_handler(F_CODIP, codanagr_handler); + } + else + { + m->set_handler(QAF_NPROG, QA3_nprog); + m->set_handler(F_CODIP, QA3_codip_handler); + m->set_handler(F_BASEOCCUPA, QA3_base_occupazionale); + } + } + break; + case 1: + if (m) + { + if (QuadroA2()) + m->set_handler(QA2F_RETCON, QA_A2_check_58); + + if (QuadroA()) + { +// Calcola i compensi netti (c.23) e controllo c25-27 + m->set_handler(F_CODFISDL, QA_cfdlprec_hnd); + m->set_handler(F_DENARO, QA_comp_netti_hnd); + m->set_handler(F_NATURA, QA_comp_netti_hnd); + m->set_handler(F_COBBDIP21, QA_comp_netti_hnd); +// Se immette un B controlla che ci sia almeno un rec con A + m->set_handler(F_RETCON56, QA_A2_check_58); +// Se 27=0 => 25 deve = 0 + m->set_handler(F_IACOBBCD25, QA_check_2527); + +// Calcola il totale imponibile (c.27) + m->set_handler(F_AMMLORDO24, QA_tot_impon_hnd); + m->set_handler(QAF_SVNSOGRIT, QA_tot_impon_hnd); + + m->set_handler(F_DETCC, QA_tot_detraz_hnd); + m->set_handler(F_DETFC, QA_tot_detraz_hnd); + m->set_handler(F_DETAF, QA_tot_detraz_hnd); + m->set_handler(F_DETLD, QA_tot_detraz_hnd); + m->set_handler(F_DETO, QA_tot_detraz_hnd); +// Controlla che 40 sia <= 30 + m->set_handler(F_AMRIODL38, QA_chech_ritdatlav); +// Controlla che 42 = 39 + 40 - 41 + m->set_handler(F_AMMRITDOV, QA_check_ritdovute); + } + } + break; + default: + break; + } + m->disable(DLG_FINDREC); + + return _msk[n] = m; +} + +bool TQuadroA::is_societa_trasformata(TMask& m) +{ + TLocalisamfile soc (LF_SOCTRASF); + + soc.setkey(1); + soc.zero(); + soc.put(SOC_CODDITTA, m.get_long(QAF_CODDITTA)); + if (soc.read() == NOERR) + { + _cognome = soc.get(SOC_DENOMIN); + _nome = soc.get(SOC_NOME); + + return TRUE; + } + + return FALSE; +} + +// Ricerca e output dell'ultimo nprog del percipiente scelto +bool TQuadroA::setta_nprog(TMask_field& f) +{ + long nprog = 0L; + const long coddip = atol(f.get()); + const long codditta = get_firm_770(); + + TLocalisamfile quadro(app()._file); + + quadro.zero(); + quadro.put("CODDITTA", codditta); + quadro.put("CODIP", coddip); + + TRectype rec(quadro.curr()); + + quadro.read(); + + if (quadro.curr() > rec) + { + f.mask().set(QAF_NPROG, nprog+1); + return TRUE; + } + + for ( ; !quadro.eof(); quadro.next()) + { + if (quadro.curr() > rec) break; + nprog = quadro.get_long("NPROG"); + } + + if ( (is_erede(codditta,coddip)) && (nprog + 1) > 1) + return error_box("Il dipendente selezionato e' un erede: non e'\n possibile indicare piu' di un rigo sul quadro A"); + + f.mask().set(QAF_NPROG, nprog+1); + return TRUE; +} + +bool TQuadroA::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !f.mask().is_running()) + { + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + return TRUE; +} + +bool TQuadroA::codanagr_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.focusdirty()) + { + TString16 dummy(f.get()); + if (dummy.not_empty()) + setta_nprog(f); + } + return TRUE; +} + +// Passa al modo inserimento/modifica. +bool TQuadroA::nprog_handler(TMask_field& f, KEY key) +{ + if (!f.mask().is_running()) return TRUE; + + if (key == K_TAB) + { + const int nprog = atoi(f.get()); + if (nprog==0) return TRUE; + + const long coddip = f.mask().get_long(F_CODIP); + const long codditta = get_firm_770(); + + if ( (is_erede(codditta,coddip)) && nprog > 1) + return error_box("Il dipendente selezionato e' un erede: non e'\n possibile indicare piu' di un rigo sul quadro A"); + + f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure + // inserimento (se trova che non esiste) + } + return TRUE; +} + +bool TQuadroA::QA3_nprog(TMask_field& f, KEY key) +{ + if (key == K_TAB) + { + const int nprog = atoi(f.get()); + if (nprog==0) + f.mask().set(QAF_NPROG, 1); + } + return TRUE; +} + +bool TQuadroA::QA3_codip_handler(TMask_field& f, KEY key) +{ + if (!f.mask().is_running()) return TRUE; + + if (key == K_TAB) + { + const long coddip = atol(f.get()); + if (coddip==0) return TRUE; + + f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure + // inserimento (se trova che non esiste) + } + return TRUE; +} + +// Se CF dat.lav.prec. e' vuoto => mette a ZERO il 19 e lo disabilita +bool TQuadroA::QA_cfdlprec_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TString tmp(f.get()); + if (tmp.empty()) + { + f.mask().set(F_CAUSA, 0L); + f.mask().disable(F_CAUSA); + } + else + f.mask().enable(F_CAUSA); + } + return TRUE; +} + +// Controlla che 40 NON sia > 30 +bool TQuadroA::QA_chech_ritdatlav(TMask_field& f, KEY k) +{ + if (k == K_ENTER) + { + real RitDatLavoro(f.get()); // c40 + real TotImp(f.mask().get_real(F_TOTIMP29)); // c30 + + if (RitDatLavoro > TotImp) + return f.warning_box("Le ritenute del datore di lavoro non possono superare il totale imponibile"); + } + return TRUE; +} + +// Controlla che 42 = 39 + 40 - 41 +bool TQuadroA::QA_check_ritdovute(TMask_field& f, KEY k) +{ + if (k == K_ENTER) + { + real ritterzi = f.mask().get_real(F_AMRIOT37); + real ritdatlav = f.mask().get_real(F_AMRIODL38); + real eccrit = f.mask().get_real(F_ECCRITRIMB); + real c42(f.get()); + real ritdovute = ritterzi + ritdatlav - eccrit; + + if (c42 != ritdovute) + f.warning_box("Correggere l'importo delle ritenute dovute"); + } + return TRUE; +} + +bool TQuadroA::QA_check_2527 (TMask_field& f, KEY k) +{ +// Se 27 == 0 => 25 = 0 + if (k == K_ENTER) + { + real c27 = f.mask().get_real(F_TOTIMP26); + real c25(f.get()); + + if (c27 == ZERO && c25 != ZERO) + return f.warning_box("Valore non corretto: il totale imponibile è nullo"); + } + return TRUE; +} + +// Funziona sia col quadro A che con A2 +bool TQuadroA::QA_A2_check_58(TMask_field& f, KEY k) +{ + if (k == K_TAB || k == K_ENTER) + { + TMask& m = f.mask(); + TString16 cod(f.get()); + const long codditta = f.mask().get_long(QAF_CODDITTA); + const long coddip = f.mask().get_long(F_CODIP); + if (cod == "B") + { + if (!QA_cerca_codA(codditta, coddip, app()._quadro)) + return error_box("Non esiste nessun record con 58=A per questo dipendente"); +// Nasconde prompt 770 mostra prompt 730 + m.hide(-6); + m.show(-7); + } +// Nasconde prompt 730 mostra prompt 770 + else + { + m.hide(-7); + m.show(-6); + } + } + return TRUE; +} + +bool TQuadroA::QA_comp_netti_hnd (TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + real denaro = f.mask().get_real(F_DENARO); + real natura = f.mask().get_real(F_NATURA); + real cobbdip = f.mask().get_real(F_COBBDIP21); + + real compnetti = denaro + natura - cobbdip; + + f.mask().set(F_COMPNETTI, compnetti); + f.send_key(K_TAB,F_COMPNETTI); + } + return TRUE; +} + +// 27 = 24 - 26 +bool TQuadroA::QA_tot_impon_hnd (TMask_field& f, KEY k) +{ + if (k == K_TAB || k == K_SPACE) + { + bool ForzaRicalcolo = f.focusdirty(); + real ammlordo = f.mask().get_real(F_AMMLORDO24); + real svnsrit = f.mask().get_real(QAF_SVNSOGRIT); + real tot_corr = f.mask().get_real(F_TOTIMP26); + + if (tot_corr == ZERO || ForzaRicalcolo) + { + real totimp29 = ammlordo - svnsrit; + f.mask().set(F_TOTIMP26, totimp29); + } + } + return TRUE; +} + +bool TQuadroA::QA_tot_detraz_hnd (TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + bool ForzaRicalcolo = FALSE; + real totdet36 = f.mask().get_real(F_TOTDET36); + + ForzaRicalcolo = f.focusdirty(); + + if (ForzaRicalcolo) + { + real detcc = f.mask().get_real(F_DETCC); + real detfc = f.mask().get_real(F_DETFC); + real detaf = f.mask().get_real(F_DETAF); + real detld = f.mask().get_real(F_DETLD); + real deto = f.mask().get_real(F_DETO); + + totdet36 = detcc + detfc + detaf + detld + deto; + f.mask().set(F_TOTDET36, totdet36); + } + } + return TRUE; +} + +bool TQuadroA::QA3_base_occupazionale(TMask_field& f , KEY k) +{ + if (k == K_SPACE) + { + TString appname(30); + appname.format("773 -1 771200i 37 \"%s\" 0", "Base occupati"); + TExternal_app a(appname); + a.run(); + } + return TRUE; +} + +void TQuadroA::registra_record2_A3(const TMask& m) +{ + TLocalisamfile quaa3 (LF_QUAA3); + TDate di; + long ng1,ng2; + real rd1,rd2; + + di = m.get_date(F_DIRAPTI_2); + ng1 = m.get_long(F_NGINC15_2); + ng2 = m.get_long(F_NGINC17_2); + rd1 = m.get_real(F_REDCOR16_2); + rd2 = m.get_real(F_REDCOR18_2); + + long codditta = m.get_long(QAF_CODDITTA); + long codip = m.get_long(F_CODIP); + + quaa3.setkey(1); + quaa3.zero(); + quaa3.put(QA3_CODDITTA, codditta); + quaa3.put(QA3_NPROG, 2); + quaa3.put(QA3_CODIP, codip); + if (quaa3.read() == NOERR) + { + quaa3.put(QA3_CODDITTA, codditta); + quaa3.put(QA3_NPROG, 2); + quaa3.put(QA3_CODIP, codip); + quaa3.put(QA3_DIRAPTI, di); + quaa3.put(QA3_NGINC15, ng1); + quaa3.put(QA3_REDCOR16, rd1); + quaa3.put(QA3_NGINC17, ng2); + quaa3.put(QA3_REDCOR18, rd2); + + quaa3.rewrite(); + } + else + { + quaa3.put(QA3_CODDITTA, codditta); + quaa3.put(QA3_NPROG, 2); + quaa3.put(QA3_CODIP, codip); + quaa3.put(QA3_DIRAPTI, di); + quaa3.put(QA3_NGINC15, ng1); + quaa3.put(QA3_REDCOR16, rd1); + quaa3.put(QA3_NGINC17, ng2); + quaa3.put(QA3_REDCOR18, rd2); + + quaa3.write(); + } +} + +int TQuadroA::rewrite(const TMask& m) +{ + if (_tipoq == '3' && _soc_trasf) + registra_record2_A3(m); + + m.autosave(_rel); + const int err = _rel->rewrite(); + _registra = TRUE; + + return err; +} + +int TQuadroA::write(const TMask& m) +{ + if (_tipoq == '3' && _soc_trasf) + registra_record2_A3(m); + + m.autosave(_rel); + const int err = _rel->write(); + _registra = TRUE; + + return err; +} + +void TQuadroA::cancella_record2_A3() +{ + TLocalisamfile quaa3 (LF_QUAA3); + + quaa3.setkey(1); + quaa3.zero(); + quaa3.put(QA3_CODDITTA, _codditta); + quaa3.put(QA3_NPROG, 2); + quaa3.put(QA3_CODIP, _codip); + if (quaa3.read() == NOERR) + quaa3.remove(); +} + +bool TQuadroA::remove() +{ + if (_tipoq == '3' && _soc_trasf) + cancella_record2_A3(); + _registra = TRUE; + return TRelation_application::remove(); +} + +bool TQuadroA::user_create() +{ + switch (_tipoq) + { + case 'A': + _file = LF_QUAA; + _quadro = "A"; + break; + case '1': + _file = LF_QUAA1; + _quadro = "A1"; + break; + case '2': + _file = LF_QUAA2; + _quadro = "A2"; + break; + case '3': + _file = LF_QUAA3; + _quadro = "A3"; + break; + default: + break; + } + + _qd = new TLocalisamfile(_file); + _rel = new TRelation(_file); + + set_search_field(F_CODANAGDIP); + + _registra = FALSE; + + load_mask(0); + + _soc_trasf = FALSE; + + return TRUE; +} + +bool TQuadroA::user_destroy() +{ + if (_msk[1] != NULL) delete _msk[1]; + if (_msk[0] != NULL) delete _msk[0]; + + TString16 quadro = ""; + + switch (_tipoq) + { + case 'A': + quadro << "A"; + break; + case '1': + quadro << "A1"; + break; + case '2': + quadro << "A2"; + break; + case '3': + quadro << "A3"; + break; + default: + break; + } + + if (_registra) + _rip.set(quadro); + + delete _rel; + delete _qd; + + return TRUE; +} + +void TQuadroA::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL); +} + +char TQuadroA::tipo_trasformata(long codditta) +{ + TLocalisamfile ditta (LF_NDITTE); + char tipo; + + ditta.setkey(1); + ditta.zero(); + ditta.put(NDT_CODDITTA, codditta); + if (ditta.read() == NOERR) + tipo = ditta.get_char(NDT_TIPOA); + + return tipo; +} + +void TQuadroA::carica_record2_A3(TMask& m) +{ + TLocalisamfile quaa3 (LF_QUAA3); + TDate di; + char tipo; + long ng1,ng2; + real rd1,rd2; + + ng1 = 0; + ng2 = 0; + rd1 = ZERO; + rd2 = ZERO; + + long codditta = m.get_long(QAF_CODDITTA); + long codip = m.get_long(F_CODIP); + + quaa3.setkey(1); + quaa3.zero(); + quaa3.put(QA3_CODDITTA, codditta); + quaa3.put(QA3_NPROG, 2); + quaa3.put(QA3_CODIP, codip); + if (quaa3.read() == NOERR) + { + di = quaa3.get_date(QA3_DIRAPTI); + ng1 = quaa3.get_long(QA3_NGINC15); + rd1 = quaa3.get_real(QA3_REDCOR16); + ng2 = quaa3.get_long(QA3_NGINC17); + rd2 = quaa3.get_real(QA3_REDCOR18); + } + + tipo = tipo_trasformata(codditta); + + if (tipo == 'F') + { + m.hide(F_DENTRASF); + m.show(F_COGNTRASF); + m.show(F_NOMETRASF); + m.set(F_COGNTRASF, _cognome); + m.set(F_NOMETRASF, _nome); + } + else + if (tipo == 'G') + { + m.show(F_DENTRASF); + m.hide(F_COGNTRASF); + m.hide(F_NOMETRASF); + m.set(F_DENTRASF, _cognome); + } + + m.set(F_NPROG_2, 2); + m.set(F_DIRAPTI_2, di); + m.set(F_NGINC15_2, ng1); + m.set(F_REDCOR16_2, rd1); + m.set(F_NGINC17_2, ng2); + m.set(F_REDCOR18_2, rd2); +} + +void TQuadroA::init_query_mode(TMask& m) +{ + m.set(QAF_ANNODIC, _anno_dic); + + if (_tipoq == '3') + { + _soc_trasf = is_societa_trasformata(m); + if (_soc_trasf) + carica_record2_A3(m); + } + + if (_tipoq != '3') + { + // forza il ricalcolo dell'ultimo numero disponibile + TString16 dummy(m.get(QAF_NPROG)); + if (dummy.not_empty()) + setta_nprog(m.field(QAF_NPROG)); + } + m.send_key(K_SHIFT+K_CTRL+'h', -1); // nasconde (hide) group 1 - Scelta ANAGR + m.send_key(K_SHIFT+K_CTRL+'s', -2); // abilita (show) group 2 - Ricerca su DATI PERC +} + +void TQuadroA::init_query_insert_mode(TMask& m) +{ + m.set(QAF_ANNODIC, _anno_dic); + + m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 3 Nasconde ricerca su PERC + m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR +} + +void TQuadroA::init_modify_mode(TMask& m) +{ + if (_tipoq == '3') + { + _codditta = m.get_long(QAF_CODDITTA); + _codip = m.get_long(F_CODIP); + + _soc_trasf = is_societa_trasformata(m); + if (_soc_trasf) + { + carica_record2_A3(m); + m.enable_page(1); + } + else + m.disable_page(1); + } +} + +void TQuadroA::init_insert_mode(TMask& m) +{ + if (_tipoq == '3') + { + _codditta = m.get_long(QAF_CODDITTA); + _codip = m.get_long(F_CODIP); + + _soc_trasf = is_societa_trasformata(m); + if (_soc_trasf) + { + carica_record2_A3(m); + m.enable_page(1); + } + else + m.disable_page(1); + } +} + +int quadriA_A3(int argc, char* argv[]) +{ + const char tipo = toupper(*argv[2]); + const char* title = ""; + TQuadroA a(tipo); + switch (tipo) + { + case 'A': + title = "Quadro A"; + break; + case '1': + title = "Quadro A1"; + break; + case '2': + title = "Quadro A2"; + break; + case '3': + title = "Quadro A3"; + break; + default: + break; + } + a.run(argc, argv, title); + return TRUE; +} diff --git a/m770/771200.h b/m770/771200.h new file mode 100755 index 000000000..3cafc59fb --- /dev/null +++ b/m770/771200.h @@ -0,0 +1,179 @@ +// Campi maschere manutenzione quadro A + +// 771200a.uml + +#define QAF_CODDITTA 181 +#define QAF_RAGDITTA 102 +#define QAF_ANNODIC 103 +#define F_CODIP 104 +#define F_CODANAGDIP 105 +#define QAF_COGNOME 106 +#define QAF_NOME 107 +#define F_COGNOMEDIP 182 +#define F_NOMEDIP 183 +#define QAF_NPROG 108 + + +// 771200b.uml + +//#define F_BASEOCC 109 +#define F_DATAIR 110 +#define F_DATAFR 111 +#define F_CAUSA 112 +#define F_DENARO 113 +#define F_NATURA 114 +#define F_COBBDIP21 116 +#define F_COMPNETTI 117 +#define F_AIEREP23 118 +#define F_AMMLORDO24 119 +#define F_IACOBBCD25 120 +#define F_TOTIMP26 121 +#define F_CCTAMMCONT 122 +#define F_CCTAMNACON 123 +#define F_TOTIMP29 124 +#define F_ICTOTIMP30 125 +#define F_DETCC 126 +#define F_DETFC 127 +#define F_DETAF 128 +#define F_DETLD 129 +#define F_DETO 130 +#define F_TOTDET36 131 +#define F_AMRIOT37 132 +#define F_AMRIODL38 133 +#define F_ECCRITRIMB 134 +#define F_AMMRITDOV 135 +#define F_ERSPSAN41 136 +#define F_PRASSVI42 137 +#define F_CONPRECO43 138 +#define F_COBBDIP44 139 +#define F_AMMIMP45 140 +#define F_DETIMPOS46 141 +#define F_RITESEG47 142 +#define F_SVNASSRI48 143 +#define F_AIFCSSN49 144 +#define F_CFCONINPS 145 +#define F_SASS95 146 +#define F_CONEFF50 147 +#define F_IMPVERS51 148 +#define F_ISOPTAS52 149 +#define F_CONTRVER53 150 +#define F_ISOPTAS54 151 +#define F_CNEFF55 152 +#define F_RETCON56 153 +#define F_IMPRIMB57 154 +#define F_IMPVER58 155 +#define F_INTIRPEF59 156 +#define F_IMPVER60 157 +#define F_INTER61 158 +#define F_STSIRPEF62 159 +#define F_CONRIMB63 160 +#define F_CONVER64 161 +#define F_INTER65 162 +#define F_CONVER66 163 +#define F_INTER67 164 +#define F_STSCSSN68 165 +#define F_SEGDICNL69 166 +#define F_CIIAT 167 +#define F_CIPA 168 +#define F_CODCAAF 169 +#define F_NUMGIORNI 170 +#define F_CODFISDL 171 +#define F_DENCAAF 173 +#define F_CODFISCAAF 174 +#define F_NISCRA 175 +#define F_CODIP2 190 +#define QA_RAGSOC2 191 + +// 771200d.uml + +#define F_MESEANNO 200 +#define F_IMPRIMB9 201 +#define F_IMPVERS10 202 +#define F_INTER11 203 +#define F_IMPVERS12 204 +#define F_INTER13 205 +#define F_STASSA14 206 +#define F_CONTRIMB15 207 +#define F_CONTVERS16 208 +#define F_INTER17 209 +#define F_CONTVER18 210 +#define F_INTER19 211 +#define F_STASSA20 212 +#define F_CONNEFF21 213 +#define F_TIPOCONG22 214 +#define F_DATARIC29 215 + +// 771200f.uml + +#define F_IIRPEFVER8 250 +#define F_IIRPEFRI9 251 +#define F_PRIRPEF10 252 +#define F_STASSA12 254 +#define F_CONTR13 255 +#define F_CONTR14 256 +#define F_PRCSSN15 257 +#define F_INTER16 258 +#define F_STASSA17 259 +#define F_VEFFCON18 260 +#define F_SDNLIQ19 261 +#define F_RETCON20 262 + +// Campi maschera 771200g.uml + +#define F_CODIPQUADRO 300 +#define F_BASEOCCUPA 301 + +// Campi maschera 771200h.uml + +#define F_DIRAPTI 350 +#define F_NGINC15 351 +#define F_REDCOR16 352 +#define F_NGINC17 353 +#define F_REDCOR18 354 +#define F_DIRAPTI_2 355 +#define F_NGINC15_2 356 +#define F_REDCOR16_2 357 +#define F_NGINC17_2 358 +#define F_REDCOR18_2 359 +#define F_CODDITTA_2 360 +#define F_CODIP_2 361 +#define F_CODIP2_2 362 +#define F_COGNOME_2 363 +#define F_NOME_2 364 +#define F_NPROG_2 365 +#define F_DENTRASF 366 +#define F_COGNTRASF 367 +#define F_NOMETRASF 368 + +// Campi maschera 771200i.uml + +#define F_BSE_CONSBASOCC 400 +#define F_BSE_LAVDIPCIN 401 +#define F_BSE_DATAINPI 402 +#define F_BSE_DATAFINPI 403 + +// +// Modifiche 95->96 +// +// Quadro A +#define QAF_AREAATT 405 +#define QAF_TIPOATT 406 +#define QAF_SVNSOGRIT 407 +#define QAF_INCDETFC 408 +#define QAF_GIODET 409 + +// Quadro A1 +#define QA1F_ANNORIF 410 + +// Quadro A2 +#define QA2F_CNEFF 411 +#define QA2F_RETCON 412 +#define QA2F_CSSNCRIMB 413 +#define QA2F_CSSNCVER 414 +#define QA2F_CSSNINT 415 +#define QA2F_CSSNAIV 416 +#define QA2F_CSSNAINT 417 +#define QA2F_STCSSN 418 +#define QA2F_730NLIQ 419 + + diff --git a/m770/771200a.uml b/m770/771200a.uml new file mode 100755 index 000000000..fceb5632c --- /dev/null +++ b/m770/771200a.uml @@ -0,0 +1,101 @@ +#include "771200.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA QAF_CODDITTA + OUTPUT QAF_RAGDITTA RAGSOC + FIELD LF_QUAA->CODDITTA +END + +STRING QAF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QAF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati dipendente" +END + +NUMBER F_CODIP 6 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAA->CODIP + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGDIP 6 +BEGIN + PROMPT 1 8 "@bCodice " + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA)) + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + DISPLAY "Codice " CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_CODANAGDIP CODIP + OUTPUT QAF_COGNOME COGNOME + OUTPUT QAF_NOME NOME + ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" + MESSAGE COPY, F_CODIP +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 8 "" + FLAGS "D" +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 8 "" + FLAGS "D" +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + USE LF_QUAA KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA)) + JOIN LF_DIPEND KEY 1 INTO CODIP=CODIP + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + INPUT NPROG QAF_NPROG + DISPLAY "Codice@10" CODIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@4" NPROG + OUTPUT F_CODANAGDIP CODIP + OUTPUT QAF_NPROG NPROG + FIELD LF_QUAA->NPROG + KEY 1 +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771200b.uml b/m770/771200b.uml new file mode 100755 index 000000000..1dbfcff57 --- /dev/null +++ b/m770/771200b.uml @@ -0,0 +1,900 @@ +#include "771200.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "H" + FIELD LF_QUAA->CODDITTA + KEY 1 + MESSAGE COPY,1@ +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + USE LF_DIPEND KEY 1 + FIELD LF_QUAA->CODIP + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QAF_COGNOME COGNOME + OUTPUT QAF_NOME NOME + CHECKTYPE REQUIRED + FLAGS "DG" + MESSAGE COPY,2@ + KEY 1 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + MESSAGE COPY,3@ +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + MESSAGE COPY,4@ +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FIELD LF_QUAA->NPROG + FLAGS "DG" + KEY 1 + MESSAGE COPY,5@ +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 1 3 "@bDati relativi al rapporto di lavoro" +END + +LISTBOX QAF_AREAATT 1 22 +BEGIN + PROMPT 2 4 "13 area attività " + ITEM " |" + ITEM "A|Area amministrativa" + ITEM "B|Area vendita" + ITEM "C|Area produzione" + ITEM "D|Aree non definite" + FIELD LF_QUAA->AREAATT +END + +STRING QAF_TIPOATT 1 +BEGIN + PROMPT 42 4 "14 tipo " + SHEET "Codice|Descrizione@70" + INPUT QAF_TIPOATT + ITEM " |" + ITEM "A|Tempo parziale" + ITEM "B|Apprendistato" + ITEM "C|Formazione lavoro" + OUTPUT QAF_TIPOATT + FIELD LF_QUAA->TIPO +END + +NUMBER F_NUMGIORNI 3 +BEGIN + PROMPT 55 4 "15 numero giorni " + FIELD LF_QUAA->NUMGIO +END + +DATE F_DATAFR +BEGIN + PROMPT 2 5 "16 data fine rapporto " + FIELD LF_QUAA->DATAFR +END + +NUMBER QAF_GIODET 3 +BEGIN + PROMPT 40 5 "17 num.gio.det.lav.dip " + FIELD LF_QUAA->NUMGIODET + NUM_EXPR {(#THIS>=0)&&(#THIS<=366)} + WARNING "I giorni detrazione per lav.dip. devono essere compresi tra 0 e 366" +END + +STRING F_CODFISDL 16 +BEGIN + PROMPT 2 6 "18 cod.fis.prec.dat.lav. " + FIELD LF_QUAA->CFDLPREC + FLAGS "U" + VALIDATE CF_FUNC F_CODFISDL +END + +NUMBER F_CAUSA 1 +BEGIN + PROMPT 60 6 "19 causa " + FIELD LF_QUAA->CAUSA + SHEET "Codice|Descrizione@70" + INPUT F_CAUSA + ITEM " |Niente" + ITEM "1|Fusione (anche per incorporazione)" + ITEM "2|Scissione" + ITEM "3|Conferimento o cessione a titolo oneroso" + ITEM "4|Esercizio della facolta' prevista da art.23, comma 7, D.P.R. 600/73" + ITEM "5|Altro" + OUTPUT F_CAUSA +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 8 "@bCompensi lordi, stipendi, pensioni ecc." +END + +NUMBER F_DENARO 15 +BEGIN + PROMPT 2 9 "20 in denaro " + FIELD LF_QUAA->DENARO + PICTURE "." +END + +NUMBER F_NATURA 15 +BEGIN + PROMPT 45 9 "21 in natura " + FIELD LF_QUAA->NATURA + PICTURE "." +END + +NUMBER F_COBBDIP21 15 +BEGIN + PROMPT 2 11 "22 contr.obb.car. dip. " + HELP "Contributi obbligatori a carico del dipendente" + FIELD LF_QUAA->COBBDIP + PICTURE "." +END + +NUMBER F_COMPNETTI 15 +BEGIN + PROMPT 45 11 "23 compensi netti" + FIELD LF_QUAA->COMPNETTI + PICTURE "." +END + + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 13 "@bIndennita' e assegni ex Art.48, C.4 e 5, T.U.I.R." +END + +NUMBER F_AMMLORDO24 15 +BEGIN + PROMPT 2 14 "24 ammontare lordo " + FIELD LF_QUAA->AMMLORDO + PICTURE "." +END + +NUMBER F_IACOBBCD25 15 +BEGIN + PROMPT 39 14 "25 contr.obb.car. dip. " + FIELD LF_QUAA->IACOBBCD + PICTURE "." + HELP "Contributi obbligatori a carico del dipendente" +END + +NUMBER QAF_SVNSOGRIT 15 +BEGIN + PROMPT 2 15 "26 som.v.non sog.rit." + FIELD LF_QUAA->NORIT + PICTURE "." +END + +NUMBER F_TOTIMP26 15 +BEGIN + PROMPT 39 15 "27 totale imponibile " + FIELD LF_QUAA->TOTIMP + PICTURE "." +END + +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "H" + GROUP 1 +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + FLAGS "DG" + GROUP 2 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + GROUP 3 +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + GROUP 4 +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FLAGS "DG" + GROUP 5 +END + +NUMBER F_AIEREP23 15 +BEGIN + PROMPT 2 3 "28 assegni indennita' erogati da enti previdenziali " + FIELD LF_QUAA->AIENTIPREV + PICTURE "." + HELP "Assegni e indennita' erogati da enti previdenziali" +END + +NUMBER F_CCTAMMCONT 15 +BEGIN + PROMPT 2 4 "29 ammontare compensi corrisposti da terzi " + FIELD LF_QUAA->CCTAMMCONT + PICTURE "." +END + +NUMBER F_TOTIMP29 15 +BEGIN + PROMPT 2 5 "30 totale imponibile " + FIELD LF_QUAA->TOTIMP2 + PICTURE "." +END + +NUMBER F_ICTOTIMP30 15 +BEGIN + PROMPT 2 6 "31 imposta corrispondente totale imponibile " + FIELD LF_QUAA->ICTOTIMP + PICTURE "." + HELP "Imposta corrispondente al totale imponibile" +END + +NUMBER F_DETCC 15 +BEGIN + PROMPT 2 7 "32 detr.coniuge carico " + FIELD LF_QUAA->DETCC + PICTURE "." + HELP "Detrazione per coniuge a carico" +END + +NUMBER F_DETFC 15 +BEGIN + PROMPT 41 7 "33 detr.figli carico " + FIELD LF_QUAA->DETFC + PICTURE "." + HELP "Detrazione per figli a carico" +END + +NUMBER F_DETAF 15 +BEGIN + PROMPT 2 8 "34 det.altri fam.carico" + FIELD LF_QUAA->DETAF + PICTURE "." + HELP "Detrazione per altri famigliari a carico" +END + +NUMBER F_DETLD 15 +BEGIN + PROMPT 41 8 "35 detr.lav. dipend. " + FIELD LF_QUAA->DETLD + PICTURE "." + HELP "Detrazione per lavoro dipendente" +END + +NUMBER F_DETO 15 +BEGIN + PROMPT 2 9 "36 detr. per oneri " + FIELD LF_QUAA->DETO + PICTURE "." + HELP "Detrazione per oneri" +END + +NUMBER F_TOTDET36 15 +BEGIN + PROMPT 41 9 "37 totale detrazione " + FIELD LF_QUAA->TOTDET + PICTURE "." +END + +NUMBER QAF_INCDETFC 15 +BEGIN + PROMPT 2 10 "38 inc.detr.figli a ca." + FIELD LF_QUAA->INCDETFC + PICTURE "." +END + + +NUMBER F_AMRIOT37 15 +BEGIN + PROMPT 2 11 "39 ammontare delle ritenute operate da terzi" + FIELD LF_QUAA->AMRIOT + PICTURE "." + HELP "Ammontare delle ritenute operate da terzi" +END + +NUMBER F_AMRIODL38 15 +BEGIN + PROMPT 2 12 "40 ammontare ritenute operate datore lavoro " + FIELD LF_QUAA->AMRIODL + PICTURE "." + HELP "Ammontare delle ritenute operate dal datore di lavoro" +END + +NUMBER F_ECCRITRIMB 15 +BEGIN + PROMPT 2 13 "41 eccedenza delle ritenute da rimborsare " + FIELD LF_QUAA->ECCRITRIMB + PICTURE "." + HELP "Eccedenza delle ritenute da rimborsare" +END + +NUMBER F_AMMRITDOV 15 +BEGIN + PROMPT 2 14 "42 ammont.riten. dovute" + FIELD LF_QUAA->AMMRITDOV + PICTURE "." + HELP "Ammontare delle ritenute dovute" +END + +NUMBER F_ERSPSAN41 15 +BEGIN + PROMPT 41 14 "43 er.spese sanitarie" + FIELD LF_QUAA->ERSPSAN + PICTURE "." + HELP "Erogazioni per spese sanitarie, anche in forma assicurativa" +END + +NUMBER F_PRASSVI42 15 +BEGIN + PROMPT 2 15 "44 premi di assicurazione vita e infortuni " + FIELD LF_QUAA->PRASSVI + PICTURE "." + HELP "Premi di assicurazione vita e infortuni" +END + +NUMBER F_CONPRECO43 15 +BEGIN + PROMPT 2 16 "45 contributi per previdenza complementare " + FIELD LF_QUAA->CONPRECO + PICTURE "." + HELP "Contributi per previdenza complementare" +END + +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "H" + GROUP 1 +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + FLAGS "DG" + GROUP 2 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + GROUP 3 +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + GROUP 4 +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FLAGS "DG" + GROUP 5 +END + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 1 3 "@bArretrati relativi ad anni precedenti" +END + +NUMBER F_COBBDIP44 15 +BEGIN + PROMPT 2 4 "46 cont.obb.carico dip." + FIELD LF_QUAA->COBBDIP2 + PICTURE "." + HELP "Contributi obbligatori a carico del dipendente" +END + +NUMBER F_AMMIMP45 15 +BEGIN + PROMPT 41 4 "47 ammontare imponib." + FIELD LF_QUAA->AMMIMP + PICTURE "." + HELP "Ammontare imponibile" +END + +NUMBER F_DETIMPOS46 15 +BEGIN + PROMPT 2 5 "48 detrazioni d'imposta" + FIELD LF_QUAA->DETIMPOS + PICTURE "." +END + +NUMBER F_RITESEG47 15 +BEGIN + PROMPT 41 5 "49 ritenuta eseguita " + FIELD LF_QUAA->RITESEG + PICTURE "." +END + +NUMBER F_SVNASSRI48 15 +BEGIN + PROMPT 2 6 "50 altre somme e valori non ass.a ritenuta " + FIELD LF_QUAA->SVNASSRI + PICTURE "." +END + +NUMBER F_AIFCSSN49 15 +BEGIN + PROMPT 2 7 "51 ammontare imponibile ai fini del C.S.S.N." + FIELD LF_QUAA->AIFCSSN + PICTURE "." + HELP "Ammontare imponibile ai fini del C.S.S.N." +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 9 "@bVERSAMENTI E RIMBORSI CONSEGUENTI ALL'ASSISTENZA FISCALE " +END + +GROUPBOX DLG_NULL 0 3 +BEGIN + PROMPT 1 10 "@bAssistenza 1995" +END + +STRING F_CONEFF50 1 +BEGIN + PROMPT 2 11 "52 conguagli non effettuati nel 95 " + FIELD LF_QUAA->CONEFF + SHEET "Codice|Descrizione@85" + INPUT F_CONEFF50 + ITEM " |Niente" + ITEM "A|Cessazione del rapporto di lavoro" + ITEM "B|Aspettativa senza retribuzione" + ITEM "C|Decesso" + ITEM "D|Richiesta di minore secondo acconto" + ITEM "E|Retribuzione insufficiente" + ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici" + OUTPUT F_CONEFF50 +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 13 "@bSeconda rata acconto IRPEF 1995" +END + +NUMBER F_IMPVERS51 15 +BEGIN + PROMPT 2 14 "53 imposta vers. " + FIELD LF_QUAA->IMPVERS + PICTURE "." +END + +NUMBER F_ISOPTAS52 15 +BEGIN + PROMPT 37 14 "54 interessi " + FIELD LF_QUAA->INTERE + PICTURE "." +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 16 "@bSeconda rata acconto C.S.S.N. 1995" +END + +NUMBER F_CONTRVER53 15 +BEGIN + PROMPT 2 17 "55 contr. versato" + FIELD LF_QUAA->CSSN95CV + PICTURE "." +END + +NUMBER F_ISOPTAS54 15 +BEGIN + PROMPT 37 17 "56 interessi " + FIELD LF_QUAA->INTERE2 + PICTURE "." +END + +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "H" + GROUP 1 +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + FLAGS "DG" + GROUP 2 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + GROUP 3 +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + GROUP 4 +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FLAGS "DG" + GROUP 5 +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 3 "@bAssistenza 1996" +END + +STRING F_CNEFF55 1 +BEGIN + PROMPT 2 4 "57 conguagli n/eff.assist.95 " + FIELD LF_QUAA->CNEFF + HELP "Conguagli non effettuati relativi all'assistenza 1995" + SHEET "Codice|Descrizione@85" + INPUT F_CNEFF55 + ITEM " |Niente" + ITEM "A|Cessazione del rapporto di lavoro" + ITEM "B|Aspettativa senza retribuzione" + ITEM "C|Decesso" + ITEM "D|Richiesta di minore secondo acconto" + ITEM "E|Retribuzione insufficiente" + ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici" + ITEM "G|Rimborso non effettuato o rimborso effettuato parzialmente" + OUTPUT F_CNEFF55 +END + +STRING F_RETCON56 1 +BEGIN + PROMPT 37 4 "58 rettifica conguaglio " + FIELD LF_QUAA->RETCON + SHEET "Codice|Descrizione@65" + INPUT F_RETCON56 + ITEM " | " + ITEM "A|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.96 (per il primo numero d'ordine)" + ITEM "B|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.96 (per il primo numero d'ordine)" + ITEM "C|Conguaglio a seguito di rettifica di una precedente comunicazione tardivamente pervenuta al sostituto" + ITEM "D|Conguaglio a seguito di rettifica di una precedente comunicazione tempestivamente perventuta al sostituto ma per la quale non è stato effettuato il conguaglio nel mese di giugno" + ITEM "E|Conguaglio tardivo per mod.730-4 pervenuto tardivamente" + ITEM "F|Conguaglio tardivo per causa dipendente dal sostituto d'imposta" + OUTPUT F_RETCON56 + FLAGS "U" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 6 "@bSaldo IRPEF per il 1995" +END + +NUMBER F_IMPRIMB57 15 +BEGIN + PROMPT 2 7 "59 impo. rimborsata " + FIELD LF_QUAA->IMPRIMB + PICTURE "." +END + +NUMBER F_IMPVER58 15 +BEGIN + PROMPT 44 7 "60 imposta versata" + FIELD LF_QUAA->IMPVER + PICTURE "." +END + +NUMBER F_INTIRPEF59 15 +BEGIN + PROMPT 2 8 "61 interessi " + FIELD LF_QUAA->INTIRPEF + PICTURE "." + HELP "Interessi IRPEF" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 10 "@bPrima rata acconto IRPEF per il 1996" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 11 "62 impo. versata " + GROUP 6 +END + +TEXT DLG_NULL +BEGIN + PROMPT 44 11 "63 interessi " + GROUP 7 +END + +NUMBER F_IMPVER60 15 +BEGIN +//PROMPT 2 11 "Imposta versata " + PROMPT 23 11 "" + FIELD LF_QUAA->IMPVER2 + PICTURE "." +END + +NUMBER F_INTER61 15 +BEGIN +// PROMPT 44 11 "Interessi " + PROMPT 61 11 "" + FIELD LF_QUAA->INTER + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 12 "64 soprattasse saldo IRPEF per 95 e prima rata acconto del 96 " + GROUP 6 +END + +NUMBER F_STSIRPEF62 15 +BEGIN +// PROMPT 2 12 "Soprattasse saldo IRPEF per 94 e prima rata acconto del 95 " + PROMPT 61 12 "" + FIELD LF_QUAA->STSIRPEF + PICTURE "." + HELP "Interessi IRPEF" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 14 "@bSaldo C.S.S.N. per il 1995" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 15 "65 Contr. rimborso " + GROUP 6 +END + +TEXT DLG_NULL +BEGIN + PROMPT 44 15 "66 Contr. versato " + GROUP 7 +END + +NUMBER F_CONRIMB63 15 +BEGIN + PROMPT 21 15 "" + FIELD LF_QUAA->CONRIMB + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 16 "67 interessi " + GROUP 7 +END + +NUMBER F_CONVER64 15 +BEGIN + PROMPT 61 15 "" + FIELD LF_QUAA->CONVER + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 16 "Imp. rimb. CSSN " + GROUP 7 +END + +NUMBER F_INTER65 15 +BEGIN +// PROMPT 2 16 "Interessi " + PROMPT 21 16 "" + FIELD LF_QUAA->INTER2 + PICTURE "." +END + +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "H" + GROUP 1 +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + FLAGS "DG" + GROUP 2 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + GROUP 3 +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + GROUP 4 +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FLAGS "DG" + GROUP 5 +END + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 1 3 "@bPrima rata acconto C.S.S.N. per il 1996" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 4 "68 contr. versato " + GROUP 6 +END + +NUMBER F_CONVER66 15 +BEGIN +// PROMPT 2 4 "Contributo versato " + PROMPT 21 4 "" + FIELD LF_QUAA->CONVER2 + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 44 4 "69 interessi " + GROUP 6 +END + +NUMBER F_INTER67 15 +BEGIN +// PROMPT 44 4 "Interessi " + PROMPT 61 4 "" + FIELD LF_QUAA->INTER3 + PICTURE "." +END + +NUMBER F_STSCSSN68 15 +BEGIN + PROMPT 2 5 "70 Soprattasse saldo C.S.S.N. 94 e prima rata acconto 95 " + FIELD LF_QUAA->STSCSSN70 + PICTURE "." +END + +NUMBER F_SEGDICNL69 2 +BEGIN + PROMPT 2 6 "71 Mod.730/95 non liquidabile " + FIELD LF_QUAA->M730NLIQ + SHEET "Codice|Descrizione@65" + INPUT F_SEGDICNL69 + ITEM " |Niente" + ITEM "01|Errata o incompleta compilazione dei dati anagrafici e di residenza del dichiarante" + ITEM "02|Errata o incompleta compilazione dei dati del coniuge e familiari a carico" + ITEM "03|Errata o incompleta compilazione dei dati anagrafici e di residenza del coniuge" + ITEM "04|Errata o incompleta dichiarazione del quadro A Mod.730/96 del dichiarante" + ITEM "05|Errata o incompleta dichiarazione del quadro A Mod.730/96 del coniuge" + ITEM "06|Errata o incompleta dichiarazione del quadro B Mod.730/96 del dichiarante" + ITEM "07|Errata o incompleta dichiarazione del quadro B Mod.730/96 del coniuge" + ITEM "08|Errata o incompleta dichiarazione del quadro C Mod.730/96 del dichiarante" + ITEM "09|Errata o incompleta dichiarazione del quadro D Mod.730/96 del dichiarante" + ITEM "10|Errata o incompleta dichiarazione del quadro E Mod.730/96 del dichiarante" + ITEM "11|Errata o incompleta dichiarazione del quadro E Mod.730/96 del coniuge" + ITEM "12|Errata o incompleta dichiarazione del quadro F Mod.730/96 del dichiarante" + ITEM "13|Errata o incompleta dichiarazione del quadro F Mod.730/96 del coniuge" + OUTPUT F_SEGDICNL69 +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 10 "@bDati identificativi del C.A.A.F che ha prestato assistenza " +END + +NUMBER F_CODCAAF 5 +BEGIN + PROMPT 2 11 "Codice " + FIELD LF_QUAA->CODCAAF + USE %CAF + CHECKTYPE NORMAL + INPUT CODTAB F_CODCAAF + DISPLAY "Codice" CODTAB + DISPLAY "Denominazione@50" S0 + DISPLAY "N.ro iscrizione" I1 + DISPLAY "Codice fiscale@16" S1 + OUTPUT F_CODCAAF CODTAB + OUTPUT F_DENCAAF S0 + OUTPUT F_NISCRA I1 + OUTPUT F_CODFISCAAF S1 +END + +STRING F_DENCAAF 50 +BEGIN + PROMPT 26 11 "" + FLAGS "DU" +END + +STRING F_CODFISCAAF 16 +BEGIN + PROMPT 2 12 "72 Cod.fiscale " + FLAGS "D" +END + +NUMBER F_NISCRA 5 +BEGIN + PROMPT 50 12 "74 N.iscrizione albo " + FLAGS "D" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771200c.uml b/m770/771200c.uml new file mode 100755 index 000000000..cffc45766 --- /dev/null +++ b/m770/771200c.uml @@ -0,0 +1,103 @@ +#include "771200.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A1" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA QAF_CODDITTA + OUTPUT QAF_RAGDITTA RAGSOC + FIELD LF_QUAA1->CODDITTA +END + +STRING QAF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QAF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati dipendente" +END + +NUMBER F_CODIP 6 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAA1->CODIP + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGDIP 6 +BEGIN + PROMPT 1 8 "@bCodice " + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA)) + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + DISPLAY "Codice " CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_CODANAGDIP CODIP + OUTPUT QAF_COGNOME COGNOME + OUTPUT QAF_NOME NOME +// CHECKTYPE REQUIRED + ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" + MESSAGE COPY, F_CODIP +// FIELD LF_QUAA1->CODIP +// KEY 1 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 8 "" + FLAGS "D" +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 8 "" + FLAGS "D" +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + USE LF_QUAA1 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA)) + JOIN LF_DIPEND KEY 1 INTO CODIP=CODIP + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + INPUT NPROG QAF_NPROG + DISPLAY "Codice@10" CODIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@4" NPROG + OUTPUT F_CODANAGDIP CODIP + OUTPUT QAF_NPROG NPROG + FIELD LF_QUAA1->NPROG + KEY 1 +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/771200d.uml b/m770/771200d.uml new file mode 100755 index 000000000..1728dc2d7 --- /dev/null +++ b/m770/771200d.uml @@ -0,0 +1,306 @@ +#include "771200.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A1" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "H" + FIELD LF_QUAA1->CODDITTA + KEY 1 + MESSAGE COPY,1@ +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + USE LF_DIPEND KEY 1 + FIELD LF_QUAA1->CODIP + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QAF_COGNOME COGNOME + OUTPUT QAF_NOME NOME + CHECKTYPE REQUIRED + FLAGS "DG" + MESSAGE COPY,2@ + KEY 1 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + MESSAGE COPY,3@ +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + MESSAGE COPY,4@ +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FIELD LF_QUAA1->NPROG + FLAGS "DG" + KEY 1 + MESSAGE COPY,5@ +END + +LISTBOX F_MESEANNO 9 +BEGIN + PROMPT 2 3 "8 Periodo di riferimento " + FLAGS "M" + FIELD LF_QUAA1->MESERIF +END + +TEXT QA1F_ANNORIF +BEGIN + PROMPT 44 3 "1995" + FLAGS "D" + FIELD LF_QUAA1->ANNORIF +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 4 "@bSaldo IRPEF per il 1994" +END + +NUMBER F_IMPRIMB9 15 +BEGIN + PROMPT 2 5 "9 Imposta rimbors. " + FIELD LF_QUAA1->IMPRIMB9 + PICTURE "." +END + +NUMBER F_IMPVERS10 15 +BEGIN + PROMPT 45 5 "10 Imposta ver. " + FIELD LF_QUAA1->IMPVERS10 + PICTURE "." +END + +NUMBER F_INTER11 15 +BEGIN + PROMPT 2 6 "11 Interessi " + FIELD LF_QUAA1->INTER11 + PICTURE "." +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 8 "@bPrima rata acconto IRPEF per il 1995" +END + +NUMBER F_IMPVERS12 15 +BEGIN + PROMPT 2 9 "12 Imposta versata " + FIELD LF_QUAA1->IMPVERS12 + PICTURE "." +END + +NUMBER F_INTER13 15 +BEGIN + PROMPT 45 9 "13 Interessi " + FIELD LF_QUAA1->INTER13 + PICTURE "." +END + +NUMBER F_STASSA14 15 +BEGIN + PROMPT 2 10 "14 Soprattassa su IRPEF saldo 94 e prima rata acconto 95 " + FIELD LF_QUAA1->STASSA14 + PICTURE "." +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 12 "@bSaldo C.S.S.N. per il 1994" +END + +NUMBER F_CONTRIMB15 15 +BEGIN + PROMPT 2 13 "15 Cont. a rimborso" + FIELD LF_QUAA1->CONTRIMB15 + PICTURE "." + HELP "Contributo a rimborso" +END + +NUMBER F_CONTVERS16 15 +BEGIN + PROMPT 45 13 "16 Cont.versato " + FIELD LF_QUAA1->CONTVERS16 + PICTURE "." + HELP "Contributo versato" +END + +NUMBER F_INTER17 15 +BEGIN + PROMPT 2 14 "17 Interessi " + FIELD LF_QUAA1->INTER17 + PICTURE "." +END + +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "H" + GROUP 1 +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + FLAGS "DG" + GROUP 2 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + GROUP 3 +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + GROUP 4 +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FLAGS "DG" + GROUP 5 +END + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 1 3 "@bPrima rata acconto C.S.S.N. per il 1995" +END + +NUMBER F_CONTVER18 15 +BEGIN + PROMPT 2 4 "18 Contributo vers." + FIELD LF_QUAA1->CONTVER18 + PICTURE "." +END + +NUMBER F_INTER19 15 +BEGIN + PROMPT 45 4 "19 Interessi " + FIELD LF_QUAA1->INTER19 + PICTURE "." +END + +NUMBER F_STASSA20 15 +BEGIN + PROMPT 2 5 "20 Soprattassa su C.S.S.N. saldo 94 e prima rata acconto 95" + FIELD LF_QUAA1->STASSA20 + PICTURE "." +END + +STRING F_CONNEFF21 1 +BEGIN + PROMPT 2 6 "21 Cong. n/effet. " + FIELD LF_QUAA1->CONNEFF21 + HELP "Conguagli non effettuati" + SHEET "Codice|Descrizione@85" + INPUT F_CONNEFF21 + ITEM " |Niente" + ITEM "A|Cessazione del rapporto di lavoro" + ITEM "B|Aspettativa senza retribuzione" + ITEM "C|Decesso" + ITEM "D|Richiesta di minore secondo acconto" + ITEM "E|Retribuzione insufficiente" + ITEM "F|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici" + ITEM "G|Rimborso non effettuato o rimborso effettuato parzialmente" + OUTPUT F_CONNEFF21 + FLAGS "U" +END + +STRING F_TIPOCONG22 1 +BEGIN + PROMPT 45 6 "22 Tipo cong. " + FIELD LF_QUAA1->TIPOCONG22 + SHEET "Codice|Descrizione@155" + INPUT F_TIPOCONG22 + ITEM " |Niente" + ITEM "R|conguaglio tardivo derivante da Mod.730/93 rettificativo ovvero conguaglio conseguente a comunicazione tardiva di Mod.730/94 rettificativo" + ITEM "S|Conguaglio tardivo derivante da comunicazione Mod.730/94 pervenuta entro i termini" + ITEM "T|Conguaglio tardivo derivante da Mod.730/93 ovvero conguaglio conseguente a comunicazione tardiva di Mod.730/94" + ITEM "U|Conguaglio conseguente ad incapienza della retribuzione corrisposta nei periodi di paga precedenti ovvero insufficienza del monte ritenute e/o contributi" + OUTPUT F_TIPOCONG22 + FLAGS "U" +END + +DATE F_DATARIC29 +BEGIN + PROMPT 2 7 "Data ricezione Modello 730-5 " + FIELD LF_QUAA1->DATARIC26 +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 9 "@bDati identificativi del C.A.A.F che ha prestato assistenza " +END + +NUMBER F_CODCAAF 5 +BEGIN + PROMPT 2 10 "Codice " + FIELD LF_QUAA1->CODCAAF + USE %CAF + CHECKTYPE NORMAL + INPUT CODTAB F_CODCAAF + DISPLAY "Codice" CODTAB + DISPLAY "Denominazione@50" S0 + DISPLAY "N.ro iscrizione" I1 + DISPLAY "Codice fiscale@16" S1 + OUTPUT F_CODCAAF CODTAB + OUTPUT F_DENCAAF S0 + OUTPUT F_NISCRA I1 + OUTPUT F_CODFISCAAF S1 +END + +STRING F_DENCAAF 50 +BEGIN + PROMPT 26 10 "" + FLAGS "DU" +END + +STRING F_CODFISCAAF 16 +BEGIN + PROMPT 2 11 "23 Cod.fiscale " + FLAGS "D" +END + +NUMBER F_NISCRA 5 +BEGIN + PROMPT 50 11 "25 N.iscrizione albo " + FLAGS "D" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/771200e.uml b/m770/771200e.uml new file mode 100755 index 000000000..8d7651456 --- /dev/null +++ b/m770/771200e.uml @@ -0,0 +1,100 @@ +#include "771200.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A2" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA QAF_CODDITTA + OUTPUT QAF_RAGDITTA RAGSOC + FIELD LF_QUAA2->CODDITTA +END + +STRING QAF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QAF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati dipendente" +END + +NUMBER F_CODIP 6 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAA2->CODIP + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGDIP 6 +BEGIN + PROMPT 1 8 "@bCodice " + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA)) + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + DISPLAY "Codice " CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_CODANAGDIP CODIP + OUTPUT QAF_COGNOME COGNOME + OUTPUT QAF_NOME NOME + ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" + MESSAGE COPY, F_CODIP +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 8 "" + FLAGS "D" +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 8 "" + FLAGS "D" +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + USE LF_QUAA2 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA)) + JOIN LF_DIPEND KEY 1 INTO CODIP=CODIP + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + INPUT NPROG QAF_NPROG + DISPLAY "Codice@10" CODIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@4" NPROG + OUTPUT F_CODANAGDIP CODIP + OUTPUT QAF_NPROG NPROG + FIELD LF_QUAA2->NPROG + KEY 1 +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/771200f.uml b/m770/771200f.uml new file mode 100755 index 000000000..a5be2de94 --- /dev/null +++ b/m770/771200f.uml @@ -0,0 +1,411 @@ +#include "771200.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A2" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "H" + FIELD LF_QUAA2->CODDITTA + KEY 1 + MESSAGE COPY,1@ +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + USE LF_DIPEND KEY 1 + FIELD LF_QUAA2->CODIP + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QAF_COGNOME COGNOME + OUTPUT QAF_NOME NOME + CHECKTYPE REQUIRED + FLAGS "DG" + MESSAGE COPY,2@ + KEY 1 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + MESSAGE COPY,3@ +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + MESSAGE COPY,4@ +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FIELD LF_QUAA2->NPROG + FLAGS "DG" + KEY 1 + MESSAGE COPY,5@ +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 3 "@bASSISTENZA 1995 " +END + +STRING QA2F_CNEFF 1 +BEGIN + PROMPT 2 4 "8 Conguagli non effettuati " + FIELD LF_QUAA2->CONEFF + HELP "Conguagli non effettuati relativi all'assistenza 1995" + SHEET "Codice|Descrizione@85" + INPUT QA2F_CNEFF + ITEM " |Niente" + ITEM "A|Cessazione del rapporto di lavoro" + ITEM "B|Decesso" + ITEM "C|Richiesta di minore secondo acconto" + ITEM "D|Retribuzione insufficiente" + ITEM "E|Nel caso di situazioni per le quali dovrebbero essere indicati piu' codici" + ITEM "F|Rimborso non effettuato o rimborso effettuato parzialmente" + OUTPUT QA2F_CNEFF +END + +STRING QA2F_RETCON 1 +BEGIN + PROMPT 38 4 "9 Rettifica conguaglio " + FIELD LF_QUAA2->RETCON + SHEET "Codice|Descrizione@65" + INPUT QA2F_RETCON + ITEM " | " + ITEM "A|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.95 (per il primo numero d'ordine)" + ITEM "B|Rettifica da parte dei sostituti o dei CAAF degli importi da conguagliare indicati nei mod.730-3,4 e già consegnati entro il 15.5.95 (per il primo numero d'ordine)" + ITEM "C|Conguaglio tardivamente effettuato nel mese di luglio" + OUTPUT QA2F_RETCON + FLAGS "U" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 6 "@bSALDO IRPEF PER IL 1994 " +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "10 Imposta rimborsata " + GROUP 6 +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "11 Imposta versata " + GROUP 7 +END + +NUMBER F_IIRPEFVER8 15 +BEGIN + PROMPT 21 7 "" + FIELD LF_QUAA2->SIRPEFRIMB + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 41 7 "12 Interessi " + GROUP 6 +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 10 "@bPRIMA RATA ACCONTO IRPEF PER IL 1995 " +END + +TEXT DLG_NULL +BEGIN + PROMPT 41 7 "13 Imposta versata " + GROUP 7 +END + +NUMBER F_IIRPEFRI9 15 +BEGIN + PROMPT 61 7 "" + FIELD LF_QUAA2->VIRPEF + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "14 Interessi " + GROUP 6 +END + +/* +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "1a rata acc.IRPEF96 " + GROUP 7 +END +*/ + +NUMBER F_INTER11 15 +BEGIN + PROMPT 21 8 "" + FIELD LF_QUAA2->INTIRPEF + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 11 "13 Imposta versata " + GROUP 6 +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 11 "14 Interessi " + GROUP 7 +END + +NUMBER F_PRIRPEF10 15 +BEGIN +// PROMPT 2 11 "Imposta versata " + PROMPT 21 11 "" + FIELD LF_QUAA2->AIRPEFIV + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 41 11 "Interessi " + GROUP 6 +END + +TEXT DLG_NULL +BEGIN + PROMPT 41 11 "Imp.vers/tratt CSSN" + GROUP 7 +END + +NUMBER F_INTER11 15 +BEGIN +// PROMPT 41 11 "Interessi " + PROMPT 61 11 "" + FIELD LF_QUAA2->AIRPEFINT + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 13 "15 Soprattasse IRPEF saldo 94 e prima rata acc.95 " + GROUP 6 +END + +NUMBER F_STASSA12 15 +BEGIN + PROMPT 61 13 "" + FIELD LF_QUAA2->STASSA15 + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 13 "Imp. rimb. CSSN " + GROUP 7 +END + +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A2" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "H" + GROUP 1 +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + FLAGS "DG" + GROUP 2 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + GROUP 3 +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + GROUP 4 +END + +NUMBER QAF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FLAGS "DG" + GROUP 5 +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 4 "@bSALDO C.S.S.N. PER IL 1994 " +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 5 "16 Cont.a rimborso " + GROUP 6 +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 5 "17 Cont. versato " + GROUP 7 +END + +NUMBER QA2F_CSSNCRIMB 15 +BEGIN + PROMPT 21 5 "" + FIELD LF_QUAA2->CONTR16 + PICTURE "." +END + +TEXT DLG_NULL +BEGIN + PROMPT 41 5 "18 Interessi " + GROUP 6 +END + +TEXT DLG_NULL +BEGIN + PROMPT 41 5 "2a rata acc.CSSN 96" + GROUP 7 +END + +NUMBER QA2F_CSSNCVER 15 +BEGIN +// PROMPT 41 5 "Contr. versato " + PROMPT 61 5 "" + FIELD LF_QUAA2->CONTRVER + PICTURE "." +END + +NUMBER QA2F_CSSNINT 15 +BEGIN + PROMPT 2 6 "Interessi " + FIELD LF_QUAA2->INTER18 + PICTURE "." +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 8 "@bPRIMA RATA ACCONTO C.S.S.N. PER IL 1995 " +END + +NUMBER QA2F_CSSNAIV 15 +BEGIN + PROMPT 2 9 "Imposta versata " + FIELD LF_QUAA2->CONTV19 + PICTURE "." +END + +NUMBER QA2F_CSSNAINT 15 +BEGIN + PROMPT 41 9 "Interessi " + FIELD LF_QUAA2->INTE20 + PICTURE "." +END + +NUMBER QA2F_STCSSN 15 +BEGIN + PROMPT 2 11 "Soprattasse su C.S.S.N. saldo 94 e prima rata acc.95 " + FIELD LF_QUAA2->SOPRAT21 + PICTURE "." +END + +STRING QA2F_730NLIQ 2 +BEGIN + PROMPT 2 12 "22 Mod.730/95 non liquidabile " + SHEET "Codice|Descrizione@80" + INPUT QA2F_730NLIQ + ITEM "|" + ITEM "01|Errata o incompleta compilazione dei dati anagrafici e di residenza del dichiarante" + ITEM "02|Errata o incompleta compilazione dei dati del coniuge e familiari a carico" + ITEM "03|Errata o incompleta compilazione dei dati anagrafici e di residenza del coniuge" + ITEM "04|Errata o incompleta dichiarazione del quadro A Mod.730/95 del dichiarante" + ITEM "05|Errata o incompleta dichiarazione del quadro A Mod.730/95 del coniuge" + ITEM "06|Errata o incompleta dichiarazione del quadro B Mod.730/95 del dichiarante" + ITEM "07|Errata o incompleta dichiarazione del quadro B Mod.730/95 del coniuge" + ITEM "08|Errata o incompleta dichiarazione del quadro C Mod.730/95 del dichiarante" + ITEM "09|Errata o incompleta dichiarazione del quadro D Mod.730/95 del dichiarante" + ITEM "10|Errata o incompleta dichiarazione del quadro E Mod.730/95 del dichiarante" + ITEM "11|Errata o incompleta dichiarazione del quadro E Mod.730/95 del coniuge" + ITEM "12|Errata o incompleta dichiarazione del quadro F Mod.730/95 del dichiarante" + ITEM "13|Errata o incompleta dichiarazione del quadro F Mod.730/95 del coniuge" + FIELD LF_QUAA2->M730NLIQ + FLAGS "Z" + OUTPUT QA2F_730NLIQ +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 14 "@bDati identificativi del C.A.A.F che ha prestato assistenza " +END + +NUMBER F_CODCAAF 5 +BEGIN + PROMPT 2 15 "Codice " + FIELD LF_QUAA2->CODCAAF + USE %CAF + CHECKTYPE NORMAL + INPUT CODTAB F_CODCAAF + DISPLAY "Codice" CODTAB + DISPLAY "Denominazione@50" S0 + DISPLAY "N.ro iscrizione" I1 + DISPLAY "Codice fiscale@16" S1 + OUTPUT F_CODCAAF CODTAB + OUTPUT F_DENCAAF S0 + OUTPUT F_NISCRA I1 + OUTPUT F_CODFISCAAF S1 +END + +STRING F_DENCAAF 50 +BEGIN + PROMPT 26 15 "" + FLAGS "DU" +END + +STRING F_CODFISCAAF 16 +BEGIN + PROMPT 2 16 "23 Cod.fiscale " + FLAGS "D" +END + +NUMBER F_NISCRA 5 +BEGIN + PROMPT 50 16 "25 N.iscrizione albo " + FLAGS "D" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/771200g.uml b/m770/771200g.uml new file mode 100755 index 000000000..536fcabc2 --- /dev/null +++ b/m770/771200g.uml @@ -0,0 +1,118 @@ +#include "771200.h" +TOOLBAR "" 0 18 0 4 +BUTTON F_BASEOCCUPA 24 2 +BEGIN + PROMPT -13 -3 "~Dati Base occupazionale" +END +#include + +ENDPAGE + +PAGE "Manutenzione dati base occupazionale" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA QAF_CODDITTA + OUTPUT QAF_RAGDITTA RAGSOC + FIELD LF_QUAA3->CODDITTA +END + +STRING QAF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QAF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bCodice " +END + +NUMBER QAF_NPROG 1 +BEGIN + PROMPT 80 80 "" + FLAGS "DG" + FIELD LF_QUAA3->NPROG + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAA3->CODIP + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGDIP 5 +BEGIN + PROMPT 10 7 "" + USE LF_DIPEND KEY 1 SELECT (CODDITTA=#QAF_CODDITTA) + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODANAGDIP + DISPLAY "Codice " CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT F_CODANAGDIP CODIP + OUTPUT QAF_COGNOME COGNOME + OUTPUT QAF_NOME NOME + MESSAGE COPY, F_CODIP + ADD RUN 775 -0 + GROUP 2 +END + +NUMBER F_CODIPQUADRO 5 +BEGIN + PROMPT 10 7 "" + USE LF_QUAA3 KEY 1 SELECT ((CODDITTA=#QAF_CODDITTA) && (NPROG="1")) + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIPQUADRO + DISPLAY "Codice" CODIP + DISPLAY "N.ro" NPROG + DISPLAY "Inizio rapporto" DIRAPTI + DISPLAY "gg.incremento" NGINC15 + DISPLAY "Reddito corrisposto" REDCOR16 + DISPLAY "gg.incremento" NGINC17 + DISPLAY "Reddito corrisposto" REDCOR18 + OUTPUT F_CODIPQUADRO CODIP + MESSAGE COPY, F_CODIP + ADD RUN BA4 -1 + //FLAGS "HP" + FLAGS "H" + GROUP 1 +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 21 7 "" + FLAGS "D" +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 45 7 "" + FLAGS "D" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771200h.uml b/m770/771200h.uml new file mode 100755 index 000000000..431d424fc --- /dev/null +++ b/m770/771200h.uml @@ -0,0 +1,223 @@ +#include "771200.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Quadro A3" -1 -1 78 18 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + FLAGS "HG" + FIELD LF_QUAA3->CODDITTA + KEY 1 +END + +NUMBER F_CODIP 5 +BEGIN + PROMPT 17 1 "" + FIELD LF_QUAA3->CODIP + MESSAGE COPY,F_CODIP2 + FLAGS "DG" + KEY 1 + MESSAGE COPY,1@ +END + +NUMBER F_CODIP2 5 +BEGIN + USE LF_DIPEND KEY 1 + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT QAF_COGNOME COGNOME + OUTPUT QAF_NOME NOME + CHECKTYPE REQUIRED + FLAGS "HG" +END + +STRING QAF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + MESSAGE COPY,2@ +END + +STRING QAF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + MESSAGE COPY,3@ +END + +NUMBER QAF_NPROG 1 +BEGIN + PROMPT 80 80 "" + FLAGS "DG" + FIELD LF_QUAA3->NPROG +END + +DATE F_DIRAPTI +BEGIN + PROMPT 1 4 "8 Data inizio rapporto a tempo indeterminato " + FIELD LF_QUAA3->DIRAPTI +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 6 "@bDATI DAL 1/1/95 A FINE PERIODO D'IMPOSTA" +END + +NUMBER F_NGINC15 3 +BEGIN + PROMPT 1 7 "9 Num. giorni in incremento " + FIELD LF_QUAA3->NGINC15 +END + +NUMBER F_REDCOR16 15 +BEGIN + PROMPT 1 8 "10 Reddito corrisposto " + FIELD LF_QUAA3->REDCOR16 + PICTURE "." +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 10 "@bDATI DA INIZIO SUCCESSIVO PERIODO D'IMPOSTA FINO AL 31/12/95" +END + +NUMBER F_NGINC17 3 +BEGIN + PROMPT 1 11 "11 Num. giorni in incremento" + FIELD LF_QUAA3->NGINC17 +END + +NUMBER F_REDCOR18 15 +BEGIN + PROMPT 1 12 "12 Reddito corrisposto " + FIELD LF_QUAA3->REDCOR18 + PICTURE "." +END + +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER F_CODDITTA_2 5 +BEGIN + FLAGS "HG" + KEY 1 +END + +NUMBER F_CODIP_2 5 +BEGIN + PROMPT 17 1 "" + MESSAGE COPY,F_CODIP2 + FLAGS "DG" + KEY 1 + GROUP 1 +END + +NUMBER F_CODIP2_2 5 +BEGIN + USE LF_DIPEND KEY 1 + INPUT CODDITTA QAF_CODDITTA + INPUT CODIP F_CODIP + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT QAF_COGNOME COGNOME + OUTPUT QAF_NOME NOME + CHECKTYPE REQUIRED + FLAGS "HG" +END + +STRING F_COGNOME_2 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" + GROUP 2 +END + +STRING F_NOME_2 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" + GROUP 3 +END + +NUMBER F_NPROG_2 1 +BEGIN + PROMPT 80 80 "" + FLAGS "DG" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 3 "@bSocieta' trasformata " +END + +STRING F_DENTRASF 40 +BEGIN + PROMPT 25 3 "" + FLAGS "D" +END + +STRING F_COGNTRASF 30 +BEGIN + PROMPT 25 3 "" + FLAGS "D" +END + +STRING F_NOMETRASF 20 +BEGIN + PROMPT 56 3 "" + FLAGS "D" +END + +DATE F_DIRAPTI_2 +BEGIN + PROMPT 1 5 "8 Data inizio rapporto a tempo indeterminato " +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 7 "@bDATI DAL 1/1/95 A FINE PERIODO D'IMPOSTA" +END + +NUMBER F_NGINC15_2 3 +BEGIN + PROMPT 1 8 "9 Num. giorni in incremento " +END + +NUMBER F_REDCOR16_2 15 +BEGIN + PROMPT 1 9 "10 Reddito corrisposto " + PICTURE "." +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 11 "@bDATI DA INIZIO SUCCESSIVO PERIODO D'IMPOSTA FINO AL 31/12/95" +END + +NUMBER F_NGINC17_2 3 +BEGIN + PROMPT 1 12 "11 Num. giorni in incremento" +END + +NUMBER F_REDCOR18_2 15 +BEGIN + PROMPT 1 13 "12 Reddito corrisposto " + PICTURE "." +END + +ENDPAGE + +ENDMASK diff --git a/m770/771200i.uml b/m770/771200i.uml new file mode 100755 index 000000000..254280bc4 --- /dev/null +++ b/m770/771200i.uml @@ -0,0 +1,63 @@ +#include "771200.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro A" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QAF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GR" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA QAF_CODDITTA + OUTPUT QAF_RAGDITTA RAGSOC + FIELD LF_BASEBIS->CODDITTA +END + +STRING QAF_RAGDITTA 50 +BEGIN + PROMPT 20 1 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 1 4 "" +END + +NUMBER F_BSE_CONSBASOCC 5 +BEGIN + PROMPT 2 5 "Consistenza base occupazionale " + FIELD LF_BASEBIS->CONSBASOCC + FLAGS "R" +END + +NUMBER F_BSE_LAVDIPCIN 5 +BEGIN + PROMPT 2 6 "Lavoratori dipendenti in mobilita' o cassa integrazione al 12/06/94 " + FIELD LF_BASEBIS->LAVDIPCIN +END + +DATE F_BSE_DATAINPI +BEGIN + PROMPT 2 7 "Periodo d'imposta dal " + FIELD LF_BASEBIS->PIMPINI +END + +DATE F_BSE_DATAFINPI +BEGIN + PROMPT 36 7 " al " + FIELD LF_BASEBIS->PIMPFINE +END + +ENDPAGE + +ENDMASK diff --git a/m770/771230.cpp b/m770/771230.cpp new file mode 100755 index 000000000..6a7b6770a --- /dev/null +++ b/m770/771230.cpp @@ -0,0 +1,935 @@ +// 771230.cpp - Quadri C, D, D1, E, E1, E2 +#include +#include +#include +#include +#include +#include +#include "77lib.h" +#include "scperc.h" +#include "rpag.h" +#include "perc.h" +#include "prospe1.h" +#include "defmask.h" +#include "771230a.h" +#include "774200.h" + +class TQuadroC_E2 : public TRelation_application +{ + private: + TString _quadro; // Codice del quadro in gestione + bool _registra; // Se TRUE fa i riporti + + struct righe_pag + { + char tipoa; + char codan[6]; + char codcau[3]; + char perc[7]; //3 + 2decimali + la virgola + real somme; + real impo; + real rite; + real comp; + bool acim; + real inps; + }; + righe_pag* _rig; + TRelation* _rel; + TMask* _msk[2]; + TSort* _sort; + long _codanagr; + char _tipoa, _tipoq; + int _nproga; + int _mode; + int _anno_dic; // anno dichiarazione + TLocalisamfile* _per, *_scper, *_rpag, *_qd; + TTable* _ca7; + TRiporti _rip; + + int _file; + + private: + static bool nprog_handler (TMask_field& f, KEY key); + static bool codanagr_handler(TMask_field& f, KEY key); + static bool genera_handler (TMask_field& f, KEY key); + static bool codditta_hnd (TMask_field& f, KEY key); + static bool setta_nprog (TMask_field& f); + static bool imponibile_hnd (TMask_field& f, KEY key); + + bool QuadroC() const { return _tipoq == 'C'; } + bool QuadroD() const { return _tipoq == 'D'; } + bool QuadroD1() const { return _tipoq == '1'; } + bool QuadroE() const { return _tipoq == 'E'; } + bool QuadroE1() const { return _tipoq == '2'; } + bool QuadroE2() const { return _tipoq == '3'; } + + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode); + virtual bool changing_mask(int mode); + virtual void init_query_mode (TMask&); + virtual void init_query_insert_mode (TMask&); + virtual void on_config_change(); + + TMask* load_mask(int n); + bool generazione(); + bool azzera_quadro(); + void riempi_record(char,long,int,const real&,const real&, + const real&,const real&,const real&,bool, + const real& inps_perc); + void init_sort(); + void leggi_sort(TProgind&); + TRectype& look_causali(int c); + int anno_dic() const { return _anno_dic; } + bool scrivi_dati_per(TRectype& rec); + void genera_prospetto(int,real&,real&,real&); + + public: + TQuadroC_E2(char tipo); + virtual ~TQuadroC_E2() {}; +}; + +inline TQuadroC_E2& app() { return (TQuadroC_E2&) main_app(); } + +TQuadroC_E2::TQuadroC_E2(char tipo): _rel(NULL), _mode(0), _tipoq(tipo) +{ + memset(_msk, 0, sizeof(_msk)); +} + +bool TQuadroC_E2::changing_mask(int mode) +{ + if (mode == MODE_QUERY) + return _mode != MODE_QUERY; + else + return TRUE; +} + +TMask* TQuadroC_E2::get_mask(int mode) +{ + const int m = (mode == MODE_QUERY) ? 0 : 1; + _mode = mode; + return load_mask(m); +} + +TMask* TQuadroC_E2::load_mask(int n) +{ + if (_msk[n] != NULL) + return _msk[n]; + + TFilename name("771230"); + + if (n == 0) + { + switch (_tipoq) + { + case 'C': + name << 'd'; + break; + case 'D': + name << 'a'; + break; + case '1': + name << 'e'; + break; + case 'E' : + name << 'g'; + break; + case '2' : + name << 'i'; + break; + case '3': + name = "77qe2a"; + break; + default: + break; + } + } + else + { + switch (_tipoq) + { + case 'C': + name << 'f'; + break; + case 'D': + name << 'b'; + break; + case '1': + name << 'c'; + break; + case 'E': + name << 'h'; + break; + case '2' : + name << 'l'; + break; + case '3': + name = "77qe2b"; + break; + default: + break; + } + } + + TMask* m = new TMask(name); + + switch (n) + { + case 0: + if (m) + { + m->set_handler(F_CODDITTA, codditta_hnd); + m->set_handler(F_NPROG, nprog_handler); + m->set_handler(F_CODANAGRCOM, codanagr_handler); + m->set_handler(F_CODANAGRPERC, codanagr_handler); + if (_quadro != "E2") + m->set_handler(F_GENERA, genera_handler); + } + break; + case 1: + if (m) + { + m->set_handler(F_IMPONIBILE, imponibile_hnd); + m->set_handler(F_PERC, imponibile_hnd); + } + break; + default: + break; + } + m->disable(DLG_FINDREC); + + return _msk[n] = m; +} + +// Ricerca e output dell'ultimo nprog del percipiente scelto +bool TQuadroC_E2::setta_nprog(TMask_field& f) +{ + long nprog = 0L; + const char tipoa = f.mask().get(F_TIPOA)[0]; + const long codanagr = atol(f.get()); + const long codditta = get_firm_770(); + + TLocalisamfile quad(app()._file); + + quad.zero(); + quad.put("CODDITTA", codditta); + quad.put("TIPOA", tipoa); + quad.put("CODANAGR", codanagr); + + TRectype rec(quad.curr()); + + quad.read(); + + if (quad.curr() > rec) + { + f.mask().set(F_NPROG, nprog+1); + return TRUE; + } + + for ( ; !quad.eof(); quad.next()) + { + if (quad.curr() > rec) break; + nprog = quad.get_long("NPROG"); + } + + //app()._last_scheda = nprog; + + f.mask().set(F_NPROG, nprog+1); + return TRUE; +} + +bool TQuadroC_E2::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !f.mask().is_running()) + { + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + return TRUE; +} + +bool TQuadroC_E2::imponibile_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + if (f.dlg() == F_PERC) + { + real perc (f.get()); + if (perc == ZERO) + { + int causale = f.mask().get_int(F_CODCAUS); + TRectype& cau = app().look_causali(causale); + real aliquota = cau.get_real("R0"); + f.mask().set(F_PERC, aliquota.string()); + } + } + + real imponibile (f.mask().get(F_IMPONIBILE)); + real aliquota (f.mask().get(F_PERC)); + + real importo = ZERO; + + importo = imponibile * (aliquota/100); + + f.mask().set(app()._tipoq == 'C' ? F_RITENUTE : F_IMPORTO, importo.string()); + } + return TRUE; +} + +void TQuadroC_E2::init_sort() +{ + _rig = new righe_pag; + _sort = new TSort(sizeof(righe_pag)); + + _sort->addsortkey ((char*)&(_rig->tipoa) - (char*)&(_rig->tipoa), 1); + _sort->addsortkey ((char*)&(_rig->codan) - (char*)&(_rig->tipoa), 5); + _sort->addsortkey ((char*)&(_rig->codcau) - (char*)&(_rig->tipoa), 2); + _sort->addsortkey ((char*)&(_rig->perc) - (char*)&(_rig->tipoa), 6); + _sort->init(); +} + +void TQuadroC_E2::riempi_record(char t,long ca,int cc,const real& p, + const real& so,const real& im, + const real& ri,const real& co,bool acim, + const real& inps) +{ + _rig->tipoa = t; + sprintf(_rig->codan, "%5ld", ca); + sprintf(_rig->codcau, "%02d", cc); +// 22.5.96 Cambiato il formato @@@,@@ con @.@@@,@@ +// Ci vuole anche il punto delle migliaia se real::string() sbaglia +// a calcolare il numero di decimali. +// TString16 pp(p.string("@.@@@,@@")); + double ppd = atof(p.string()); + sprintf(_rig->perc, "%.2f", ppd); + _rig->somme = so; + _rig->impo = im; + _rig->rite = ri; + _rig->comp = co; + _rig->acim = acim; + _rig->inps = inps; + _sort->sort((const char*)_rig); +} + +bool TQuadroC_E2::genera_handler(TMask_field& f , KEY k) +{ + if (k == K_SPACE) + { + app().generazione(); + app()._registra = TRUE; // Genera i riporti alla fine + } + return TRUE; +} + +TRectype& TQuadroC_E2::look_causali(int codc) +{ + TString16 dep; + _ca7->zero(); + dep.format("%02d", codc); + _ca7->put("CODTAB", dep); + _ca7->read(); + if (_ca7->bad()) + _ca7->zero(); + return _ca7->curr(); +} + +bool TQuadroC_E2::generazione() +{ + if (!yesno_box("Conferma la generazione ?")) + return FALSE; + + init_sort(); + + TToken_string exp; + exp.add("CODDITTA=CODDITTA"); + exp.add("TIPOA=TIPOA"); + exp.add("CODANAGR=CODANAGR"); + exp.add("NPROG=NPROG"); + + TRelation rel (LF_SCPERC); + rel.add(LF_RPAG, exp, 1); + TString16 filt; filt.format("CODDITTA=%ld", get_firm_770()); + + TCursor cur (&rel,filt,1); + + azzera_quadro(); + + TLocalisamfile& scperc = rel.lfile(); + TLocalisamfile& rpag = rel.lfile(LF_RPAG); + cur = 0L; + const long nitems = cur.items(); + + TProgind p(nitems ? nitems : 1, "Generazione in corso...", FALSE, TRUE, 70); + long codan, codditta; + char tipoa; + int codcaus, nprog; + TString16 qua; + TDate datapag; + real perc=ZERO,somme=ZERO,impo=ZERO,rite=ZERO,comp=ZERO,inps=ZERO; + + for (; cur.pos() < nitems; ++cur) + { + p.addstatus(1); + + codditta = scperc.get_long(SPR_CODDITTA); + tipoa = scperc.get(SPR_TIPOA)[0]; + codan = scperc.get_long(SPR_CODANAGR); + codcaus = scperc.get_int(SPR_CODCAUS); + nprog = scperc.get_int(SPR_NPROG); + + TRectype cau = look_causali(codcaus); + TString16 qua = cau.get("S1"); + bool acc_imp = cau.get_bool("B0"); + + if (_tipoq == 'D' && qua != "D") continue; + if (_tipoq == 'C' && qua != "C") continue; + if (_tipoq == '1' && qua != "D1") continue; + if (_tipoq == 'E' && qua != "E") continue; + if (_tipoq == '2' && qua != "E1") continue; + + if (cur.is_first_match(LF_RPAG)) + { + TRecnotype nrec = rpag.recno(); + rpag.zero(); + rpag.setkey(1); + rpag.put(PAG_CODDITTA, (long)codditta); + rpag.put(PAG_TIPOA, tipoa); + rpag.put(PAG_CODANAGR, (long)codan); + rpag.put(PAG_NPROG, nprog); + TRectype recc (rpag.curr()); + for (rpag.read(_isgteq); !rpag.eof() ;rpag.next()) + { + TRectype rec (rpag.curr()); + if (rec > recc) break; + datapag = rpag.get(PAG_DATAPAG); + if (datapag.year() != _anno_dic) + continue; + //codtrib = cau.get_int("I0"); + perc = rpag.get_real(PAG_PERC); + somme = rpag.get_real(PAG_SPESA); + rite = rpag.get_real(PAG_RITENUTA); + impo = rpag.get_real(PAG_IMPONIBILE); + comp = rpag.get_real(PAG_COMPENSO); + inps = rpag.get_real(PAG_INPSPERC); + if (perc==ZERO && comp==ZERO && rite==ZERO && impo==ZERO + && somme==ZERO) + continue; + riempi_record(tipoa,codan,codcaus,perc,somme,impo,rite,comp,acc_imp,inps); + } + rpag.readat(nrec); + } + } + _sort->endsort(); + + leggi_sort(p); + + delete _rig; + delete _sort; + return TRUE; +} + +bool TQuadroC_E2::azzera_quadro() +{ + const char* title; + + if (_tipoq == 'C') + title = "Azzeramento quadro C"; + else + if (_tipoq == 'D') + title = "Azzeramento quadro D"; + else + if (_tipoq == '1') + title = "Azzeramento quadro D1"; + else + if (_tipoq == 'E') + title = "Azzeramento quadro E"; + else + title = "Azzeramento quadro E1"; + + +// Tutto cio' solo per contare gli items e far andare correttamente +// il "termometro" (sic..) + TRelation rel (_file); + TString16 filt; filt.format("CODDITTA=%ld", get_firm_770()); + TCursor cur (&rel,filt,1); +// TLocalisamfile& quadro = rel.lfile(); + TLocalisamfile quadro(_file); + cur = 0L; + const long nitems = cur.items(); + + TProgind prog(nitems, title, FALSE, TRUE); + + quadro.zero(); + quadro.put("CODDITTA", (long)get_firm_770()); + TRectype dep(quadro.curr()); + + for (quadro.read(); !quadro.eof(); quadro.next()) + { + prog.addstatus(1); + if (quadro.curr() > dep) break; + quadro.read(_isequal, _lock); + quadro.remove(); + } + + if (_tipoq == '2') + { + TLocalisamfile quadro(LF_PROSPE1); + + TProgind prog(quadro.items(), "Azzeramento prospetto del quadro E1", FALSE, TRUE); + + quadro.zero(); + quadro.put("CODDITTA", (long)get_firm_770()); + TRectype dep(quadro.curr()); + + for (quadro.read(); !quadro.eof(); quadro.next()) + { + prog.addstatus(1); + if (quadro.curr() > dep) break; + quadro.read(_isequal, _lock); + quadro.remove(); + } + } + return TRUE; +} + +void TQuadroC_E2::genera_prospetto(int cau, real& comp, real& impo, real& rite) +{ + TLocalisamfile pr (LF_PROSPE1); + + pr.setkey(1); + pr.zero(); + pr.put(PRE_CODDITTA, (long)get_firm_770()); + pr.put(PRE_CODCAUS, cau); + if (pr.read() == NOERR) + { + comp += pr.get_real(PRE_COMPENSO); + impo += pr.get_real(PRE_IMPONIBILE); + rite += pr.get_real(PRE_RITENUTA); + + pr.put(PRE_COMPENSO, comp); + pr.put(PRE_IMPONIBILE, impo); + pr.put(PRE_RITENUTA, rite); + pr.rewrite(); + } + else + { + pr.put(PRE_CODDITTA, (long)get_firm_770()); + pr.put(PRE_CODCAUS, cau); + pr.put(PRE_COMPENSO, comp); + pr.put(PRE_IMPONIBILE, impo); + pr.put(PRE_RITENUTA, rite); + pr.write(); + } +} + +void TQuadroC_E2::leggi_sort(TProgind& p) +{ + TLocalisamfile qd(_file); + const char* buf; + TString16 keyp, key, perc, perc_p; + char tipoa, tipoa_p; + long codanag, codanag_p; + int codcaus_p, codcaus, nprog; + real tot_somme=ZERO,tot_impo=ZERO,tot_rite=ZERO,tot_comp=ZERO, rQCInps=ZERO; + real rTotQCInps = ZERO; + bool esiste_record = FALSE; + bool acc_imp = FALSE; + struct righe_pag* rp; + + keyp = key = ""; + nprog = 1; + tot_somme = tot_impo = tot_rite = tot_comp = ZERO; + + while ((buf = _sort->retrieve()) != NULL) + { + p.addstatus(1); + esiste_record = TRUE; + rp = (struct righe_pag*)buf; + tipoa = rp->tipoa; + codanag = atol(rp->codan); + codcaus = atoi(rp->codcau); + perc = rp->perc; + acc_imp = rp->acim; + rQCInps = rp->inps; + + if (QuadroE1() && !acc_imp) + { + genera_prospetto(codcaus,rp->comp,rp->impo,rp->rite); + esiste_record = FALSE; + } + else + { + key.format("%c%5ld%2d%s", tipoa, codanag, codcaus, (const char*)perc); + if (key != keyp && keyp != "") + { + qd.zero(); + qd.put("CODDITTA", (long)get_firm_770()); + qd.put("TIPOA", tipoa_p); + qd.put("CODANAGR", (long)codanag_p); + qd.put("CODCAUS", codcaus_p); + qd.put("NPROG", nprog++); + +// 12.6.96 aggiunto contributo inps + if (QuadroC()) + qd.put("CONTSSN", rQCInps); + + if (QuadroD() || QuadroC()) + qd.put("SOMME", tot_somme + tot_comp - tot_impo); + else + if (QuadroD1()) + { + qd.put("QUOTAPRO", tot_comp - tot_impo); + qd.put("SPESEANT", tot_somme); + } + else + if (QuadroE()) + qd.put("SOMME", tot_somme); + else + if (QuadroE1()) + qd.put("SOMME", tot_comp); + + if (QuadroE1()) + qd.put("AMMONTARE", tot_impo); + else + qd.put("IMPONIBILE", tot_impo); + + if (QuadroC()) + qd.put("RITENUTE", tot_rite); + else + qd.put("IMPORTO", tot_rite); + + qd.put("PERC", perc_p); + +// if (_tipoq != 'E' && _tipoq != '2') + if (!QuadroE() && !QuadroE1()) + qd.put("TOTALE", tot_comp + tot_somme); + +// if (_tipoq == '2') + if (QuadroE1()) + qd.put("NETTO", tot_comp - tot_rite); + else + qd.put("NETTO", tot_impo - tot_rite); + qd.write(); + tot_impo = tot_somme = tot_rite = tot_comp = ZERO; + } + + tot_somme += rp->somme; + tot_rite += rp->rite; + tot_impo += rp->impo; + tot_comp += rp->comp; + rTotQCInps += rQCInps; + + if (tipoa_p != tipoa || codanag != codanag_p) + nprog = 1; + + tipoa_p = tipoa; + codanag_p = codanag; + codcaus_p = codcaus; + perc_p = perc; + + keyp.format("%c%5ld%2d%s", tipoa_p, codanag_p, codcaus_p, (const char*)perc_p); + } + } // while (retrieve() != NULL) + + if (esiste_record) + { + qd.zero(); + qd.put("CODDITTA", (long)get_firm_770()); + qd.put("TIPOA", tipoa_p); + qd.put("CODANAGR", (long)codanag_p); + qd.put("CODCAUS", codcaus_p); + qd.put("NPROG", nprog++); + +// if (_tipoq == 'D' || _tipoq == 'C') + if (QuadroD() || QuadroC()) + qd.put("SOMME", tot_somme + tot_comp - tot_impo); + else +// if (_tipoq == '1') + if (QuadroD1()) + { + qd.put("QUOTAPRO", tot_comp - tot_impo); + qd.put("SPESEANT", tot_somme); + } + else +// if (_tipoq == 'E') + if (QuadroE()) + qd.put("SOMME", tot_somme); + else +// if (_tipoq == '2') + if (QuadroE1()) + qd.put("SOMME", tot_comp); + +// if (_tipoq == '2') + if (QuadroE1()) + qd.put("AMMONTARE", tot_impo); + else + qd.put("IMPONIBILE", tot_impo); + +// if (_tipoq == 'C') + if (QuadroC()) + qd.put("RITENUTE", tot_rite); + else + qd.put("IMPORTO", tot_rite); + + qd.put("PERC", perc_p); + +// 12.6.96 aggiunto contributo inps + if (QuadroC()) + qd.put("CONTSSN", rTotQCInps); + + +// if (_tipoq != 'E' && _tipoq != '2') + if (!QuadroE() && !QuadroE1()) + qd.put("TOTALE", tot_comp + tot_somme); + +// if (_tipoq == '2') + if (QuadroE1()) + qd.put("NETTO", tot_comp - tot_rite); + else + qd.put("NETTO", tot_impo - tot_rite); + + qd.write(); + } +} + +bool TQuadroC_E2::codanagr_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + const long codanagr = atol(f.get()); + const char tipoa = m.get(F_TIPOA)[0]; +// 12.6.96 Non lascia andare avanti se il perc. non esiste + if (!esiste_perc(tipoa, codanagr)) + return f.warning_box("Percipiente inesistente"); + if (app()._quadro != "E2") + f.mask().disable(F_GENERA); + TString16 dummy(f.get()); + if (dummy.not_empty()) + setta_nprog(f); + } + return TRUE; +} + +// Passa al modo inserimento/modifica. +bool TQuadroC_E2::nprog_handler(TMask_field& f, KEY key) +{ + if (!f.mask().is_running()) return TRUE; + + if (key == K_TAB) + { + const int nprog = atoi(f.get()); + if (nprog==0) return TRUE; + f.mask().stop_run(K_AUTO_ENTER); // entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure + // inserimento (se trova che non esiste) + } + return TRUE; +} + +bool TQuadroC_E2::scrivi_dati_per(TRectype& rec) +{ + TLocalisamfile dati_per(LF_PERC); + const long codditta = rec.get_long("CODDITTA"); + char tipoa = rec.get_char("TIPOA"); + const long codanagr = rec.get_long("CODANAGR"); + + dati_per.zero(); + dati_per.put("CODDITTA", codditta); + dati_per.put("TIPOA", tipoa); + dati_per.put("CODANAGR", codanagr); + + const bool preesistente = (dati_per.read() == NOERR); + + if (!preesistente) + { + dati_per.zero(); + dati_per.put("CODDITTA", codditta); + dati_per.put("TIPOA", tipoa); + dati_per.put("CODANAGR", codanagr); + + dati_per.write(); + } + + return preesistente; +} + +int TQuadroC_E2::rewrite(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->rewrite(); + scrivi_dati_per(_rel->curr()); + _registra = TRUE; + return err; +} + +int TQuadroC_E2::write(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->write(); + scrivi_dati_per(_rel->curr()); + + _registra = TRUE; + + return err; +} + +bool TQuadroC_E2::remove() +{ + _registra = TRUE; + return TRelation_application::remove(); +} + +bool TQuadroC_E2::user_create() +{ + switch (_tipoq) + { + case 'C': + _file = LF_QUAC; + _quadro = "C"; + break; + case 'D': + _file = LF_QUAD; + _quadro = "D"; + break; + case '1': + _file = LF_QUAD1; + _quadro = "D1"; + break; + case 'E': + _file = LF_QUAE; + _quadro = "E"; + break; + case '2': + _file = LF_QUAE1; + _quadro = "E1"; + break; + case '3': + _file = LF_QUAE2; + _quadro = "E2"; + break; + default: + break; + } + + _qd = new TLocalisamfile(_file); + _rel = new TRelation(_file); + _rpag = new TLocalisamfile(LF_RPAG); + _ca7 = new TTable ("%CA7"); + + set_search_field(F_CODANAGRPERC); + + _registra = FALSE; + + load_mask(0); + + return TRUE; +} + +bool TQuadroC_E2::user_destroy() +{ + if (_msk[1] != NULL) delete _msk[1]; + if (_msk[0] != NULL) delete _msk[0]; + + TString16 quadro = ""; + + switch (_tipoq) + { + case 'C': + quadro << "C"; + break; + case 'D': + quadro << "D"; + break; + case '1': + quadro << "D1"; + break; + case 'E': + quadro << "E"; + break; + case '2': + quadro << "E1"; + break; + case '3': + quadro << "E2"; + break; + default: + break; + } + + if (_registra) + _rip.set(quadro); + + delete _rel; + delete _qd; + delete _rpag; + delete _ca7; + + return TRUE; +} + +void TQuadroC_E2::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL); +} + +void TQuadroC_E2::init_query_mode(TMask& m) +{ + m.set(F_ANNODIC, _anno_dic); + if (_quadro != "E2") + m.enable(F_GENERA); + +// forza il ricalcolo dell'ultimo numero disponibile + TString16 dummy(m.get(F_NPROG)); + if (dummy.not_empty()) + setta_nprog(m.field(F_NPROG)); + + m.send_key(K_SHIFT+K_CTRL+'h', -1); // nasconde (hide) group 1 - Scelta ANAGR + m.send_key(K_SHIFT+K_CTRL+'s', -2); // abilita (show) group 2 - Ricerca su DATI PERC +} + +void TQuadroC_E2::init_query_insert_mode(TMask& m) +{ + m.set(F_ANNODIC, _anno_dic); + + m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 3 Nasconde ricerca su PERC + m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR +} + +int quadriC_E2(int argc, char* argv[]) +{ + const char tipo = toupper(*argv[2]); + const char* title = "Quadro D"; + TQuadroC_E2 a(tipo); + switch (tipo) + { + case '1': + title = "Quadro D1"; + break; + case 'C': + title = "Quadro C"; + break; + case 'E': + title = "Quadro E"; + break; + case '2': + title = "Quadro E1"; + break; + case '3': + title = "Quadro E2"; + break; + default: + break; + } + a.run(argc, argv, title); + return TRUE; +} diff --git a/m770/771230a.h b/m770/771230a.h new file mode 100755 index 000000000..0748269b1 --- /dev/null +++ b/m770/771230a.h @@ -0,0 +1,63 @@ +#ifndef _771230A_H +#define _771230A_H + +// 71230a +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_TIPOA 103 +#define F_CODANAGR 104 +#define F_CODANAGRCOM 105 +#define F_ANNODIC 106 +#define F_RAGSOC 107 +#define F_CODANAGRPERC 108 +#define F_GENERA 109 +#define F_RAGSOCCOM 110 +#define F_RAGSOCPER 111 +#define F_NPROG 112 + +// 71230b +#define F_CODCAUS 113 +#define F_DESCRCAUS 114 +#define F_CODTRIB 115 +#define F_IC 116 +#define F_TOTALE 117 +#define F_SOMME 118 +#define F_IMPONIBILE 119 +#define F_PERC 120 +#define F_IMPORTO 121 +#define F_NETTO 122 +#define F_RI 123 +#define F_RA 124 +#define F_QUOTAPRO 125 +#define F_SPESEANT 126 +#define F_TIPOAF 127 + +//771230f +#define F_CT 150 +#define F_RITENUTE 151 + +//771230i.uml +#define F_PROSPETTO 155 + +//771230m.uml (prospetto E1) +#define F_RITENUTA 160 +#define F_COMPENSO 161 +#define F_CODCAUS2 162 +#define F_CODANAGR2 170 +#define F_RAGSOC2 171 +#define F_HPERC 172 +#define PE1F_CODDITTA 181 + +// quadro e2 +#define F_ROPE 173 +#define F_SOGGRIT 174 + +// 22.5.96 - Aggiunte per 1996 +// Quadro C +#define QCF_TS 175 +#define QCF_CONTSSN 176 +#define QDF_CODCAUSD 178 +#define QD1F_CODCAUSD1 179 + +#endif + diff --git a/m770/771230a.uml b/m770/771230a.uml new file mode 100755 index 000000000..d1c7bd497 --- /dev/null +++ b/m770/771230a.uml @@ -0,0 +1,181 @@ +#include "771230a.h" + +TOOLBAR "" 0 18 0 4 + +BUTTON F_GENERA 21 2 +BEGIN + PROMPT -13 -3 "~Generazione" +END + +#include + +ENDPAGE + +PAGE "MODULO 770 - QUADRO D" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAD->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati percipiente" +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 8 "" + ITEM "F|Fisica" + MESSAGE COPY,F_TIPOAF + ITEM "G|Giuridica" + MESSAGE COPY,F_TIPOAF + FIELD LF_QUAD->TIPOA + CHECKTYPE REQUIRED + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 1 9 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "H" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAD->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGRPERC 5 +BEGIN + PROMPT 15 8 "" + USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA)) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRPERC + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRPERC CODANAGR + OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC + MESSAGE COPY, F_CODANAGR + //FLAGS "P" + ADD RUN 775 -0 + GROUP 2 +END + +NUMBER F_CODANAGRCOM 5 +BEGIN + PROMPT 15 8 "" + USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRCOM + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + MESSAGE COPY, F_CODANAGR + ADD RUN BA4 -1 + //FLAGS "HP" + FLAGS "H" + GROUP 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 8 "" + FLAGS "H" +END + +STRING F_RAGSOCCOM 50 +BEGIN + PROMPT 25 8 "" + USE LF_ANAG KEY 2 + INPUT RAGSOC F_RAGSOCCOM + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_TIPOA TIPOA + //FLAGS "P" + ADD RUN BA4 -1 + MESSAGE COPY, F_RAGSOC + GROUP 1 +END + +STRING F_RAGSOCPER 50 +BEGIN + PROMPT 25 8 "" + //FLAGS "DP" + FLAGS "D" + GROUP 2 + MESSAGE COPY, F_RAGSOC +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + KEY 1 + FIELD LF_QUAD->NPROG + USE LF_QUAD + JOIN LF_ANAG TO LF_QUAD KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR SELECT + INPUT NPROG F_NPROG + DISPLAY "N°" NPROG + DISPLAY "Tipo" TIPOA + DISPLAY "Codice@10" CODANAGR + //DISPLAY "Ragione@50" LF_ANAG->RAGSOC + DISPLAY "Causale" CODCAUS + DISPLAY "Totale@15" TOTALE + DISPLAY "Somme n/sogg rit" SOMME + DISPLAY "Imponibile@15" IMPONIBILE + DISPLAY "Aliquota" PERC + DISPLAY "Importo@15" IMPORTO + DISPLAY "Netto corrisposto" NETTO + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_NPROG NPROG +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771230b.uml b/m770/771230b.uml new file mode 100755 index 000000000..969b08f77 --- /dev/null +++ b/m770/771230b.uml @@ -0,0 +1,233 @@ +#include "771230a.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +// Lista modifiche: +// 22.5.96 Output di S2 (causale D) invece di S0 (descrizione) + +PAGE "Quadro D" -1 -1 78 18 + +NUMBER F_CODDITTA 5 +BEGIN + FLAGS "H" + FIELD LF_QUAD->CODDITTA + KEY 1 +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 3 0 "" + FIELD LF_QUAD->TIPOA + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "D" + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 3 1 "" + ITEM "F|Fisica" + MESSAGE SHOW,F_IC + ITEM "G|Giuridica" + MESSAGE HIDE,F_IC|RESET,F_IC + FLAGS "HG" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 17 0 "" + FIELD LF_QUAD->CODANAGR + MESSAGE COPY,F_CODANAGR2 + FLAGS "D" + KEY 1 +END + +NUMBER F_CODANAGR2 5 +BEGIN + USE LF_ANAG KEY 1 + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_RAGSOC2 RAGSOC + CHECKTYPE REQUIRED + FLAGS "HG" +END + +STRING F_RAGSOC2 45 +BEGIN + PROMPT 24 0 "" + FLAGS "D" +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 71 0 "" + FIELD LF_QUAD->NPROG + FLAGS "D" + KEY 1 +END + +STRING F_CODCAUS 2 +BEGIN + PROMPT 3 3 "Causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="D")) + INPUT CODTAB F_CODCAUS + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Causale D" S2 + DISPLAY "Codice tributo" I0 + DISPLAY "I.C." B1 + OUTPUT F_CODCAUS CODTAB + OUTPUT F_CODTRIB I0 + OUTPUT F_DESCRCAUS S2 + OUTPUT QDF_CODCAUSD S2 + OUTPUT F_PERC R0 + CHECKTYPE REQUIRED + FLAGS "Z" + WARNING "Manca la causale" + FIELD LF_QUAD->CODCAUS + ADD RUN 773 -3 %CA7 +END + +STRING QDF_CODCAUSD 1 +BEGIN + PROMPT 17 3 "" + FLAGS "D" +END + +LISTBOX F_DESCRCAUS 55 +BEGIN + PROMPT 20 3 "" + ITEM "|" + ITEM "A|Prestazione di lavoro autonomo rientranti nell'esercizio di arte o professione abituale" + ITEM "B|Per prestazioni rese da amministratori, sindaci e revisori di società, associazione ed altri enti con o senza personalità giuridica" + ITEM "C|Per prestazioni rese da collaboratori a giornali, riviste, enciclopedie e simili" + ITEM "D|Per prestazioni rese da partecipanti a collegi e commissioni" + ITEM "E|Per prestazioni rese dagli sportivi con contratto di lavoro autonomo" + ITEM "F|Per prestazioni rese nell'ambito di rapporti di collaborazione coordinata e continuativa diversi da quelli sopra elencati" + ITEM "G|Per l'utilizzazione economica da parte dell'autore o dell'inventore, di opere dell'ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo industriale.." + ITEM "H|A titolo di utili derivanti da contratti di associazione in partecipazione e da contratti di cointeresenza quando l'apporto è costituito esclusivamente dalla prestazione di lavoro" + ITEM "I|A titolo di utili spettanti ai soci promotori ed ai soci fondatori delle società di capitali" + ITEM "L|Per la levata di protesti cambiari da parte dei segretari comunali" + ITEM "M|Per l'utilizzazione economica da parte di soggetto diverso dall'autore o dall'inventore di opere dell'ingegno, brevetti, formule .." + ITEM "N|A titolo di indennità corrisposte per la cessazione di rapporti di collaborazione coordinata e continuativa, se il diritto all'indennità risulta da atto di data certa anteriore .." + ITEM "P|A titolo di indennità corrisposte per la cessazione da funzioni notarili" + ITEM "R|A titolo di indennità corrisposte per la cessazione di attività sportiva professionale" + ITEM "S|A titolo di indennità di trasferta o di rimborso forfetario di spese spettanti a soggetti che svolgono attività sportiva dilettantistica di cui L.25.3.86 n.80" + FLAGS "D" +END + +NUMBER F_CODTRIB 4 +BEGIN + PROMPT 11 4 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 58 5 +BEGIN + PROMPT 3 6 "@bAmmontare corrisposto" +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 8 "Totale" +END + +NUMBER F_TOTALE 15 +BEGIN + PROMPT 5 9 "" + FIELD LF_QUAD->TOTALE + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_IMPORTO|K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 24 7 "Somme non soggette" +END + +TEXT DLG_NULL +BEGIN + PROMPT 24 8 "a ritenuta" +END + +NUMBER F_SOMME 15 +BEGIN + PROMPT 24 9 "" + FIELD LF_QUAD->SOMME + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_IMPORTO|K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 43 8 "Imponibile" +END + +NUMBER F_IMPONIBILE 15 +BEGIN + PROMPT 43 9 "" + FIELD LF_QUAD->IMPONIBILE + PICTURE "." + FLAGS "DR" + NUM_CALC {#F_TOTALE-#F_SOMME} +END + +GROUPBOX DLG_NULL 39 5 +BEGIN + PROMPT 3 11 "@bRitenute operate" +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 13 "Aliquota" +END + +NUMBER F_PERC 6 2 +BEGIN + PROMPT 5 14 "" + FIELD LF_QUAD->PERC + MESSAGE K_TAB,F_IMPORTO + PICTURE ".2" + MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 24 13 "Importo" +END + +NUMBER F_IMPORTO 15 +BEGIN + PROMPT 24 14 "" + FIELD LF_QUAD->IMPORTO + PICTURE "." + FLAGS "R" + //NUM_CALC {#F_IMPONIBILE*#F_PERC/100} + MESSAGE K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 43 13 "Netto corrisposto" +END + +NUMBER F_NETTO 15 +BEGIN + PROMPT 43 14 "" + FIELD LF_QUAD->NETTO + PICTURE "." + FLAGS "DR" + NUM_CALC {#F_IMPONIBILE-#F_IMPORTO} +END + + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230e.uml b/m770/771230e.uml new file mode 100755 index 000000000..08230e842 --- /dev/null +++ b/m770/771230e.uml @@ -0,0 +1,182 @@ +#include "771230a.h" + +TOOLBAR "" 0 18 0 4 + +BUTTON F_GENERA 21 2 +BEGIN + PROMPT -13 -3 "~Generazione" +END + +#include + +ENDPAGE + +PAGE "MODULO 770 - QUADRO D1" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAD1->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati percipiente" +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 8 "" + ITEM "F|Fisica" + MESSAGE COPY,F_TIPOAF + ITEM "G|Giuridica" + MESSAGE COPY,F_TIPOAF + FIELD LF_QUAD1->TIPOA + CHECKTYPE REQUIRED + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 1 9 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "H" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAD1->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGRPERC 5 +BEGIN + PROMPT 15 8 "" + USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA)) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRPERC + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRPERC CODANAGR + OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC + MESSAGE COPY, F_CODANAGR + //FLAGS "P" + ADD RUN 775 -0 + GROUP 2 +END + +NUMBER F_CODANAGRCOM 5 +BEGIN + PROMPT 15 8 "" + USE LF_ANAG KEY 1 + INPUT TIPOA F_TIPOA SELECT (TIPOA=#F_TIPOA) + INPUT CODANAGR F_CODANAGRCOM + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + MESSAGE COPY, F_CODANAGR + ADD RUN BA4 -1 + //FLAGS "HP" + FLAGS "H" + GROUP 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 8 "" + FLAGS "H" +END + +STRING F_RAGSOCCOM 50 +BEGIN + PROMPT 25 8 "" + USE LF_ANAG KEY 2 + INPUT RAGSOC F_RAGSOCCOM + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_TIPOA TIPOA + //FLAGS "P" + ADD RUN BA4 -1 + MESSAGE COPY, F_RAGSOC + GROUP 1 +END + +STRING F_RAGSOCPER 50 +BEGIN + PROMPT 25 8 "" + //FLAGS "DP" + FLAGS "D" + GROUP 2 + MESSAGE COPY, F_RAGSOC +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + KEY 1 + FIELD LF_QUAD1->NPROG + USE LF_QUAD1 + JOIN LF_ANAG TO LF_QUAD1 KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR SELECT + INPUT NPROG F_NPROG + DISPLAY "N°" NPROG + DISPLAY "Tipo" TIPOA + DISPLAY "Codice@10" CODANAGR + //DISPLAY "Ragione@50" LF_ANAG->RAGSOC + DISPLAY "Causale" CODCAUS + DISPLAY "Totale@15" TOTALE + DISPLAY "Quota provvigioni" QUOTAPRO + DISPLAY "Spese anticipate" SPESEANT + DISPLAY "Imponibile@15" IMPONIBILE + DISPLAY "Aliquota" PERC + DISPLAY "Importo@15" IMPORTO + DISPLAY "Netto corrisposto" NETTO + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_NPROG NPROG +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771230f.uml b/m770/771230f.uml new file mode 100755 index 000000000..b45e1e502 --- /dev/null +++ b/m770/771230f.uml @@ -0,0 +1,228 @@ +#include "771230a.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Quadro C" -1 -1 78 18 + +NUMBER F_CODDITTA 5 +BEGIN + FLAGS "H" + FIELD LF_QUAC->CODDITTA + KEY 1 +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 3 0 "" + FIELD LF_QUAC->TIPOA + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "D" + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 3 1 "" + ITEM "F|Fisica" + MESSAGE SHOW,F_CT + ITEM "G|Giuridica" + MESSAGE HIDE,F_CT|RESET,F_CT + FLAGS "HG" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 17 0 "" + FIELD LF_QUAC->CODANAGR + MESSAGE COPY,F_CODANAGR2 + FLAGS "D" + KEY 1 +END + +NUMBER F_CODANAGR2 5 +BEGIN + USE LF_ANAG KEY 1 + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_RAGSOC2 RAGSOC + CHECKTYPE REQUIRED + FLAGS "HG" +END + +STRING F_RAGSOC2 45 +BEGIN + PROMPT 24 0 "" + FLAGS "D" +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 71 0 "" + FIELD LF_QUAC->NPROG + FLAGS "D" + KEY 1 +END + +STRING F_CODCAUS 2 +BEGIN + PROMPT 3 3 "Causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="C")) + INPUT CODTAB F_CODCAUS + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + DISPLAY "C.T." B2 + DISPLAY "T.S." B3 + OUTPUT F_CODCAUS CODTAB + OUTPUT F_CODTRIB I0 + OUTPUT F_DESCRCAUS S0 + OUTPUT F_CT B2 + OUTPUT F_PERC R0 + OUTPUT QCF_TS B3 + CHECKTYPE REQUIRED + FLAGS "Z" + WARNING "Manca la causale" + FIELD LF_QUAC->CODCAUS + ADD RUN 773 -3 %CA7 +END + +STRING F_DESCRCAUS 58 +BEGIN + PROMPT 17 3 "" + FLAGS "D" +END + +NUMBER F_CODTRIB 4 +BEGIN + PROMPT 11 4 "" + FLAGS "D" +END + +BOOLEAN F_CT +BEGIN + PROMPT 17 4 "C.T." + FLAGS "D" +END + +BOOLEAN QCF_TS +BEGIN + PROMPT 25 4 "T.S." + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 7 "Ammontare" +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 8 "corrisposto" +END + +NUMBER F_TOTALE 15 +BEGIN + PROMPT 5 9 "" + FIELD LF_QUAC->TOTALE + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_RITENUTE|K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 24 8 "Contributi S.S.N." +END + +NUMBER QCF_CONTSSN 15 +BEGIN + PROMPT 24 9 "" + FIELD LF_QUAC->CONTSSN + PICTURE "." + FLAGS "R" +// MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_RITENUTE|K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 43 7 "Somme non soggette" +END + +TEXT DLG_NULL +BEGIN + PROMPT 43 8 "a ritenuta" +END + +NUMBER F_SOMME 15 +BEGIN + PROMPT 43 9 "" + FIELD LF_QUAC->SOMME + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_RITENUTE|K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 61 8 "Imponibile" +END + +NUMBER F_IMPONIBILE 15 +BEGIN + PROMPT 61 9 "" + FIELD LF_QUAC->IMPONIBILE + PICTURE "." + FLAGS "DR" + NUM_CALC {#F_TOTALE-#F_SOMME} +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 12 "Aliquota" +END + +NUMBER F_PERC 6 2 +BEGIN + PROMPT 5 13 "" + FIELD LF_QUAC->PERC + MESSAGE K_TAB,F_RITENUTE + PICTURE ".2" + MESSAGE K_TAB,F_RITENUTE|K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 24 12 "Importo" +END + +NUMBER F_RITENUTE 15 +BEGIN + PROMPT 24 13 "" + FIELD LF_QUAC->RITENUTE + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 43 12 "Netto corrisposto" +END + +NUMBER F_NETTO 15 +BEGIN + PROMPT 43 13 "" + FIELD LF_QUAC->NETTO + PICTURE "." + FLAGS "DR" + NUM_CALC {#F_IMPONIBILE-#F_RITENUTE} +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230g.uml b/m770/771230g.uml new file mode 100755 index 000000000..b3892ad90 --- /dev/null +++ b/m770/771230g.uml @@ -0,0 +1,180 @@ +#include "771230a.h" + +TOOLBAR "" 0 18 0 4 + +BUTTON F_GENERA 21 2 +BEGIN + PROMPT -13 -3 "~Generazione" +END + +#include + +ENDPAGE + +PAGE "MODULO 770 - QUADRO E" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAE->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati percipiente" +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 8 "" + ITEM "F|Fisica" + MESSAGE COPY,F_TIPOAF + ITEM "G|Giuridica" + MESSAGE COPY,F_TIPOAF + FIELD LF_QUAE->TIPOA + CHECKTYPE REQUIRED + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 1 9 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "H" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAE->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGRPERC 5 +BEGIN + PROMPT 15 8 "" + USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA)) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRPERC + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRPERC CODANAGR + OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC + MESSAGE COPY, F_CODANAGR + //FLAGS "P" + ADD RUN 775 -0 + GROUP 2 +END + +NUMBER F_CODANAGRCOM 5 +BEGIN + PROMPT 15 8 "" + USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRCOM + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + MESSAGE COPY, F_CODANAGR + ADD RUN BA4 -1 + //FLAGS "HP" + FLAGS "H" + GROUP 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 8 "" + FLAGS "H" +END + +STRING F_RAGSOCCOM 50 +BEGIN + PROMPT 25 8 "" + USE LF_ANAG KEY 2 + INPUT RAGSOC F_RAGSOCCOM + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_TIPOA TIPOA + //FLAGS "P" + ADD RUN BA4 -1 + MESSAGE COPY, F_RAGSOC + GROUP 1 +END + +STRING F_RAGSOCPER 50 +BEGIN + PROMPT 25 8 "" + //FLAGS "DP" + FLAGS "D" + GROUP 2 + MESSAGE COPY, F_RAGSOC +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + KEY 1 + FIELD LF_QUAE->NPROG + USE LF_QUAE + JOIN LF_ANAG TO LF_QUAE KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR SELECT + INPUT NPROG F_NPROG + DISPLAY "N°" NPROG + DISPLAY "Tipo" TIPOA + DISPLAY "Codice@10" CODANAGR + //DISPLAY "Ragione@50" LF_ANAG->RAGSOC + DISPLAY "Causale" CODCAUS + DISPLAY "Imponibile@15" IMPONIBILE + DISPLAY "Aliquota" PERC + DISPLAY "Importo@15" IMPORTO + DISPLAY "Netto corrisposto" NETTO + DISPLAY "Somme n/sogg rit" SOMME + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_NPROG NPROG +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771230h.uml b/m770/771230h.uml new file mode 100755 index 000000000..3fc349149 --- /dev/null +++ b/m770/771230h.uml @@ -0,0 +1,185 @@ +#include "771230a.h" + +TOOLBAR "" 0 19 0 3 + +#include + +ENDPAGE + +PAGE "Quadro E" -1 -1 78 18 + +NUMBER F_CODDITTA 5 +BEGIN + FLAGS "H" + FIELD LF_QUAE->CODDITTA + KEY 1 +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 3 0 "" + FIELD LF_QUAE->TIPOA + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "D" + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 3 1 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "HG" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 17 0 "" + FIELD LF_QUAE->CODANAGR + MESSAGE COPY,F_CODANAGR2 + FLAGS "D" + KEY 1 +END + +NUMBER F_CODANAGR2 5 +BEGIN + USE LF_ANAG KEY 1 + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_RAGSOC2 RAGSOC + CHECKTYPE REQUIRED + FLAGS "HG" +END + +STRING F_RAGSOC2 45 +BEGIN + PROMPT 24 0 "" + FLAGS "D" +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 71 0 "" + FIELD LF_QUAE->NPROG + FLAGS "D" + KEY 1 +END + +STRING F_CODCAUS 2 +BEGIN + PROMPT 3 3 "Causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="E")) + INPUT CODTAB F_CODCAUS + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + OUTPUT F_CODCAUS CODTAB + OUTPUT F_CODTRIB I0 + OUTPUT F_DESCRCAUS S0 + OUTPUT F_PERC R0 + CHECKTYPE REQUIRED + FLAGS "Z" + WARNING "Manca la causale" + FIELD LF_QUAE->CODCAUS + ADD RUN 773 -3 %CA7 +END + +STRING F_DESCRCAUS 58 +BEGIN + PROMPT 17 3 "" + FLAGS "D" +END + +NUMBER F_CODTRIB 4 +BEGIN + PROMPT 11 4 "" + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 3 8 "Imponibile" +END + +NUMBER F_IMPONIBILE 15 +BEGIN + PROMPT 3 9 "" + FIELD LF_QUAE->IMPONIBILE + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO +END + +GROUPBOX DLG_NULL 32 5 +BEGIN + PROMPT 25 6 "@bRitenute operate" +END + +TEXT DLG_NULL +BEGIN + PROMPT 27 8 "Aliquota" +END + +NUMBER F_PERC 6 2 +BEGIN + PROMPT 27 9 "" + FIELD LF_QUAE->PERC + MESSAGE K_TAB,F_IMPORTO + PICTURE ".2" + MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 38 8 "Importo" +END + +NUMBER F_IMPORTO 15 +BEGIN + PROMPT 38 9 "" + FIELD LF_QUAE->IMPORTO + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 3 13 "Netto corrisposto" +END + +NUMBER F_NETTO 15 +BEGIN + PROMPT 3 14 "" + FIELD LF_QUAE->NETTO + PICTURE "." + FLAGS "DR" + NUM_CALC {#F_IMPONIBILE-#F_IMPORTO} +END + +TEXT DLG_NULL +BEGIN + PROMPT 27 12 "Somme non soggette" +END + +TEXT DLG_NULL +BEGIN + PROMPT 27 13 "a ritenuta" +END + +NUMBER F_SOMME 15 +BEGIN + PROMPT 27 14 "" + FIELD LF_QUAE->SOMME + PICTURE "." + FLAGS "R" +// MESSAGE K_TAB,F_IMPONIBILE|K_TAB,F_IMPORTO|K_TAB,F_NETTO +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230i.uml b/m770/771230i.uml new file mode 100755 index 000000000..e2fed9702 --- /dev/null +++ b/m770/771230i.uml @@ -0,0 +1,188 @@ +#include "771230a.h" + +TOOLBAR "" 0 18 0 4 + +BUTTON F_GENERA 21 2 +BEGIN + PROMPT -13 -3 "~Generazione" +END + +BUTTON F_PROSPETTO 21 2 +BEGIN + PROMPT -23 -3 "~Prospetto" +// MESSAGE RUN,7783,771230m,89,"Prospetto del Quadro E1","E1" + MESSAGE RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" +END + +#include + +ENDPAGE + +PAGE "MODULO 770 - QUADRO E1" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAE1->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati percipiente" +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 8 "" + ITEM "F|Fisica" + MESSAGE COPY,F_TIPOAF + ITEM "G|Giuridica" + MESSAGE COPY,F_TIPOAF + FIELD LF_QUAE1->TIPOA + CHECKTYPE REQUIRED + FLAGS "D" + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 1 9 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "H" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAE1->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGRPERC 5 +BEGIN + PROMPT 15 8 "" + USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA="F")) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRPERC + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRPERC CODANAGR + OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC + MESSAGE COPY, F_CODANAGR + //FLAGS "P" + ADD RUN 775 -0 + GROUP 2 +END + +NUMBER F_CODANAGRCOM 5 +BEGIN + PROMPT 15 8 "" + USE LF_ANAG KEY 1 SELECT (TIPOA="F") + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRCOM + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + MESSAGE COPY, F_CODANAGR + ADD RUN BA4 -1 + //FLAGS "HP" + FLAGS "H" + GROUP 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 8 "" + FLAGS "H" +END + +STRING F_RAGSOCCOM 50 +BEGIN + PROMPT 25 8 "" + USE LF_ANAG KEY 2 SELECT (TIPOA="F") + INPUT RAGSOC F_RAGSOCCOM + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_TIPOA TIPOA + //FLAGS "P" + ADD RUN BA4 -1 + MESSAGE COPY, F_RAGSOC + GROUP 1 +END + +STRING F_RAGSOCPER 50 +BEGIN + PROMPT 25 8 "" + //FLAGS "DP" + FLAGS "D" + GROUP 2 + MESSAGE COPY, F_RAGSOC +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + KEY 1 + FIELD LF_QUAE1->NPROG + USE LF_QUAE1 + JOIN LF_ANAG TO LF_QUAE1 KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR SELECT + INPUT NPROG F_NPROG + DISPLAY "N°" NPROG + DISPLAY "Tipo" TIPOA + DISPLAY "Codice@10" CODANAGR + //DISPLAY "Ragione@50" LF_ANAG->RAGSOC + DISPLAY "Causale" CODCAUS + DISPLAY "Ammontare complessivo" AMMONTARE + DISPLAY "Aliquota" PERC + DISPLAY "Importo@15" IMPORTO + DISPLAY "Netto corrisposto" NETTO + DISPLAY "Somme corrisposte" SOMME + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_NPROG NPROG +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771230l.uml b/m770/771230l.uml new file mode 100755 index 000000000..5725ff166 --- /dev/null +++ b/m770/771230l.uml @@ -0,0 +1,190 @@ +#include "771230a.h" + +TOOLBAR "" 0 19 0 3 + +#include + +ENDPAGE + +PAGE "Quadro E1" -1 -1 78 18 + +NUMBER F_CODDITTA 5 +BEGIN + FLAGS "H" + FIELD LF_QUAE1->CODDITTA + KEY 1 +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 3 0 "" + FIELD LF_QUAE1->TIPOA + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "D" + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 3 1 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "HG" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 17 0 "" + FIELD LF_QUAE1->CODANAGR + MESSAGE COPY,F_CODANAGR2 + FLAGS "D" + KEY 1 +END + +NUMBER F_CODANAGR2 5 +BEGIN + USE LF_ANAG KEY 1 + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_RAGSOC2 RAGSOC + CHECKTYPE REQUIRED + FLAGS "HG" +END + +STRING F_RAGSOC2 45 +BEGIN + PROMPT 24 0 "" + FLAGS "D" +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 71 0 "" + FIELD LF_QUAE1->NPROG + FLAGS "D" + KEY 1 +END + +STRING F_CODCAUS 2 +BEGIN + PROMPT 3 3 "Causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="E1")&&(B0="X") + INPUT CODTAB F_CODCAUS + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + OUTPUT F_CODCAUS CODTAB + OUTPUT F_CODTRIB I0 + OUTPUT F_DESCRCAUS S0 + OUTPUT F_PERC R0 + CHECKTYPE REQUIRED + FLAGS "Z" + WARNING "Manca la causale" + FIELD LF_QUAE1->CODCAUS + ADD RUN 773 -3 %CA7 +END + +STRING F_DESCRCAUS 58 +BEGIN + PROMPT 17 3 "" + FLAGS "D" +END + +NUMBER F_CODTRIB 4 +BEGIN + PROMPT 11 4 "" + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 8 "Somme corrisposte" +END + +NUMBER F_SOMME 15 +BEGIN + PROMPT 5 9 "" + FIELD LF_QUAE1->SOMME + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO|K_TAB,F_PERC +END + +TEXT DLG_NULL +BEGIN + PROMPT 38 6 "Amm. compl. premi riscossi" +END + +TEXT DLG_NULL +BEGIN + PROMPT 38 7 "sui quali le ritenute sono" +END + +TEXT DLG_NULL +BEGIN + PROMPT 38 8 "state commisurate" +END + +NUMBER F_IMPONIBILE 15 +BEGIN + PROMPT 38 9 "" + FIELD LF_QUAE1->AMMONTARE + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO +END + +GROUPBOX DLG_NULL 32 5 +BEGIN + PROMPT 3 11 "@bRitenute operate" +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 13 "Aliquota" +END + +NUMBER F_PERC 6 2 +BEGIN + PROMPT 5 14 "" + FIELD LF_QUAE1->PERC + MESSAGE K_TAB,F_IMPORTO + PICTURE ".2" + MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 16 13 "Importo" +END + +NUMBER F_IMPORTO 15 +BEGIN + PROMPT 16 14 "" + FIELD LF_QUAE1->IMPORTO + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_NETTO +END + +TEXT DLG_NULL +BEGIN + PROMPT 38 13 "Netto corrisposto" +END + +NUMBER F_NETTO 15 +BEGIN + PROMPT 38 14 "" + FIELD LF_QUAE1->NETTO + PICTURE "." + FLAGS "DR" + NUM_CALC {#F_SOMME-#F_IMPORTO} +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771230m.uml b/m770/771230m.uml new file mode 100755 index 000000000..5fdb341a1 --- /dev/null +++ b/m770/771230m.uml @@ -0,0 +1,119 @@ +#include "pe1.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Prospetto del Quadro E1" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER PE1F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA PE1F_CODDITTA + OUTPUT PE1F_RAGDITTA RAGSOC + FIELD LF_PROSPE1->CODDITTA +END + +STRING PE1F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +STRING PE1F_CODCAUS 2 +BEGIN + PROMPT 3 4 "Causale " + USE LF_PROSPE1 SELECT (CODDITTA=#PE1F_CODDITTA) + JOIN %CA7 TO LF_PROSPE1 INTO CODTAB=CODCAUS + INPUT CODDITTA PE1F_CODDITTA + INPUT CODCAUS PE1F_CODCAUS + DISPLAY "Codcaus" CODCAUS + DISPLAY "Compenso@15" COMPENSO + DISPLAY "Imponibile@15" IMPONIBILE + DISPLAY "Ritenuta@15" RITENUTA + OUTPUT PE1F_CODCAUS CODCAUS + OUTPUT PE1F_DESCRCAUS %CA7->S0 + OUTPUT PE1F_HPERC %CA7->R0 + CHECKTYPE REQUIRED + FLAGS "Z" + FIELD LF_PROSPE1->CODCAUS + KEY 1 + GROUP 8 + MESSAGE COPY,PE1F_CODCAUS2 +END + +STRING PE1F_CODCAUS2 2 +BEGIN + PROMPT 3 4 "Causale " + USE %CA7 SELECT ((I0!="1015")&&(S1="E1")&&(B0=" ") + INPUT CODTAB PE1F_CODCAUS + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + OUTPUT PE1F_CODCAUS CODTAB + OUTPUT PE1F_DESCRCAUS S0 + OUTPUT PE1F_HPERC R0 + CHECKTYPE REQUIRED + FLAGS "Z" + WARNING "Manca la causale" + FIELD LF_PROSPE1->CODCAUS + ADD RUN 773 -3 %CA7 + KEY 1 + GROUP 9 + MESSAGE COPY,PE1F_CODCAUS +END + +NUMBER PE1F_HPERC 6 +BEGIN + PROMPT 3 4 "Usata nel programma per calcolo ritenuta" + PICTURE ".2" + FLAGS "H" +END + +STRING PE1F_DESCRCAUS 58 +BEGIN + PROMPT 17 4 "" + FLAGS "D" +END + +NUMBER PE1F_COMPENSO 15 +BEGIN + PROMPT 3 7 "Ammontare complessivo " + FIELD LF_PROSPE1->COMPENSO + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 3 9 "Ammontare delle somme sulle quali" +END + +NUMBER PE1F_IMPONIBILE 15 +BEGIN + PROMPT 3 10 "le ritenute sono state commisurate " + FIELD LF_PROSPE1->IMPONIBILE + PICTURE "." + FLAGS "R" +END + +NUMBER PE1F_RITENUTA 15 +BEGIN + PROMPT 3 12 "Ritenuta operata " + FIELD LF_PROSPE1->RITENUTA + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/771231.cpp b/m770/771231.cpp new file mode 100755 index 000000000..7682f1741 --- /dev/null +++ b/m770/771231.cpp @@ -0,0 +1,994 @@ +// 771231.cpp - Quadri F +// +// Lista modifiche +// 12. 1.96 Controlla codcaus anche dopo che e' stato immesso (nf) +// +#include +#include +#include +#include +#include +#include +#include +#include "77lib.h" +#include "scperc.h" +#include "rpag.h" +#include "perc.h" +#include "prospe1.h" +#include "774200.h" +#include "771231a.h" // F, F-1 +#include "771232.h" // quadro G +#include "quadrif.h" +#include "ca7.h" + +#define S_CODC 101 +#define S_DESC 102 +#define S_ALIQ 103 +#define S_SOGG 104 +#define S_ROPE 105 +// Solo nel prospetto A +#define S_TACC 106 +#define S_SALD 107 +#define S_VECC 108 + +const int RIGHE_PA = 6; + +HIDDEN TString80 __dep; + +void ss_pack(TSheet_field& ss); +void do_output(TString& quadro, TMask& m, const bool bOutputAliq); +bool check_caus(const char* codcau); + +class TQuadroF : public TRelation_application +{ + private: + TRelation* _rel; + TMask* _msk; + int _anno_dic; // anno dichiarazione + long _codditta; + TLocalisamfile* _qf, *_rf; + TTable* _ca7; + TRecord_array* _prosp_a, *_prosp_b, *_prosp_c, *_prosp_d; + TRiporti _rip; + bool _registra; + char _tipo_prosp; + TString _sAliqPrec; // in set_notify per det.se cambiata aliq. + static real calcola_rope(TMask_field& f, const real& sogg, const bool force); + static bool codc_handler(TMask_field& f, KEY k); + static bool aliq_handler(TMask_field& f, KEY k); + static bool sogg_handler(TMask_field& f, KEY k); + static bool sald_handler(TMask_field& f, KEY k); + static bool vecc_handler(TMask_field& f, KEY k); + static bool tacc_handler(TMask_field& f, KEY k); + static bool eprov_handler(TMask_field& f, KEY k); + static bool ealiq_handler(TMask_field& f, KEY k); + static bool fsogg_handler(TMask_field& f, KEY k); + static bool faliq_handler(TMask_field& f, KEY k); + static bool a_notify(TSheet_field& s, int r, KEY k); + static bool b_notify(TSheet_field& s, int r, KEY k); + static bool c_notify(TSheet_field& s, int r, KEY k); + static bool d_notify(TSheet_field& s, int r, KEY k); + int salva_prosp_a(const TMask& m, bool re); + int salva_prosp_b(const TMask& m, bool re); + int salva_prosp_c(const TMask& m, bool re); + int salva_prosp_d(const TMask& m, bool re); +// const char* get_desc_cau(const char* codcau); + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int read(TMask& m); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode) { return _msk; } + virtual bool changing_mask(int mode) { return FALSE; } + virtual void init_query_mode (TMask&); + virtual void init_modify_mode (TMask&); + void init_mask (TMask&); + void fill_ss(TMask& m); + void riempi_prospetto(TMask& m, const char prosp); + int re_write(const TMask& m, bool re); + + public: + TString16 _quadro, _aliq_caus; + TString80 _title, _desc_caus; + TSheet_field& sfProspA() const; + TSheet_field& sfProspB() const; + TSheet_field& sfProspC() const; + TSheet_field& sfProspD() const; + const char* taitol() { return (const char*)_title; } + + TQuadroF(const char quadro='0'); + virtual ~TQuadroF() {}; +}; + +TSheet_field& TQuadroF::sfProspA() const +{ + TSheet_field& s = (TSheet_field&)curr_mask().field(F_A); + return s; +} + +TSheet_field& TQuadroF::sfProspB() const +{ + TSheet_field& s = (TSheet_field&)curr_mask().field(F_B); + return s; +} + +TSheet_field& TQuadroF::sfProspC() const +{ + TSheet_field& s = (TSheet_field&)curr_mask().field(F_C); + return s; +} + +TSheet_field& TQuadroF::sfProspD() const +{ + TSheet_field& s = (TSheet_field&)curr_mask().field(F_D); + return s; +} + +TQuadroF::TQuadroF(const char quadro) +{ + _registra = FALSE; + _tipo_prosp = 'A'; + switch (quadro) + { + case '0': + _quadro = "F"; + _title = "Quadro F"; + break; + case '1': + _quadro = "F1"; + _title = "Quadro F-1"; + _tipo_prosp = 'B'; + break; + case '2': + _quadro = "F2"; + _title = "Quadro F-2"; + _tipo_prosp = 'B'; + break; + default: + break; + } +} + +inline TQuadroF& app() { return (TQuadroF&) main_app(); } + +void TQuadroF::init_modify_mode (TMask& m) +{ + init_mask(m); + m.disable(DLG_DELREC); +} + +void TQuadroF::init_query_mode (TMask& m) +{ + TString16 codditta; codditta << _codditta; + if (codditta != "0") + { + m.field(F_CODDITTA).set(codditta); + m.field(F_CODDITTA).check(); + } + m.send_key(K_AUTO_ENTER,0); + init_mask(m); +} + +void TQuadroF::init_mask (TMask& m) +{ + fill_ss(m); +} + +bool TQuadroF::user_create() +{ + if (_quadro == "F") + { + _msk = new TMask("771231a"); + _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->set_handler(E_PROVENTI, eprov_handler); + _msk->set_handler(E_ALI, ealiq_handler); + _msk->set_handler(F_SOGG, fsogg_handler); + _msk->set_handler(F_ALI, faliq_handler); + TSheet_field& p_a = (TSheet_field&) _msk->field(F_A); + p_a.set_notify(a_notify); + p_a.sheet_mask().set_handler(S_CODC, codc_handler); + p_a.sheet_mask().set_handler(S_ALIQ, aliq_handler); + p_a.sheet_mask().set_handler(S_SOGG, sogg_handler); + p_a.sheet_mask().set_handler(S_SALD, sald_handler); + p_a.sheet_mask().set_handler(S_VECC, vecc_handler); + p_a.sheet_mask().set_handler(S_TACC, tacc_handler); + TSheet_field& p_b = (TSheet_field&) _msk->field(F_B); + p_b.set_notify(b_notify); + p_b.sheet_mask().set_handler(S_CODC, codc_handler); + p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler); + p_b.sheet_mask().set_handler(S_SOGG, sogg_handler); + TSheet_field& p_c = (TSheet_field&) _msk->field(F_C); + p_c.set_notify(c_notify); + p_c.sheet_mask().set_handler(S_CODC, codc_handler); + p_c.sheet_mask().set_handler(S_ALIQ, aliq_handler); + p_c.sheet_mask().set_handler(S_SOGG, sogg_handler); + TSheet_field& p_d = (TSheet_field&) _msk->field(F_D); + p_d.set_notify(d_notify); + p_d.sheet_mask().set_handler(S_CODC, codc_handler); + p_d.sheet_mask().set_handler(S_ALIQ, aliq_handler); + p_d.sheet_mask().set_handler(S_SOGG, sogg_handler); + + _rel = new TRelation(LF_QUAF); + _rf = new TLocalisamfile(LF_RIGHEF); + + _codditta = get_firm_770(); + TRectype dep(_rf->curr()); + dep.zero(); + dep.put("CODDITTA", _codditta); + dep.put("TIPOPRO", "A"); + _prosp_a = new TRecord_array(dep, "NPROG"); + dep.put("TIPOPRO", "B"); + _prosp_b = new TRecord_array(dep, "NPROG"); + dep.put("TIPOPRO", "C"); + _prosp_c = new TRecord_array(dep, "NPROG"); + dep.put("TIPOPRO", "D"); + _prosp_d = new TRecord_array(dep, "NPROG"); + } + + if (_quadro == "F1") + { + _msk = new TMask("771232a"); + _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + TSheet_field& p_b = (TSheet_field&) _msk->field(F_B); + p_b.sheet_mask().set_handler(S_CODC, codc_handler); + p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler); + p_b.sheet_mask().set_handler(S_SOGG, sogg_handler); + + _rel = new TRelation(LF_QUAF1); + _rf = new TLocalisamfile(LF_RIGHEF1); + + _codditta = get_firm_770(); + TRectype dep(_rf->curr()); + dep.zero(); + dep.put("CODDITTA", _codditta); + dep.put("TIPOPRO", "B"); + _prosp_b = new TRecord_array(dep, "NPROG"); + } + + if (_quadro == "F2") + { + _msk = new TMask("771233a"); + _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + TSheet_field& p_b = (TSheet_field&) _msk->field(F_B); + p_b.sheet_mask().set_handler(S_CODC, codc_handler); + p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler); + p_b.sheet_mask().set_handler(S_SOGG, sogg_handler); + + _rel = new TRelation(LF_QUAF2); + _rf = new TLocalisamfile(LF_RIGHEF2); + + _codditta = get_firm_770(); + TRectype dep(_rf->curr()); + dep.zero(); + dep.put("CODDITTA", _codditta); + dep.put("TIPOPRO", "B"); + _prosp_b = new TRecord_array(dep, "NPROG"); + } + + return TRUE; +} + +bool TQuadroF::user_destroy() +{ + delete _msk; + delete _rel; + delete _rf; + delete _prosp_b; + + if (_quadro == "F") + { + delete _prosp_a; + delete _prosp_c; + delete _prosp_d; + } + + if (_registra) _rip.set(_quadro); + return TRUE; +} + +HIDDEN const int PROSP_RIGHE = 10; + +/*********************************** +const char* TQuadroF::get_desc_cau(const char* codcau) +{ + TTable ca7("%ca7"); + __dep = ""; + ca7.zero(); + ca7.put("CODTAB", codcau); + const int rc = ca7.read(); + if (rc == NOERR) + __dep = ca7.get("S0"); + return __dep; +} +**************************/ + +void TQuadroF::riempi_prospetto(TMask& m, const char prosp) +{ + switch (prosp) + { + case 'A': + { + TSheet_field& ss = (TSheet_field&)m.field(F_A); + const int last_a = _prosp_a->last_row(); + for (int i = 1; i <= last_a; i++) + { + TRectype& r = _prosp_a->row(i, TRUE); + TToken_string& row = ss.row(i-1); + TString16 codcau(r.get(QUF_CODCAUS)); + TString descr_cau(get_desc_cau(codcau)); + TString16 aliq (r.get(QUF_ALIQUOTA)); + TString sogg (r.get(QUF_SOGRIT)); + TString rope (r.get(QUF_ROPE)); + row.add(codcau); + row.add(descr_cau); + row.add(aliq); + row.add(sogg); + row.add(rope); + // Solo se (prosp == 'A') + TString acc(r.get(QUF_ACCONTI)); + TString ecc(r.get(QUF_VERSECC)); + TString sal(r.get(QUF_VERSALDO)); + row.add(acc); + row.add(sal); + row.add(ecc); + } + for (i = last_a; i < PROSP_RIGHE; i++) + ss.row(i); + ss.force_update(); + break; + } + case 'B': { + TSheet_field& ss = (TSheet_field&)m.field(F_B); + const int last_b = _prosp_b->last_row(); + for (int i = 1; i <= last_b; i++) + { + TRectype& r = _prosp_b->row(i, TRUE); + TToken_string& row = ss.row(i-1); + TString dep(50); +// if (_quadro != "F2") + dep = r.get(QUF_CODCAUS); + TString descr_cau(get_desc_cau(dep)); +// else dep = r.get("DENFONDO"); + TString16 aliq (r.get(QUF_ALIQUOTA)); + TString sogg (r.get(QUF_SOGRIT)); + TString rope (r.get(QUF_ROPE)); + row.add(dep); + row.add(descr_cau); + row.add(aliq); + row.add(sogg); + row.add(rope); + } + for (i = last_b+1; i < PROSP_RIGHE; i++) + ss.row(i); + if (_quadro != "F") + ss.force_update(); + break; } + case 'C': { + TSheet_field& ss = (TSheet_field&)m.field(F_C); + const int last_c = _prosp_c->last_row(); + for (int i = 1; i <= last_c; i++) + { + TRectype& r = _prosp_c->row(i, TRUE); + TToken_string& row = ss.row(i-1); + TString16 codcau(r.get(QUF_CODCAUS)); + TString descr_cau(get_desc_cau(codcau)); + TString16 aliq (r.get(QUF_ALIQUOTA)); + TString sogg (r.get(QUF_SOGRIT)); + TString rope (r.get(QUF_ROPE)); + row.add(codcau); + row.add(descr_cau); + row.add(aliq); + row.add(sogg); + row.add(rope); + } + for (i = last_c+1; i < PROSP_RIGHE; i++) + ss.row(i); + break; } + case 'D': { + TSheet_field& ss = (TSheet_field&)m.field(F_D); + const int last_d = _prosp_d->last_row(); + for (int i = 1; i <= last_d; i++) + { + TRectype& r = _prosp_d->row(i, TRUE); + TToken_string& row = ss.row(i-1); + TString16 codcau(r.get(QUF_CODCAUS)); + TString descr_cau(get_desc_cau(codcau)); + TString16 aliq (r.get(QUF_ALIQUOTA)); + TString sogg (r.get(QUF_SOGRIT)); + TString rope (r.get(QUF_ROPE)); + row.add(codcau); + row.add(descr_cau); + row.add(aliq); + row.add(sogg); + row.add(rope); + } + for (i = last_d+1; i < PROSP_RIGHE; i++) + ss.row(i); + break; } + default: + break; + } +} + +void TQuadroF::fill_ss(TMask& m) +{ + riempi_prospetto(m, 'B'); + if (_quadro == "F") + { + riempi_prospetto(m, 'A'); + riempi_prospetto(m, 'C'); + riempi_prospetto(m, 'D'); + } +} + +int TQuadroF::read(TMask& m) +{ + int err = TRelation_application::read(m); + + if (err == NOERR) + { + TRectype r = _rf->curr(); + r.zero(); + r.put("CODDITTA", m.get(F_CODDITTA)); + r.put("TIPOPRO", "B"); + _prosp_b->read(r); + if (_quadro == "F") + { + r.put("TIPOPRO", "A"); + _prosp_a->read(r); + r.put("TIPOPRO", "C"); + _prosp_c->read(r); + r.put("TIPOPRO", "D"); + _prosp_d->read(r); + } + } + fill_ss(m); + return err; +} + +int TQuadroF::write(const TMask& m) +{ + int err = TRelation_application::write(m); + if (err == NOERR) + err = re_write(m, FALSE); + _registra = err == NOERR; + return err; +} + +int TQuadroF::rewrite(const TMask& m) +{ + int err = re_write(m, TRUE); + int err1 = TRelation_application::rewrite(m); +// _registra = err == NOERR; +// 12.6.96 se compilo solo prosp.A del F-1 non fa i riporti + _registra = err == NOERR || err1 == NOERR; + return err == NOERR ? err1 : err; +} + +void ss_pack(TSheet_field& ss) +{ + TString_array& rows = ss.rows_array(); + + const int max = rows.items(); + for (int i = 0; i < max; i++) + { + TToken_string& r = (TToken_string&)rows[i]; + TString16 codcaus(r.get(0)); + codcaus.trim(); + if (codcaus.empty()) + rows.destroy(i, FALSE); + } + rows.pack(); +} + +int TQuadroF::salva_prosp_a(const TMask& m, bool re) +{ + _prosp_a->destroy_rows(); + if (m.insert_mode()) + _prosp_a->renum_key("CODDITTA", m.get(F_CODDITTA)); + + TSheet_field& p_a = (TSheet_field&)m.field(F_A); + TString_array& rows = p_a.rows_array(); + ss_pack(p_a); + + for (int i = 0; i < p_a.items(); i++) + { + TToken_string& riga = p_a.row(i); + TString16 codcaus(riga.get(0)); + if (codcaus.empty()) continue; + TString16 aliq (riga.get(2)); // salta descr. caus. +// const float aliq = atof(riga.get()); + TString sogg (riga.get()); + TString rope (riga.get()); + TString totacc (riga.get()); + TString vers_a_saldo (riga.get()); + TString somm_versata (riga.get()); + const int row = i + 1 ; + TRectype& r = _prosp_a->row(row, TRUE); + r.zero(); + r.put (QUF_CODDITTA, (long)_codditta); + r.put (QUF_TIPOPRO, "A"); + r.put (QUF_NPROG, i+1); + r.put (QUF_CODCAUS, codcaus); + r.put (QUF_ALIQUOTA , (const char*)aliq); + r.put (QUF_SOGRIT , sogg); + r.put (QUF_ROPE, rope); + r.put (QUF_ACCONTI, totacc); + r.put (QUF_VERSALDO, vers_a_saldo); + r.put (QUF_VERSECC, somm_versata); + } + return _prosp_a->write(re); +} + +int TQuadroF::salva_prosp_b(const TMask& m, bool re) +{ + _prosp_b->destroy_rows(); + TSheet_field& p_b = (TSheet_field&)m.field(F_B); + TString_array& rowsb = p_b.rows_array(); + ss_pack(p_b); + + if (m.insert_mode()) + _prosp_b->renum_key("CODDITTA", m.get(F_CODDITTA)); + + for (int i = 0; i < p_b.items(); i++) + { + TToken_string &riga = p_b.row(i); + TString dep(40); + dep = riga.get(0); dep.trim(); +// if (_quadro != "F2" && dep.empty()) continue; + if (dep.empty()) continue; + TString aliq (riga.get(2)); + TString sogg (riga.get()); + TString rope (riga.get()); + + const int row = i + 1 ; + TRectype& r = _prosp_b->row(row, TRUE); + r.zero(); + r.put (QUF_CODDITTA, (long)_codditta); + r.put (QUF_TIPOPRO, "B"); + r.put (QUF_NPROG, i+1); + r.put (QUF_ALIQUOTA, (const char*)aliq); +// r.put (_quadro == "F2" ? "DENFONDO" : "CODCAUS" , dep); + r.put (QUF_CODCAUS , dep); + r.put (QUF_SOGRIT , sogg); + r.put (QUF_ROPE, rope); + } + return _prosp_b->write(re); +} + +int TQuadroF::salva_prosp_c(const TMask& m, bool re) +{ + _prosp_c->destroy_rows(); + TSheet_field& p_c = (TSheet_field&)m.field(F_C); + TString_array& rowsc = p_c.rows_array(); + ss_pack(p_c); + + if (m.insert_mode()) + _prosp_c->renum_key("CODDITTA", m.get(F_CODDITTA)); + + for (int i = 0; i < p_c.items(); i++) + { + TToken_string &riga = p_c.row(i); + TString16 codcaus(riga.get(0)); + if (codcaus.empty()) continue; + TString16 aliq (riga.get(2)); + TString sogg (riga.get()); + TString rope (riga.get()); + + const int row = i + 1 ; + TRectype& r = _prosp_c->row(row, TRUE); + r.zero(); + r.put (QUF_CODDITTA, (long)_codditta); + r.put (QUF_TIPOPRO, "C"); + r.put (QUF_NPROG, i+1); + r.put (QUF_CODCAUS, codcaus); + r.put (QUF_ALIQUOTA , (const char*)aliq); + r.put (QUF_SOGRIT , sogg); + r.put (QUF_ROPE, rope); + } + return _prosp_c->write(re); +} + +int TQuadroF::salva_prosp_d(const TMask& m, bool re) +{ + _prosp_d->destroy_rows(); + TSheet_field& p_d = (TSheet_field&)m.field(F_D); + TString_array& rowsd = p_d.rows_array(); + ss_pack(p_d); + + if (m.insert_mode()) + _prosp_d->renum_key("CODDITTA", m.get(F_CODDITTA)); + + for (int i = 0; i < p_d.items(); i++) + { + TToken_string &riga = p_d.row(i); + TString16 codcaus(riga.get(0)); + if (codcaus.empty()) continue; + TString16 aliq (riga.get(2)); + TString sogg (riga.get()); + TString rope (riga.get()); + + const int row = i + 1 ; + TRectype& r = _prosp_d->row(row, TRUE); + r.zero(); + r.put (QUF_CODDITTA, (long)_codditta); + r.put (QUF_TIPOPRO, "D"); + r.put (QUF_NPROG, i+1); + r.put (QUF_CODCAUS, codcaus); + r.put (QUF_ALIQUOTA , (const char*)aliq); + r.put (QUF_SOGRIT , sogg); + r.put (QUF_ROPE, rope); + } + return _prosp_d->write(re); +} + +int TQuadroF::re_write(const TMask& m, bool re) +{ + int err_a, err_b, err_c, err_d; + + err_b = salva_prosp_b(m, re); + if (_quadro == "F") + { + err_a = salva_prosp_a(m, re); + err_c = salva_prosp_c(m, re); + err_d = salva_prosp_d(m, re); + return err_a | err_b | err_c | err_d; + } + else + return err_b; +} + +bool TQuadroF::remove() +{ + bool ok, ok_a, ok_b, ok_c, ok_d; + ok = TRelation_application::remove(); + ok_b = _prosp_b->remove(); + + if (_quadro == "F") + { + ok_a = _prosp_a->remove(); + ok_c = _prosp_c->remove(); + ok_d = _prosp_d->remove(); + return ok && ok_a && ok_b && ok_c && ok_d; + } + else + return ok && ok_b; +} + +bool TQuadroF::a_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { + case K_SPACE: + { + TSheet_field& sfProspA = app().sfProspA(); + TToken_string& row = sfProspA.row(r); + app()._sAliqPrec = row.get(2); + app()._sAliqPrec.trim(); + } + case K_TAB: + app()._tipo_prosp = 'A'; + break; + case K_INS: + break; + default: + break; + } + return TRUE; +} + +bool TQuadroF::b_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { + case K_SPACE: + { + TSheet_field& sfProspB = app().sfProspB(); + TToken_string& row = sfProspB.row(r); + app()._sAliqPrec = row.get(2); + app()._sAliqPrec.trim(); + } + case K_TAB: + app()._tipo_prosp = 'B'; + break; + case K_INS: + break; + default: + break; + } + return TRUE; +} + +bool TQuadroF::c_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { + case K_SPACE: + { + TSheet_field& sfProspC = app().sfProspC(); + TToken_string& row = sfProspC.row(r); + app()._sAliqPrec = row.get(2); + app()._sAliqPrec.trim(); + } + case K_TAB: + app()._tipo_prosp = 'C'; + break; + case K_INS: + break; + default: + break; + } + return TRUE; +} + +bool TQuadroF::d_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { + case K_SPACE: + { + TSheet_field& sfProspD = app().sfProspD(); + TToken_string& row = sfProspD.row(r); + app()._sAliqPrec = row.get(2); + app()._sAliqPrec.trim(); + } + case K_TAB: + app()._tipo_prosp = 'D'; + break; + case K_INS: + break; + default: + break; + } + return TRUE; +} + +bool TQuadroF::eprov_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.focusdirty()) + { + app()._tipo_prosp = 'E'; + const real sogg(f.mask().get(E_PROVENTI)); + calcola_rope(f, sogg, f.focusdirty()); + } + return TRUE; +} + +bool TQuadroF::ealiq_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.focusdirty()) + { + app()._tipo_prosp = 'E'; + const real sogg(f.mask().get(E_PROVENTI)); + calcola_rope(f, sogg, f.focusdirty()); + } + return TRUE; +} + +bool TQuadroF::fsogg_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.focusdirty()) + { + app()._tipo_prosp = 'F'; + const real sogg(f.mask().get(F_SOGG)); + calcola_rope(f, sogg, f.focusdirty()); + } + return TRUE; +} + +bool TQuadroF::faliq_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.focusdirty()) + { + app()._tipo_prosp = 'F'; + const real sogg(f.mask().get(F_SOGG)); + calcola_rope(f, sogg, f.focusdirty()); + } + return TRUE; +} + +// Se scrivo S_SALD devo pulire S_VECC e viceversa +bool TQuadroF::sald_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.focusdirty()) + { + TString16 dep(f.get()); + if (dep.not_empty()) + f.mask().reset(S_VECC); + } + return TRUE; +} + +bool TQuadroF::vecc_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.focusdirty()) + { + TString16 dep(f.get()); + if (dep.not_empty()) + f.mask().reset(S_SALD); + } + return TRUE; +} + +bool TQuadroF::tacc_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + const real sogg(f.mask().get(S_SOGG)); + calcola_rope(f, sogg, f.focusdirty()); + } + return TRUE; +} + +bool TQuadroF::aliq_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + const real sogg(f.mask().get(S_SOGG)); + calcola_rope(f, sogg, f.focusdirty()); + } + return TRUE; +} + +bool TQuadroF::sogg_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + const real sogg(f.mask().get(S_SOGG)); + calcola_rope(f, sogg, f.focusdirty()); + } + return TRUE; +} + +void do_output(TString& quadro, TMask& m, const bool bOutputAliq) +{ + m.set(S_DESC, app()._desc_caus); + if (bOutputAliq) + m.set(S_ALIQ, app()._aliq_caus); +} + +bool check_caus(const char* codcau) +{ + TTable ca7("%ca7"); + bool ok = FALSE; + TString& quadro = app()._quadro; + + ca7.zero(); + ca7.put(CA7_CODTAB, codcau); + ok = ca7.read(); + if (ok != NOERR) + __dep = ""; + else + __dep = ca7.get(CA7_CODQUA); + + if (__dep != quadro) + return FALSE; + else + { + app()._aliq_caus = ca7.get(CA7_ALIQ); + app()._desc_caus = ca7.get(CA7_DESCR); + return TRUE; + } +} + +bool TQuadroF::codc_handler(TMask_field& f, KEY k) +{ +// Controlla codice quadro + if (k == K_TAB) + { + TString16 codcau(f.get()); + if (codcau.empty()) + return TRUE; + TMask& m = f.mask(); + TString& quadro = app()._quadro; + const bool ok = check_caus(codcau); + TString sAliqCorr(m.get(S_ALIQ)); + sAliqCorr.trim(); +// Se sono diverse vuol dire che e' stata cambiata l'aliq.e non va scritta + bool bAliqCorrVuota = sAliqCorr.empty(); + bool bOutputAliq = app()._sAliqPrec == sAliqCorr || bAliqCorrVuota; + if (ok) + do_output(quadro, f.mask(), bOutputAliq); + else + return warning_box("Causale con codice quadro diverso da %s", (const char*)quadro); + } + return TRUE; +} + +real TQuadroF::calcola_rope(TMask_field& f, const real& sogg, const bool force) +{ + real pa_col4 = ZERO; + int id_rope, id_ali; + TMask& m = f.mask(); + + if (app()._tipo_prosp == 'E') + { + id_rope = E_ROP; + id_ali = E_ALI; + } + else + if (app()._tipo_prosp == 'F') + { + id_rope = F_ROP; + id_ali = F_ALI; + } + else // prospetti A,B,C,D + { + id_rope = S_ROPE; + id_ali = S_ALIQ; + } + + real ali = m.get_real(id_ali); + const real pa_col4_prec(m.get(id_rope)); // rit.operata + if (pa_col4_prec != ZERO && !force) + return pa_col4_prec; + + pa_col4 = (sogg * ali) / 100.00; + pa_col4.round(0); + + TString ropest(20); + if (pa_col4 != ZERO) // Evita di scrivere "0" nel campo (v. reqif_func nella msk) + { + ropest = pa_col4.string(); + m.set(id_rope, ropest); + } + else + m.reset(id_rope); + +// Nel prospetto A oltre alla ritenuta operata setto anche S_SALD + if (app()._tipo_prosp == 'A') + { + const real pa_col5(m.get(S_TACC)); + real pa_col6 = pa_col4 - pa_col5; + if (pa_col6 > ZERO) + { + TString col6_st(pa_col6.string()); + m.set(S_SALD, col6_st); + m.reset(S_VECC); + } + else + { +// Sempre positiva, la somma versata in ecc. + pa_col6 *= -1.00; + TString col7_st(pa_col6.string()); + m.set(S_VECC, col7_st); + m.reset(S_SALD); + } + } + return pa_col4; +} + + +int quadroF(int argc, char* argv[]) +{ + const char quadro = *argv[2]; // 0 = F, 1 = F-1, 2 = F-2, 3 = G + // 4 = distinta G, 5 = G-1 + if (quadro <= '2') + { + TQuadroF a(quadro); + a.run(argc, argv, a.taitol()); + } + + if (quadro == '3') + { + TQuadroG a(quadro); + a.run(argc, argv, a.taitol()); + } + + if (quadro == '4') + { + TDistintaQuadroG a; + a.run(argc, argv, a.taitol()); + } + + if (quadro == '5') + { + TQuadroG1 a; + a.run(argc, argv, a.taitol()); + } + + return 0; +} diff --git a/m770/771231a.h b/m770/771231a.h new file mode 100755 index 000000000..5432eafcb --- /dev/null +++ b/m770/771231a.h @@ -0,0 +1,25 @@ +// 771231a.h - quadro F + +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_A 103 +#define F_B 104 +#define F_C 105 +#define F_D 106 +#define F_A1 107 +#define F_A2 108 +#define F_A3 109 +#define F_A4 110 +#define E_CAMBIAL 111 +#define E_PROVENTI 112 +#define E_ALI 113 +#define E_ROP 114 +#define F_DESCRCAUS 115 +#define F_ALI 116 +#define F_SOGG 117 +#define F_ROP 118 +#define F_CODCAU 119 + + + + diff --git a/m770/771231a.uml b/m770/771231a.uml new file mode 100755 index 000000000..47db62181 --- /dev/null +++ b/m770/771231a.uml @@ -0,0 +1,261 @@ +#include "771231a.h" +TOOLBAR "" 0 20 0 2 +#include "toolb_77.h" +ENDPAGE + +PAGE "Modello 770 - Quadro F" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAF->CODDITTA + KEY 1 + CHECKTYPE REQUIRED + FLAGS "GR" +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 3 "@bProspetto A" +END + +SPREADSHEET F_A 0 8 +BEGIN + PROMPT 0 4 "" + ITEM "Causale" + ITEM "Descrizione@50" + ITEM "Aliquota" + ITEM "Sogg. a rit.@15" + ITEM "Ritenuta@15" + ITEM "Totale acconti@15" + ITEM "Vers. a saldo@15" + ITEM "Somma versata@15" +END + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 1 12 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 3 13 "A1 Importo di col.7 ..." +END + +NUMBER F_A1 15 +BEGIN + PROMPT 60 13 "" + PICTURE "." + FIELD LF_QUAF->A1 +END + +TEXT DLG_NULL +BEGIN + PROMPT 3 14 "A2 Importo di col.7 di cui si chiede il rimborso" +END + +NUMBER F_A2 15 +BEGIN + PROMPT 60 14 "" + PICTURE "." + FIELD LF_QUAF->A2 +END + +TEXT DLG_NULL +BEGIN + PROMPT 3 15 "A3 Somme soggette a ritenuta ..." +END + +NUMBER F_A3 15 +BEGIN + PROMPT 60 15 "" + PICTURE "." + FIELD LF_QUAF->A3 +END + +TEXT DLG_NULL +BEGIN + PROMPT 3 16 "A4 Ritenute operate ..." +END + +NUMBER F_A4 15 +BEGIN + PROMPT 60 16 "" + PICTURE "." + FIELD LF_QUAF->A4 +END + +ENDPAGE + +PAGE "Modello 770 - Quadro F" -1 -1 78 18 + +TEXT DLG_NULL +BEGIN + PROMPT 1 0 "@bProspetto B" +END + +SPREADSHEET F_B 78 6 +BEGIN + PROMPT 0 1 "" + ITEM "Causale" + ITEM "Descrizione@50" + ITEM "Aliquota" + ITEM "Somme sogg.a rit.@15" + ITEM "Ritenuta@15" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 8 "@bProspetto C" +END + +SPREADSHEET F_C 78 6 +BEGIN + PROMPT 0 9 "" + ITEM "Causale" + ITEM "Descrizione@50" + ITEM "Aliquota" + ITEM "Somme sogg.a rit.@15" + ITEM "Ritenuta@15" +END + +ENDPAGE + +PAGE "Modello 770 - Quadro F" -1 -1 78 18 + +TEXT DLG_NULL +BEGIN + PROMPT 1 0 "@bProspetto D" +END + +SPREADSHEET F_D 78 6 +BEGIN + PROMPT 0 1 "" + ITEM "Causale" + ITEM "Descrizione@50" + ITEM "Aliquota" + ITEM "Somme sogg.a rit.@15" + ITEM "Ritenuta@15" +END + +GROUPBOX DLG_NULL 0 5 +BEGIN + PROMPT 1 8 "@bProspetto E" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 9 "Importo complessivo delle cambiali " +END + +NUMBER E_CAMBIAL 15 +BEGIN + PROMPT 60 9 "" + PICTURE "." + FIELD LF_QUAF->E_CAMBIALI +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 10 "Proventi soggetti a ritenuta " +END + +NUMBER E_PROVENTI 15 +BEGIN + PROMPT 60 10 "" + PICTURE "." + FIELD LF_QUAF->E_SOGRIT +END + +NUMBER E_ALI 5 +BEGINE + PROMPT 2 11 "Aliquota " + FIELD LF_QUAF->E_ALIQUOTA + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} +END + +NUMBER E_ROP 15 +BEGIN + PROMPT 43 11 "Ritenuta operata " + PICTURE "." + FIELD LF_QUAF->E_ROPE +END + +GROUPBOX DLG_NULL 0 5 +BEGIN + PROMPT 1 13 "@bProspetto F" +END + +STRING F_CODCAU 2 +BEGIN + PROMPT 2 14 "Causale " + USE %CA7 SELECT (S1="F") + VALIDATE REQIF_FUNC 3 F_SOGG F_ALI F_ROP + INPUT CODTAB F_CODCAU + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + DISPLAY "C.T." B2 + DISPLAY "I.C." B1 + DISPLAY "R.A." B0 + OUTPUT F_CODCAU CODTAB + OUTPUT F_DESCRCAUS S0 + FLAGS "Z" + WARNING "Manca la causale" + CHECKTYPE NORMAL + ADD RUN 773 -3 %CA7 + FIELD LF_QUAF->F_CODCAUS +END + +STRING F_DESCRCAUS 60 +BEGIN + PROMPT 16 14 "" + FLAGS "D" +END + +NUMBER F_SOGG 15 +BEGIN + PROMPT 2 15 "Somme soggette a ritenuta " + PICTURE "." + FIELD LF_QUAF->F_SOGRIT +END + +NUMBER F_ALI 5 +BEGIN + PROMPT 51 15 "Aliquota " + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + FIELD LF_QUAF->F_ALIQUOTA +END + +NUMBER F_ROP 15 +BEGIN + PROMPT 2 16 "Ritenuta operata " + PICTURE "." + FIELD LF_QUAF->F_ROPE +END + +ENDPAGE + +ENDMASK + +#include "771231b.uml" // mask prospetto A +#include "771231c.uml" // prospetto B +#include "771231c.uml" // prospetto C +#include "771231c.uml" // prospetto D diff --git a/m770/771231b.uml b/m770/771231b.uml new file mode 100755 index 000000000..0a956bf34 --- /dev/null +++ b/m770/771231b.uml @@ -0,0 +1,92 @@ +// 771231b.uml - quadro F prospetto A + +PAGE "Prospetto A" -1 -1 76 12 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Causale " + USE %CA7 SELECT (S1="F") + VALIDATE REQIF_FUNC 6 102 103 104 105 106 107 + INPUT CODTAB 101 + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + OUTPUT 101 CODTAB + OUTPUT 102 S0 + OUTPUT 103 R0 + FLAGS "Z" + WARNING "Manca la causale" + ADD RUN 773 -3 %CA7 + GROUP 1 +END + +STRING 102 60 +BEGIN + PROMPT 15 1 "" + FLAGS "D" + GROUP 1 +END + +NUMBER 103 6 +BEGIN + PROMPT 1 3 "Aliquota applicata " + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + GROUP 1 +END + +NUMBER 104 15 +BEGIN + PROMPT 1 4 "Somme soggette a ritenuta " + PICTURE "." + GROUP 1 +END + +NUMBER 105 15 +BEGIN + PROMPT 1 5 "Ritenuta operata " + PICTURE "." + GROUP 1 +END + +NUMBER 106 15 +BEGIN + PROMPT 1 6 "Totale acconti " + PICTURE "." + GROUP 1 +END + +NUMBER 107 15 +BEGIN + PROMPT 1 7 "Versamento a saldo " + PICTURE "." + GROUP 1 +END + +NUMBER 108 15 +BEGIN + PROMPT 1 8 "Somma versata in eccedenza " + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK diff --git a/m770/771231c.uml b/m770/771231c.uml new file mode 100755 index 000000000..03de6216a --- /dev/null +++ b/m770/771231c.uml @@ -0,0 +1,71 @@ +// 771231c.uml - quadro F prospetto B-C-D + +PAGE "Prospetto B-C-D" -1 -1 76 9 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Causale " + USE %CA7 SELECT (S1="F") + VALIDATE REQIF_FUNC 3 102 103 104 + INPUT CODTAB 101 + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + OUTPUT 101 CODTAB + OUTPUT 102 S0 + OUTPUT 103 R0 + FLAGS "Z" + WARNING "Manca la causale" + ADD RUN 773 -3 %CA7 + GROUP 1 +END + +STRING 102 60 +BEGIN + PROMPT 15 1 "" + FLAGS "D" + GROUP 1 +END + +NUMBER 103 6 +BEGIN + PROMPT 1 3 "Aliquota applicata " + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + GROUP 1 +END + +NUMBER 104 15 +BEGIN + PROMPT 1 4 "Somme soggette a ritenuta " + PICTURE "." + GROUP 1 +END + +NUMBER 105 15 +BEGIN + PROMPT 1 5 "Ritenuta operata " + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK diff --git a/m770/771232.cpp b/m770/771232.cpp new file mode 100755 index 000000000..71b3a730b --- /dev/null +++ b/m770/771232.cpp @@ -0,0 +1,770 @@ +// 771232.cpp - Quadri G +#include +#include +#include +#include +#include +#include +#include +#include + +#include "quadrog.h" +#include "77lib.h" +#include "774200.h" +#include "771234a.h" // G +#include "771232.h" + +///////////////////////////////////////////////////////////////////////////////////////////// +// +// Lista modifiche: +// +// 17.4.96 Corretto scambio di colonne nel prospetto 3 in scrittura +// +// +///////////////////////////////////////////////////////////////////////////////////////////// + +// Descrizioni prospetto 3 +HIDDEN const char* p3_date_delib[20] = +{ + "1-1-1976/31-12-1995", + "1-1-1976/31-12-1995", + "1-1-1976/31-12-1995", + "1-1-1976/31-12-1995", + "1-1-1976/31-12-1995", + "1-1-1976/31-12-1995", + "1-1-1976/31-12-1995", + "9-4-1974/31-12-1975", + "9-4-1974/31-12-1975", + "9-4-1974/31-12-1975", + "9-4-1974/31-12-1975", + "1-1-1974/8-4-1974" , + "1-1-1974/8-4-1974" , + "1-1-1974/8-4-1974" , + "24-2-1964/31-12-1973", + "24-2-1964/31-12-1973", + "24-2-1964/31-12-1973", + "1-1-1963/23-2-1964", + "1-1-1963/23-2-1964", + "1-1-1963/23-2-1964" +}; + +// Aliquote prospetto 3 +HIDDEN const char* aliq[15] = +{ + "10", + "12.5", + "15", + "30", + "32.4", + "50", + "10", + "15", + "30", + "10", + "30", + "5", + "30", + "8", + "15" +}; + +// Date prospetto 2 +HIDDEN const char* p2_date_delib[5] = +{ + "1-1-1976/31-12-1995", + "9-4-1974/31-12-1975", + "1-1-1974/8-4-1974" , + "24-2-1964/31-12-1973", + "1-1-1963/23-2-1964" +}; + + +HIDDEN const int RIGHE_P1 = 4; +HIDDEN const int RIGHE_P2 = 5; +HIDDEN const int RIGHE_PII = 3; +HIDDEN const int RIGHE_PIII = 20; +HIDDEN const char* DISTINTA_APP = "771mod -6 4"; + +#define NUM_AZ 105 +#define AMM_AZ 104 +#define AMM_COMP 106 + +HIDDEN real __amm_az = ZERO; +HIDDEN real __num_az = ZERO; + +TQuadroG::TQuadroG(const char quadro) +{ + _registra = FALSE; + switch (quadro) + { + case '3': + _quadro = "G"; + _title = "Quadro G"; + break; + default: + break; + } +} + +inline TQuadroG& app() { return (TQuadroG&) main_app(); } + +int TQuadroG::read(TMask& m) +{ + int err = TRelation_application::read(m); + + if (err == NOERR) + { + fill_ss(m); + fill_arr(m); + } + return err; +} + +void TQuadroG::init_modify_mode (TMask& m) +{ + init_mask(m); + m.disable(DLG_DELREC); +} + +void TQuadroG::init_query_mode (TMask& m) +{ + TString16 codditta; codditta << _codditta; + if (codditta != "0") + { + m.field(F_CODDITTA).set(codditta); + m.field(F_CODDITTA).check(); + } + m.send_key(K_AUTO_ENTER,0); + + init_mask(m); +} + +void TQuadroG::init_mask (TMask& m) +{} + +void TQuadroG::update_totals(TSheet_field& f, int ss) +{ + int i = 0; + switch (ss) + { + case 1: + { + real tot_numq, tot_amm; + tot_numq = tot_amm = ZERO; + TSheet_field& p1 = f; +// Calcolo il totale + for (i = 0; i < RIGHE_P1; i++) + { + TToken_string& r = p1.row(i); + real numq(r.get(4)); + real amm (r.get(5)); + tot_numq += numq; + tot_amm += amm; + } +// Setto le celle di totale + TToken_string& row = p1.row(i); + row.add(tot_numq.string(), 4); + row.add(tot_amm.string(), 5); + p1.force_update(i); + } + break; + case 2: + { + TSheet_field& p2 = f; + real tot_c2, tot_c3, tot_c4, tot_c5, tot_c6; + tot_c2 = tot_c3 = tot_c4 = tot_c5 = tot_c6 = ZERO; + for (i = 0; i < RIGHE_P2; i++) + { + TToken_string& r2 = p2.row(i); + real c2 (r2.get(1)); + real c3 (r2.get()); + real c4 (r2.get()); + real c5 (r2.get()); + real c6 (r2.get()); + + tot_c2 += c2; + tot_c3 += c3; + tot_c4 += c4; + tot_c5 += c5; + tot_c6 += c6; + } +// Setto le celle di totale + TToken_string& row2 = p2.row(i); + row2.add(tot_c2.string(), 1); + row2.add(tot_c3.string(), 2); + row2.add(tot_c4.string(), 3); + row2.add(tot_c5.string(), 4); + row2.add(tot_c6.string(), 5); + p2.force_update(i); + } + break; + case 3: + { + real tot_valult; + tot_valult = ZERO; + TSheet_field& pII = f; +// Calcolo il totale + for (i = 0; i < RIGHE_PII; i++) + { + TToken_string& r = pII.row(i); + real val(r.get(2)); + tot_valult += val; + } +// Setto le celle di totale + TToken_string& row = pII.row(i); + row.add(tot_valult.string(), 2); + pII.force_update(i); + } + break; + case 4: + { + real tcol2, tcol3, tcol5, tcol6, tcol7; + tcol2 = tcol3 = tcol5 = tcol6 = tcol7 = ZERO; + TSheet_field& pIII = f; +// Calcolo il totale + for (i = 0; i < RIGHE_PIII; i++) + { + TToken_string& r = pIII.row(i); + real c2(r.get(1)); + real c3(r.get(2)); + real c5(r.get(4)); + real c6(r.get(5)); + real c7(r.get(6)); + tcol2 += c2; + tcol3 += c3; + tcol5 += c5; + tcol6 += c6; + tcol7 += c7; + } +// Setto le celle di totale + TToken_string& row = pIII.row(i); + row.add(tcol2.string(), 1); + row.add(tcol3.string(), 2); + row.add(tcol5.string(), 4); + row.add(tcol6.string(), 5); + row.add(tcol7.string(), 6); + pIII.force_update(i); + } + break; + default: + break; + } +} + +// Quadro G prospetto 1 - I +// Calcola amm_complessivo = num_quote * amm_azione +bool TQuadroG::calc_amm(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TMask& m = f.mask(); + real amm_az(m.get(AMM_AZ)); +// const int num_az = m.get_int(NUM_AZ); +// 12.6.96 num_az adesso e' un real! + real rNumAz = m.get_real(NUM_AZ); + bool ricalcola = FALSE; + real amm_comp(m.get(AMM_COMP)); +// Determina se uno dei valori e' stato modificato + ricalcola = ( (__amm_az != amm_az) || (__num_az != rNumAz) ); +// Se non e' stato cambiato non toccare il totale gia' impostato + if (!ricalcola && amm_comp != ZERO) + return TRUE; + +// Calcola e setta il valore + real amm = ZERO; + amm = amm_az * rNumAz; + amm.trunc(); + m.set(AMM_COMP, amm.string()); +// Setta i flag usati per il confronto successivo + __amm_az = amm_az; + __num_az = rNumAz; + } + return TRUE; +} + +bool TQuadroG::exec_distinta(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + TExternal_app zzz(DISTINTA_APP); + zzz.run(); + } + return TRUE; +} + +bool TQuadroG::user_create() +{ + _msk = new TMask("771234a"); + _rel = new TRelation(LF_QUAG); + _codditta = get_firm_770(); + _msk->set_handler(DLG_DISTINTA, exec_distinta); + TSheet_field& p1 = (TSheet_field&) _msk->field(F_P1); + p1.set_notify(p1_notify); + p1.sheet_mask().set_handler(NUM_AZ, calc_amm); + p1.sheet_mask().set_handler(AMM_AZ, calc_amm); + TSheet_field& p2 = (TSheet_field&) _msk->field(F_P2); + p2.set_notify(p2_notify); + TSheet_field& pII = (TSheet_field&) _msk->field(F_PII); + pII.set_notify(pII_notify); + TSheet_field& pIII = (TSheet_field&) _msk->field(F_PIII); + pIII.set_notify(pIII_notify); + return TRUE; +} + +bool TQuadroG::user_destroy() +{ + delete _rel; delete _msk; + if (_registra) + _rip.set(_quadro); + return TRUE; +} + +void TQuadroG::arr2rel(const TMask& m) +{ + TToken_string p3a; + TToken_string p3b; + TToken_string p3c; + TToken_string p3d; + TToken_string p3e; + TToken_string p3f; + TRectype& r = _rel->curr(); + int dlg; dlg = 0; + +// Prospetto 3 - Prospetto delle ritenute + TSheet_field& pIII = (TSheet_field&)m.field(F_PIII); + + for (int i = 0; i < RIGHE_PIII; i++) + { + TToken_string& r = pIII.row(i); + TString ut94 (r.get(1)); // Salto data delibera che e' fisso + TString imp (r.get()); + TString ali (r.get()); + TString racc (r.get()); + TString rimp (r.get()); + TString utnsogg (r.get()); + + p3a.add(ut94); + p3b.add(imp); + p3c.add(ali); + p3d.add(racc); + p3e.add(rimp); + p3f.add(utnsogg); + } + + r.put(QG_P33A, p3a); + r.put(QG_P33B, p3b); + + r.put(QG_P35A, p3c); + r.put(QG_P35B, p3d); + + r.put(QG_P36A, p3e); + r.put(QG_P36B, p3f); + +// Salvo i totali che servono poi per i riporti e le stampe (774200.cpp) + TToken_string& r_tot = pIII.row(i); + real tot_col3(r_tot.get(2)); + real tot_col5(r_tot.get(4)); + real tot_col6(r_tot.get(5)); + real tot_col7(r_tot.get(6)); + + r.put(QG_P33TOT, tot_col3); + r.put(QG_P35TOT, tot_col5); + r.put(QG_P36TOT, tot_col6); + r.put(QG_P37TOT, tot_col7); +} + +void TQuadroG::ss2rel(const TMask& m) +{ + TSheet_field& p1 = (TSheet_field&)m.field(F_P1); + TRectype& rec = _rel->curr(); + + for (int i = 0; i < RIGHE_P1; i++) + { + TToken_string& r = p1.row(i); + TString datad (r.get(0)); + TString titol (r.get()); + TString datap (r.get()); + TString ammq (r.get()); + TString numq (r.get()); + TString amm (r.get()); + +// Costruisco i nomi dei campi (sono numerati) + TString16 n_datad ("P1DATAD"); + n_datad << i+1; + TString16 n_titol ("P1TITOLO"); + n_titol << i+1; + TString16 n_datap ("P1DATAP"); + n_datap << i+1; + TString16 n_ammq ("P1AMMQ"); + n_ammq << i+1; + TString16 n_numq ("P1NUMQ"); + n_numq << i+1; + TString16 n_amm ("P1AMM"); + n_amm << i+1; + +// Scrivo i suddetti campi nella relazione + rec.put(n_datad, datad); + rec.put(n_titol, titol); + rec.put(n_datap, datap); + rec.put(n_ammq, ammq); + rec.put(n_numq, numq); + rec.put(n_amm, amm); + } +// Salvo i totali + TToken_string& r = p1.row(i); + TString tot_numq (r.get(4)); + TString tot_amm (r.get(5)); + rec.put("P1NUMQT", tot_numq); + rec.put("P1AMMT", tot_amm); + +// costruisco le token_string leggendole dallo spreadsheet + TToken_string p22(200); + TToken_string p23(200); + TToken_string p24(200); + TToken_string p25(200); + TToken_string p26(200); + + TSheet_field& p2 = (TSheet_field&)m.field(F_P2); + for (i = 0; i < RIGHE_P2; i++) + { + TToken_string& r = p2.row(i); + TString c2 (r.get(1)); + TString c3 (r.get()); + TString c4 (r.get()); + TString c5 (r.get()); + TString c6 (r.get()); + p22.add(c2); + p23.add(c3); + p24.add(c4); + p25.add(c5); + p26.add(c6); + } +// scrivo finalmente nel file le tokens. di cui sopra + rec.put("P22", p22); + rec.put("P23", p23); + rec.put("P24", p24); + rec.put("P25", p25); + rec.put("P26", p26); +// scrivo i totali + TToken_string& r2 = p2.row(i); + TString tc2 (r2.get(1)); + TString tc3 (r2.get()); + TString tc4 (r2.get()); + TString tc5 (r2.get()); + TString tc6 (r2.get()); + rec.put("P22TOT", tc2); + rec.put("P23TOT", tc3); + rec.put("P24TOT", tc4); + rec.put("P25TOT", tc5); + rec.put("P26TOT", tc6); + +// Prospetto 1 - II Utili in natura + TSheet_field& pII = (TSheet_field&)m.field(F_PII); +// TRectype& rec = _rel->curr(); + + for (i = 0; i < RIGHE_PII; i++) + { + TToken_string& r = pII.row(i); + TString descr (r.get(0)); + TString datad (r.get()); + TString val (r.get()); + +// Costruisco i nomi dei campi (sono numerati) + TString16 n_descr ("P2DESC"); + n_descr << i+1; + TString16 n_data ("P2DATA"); + n_data << i+1; + TString16 n_val ("P2VAL"); + n_val << i+1; + +// Scrivo i suddetti campi nella relazione + rec.put(n_descr, descr); + rec.put(n_data, datad); + rec.put(n_val, val); + } +// Salvo i totali + TToken_string& rII = pII.row(i); + TString tot_val (rII.get(2)); + rec.put(QG_P2VALT, tot_val); +} + +void TQuadroG::fill_arr(TMask& m) +{ + TRectype& r = _rel->curr(); + TToken_string p3a(r.get("P33A")); + TToken_string p3b(r.get("P33B")); + TToken_string p3c(r.get("P35A")); + TToken_string p3d(r.get("P35B")); + TToken_string p3e(r.get("P36A")); + TToken_string p3f(r.get("P36B")); + int dlg, j; dlg = j = 0; + + TSheet_field& pIII = (TSheet_field&)m.field(F_PIII); + const int COL_ALIQ = 3; + int ind_aliq = 0; + for (int i = 1; i <= RIGHE_PIII; i++) + { + TRectype& r = _rel->curr(); + TToken_string& row = pIII.row(i-1); + row.add(p3_date_delib[i-1]); + row.add(p3a.get(i-1)); + row.add(p3b.get(i-1)); + row.add(p3c.get(i-1)); + row.add(p3d.get(i-1)); + row.add(p3e.get(i-1)); + row.add(p3f.get(i-1)); + + if (i != 7 && i != 11 && i != 14 && i != 17 && i != 20) + { + row.add(aliq[ind_aliq++], 3); + pIII.disable_cell(i-1, COL_ALIQ); + } + } + + if (m.mode() == MODE_MOD) + update_totals(pIII,4); + else + { +// Aggiungo la riga per i totali + TToken_string& row = pIII.row(i-1); + row.add("Totali", 0); + pIII.disable_cell(i-1, -1); + pIII.force_update(); + } +} + +void TQuadroG::fill_ss(TMask& m) +{ + TSheet_field& p1 = (TSheet_field&)m.field(F_P1); + for (int i = 1; i <= RIGHE_P1; i++) + { + TRectype& r = _rel->curr(); + TToken_string& row = p1.row(i-1); + +// Costruisco i nomi dei campi (sono numerati) + TString16 n_datad ("P1DATAD"); + n_datad << i; + TString16 n_titol ("P1TITOLO"); + n_titol << i; + TString16 n_datap ("P1DATAP"); + n_datap << i; + TString16 n_ammq ("P1AMMQ"); + n_ammq << i; + TString16 n_numq ("P1NUMQ"); + n_numq << i; + TString16 n_amm ("P1AMM"); + n_amm << i; + +// Leggo i campi + TString datad (r.get(n_datad)); + TString titol (r.get(n_titol)); + TString datap (r.get(n_datap)); + TString ammq (r.get(n_ammq)); + TString numq (r.get(n_numq)); + TString amm (r.get(n_amm)); + + row.add(datad); + row.add(titol); + row.add(datap); + row.add(ammq); + row.add(numq); + row.add(amm); + } + if (m.mode() == MODE_MOD) + update_totals(p1,1); + else + { +// Aggiungo la riga per i totali + TToken_string& row = p1.row(i-1); + row.add("Totali", 1); + p1.disable_cell(i-1, -1); + p1.force_update(); + } + + TRectype& r = _rel->curr(); + TToken_string p22(r.get("P22")); + TToken_string p23(r.get("P23")); + TToken_string p24(r.get("P24")); + TToken_string p25(r.get("P25")); + TToken_string p26(r.get("P26")); + + TSheet_field& p2 = (TSheet_field&)m.field(F_P2); + for (i = 1; i <= RIGHE_P2; i++) + { + TToken_string& row2 = p2.row(i-1); + row2.add(p2_date_delib[i-1]); + row2.add(p22.get(i-1)); + row2.add(p23.get(i-1)); + row2.add(p24.get(i-1)); + row2.add(p25.get(i-1)); + row2.add(p26.get(i-1)); + } + if (m.mode() == MODE_MOD) + update_totals(p2,2); + else + { +// Aggiungo la riga per i totali + TToken_string& row2 = p2.row(i-1); + row2.add("Totali", 0); + p2.disable_cell(i-1, -1); + p2.force_update(); + } + + TSheet_field& pII = (TSheet_field&)m.field(F_PII); + for (i = 1; i <= RIGHE_PII; i++) + { + TRectype& r = _rel->curr(); + TToken_string& row = pII.row(i-1); + +// Costruisco i nomi dei campi (sono numerati) + TString16 pII_desc ("P2DESC"); + pII_desc << i; + TString16 pII_data ("P2DATA"); + pII_data << i; + TString16 pII_val ("P2VAL"); + pII_val << i; + +// Leggo i campi + TString descr (r.get(pII_desc)); + TString datap (r.get(pII_data)); + TString valul (r.get(pII_val)); + + row.add(descr); + row.add(datap); + row.add(valul); + } + if (m.mode() == MODE_MOD) + update_totals(pII,3); + else + { +// Aggiungo la riga per i totali + TToken_string& row = pII.row(i-1); + row.add("Totale utili in natura", 0); + pII.disable_cell(i-1, -1); + pII.force_update(); + } +} + +int TQuadroG::write(const TMask& m) +{ + ss2rel(m); + arr2rel(m); + int err = TRelation_application::write(m); + _registra = err == NOERR; + return err; +} + +int TQuadroG::rewrite(const TMask& m) +{ + ss2rel(m); + arr2rel(m); + int err = TRelation_application::rewrite(m); + _registra = err == NOERR; + return err; +} + +bool TQuadroG::remove() +{ + const bool ok = TRelation_application::remove(); + return ok; +} + +bool TQuadroG::p1_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { + case K_ENTER: + __amm_az = ZERO; + __num_az = ZERO; + update_totals(s, 1); + break; + case K_SPACE: + { + TToken_string& row = s.row(r); + __num_az = row.get(3); + __amm_az = row.get(4); + } + break; +// Rifiuta di entrare sull'ultima riga + case K_TAB: + return r < RIGHE_P1; + break; + case K_INS: + if (s.mask().is_running()) + return FALSE; // rifiuta inserimento di nuove righe + break; + default: + break; + } + return TRUE; +} + +bool TQuadroG::p2_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { + case K_SPACE: + break; + case K_ENTER: + update_totals(s, 2); + break; +// Rifiuta di entrare sull'ultima riga + case K_TAB: + return r < RIGHE_P2; + break; + case K_INS: + if (s.mask().is_running()) + return FALSE; // rifiuta inserimento di nuove righe + break; + default: + break; + } + return TRUE; +} + +bool TQuadroG::pII_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { + case K_SPACE: + break; + case K_ENTER: + update_totals(s, 3); + break; +// Rifiuta di entrare sull'ultima riga + case K_TAB: + return r < RIGHE_PII; + break; + case K_INS: + if (s.mask().is_running()) + return FALSE; // rifiuta inserimento di nuove righe + break; + default: + break; + } + return TRUE; +} + +bool TQuadroG::pIII_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { + case K_SPACE: + break; + case K_ENTER: + update_totals(s, 4); + break; +// Rifiuta di entrare sull'ultima riga + case K_TAB: + return r < RIGHE_PIII; + break; + case K_INS: + if (s.mask().is_running()) + return FALSE; // rifiuta inserimento di nuove righe + break; + default: + break; + } + return TRUE; +} + diff --git a/m770/771232.h b/m770/771232.h new file mode 100755 index 000000000..1a6c46ee0 --- /dev/null +++ b/m770/771232.h @@ -0,0 +1,141 @@ +// 771232.h - Quadro G, G1 e distinta +#include +#include +#include +#include +#include +#include +#include "77lib.h" +#include + +#include "774200.h" + +// void ss_pack(TSheet_field& ss); + +class TQuadroG : public TRelation_application +{ + private: + TRelation* _rel; + TMask* _msk; + int _anno_dic; // anno dichiarazione + long _codditta; + TLocalisamfile* _qg; + TTable* _ca7; + TRiporti _rip; + TString16 _quadro; + TString80 _title; + bool _registra; + static bool p1_notify(TSheet_field& s, int r, KEY k); + static bool p2_notify(TSheet_field& s, int r, KEY k); + static bool pII_notify(TSheet_field& s, int r, KEY k); + static bool pIII_notify(TSheet_field& s, int r, KEY k); + static bool calc_amm(TMask_field& f, KEY k); + static bool exec_distinta(TMask_field& f, KEY k); + static void update_totals(TSheet_field& f, int ss); + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int read(TMask& m); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode) { return _msk; } + virtual bool changing_mask(int mode) { return FALSE; } + virtual void init_query_mode (TMask&); + virtual void init_modify_mode (TMask&); + void init_mask (TMask&); + void fill_ss(TMask& m); + void fill_arr(TMask& m); + void ss2rel(const TMask& m); + void arr2rel(const TMask& m); + public: + const char* taitol() { return (const char*)_title; } + TMask& main_mask() const { return (TMask&) *_msk; } + + TQuadroG(const char quadro='0'); + virtual ~TQuadroG() {}; +}; + + +class TDistintaQuadroG : public TRelation_application +{ + TRelation* _rel; + TMask* _msk; + long _codanagr; + char _tipoa; + int _nproga; + int _mode; + int _anno_dic; // anno dichiarazione + TString80 _title; + TRiporti _rip; + bool _registra; + int _file; + TString16 _quadro; + + private: + static bool nprog_handler (TMask_field& f, KEY key); + static bool codanagr_handler(TMask_field& f, KEY key); + static bool codditta_hnd (TMask_field& f, KEY key); + static bool setta_nprog (TMask_field& f); + + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode) { return _msk; } + virtual bool changing_mask(int mode) { return FALSE; } + virtual void init_query_mode (TMask&); + virtual void init_query_insert_mode (TMask&); + virtual void on_config_change(); + bool scrivi_dati_per(TRectype& rec); + + public: + const char* taitol() { return (const char*)_title; } + public: + TDistintaQuadroG(); + virtual ~TDistintaQuadroG() {}; +}; + +class TQuadroG1 : public TRelation_application +{ + private: + TRelation* _rel; + TMask* _msk; + int _anno_dic; + long _codditta; + TLocalisamfile* _qg1; + TTable* _ca7; + TRiporti _rip; + TString16 _quadro; + TString80 _title; + bool _registra; + static bool p1_notify(TSheet_field& s, int r, KEY k); + static void update_totals(TSheet_field& f); + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode) { return _msk; } + virtual bool changing_mask(int mode) { return FALSE; } + virtual void init_query_mode (TMask&); + virtual void init_modify_mode (TMask&); + void init_mask (TMask&); +// void fill_ss(TMask& m); + void fill_arr(TMask& m); +// void ss2rel(const TMask& m); + void arr2rel(const TMask& m); + public: + const char* taitol() { return (const char*)_title; } + TMask& main_mask() const { return (TMask&) *_msk; } + + TQuadroG1(); + virtual ~TQuadroG1() {}; +}; + diff --git a/m770/771232a.uml b/m770/771232a.uml new file mode 100755 index 000000000..1521d64da --- /dev/null +++ b/m770/771232a.uml @@ -0,0 +1,69 @@ +#include "771231a.h" +TOOLBAR "" 0 20 0 2 +#include "toolb_77.h" +ENDPAGE + +PAGE "Modello 770 - Quadro F-1" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAF1->CODDITTA + KEY 1 + CHECKTYPE REQUIRED + FLAGS "GR" +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +GROUPBOX DLG_NULL 0 4 +BEGIN + PROMPT 1 3 "@bProspetto A" +END + +NUMBER F_A1 15 +BEGIN + PROMPT 2 4 "Ammontare complessivo delle plusvalenze imponibili " + PICTURE "." + FIELD LF_QUAF1->F1_A1 +END + +NUMBER F_A2 15 +BEGIN + PROMPT 2 5 "Ritenuta operata " + PICTURE "." + FIELD LF_QUAF1->F1_A2 +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bProspetto B" +END + +SPREADSHEET F_B 78 8 +BEGIN + PROMPT 0 8 "" + ITEM "Causale" + ITEM "Descrizione@50" + ITEM "Aliquota" + ITEM "Sogg. a rit.@15" + ITEM "Ritenuta@15" +END + +ENDPAGE + +ENDMASK + +#include "771232b.uml" // mask prospetto B diff --git a/m770/771232b.uml b/m770/771232b.uml new file mode 100755 index 000000000..889051147 --- /dev/null +++ b/m770/771232b.uml @@ -0,0 +1,71 @@ +// 771232b.uml - quadro F1 prospetto B + +PAGE "Prospetto B" -1 -1 76 9 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Causale " + USE %CA7 SELECT (S1="F1") + VALIDATE REQIF_FUNC 3 102 103 104 + INPUT CODTAB 101 + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + OUTPUT 101 CODTAB + OUTPUT 102 S0 + OUTPUT 103 R0 + FLAGS "Z" + WARNING "Manca la causale" + ADD RUN 773 -3 %CA7 + GROUP 1 +END + +STRING 102 60 +BEGIN + PROMPT 15 1 "" + FLAGS "D" + GROUP 1 +END + +NUMBER 103 6 +BEGIN + PROMPT 1 3 "Aliquota applicata " + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + GROUP 1 +END + +NUMBER 104 15 +BEGIN + PROMPT 1 4 "Somme soggette a ritenuta " + PICTURE "." + GROUP 1 +END + +NUMBER 105 15 +BEGIN + PROMPT 1 5 "Ritenuta operata " + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK diff --git a/m770/771233.cpp b/m770/771233.cpp new file mode 100755 index 000000000..e605e6551 --- /dev/null +++ b/m770/771233.cpp @@ -0,0 +1,194 @@ +// 771233.cpp - distinta quadro G +#include "771232.h" +#include "quadrogd.h" +#include "77qgd.h" + +#define LF_QUAGD 101 // lffiles.h + +inline TDistintaQuadroG& app() { return (TDistintaQuadroG&) main_app(); } + +TDistintaQuadroG::TDistintaQuadroG(): _rel(NULL), _mode(0) +{ + _title = "Distinta quadro G"; + _quadro = "GD"; + _file = LF_QUAGD; +} + +// Ricerca e output dell'ultimo nprog del percipiente scelto +bool TDistintaQuadroG::setta_nprog(TMask_field& f) +{ + long nprog = 0L; + const char tipoa = f.mask().get(F_TIPOA)[0]; + const long codanagr = atol(f.get()); + const long codditta = get_firm_770(); + + TLocalisamfile quagd(app()._file); + + quagd.zero(); + quagd.put(QGD_CODDITTA, codditta); + quagd.put(QGD_TIPOA, tipoa); + quagd.put(QGD_CODANAGR, codanagr); + + TRectype rec(quagd.curr()); + + quagd.read(); + + if (quagd.curr() > rec) + { + f.mask().set(F_NPROG, nprog+1); + return TRUE; + } + + for ( ; !quagd.eof(); quagd.next()) + { + if (quagd.curr() > rec) break; + nprog = quagd.get_long("NPROG"); + } + + f.mask().set(F_NPROG, nprog+1); + return TRUE; +} + +bool TDistintaQuadroG::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !f.mask().is_running()) + { + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + return TRUE; +} + + +bool TDistintaQuadroG::codanagr_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.focusdirty()) + { + TString16 dummy(f.get()); + if (dummy.not_empty()) + setta_nprog(f); + } + return TRUE; +} + +// Passa al modo inserimento/modifica. +bool TDistintaQuadroG::nprog_handler(TMask_field& f, KEY key) +{ + if (!f.mask().is_running()) return TRUE; + + if (key == K_TAB) + { + const int nprog = atoi(f.get()); + if (nprog==0) return TRUE; +// entra in modo modifica (se il record che ha chiave specificata esiste gia') oppure +// inserimento (se trova che non esiste) + f.mask().stop_run(K_AUTO_ENTER); + } + return TRUE; +} + +bool TDistintaQuadroG::scrivi_dati_per(TRectype& rec) +{ + TLocalisamfile dati_per(LF_PERC); + const long codditta = rec.get_long("CODDITTA"); + char tipoa = rec.get_char("TIPOA"); + const long codanagr = rec.get_long("CODANAGR"); + + dati_per.zero(); + dati_per.put("CODDITTA", codditta); + dati_per.put("TIPOA", tipoa); + dati_per.put("CODANAGR", codanagr); + + const bool preesistente = (dati_per.read() == NOERR); + + if (!preesistente) + { + dati_per.zero(); + dati_per.put("CODDITTA", codditta); + dati_per.put("TIPOA", tipoa); + dati_per.put("CODANAGR", codanagr); + dati_per.write(); + } + return preesistente; +} + +int TDistintaQuadroG::rewrite(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->rewrite(); + scrivi_dati_per(_rel->curr()); + _registra = TRUE; + return err; +} + +int TDistintaQuadroG::write(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->write(); + scrivi_dati_per(_rel->curr()); + _registra = TRUE; + return err; +} + +bool TDistintaQuadroG::remove() +{ + _registra = TRUE; + return TRelation_application::remove(); +} + +bool TDistintaQuadroG::user_create() +{ + _msk = new TMask("77qgda"); + _msk->set_handler(F_CODDITTA, codditta_hnd); + _msk->set_handler(F_NPROG, nprog_handler); + _msk->set_handler(F_CODANAGRCOM, codanagr_handler); + _msk->set_handler(F_CODANAGRPERC, codanagr_handler); + + _rel = new TRelation(LF_QUAGD); + + set_search_field(F_CODANAGRPERC); + _registra = FALSE; + + return TRUE; +} + +bool TDistintaQuadroG::user_destroy() +{ + delete _msk; + delete _rel; + + if (_registra) + _rip.set(_quadro); + + return TRUE; +} + +void TDistintaQuadroG::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL); +} + +void TDistintaQuadroG::init_query_mode(TMask& m) +{ + m.set(F_ANNODIC, _anno_dic); +// forza il ricalcolo dell'ultimo numero disponibile + TString16 dummy(m.get(F_NPROG)); + if (dummy.not_empty()) + setta_nprog(m.field(F_NPROG)); + + m.send_key(K_SHIFT+K_CTRL+'h', -1); // nasconde (hide) group 1 - Scelta ANAGR + m.send_key(K_SHIFT+K_CTRL+'s', -2); // abilita (show) group 2 - Ricerca su DATI PERC +} + +void TDistintaQuadroG::init_query_insert_mode(TMask& m) +{ + m.set(F_ANNODIC, _anno_dic); + m.send_key(K_SHIFT+K_CTRL+'h', -2); // group 2 Nasconde ricerca su PERC + m.send_key(K_SHIFT+K_CTRL+'s', -1); // group 1 Ricerca su ANAGR +} + diff --git a/m770/771233.h b/m770/771233.h new file mode 100755 index 000000000..179d4b616 --- /dev/null +++ b/m770/771233.h @@ -0,0 +1,93 @@ +// OBSOLETO +// 771233.h - Distinta quadro G +#include +#include +#include +#include +#include +#include +#include "77lib.h" + +#include +#include +#include +#include +#include + +// #include "771235a.h" +#include "774200.h" + +class TDistintaQuadroG : public TRelation_application +{ +/********************************** + private: + struct righe_pag + { + char tipoa; + char codan[6]; + char codcau[3]; + char perc[7]; //3 + 2decimali + la virgola + real somme; + real impo; + real rite; + real comp; + bool acim; + }; + righe_pag* _rig; +*******************************************/ + TRelation* _rel; + TMask* _msk[2]; + TSort* _sort; + long _codanagr; + char _tipoa, _tipoq; + int _nproga; + int _mode; + int _anno_dic; // anno dichiarazione + TLocalisamfile* _per, *_scper, *_rpag, *_qd; + TTable* _ca7; + TString80 _title; + TRiporti _rip; + + bool _registra; + int _file; + + private: + static bool nprog_handler (TMask_field& f, KEY key); + static bool codanagr_handler(TMask_field& f, KEY key); + static bool genera_handler (TMask_field& f, KEY key); + static bool codditta_hnd (TMask_field& f, KEY key); + static bool setta_nprog (TMask_field& f); + static bool imponibile_hnd (TMask_field& f, KEY key); + + protected: + virtual bool user_create() { return TRUE; } + virtual bool user_destroy() { return TRUE; } +// virtual int rewrite(const TMask& m); +// virtual int write (const TMask& m); +// virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode) { return _msk[0]; } + virtual bool changing_mask(int mode) { return TRUE; } +// virtual void init_query_mode (TMask&); +// virtual void init_query_insert_mode (TMask&); +// virtual void on_config_change(); + +/**************************************************** + TMask* load_mask(int n); + bool generazione(); + bool azzera_quadro(); + void riempi_record(char,long,int,const real&,const real&,const real&,const real&,const real&,bool); + void init_sort(); + void leggi_sort(TProgind&); + TRectype& look_causali(int c); + int anno_dic() const { return _anno_dic; } + bool scrivi_dati_per(TRectype& rec); + void genera_prospetto(int,real&,real&,real&); +***********************************/ + public: + const char* taitol() { return (const char*)_title; } + public: + TDistintaQuadroG(); + virtual ~TDistintaQuadroG() {}; +}; + diff --git a/m770/771233a.uml b/m770/771233a.uml new file mode 100755 index 000000000..d846ec075 --- /dev/null +++ b/m770/771233a.uml @@ -0,0 +1,50 @@ +#include "771231a.h" +TOOLBAR "" 0 20 0 2 +#include "toolb_77.h" +ENDPAGE + +PAGE "Modello 770 - Quadro F-2" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAF2->CODDITTA + KEY 1 + CHECKTYPE REQUIRED + FLAGS "GR" +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 3 "@bProspetto delle somme soggette a ritenuta e delle ritenute operate " +END + +SPREADSHEET F_B 0 8 +BEGIN + PROMPT 0 4 "" + ITEM "Causale" + ITEM "Denominazione del fondo@60" + ITEM "Aliquota" + ITEM "Sogg. a rit.@15" + ITEM "Ritenuta@15" +END + +ENDPAGE + +ENDMASK + +#include "771233b.uml" diff --git a/m770/771233b.uml b/m770/771233b.uml new file mode 100755 index 000000000..7f53d70f5 --- /dev/null +++ b/m770/771233b.uml @@ -0,0 +1,71 @@ +// 771233b.uml - quadro F2 prospetto delle ... + +PAGE "Prospetto B" -1 -1 76 9 + +NUMBER 101 2 +BEGIN + PROMPT 1 1 "Causale " + USE %CA7 SELECT (S1="F2") + INPUT CODTAB 101 + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + OUTPUT 101 CODTAB + OUTPUT 102 S0 + OUTPUT 103 R0 + FLAGS "Z" + WARNING "Manca la causale" + VALIDATE REQIF_FUNC 6 102 103 104 105 + ADD RUN 773 -3 %CA7 + GROUP 1 +END + +STRING 102 60 +BEGIN + PROMPT 15 1 "" + FLAGS "D" + GROUP 1 +END + +NUMBER 103 6 +BEGIN + PROMPT 1 3 "Aliquota applicata " + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + GROUP 1 +END + +NUMBER 104 15 +BEGIN + PROMPT 1 4 "Somme soggette a ritenuta " + PICTURE "." + GROUP 1 +END + +NUMBER 105 15 +BEGIN + PROMPT 1 5 "Ritenuta operata " + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK diff --git a/m770/771234a.h b/m770/771234a.h new file mode 100755 index 000000000..e252965f0 --- /dev/null +++ b/m770/771234a.h @@ -0,0 +1,191 @@ +// 771234a.h +#define F_CODDITTA 101 +#define F_RAGDITTA 102 + +#define F_P1 127 +#define F_P1II_00 128 +#define F_P1II_01 129 +#define F_P1II_11 130 +#define F_P1II_12 131 +#define F_P1II_13 132 +#define F_P1II_21 133 +#define F_P1II_22 134 +#define F_P1II_23 135 +#define F_P1II_31 136 +#define F_P1II_32 137 +#define F_P1II_33 138 +#define F_P1II_34 139 +#define F_P1II_35 140 + +#define F_P11_1 103 +#define F_P11_2 104 +#define F_P11_3 105 +#define F_P11_4 106 +#define F_P12_1 107 +#define F_P12_2 108 +#define F_P12_3 109 +#define F_P12_4 110 +#define F_P13_1 111 +#define F_P13_2 112 +#define F_P13_3 113 +#define F_P13_4 114 +#define F_P14_1 115 +#define F_P14_2 116 +#define F_P14_3 117 +#define F_P14_4 118 +#define F_P15_1 119 +#define F_P15_2 120 +#define F_P15_3 121 +#define F_P15_4 122 +#define F_P16_1 123 +#define F_P16_2 124 +#define F_P16_3 125 +#define F_P16_4 126 + +// Prospetto 2 +#define F_P211 141 +#define F_P212 142 +#define F_P213 143 +#define F_P214 144 +#define F_P215 145 + +#define F_P221 146 +#define F_P222 147 +#define F_P223 148 +#define F_P224 149 +#define F_P225 150 + +#define F_P231 151 +#define F_P232 152 +#define F_P233 153 +#define F_P234 154 +#define F_P235 155 + +#define F_P241 156 +#define F_P242 157 +#define F_P243 158 +#define F_P244 159 +#define F_P245 160 + +#define F_P251 161 +#define F_P252 162 +#define F_P253 163 +#define F_P254 164 +#define F_P255 165 + +#define F_P21TOT 166 +#define F_P22TOT 167 +#define F_P23TOT 168 +#define F_P24TOT 169 +#define F_P25TOT 170 + +// Prospetto 3 +#define F_P331 171 +#define F_P332 172 +#define F_P333 173 +#define F_P334 174 +#define F_P335 175 +#define F_P336 176 +#define F_P337 177 +#define F_P338 178 +#define F_P339 179 +#define F_P3310 180 +#define F_P3311 181 +#define F_P3312 182 +#define F_P3313 183 +#define F_P3314 184 +#define F_P3315 185 +#define F_P3316 186 +#define F_P3317 187 +#define F_P3318 188 +#define F_P3319 189 +#define F_P3320 190 + +#define F_P321 191 +#define F_P322 192 +#define F_P323 193 +#define F_P324 194 +#define F_P325 195 + +#define F_P371 196 +#define F_P372 197 +#define F_P373 198 +#define F_P374 199 +#define F_P375 200 + +#define F_P351 201 +#define F_P352 202 +#define F_P353 203 +#define F_P354 204 +#define F_P355 205 +#define F_P356 206 +#define F_P357 207 +#define F_P358 208 +#define F_P359 209 +#define F_P3510 210 +#define F_P3511 211 +#define F_P3512 212 +#define F_P3513 213 +#define F_P3514 214 +#define F_P3515 215 +#define F_P3516 216 +#define F_P3517 217 +#define F_P3518 218 +#define F_P3519 219 +#define F_P3520 220 + +#define F_P361 221 +#define F_P362 222 +#define F_P363 223 +#define F_P364 224 +#define F_P365 225 +#define F_P366 226 +#define F_P367 227 +#define F_P368 228 +#define F_P369 229 +#define F_P3610 230 +#define F_P3611 231 +#define F_P3612 232 +#define F_P3613 233 +#define F_P3614 234 +#define F_P3615 235 +#define F_P3616 236 +#define F_P3617 237 +#define F_P3618 238 +#define F_P3619 239 +#define F_P3620 240 + +#define F_P32TOT 241 +#define F_P33TOT 242 +#define F_P35TOT 243 +#define F_P36TOT 244 +#define F_P37TOT 245 + +#define F_P347 246 +#define F_P3411 247 +#define F_P3414 248 +#define F_P3417 249 +#define F_P3420 250 + +// Prospetto 4 +#define F_P411 265 +#define F_P412 266 +#define F_P413 267 +#define F_P414 268 +#define F_P415 269 +#define F_P416 270 +#define F_P417 271 +#define F_P418 272 +#define F_P419 273 +#define F_P41TOT 275 + +#define F_P2 280 +#define DLG_DISTINTA 290 + +#define F_PII 291 +#define F_PIII 292 + +#define F_DATADELIB 293 +#define F_DATADISTR 294 + + diff --git a/m770/771234a.uml b/m770/771234a.uml new file mode 100755 index 000000000..b88194b46 --- /dev/null +++ b/m770/771234a.uml @@ -0,0 +1,360 @@ +#include "771234a.h" +TOOLBAR "" 0 20 0 2 + +BUTTON DLG_SAVEREC 8 2 +BEGIN +PROMPT -16 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_DISTINTA 8 2 +BEGIN + PROMPT -26 -1 "~Distinta" +// MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_DELREC 8 2 +BEGIN +PROMPT -36 -1 "~Elimina" +MESSAGE EXIT,K_DEL +FLAGS "D" +END + +BUTTON DLG_FINDREC 8 2 +BEGIN +PROMPT -46 -1 "Ri~cerca" +MESSAGE EXIT,K_F9 +FLAGS "D" +END + +BUTTON DLG_CANCEL 8 2 +BEGIN +PROMPT -56 -1 "" +MESSAGE EXIT,K_ESC +FLAGS "D" +END + +BUTTON DLG_QUIT 8 2 +BEGIN +PROMPT -66 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Modello 770 - Quadro G" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAG->CODDITTA + KEY 1 + CHECKTYPE REQUIRED + FLAGS "GR" + MESSAGE COPY,1@ +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" + MESSAGE COPY,2@ +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 3 "@bPROSPETTO N. 1 DETERMINAZIONE DELL'AMMONTARE DEGLI UTILI " +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 4 "I - UTILI IN DENARO" +END + +SPREADSHEET F_P1 0 6 +BEGIN + PROMPT 0 5 "" + ITEM "Data delib." + ITEM "Titolo distribuzione" + ITEM "Data pagam." + ITEM "Ammontare azione" + ITEM "Numero azioni" + ITEM "Ammontare comp." +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 11 "II - UTILI IN NATURA" +END + +DATE F_DATADELIB +BEGIN + PROMPT 1 12 "Data delibera " + FIELD LF_QUAG->P2DATADE +END + +DATE F_DATADISTR +BEGIN + PROMPT 30 12 "Data distribuzione " + FIELD LF_QUAG->P2DATADI +END + +//SPREADSHEET F_PII 0 6 +SPREADSHEET F_PII 78 5 +BEGIN + PROMPT 0 13 "" + ITEM "Descrizione dei beni distribuiti@35" + ITEM "Data@10" + ITEM "Valore ultimo bilancio@15" +END + +NUMBER F_P1II_35 15 +BEGIN + PROMPT 12 18 "IMPORTO IMPUTABILE A CIASCUNA AZIONE O QUOTA " + PICTURE "." + FIELD LF_QUAG->P2IMPQ +END + +ENDPAGE + +PAGE "Modello 770 - Quadro G" -1 -1 78 18 + +#define COL1 0 +#define COL2 16 +#define COL3 32 +#define COL4 48 +#define COL5 63 + +TEXT DLG_NULL +BEGIN + PROMPT COL1 1 "@bPROSPETTO N. 2 PROSPETTO UTILI PAGATI " +END + +SPREADSHEET F_P2 0 8 +BEGIN + PROMPT 0 3 "" + ITEM "Delibera@20" + ITEM "Importo@15" + ITEM "Utili corrisp. 31-12-94" + ITEM "Utili da corr. 31-12-94" + ITEM "Utili corrisp. 31-12-95" + ITEM "Utili da corr. 31-12-95" +END + +ENDPAGE + +PAGE "Modello 770 - Quadro G" -1 -1 78 18 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bPROSPETTO N. 3 PROSPETTO DELLE RITENUTE " +END + +SPREADSHEET F_PIII 0 15 +BEGIN + PROMPT 0 3 "" + ITEM "Delibera@21" + ITEM "Utili corr. nel 1995" + ITEM "Importo" + ITEM "Aliquota" + ITEM "Rit.acconto" + ITEM "Rit.imposta" + ITEM "Utili non assog.a ritenuta" +END + +ENDPAGE + +#define CP31 1 +#define CP32 12 +#define CP33 29 +#define CP34 36 +#define CP35 53 + +PAGE "Modello 770 - Quadro G" -1 -1 78 18 + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bPROSPETTO N. 4 PROSPETTO DEI VERSAMENTI DELLE RITENUTE " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 2 "Causale dei versamenti Importo versato " +END + +NUMBER F_P411 15 +BEGIN + PROMPT CP35 4 "" + PICTURE "." + FIELD LF_QUAG->P421 + MESSAGE K_TAB,F_P41TOT +END + +NUMBER F_P412 15 +BEGIN + PROMPT CP35 7 "" + PICTURE "." + FIELD LF_QUAG->P422 + MESSAGE K_TAB,F_P41TOT +END + +NUMBER F_P413 15 +BEGIN + PROMPT CP35 8 "" + PICTURE "." + FIELD LF_QUAG->P423 + MESSAGE K_TAB,F_P41TOT +END + +NUMBER F_P414 15 +BEGIN + PROMPT CP35 10 "" + PICTURE "." + FIELD LF_QUAG->P424 + MESSAGE K_TAB,F_P41TOT +END + +NUMBER F_P415 15 +BEGIN + PROMPT CP35 11 "" + PICTURE "." + FIELD LF_QUAG->P425 + MESSAGE K_TAB,F_P41TOT +END + +NUMBER F_P416 15 +BEGIN + PROMPT CP35 12 "" + PICTURE "." + FIELD LF_QUAG->P426 + MESSAGE K_TAB,F_P41TOT +END + +NUMBER F_P417 15 +BEGIN + PROMPT CP35 13 "" + PICTURE "." + FIELD LF_QUAG->P427 + MESSAGE K_TAB,F_P41TOT +END + +NUMBER F_P418 15 +BEGIN + PROMPT CP35 16 "" + PICTURE "." + FIELD LF_QUAG->P428 + MESSAGE K_TAB,F_P41TOT +END + +NUMBER F_P419 15 +BEGIN + PROMPT CP35 17 "" + PICTURE "." + FIELD LF_QUAG->P429 + MESSAGE K_TAB,F_P41TOT +END + +NUMBER F_P41TOT 15 +BEGIN + PROMPT CP35 18 "" + PICTURE "." + FLAGS "D" + FIELD LF_QUAG->P42TOT + NUM_CALC {#F_P411+#F_P412+#F_P413+#F_P414-#F_P415+#F_P416-#F_P417+#F_P418+#F_P419} +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 3 "1) Ritenute 10% sugli utili di cui e' stata " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 4 " deliberata la distribuzione nel 1995" +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 5 "2) Ritenute 10%,12,50,15%,30%,32,4% o 50% sugli utili in denaro " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 6 " o in natura, su azioni di risparmio ..." +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 7 " a) effettuate nel primo semestre 1995 " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 8 " b) effettuate nel secondo semestre 1995 " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 9 "3) Versamento di conguaglio su utili in denaro " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 10 " a) effettuate nel primo semestre 1995 " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 11 " meno recuperi " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 12 " b) effettuate nel secondo semestre 1995 " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 13 " meno recuperi " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 14 "4) Ritenuta 10% sugli utili corrisposti da società" +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 15 " cooperative ai soci persone fisiche " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 16 " a) effettuate nel primo semestre 1995 " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP31 17 " b) effettuate nel secondo semestre 1995 " +END + +TEXT DLG_NULL +BEGIN + PROMPT CP34 18 "@bTOTALE " +END + +ENDPAGE +ENDMASK + +#include "771234b.uml" +#include "77_g_p2.uml" +#include "771234c.uml" +#include "77_g_p3.uml" \ No newline at end of file diff --git a/m770/771234b.uml b/m770/771234b.uml new file mode 100755 index 000000000..8f614e587 --- /dev/null +++ b/m770/771234b.uml @@ -0,0 +1,62 @@ +// 771234b.uml - Quadro G prospetto 1-I + +PAGE "" -1 -1 76 11 + +DATE 101 +BEGIN + PROMPT 1 1 "Data delibera " + GROUP 1 +END + +STRING 102 18 +BEGIN + PROMPT 1 2 "Titolo distribuzione " + GROUP 1 +END + +DATE 103 +BEGIN + PROMPT 1 3 "Data pagamento utili " + GROUP 1 +END + +NUMBER 104 15 +BEGIN + PROMPT 1 4 "Ammontare azione o quota " + PICTURE "." + GROUP 1 +END + +NUMBER 105 9 +BEGIN + PROMPT 1 5 "Numero azioni e quote " + GROUP 1 +END + +NUMBER 106 15 +BEGIN + PROMPT 1 6 "Ammontare complessivo " + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771234c.uml b/m770/771234c.uml new file mode 100755 index 000000000..d28507d32 --- /dev/null +++ b/m770/771234c.uml @@ -0,0 +1,65 @@ +// 771234c.uml - Quadro G prospetto 2 + +PAGE "" -1 -1 76 12 + +STRING 101 35 +BEGIN + PROMPT 1 1 "Delibera " + FLAGS "D" +END + +NUMBER 102 15 +BEGIN + PROMPT 1 3 "Importo " + PICTURE "." + GROUP 1 +END + +NUMBER 103 15 +BEGIN + PROMPT 1 4 "Utili corrisposti fino al 31-12-94 " + PICTURE "." + GROUP 1 +END + +NUMBER 104 15 +BEGIN + PROMPT 1 5 "Utili da corrispondere al 31-12-94 " + PICTURE "." + GROUP 1 +END + +NUMBER 105 15 +BEGIN + PROMPT 1 6 "Utili corrisposti nel 1995 " + PICTURE "." + GROUP 1 +END + +NUMBER 106 15 +BEGIN + PROMPT 1 7 "Utili da corrispondere al 31-12-95 " + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771235a.h b/m770/771235a.h new file mode 100755 index 000000000..1da131156 --- /dev/null +++ b/m770/771235a.h @@ -0,0 +1,31 @@ +// OBSOLETO +// 771235a.h - distinta quadro G +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_TIPOA 103 +#define F_CODANAGR 104 +#define F_CODANAGRCOM 105 +#define F_ANNODIC 106 +#define F_RAGSOC 107 +#define F_CODANAGRPERC 108 +#define F_GENERA 109 +#define F_RAGSOCCOM 110 +#define F_RAGSOCPER 111 +#define F_NPROG 112 + +#define F_CODCAUS 113 +#define F_DESCRCAUS 114 +#define F_CODTRIB 115 +#define F_IC 116 +#define F_TOTALE 117 +#define F_SOMME 118 +#define F_IMPONIBILE 119 +#define F_PERC 120 +#define F_IMPORTO 121 +#define F_NETTO 122 +#define F_RI 123 +#define F_RA 124 +#define F_QUOTAPRO 125 +#define F_SPESEANT 126 +#define F_TIPOAF 127 +#define F_RITENUTE 128 diff --git a/m770/771290.cpp b/m770/771290.cpp new file mode 100755 index 000000000..828ecf898 --- /dev/null +++ b/m770/771290.cpp @@ -0,0 +1,335 @@ +// 771290.cpp - Quadro H +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "771290.h" +#include "771295.h" +#include "77lib.h" +#include "774200.h" +#include + +class TQuadro_H_app : public TRelation_application +{ + TRelation * _rel; + TMask * _msk; + TRiporti _rip; + + int _mode; // Modo maschera corrente + long _codditta; + int _anno; + TString _ente; + bool _registra; + +protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode); + virtual bool changing_mask(int mode) {return FALSE; } + +// void init_mask(TMask&); + virtual void init_query_mode(TMask&); + virtual void init_modify_mode(TMask&); + virtual void init_insert_mode(TMask&); + virtual void init_query_insert_mode(TMask&); + virtual void on_config_change(); + +public: + bool almeno_un_dettaglio(TMask&); + void refresh(TMask& m); + static bool generazione (TMask_field& f , KEY k); + static bool dettaglio (TMask_field& f , KEY k); + static bool desc_ente (TMask_field& f , KEY k); + static bool codditta_hnd(TMask_field& f , KEY k); + + TQuadro_H_app() {} +}; + + +HIDDEN TQuadro_H_app& app() { return (TQuadro_H_app&) main_app(); } + +bool TQuadro_H_app::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + + return TRUE; +} + +void TQuadro_H_app::refresh(TMask& m) +{ + TEdit_field& datore = _msk->efield(F_DAT); + TEdit_field& lavora = _msk->efield(F_LAV); + + //datore.check(); + //lavora.check(); + datore.autoload(_rel); + lavora.autoload(_rel); + + if (almeno_un_dettaglio(m)) + m.enable (F_BTG_GENERA); + else + m.disable(F_BTG_GENERA); + + m.enable (F_BTG_DETTAGLIO); +} + +bool TQuadro_H_app::generazione(TMask_field& f , KEY k) +{ + if (k == K_SPACE) + { + TString appname = "775 -1"; + TToken_string body; + + body.add(app()._codditta); + body.add(app()._anno); + body.add(app()._ente); + + TMessage msg (appname,"",(const char*) body); + + TMailbox mb; + mb.send(msg); + + TLocalisamfile& quaH = app().get_relation()->lfile(); + + quaH.setkey(1); + quaH.zero(); + quaH.put("CODDITTA", app()._codditta); + quaH.put("H1ANNO", app()._anno); + quaH.put("H1ENTE", app()._ente); + quaH.read(_isequal,_unlock); + TExternal_app a(appname); + a.run(); + quaH.read(_iscurr,_lock); + f.mask().set_focus(); + app().refresh(f.mask()); + } + + return TRUE; +} + +bool TQuadro_H_app::dettaglio(TMask_field& f , KEY k) +{ + if (k == K_SPACE) + { + TString appname = "771mod -4"; + TToken_string body; + + body << F_ANNO << "|"; + body << F_ANNO << "=" << f.mask().get(F_H1ANNO) << "|"; + body << F_CODDITTA << "=" << f.mask().get(F_CODDITTA) << "|"; + body << F_ENTE << "=" << f.mask().get(F_ENTE); + + TMessage msg (appname,MSG_FS,(const char*) body); + + TMailbox mb; + mb.send(msg); + + TLocalisamfile& quaH = app().get_relation()->lfile(); + + quaH.setkey(1); + quaH.zero(); + quaH.put("CODDITTA", app()._codditta); + quaH.put("H1ANNO", app()._anno); + quaH.put("H1ENTE", app()._ente); + quaH.read(_isequal,_unlock); + TExternal_app a(appname); + a.run(); + quaH.read(_iscurr,_lock); + f.mask().set_focus(); + app().refresh(f.mask()); + } + + return TRUE; +} + +bool TQuadro_H_app::desc_ente(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.to_check(k) && f.mask().is_running()) + { + TTable ente ("%ENT"); + TString descrizione; + + TString codice = f.get(); + + ente.zero(); + ente.put("CODTAB", codice); + if (ente.read() == NOERR) + { + descrizione = ente.get("S0"); + f.mask().set(F_DESCENTE, descrizione); + } + else + { + descrizione = ""; + f.mask().set(F_DESCENTE, descrizione); + return f.warning_box("Valore non presente in tabella Enti previdenziali"); + } + + } + + return TRUE; +} + +void TQuadro_H_app::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno = (int) conf.get_long(ANNO_SEL); +} + +TMask* TQuadro_H_app::get_mask(int mode) +{ + return _msk; +} + +bool TQuadro_H_app::almeno_un_dettaglio(TMask& m) +{ + TLocalisamfile dett (LF_DETH); + + dett.setkey(1); + dett.zero(); + dett.put("CODDITTA", _codditta); + dett.put("ANNO", _anno); + dett.put("ENTE", _ente); + for (dett.read();!dett.eof();dett.next()) + { + long codditta = dett.get_long("CODDITTA"); + int anno = dett.get_int ("ANNO"); + TString ente = dett.get ("ENTE"); + + if (_codditta == codditta && _anno == anno && _ente == ente) + return TRUE; + } + + return FALSE; +} + +void TQuadro_H_app::init_insert_mode(TMask& m) +{ + m.show(F_ENTE); + m.hide(F_ENTEBIS); + + m.disable(F_BTG_GENERA); + m.disable(F_BTG_DETTAGLIO); +} + +void TQuadro_H_app::init_query_mode(TMask& m) +{ + on_config_change(); + + m.set(F_H1ANNO, _anno); + + m.disable(F_BTG_GENERA); + m.disable(F_BTG_DETTAGLIO); + + m.show(F_ENTE); + m.hide(F_ENTEBIS); +} + +void TQuadro_H_app::init_query_insert_mode(TMask& m) +{ + m.set(F_H1ANNO, _anno); + + m.hide(F_ENTE); + m.show(F_ENTEBIS); + + m.disable(F_BTG_GENERA); + m.disable(F_BTG_DETTAGLIO); +} + +void TQuadro_H_app::init_modify_mode(TMask& m) +{ + + _codditta = m.get_long(F_CODDITTA); + _anno = m.get_int (F_H1ANNO); + _ente = m.get (F_ENTE); + + if (almeno_un_dettaglio(m)) + m.enable (F_BTG_GENERA); + else + m.disable(F_BTG_GENERA); + + m.enable (F_BTG_DETTAGLIO); + + m.show(F_ENTE); + m.hide(F_ENTEBIS); +} + +int TQuadro_H_app::rewrite(const TMask& m) +{ + m.autosave(_rel); + _registra = TRUE; + return _rel->rewrite(); +} + +int TQuadro_H_app::write(const TMask& m) +{ + m.autosave(_rel); + _registra = TRUE; + return _rel->write(); +} + +bool TQuadro_H_app::remove() +{ + _registra = TRUE; + return TRelation_application::remove(); +} + +bool TQuadro_H_app::user_create() +{ + _rel = new TRelation (LF_QUAH); + _msk = new TMask("771290a"); + + set_search_field(F_H1ANNO); + _msk->set_handler (F_CODDITTA, codditta_hnd); + _msk->set_handler (F_BTG_GENERA, generazione); + _msk->set_handler (F_BTG_DETTAGLIO, dettaglio); + _msk->set_handler (F_ENTE, desc_ente); + _msk->set_handler (F_ENTEBIS, desc_ente); + + _registra = FALSE; + + return TRUE; +} + +bool TQuadro_H_app::user_destroy() +{ + if (_registra) +// 20.12.95 l'anno deve essere quello dei parametri +// _rip.set("H",_anno); + _rip.set("H"); + + delete _msk; + delete _rel; + + return TRUE; +} + +int m71290(int argc, char* argv[]) +{ + TQuadro_H_app a; + a.run(argc, argv, "Quadro H"); + return 0; +} + + diff --git a/m770/771290.h b/m770/771290.h new file mode 100755 index 000000000..e3f67de39 --- /dev/null +++ b/m770/771290.h @@ -0,0 +1,13 @@ +// Campi maschera manutenzione quadro H 771290a.uml + +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_H1ANNO 103 +#define F_ENTE 104 +#define F_DAT 105 +#define F_LAV 106 +#define F_BTG_GENERA 107 +#define F_BTG_DETTAGLIO 108 +#define F_ENTEBIS 109 +#define F_DESCENTE 110 + diff --git a/m770/771290a.uml b/m770/771290a.uml new file mode 100755 index 000000000..f5d1c87e3 --- /dev/null +++ b/m770/771290a.uml @@ -0,0 +1,140 @@ +#include "771290.h" + +TOOLBAR "" 0 18 0 4 + +BUTTON F_BTG_GENERA 21 2 +BEGIN + PROMPT -13 -3 "~Generazione" +END + +BUTTON F_BTG_DETTAGLIO 21 2 +BEGIN + PROMPT -23 -3 "~Dettaglio" +END + +#include + +ENDPAGE + +PAGE "Gestione quadro H" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + FIELD LF_QUAH->CODDITTA + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGSOC RAGSOC + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" +END + +NUMBER F_H1ANNO 4 +BEGIN + PROMPT 2 5 "Anno dichiarazione " + FIELD LF_QUAH->H1ANNO + KEY 1 + USE LF_QUAH KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (H1ANNO=#F_H1ANNO)) + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + INPUT H1ANNO F_H1ANNO + DISPLAY "Ditta" CODDITTA + DISPLAY "Anno" H1ANNO + DISPLAY "Ente" H1ENTE + DISPLAY "Contr.Datore@15" H1DAT + DISPLAY "Contr.Lavoratore" H1LAV + OUTPUT F_H1ANNO H1ANNO + OUTPUT F_ENTE H1ENTE + OUTPUT F_DAT H1DAT + OUTPUT F_LAV H1LAV + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "Ente previdenziale" +END + +NUMBER F_ENTE 2 +BEGIN + PROMPT 2 8 "e assistenza percettore " + COPY USE F_H1ANNO + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + INPUT H1ANNO F_H1ANNO + INPUT H1ENTE F_ENTE + COPY DISPLAY F_H1ANNO + COPY OUTPUT F_H1ANNO + FIELD LF_QUAH->H1ENTE + MESSAGE COPY,F_ENTEBIS + KEY 1 +END + +NUMBER F_ENTEBIS 2 +BEGIN + PROMPT 2 8 "e assistenza percettore tabella " + FLAGS "G" + USE %ENT KEY 1 + CHECKTYPE FORCED + INPUT CODTAB F_ENTEBIS + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@60" S0 + OUTPUT F_ENTEBIS CODTAB + FIELD LF_QUAH->H1ENTE + MESSAGE COPY,F_ENTE + VALIDATE NOT_EMPTY_FUNC + WARNING "Valore non presente in tabella Enti previdenziali" + KEY 1 +END + +STRING F_DESCENTE 60 +BEGIN + PROMPT 2 9 "Descrizione " + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 11 "Contributi obbligatori" +END + +NUMBER F_DAT 15 +BEGIN + PROMPT 2 12 "a carico del datore di lavoro " + FIELD LF_QUAH->H1DAT + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 14 "Contributi obbligatori a " +END + +NUMBER F_LAV 15 +BEGIN + PROMPT 2 15 "carico del lavoratore dipendente " + FIELD LF_QUAH->H1LAV + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771295.cpp b/m770/771295.cpp new file mode 100755 index 000000000..9481a2364 --- /dev/null +++ b/m770/771295.cpp @@ -0,0 +1,106 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "771295.h" +#include + +class TDettaglio_H_app : public TRelation_application +{ + TRelation * _rel; + TMask * _msk; + + int _mode; // Modo maschera corrente + long _codditta; + int _anno; + TString _ente; + +protected: + virtual bool user_create(); + virtual bool user_destroy(); + + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode); + virtual bool changing_mask(int mode) {return FALSE; } + + // void init_mask(TMask&); + //virtual void init_query_mode(TMask&); + //virtual void init_modify_mode(TMask&); + //virtual void init_insert_mode(TMask&); + //virtual void init_query_insert_mode(TMask&); + +public: + bool almeno_un_dettaglio(TMask&); + static bool generazione(TMask_field& f , KEY k); + static bool dettaglio (TMask_field& f , KEY k); + static bool descr_ente (TMask_field& f , KEY k); + + TDettaglio_H_app() {} +}; + +bool TDettaglio_H_app::descr_ente (TMask_field& f , KEY k) +{ + if (k == K_TAB || k == K_SPACE) + { + TTable ent ("%ENT"); + TString16 dep; + TString descr; + + int ente = atoi(f.get()); + dep.format("%d", ente); + + ent.zero(); + ent.put("CODTAB", dep); + if (ent.read() == NOERR) + descr = ent.get("S0"); + else + descr = ""; + + f.mask().set(F_DESCRENTE, descr); + } + + return TRUE; +} + +TMask* TDettaglio_H_app::get_mask(int mode) +{ + return _msk; +} + +bool TDettaglio_H_app::user_create() +{ + _rel = new TRelation (LF_DETH); + + _msk = new TMask("771295a"); + + _msk->set_handler(F_ENTE, descr_ente); + + set_search_field(F_ANNO); + + return TRUE; +} + +bool TDettaglio_H_app::user_destroy() +{ + delete _msk; + delete _rel; + + return TRUE; +} + +int m71295(int argc, char* argv[]) +{ + TDettaglio_H_app a; + a.run(argc, argv, "Dettaglio Quadro H"); + return 0; +} + + diff --git a/m770/771295.h b/m770/771295.h new file mode 100755 index 000000000..fdfc7207b --- /dev/null +++ b/m770/771295.h @@ -0,0 +1,13 @@ +// Campi maschera manutenzione dettaglio quadro H 771295a.uml + +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_ANNO 103 +#define F_ENTE 104 +#define F_DATAVERS 105 +#define F_NUMVERS 106 +#define F_NREGINOTA 107 +#define F_IMPVERS 108 +#define F_CONTRDAT 109 +#define F_CONTRLAV 110 +#define F_DESCRENTE 111 diff --git a/m770/771295a.uml b/m770/771295a.uml new file mode 100755 index 000000000..01b24693f --- /dev/null +++ b/m770/771295a.uml @@ -0,0 +1,156 @@ +#include "771295.h" + +TOOLBAR "" 0 20 0 2 + +#include + +ENDPAGE + +PAGE "Gestione dettaglio quadro H" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "FRD" + USE LF_NDITTE KEY 1 + FIELD LF_DETH->CODDITTA + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGSOC RAGSOC + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" +END + +NUMBER F_ANNO 4 +BEGIN + PROMPT 2 4 "Anno dichiarazione " + FIELD LF_DETH->ANNO + KEY 1 + USE LF_DETH KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (ANNO=#F_ANNO) && (ENTE=#F_ENTE)) + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + INPUT ANNO F_ANNO + DISPLAY "Ditta" CODDITTA + DISPLAY "Anno" ANNO + DISPLAY "Ente@33" ENTE + DISPLAY "Data versamento" DATAVERS + DISPLAY "Numero versamento" NUMVERS + OUTPUT F_ANNO ANNO + OUTPUT F_ENTE ENTE + OUTPUT F_DATAVERS DATAVERS + OUTPUT F_NUMVERS NUMVERS + FLAGS "R" +END + +NUMBER F_ENTE 2 +BEGIN + PROMPT 2 5 "Ente " + COPY USE F_ANNO + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + INPUT ANNO F_ANNO + INPUT ENTE F_ENTE + COPY DISPLAY F_ANNO + COPY OUTPUT F_ANNO + FIELD LF_DETH->ENTE + VALIDATE NOT_EMPTY_FUNC + FLAGS "G" + KEY 1 +END + +STRING F_DESCRENTE 60 +BEGIN + PROMPT 2 6 "Descrizione " + FLAGS "D" +END + +DATE F_DATAVERS +BEGIN + PROMPT 2 7 "Data versamento " + COPY USE F_ANNO + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + INPUT ANNO F_ANNO + INPUT ENTE F_ENTE + INPUT DATAVERS F_DATAVERS + COPY DISPLAY F_ANNO + COPY OUTPUT F_ANNO + FIELD LF_DETH->DATAVERS + KEY 1 +END + +NUMBER F_NUMVERS 5 +BEGIN + PROMPT 2 8 "Numero versamento " + COPY USE F_ANNO + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + INPUT ANNO F_ANNO + INPUT ENTE F_ENTE + INPUT DATAVERS F_DATAVERS + INPUT NUMVERS F_NUMVERS + COPY DISPLAY F_ANNO + COPY OUTPUT F_ANNO + FIELD LF_DETH->NUMVERS + FLAGS "R" + KEY 1 +END + +NUMBER F_NREGINOTA 7 +BEGIN + PROMPT 2 10 "N.ro registr. I nota " + FLAGS "R" + FIELD LF_DETH->NREGINOTA +END + +NUMBER F_IMPVERS 15 +BEGIN + PROMPT 2 11 "Importo versato " + PICTURE "." + FLAGS "R" + FIELD LF_DETH->IMPVERS +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 12 "Contributi obbligatori" +END + +NUMBER F_CONTRDAT 15 +BEGIN + PROMPT 2 13 "a carico del datore di lavoro " + FIELD LF_DETH->CONTRDAT + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 14 "Contributi obbligatori a" +END + +NUMBER F_CONTRLAV 15 +BEGIN + PROMPT 2 15 "carico del lavoratore dipendente " + FIELD LF_DETH->CONTRLAV + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771300.cpp b/m770/771300.cpp new file mode 100755 index 000000000..182b2d84a --- /dev/null +++ b/m770/771300.cpp @@ -0,0 +1,297 @@ +// 771300.cpp - Gestione quadro I e Prospetto dati generali +// +// 771mod -2 I - quadro I +// 771mod -2 W - prospetto dati generali +// 771mod -2 1 - quadro I dichiarante +// 771mod -2 2 - prospetto dati generali dichiarante +// +// 18.3.96 Aggiunto metodo per registrare flag in QCOMP +// NB se cambia numero quadri, modificare set_rel_field_quadri +// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "771300.h" +#include "77lib.h" + +HIDDEN const int QUADRI = 25; +// Corrispondenza tra posizione nel record (campo:QCOMP) e id della maschera +HIDDEN int _dlg_comp_array[QUADRI] = { + F_QCOMPA, + F_QCOMPA1, + F_QCOMPA2, + F_QCOMPA3, + F_QCOMPB, + F_QCOMPB1, + F_QCOMPC, + F_QCOMPD, + F_QCOMPD1, + F_QCOMPE, + F_QCOMPE1, + F_QCOMPE2, + F_QCOMPF, + F_QCOMPF1, + F_QCOMPF2, + F_QCOMPG, + F_QCOMPG1, + F_QCOMPH, + F_QCOMPI, + F_QCOMPN, + F_QCOMPP, + F_QCOMPQ, + F_QCOMPR, + F_QCOMPS, + F_QCOMPT + }; + +// Da id della maschera ritorna la corrispondente posizione in QCOMP +// Ritorna -1 se viene passato un id che non esiste in _dlg_array +HIDDEN int dlg2pos(const int dlg) +{ + for (int i=0; i < QUADRI; i++) + if (_dlg_comp_array[i] == dlg) + return i; + return -1; +} + +class TQuadroI : public TRelation_application +{ + TRelation * _rel; + TMask * _msk; + char _quadro; + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode); + virtual bool changing_mask(int mode) {return FALSE; } + virtual int read(TMask& m); + virtual void init_query_mode(TMask&); + virtual void init_modify_mode(TMask&); + virtual int write(const TMask& m); + virtual int rewrite(const TMask& m); + public: + void set_field_quadri(TMask& m); + void set_rel_field_quadri(const TMask& m); + void setta_ditta(TMask& m); + TQuadroI(char q) : _quadro(q) {} +}; + +HIDDEN TQuadroI& app() { return (TQuadroI&) main_app(); } + +void TQuadroI::setta_ditta(TMask& m) +{ + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + m.set(F_CODDITTA, codditta); + m.field(F_CODDITTA).check(); + } +} + +void TQuadroI::init_query_mode(TMask& m) +{ + setta_ditta(m); + m.send_key(K_AUTO_ENTER,0); +} + +void TQuadroI::init_modify_mode(TMask& m) +{ + setta_ditta(m); + + if (_quadro == 'W' || _quadro == '2') + { + TConfig conf(CONFIG_STUDIO); + int anno = (int) conf.get_long(ANNO_SEL); + m.set(F_ANNODIC, anno); + } +} + +// Scrive i flag di q.comp. nella relazione +void TQuadroI::set_rel_field_quadri(const TMask& m) +{ + int dlg, pos; + +// NB Cambiare qui se cambia numero quadri + TString qcomp(QUADRI); + qcomp.spaces(QUADRI); + + for (dlg=F_QCOMPA; dlg<=F_QCOMPT; dlg++) + { + pos = dlg2pos(dlg); + if (pos >= 0) + qcomp[pos] = m.get(dlg) == "X" ? 'X' : ' '; + } + _rel->curr().put("QCOMP", qcomp); + +// Stessa cosa con flag quadri inviati + TString qsuppinv (QUADRI+1); + qsuppinv.spaces(QUADRI+1); + + for (pos=0, dlg=F_QSUPPA; dlg<=F_QSUPPT; dlg++, pos++) + { + qsuppinv[pos] = m.get(dlg) == "X" ? 'X' : ' '; + } + _rel->curr().put("QSUPPINV", qsuppinv); +} + +void TQuadroI::set_field_quadri(TMask& m) +{ + int start_dlg = F_QCOMPA; + int dlg; +// La sequenza e' A A3 B B1..H I poi sotto A1 A2 N..T + TString qcomp (_rel->lfile().get("QCOMP")); + + if (qcomp != "") + { + int lenght = qcomp.len(); + for (int i = 0; i < lenght; i++) + { + if (qcomp[i] == 'X') + { + dlg = _dlg_comp_array[i]; + m.set(dlg, "X"); + } + } + } + + TString suppinv (_rel->lfile().get("QSUPPINV")); + + start_dlg = F_QSUPPA; + + if (suppinv != "") + { + int lenght = suppinv.len(); + for (int i = 0; i < lenght; i++) + if (suppinv[i] == 'X') + { + dlg = start_dlg + i; + m.set(dlg, "X"); + } + } +} + +TMask* TQuadroI::get_mask(int mode) +{ + return _msk; +} + +int TQuadroI::read(TMask& m) +{ + m.autoload(_rel); +// Si posiziona sul record del dichiarante, e se non esiste lo crea + if (_quadro == '1' || _quadro == '2') + { + TString16 dep; dep << COD_QUA_I_DIC; + m.set(F_TIPOQUA1, dep); + if (_quadro == '1') + m.set(F_TIPOQUA2, dep); + _rel->curr().put("TIPOQUA", COD_QUA_I_DIC); + const int err = _rel->read(); + if (err != NOERR) + enter_dichiar_770(get_firm_770(), anno_770(), TRUE); + + m.autoload(_rel); + } + +// Setta i flag di quadro compilato nel prospetto dai generali + if (_quadro == 'W' || _quadro == '2') + set_field_quadri(m); + + return NOERR; +} + +bool TQuadroI::user_create() +{ + switch (_quadro) + { + case '1': + _rel = new TRelation (LF_BASE); + _rel->add(LF_BASEBIS,"TIPOQUA=\"D\"&&CODDITTA=CODDITTA",1); + _msk = new TMask("771300a"); + break; + case 'I': + _rel = new TRelation (LF_BASE); + _rel->add(LF_BASEBIS,"CODDITTA=CODDITTA",1); + _msk = new TMask("771300a"); + break; + case 'W': + _msk = new TMask("771400a"); + _rel = new TRelation (LF_BASEBIS); + break; + case '2': + _msk = new TMask("771400b"); + _rel = new TRelation (LF_BASEBIS); + break; + default: + break; + } + return TRUE; +} + +bool TQuadroI::user_destroy() +{ + delete _msk; + delete _rel; + return TRUE; +} + +int TQuadroI::write(const TMask& m) +{ + TRelation *r = get_relation(); + m.autosave(r); +// Setta i flag di quadro compilato nel prospetto dai generali nella relazione + if (_quadro == 'W' || _quadro == '2') + set_rel_field_quadri(m); + r->write(); + return r->status(); +} + + +int TQuadroI::rewrite(const TMask& m) +{ + TRelation *r = get_relation(); + m.autosave(r); +// Setta i flag di quadro compilato nel prospetto dai generali nella relazione + if (_quadro == 'W' || _quadro == '2') + set_rel_field_quadri(m); + r->rewrite(); + return r->status(); +} + +int m71300(int argc, char* argv[]) +{ + if (argc < 3) + return -1; + + char* title = NULL; + char quadro = toupper(*argv[2]); + TQuadroI a (quadro); + + switch (quadro) + { + case 'I': + case '1': + title = "Gestione quadro I"; + break; + case 'W': + case '2': + title = "Prospetto dati generali"; + break; + default: + break; + } + + a.run(argc, argv, title); + return 0; +} + + diff --git a/m770/771300.h b/m770/771300.h new file mode 100755 index 000000000..649d1b49c --- /dev/null +++ b/m770/771300.h @@ -0,0 +1,217 @@ +// 771300.h +// Campi della maschera del QUADRO I +// +// Lista modifiche +// +// 7.5.96 Aggiunti campi per dichiarazione 96 +// +#define F_A0NFCOM 101 +#define F_A0NLDIP 102 +#define F_A0COBB 103 +#define F_A0CNET 104 +#define F_A0EPREV 105 +#define F_A0IITRA 106 +#define F_A0CTER 107 +#define F_A0TIMP 108 +#define F_A0ILOR 109 +#define F_A0TDET 110 +#define F_A0RTER 111 +#define F_A0RDAT 112 +#define F_A0ERIT 113 +#define F_A0CARR 114 +#define F_A0AARR 115 +#define F_A0DARR 116 +#define F_A0RARR 117 +#define F_A0RITSI 118 +#define F_A0CINPS 119 +#define F_A0RITOPEVA 120 +#define F_A0RITOPESA 121 +#define F_A0CIIAUT 122 +#define F_A0NADLAV 123 +#define F_A0NACAAF 124 + +#define F_B0NFCOM 125 +#define F_B0NLDIP 126 +#define F_B0TFR93 127 +#define F_B0AI 128 +#define F_B0COLAV 129 +#define F_B0TFR7492 130 +#define F_B0AI7492 131 +#define F_B0RITSI 132 +#define F_B0IMP 133 +#define F_B0TIMP 134 +#define F_B0ROP 135 +#define F_B0AIINPS 136 +#define F_B0ROPESA 137 +#define F_B0CIIAUT 138 +#define F_B1NFCOM 139 +#define F_B1NPER 140 +#define F_B1TIND 141 +#define F_B1TIRM 142 +#define F_B1TICOM 143 +#define F_C0NFCOM 144 +#define F_C0NLASS 145 +#define F_C0ACTOT 146 +#define F_C0SNSRIT 147 +#define F_C0ROPE 148 +#define F_C0CIIAUT 149 +#define F_D0NFCOM 150 +#define F_D0NLAUT 151 +#define F_D0ACTOT 152 +#define F_D0SNSRIT 153 +#define F_D0ROPE 154 +#define F_D0CIIAUT 155 +#define F_D1NFCOM 156 +#define F_D1NPER 157 +#define F_D1TACOR 158 +#define F_D1SNSRIT 159 +#define F_D1ROPE 160 +#define F_E0NFCOM 161 +#define F_E0NPER 162 +#define F_E0AIMP 163 +#define F_E0ROPE 164 +#define F_E0SNSRIT 165 +#define F_E1NFCOM 166 +#define F_E1NPER 167 +#define F_E1SCOR 168 +#define F_E1BCOM 169 +#define F_E1ROPE 170 +#define F_E1ACOM 171 +#define F_E1BCOM2 172 +#define F_E1ROPE2 173 +#define F_E2NFCOM 174 +#define F_E2NPER 175 +#define F_E2ROPE 176 +#define F_E2SSRIT 177 +#define F_F0SRITA 178 +#define F_F0ROPEA 179 +#define F_F0TACCA 180 +#define F_F0EDACCA 181 +#define F_F0ERIMA 182 +#define F_F0SSRITBF 183 +#define F_F0ROPEBF 184 +#define F_F0SSVA 185 +#define F_F0ROPEVA 186 +#define F_F1SSRIT 187 +#define F_F1ROPE 188 +#define F_F2SSRIT 189 +#define F_F2ROPE 190 +#define F_G0NFCOM 191 +#define F_G0NAZI1 192 +#define F_G0UDEN1 193 +#define F_G0UNAT1 194 +#define F_G0IUTI2 195 +#define F_G0ROPE 196 +#define F_G0USRIT3 197 +#define F_G0RACC3 198 +#define F_G0RIMP3 199 +#define F_G0UNSRIT3 200 +#define F_G0USPE 201 +#define F_G0NPER 202 +#define F_G0UPAG 212 +#define F_G1UCOR 203 +#define F_G1USRIT 204 +#define F_G1RACC 206 +#define F_G1RIMP 207 +#define F_G1UNSRIT 208 +#define F_H0CODLAV 209 +#define F_H0COLDIP 210 +#define F_CODDITTA 211 +#define F_RAGSOC 212 +#define F_CODDITTAG 213 + +#define F_A0CRIMPRAS 214 +#define F_B0CRIMPRAS 215 +#define F_C0CRIMPRAS 216 +#define F_D0CRIMPRAS 217 +#define F_D1CRIMPRAS 218 +#define F_E0CRIMPRAS 219 +#define F_E1CRIMPRAS 220 +#define F_E2CRIMPRAS 221 +#define F_F0CRIMPRAS 222 +#define F_F1CRIMPRAS 223 +#define F_F2CRIMPRAS 224 +#define F_G0CRIMPRAS 225 +#define F_G1CRIMPRAS 226 + +// Quadro A-3 +#define F_A3NFCOM 218 +#define F_A3NUMPER 219 +#define F_A3REPT10 220 +#define F_A3REPT12 221 + +// Campi maschera prospetto dati generali +#define F_DATLAV 250 +#define F_ER92C93 251 +#define F_ER93C94 252 +#define F_ANNODIC 253 +#define F_H0NQLAGG 254 +#define F_NSUPPM 255 + +// Flag quadri compilati. Attenzione a NON modificare l'ordine! +// (v. 771300.cpp e 771400a.uml e 776100.cpp) +#define F_QCOMPA 256 +#define F_QCOMPA3 257 +#define F_QCOMPB 258 +#define F_QCOMPB1 259 +#define F_QCOMPC 260 +#define F_QCOMPD 261 +#define F_QCOMPD1 262 +#define F_QCOMPE 263 +#define F_QCOMPE1 264 +#define F_QCOMPE2 265 +#define F_QCOMPF 266 +#define F_QCOMPF1 267 +#define F_QCOMPF2 268 +#define F_QCOMPG 269 +#define F_QCOMPG1 270 +#define F_QCOMPH 271 +#define F_QCOMPI 272 +#define F_QCOMPA1 273 +#define F_QCOMPA2 274 +#define F_QCOMPN 275 +#define F_QCOMPP 276 +#define F_QCOMPQ 277 +#define F_QCOMPR 278 +#define F_QCOMPS 279 +#define F_QCOMPT 280 + +#define F_QSUPPA 400 +#define F_QSUPPA1 401 +#define F_QSUPPA2 402 +#define F_QSUPPA3 403 +#define F_QSUPPB 404 +#define F_QSUPPB1 405 +#define F_QSUPPC 406 +#define F_QSUPPD 407 +#define F_QSUPPD1 408 +#define F_QSUPPE 409 +#define F_QSUPPE1 410 +#define F_QSUPPE2 411 +#define F_QSUPPF 412 +#define F_QSUPPF1 413 +#define F_QSUPPF2 414 +#define F_QSUPPG 415 +#define F_QSUPPG1 416 +#define F_QSUPPH 417 +#define F_QSUPPI 418 +#define F_QSUPPL 419 +#define F_QSUPPN 420 +#define F_QSUPPP 421 +#define F_QSUPPQ 422 +#define F_QSUPPR 423 +#define F_QSUPPS 424 +#define F_QSUPPT 425 + +#define F_CRIMPDL357 307 +#define F_TIPOQUA1 430 +#define F_TIPOQUA2 431 +#define F_TIPOQUA 432 + +// Aggiunte 96 +#define F_A0CRIMPL85 433 +#define F_A0INCDET 434 +#define F_B0CRIMPL85 435 +#define F_C0CONTSSN 436 +#define F_D0CRIMPL85 437 +#define F_G0ROPESPET 438 diff --git a/m770/771300a.uml b/m770/771300a.uml new file mode 100755 index 000000000..5dacfcf83 --- /dev/null +++ b/m770/771300a.uml @@ -0,0 +1,1391 @@ +// Quadro I +#include "771300.h" +TOOLBAR "" 0 20 0 2 +BUTTON DLG_SAVEREC 8 2 +BEGIN +PROMPT -13 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END +BUTTON DLG_CANCEL 8 2 +BEGIN +PROMPT -23 -1 "" +MESSAGE EXIT,K_ESC +END +BUTTON DLG_QUIT 8 2 +BEGIN +PROMPT -33 -1 "" +MESSAGE EXIT,K_QUIT +END +ENDPAGE + +PAGE "QUADRO I" -1 -1 78 18 + +LISTBOX F_TIPOQUA1 2 +BEGIN + PROMPT 90 90 "" + ITEM " |Normale" + ITEM "D|Dichiarante" + FLAGS "D" + KEY 1 + FIELD LF_BASEBIS->CODDIC +// CHECKTYPE REQUIRED +END + +LISTBOX F_TIPOQUA2 2 +BEGIN + PROMPT 90 90 "" +// PROMPT 10 3 "" + ITEM " |Normale" + ITEM "D|Dichiarante" + FLAGS "D" + KEY 1 + FIELD LF_BASE->CODDIC +// CHECKTYPE REQUIRED +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + FLAGS "RG" + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE REQUIRED + FIELD LF_BASE->CODDITTA + KEY 1 + MESSAGE COPY,F_CODDITTAG +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" +END + +NUMBER F_CODDITTAG 5 +BEGIN + PROMPT 45 1 "Ditta " + FLAGS "HR" + FIELD LF_BASEBIS->CODDITTA +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 4 "I1 - Quadro A" +END + +NUMBER F_A0NFCOM 5 +BEGIN + PROMPT 1 5 "N.fogli " + HELP "Numero di fogli compilati" + FIELD LF_BASE->A0NFCOM + FLAGS "R" +END + +NUMBER F_A0NLDIP 5 +BEGIN + PROMPT 21 5 "N.dipendenti " + HELP "Numero complessivo di lavoratori dipendenti" + FIELD LF_BASE->A0NLDIP + FLAGS "R" +END + +NUMBER F_A0COBB 15 +BEGIN + PROMPT 41 5 "Contrib.obbligatori " + HELP "Contributi obbligatori" + FIELD LF_BASE->A0COBB + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0CNET 15 +BEGIN + PROMPT 1 6 "Compensi netti " + HELP "Compensi netti" + FIELD LF_BASE->A0CNET + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0IITRA 15 +BEGIN + PROMPT 41 6 "Ind.trasf.imponibile" + HELP " Imponibile indennita' trasferta" + FIELD LF_BASE->A0IITRA + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0EPREV 15 +BEGIN + PROMPT 1 7 "Assegni enti previd." + HELP "Assegni Enti previdenziali" + FIELD LF_BASE->A0EPREV + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN +// PROMPT 0 8 "I2 - Quadro A" + PROMPT 0 9 "I2 - Quadro A" +END + +NUMBER F_A0CTER 15 +BEGIN +// PROMPT 1 9 "Compensi da terzi " + PROMPT 1 10 "Compensi da terzi " + FIELD LF_BASE->A0CTER + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0TIMP 15 +BEGIN +// PROMPT 41 9 "Totale imponibile " + PROMPT 41 10 "Totale imponibile " + FIELD LF_BASE->A0TIMP + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0ILOR 15 +BEGIN +// PROMPT 1 10 "Imposta lorda " + PROMPT 1 11 "Imposta lorda " + FIELD LF_BASE->A0ILOR + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0TDET 15 +BEGIN +// PROMPT 41 10 "Totale detrazioni " + PROMPT 41 11 "Totale detrazioni " + FIELD LF_BASE->A0TDET + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0INCDET 15 +BEGIN + PROMPT 1 12 "Increm.detrazioni " + FIELD LF_BASE->A0INCDET + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 14 "I3 - Quadro A" +END + +NUMBER F_A0RTER 15 +BEGIN + PROMPT 1 15 "Ritenute da terzi " + FIELD LF_BASE->A0RTER + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0RDAT 15 +BEGIN + PROMPT 41 15 "Riten.datore lavoro " + HELP "Ritenute datore di lavoro" + FIELD LF_BASE->A0RDAT + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0ERIT 15 +BEGIN + PROMPT 1 16 "Eccedenza ritenute " + FIELD LF_BASE->A0ERIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0CARR 15 +BEGIN + PROMPT 41 16 "Contributi arretrati" + FIELD LF_BASE->A0CARR + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0AARR 15 +BEGIN + PROMPT 1 17 "Ammontare arretrati " + FIELD LF_BASE->A0AARR + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +PAGE "QUADRO I" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 0 "I4 - Quadro A" +END + +NUMBER F_A0DARR 15 +BEGIN + PROMPT 1 1 "Detrazioni arretrati" + FIELD LF_BASE->A0DARR + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0RARR 15 +BEGIN + PROMPT 41 1 "Ritenute arretrati " + FIELD LF_BASE->A0RARR + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0CINPS 15 +BEGIN + PROMPT 1 2 "Comp.fini contr.Inps" + HELP "Compensi ai fini contributivi Inps" + FIELD LF_BASE->A0CINPS + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0RITOPEVA 15 +BEGIN + PROMPT 41 2 "Ritenute operate VA " + HELP "Ritenute operate VA" + FIELD LF_BASE->A0RITOPEVA + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0RITOPESA 15 +BEGIN + PROMPT 1 3 "Ritenute operate SA " + HELP "Ritenute operate SA" + FIELD LF_BASE->A0RITOPESA + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 5 "I5 - Quadro A" +END + +NUMBER F_A0RITSI 15 +BEGIN + PROMPT 1 6 "Ritenute operate SI " + HELP "Ritenute operate SI" + FIELD LF_BASE->A0RITSI + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0CIIAUT 15 +BEGIN + PROMPT 41 6 "Cred.imp.impr.autot." + HELP "Credito di imposta imprese di autotrasporto" + FIELD LF_BASE->A0CIIAUT + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0CRIMPRAS 15 +BEGIN + PROMPT 1 7 "Cred.imp.pre.assun. " + HELP "Credito di imposta premio di assunzione" + FIELD LF_BASE->A0CRIMPRAS + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0CRIMPL85 15 +BEGIN + PROMPT 41 7 "Cred.imp.ex L.85/95 " + HELP "Credito di imposta ex L.85/95" + FIELD LF_BASE->A0CRIMP85 + PICTURE "." + FLAGS "R" +END + +NUMBER F_A0NADLAV 5 +BEGIN + PROMPT 1 8 "Num.assis.dat.lavoro" + HELP "Numero assistiti dal datore di lavoro" + FIELD LF_BASE->A0NADLAV + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 0 10 "I6 - Quadro A" +END + +NUMBER F_A0NACAAF 5 +BEGIN + PROMPT 1 11 "Num.assis. C.A.A.F. " + HELP "Numero assistiti dal C.A.A.F." + FIELD LF_BASE->A0NACAAF + FLAGS "R" +END + + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 13 "I7 - Quadro A-3" +END + +NUMBER F_A3NFCOM 5 +BEGIN + PROMPT 1 14 "Num.fogli compilati " + HELP "Numero di fogli compilati" + FIELD LF_BASE->A3NFCOM + FLAGS "R" +END + +NUMBER F_A3NUMPER 5 +BEGIN + PROMPT 41 14 "Numero percipienti " + HELP "Numero di percipienti" + FIELD LF_BASE->A3NUMPER + FLAGS "R" +END + +NUMBER F_A3REPT10 15 +BEGIN + PROMPT 1 15 "Redd.corr.(p.to 10) " + HELP "Reddito corrisposto (punto 10)" + FIELD LF_BASE->A3REPT10 + PICTURE "." + FLAGS "R" +END + +NUMBER F_A3REPT12 15 +BEGIN + PROMPT 41 15 "Redd.corr.(p.to 12) " + HELP "Reddito corrisposto (punto 12)" + FIELD LF_BASE->A3REPT12 + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +PAGE "QUADRO I" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 0 "I8 - Quadro B" +END + +NUMBER F_B0NFCOM 5 +BEGIN + PROMPT 1 1 "N.fogli " + HELP "Numero di fogli compilati" + FIELD LF_BASE->B0NFCOM + FLAGS "R" +END + +NUMBER F_B0NLDIP 5 +BEGIN + PROMPT 21 1 "N.dipendenti " + HELP "Numero complessivo di lavoratori dipendenti" + FIELD LF_BASE->B0NLDIP + FLAGS "R" +END + +NUMBER F_B0TFR93 15 +BEGIN + PROMPT 41 1 "T.F.R.corrisposto 95" + HELP "T.F.R. corrisposto nel 1995" + FIELD LF_BASE->B0TFR93 + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0AI 15 +BEGIN + PROMPT 1 2 "Altre indennità 95 " + HELP "Altre indennita nel 1995" + FIELD LF_BASE->B0AI + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0COLAV 15 +BEGIN + PROMPT 41 2 "Cont.obb.caric.lav. " + HELP "Contributi obbligatori a carico del lavoratore" + FIELD LF_BASE->B0COLAV + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0TFR7492 15 +BEGIN + PROMPT 1 3 "T.F.R. erogato 74-94" + HELP "T.F.R. erogato dal 1974 al 1994" + FIELD LF_BASE->B0TFR7492 + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 5 "I9 - Quadro B" +END + +NUMBER F_B0AI7492 15 +BEGIN + PROMPT 1 6 "Altr.ind.erog. 74-94" + HELP "Altre indennita erogate dal 1974 al 1994" + FIELD LF_BASE->B0AI7492 + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0IMP 15 +BEGIN + PROMPT 41 6 "Imponibile dell'anno" + FIELD LF_BASE->B0IMP + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0TIMP 15 +BEGIN + PROMPT 1 7 "Totale imponibile " + FIELD LF_BASE->B0TIMP + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0ROP 15 +BEGIN + PROMPT 41 7 "Ritenute operate " + FIELD LF_BASE->B0ROP + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0AIINPS 15 +BEGIN + PROMPT 1 8 "Alt.ind.fin.con.Inps" + HELP "Altre indennita ai fini contributivi Inps" + FIELD LF_BASE->B0AIINPS + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 10 "I10 - Quadro B" +END + +NUMBER F_B0ROPESA 15 +BEGIN + PROMPT 1 11 "Ritenute operate SA " + FIELD LF_BASE->B0ROPESA + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0RITSI 15 +BEGIN + PROMPT 41 11 "Ritenute operate SI " + FIELD LF_BASE->B0RITSI + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0CIIAUT 15 +BEGIN + PROMPT 1 12 "Cred.imp.impr.autot." + HELP "Credito di imposta imprese di autotrasporto" + FIELD LF_BASE->B0CIIAUT + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0CRIMPRAS 15 +BEGIN + PROMPT 41 12 "Cred.imp.pre.assun. " + FIELD LF_BASE->B0CRIMPRAS + PICTURE "." + FLAGS "R" +END + +NUMBER F_B0CRIMPL85 15 +BEGIN + PROMPT 1 13 "Cred.imp.ex L.85/95 " + FIELD LF_BASE->B0CRIMP85 + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +PAGE "QUADRO I" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 0 "I11 - Quadro B-1" +END + +NUMBER F_B1NFCOM 5 +BEGIN + PROMPT 1 1 "Numero di fogli compilati " + HELP "Numero di fogli compilati" + FIELD LF_BASE->B1NFCOM + FLAGS "R" +END + +NUMBER F_B1NPER 5 +BEGIN + PROMPT 41 1 "Numero percipienti " + HELP "Numero percipienti" + FIELD LF_BASE->B1NPER + FLAGS "R" +END + +NUMBER F_B1TIND 15 +BEGIN + PROMPT 1 2 "Totale indennità " + HELP "Totale indennita" + FIELD LF_BASE->B1TIND + PICTURE "." + FLAGS "R" +END + +NUMBER F_B1TIRM 15 +BEGIN + PROMPT 41 2 "Totale imponib. r.m." + HELP "Totale imponibile r.m." + FIELD LF_BASE->B1TIRM + PICTURE "." + FLAGS "R" +END + +NUMBER F_B1TICOM 15 +BEGIN + PROMPT 1 3 "Tot.imp.complessivo " + HELP "Totale imponibile complessivo" + FIELD LF_BASE->B1TICOM + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 5 "I12 - Quadro C" +END + +NUMBER F_C0NFCOM 5 +BEGIN + PROMPT 1 6 "Numero di fogli compilati " + HELP "Numero di fogli compilati" + FIELD LF_BASE->C0NFCOM + FLAGS "R" +END + +NUMBER F_C0NLASS 5 +BEGIN + PROMPT 41 6 "Numero percipienti " + HELP "Numero lavoratori assimilati" + FIELD LF_BASE->C0NLASS + FLAGS "R" +END + +NUMBER F_C0ACTOT 15 +BEGIN + PROMPT 1 7 "Ammont.corris.totale" + HELP "Ammontare corrisposto totale" + FIELD LF_BASE->C0ACTOT + PICTURE "." + FLAGS "R" +END + +NUMBER F_C0CONTSSN 15 +BEGIN + PROMPT 41 7 "Contributi S.S.N. " + HELP "Contributo S.S.N." + FIELD LF_BASE->C0CONTSSN + PICTURE "." + FLAGS "R" +END + +NUMBER F_C0SNSRIT 15 +BEGIN + PROMPT 1 8 "Somme non sogg.rit. " + HELP "Somme non soggette a ritenute" + FIELD LF_BASE->C0SNSRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_C0ROPE 15 +BEGIN + PROMPT 41 8 "Ritenute operate " + FIELD LF_BASE->C0ROPE + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 10 "I13 - Quadro C" +END + +NUMBER F_C0CIIAUT 15 +BEGIN + PROMPT 1 11 "Cred.imp.impr.autot." + HELP "Credito di imposta imprese di autotrasporto" + FIELD LF_BASE->C0CIIAUT + PICTURE "." + FLAGS "R" +END + +NUMBER F_C0CRIMPRAS 5 +BEGIN + PROMPT 41 11 "Cred.imp.pre.assun. " + HELP "Credito d'imposta premio d'assunzione" + FIELD LF_BASE->C0CRIMPRAS + FLAGS "R" +END + +ENDPAGE + +PAGE "QUADRO I" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 0 "I14 - Quadro D" +END + +NUMBER F_D0NFCOM 5 +BEGIN + PROMPT 1 1 "Numero di fogli compilati " + HELP "Numero di fogli compilati" + FIELD LF_BASE->D0NFCOM + FLAGS "R" +END + +NUMBER F_D0NLAUT 5 +BEGIN + PROMPT 41 1 "Numero percipienti " + HELP "Numero percipienti" + FIELD LF_BASE->D0NLAUT + FLAGS "R" +END + +NUMBER F_D0ACTOT 15 +BEGIN + PROMPT 1 2 "Ammon.corris.totale " + HELP "Ammontare corrisposto totale" + FIELD LF_BASE->D0ACTOT + PICTURE "." + FLAGS "R" +END + +NUMBER F_D0SNSRIT 15 +BEGIN + PROMPT 41 2 "Somme non sogg.rit. " + HELP "Somme non soggette a ritenute" + FIELD LF_BASE->D0SNSRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_D0ROPE 15 +BEGIN + PROMPT 1 3 "Ritenute operate " + FIELD LF_BASE->D0ROPE + PICTURE "." + FLAGS "R" +END + +NUMBER F_D0CIIAUT 15 +BEGIN + PROMPT 41 3 "Cred.imp.impr.autot." + HELP "Credito di imposta imprese di autotrasporto" + FIELD LF_BASE->D0CIIAUT + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 0 5 "I15 - Quadro D" +END + +NUMBER F_D0CRIMPRAS 15 +BEGIN + PROMPT 1 6 "Cred.imp.pre.assun. " + HELP "Credito d'imposta premio d'assunzione" + FIELD LF_BASE->D0CRIMPRAS + PICTURE "." + FLAGS "R" +END + +NUMBER F_D0CRIMPL85 15 +BEGIN + PROMPT 41 6 "Cred.imp.ex L.85/95 " + HELP "Credito d'imposta ex L.85/95" + FIELD LF_BASE->D0CRIMP85 + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 8 "I16 - Quadro D1" +END + +NUMBER F_D1NFCOM 5 +BEGIN + PROMPT 1 9 "Numero di fogli compilati " + HELP "Numero di fogli compilati" + FIELD LF_BASE->D1NFCOM + FLAGS "R" +END + +NUMBER F_D1NPER 5 +BEGIN + PROMPT 41 9 "Numero percipienti " + HELP "Numero percipienti" + FIELD LF_BASE->D1NPER + FLAGS "R" +END + +NUMBER F_D1TACOR 15 +BEGIN + PROMPT 1 10 "Ammon.corris.totale " + HELP "Ammontare corrisposto totale" + FIELD LF_BASE->D1TACOR + PICTURE "." + FLAGS "R" +END + +NUMBER F_D1SNSRIT 15 +BEGIN + PROMPT 41 10 "Somme non sogg.rit. " + HELP "Somme non soggette a ritenute" + FIELD LF_BASE->D1SNSRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_D1ROPE 15 +BEGIN + PROMPT 1 11 "Ritenute operate " + FIELD LF_BASE->D1ROPE + PICTURE "." + FLAGS "R" +END + +NUMBER F_D1CRIMPRAS 15 +BEGIN + PROMPT 41 11 "Cred.imp.pre.assun. " + FIELD LF_BASE->D1CRIMPRAS + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +PAGE "QUADRO I" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 0 "I17 - Quadro E" +END + +NUMBER F_E0NFCOM 5 +BEGIN + PROMPT 1 1 "Numero di fogli compilati " + HELP "Numero di fogli compilati" + FIELD LF_BASEBIS->E0NFCOM + FLAGS "R" +END + +NUMBER F_E0NPER 5 +BEGIN + PROMPT 41 1 "Numero percipienti " + HELP "Numero percipienti" + FIELD LF_BASEBIS->E0NPER + FLAGS "R" +END + +NUMBER F_E0AIMP 15 +BEGIN + PROMPT 1 2 "Ammontare imponibile" + FIELD LF_BASEBIS->E0AIMP + PICTURE "." + FLAGS "R" +END + +NUMBER F_E0ROPE 15 +BEGIN + PROMPT 41 2 "Ritenute operate " + FIELD LF_BASEBIS->E0ROPE + PICTURE "." + FLAGS "R" +END + +NUMBER F_E0SNSRIT 15 +BEGIN + PROMPT 1 3 "Somme non sogg.rit. " + HELP "Somme non soggette a ritenute" + FIELD LF_BASEBIS->E0SNSRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_E0CRIMPRAS 15 +BEGIN + PROMPT 41 3 "Cred.imp.pre.assun. " + HELP "Credito d'imposta premio d'assunzione" + FIELD LF_BASEBIS->E0CRIMPRAS + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 5 "I18 - Quadro E1" +END + +NUMBER F_E1NFCOM 5 +BEGIN + PROMPT 1 6 "Numero di fogli compilati " + HELP "Numero di fogli compilati" + FIELD LF_BASEBIS->E1NFCOM + FLAGS "R" +END + +NUMBER F_E1NPER 5 +BEGIN + PROMPT 41 6 "Numero percipienti " + HELP "Numero percipienti" + FIELD LF_BASEBIS->E1NPER + FLAGS "R" +END + +NUMBER F_E1SCOR 15 +BEGIN + PROMPT 1 7 "Somme corrisposte " + FIELD LF_BASEBIS->E1SCOR + PICTURE "." + FLAGS "R" +END + +NUMBER F_E1BCOM 15 +BEGIN + PROMPT 41 7 "Base commisurazione " + FIELD LF_BASEBIS->E1BCOM + PICTURE "." + FLAGS "R" +END + +NUMBER F_E1ROPE 15 +BEGIN + PROMPT 1 8 "Ritenute operate " + FIELD LF_BASEBIS->E1ROPE + PICTURE "." + FLAGS "R" +END + +NUMBER F_E1ACOM 15 +BEGIN + PROMPT 41 8 "Ammontare compless. " + HELP "Ammontare complessivo" + FIELD LF_BASEBIS->E1ACOM + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 10 "I19 - Quadro E1" +END + +NUMBER F_E1BCOM2 15 +BEGIN + PROMPT 1 11 "Base commisurazione " + FIELD LF_BASEBIS->E1BCOM2 + PICTURE "." + FLAGS "R" +END + +NUMBER F_E1ROPE2 15 +BEGIN + PROMPT 41 11 "Ritenute operate " + FIELD LF_BASEBIS->E1ROPE2 + PICTURE "." + FLAGS "R" +END + +NUMBER F_E1CRIMPRAS 15 +BEGIN + PROMPT 1 12 "Cred.imp.pre.assun. " + HELP "Credito d'imposta premio d'assunzione" + FIELD LF_BASEBIS->E1CRIMPRAS + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 14 "I20 - Quadro E2" +END + +NUMBER F_E2NFCOM 5 +BEGIN + PROMPT 1 15 "Numero di fogli compilati " + HELP "Numero di fogli compilati" + FIELD LF_BASEBIS->E2NFCOM + FLAGS "R" +END + +NUMBER F_E2NPER 5 +BEGIN + PROMPT 41 15 "Numero Percipienti " + HELP "Numero percipienti" + FIELD LF_BASEBIS->E2NPER + FLAGS "R" +END + +NUMBER F_E2SSRIT 15 +BEGIN + PROMPT 1 16 "Somme sogg. ritenute " + HELP "Somme soggette a ritenute" + FIELD LF_BASEBIS->E2SSRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_E2ROPE 15 +BEGIN + PROMPT 41 16 "Ritenute operate " + FIELD LF_BASEBIS->E2ROPE + PICTURE "." + FLAGS "R" +END + +NUMBER F_E2CRIMPRAS 15 +BEGIN + PROMPT 1 17 "Cred.imp.pre.assun. " + HELP "Credito d'imposta premio d'assunzione" + FIELD LF_BASEBIS->E2CRIMPRAS + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +PAGE "QUADRO I" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 0 "I21 - Quadro F" +END + +NUMBER F_F0SRITA 15 +BEGIN + PROMPT 1 1 "Som.sog.rit.(pros.A)" + HELP "Somme soggette a ritenute (prospetto A)" + FIELD LF_BASEBIS->F0SRITA + PICTURE "." + FLAGS "R" +END + +NUMBER F_F0ROPEA 15 +BEGIN + PROMPT 41 1 "Rit.operate(pros.A) " + HELP "Ritenute operate (prospetto A)" + FIELD LF_BASEBIS->F0ROPEA + PICTURE "." + FLAGS "R" +END + +NUMBER F_F0TACCA 15 +BEGIN + PROMPT 1 2 "Tot.acconti (pros.A)" + HELP "Totale acconti (prospetto A)" + FIELD LF_BASEBIS->F0TACCA + PICTURE "." + FLAGS "R" +END + +NUMBER F_F0EDACCA 15 +BEGIN + PROMPT 41 2 "Ecc.dim.acc.(pros.A)" + HELP "Eccedenza in diminuzione degli acconti (prospetto A)" + FIELD LF_BASEBIS->F0EDACCA + PICTURE "." + FLAGS "R" +END + +NUMBER F_F0ERIMA 15 +BEGIN + PROMPT 1 3 "Ecc. rimbor.(pros.A)" + HELP "Eccedenza a rimborso (prospetto A)" + FIELD LF_BASEBIS->F0ERIMA + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 5 "I22 - Quadro F" +END + +NUMBER F_F0SSVA 15 +BEGIN + PROMPT 1 6 "Somme sog.VA(pros.A)" + HELP "Riepilogo F: somme soggette VA" + FIELD LF_BASEBIS->F0SSVA + PICTURE "." + FLAGS "R" +END + +NUMBER F_F0ROPEVA 15 +BEGIN + PROMPT 41 6 "Rit.oper.VA (pros.A)" + HELP "Riepilogo F: ritenute operate VA" + FIELD LF_BASEBIS->F0ROPEVA + PICTURE "." + FLAGS "R" +END + +NUMBER F_F0SSRITBF 15 +BEGIN + PROMPT 1 7 "Som.sogg.rit.(BCDEF)" + HELP "Somme soggette a ritenute (prospetti B,C,D,E,F)" + FIELD LF_BASEBIS->F0SSRITBF + PICTURE "." + FLAGS "R" +END + +NUMBER F_F0ROPEBF 15 +BEGIN + PROMPT 41 7 "Rit.op.(p.B,C,D,E,F)" + HELP "Ritenute operate (prospetti B,C,D,E,F)" + FIELD LF_BASEBIS->F0ROPEBF + PICTURE "." + FLAGS "R" +END + +NUMBER F_F0CRIMPRAS 15 +BEGIN + PROMPT 1 8 "Cred.imp.pre.assun. " + FIELD LF_BASEBIS->F0CRIMPRAS + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 10 "I23 - Quadro F1" +END + +NUMBER F_F1SSRIT 15 +BEGIN + PROMPT 1 11 "Som.sogg.rit.(p.A,B)" + HELP "Riepilogo F-1: Somme soggette a ritenute (prospetti A,B)" + FIELD LF_BASEBIS->F1SSRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_F1ROPE 15 +BEGIN + PROMPT 41 11 "Riten.operat.(p.A,B)" + HELP "Riepilogo F-1: ritenute operate (prospetti A,B)" + FIELD LF_BASEBIS->F1ROPE + PICTURE "." + FLAGS "R" +END + +NUMBER F_F1CRIMPRAS 15 +BEGIN + PROMPT 1 12 "Cred.imp.pre.assun. " + FIELD LF_BASEBIS->F1CRIMPRAS + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 14 "I24 - Quadro F2" +END + +NUMBER F_F2SSRIT 15 +BEGIN + PROMPT 1 15 "Somme sogg. ritenute" + HELP "Riepilogo F-2: Somme soggette a ritenute" + FIELD LF_BASEBIS->F2SSRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_F2ROPE 15 +BEGIN + PROMPT 41 15 "Ritenute operate " + FIELD LF_BASEBIS->F2ROPE + PICTURE "." + FLAGS "R" +END + +NUMBER F_F2CRIMPRAS 15 +BEGIN + PROMPT 1 16 "Cred.imp.pre.assun. " + FIELD LF_BASEBIS->F2CRIMPRAS + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +PAGE "QUADRO I" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 0 "I25 - Quadro G" +END + +NUMBER F_G0NFCOM 5 +BEGIN + PROMPT 1 1 "N.fogli " + HELP "Numero di fogli compilati" + FIELD LF_BASEBIS->G0NFCOM + FLAGS "R" +END + +NUMBER F_G0NPER 5 +BEGIN + PROMPT 21 1 "N.percipienti " + HELP "Numero percipienti" + FIELD LF_BASEBIS->G0NPER + FLAGS "R" +END + +NUMBER F_G0USPE 15 +BEGIN + PROMPT 41 1 "Utili spettanti " + FIELD LF_BASEBIS->G0USPE + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0ROPESPET 15 +BEGIN + PROMPT 1 2 "Rit.utili spettanti " + FIELD LF_BASEBIS->G0RITSPET + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0UPAG 15 +BEGIN + PROMPT 41 2 "Utili pagati " + FIELD LF_BASEBIS->G0UPAG + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0ROPE 15 +BEGIN + PROMPT 1 3 "Rit. su utili pagati" + FIELD LF_BASEBIS->G0ROPE + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 5 "I26 - Quadro G" +END + +NUMBER F_G0NAZI1 15 +BEGIN + PROMPT 1 6 "Azioni o quote(pr.1)" + HELP "Numero azioni o quote (prospetto 1)" + FIELD LF_BASEBIS->G0NAZI1 + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0UDEN1 15 +BEGIN + PROMPT 41 6 "Utili denaro (pr.1) " + HELP "Utili in denaro (prospetto 1)" + FIELD LF_BASEBIS->G0UDEN1 + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0UNAT1 15 +BEGIN + PROMPT 1 7 "Utili natura (pr.1) " + HELP "Utili in natura (prospetto 1)" + FIELD LF_BASEBIS->G0UNAT1 + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0IUTI2 15 +BEGIN + PROMPT 41 7 "Importo utili (pr.2)" + FIELD LF_BASEBIS->G0IUTI2 + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0USRIT3 15 +BEGIN + PROMPT 1 8 "Util.sogg.rit.(pr.3)" + HELP "Utili soggetti a ritenute (prospetto 3)" + FIELD LF_BASEBIS->G0USRIT3 + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 10 "I27 - Quadro G" +END + +NUMBER F_G0RACC3 15 +BEGIN + PROMPT 1 11 "Ritenuta acc.(pr.3) " + HELP "Ritenuta di acconto (prospetto A)" + FIELD LF_BASEBIS->G0RACC3 + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0RIMP3 15 +BEGIN + PROMPT 41 11 "Riten. impos.(pr.3) " + HELP "Ritenuta di imposta (prospetto 3)" + FIELD LF_BASEBIS->G0RIMP3 + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0UNSRIT3 15 +BEGIN + PROMPT 1 12 "Ut.non sogg.rit.(p3)" + HELP "Utili non soggetti a ritenute (prospetto 3)" + FIELD LF_BASEBIS->G0UNSRIT3 + PICTURE "." + FLAGS "R" +END + +NUMBER F_G0CRIMPRAS 15 +BEGIN + PROMPT 41 12 "Cred.imp.pre.assun. " + FIELD LF_BASEBIS->G0CRIMPRAS + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 5 +BEGIN + PROMPT 0 14 "I28 - Quadro G1" +END + +NUMBER F_G1UCOR 15 +BEGIN + PROMPT 1 15 "Utili corrisposti " + FIELD LF_BASEBIS->G1UCOR + PICTURE "." + FLAGS "R" +END + +NUMBER F_G1USRIT 15 +BEGIN + PROMPT 41 15 "Utili sogg. ritenute" + HELP "Utili soggetti a ritenute" + FIELD LF_BASEBIS->G1USRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_G1RACC 15 +BEGIN + PROMPT 1 16 "Ritenute di acconto " + FIELD LF_BASEBIS->G1RACC + PICTURE "." + FLAGS "R" +END + +NUMBER F_G1RIMP 15 +BEGIN + PROMPT 41 16 "Ritenute di imposta " + FIELD LF_BASEBIS->G1RIMP + PICTURE "." + FLAGS "R" +END + +NUMBER F_G1UNSRIT 15 +BEGIN + PROMPT 1 17 "Utili non sogg.rit. " + HELP "Utili non soggetti a ritenute" + FIELD LF_BASEBIS->G1UNSRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_G1CRIMPRAS 15 +BEGIN + PROMPT 41 17 "Cred.imp.pre.assun. " + FIELD LF_BASEBIS->G1CRIMPRAS + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +PAGE "QUADRO I" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 0 0 "I28 - Quadro H" +END + +NUMBER F_H0CODLAV 15 +BEGIN + PROMPT 1 1 "Cont.obb.car.dat.lav" + HELP "Contributi obbligatori a carico del datore di lavoro" + FIELD LF_BASEBIS->H0CODLAV + PICTURE "." + FLAGS "R" +END + +NUMBER F_H0COLDIP 15 +BEGIN + PROMPT 41 1 "Cont.ob.car.lav.dip." + HELP "Contributi obbligatori a carico del dipendente" + FIELD LF_BASEBIS->H0COLDIP + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771310.cpp b/m770/771310.cpp new file mode 100755 index 000000000..870bd13cd --- /dev/null +++ b/m770/771310.cpp @@ -0,0 +1,503 @@ +// 771310.cpp - Modello 770 - Gestione quadro L +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "771310.h" +#include "774100.h" +#include "774200.h" +#include "77lib.h" +#include "scperc.h" +#include "rver.h" +#include "rpag.h" +#include "quadrol.h" + +class M71310_application : public TRelation_application +{ + TRelation* _rel; + TMask* _msk; + TGenera _app; + TConfig* _cnf; + int _anno; + + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode) { return _msk; } + virtual bool changing_mask(int mode) {return FALSE; } + virtual void init_query_mode(TMask&); + virtual void init_modify_mode(TMask&); + virtual void init_insert_mode(TMask&); + virtual void on_config_change(); + virtual int rewrite(const TMask& m); + virtual int write(const TMask& m); + void build_note(const TMask& m); + void set_field_note(TMask& m); + bool changed_anno_dic(TMask& m); + real arrotonda(const TMask& m); + static bool generazione (TMask_field& f, KEY k); + static bool genera_para (TMask_field& f, KEY k); + static bool tipo (TMask_field& f, KEY k); + static bool luogo (TMask_field& f, KEY k); + static bool auto_premi (TMask_field& f, KEY k); + static bool mese (TMask_field& f, KEY k); + static bool anno (TMask_field& f, KEY k); + static bool cod_tributo (TMask_field& f, KEY k); + static bool codditta_hnd(TMask_field& f, KEY k); + static bool artbil_hnd(TMask_field& f, KEY k); + + public: + M71310_application() {} +}; + +M71310_application& app() { return (M71310_application&) main_app(); } + +bool M71310_application::generazione(TMask_field& f , KEY k) +{ + if (k == K_SPACE) + app()._app.set(get_firm_770(), app()._cnf); + + return TRUE; +} + +bool M71310_application::genera_para(TMask_field& f , KEY k) +{ + if (k == K_SPACE) + { + TString appname("776mod -4 d"); + TExternal_app a(appname); + a.run(); + f.mask().set_focus(); + } + return TRUE; +} + +bool M71310_application::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + return TRUE; +} + +bool M71310_application::mese(TMask_field& f , KEY k) +{ +// is_running() serve per fare il controllo solo quando la maschera sta andando +// In questo modo tutti i K_TAB che ricevono i campi durante la costruzione della maschera +// vengono ignorati. +// Il K_TAB mi fa scattare il controllo quando lascio il campo +// Il K_ENTER mi serve per fare i controlli quando uso uno dei tasti della bottoniera + + if (k == K_TAB || k == K_ENTER) + { + int mese = f.mask().get_int(F_QLMESEPAG); + + if (mese == 0) + { + f.error_box("Il mese di pagamento deve essere indicato obbligatoriamente"); + return FALSE; + } + } + return TRUE; +} + +bool M71310_application::anno(TMask_field& f , KEY k) +{ +// is_running() serve per fare il controllo solo quando la maschera sta andando +// In questo modo tutti i K_TAB che ricevono i campi durante la costruzione della maschera +// vengono ignorati. +// Il K_TAB mi fa scattare il controllo quando lascio il campo +// Il K_ENTER mi serve per fare i controlli quando uso uno dei tasti della bottoniera + + if ((k == K_TAB && f.mask().is_running()) || k == K_ENTER) + { + int anno = f.mask().get_int(F_QLANNOPAG); + + if (anno == 0) + return f.error_box("L'anno di pagamento deve essere indicato obbligatoriamente"); + } + return TRUE; +} + +bool M71310_application::cod_tributo(TMask_field& f , KEY k) +{ +// is_running() serve per fare il controllo solo quando la maschera sta andando +// In questo modo tutti i K_TAB che ricevono i campi durante la costruzione della maschera +// vengono ignorati. +// Il K_TAB mi fa scattare il controllo quando lascio il campo +// Il K_ENTER mi serve per fare i controlli quando uso uno dei tasti della bottoniera + + if ((k == K_TAB && f.mask().is_running()) || k == K_ENTER) + { + int tributo = f.mask().get_int(F_QLCODTRIB); + + if (tributo == 0) + { + f.error_box("Il codice tributo deve essere indicato obbligatoriamente"); + return FALSE; + } + } + return TRUE; +} + +// "auto-premimento" +// Sia da F_ABI che da F_NUMERO +bool M71310_application::auto_premi(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.mask().is_running()) + { + TLocalisamfile qual (LF_QUAL,FALSE); + TMask& m = f.mask(); + long codditta = m.get_long(F_CODDITTA); + TDate datavers (m.get(F_QLDATAVERS)); + TString data = datavers.string(); + int mesepag = m.get_int(F_QLMESEPAG); + int annopag = m.get_int(F_QLANNOPAG); + char luovers = m.get (F_QLLUOVERS)[0]; + char tipovers = m.get (F_QLTIPOVERS)[0]; + long codtrib = m.get_long(F_QLCODTRIB); + int artbil = m.get_int(F_ARTBIL); + + TString serie(m.get(FH_ABISERIE)); + TString numero(m.get(FH_NUMERO)); +// TString cab(m.get(FH_CAB)); +// TString nprog(m.get(FH_NPROG)); + +// Se abi/cab devo attaccare al cab il progressivo vers.banca +// if (tipovers == DELEGA_BANCARIA) +// numero << nprog; + + qual.setkey(1); + qual.zero(); + qual.put(QUL_CODDITTA, codditta); + qual.put(QUL_QLDV, datavers); + qual.put(QUL_QLMP, mesepag); + qual.put(QUL_QLAP, annopag); + qual.put(QUL_QLLV, luovers); + qual.put(QUL_QLTV, tipovers); + qual.put(QUL_QLCT, (long)codtrib); + qual.put(QUL_QLAB, (long)artbil); + qual.put(QUL_QLSERIE, serie); + qual.put(QUL_QLNUMERO, numero); + + if (qual.read() == NOERR) + f.mask().stop_run(K_AUTO_ENTER); + else + f.mask().stop_run(K_INS); + } + return TRUE; +} + +bool M71310_application::tipo(TMask_field& f , KEY k) +{ + if (k == K_SPACE) + { + char tipo = f.mask().get(F_QLTIPOVERS)[0]; + char luogo = f.mask().get(F_QLLUOVERS)[0]; + + if (tipo == 'D' && luogo == 'T') + f.mask().hide(F_QLSERIE); + else + f.mask().show(F_QLSERIE); + } + return TRUE; +} + +bool M71310_application::luogo(TMask_field& f , KEY k) +{ + if (k == K_SPACE) + { + char tipo = f.mask().get(F_QLTIPOVERS)[0]; + char luogo = f.mask().get(F_QLLUOVERS)[0]; + + if (tipo == 'D' && luogo == 'T') + f.mask().hide(F_QLSERIE); + else + f.mask().show(F_QLSERIE); + } + return TRUE; +} + +// Tenta di mandare il focus al campo visibile invece che a quello +// nascosto +bool M71310_application::artbil_hnd(TMask_field& f , KEY k) +{ + if (k == K_TAB) + { + TMask& m = f.mask(); + const char tipo = m.get(F_QLTIPOVERS)[0]; + const char luogo = m.get(F_QLLUOVERS)[0]; + +// Determina chi ha il focus in questo momento + TMask_field& fld = m.focus_field(); + +// Se il focus e' sull'ultimo campo prima di F_ABI + if (fld.dlg() == F_ARTBIL) + { +// WINDOW win; +// Determina chi ce lo dovrebbe avere dopo.. + if (tipo == 'B') + { + TMask_field& fabi = m.field(F_ABI); + fabi.set_focus(); +// win = m.field(F_ABI).win(); +// m.set_focus_win(win, TRUE); + } + } + } + return TRUE; +} + +void M71310_application::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno = (int) conf.get_long(ANNO_SEL); +} + +// Determina se l'utente ha cambiato l'anno di dichiarazione +// impostato. Se si' non bisogna toccarlo +bool M71310_application::changed_anno_dic(TMask& m) +{ + const int anno_corr = m.get_int(F_ANNODIC); + return anno_corr ? anno_corr != _anno : FALSE; +} + +void M71310_application::init_insert_mode(TMask& m) +{ + if (!changed_anno_dic(m)) + m.set(F_ANNODIC, _anno); + m.disable(F_ANNODIC); + m.disable(F_GENERA); + m.enable (F_QLRITEFF); + m.enable (F_QLRITVER); + m.enable (F_QLRSS); + //m.enable (F_QLNOTE); + m.enable (F_NOTEA); + m.enable (F_NOTEB); + m.enable (F_NOTEC); + m.enable (F_NOTED); + m.enable (F_NOTEE); + m.enable (F_NOTEF); + m.enable (F_NOTEG); +} + +void M71310_application::init_query_mode(TMask& m) +{ + if (!changed_anno_dic(m)) + m.set(F_ANNODIC, _anno); + m.enable(F_ANNODIC); + m.enable (F_GENERA); + m.disable(F_QLRITEFF); + m.disable(F_QLRITVER); + m.disable(F_QLRSS); + //m.disable(F_QLNOTE); + m.disable(F_NOTEA); + m.disable(F_NOTEB); + m.disable(F_NOTEC); + m.disable(F_NOTED); + m.disable(F_NOTEE); + m.disable(F_NOTEF); + m.disable(F_NOTEG); +} + +void M71310_application::init_modify_mode(TMask& m) +{ + if (!changed_anno_dic(m)) + m.set(F_ANNODIC, _anno); + m.disable(F_ANNODIC); + set_field_note(m); + + m.disable(F_GENERA); + m.enable (F_QLRITEFF); + m.enable (F_QLRITVER); + m.enable (F_QLRSS); + //m.enable (F_QLNOTE); + m.enable (F_NOTEA); + m.enable (F_NOTEB); + m.enable (F_NOTEC); + m.enable (F_NOTED); + m.enable (F_NOTEE); + m.enable (F_NOTEF); + m.enable (F_NOTEG); +} + +void M71310_application::set_field_note(TMask& m) +{ + TString note = _rel->lfile().get(QUL_QLNOTE); + + if (note != "") + { + char A,B,C,D,E,F,G; + + int p = note.len() - 1; + + A = note[0]; + if (p >= 1) + B = note[1]; + if (p >= 2) + C = note[2]; + if (p >= 3) + D = note[3]; + if (p >= 4) + E = note[4]; + if (p >= 5) + F = note[5]; + if (p >= 6) + G = note[6]; + + if (A == 'A') + m.set(F_NOTEA, "X"); + + if (B == 'B') + m.set(F_NOTEB, "X"); + + if (C == 'C') + m.set(F_NOTEC, "X"); + + if (D == 'D') + m.set(F_NOTED, "X"); + + if (E == 'E') + m.set(F_NOTEE, "X"); + + if (F == 'F') + m.set(F_NOTEF, "X"); + + if (G == 'G') + m.set(F_NOTEG, "X"); + } +} + +void M71310_application::build_note(const TMask& m) +{ + char A = m.get(F_NOTEA)[0]; + char B = m.get(F_NOTEB)[0]; + char C = m.get(F_NOTEC)[0]; + char D = m.get(F_NOTED)[0]; + char E = m.get(F_NOTEE)[0]; + char F = m.get(F_NOTEF)[0]; + char G = m.get(F_NOTEG)[0]; + + TString16 note; + + if (A == 'X') + note[0] = 'A'; + else + note[0] = ' '; + + if (B == 'X') + note[1] = 'B'; + else + note[1] = ' '; + + if (C == 'X') + note[2] = 'C'; + else + note[2] = ' '; + + if (D == 'X') + note[3] = 'D'; + else + note[3] = ' '; + + if (E == 'X') + note[4] = 'E'; + else + note[4] = ' '; + + if (F == 'X') + note[5] = 'F'; + else + note[5] = ' '; + + if (G == 'X') + note[6] = 'G'; + else + note[6] = ' '; + + note [7] = '\0'; + + _rel->lfile().put(QUL_QLNOTE, note); +} + +// Arrotonda l'importo versato +real M71310_application::arrotonda(const TMask& m) +{ + real rImpVers = m.get_real(F_QLRITVER); + real rImpArr = round_770(rImpVers); + return rImpArr; +} + +int M71310_application::rewrite(const TMask& m) +{ + real rImpVersArr; + build_note(m); + m.autosave(_rel); + rImpVersArr = arrotonda(m); + _rel->lfile().put(QUL_QLRITVER, rImpVersArr); + return _rel->rewrite(); +} + +int M71310_application::write(const TMask& m) +{ + real rImpVersArr; + build_note(m); + m.autosave(_rel); + rImpVersArr = arrotonda(m); + _rel->lfile().put(QUL_QLRITVER, rImpVersArr); + return _rel->write(); +} + +bool M71310_application::user_create() +{ + _cnf = new TConfig(CONFIG_STUDIO); + _rel = new TRelation (LF_QUAL); + _msk = new TMask("771310a"); + + set_search_field(F_QLANNOPAG); + _msk->set_handler (F_GENERA, generazione); + _msk->set_handler (F_PARAMETRI, genera_para); + _msk->set_handler (F_CODDITTA, codditta_hnd); + _msk->set_handler (F_QLTIPOVERS, tipo); + _msk->set_handler (F_QLLUOVERS, luogo); + _msk->set_handler (F_QLMESEPAG, mese); + _msk->set_handler (F_QLANNOPAG, anno); + _msk->set_handler (F_QLCODTRIB, cod_tributo); + _msk->set_handler (F_QLNUMERO, auto_premi); + _msk->set_handler (F_CAB, auto_premi); + _msk->set_handler (F_ARTBIL, artbil_hnd); + + return TRUE; +} + +bool M71310_application::user_destroy() +{ + delete _msk; + delete _rel; + delete _cnf; + return TRUE; +} + +int m71310(int argc, char* argv[]) +{ + M71310_application a; + a.run(argc, argv, "Gestione quadro L"); + return 0; +} + + diff --git a/m770/771310.h b/m770/771310.h new file mode 100755 index 000000000..4b98d5ac0 --- /dev/null +++ b/m770/771310.h @@ -0,0 +1,39 @@ +// Campi maschera quadro L + +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_QLDATAVERS 103 +#define F_QLLUOVERS 104 +#define F_QLTIPOVERS 105 +#define F_QLCODTRIB 106 +#define F_QLANNOPAG 107 +#define F_QLMESEPAG 108 +#define F_ARTBIL 109 +#define F_QLSERIE 110 +#define F_QLNUMERO 111 +#define F_QLCODQUA 112 +#define F_QLRITEFF 113 +#define F_QLRITVER 114 +#define F_QLRSS 115 +#define F_QLNOTE 116 +#define F_GENERA 117 +#define F_ANNODIC 118 +#define F_NOTEA 119 +#define F_NOTEB 120 +#define F_NOTEC 121 +#define F_NOTED 122 +#define F_NOTEE 123 +#define F_NOTEF 124 +#define F_NOTEG 125 +#define F_PARAMETRI 126 +#define F_QUADRO 130 +#define F_ABI 131 +#define F_CAB 132 +#define F_CAB1 133 +#define F_CAB2 134 + +#define FH_ABISERIE 135 +#define FH_CAB 136 +#define FH_NUMERO 137 +#define FH_NPROG 138 + diff --git a/m770/771310a.uml b/m770/771310a.uml new file mode 100755 index 000000000..ae41ebbd4 --- /dev/null +++ b/m770/771310a.uml @@ -0,0 +1,354 @@ +// 771310a.uml - Quadro L +#include "771310.h" +TOOLBAR "" 0 18 0 4 +BUTTON F_GENERA 21 2 +BEGIN + PROMPT -13 -3 "~Generazione" +END + +BUTTON F_PARAMETRI 21 2 +BEGIN + PROMPT -23 -3 "~Parametri Generazione" +END + +#include +ENDPAGE + +PAGE "QUADRO L" -1 -1 78 18 + +#define ABI_CAB 7 +#define NUM_SERIE 8 +#define TEXT_NUM_SERIE 9 +#define TEXT_ABI_CAB 6 +#define GH 10 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "RDG" + USE LF_NDITTE KEY 1 + FIELD LF_QUAL->CODDITTA + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGSOC RAGSOC + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" +END + +TEXT 96 +BEGIN + PROMPT 2 10 "Numero serie " + GROUP TEXT_NUM_SERIE +END + +TEXT 97 +BEGIN + PROMPT 2 10 "Codice ABI " + GROUP ABI_CAB +END + +TEXT 98 +BEGIN + PROMPT 46 10 "Numero quietanza " + GROUP TEXT_NUM_SERIE +END + +TEXT 99 +BEGIN + PROMPT 46 10 "Codice CAB " + GROUP ABI_CAB +END + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 0 5 "" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 2 4 "Anno dichiarazione " +END + +NUMBER F_QLANNOPAG 4 +BEGIN + PROMPT 2 6 "Anno pagamento " + USE LF_QUAL KEY 1 SELECT ((CODDITTA=#F_CODDITTA) && (QLAP=#F_ANNODIC)) + INPUT CODDITTA F_CODDITTA + INPUT QLAP F_QLANNOPAG + DISPLAY "A.P." QLAP + DISPLAY "M.P." QLMP + DISPLAY "Ritenute@15" QLRITEFF + DISPLAY "Importo versato" QLRITVER + DISPLAY "L.V." QLLV + DISPLAY "T.V." QLTV + DISPLAY "C.T." QLCT + DISPLAY "Art.Bil." QLAB + DISPLAY "Data Vers." QLDV + DISPLAY "Serie/ABI" QLSERIE + DISPLAY "Numero/CAB@11" QLNUMERO + DISPLAY "Rss" QLRSS + DISPLAY "Note@7" QLNOTE + OUTPUT F_QLDATAVERS QLDV + OUTPUT F_QLMESEPAG QLMP + OUTPUT F_QLANNOPAG QLAP + OUTPUT F_QLLUOVERS QLLV + OUTPUT F_QLTIPOVERS QLTV + OUTPUT F_QLCODTRIB QLCT + OUTPUT F_ARTBIL QLAB + OUTPUT F_QLSERIE QLSERIE + OUTPUT F_ABI QLSERIE + OUTPUT FH_NUMERO QLNUMERO + OUTPUT FH_ABISERIE QLSERIE + OUTPUT F_CAB1 QLNUMERO[1,5] + OUTPUT F_CAB QLNUMERO[6,11] + FIELD LF_QUAL->QLAP + FLAGS "R" + VALIDATE FIXLEN_FUNC 4 + WARNING "L' anno deve essere indicato per esteso" + KEY 1 +END + +LIST F_QLMESEPAG 2 13 +BEGIN + PROMPT 46 6 "Mese pagamento " + FIELD LF_QUAL->QLMP + ITEM " |Indefinito" + FLAGS "M" + KEY 1 +END + +DATE F_QLDATAVERS +BEGIN + PROMPT 2 7 "Data versamento " + FIELD LF_QUAL->QLDV + KEY 1 +END + +LIST F_QLLUOVERS 11 +BEGIN + PROMPT 46 7 "Luogo versamento " + ITEM " |Nessuno" + ITEM "C|Concessione" + ITEM "T|Tesoreria" + FIELD LF_QUAL->QLLV + KEY 1 +END + +LIST F_QLTIPOVERS 15 +BEGIN + PROMPT 2 8 "Tipo versamento " + ITEM " |Nessuno" + MESSAGE SHOW,97|SHOW,99|HIDE,96|HIDE,98|RESET,GH@ + MESSAGE ENABLE,F_QLSERIE + ITEM "B|Delega bancaria" + MESSAGE RESET,GH@|HIDE,TEXT_NUM_SERIE@|SHOW,ABI_CAB@ + MESSAGE ENABLE,ABI_CAB@|DISABLE,NUM_SERIE@ + ITEM "D|Distinta" + MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|HIDE,ABI_CAB@ + MESSAGE ENABLE,NUM_SERIE@|DISABLE,ABI_CAB@ + ITEM "C|C/C Postale" + MESSAGE RESET,GH@|SHOW,TEXT_NUM_SERIE@|CLEAR,F_ABI|CLEAR,F_QLSERIE|HIDE,ABI_CAB@ + MESSAGE DISABLE,F_QLSERIE|DISABLE,ABI_CAB@ + FIELD LF_QUAL->QLTV + KEY 1 +END + +NUMBER F_QLCODTRIB 4 +BEGIN + PROMPT 46 8 "Codice tributo " + FIELD LF_QUAL->QLCT + KEY 1 +END + +NUMBER F_ARTBIL 2 +BEGIN + PROMPT 2 9 "Articolo di bilancio " + FIELD LF_QUAL->QLAB + KEY 1 +END + +STRING FH_ABISERIE 5 +BEGIN + PROMPT 0 1 "HABISERIE" + FIELD LF_QUAL->QLSERIE + FLAGS "D" + KEY 1 + GROUP GH +END + +STRING FH_NUMERO 11 +BEGIN + PROMPT 0 2 "HNUMERO" + FIELD LF_QUAL->QLNUMERO + KEY 1 + FLAGS "D" + GROUP GH +END + +STRING F_QLSERIE 5 +BEGIN + PROMPT 23 10 "" + FIELD LF_QUAL->QLSERIE + MESSAGE COPY,FH_ABISERIE + GROUP NUM_SERIE +// KEY 1 +END + +STRING F_QLNUMERO 11 +BEGIN + PROMPT 63 10 "" + FIELD LF_QUAL->QLNUMERO +// MESSAGE COPY,FH_NUMERO + GROUP NUM_SERIE +// KEY 1 +END + +NUMBER F_ABI 5 +BEGIN + PROMPT 23 10 "" + FIELD LF_QUAL->QLSERIE + MESSAGE COPY,FH_ABISERIE + GROUP ABI_CAB +// KEY 1 +END + +NUMBER F_CAB1 5 +BEGIN + PROMPT 63 10 "" + FIELD LF_QUAL->QLNUMERO[1,5] +// MESSAGE COPY,FH_NUMERO + GROUP ABI_CAB +// KEY 1 +END + +NUMBER F_CAB 6 +BEGIN + PROMPT 69 10 "" + FIELD LF_QUAL->QLNUMERO[6,11] + FLAGS "Z" +// MESSAGE ADD,FH_NUMERO + GROUP ABI_CAB +// KEY 1 +END + +LIST F_QUADRO 2 +BEGIN + PROMPT 0 12 "Codice quadro " + HELP "Inserire il codice quadro" + ITEM "| " + ITEM "A|A" + ITEM "B|B" + ITEM "B1|B1" + ITEM "C|C" + ITEM "D|D" + ITEM "D1|D1" + ITEM "E|E" + ITEM "E1|E1" + ITEM "G|G" + ITEM "G1|G1" + FIELD LF_QUAL->QLCODQUA +END + +TEXT DLG_NULL +BEGIN + PROMPT 0 13 "Somme assoggettate a ritenuta:" +END + +TEXT DLG_NULL +BEGIN + PROMPT 0 14 "Rit. Effettuate" +END + +NUMBER F_QLRITEFF 15 +BEGIN + PROMPT 0 15 "" + FIELD LF_QUAL->QLRITEFF + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 17 14 "Importo versato" +END + +NUMBER F_QLRITVER 15 +BEGIN + PROMPT 17 15 "" + FIELD LF_QUAL->QLRITVER + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 37 14 "RSS" +END + +LIST F_QLRSS 7 +BEGIN + PROMPT 34 15 "" + ITEM " |Nessuna" + ITEM "1|VA" + ITEM "2|SA" + ITEM "3|SI" + FIELD LF_QUAL->QLRSS +END + +TEXT DLG_NULL +BEGIN + PROMPT 58 14 "Note" +END + +BOOLEAN F_NOTEA +BEGIN + PROMPT 45 15 "A" +END + +BOOLEAN F_NOTEB +BEGIN + PROMPT 50 15 "B" +END + +BOOLEAN F_NOTEC +BEGIN + PROMPT 55 15 "C" +END + +BOOLEAN F_NOTED +BEGIN + PROMPT 60 15 "D" +END + +BOOLEAN F_NOTEE +BEGIN + PROMPT 65 15 "E" +END + +BOOLEAN F_NOTEF +BEGIN + PROMPT 70 15 "F" +END + +BOOLEAN F_NOTEG +BEGIN + PROMPT 75 15 "G" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771310b.uml b/m770/771310b.uml new file mode 100755 index 000000000..22c28d60b --- /dev/null +++ b/m770/771310b.uml @@ -0,0 +1,16 @@ +PAGE "Generazione quadro L" -1 -1 40 4 + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -1 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK diff --git a/m770/771400.h b/m770/771400.h new file mode 100755 index 000000000..cc19dae78 --- /dev/null +++ b/m770/771400.h @@ -0,0 +1,55 @@ +// Campi maschera prospetto dati generali + +#define F_DATLAV 250 +#define F_ER92C93 251 +#define F_ER93C94 252 +#define F_ANNODIC 253 +#define F_H0NQLAGG 254 +#define F_NSUPPM 255 +#define F_QCOMPA 256 +#define F_QCOMPB 257 +#define F_QCOMPB1 258 +#define F_QCOMPC 259 +#define F_QCOMPD 260 +#define F_QCOMPD1 261 +#define F_QCOMPE 262 +#define F_QCOMPE1 263 +#define F_QCOMPE2 264 +#define F_QCOMPF 265 +#define F_QCOMPF1 266 +#define F_QCOMPF2 267 +#define F_QCOMPG 268 +#define F_QCOMPG1 269 +#define F_QCOMPH 270 +#define F_QCOMPI 271 +#define F_QCOMPN 272 +#define F_QCOMPP 273 +#define F_QCOMPQ 274 +#define F_QCOMPR 275 +#define F_QCOMPS 276 +#define F_QCOMPT 277 +#define F_QSUPPA 278 +#define F_QSUPPB 279 +#define F_QSUPPB1 280 +#define F_QSUPPC 281 +#define F_QSUPPD 282 +#define F_QSUPPD1 283 +#define F_QSUPPE 284 +#define F_QSUPPE1 285 +#define F_QSUPPE2 286 +#define F_QSUPPF 287 +#define F_QSUPPF1 288 +#define F_QSUPPF2 289 +#define F_QSUPPG 290 +#define F_QSUPPG1 291 +#define F_QSUPPH 292 +#define F_QSUPPI 293 +#define F_QSUPPL 294 +#define F_QSUPPN 295 +#define F_QSUPPP 296 +#define F_QSUPPQ 297 +#define F_QSUPPR 298 +#define F_QSUPPS 299 +#define F_QSUPPT 300 + + \ No newline at end of file diff --git a/m770/771400a.uml b/m770/771400a.uml new file mode 100755 index 000000000..c7341f2b1 --- /dev/null +++ b/m770/771400a.uml @@ -0,0 +1,523 @@ +// Versione senza FIELD +#include "771300.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -15 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -45 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -55 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Prospetto dati generali" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "DGR" + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGSOC RAGSOC + MESSAGE COPY,1@ + FIELD LF_BASEBIS->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" + MESSAGE COPY,2@ +END + +LISTBOX F_TIPOQUA 2 +BEGIN + PROMPT 90 90 "" + ITEM " |Normale" + ITEM "D|Dichiarante" + FLAGS "D" + KEY 1 + FIELD LF_BASEBIS->TIPOQUA +// CHECKTYPE REQUIRED +END + + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 4 "Dati relativi al conguaglio di fine anno effettuato dai datori di lavoro" +END + +NUMBER F_ER92C93 15 +BEGIN + PROMPT 1 5 "Eccedenza di ritenute di fine 1994 compensata nel 1995 " + FIELD LF_BASEBIS->ECCRIT12 + PICTURE "." + FLAGS "R" +END + +NUMBER F_ER93C94 15 +BEGIN + PROMPT 1 6 "Eccedenza di ritenute di fine 1995 da compensare nel 1996 " + FIELD LF_BASEBIS->ECCRIT23 + PICTURE "." + FLAGS "R" +END + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 0 8 "Prospetto riservato ai sostituti non tenuti a presentare la dichiarazione" +END + +NUMBER F_CRIMPDL357 15 +BEGIN + PROMPT 1 9 "Credito di imposta ex D.L.357/94 spettante " + FIELD LF_BASEBIS->CRIMPDL + PICTURE "." + FLAGS "R" +END + +NUMBER F_CRIMPDL357 15 +BEGIN + PROMPT 1 10 "Credito di imposta utilizzato ai fini IVA " + FIELD LF_BASEBIS->CRIMPIVA + PICTURE "." + FLAGS "R" +END + +NUMBER F_CRIMPDL357 15 +BEGIN + PROMPT 1 11 "Credito di imposta utilizzato per versamento ritenute " + FIELD LF_BASEBIS->CRIMPRIT + PICTURE "." + FLAGS "R" +END + +NUMBER F_CRIMPDL357 15 +BEGIN + PROMPT 1 12 "Credito di imposta residuo " + FIELD LF_BASEBIS->CRIMPRES + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +PAGE "Prospetto dati generali" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "RDG" + GROUP 1 +END + +STRING DLG_NULL 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" + GROUP 2 +END + +GROUPBOX DLG_NULL 78 15 +BEGIN + PROMPT 0 3 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 4 "Il sottoscritto dichiara di aver corrisposto a dipendenti e terzi nell'anno" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 1 5 "" + FLAGS "RD" +END + +TEXT DLG_NULL +BEGIN + PROMPT 7 5 "le somme e i valori e di aver effettuato le ritenute indicate" +END + +TEXT DLG_NULL +BEGIN + PROMPT 7 6 "nei quadri:" +END + +#define RA 8 +#define RB 9 +#define RC0 11 +#define RC1 12 +#define RD 13 + +BOOLEAN F_QCOMPA +BEGIN + PROMPT 2 RA "A" +END + +BOOLEAN F_QCOMPA3 +BEGIN + PROMPT 8 RA "A3" +END + +BOOLEAN F_QCOMPB +BEGIN + PROMPT 14 RA "B" +END + +BOOLEAN F_QCOMPB1 +BEGIN + PROMPT 20 RA "B1" +END + +BOOLEAN F_QCOMPC +BEGIN + PROMPT 26 RA "C" +END + +BOOLEAN F_QCOMPD +BEGIN + PROMPT 32 RA "D" +END + +BOOLEAN F_QCOMPD1 +BEGIN + PROMPT 38 RA "D1" +END + +BOOLEAN F_QCOMPE +BEGIN + PROMPT 44 RA "E" +END + +BOOLEAN F_QCOMPE1 +BEGIN + PROMPT 50 RA "E1" +END + +BOOLEAN F_QCOMPE2 +BEGIN + PROMPT 56 RA "E2" +END + +BOOLEAN F_QCOMPF +BEGIN + PROMPT 62 RA "F" +END + +BOOLEAN F_QCOMPF1 +BEGIN + PROMPT 68 RA "F1" +END + +BOOLEAN F_QCOMPF2 +BEGIN + PROMPT 2 RB "F2" +END + +BOOLEAN F_QCOMPG +BEGIN + PROMPT 8 RB "G" +END + +BOOLEAN F_QCOMPG1 +BEGIN + PROMPT 14 RB "G1" +END + +BOOLEAN F_QCOMPH +BEGIN + PROMPT 20 RB "H" +END + +BOOLEAN F_QCOMPI +BEGIN + PROMPT 26 RB "I" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 RC0 "Inoltre dichiara di aver effettuato i conguagli conseguenti all'assistenza" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 RC1 "fiscale indicati nel quadro A e nei quadri" +END + +BOOLEAN F_QCOMPA1 +BEGIN + PROMPT 2 RD "A1" +END + +BOOLEAN F_QCOMPA2 +BEGIN + PROMPT 8 RD "A2" +END + +BOOLEAN F_QCOMPN +BEGIN + PROMPT 14 RD "N" +END + +BOOLEAN F_QCOMPP +BEGIN + PROMPT 20 RD "P" +END + +BOOLEAN F_QCOMPQ +BEGIN + PROMPT 26 RD "Q" +END + +BOOLEAN F_QCOMPR +BEGIN + PROMPT 32 RD "R" +END + +BOOLEAN F_QCOMPS +BEGIN + PROMPT 38 RD "S" +END + +BOOLEAN F_QCOMPT +BEGIN + PROMPT 44 RD "T" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 15 "Dichiara altresì di aver eseguito i versamenti risultanti dai quadri L,P,Q," +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 16 "S,T e da n. " +END + +NUMBER F_H0NQLAGG 4 +BEGIN + PROMPT 13 16 "" + FIELD LF_BASEBIS->H0NQLAGG + FLAGS "R" + //FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 16 "quadri aggiuntivi." +END + +ENDPAGE + +PAGE "Prospetto dati generali" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "RDG" + GROUP 1 +END + +STRING DLG_NULL 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" + GROUP 2 +END + +GROUPBOX DLG_NULL 78 10 +BEGIN + PROMPT 0 3 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 4 "Il sottoscritto dichiara di aver presentato i quadri" +END + +BOOLEAN F_QSUPPA +BEGIN + PROMPT 2 6 "A" +END + +BOOLEAN F_QSUPPA1 +BEGIN + PROMPT 8 6 "A1" +END + +BOOLEAN F_QSUPPA2 +BEGIN + PROMPT 14 6 "A2" +END + +BOOLEAN F_QSUPPA3 +BEGIN + PROMPT 20 6 "A3" +END + +BOOLEAN F_QSUPPB +BEGIN + PROMPT 26 6 "B" +END + +BOOLEAN F_QSUPPB1 +BEGIN + PROMPT 32 6 "B1" +END + +BOOLEAN F_QSUPPC +BEGIN + PROMPT 38 6 "C" +END + +BOOLEAN F_QSUPPD +BEGIN + PROMPT 44 6 "D" +END + +BOOLEAN F_QSUPPD1 +BEGIN + PROMPT 50 6 "D1" +END + +BOOLEAN F_QSUPPE +BEGIN + PROMPT 56 6 "E" +END + +BOOLEAN F_QSUPPE1 +BEGIN + PROMPT 62 6 "E1" +END + +BOOLEAN F_QSUPPE2 +BEGIN + PROMPT 68 6 "E2" +END + +BOOLEAN F_QSUPPF +BEGIN + PROMPT 2 7 "F" +END + +BOOLEAN F_QSUPPF1 +BEGIN + PROMPT 8 7 "F1" +END + +BOOLEAN F_QSUPPF2 +BEGIN + PROMPT 14 7 "F2" +END + +BOOLEAN F_QSUPPG +BEGIN + PROMPT 20 7 "G" +END + +BOOLEAN F_QSUPPG1 +BEGIN + PROMPT 26 7 "G1" +END + +BOOLEAN F_QSUPPH +BEGIN + PROMPT 32 7 "H" +END + +BOOLEAN F_QSUPPI +BEGIN + PROMPT 38 7 "I" +END + +BOOLEAN F_QSUPPL +BEGIN + PROMPT 44 7 "L" +END + +BOOLEAN F_QSUPPN +BEGIN + PROMPT 50 7 "N" +END + +BOOLEAN F_QSUPPP +BEGIN + PROMPT 56 7 "P" +END + +BOOLEAN F_QSUPPQ +BEGIN + PROMPT 62 7 "Q" +END + +BOOLEAN F_QSUPPR +BEGIN + PROMPT 68 7 "R" +END + +BOOLEAN F_QSUPPS +BEGIN + PROMPT 2 8 "S" +END + +BOOLEAN F_QSUPPT +BEGIN + PROMPT 8 8 "T" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 10 "mediante n. " +END + +NUMBER F_NSUPPM 4 +BEGIN + PROMPT 13 10 "" + FIELD LF_BASEBIS->NSUPPM +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 10 "supporti magnetici." +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771400b.uml b/m770/771400b.uml new file mode 100755 index 000000000..e1ed9f94d --- /dev/null +++ b/m770/771400b.uml @@ -0,0 +1,490 @@ +// Prospetto dati generali - soggetto dichiarante +#include "771300.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -15 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -45 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -55 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Prospetto dati generali" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "DGR" + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGSOC RAGSOC + MESSAGE COPY,1@ + FIELD LF_BASEBIS->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" + MESSAGE COPY,2@ +END + +LISTBOX F_TIPOQUA1 2 +BEGIN + PROMPT 90 90 "" + ITEM "D|Dichiarante" + FLAGS "D" + KEY 1 + FIELD LF_BASEBIS->TIPOQUA +// CHECKTYPE REQUIRED +END + +GROUPBOX DLG_NULL 78 15 +BEGIN + PROMPT 0 3 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 4 "Il sottoscritto dichiara di aver corrisposto a dipendenti e terzi nell'anno" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 1 5 "" + FLAGS "RD" +END + +TEXT DLG_NULL +BEGIN + PROMPT 7 5 "le somme e i valori e di aver effettuato le ritenute indicate" +END + +TEXT DLG_NULL +BEGIN + PROMPT 7 6 "nei quadri:" +END + +#define RA 8 +#define RB 9 +#define RC0 11 +#define RC1 12 +#define RD 13 + +BOOLEAN F_QCOMPA +BEGIN + PROMPT 2 RA "A" + FIELD LF_BASEBIS->QCOMP[1,1] +END + +BOOLEAN F_QCOMPA3 +BEGIN + PROMPT 8 RA "A3" + FIELD LF_BASEBIS->QCOMP[25,1] +END + +BOOLEAN F_QCOMPB +BEGIN + PROMPT 14 RA "B" + FIELD LF_BASEBIS->QCOMP[2,1] +END + +BOOLEAN F_QCOMPB1 +BEGIN + PROMPT 20 RA "B1" + FIELD LF_BASEBIS->QCOMP[3,1] +END + +BOOLEAN F_QCOMPC +BEGIN + PROMPT 26 RA "C" + FIELD LF_BASEBIS->QCOMP[4,1] +END + +BOOLEAN F_QCOMPD +BEGIN + PROMPT 32 RA "D" + FIELD LF_BASEBIS->QCOMP[5,1] +END + +BOOLEAN F_QCOMPD1 +BEGIN + PROMPT 38 RA "D1" + FIELD LF_BASEBIS->QCOMP[6,1] +END + +BOOLEAN F_QCOMPE +BEGIN + PROMPT 44 RA "E" + FIELD LF_BASEBIS->QCOMP[7,1] +END + +BOOLEAN F_QCOMPE1 +BEGIN + PROMPT 50 RA "E1" + FIELD LF_BASEBIS->QCOMP[8,1] +END + +BOOLEAN F_QCOMPE2 +BEGIN + PROMPT 56 RA "E2" + FIELD LF_BASEBIS->QCOMP[9,1] +END + +BOOLEAN F_QCOMPF +BEGIN + PROMPT 62 RA "F" + FIELD LF_BASEBIS->QCOMP[10,1] +END + +BOOLEAN F_QCOMPF1 +BEGIN + PROMPT 68 RA "F1" + FIELD LF_BASEBIS->QCOMP[11,1] +END + +BOOLEAN F_QCOMPF2 +BEGIN + PROMPT 2 RB "F2" + FIELD LF_BASEBIS->QCOMP[12,1] +END + +BOOLEAN F_QCOMPG +BEGIN + PROMPT 8 RB "G" + FIELD LF_BASEBIS->QCOMP[13,1] +END + +BOOLEAN F_QCOMPG1 +BEGIN + PROMPT 14 RB "G1" + FIELD LF_BASEBIS->QCOMP[14,1] +END + +BOOLEAN F_QCOMPH +BEGIN + PROMPT 20 RB "H" + FIELD LF_BASEBIS->QCOMP[15,1] +END + +BOOLEAN F_QCOMPI +BEGIN + PROMPT 26 RB "I" + FIELD LF_BASEBIS->QCOMP[16,1] +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 RC0 "Inoltre dichiara di aver effettuato i conguagli conseguenti all'assistenza" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 RC1 "fiscale indicati nel quadro A e nei quadri" +END + +BOOLEAN F_QCOMPA1 +BEGIN + PROMPT 2 RD "A1" + FIELD LF_BASEBIS->QCOMP[23,1] +END + +BOOLEAN F_QCOMPA2 +BEGIN + PROMPT 8 RD "A2" + FIELD LF_BASEBIS->QCOMP[24,1] +END + +BOOLEAN F_QCOMPN +BEGIN + PROMPT 14 RD "N" + FIELD LF_BASEBIS->QCOMP[17,1] +END + +BOOLEAN F_QCOMPP +BEGIN + PROMPT 20 RD "P" + FIELD LF_BASEBIS->QCOMP[18,1] +END + +BOOLEAN F_QCOMPQ +BEGIN + PROMPT 26 RD "Q" + FIELD LF_BASEBIS->QCOMP[19,1] +END + +BOOLEAN F_QCOMPR +BEGIN + PROMPT 32 RD "R" + FIELD LF_BASEBIS->QCOMP[20,1] +END + +BOOLEAN F_QCOMPS +BEGIN + PROMPT 38 RD "S" + FIELD LF_BASEBIS->QCOMP[21,1] +END + +BOOLEAN F_QCOMPT +BEGIN + PROMPT 44 RD "T" + FIELD LF_BASEBIS->QCOMP[22,1] +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 15 "Dichiara altresì di aver eseguito i versamenti risultanti dai quadri L,P,Q," +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 16 "S,T e da n. " +END + +NUMBER F_H0NQLAGG 4 +BEGIN + PROMPT 13 16 "" + FIELD LF_BASEBIS->H0NQLAGG + FLAGS "R" + //FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 16 "quadri aggiuntivi." +END + +ENDPAGE + +PAGE "Prospetto dati generali" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER DLG_NULL 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "RDG" + GROUP 1 +END + +STRING DLG_NULL 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" + GROUP 2 +END + +GROUPBOX DLG_NULL 78 10 +BEGIN + PROMPT 0 3 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 4 "Il sottoscritto dichiara di aver presentato i quadri" +END + +BOOLEAN F_QSUPPA +BEGIN + PROMPT 2 6 "A" + FIELD LF_BASEBIS->QSUPPINV[1,1] +END + +BOOLEAN F_QSUPPA1 +BEGIN + PROMPT 8 6 "A1" + FIELD LF_BASEBIS->QSUPPINV[2,1] +END + +BOOLEAN F_QSUPPA2 +BEGIN + PROMPT 14 6 "A2" + FIELD LF_BASEBIS->QSUPPINV[3,1] +END + +BOOLEAN F_QSUPPA3 +BEGIN + PROMPT 20 6 "A3" + FIELD LF_BASEBIS->QSUPPINV[4,1] +END + +BOOLEAN F_QSUPPB +BEGIN + PROMPT 26 6 "B" + FIELD LF_BASEBIS->QSUPPINV[5,1] +END + +BOOLEAN F_QSUPPB1 +BEGIN + PROMPT 32 6 "B1" + FIELD LF_BASEBIS->QSUPPINV[6,1] +END + +BOOLEAN F_QSUPPC +BEGIN + PROMPT 38 6 "C" + FIELD LF_BASEBIS->QSUPPINV[7,1] +END + +BOOLEAN F_QSUPPD +BEGIN + PROMPT 44 6 "D" + FIELD LF_BASEBIS->QSUPPINV[8,1] +END + +BOOLEAN F_QSUPPD1 +BEGIN + PROMPT 50 6 "D1" + FIELD LF_BASEBIS->QSUPPINV[9,1] +END + +BOOLEAN F_QSUPPE +BEGIN + PROMPT 56 6 "E" + FIELD LF_BASEBIS->QSUPPINV[10,1] +END + +BOOLEAN F_QSUPPE1 +BEGIN + PROMPT 62 6 "E1" + FIELD LF_BASEBIS->QSUPPINV[11,1] +END + +BOOLEAN F_QSUPPE2 +BEGIN + PROMPT 68 6 "E2" + FIELD LF_BASEBIS->QSUPPINV[12,1] +END + +BOOLEAN F_QSUPPF +BEGIN + PROMPT 2 7 "F" + FIELD LF_BASEBIS->QSUPPINV[13,1] +END + +BOOLEAN F_QSUPPF1 +BEGIN + PROMPT 8 7 "F1" + FIELD LF_BASEBIS->QSUPPINV[14,1] +END + +BOOLEAN F_QSUPPF2 +BEGIN + PROMPT 14 7 "F2" + FIELD LF_BASEBIS->QSUPPINV[15,1] +END + +BOOLEAN F_QSUPPG +BEGIN + PROMPT 20 7 "G" + FIELD LF_BASEBIS->QSUPPINV[16,1] +END + +BOOLEAN F_QSUPPG1 +BEGIN + PROMPT 26 7 "G1" + FIELD LF_BASEBIS->QSUPPINV[17,1] +END + +BOOLEAN F_QSUPPH +BEGIN + PROMPT 32 7 "H" + FIELD LF_BASEBIS->QSUPPINV[18,1] +END + +BOOLEAN F_QSUPPI +BEGIN + PROMPT 38 7 "I" + FIELD LF_BASEBIS->QSUPPINV[19,1] +END + +BOOLEAN F_QSUPPL +BEGIN + PROMPT 44 7 "L" + FIELD LF_BASEBIS->QSUPPINV[20,1] +END + +BOOLEAN F_QSUPPN +BEGIN + PROMPT 50 7 "N" + FIELD LF_BASEBIS->QSUPPINV[21,1] +END + +BOOLEAN F_QSUPPP +BEGIN + PROMPT 56 7 "P" + FIELD LF_BASEBIS->QSUPPINV[22,1] +END + +BOOLEAN F_QSUPPQ +BEGIN + PROMPT 62 7 "Q" + FIELD LF_BASEBIS->QSUPPINV[23,1] +END + +BOOLEAN F_QSUPPR +BEGIN + PROMPT 68 7 "R" + FIELD LF_BASEBIS->QSUPPINV[24,1] +END + +BOOLEAN F_QSUPPS +BEGIN + PROMPT 2 8 "S" + FIELD LF_BASEBIS->QSUPPINV[25,1] +END + +BOOLEAN F_QSUPPT +BEGIN + PROMPT 8 8 "T" + FIELD LF_BASEBIS->QSUPPINV[26,1] +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 10 "mediante n. " +END + +NUMBER F_NSUPPM 4 +BEGIN + PROMPT 13 10 "" + FIELD LF_BASEBIS->NSUPPM +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 10 "supporti magnetici." +END + +ENDPAGE + +ENDMASK + diff --git a/m770/771mod.mak b/m770/771mod.mak new file mode 100755 index 000000000..b8b231d65 --- /dev/null +++ b/m770/771mod.mak @@ -0,0 +1,170 @@ +# Microsoft Visual C++ generated build script - Do not modify + +PROJ = 771MOD +DEBUG = 1 +PROGTYPE = 0 +CALLER = +ARGS = -5 +DLLS = +D_RCDEFINES = /d_DEBUG +R_RCDEFINES = /dNDEBUG +ORIGIN = MSVC +ORIGIN_VER = 1.00 +PROJPATH = F:\NIK\P.DUE\77\ +USEMFC = 0 +CC = cl +CPP = cl +CXX = cl +CCREATEPCHFLAG = +CPPCREATEPCHFLAG = +CUSEPCHFLAG = +CPPUSEPCHFLAG = +FIRSTC = +FIRSTCPP = 771.CPP +RC = rc +CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"771.PDB" /GEs +CFLAGS_R_WEXE = /nologo /Gs /Gy /W3 /Gf /AL /O1 /D "XVT_OS"="400" /FR /GA +LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO +LFLAGS_R_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE +LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib +LIBS_R_WEXE = oldnames libw llibcew toolhelp.lib +RCFLAGS = /nologo +RESFLAGS = /nologo /k /k +RUNFLAGS = +DEFFILE = ..\..\..\P.DUE\WIN\LIB\UNIVERSL.DEF +OBJS_EXT = +LIBS_EXT = ..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB ..\..\..\P.DUE\WIN\LIB\WINDUED.LIB \ + ..\..\..\P.DUE\WIN\LIB\WINGFM.LIB ..\..\..\P.DUE\WIN\LIB\WINUNO.LIB ..\..\..\P.DUE\WIN\LIB\XVT400.LIB +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS_D_WEXE) +LFLAGS = $(LFLAGS_D_WEXE) +LIBS = $(LIBS_D_WEXE) +MAPFILE = nul +RCDEFINES = $(D_RCDEFINES) +!else +CFLAGS = $(CFLAGS_R_WEXE) +LFLAGS = $(LFLAGS_R_WEXE) +LIBS = $(LIBS_R_WEXE) +MAPFILE = nul +RCDEFINES = $(R_RCDEFINES) +!endif +!if [if exist MSVC.BND del MSVC.BND] +!endif +SBRS = 771.SBR \ + 771310.SBR \ + 774100.SBR \ + 771100.SBR \ + 771290.SBR \ + 771295.SBR \ + 771300.SBR \ + 77LIB01.SBR \ + 771230.SBR + + +HLAPI_CW_DEP = + +WINDUED_DEP = + +WINGFM_DEP = + +WINUNO_DEP = + +XVT400_DEP = + +771_RCDEP = + +771_DEP = + +771310_DEP = + +774100_DEP = + +771100_DEP = + +771290_DEP = + +771295_DEP = + +771300_DEP = + +77LIB01_DEP = + +771230_DEP = + +all: $(PROJ).EXE $(PROJ).BSC + +771.RES: 771.RC $(771_RCDEP) + $(RC) $(RCFLAGS) $(RCDEFINES) -r 771.RC + +771.OBJ: ..\..\..\P.DUE\77\771.CPP $(771_DEP) + $(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c ..\..\..\P.DUE\77\771.CPP + +771310.OBJ: ..\..\..\P.DUE\77\771310.CPP $(771310_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771310.CPP + +774100.OBJ: ..\..\..\P.DUE\77\774100.CPP $(774100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\774100.CPP + +771100.OBJ: ..\..\..\P.DUE\77\771100.CPP $(771100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771100.CPP + +771290.OBJ: ..\..\..\P.DUE\77\771290.CPP $(771290_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771290.CPP + +771295.OBJ: ..\..\..\P.DUE\77\771295.CPP $(771295_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771295.CPP + +771300.OBJ: ..\..\..\P.DUE\77\771300.CPP $(771300_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771300.CPP + +77LIB01.OBJ: ..\..\..\P.DUE\77\77LIB01.CPP $(77LIB01_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\77LIB01.CPP + +771230.OBJ: ..\..\..\P.DUE\77\771230.CPP $(771230_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\771230.CPP + + +$(PROJ).EXE:: 771.RES + +$(PROJ).EXE:: 771.OBJ 771310.OBJ 774100.OBJ 771100.OBJ 771290.OBJ 771295.OBJ 771300.OBJ \ + 77LIB01.OBJ 771230.OBJ $(OBJS_EXT) $(DEFFILE) + echo >NUL @<<$(PROJ).CRF +771.OBJ + +771310.OBJ + +774100.OBJ + +771100.OBJ + +771290.OBJ + +771295.OBJ + +771300.OBJ + +77LIB01.OBJ + +771230.OBJ + +$(OBJS_EXT) +$(PROJ).EXE +$(MAPFILE) +c:\msvc\lib\+ +f:\p.due\win\lib\+ +f:\xvt.403\win_x86\ptk\lib\+ +f:\xvt.403\win_x86\xpo\lib\+ +..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB+ +..\..\..\P.DUE\WIN\LIB\WINDUED.LIB+ +..\..\..\P.DUE\WIN\LIB\WINGFM.LIB+ +..\..\..\P.DUE\WIN\LIB\WINUNO.LIB+ +..\..\..\P.DUE\WIN\LIB\XVT400.LIB+ +$(LIBS) +$(DEFFILE); +<< + link $(LFLAGS) @$(PROJ).CRF + $(RC) $(RESFLAGS) 771.RES $@ + @copy $(PROJ).CRF MSVC.BND + +$(PROJ).EXE:: 771.RES + if not exist MSVC.BND $(RC) $(RESFLAGS) 771.RES $@ + +run: $(PROJ).EXE + $(PROJ) $(RUNFLAGS) + + +$(PROJ).BSC: $(SBRS) + bscmake @<< +/o$@ $(SBRS) +<< diff --git a/m770/771mod.url b/m770/771mod.url new file mode 100755 index 000000000..712caa348 --- /dev/null +++ b/m770/771mod.url @@ -0,0 +1,41 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(1) + +MENU MENU_BAR(1) + SUBMENU MENU_FILE "~File" + + +MENUBAR MENU_BAR(2) + +MENU MENU_BAR(2) + SUBMENU MENU_FILE "~File" + + +MENUBAR MENU_BAR(3) + +MENU MENU_BAR(3) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(4) + +MENU MENU_BAR(4) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(5) + +MENU MENU_BAR(5) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(6) + +MENU MENU_BAR(6) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(7) + +MENU MENU_BAR(7) + SUBMENU MENU_FILE "~File" diff --git a/m770/772.cpp b/m770/772.cpp new file mode 100755 index 000000000..a9e215afe --- /dev/null +++ b/m770/772.cpp @@ -0,0 +1,29 @@ +#include +#include +#include "770.h" +#include "772.h" + +#define usage "Error - usage : %s -{0|1|2|3}" + +int main(int argc,char** argv) +{ + int n = (argc > 1) ? atoi(argv[1]+1) : -1; + + switch (n) + { + case 0: + m72100(argc,argv); break; + case 1: + m72200(argc,argv); break; + case 2: + m72300(argc,argv); break; + case 3: + m72400(argc,argv); break; + case 4: + stampa_quadro(argc,argv); break; + default: + error_box(usage, argv[0]) ; + } + return 0; +} + diff --git a/m770/772.h b/m770/772.h new file mode 100755 index 000000000..81126e928 --- /dev/null +++ b/m770/772.h @@ -0,0 +1,19 @@ +#ifndef __772_H +#define __772_H + +#ifdef MAIN +#define extern +#endif + +#ifdef MAIN +#undef extern +#endif + +int m72100 (int argc, char* argv[]); // Stampa schede percipienti +int m72200 (int argc, char* argv[]); // Stampa delle certificazioni +int m72300 (int argc, char* argv[]); // Stampa movimenti per percipiente +int m72400 (int argc, char* argv[]); // Stampa versamenti ritenute +int stampa_quadro(int argc, char* argv[]); // Stampa quadro dichiarazione + +#endif + diff --git a/m770/772.mak b/m770/772.mak new file mode 100755 index 000000000..84e017fda --- /dev/null +++ b/m770/772.mak @@ -0,0 +1,543 @@ +# Microsoft Visual C++ generated build script - Do not modify + +PROJ = 772 +DEBUG = 1 +PROGTYPE = 0 +CALLER = +ARGS = +DLLS = +D_RCDEFINES = /d_DEBUG +R_RCDEFINES = /dNDEBUG +ORIGIN = MSVC +ORIGIN_VER = 1.00 +PROJPATH = F:\P.DUE\77\ +USEMFC = 0 +CC = cl +CPP = cl +CXX = cl +CCREATEPCHFLAG = +CPPCREATEPCHFLAG = +CUSEPCHFLAG = +CPPUSEPCHFLAG = +FIRSTC = +FIRSTCPP = 772.CPP +RC = rc +CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"772.PDB" /GEs +CFLAGS_R_WEXE = /nologo /W3 /AM /O1 /D "NDEBUG" /FR /GA +LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE +LFLAGS_R_WEXE = /NOLOGO /NOD /PACKC:61440 /STACK:10240 /ALIGN:16 /ONERROR:NOEXE +LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib +LIBS_R_WEXE = oldnames libw mlibcew commdlg.lib olecli.lib olesvr.lib shell.lib +RCFLAGS = /nologo +RESFLAGS = /nologo /k /k +RUNFLAGS = +DEFFILE = ..\WIN\LIB\UNIVERSL.DEF +OBJS_EXT = +LIBS_EXT = ..\WIN\LIB\HLAPI_CW.LIB ..\WIN\LIB\WINDUED.LIB ..\WIN\LIB\WINGFM.LIB ..\WIN\LIB\WINUNO.LIB \ + ..\WIN\LIB\XVT400.LIB +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS_D_WEXE) +LFLAGS = $(LFLAGS_D_WEXE) +LIBS = $(LIBS_D_WEXE) +MAPFILE = nul +RCDEFINES = $(D_RCDEFINES) +!else +CFLAGS = $(CFLAGS_R_WEXE) +LFLAGS = $(LFLAGS_R_WEXE) +LIBS = $(LIBS_R_WEXE) +MAPFILE = nul +RCDEFINES = $(R_RCDEFINES) +!endif +!if [if exist MSVC.BND del MSVC.BND] +!endif +SBRS = 772.SBR \ + 772100.SBR \ + 772200.SBR \ + 772300.SBR \ + 772400.SBR + + +HLAPI_CW_DEP = + +WINDUED_DEP = + +WINGFM_DEP = + +WINUNO_DEP = + +XVT400_DEP = + +772_DEP = f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\checks.h \ + f:\p.due\77\770.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\77\772.h + + +772100_DEP = f:\p.due\include\mask.h \ + f:\p.due\include\window.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\xvtility.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\printapp.h \ + f:\p.due\include\applicat.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\text.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\sort.h \ + f:\p.due\include\scperc.h \ + f:\p.due\include\rpag.h \ + f:\p.due\include\rver.h \ + f:\p.due\include\comuni.h \ + f:\p.due\include\nditte.h \ + f:\p.due\include\anagr.h \ + f:\p.due\include\anafis.h \ + f:\p.due\include\perc.h \ + f:\p.due\include\mailbox.h \ + f:\p.due\include\execp.h \ + f:\p.due\77\772.h \ + f:\p.due\77\772100.h \ + f:\p.due\77\77lib.h + + +772200_DEP = f:\p.due\include\mask.h \ + f:\p.due\include\window.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\xvtility.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\printapp.h \ + f:\p.due\include\applicat.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\text.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\sort.h \ + f:\p.due\include\progind.h \ + f:\p.due\include\scperc.h \ + f:\p.due\include\rpag.h \ + f:\p.due\include\comuni.h \ + f:\p.due\include\nditte.h \ + f:\p.due\include\anagr.h \ + f:\p.due\include\anafis.h \ + f:\p.due\include\perc.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\77\772.h \ + f:\p.due\77\772200.h \ + f:\p.due\77\77lib.h + + +772300_DEP = f:\p.due\include\mask.h \ + f:\p.due\include\window.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\xvtility.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\printapp.h \ + f:\p.due\include\applicat.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\text.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\sort.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\config.h \ + f:\p.due\include\scperc.h \ + f:\p.due\include\rpag.h \ + f:\p.due\include\rver.h \ + f:\p.due\include\comuni.h \ + f:\p.due\include\nditte.h \ + f:\p.due\include\anagr.h \ + f:\p.due\include\anafis.h \ + f:\p.due\include\perc.h \ + f:\p.due\include\mailbox.h \ + f:\p.due\include\execp.h \ + f:\p.due\77\772.h \ + f:\p.due\77\772300.h \ + f:\p.due\77\77lib.h + + +772400_DEP = f:\p.due\include\mask.h \ + f:\p.due\include\window.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\xvtility.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\printapp.h \ + f:\p.due\include\applicat.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\text.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\sort.h \ + f:\p.due\include\progind.h \ + f:\p.due\include\scperc.h \ + f:\p.due\include\rpag.h \ + f:\p.due\include\rver.h \ + f:\p.due\include\anagr.h \ + f:\p.due\include\nditte.h \ + f:\p.due\include\perc.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\77\772.h \ + f:\p.due\77\772400.h \ + f:\p.due\77\77lib.h + + +772_RCDEP = + +all: $(PROJ).EXE $(PROJ).BSC + +772.OBJ: 772.CPP $(772_DEP) + $(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c 772.CPP + +772100.OBJ: 772100.CPP $(772100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 772100.CPP + +772200.OBJ: 772200.CPP $(772200_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 772200.CPP + +772300.OBJ: 772300.CPP $(772300_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 772300.CPP + +772400.OBJ: 772400.CPP $(772400_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 772400.CPP + +772.RES: C:\PRASSI\772.RC $(772_RCDEP) + $(RC) $(RCFLAGS) $(RCDEFINES) -r -FoF:\P.DUE\77\772.RES C:\PRASSI\772.RC + + +$(PROJ).EXE:: 772.RES + +$(PROJ).EXE:: 772.OBJ 772100.OBJ 772200.OBJ 772300.OBJ 772400.OBJ $(OBJS_EXT) $(DEFFILE) + echo >NUL @<<$(PROJ).CRF +772.OBJ + +772100.OBJ + +772200.OBJ + +772300.OBJ + +772400.OBJ + +$(OBJS_EXT) +$(PROJ).EXE +$(MAPFILE) +c:\msvc\lib\+ +c:\p.due\win\+ +f:\p.due\win\lib\+ +..\WIN\LIB\HLAPI_CW.LIB+ +..\WIN\LIB\WINDUED.LIB+ +..\WIN\LIB\WINGFM.LIB+ +..\WIN\LIB\WINUNO.LIB+ +..\WIN\LIB\XVT400.LIB+ +$(LIBS) +$(DEFFILE); +<< + link $(LFLAGS) @$(PROJ).CRF + $(RC) $(RESFLAGS) 772.RES $@ + @copy $(PROJ).CRF MSVC.BND + +$(PROJ).EXE:: 772.RES + if not exist MSVC.BND $(RC) $(RESFLAGS) 772.RES $@ + +run: $(PROJ).EXE + $(PROJ) $(RUNFLAGS) + + +$(PROJ).BSC: $(SBRS) + bscmake @<< +/o$@ $(SBRS) +<< diff --git a/m770/772.pdb b/m770/772.pdb new file mode 100755 index 000000000..558dd362c --- /dev/null +++ b/m770/772.pdb @@ -0,0 +1,1341 @@ +Microsoft C/C++ program database 1.00 +JG\¥|1<#L…€ios$fGg!Ñ€ostream⺀ streambufòñO,Ò€istream¨ ‰ êÊ!ˆ! 4A +‘ ² +òE! u!ä"€istream_withassignñ~,Ãû!âÂ!%# + F!ç +"€ostream_withassignñ€#)€iostreamóòñÂ%â!%| +€TObjecto( (©*‰!* +p#ñ +pñ +p!ñO!(W€ TSortableòñw1‘!2ç€ +TContainerñó4j€TArrayñÒ67=6+ +p'ño( € +TBit_arrayñ˜<Ú=û<f€TString @d@Á B +pñ +pñ +p"ñá!Ba€TFixed_stringòñH€ TString16òñÉJ€ TString80òñ‹LÔ€ +TString256ñUN£€ TFilenameòñPt +Pñ +!R« +€TToken_stringòñ“Tß"€TParagraph_stringòñ]V¬€TString_arrayòñX| XÙZ“ +T € TApplicationóòñ› ]e^º]ñ +pñp € THash_objectóòñ bÀcáb8€ TAssoc_arrayóòñ‚ fL gm fÜ€realóòñjÈ ké jè!ku€TDistribóòñT +o +pñ +pñuoÐ +s="€TGeneric_distribóòñ’ +u³u\ w€TImportoóòñ?yù z yÙ!zh€TDateòñš~¤t…~„!÷€TFormatted_dateC„ „­!†§€TFileòñψ¬ˆ ŠU€TDiróòñ(ŒjKŒ€TTrecòñ´ö‘×B€ +TMemo_infoñ0”r•S”ç€TRectypeóòñߘ¼˜š9!šö +pñ, +p,ñô€TBaseisamfileòñ¥Ÿç „Ÿ € TTextfileòñ !£ € TIsamfileòñB¥&€TSystemisamfileŒ§’€TLocalisamfileñï©)ª«€TIsamtempfileòñk¬”€ TRecfieldòñJ®”¯€ TRelationòñ÷±1²Ö±¶€TReclockóòñ¥!~¡€TIsamopU€TRecord_arrayòñœ¸Þ¹ +pñ +pñÿ¸| €TCursorÅ ¾Z¾‡ À1²¦ +Âe + ÃÄÁ€TSorted_cursorñÍÆñ€ TFieldrefòñì È®ÉÈ©&€TRelation_descriptionòñh Ì*Ͷ €TConfigôÏø +€TPointñ¶ÑŽ€s_pntòñ— +Ñ3 +!Ô€TImageñ2 +Öü׊€TWindow¾ÙŸ ÙxÛÕ€TScroll_windowñ:Ý ÝÄߣ€filebuf§ áaâ€ifstreamóòñ@ äå#ä €ofstreamóòñÌèŽ é¯ èÒ€fstreamHì + í+ ìÌ €TScanneróòñ· +ðÔðq +ò= +€ TMask_fieldPô +õ3 +ô€ CheckTimeòñ!ô +ùsòñM + úXû€ TEdit_field;ýþ€ CheckTypeòñ ý– €TBrowsefÃ:€ TList_sheetâO€ TReal_fieldn +¨ € TRadio_fieldóòñËÎ +€TButton_fieldòñ4vÅ +€ TMemo_field‘Óõ +pñ€ TZoom_field_? €TMaskòñ~¸™{€ TSheet_fieldóòñ%¥€TFormòñg —!ð?€TPrint_sectionñ€#¹! -& +pñ¿€ TForm_flagsN)¡#ˆ+€#¨!+`€ +TForm_itemñ5/w0/ +pñ£– +!ÑÖ±½ € TPrintrowòñ7=7^9H€ TPrintstyleH€ +PrinterDefñ˜<Ú=û<R€BkDefòñ@©€TPrinteróòñÁB& BƒDá !B¢ F\ +GH§ + +rpòñ> +JèK(€TPrtype¾€TFile_printeròñUN7ªN6Qu€TIndwinÑ S“TðSÊ €TProgindóòñ|W¶ +€TSheetñ +YÙZ>Yó € TArray_sheetóòñº]› +]D _€TCursor_sheetòñ'aá b aY€TBrowse_sheetòñ‚ e_ € TSchedaPEòñLgm gi  +p ñ +p ñ +p +ñ^€TNikArray_sheetu n7€TSchedaPóòñTp q6!qrVp7 p€ TPercipienteóòñ}w? +x!x\ +wB€ TVersamentoØ|š +}É!j» +|º!}€"€TVersamento_stampañæ‚!ƒ‚ ƒ +pñ  +pñˆ€PagineQDóòñ€TDicFormóòñ ŠîŠKŒ| +W ,€ TipoDittaòñž +pñ +p ñ + +pñô +pñ)€ ModulaserKeyóòñ<!74!/ !#ósÿ!˜÷ +pñ¿€TQuadroGóòñzN€ +TDistintaGñ„ŸÄ € TStDicArrayç¡!¢Æ¡´ +pñ¥ €TStampaQuadroòñŒ§'!@ +pñ +pñ  +p ñ +pñ& +p2ñ +p$ñ±€TStampaQuadroGñ÷° +p%ñð +pñÕ € TQuadroG1òñs´¸€TStampaQuadroG1½¶V1‹òñ +¹9ºM +»ñ{¼æ ˆio_stateóòñPˆ open_modeòñЈseek_diróòñ +Úskipwsóòñleftñrightinternalñdecòñ octòñ@hexòñ€showbaseñ showpoint uppercaseshowposòñ +scientificóòñfixed unitbufòñ@stdiodrÁ __unnamedòñF!A ÃÏ  Ä{  ¹™¬  Ç ÅÆÈr + +Æt  ËE  ¹´ +ÌÍ¥ +òñ” + Ï× +Ìи Ì r± + rÓå  r¹¤ +ÔÕ  ¹âx ØC +×ÙV p‡ pÛç  p¹Ô +Üݤ +ÕÔWÕ + Óãá²  ¹¡ãJ  ¹gå³!à  çÓè‚!À  êÓ¹ëƒ  ¹g í#  r¹% ï²  ¹ë  ñÊ  İ ó% +ÈskippingñtiedñLrö __unnamedòñ  +áÕB +½ ¾io_stateóòñ ¿ open_modeòñ Àseek_diróòñ  __unnamedòñ basefield adjustfieldòñ +floatfieldóòñÉiosòñÊ~iosñÎflagsÑsetfñÒunsetfóòñÖwidthÚtieòñÞfillñß precisionàrdstateòñâclearäoperator void __far *à operator!àgoodñàeofòñàfailñàbadòñærdbuféiwordìpwordîbitallocñðxallocóòñòsync_with_stdioòñô operator=õinitñ ÷ __unnamedòñbpñrstateòñr +ispecialóòñr ospecialóòñr isfx_specialóòñr osfx_specialóòñrx_delbufóòñx_tieòñx_flagsr x_precisionrx_widthp x_fillñ» +stdioflushóòñødelbufóòñx_maxbitñ +x_statebufóòñr +x_curindexóòñrsunk_with_stdioòñC +ñ=ùú"iosU  +¹| +üÇ r ¹®þÄ r +¹ìhü§  r +ÛA¯ r +Ó‡c + +pròñÌ r +äÄ +c  +u + ê +Àr  +ž + Å +ròñu  +7 +Ü +Ø +· +Ø + Ï +$o!<Š  +}  +*üÁ + p ¹®¯þa +ppòñt  + "!¼ +pppÒ  +#A$  +Ó‡&þ + +ppr  +(:)A +&þí¡ +( !ç . +ý/Vö +½ý +~streambufóòñÿin_availñÿ out_waitingòñsgetcsnextcóòñsbumpcóòñstosscóòñ sputbackcsputc sputn sgetn +syncñ setbufóòñseekoffòñseekposòñxsputnóòñxsgetnóòñoverflowñ underflow pbackfaildbpòñ streambufbaseñebufñpbasepptrñepptrebackgptrñegptrblenñ"setpñ%setgñ'pbump'gbump*setbñ+ +unbufferedóòñ,allocateñ- +doallocateóòñr_fAllocr_fUnbufrx_lastcp +_baseòñp_ebufòñp_pbaseñp_pptròñp_epptrñp_ebackñp"_gptròñp&_egptrñ0 operator=Œ + + -712* streambufòñö +rñó4o   ª    7÷    ¹: +   Çû689:O 9=  r  ÓÏ =K 91 +   Çã!B AV    B!Aà Dó    E%!@MG    Hƒ!".J   KíçË   Mò!sUO¨   PÓ!r6R   Sd!!“Uâ   VT!|X_    Y<    [Û    ]!pe_¸    `6v   b 4   dV +pò   fò°   h‘Ž   jNJ@CFILNQTWZ\^acegik} +.pòñ4   mÞ +rpw   oÎ + rp¹   q¾ +prpû   sF  r  ¹"n\^aprtuíprt¥ +rròñ_   x‹y +ròñâ   { + ròñ$   }î    |~D  r ¹ƒ÷ u   Ûà„u +Àòñ   †   Ë +‡ˆæ    ¹ºŠ¡    7¹ +Œ@Î =J r  fSJ r  ‘]V5;istreamòñ<~istreamñ>ipfxñ?isfxñl +operator>>óòñvgetòñwgetlineòñzignoreóòñ€readñ‚gcountóòñƒpeekñ…putbackòñƒsyncñ‰seekg‹tellg?eatwhiteñ operator=Ždo_ipfxòñgetintóòñ’ getdoubler_fGlinerx_gcountóòñÿ8“*istream· Ûu –¿ ¹ê + Ç÷•—˜™p˜Å ¹Èœ. r¹žt˜ˆ + ǃƒ ¢$ +BE ¤ +A ¦f +@É ¨D"‹ ª + Ëó s. ­4 Óe!± + °Uó + ²65 + ´ w + ¶<  ÛC  b…  dÇ  f  hF"^  ½/N¡£¥§©«¬®¯±³µ·¸¹º»¼¾[µ·¸] { }I ýÁÂÃ& †l +ŬΠ¹Ç –[ +É¡Á rÓ˜Ëu˜@  pζê5šostreamòñ›~ostreamñflushŸopfxñ osfxñ¿ +operator<<óòñÀputòñÄwriteÆseekpÈtellpÊ operator=Ìdo_opfxòñÍdo_osfxòñÏwritepadñr x_floatused ++Ð(ostreamK + %& 8 %&ß %&ã%!Õ2Ö2 %&×—  %&¹Â %&ÇAÒÓÔØÙÚïÙ-'® '%&ݘ '%&ÇN +ÞßÂN 5ÛiostreamñÜ ~iostreamà operator=K á0iostreamóòñu  ()¹µ +ãæ p(+¹O +åû  s(+¹ +ç  (+¹Û + +é 5  ;(+¹ + +ë“ + (+ G + +íÜ () + +ï +çˆ,ß ()òi +ó㊠0()òw õU ž +½ä~TObjectñæ +class_nameóòñèclass_idñêokóòñìdupòñîprint_onñð read_fromñhashñôTObjectòñö operator=Œ + +òñ ÷øTObjectÛ +33òñM + ú² + ò;ü[ ;45¹š +þ æ +þ$â +þ(î +þ,† 45¹ +0— +òââê  45¼ +4Ò + +ýòñ@ + 45 + + 8; ýn + ;45î +<ê +@Æ +þD +þH± + 451 +L®þ4=! 45• 45¹o +Ó!4<  45¯üJ(ý_last_conditionÿ +first_itemóòñ last_item succ_item pred_itemobjectsòñ for_eachñ for_each_that +first_thatóòñ last_that succ_that pred_thatcount +operator++óòñ +operator--óòñ +TContaineróòñ operator= ~TContaineròñÛ +  ! +TContainerñ˜;ü 69ÓA$<!7Â& 69'Ó 69¹ì()$?)'  p68¹\,  s68¹š.j  68 Ø0÷ 68¹2! r68¹P4À 69¹’64 +4P ;69¹O9 r68Ó ;Î 068ÓÏ=3 ;68Ó?!6Ä A69'b B÷ +r òñ- 69D¿ +ET +,ròñ r69G +;ròñR r69IÀ HJX< HJ\Î ;69DßM¬ 69xO;)©*Ñ RÛ +SSòñ +rT² U²Vð 69W´X³ +þ4#_dataòñr _sizeòñr_itemsñr_nextòñr +_scanindexñ%resizeóòñ*TArrayóòñ+~TArrayòñ- +class_nameóòñ/class_idñ1print_onñ3okóòñ5sizeñ7objectsòñ8items: +first_itemóòñ: last_item: succ_item: pred_item5first5lastñ<succñ<predñ> +operator[]óòñ@objptróòñC operator=FdestroyòñKaddòñLinsertóòñNremoveóòñPswapñQpackñYsortñ +òñ® &Z[TArrayñ? r@AÓî ] ©@Af¬ _M G\ @Aa£ @Af® @AÓõ @A¹m @A³bcdefÎ @AD° +h ãef p@C¹= kk s@C¹û mÖ @C¹¹ o5 ;@C¹w +q³ @C 5 +s¬  @Aó +u  p@C¹µ +w? p@CÓL _@AÓ¯ +yzd r@C¹è|½ oü r@Cc +pròñƒ + r@C€ò +b G@CÓÁƒÚ + G@Cx…i @@CÓE‡Ó + @@Cx›‰²  ©@A€Ù‹ ©@AÓÍ  ©@A]­ _Y ©@A¹²’§ +rpòñ ©@A”• ©@A U— + +pòñ} ©@A™Â +š$Ç +pòñ ©@Aœ/i G@Af– G@Aa“ +Ÿ ð ©@Aa ©@AòO ©@A¦ + ©@AË: ©@AÛ墣¤¥¦_} @Ca‚ @Cf1¨©©»©Î +pr 4  r@C¬?­ž(p_stróòñr_sizeòñ^ make_room`setòñgTStringòñiresizeóòñj~TStringñl +class_nameóòñnclass_idñpokóòñrdupòñtprint_onñv read_fromnhashñxoperator const char __far *òñ{ +operator[]óòñ}sizeñ}lenòñ~empty~ not_empty~blank‚findñ„leftñ†midòñ†subòñ„rightˆsleftŠsmidñŠssubñˆsrightóòñŒfillñŽspacesóòñ overwriteinsertóòñ‘strip“ strip_spacesñ“strip_d_spacesóòñŽltrimŽrtrim“trimñ– +right_justóòñ– center_justòñ– left_just˜pictureòñ›formatóòñŽcutòñ“upper“lowerž +add_pluralóòñ¡ operator=§ +operator<<óòñª +operator==óòñª +operator!=óòñ« operator<« operator>« +operator>=óòñ« +operator<=óòñ«match®compareòñ‹ + + +ñ+M¯° +TString +pñ. J0!³´  JKµ0 JKa[ JKf¼¶·¸é !Js ºJKµ™ GJKfò GJKaK +»¼½‰ JK¹ ¿NH² +_str16ñ¹ TString16¾ operator=À +~TString16óòñ¬ Á° TString16òñA +pQñè L# !ÄÅ» LMÆü LMa LMf¯ÇÈÉ« !Lõ ËLMÆ> GLMaÙ GLMf¾ÌÍÎU LM¹8Ð NHà +_str80ñÊ TString80Ï operator=Ñ +~TString80óòñ¶  Ò°\ TString80òñÑSQ PQÔ| PQaã + PQf¹ ÕÖ×7 +!P ÙPQÔ¶ GPQa) + GPQfˆÚÛÜÑR£ PÞ¹) ßÓ pPÞ¹J +×á¿ ÙPQf¡ããá5 + SPQfFæ SPQ¹èÕ PQ¹Þ ê¡–LØ TFilenameÝ operator=àokóòñâextòñäaddòñånameñåpathñçtempñétempdiròñë +~TFilenameóòñM ì°\ TFilenameòñð +Tõ î ;Tï¹ ð TUÓ +òÕ!îP ô˜ TUõ TU”a + +ppòñ2 TUø]ö÷ù6 TUÛIûU TU¹ý³ +!T’ + ÿTUõN  GTUa© + GTUfZ²  TUx  TUŠ TU€í TU©> TUÓ  pTUÓè pTU¹Ë +   pTUÓ¾ rTUÓü/ TUÓ2Ú + rTUfpL rTï¹¶ Tï¹ô‹ý .@p + +_separatorñr _lastòññdupòñóset_itemñúTToken_stringü separatorþrestartòñ operator=addòñ +destroyòñgetòñget_charñget_intòñget_longñget_posòñitems empty_itemsòñ~TToken_stringóòñްTToken_stringòñµ ôX[Ó¼ ÿXYÓ + \XYÓÌ Ò rXYy +ôròñ¾ rXY#Ñ +\ròñp rXY%"$&ì rX[Ä(3 XY¶*ù !Zˆ,Ø XY-¾ XYÓñ +./Õ XY¹71? !X. 3XY-P4Ÿ†6rowòñ!rowptróòñ'addòñ)findñ+sortñ0TString_array2~TString_arrayóòñ5 operator= 6[TString_arrayòñ5 p ]`¹E9 ]`¶;ö ]`¹Á= ]_¹ƒ?… p]_¹BA +€s_eventà Cé +Dòñ ]Eÿ +Fî ]`E± +Hõ ]_¹S +JW +Jî += î ]`²Û +N— + òñ  ]`Pj +Qò +=z +9~ +9 J9Ì ]`Ó•WA +r³pü  ]`YJ +Z€ s]_¹@ + +\$6 +J(  +9,> +J0 +A4K9  ]`²! c¶ + òñ ]`eÆ fÚ G]_¹„ hX p]_ÓË 8]_¹I +jk‡ r]_¹ÿm_  ]`f½oX +R³òñË ]qJ  rT ]_x t! ]`ËÖ vç ]_¹” xCA¦ ]`­É{ +\ú +3òñ• ]`~Mþ NE !^æ‚  ]`ƒQ +„9 +98š !]– ‡]`ƒdˆP& +½r_baróòñr__argcñ8__argvñ< _dongle_aut< _user_autòñL _nameòñL|_titleñØ _savefirmòñ Ü +_create_okñsÞ_waitingóòñ: terminate< +set_cursoróòñ>configóòñ@aboutBget_module_nameòñGtask_ehòñIhandleròñKextended_firmL use_filesMcreateóòñOmenuñRbuild_firm_dataòñSdestroyòñTon_config_changeñUon_firm_changeóòñV set_permsXsetbaróòñ[runòñ]class_idñ^okóòñ_print`firm_change_enabledòñaextra_modulesbstop_runñdcheck_menu_itemòñduncheck_menu_itemgenable_menu_itemñddisable_menu_itemddispatch_e_menuòñinameñlargvñnargcñp set_titleititlescheck_parametersñu +has_moduleóòñwset_firmñyget_firmñz get_firm_dirñ|wait_forñbwake_upòñ}waitingòñb +begin_waitóòñbend_waitñ€add_menuñ remove_menuòñ… TApplicationñ†~TApplication‰ operator=ç +òñã >Š‹à TApplicationóòñz Gbd¹a 0bd¹]à !cב} be’) befû +“”» be¹2–Á !b ˜be’«™ºz(@_keyóòñ;_objóòñŽkeyòñobjòñ• THash_objectñ—~THash_objectš operator=é ›ø THash_objectóòñá q HASH_SIZE6r __unnamedòñ + +6Ôñá b— +p m  fi¡ƒ¢¡ rfh¹À¤ý ;fi¹¦À fi¹@¨3 fi¹þ +ªPŠ +p, F fi¬û +p; ¸ fi® +­¯B  fif³±t  0fifñ³o  ;fif7µ¦P  fi¹T¸šªË +3 òñd rfi»¨¼l!gZ¾h fi¿D +ÀªžªM!f. Ãfi¿ ÄÖ4 ž __unnamedòñs_cntóòñs +_rowóòñs _colóòñr_rowitemóòñr_colitemóòñŸ_dataòñ£_lookupòñ¥items§ +first_itemóòñ§ last_item§ succ_item§ pred_item©objectsòñ«destroyòñ°addòñ²removeóòñ´findñ¶objptróòñ²is_keyóòñ´ +operator[]óòñ·getòñ¹ get_hashobjòñºrestartòñ½get_keysñÁ TAssoc_arrayñÂ~TAssoc_arrayÅ operator=o +óòñ– +ÆÇæ TAssoc_arrayóòñº€DECv ;jl¹ÿ Ê' pjl¹¹ Ì€  pjlÓ ÎK jm¹< Ð  pjfê Ò­  jf¨ Ԯɛ Öjl¹×µ  pjlfü +rrp§ pjlÚÎ +ÙÛ© +Û8 rjm¹N +ÞW jl¹ +à9 rjl¹ âY jl¹€ ä– + jmÓF æŠna jmèc jm¦ +éê +êéûé' jjl¹^îÙ  jmf jm¦ jmèþðñòÐ8 ÐÝ º(É_decóòñËdupòñÍliteralsñÏpointsóòñÑtrailÓeng2itaòñÓita2engòñÕis_realòñÕ +is_naturalóòñØptròñÜstringóòñÝstringaòñß precisionáis_zeroòñãsignñåintegeròñçroundçtruncçceilñë operator=ì +operator+=óòñí +operator-=óòñí +operator*=óòñí +operator/=óòñá operator!ï operator-órealñô~real¦ #õørealóòñj²  op÷ øX jop¹*ú  opÓhüm +n òñØ + opþÍÿt!oð!sf: opƒ  opè +@ not¹Å> + op? +nròñ¤ op +n +  7 op¹›ìæ(j_totóòñj_progòñ (_readyñ6*_slicesr>_currentóòñr@_decsòñùaddòñûgetòñýset_decòñinitñ operator= +last_sliceóòñ TDistribñ ~TDistrib: øBTDistribóòñò + uv÷' + ˆ juv¹ +$^ uvÓ— + uvþÕ²!u|!w~¾ uvà uvèU +‚ nux¹í– uv` uv + +!"÷ uv¹D$®ú(j_totóòñj +_totslicesñ (_readyñ6*_slicesr>_currentóòñr@_decsòñaddòñgetòñset_decòñinitñ operator=  +last_sliceóòñ#TGeneric_distribñ%~TGeneric_distrib—"&°BTGeneric_distribóòñ±3  ry{(>) py{¹y+ó y|¹ ny{¹7 +-.U y{¹Ü0ÿ[ }y|2»}• }y|4š +35·5l }y|ÛÔ8õ }y|¹j:e +pnòñì  }y|<Ï=Ì +ÿròñH  }y{?¬@ y|4t y|< +BCi y|¹ÃEâ 1p_sezioneóòñj_valore*compareòñ,sezioneòñ/valoreóòñ1is_zeroòñ6 operator=7 +operator+=óòñ7 +operator-=óòñ9 normalize; swap_sectionñ>setòñAadd_toóòñDTImportoñF ~TImportom + + ñWGHTImportoóòñ: +rrrõ ~€JKu€ TDate_mgafmtóòñœ€ TDate_order MpMMNø p~€O¼P + ~€¹r RV ~€Ë0 T!  r~€¹ö Vc  ~‚Ó´ X— + ~€¹N Z ~f  \‚ r~xÖ  ^‘ + ~‚¹Œ `² + ~‚¹B +bn  ~‚f +dÇ» + ¶~‚f¥ +gi  ¶~‚¹{ iz ~€ = ke ~‚û me  p~€¹½ oƒÐ  ¶~‚q¾  ¶~‚Ë» ¶~‚frstÈ ~‚Jk ~‚Ë + ~‚qÄvdwxF +b¯ +(_valóòñLmakedatañQstringóòñS date2julianòñU julian2dateòñWdayòñWmonthWyearñWwdayñYaddmonthñYaddyearòñ[okóòñ]isdateóòñ_last_dayña is_end_monthñcset_end_monthYset_dayòñY set_monthYset_yearñe +set_formatóòñh +operator+=óòñh +operator-=óòñj +operator++óòñj +operator--óòñlprint_onñn read_frompoperator const char __far *òñu operator=yTDatez~TDateóòñ¸${øTDateòñ€RecDesñš +}U  r’(H,€TDirtypeóòñT +ròñr “‚Áƒ[ “¹…ÇR r’‡dˆå  r’¹ºŠS r’føŒ× ~’¹>Ž÷!Ö!‘×‘Ø “’Ñ“  “Ó•œ  p’ÓU—Š “J«™’ ’ 훢 “+A “’^ +Ÿ……U†1~_recóòñr_numóòñ€compareòñ„getòñ„putòñ†zeroñ†rehashóòñ‰statusóòñ‹numòñfieldrecòñ” operator=‹fieldsóòñ‹keysñ– +set_fieldsóòñ–set_keysñ˜fielddefñ˜keydefóòñ‹lenòñšupdate_keydefšupdate_fielddefòñœprint_onñž read_from TTrec¡~TTrecóòñÉ ¢H +TTrecòñµ®S”j r˜›(¦ p˜›ÓE¨³ ˜™¶›ª  ;˜›¹Ü¬¤!Ÿÿ +®sòñ* r˜™¯ +°$J®Ž r˜™²½ +³(° r˜›²w +µ,s +µ0o +µ4ò + ˜™ — +¹8ä r˜›¹‰»U  ˜™¹O½ã ˜™f¿æ + p˜›¹ÃÁ6  ˜›¹Ã„€ TFieldtypes9 Ř›ffÆl r˜›f$È‚ ˜›fúÊD¨’ +œrru  r˜›Í~· ˜›Í<ÐR p˜›fò Ò¿ G˜›f° ÔŒ ˜›fv Öm s˜›f4 ØR p˜›fÊ ÚR j˜›fˆ ܯ + +p¤òñ  ˜›Þ- ßf ~˜›fã +át ˜™Þe + +pnòñ> ˜™ä1 + +p òñ| ˜™æª ˜™ø + +pƒòñ› ˜™éb + +psòñÙ ˜™ë + +pòñ ˜™í} ˜™&¹ãåçèêìîï6 ˜™Ûëñ½¿Ç! q óß ›˜™ô ›˜™f8œ¼ ›˜™÷µõöøÖ ~˜›¹{ +ú<…ÃR ˜™÷ç þj ˜™ÿ>  ˜™ÓºýK½ã ˜™fa s!”N ˜›¹Ä : €isdefòñn o  +ø ˜› y + E¦1p_recóòñr _logicnumòñr +_length  _isemptyóòñ_tabóòñ¤_codóòñ¥ _memoinfoòñ§compareòñ©last_key_fieldóòñ©start«setemptyñ­dupòñ±readñ´nextñ¶write·rewriteòñ¸removeóòñº renum_key¼items¾setdirtyñÀsettabóòñÂstringóòñ¾discardòñ¾recallóòñÄ isdeleted¼lenòñÇtypeñÉlengthóòñÉndecñËexistÌ fieldnameÌ build_keyÏ compare_keyòñÑsame_keyñÓget_stròñÕgetòñÉget_intòñ×get_longñÙget_wordñÛget_charñËget_boolñÝget_realñàget_memoñâget_dateñ ðputòñòzeroñÀblankù operator=ûrec_desòñ¼numòñÄemptyÄvalidÌkeyòñüokóòñTRectypeñ ~TRectypeinit_memo_infoóòñ memo_infowrite_memo_infoòñÄhas_memoñ˜ +òñáKTRectypeóòñß˜Ž +›¶òñ3 rŸ¢^ ¯ +œ¶òñî rŸ¢¹ ‰ +/ Ÿ¡¹+ U Ÿ¢¹i y  rŸ¢­¯ Ä rŸ¢¹í Á pŸ¡¹#! Ÿ¢Ó`#Ç rŸ¡¹¦%š + æ +$R¶u rŸ¢)*(,*04– +›s¶÷  rŸ¢-x +s¶òñ´  rŸ¢/l.80<Ä +sòñS  rŸ¢2$ +3@›ss¶òñÌ  rŸ¢5è +ss¶  rŸ¢76D8Hò +›sj  rŸ¢:;L3PFT*XV\*`q +œòñ„ + rŸ¢?— rŸ¢Ë‰@dAh¶l*pº +!t' Ÿ¡¹ÆEì h ª  ›Ÿ¡¹ZI1 Ÿ¡¹K6 Ÿ¢¹ÞM"!Y +Ÿ¡¹½P rŸ¡fsRñ Ÿ¡f1T sŸ¡f÷V pŸ¡fµXã Ÿ¡fKZ/ jŸ¡f \y Ÿ¢ÞÏ^ ~Ÿ¡f`Ê GŸ¡fCb  Ÿ¢  Ÿ¢ÞÐ Ÿ¢ä Ÿ¢æ| Ÿ¢ø« Ÿ¢éé Ÿ¢ë' Ÿ¢íM Ÿ¢&defghijklø Ÿ¢Û Ÿ¢f no¼o ®Ÿ¢ô² ›Ÿ¢÷y +rsÁ Ÿ¢ô° Ÿ¢D§ +uvl :N( + _isamfileòñr _logicnumòñr +_lasterróòñ  _delrec  _delopenrec_currentóòñˆ_hfˆ_hfhdòñ *_historicfileòñ,_lasthf0_recnoñ 4 _has_memoòñgethraddhrrewhrdelhr +ptrfilehndóòñ clearfilehndñrecoveròñ_open _closeóòñ"filenameñ$setkeyóòñ&getkeyóòñ$ setstatus'first(lastñ+nextñ,prevñ1rereadóòñ4skipñ9readñ<readatóòñ=write>rewriteòñB rewriteatCremoveóòñDnameñFrecnoGlockñGunlockóòñHindexonòñHindexoffñ&statusóòñGis_validñJcurrñLeofòñLbofòñLgoodñLbadòñNempty&numòñO descriptionòñFeodòñQfilehndòñFitemsSget_intòñUget_longñWget_wordñYget_charñ[get_boolñ]get_realñ_get_memoñaget_dateñcgetòñ mputòñpzeroñqblankt operator=Nhas_memoñwTBaseisamfilex~TBaseisamfileóòñ +óòñ^yz6TBaseisamfileòñc §¨Ëç|" +òñË §¨~B›  §¨­ ‚•  r§¨Ëá „u §¨Ë' †Î + òñs r§¨ˆš +‰A + òñÖ r§¨‹ù +Œb r§¨¶? +Ž• pppp òñ r§¨’ ‘J +prppp ³ r§¨“ñ ”­§½!–œ —“ §¨˜® §¨Do +™šW §¨¹Í œ¬!§r  ž§¨˜l Ÿ¥66_fldsòñ6J_expsòñ}getlcfóòñ€ exec_convappñƒmakelcóòñ…build…extendóòñ‡sizeñŠupdateóòñpackñpackfileñ packindex’loadñ•dumpñ›TSystemisamfileòñ~TSystemisamfileñ  operator=¦¡z^TSystemisamfile® r±³Óá£} r±³f'¥€ TRelationdefóòñ¬!§þ ¨±³Ó»©î!©á «±³ÓجY·µ¶ròñ1  r±´®}¯U  ±³¹¶±²  ±³ ô³ˆ r±´¹6µy  ±´¹t·  r±´)sµ¨ r±´ºb¹ »$’¹(»,Ì +»0Ð +»4x +µòñá  r±´Àž +Á8j +·µ¶½ r±´Ãñ +Ä<2 «±³fL +Ƭ٬„ +pòñ‹ ±´ÉB +ròñE ±´Ë( +ÊÌ ±´f\ ±´Ó1 +ÎÏñ ›±³ÓÒÑ8 +rpr ±´Ó±Ô£ pprrr òñ ±´Ömrprrr òñß ±´ØÎ©ŠÚprrr òñr ±´Ûì×ÙÜ +Úròñ6 ±´Þ,ß­ + ¶òñb r±´á— +â@« +âD¦ +¹Hp ±³ÓGæò ±´¶èq ±´ÓÛêœ ±´f™ìh  ±´¹_î!²Õ𢠱´ñ¿Ú| ±´óß òôÎÏp·ö!±Ð ÷±´ñø(T_status6_filesñ6&_reldefsóòñr:_errors¤log2indòñ¤ alias2ind¦name2indñªreldefóòñ­fileñ°position_rels²okóòñ´print_onñ¶updateóòñ¸zeroñ¼nextñ½prevñ¾first¿lastñÂskipñÅreadñÇlfileÈ +operator[]óòñÍ write_enableñÐwrite_disableÒcurrñÕ +next_matchóòñÝaddòñàreplaceòñãwriteärewriteòñåremoveóòñçeofòñçbofòñçstatusóòñçgoodñçbadòñçemptyé isconsistentñëis_first_matchóòñ¶items¸ save_statusòñ¸restore_statusóòñí +operator+=óòñí +operator-=óòñï +operator++óòñï +operator--óòñõ TRelationö +~TRelationóòñù operator=Ü +µ<úû< TRelationòñâ r¸º÷ ýÎ  G¸º¹Í ÿN r¸ºÓ0 ¸º÷Aµ  œ¸º¹†å  r¸º¹Äd ›¸½D œ¸ºÓŠ + + œ ¸ºÓž Ÿ r¸½÷V +  r¸½E`C +œ òñÀ ¸½ÿ ¸½D2dh  ¸½¹Ô + ¸½*f ¸½íL + +pGòñ  ¸½É +Õlp r¸º¶U + tX +xT +|þ!¹$ + ¸½%¤ ¸½Ó +œpr¿ + ¸½(Â&')ß!¸2 +¸½%Y,Ð +O Æ6r_fileòñr_offsetJ_numóòñþrec2rowòñ num_field remove_fromòñgoodñkeyòñrowsñ succ_rowñ pred_rowñlast_rowñ first_row rowòñexistadd_rowòñ destroy_rowòñ destroy_rowsñ logic_numset_keyòñ renum_keyreadñ!write"rewriteòñ#removeóòñ*TRecord_array- operator=.~TRecord_arrayóòñ4 + + òñ&$/04TRecord_arrayòñ[ € TExpression±2 ¾¿¹_4¼€_iobufñ=6ˆ  7¾¿¶Ô8 ¾¿¹ +:P× ¾¿ËP +<TÅ + +ròñJ r¾¿>ñ +?XP4¦ p¾Á¹še + +pCC  ¾¿DG +BEj:å!¾§!ÀIŽ H¾¿JÒ ¾¿fH +KL9Lï ;¾¿¹˜OU4[ 羿¹sRQ4 ¾Á¹ÖUù G¾Á¹”W_ ›¾ÁfR ›¾ÁÓì +YZÍ ¾¿Ã \F r¾¿ºÏ^¦ r¾¿¹` ¾Á¹GbS ¾¿¶dCb` ¾¿æ¤gÅ +œœòñ‚ ¾¿i[jê 6¾Á¹lO «¾ÁfB «¾ÁÓr +noä + 3¾Á¹rq{ žÁ¹0sî ¾¿Ó1 ¾¿¹¤ +uv  r¾Á¹•xÏ ¾¿Ó« zÉ ¾¿Óé |” +Å òñ™ ¾¿~L ×vF + ¾¿J¬6prCC3 ¾¿ƒ» +‚„ÓvÙ.46_ifr _nkeyòñ_posóòñ_totrec_lastrecóòñ _lastkrecòñP _filenameòñ@z_filter@„_keyfromóòñ@Ž_keytoñ3˜_fexprñ œ_frozen _filter_updateñ ž_filterfunction_updateñÅ _filterfunctionP¤ +_indexnameñ5updateóòñ9 +open_indexóòñ;changedòñ= buildcursoròñ@ filtercursorñAreadrecòñFfilteróòñGupdate_relationòñM operator=N +operator+=óòñN +operator-=óòñP +first_itemóòñP succ_itemP pred_itemP last_itemQobjectsòñSposòñTitemsVsizeñXfromñXtoóòñ[currñ]readñ_lockñaunlockóòñcokóòñefreezeóòñffrozenóòñh setfilterk setregionmrelationñpfileñareposr +expressionóòñtfilterfunctionóòñwsetkeyóòñykeyòñ{ +next_matchóòñ}is_first_matchóòñ€set_filterfunctionóòñf +has_filteróòñ save_statusòñrestore_statusóòñ…TCursoròñ†~TCursorñ‘ +òñçD‡ˆTCursorQÓh ÑÒŠÃ ÑÒÏÈ +‹Œ—Ñ 5ÑÒŽœ 5ÑÒŠð +Õ ÑÒ’Ð +“§ +nxòñyòñTPointóòñsetòñ‘ operator=” +operator==óòñ” +operator!=óòñ$ +•TPointñˆ€s_drawctóòñT ÙÚ¹{ +˜á á á á á + ÙEu +ŸÚ € +e_win_typeñ p¡rg  ÙÚ ¢õ +£F ÙÚË' ¥ ÙÚ¶e §X Ùܹ»©· ÙÚ¹Ñ +«Ù ÙÚ­ +­÷ ÓÙÜÏ] +¯ Q +Óö!±×²Y + ÑÙܳô +´X !ÛS¶ë  ÙÚ·< +¸«À +« ÙÚE´ +»È +«Ž +© V Ùܹ ¿á ÑÙܹÂÁ§ Ùܹ€Ã° +«$r +­(ø«¸ +«,¼ +«0T +¿4¤ +«8© Ùܹ¹Ì4 +§< sÙÚ¹Ï9 sÙܹÒÑÝ + ÙÚfÄ +Ó@ pÙܹ> +ÕD™ Ùڪ׾€e_modeñžÙ¨ ÙÚÚ¨Û… +""òñt ÙÚÝOÞd §·€e_patòñ€ e_pen_styleR"ráâòñ< ÙÚãäD +"áòñ] ÙÚæ$çü +prrû ÙÚéÛêr ÙÚì~íŸòñ  ÙÚïðÜ +p ÙÚò°óÉpòñ, ÙÚõWö +rˆ ÙÚø + +ùÈ +3 è ÙÚûi +ü| ÙÚ²¯ +þž !Ùñ ÙÚ· ½v +½—_ctòñ _ctools_saved_winóòñs_lastkeyóòñ™ save_ctoolsòñ™restore_ctoolsóòñš +_openòñ› +_modalñœ +_active +_runningóòñž +_pixmap window_handleróòñ¤createóòñ¦set_winòñ¨ set_modalªparentóòñ¬updateóòñ®on_keyóòñ°log2devòñµdev2logòñ¹TWindowòñº~TWindowñ¼handleròñ½ set_focus¾winòñÀis_openòñÀis_modalñÀ +is_runningóòñÀactiveóòñÂsizeñÄrowsñÄcolumnsòñÅ start_runÆstop_runñÇ force_updateñÈopenñÉcloseÊcan_be_closedËon_idleòñÍiconizeòñÍmaximizeñÎactivateñÇ +deactivateóòñÇ +open_modalóòñÇ close_modalòñÐrunòñÒlast_keyñÔ set_captionòñÖ get_captionòñØclearÜset_modeñß set_coloràset_opaque_textòñåset_penòñÇhide_penñÇ +hide_brushóòñè set_brushëset_fontñîframeñrectññbaròññ +invert_baróòñôstringatñ÷printatòññlineñúiconñýadd_menuñÿ remove_menuòñ operator=Ù +ñ G TWindowç ÝÞ ¢¢  ÓÝàÏà A ÝÞ­> +ä !ß©  Å ÝÞ ÝÞ¹² + ÝÞE K ÝÞÏP  ÝÞ¶– ö Ýà¹Ô % ÕÝà¹* !ݘ © ÝÞ®ØànÙÑ _originÑ_maxóòñ_shiftñš _autoscroll› _has_hscrollóòñœ _has_vscrollóòñcreateóòñ log2devòñ on_keyóòñTScroll_windowóòñhandleròñset_scroll_maxóòñ update_thumbñ +autoscrollóòñautoscrollingoriginóòñrange operator=~TScroll_windowòñô   TScroll_windowñA !âG"†á, á$#û á$Óý á$ÓX á$¹“%&'(Á(† á  + +á$ÓY , rá㹟 .q +á$éÝ 0 +á$¹2n rá$ÓQ4U4É rá$¹ð7& á$N9ö á$ ;¦ !ág  =á$#ï>bjtopenprotñt sh_compattsh_noneòñtsh_readòñtsh_writeñtbinaryóòñttextñ)filebufòñ*~filebufñ-attachóòñ/fdóòñ/is_openòñ1openñ3close5setmodeòñ6overflowñ8 underflow:setbufóòñ<seekoffòñ8syncñr*x_fdóòñr, x_fOpenedòñ? operator=ƒ @2.filebuf" !å'B© äçCZ äçÓX + äçÓ äçés äç¹ïDEFGH¡H äçK« +äæ¹ÞMçFå räæ¹½P„G¥HÉ  räçÓ1T !ä VäçC”W‡ ¶ 5IifstreamñJ ~ifstreamLsetbufóòñNrdbufOattachóòñQfdóòñQis_openòñRopenñScloseUsetmodeòñX operator=ýY*ifstreamóòñ®!éØ[V èë\" èëÓ  èëÓy èëé  è빈]^_`afa  èëd+ +èê¹Çf¬_e rèê¹zi`baQ  rèëÓþm!è= + oèë\p¥¶5bofstreamñc ~ofstreamesetbufóòñgrdbufhattachóòñjfdóòñjis_openòñkopenñlclosensetmodeòñq operator=Çr(ofstreamóòñ*!íÑtÏ ìïuª ìïÓ¨ + ìïÓÁ ìïé“ ì﹕vwxyz¯ +z  ìï +}» +ìî¹L +•xå rìî¹£ ‚Š +y« +zÙ + rìïÓ' † !ì­ ˆ+ ˆìŠ5¶%5{fstreamòñ|~fstreamñ~setbufóòñ€rdbufattachóòñƒfdóòñƒis_openòñ„openñ…close‡setmodeòñ‹ operator=´Œ0fstreamQ!òk Žë  ðñ# ðñf> +‘# ðñ¹*Ô “_ Gðñ¹ •Y Gðó¹T —š + ©ðñÛª™x €s_rctòñ !›9 œ¹  ðñžf rðñ¹M W Aðñ¹ƒ¢ ðñfÁ¤0 ðñ¹¦’ ‘e sðñ¹º ©Ì + "ðñø «jä5@_tokenñ@_keyóòñ@_buffer &_pusheds(_lineòñ’TScannerñ” ~TScanner–popòñ˜keyòñ–popkeyóòñ–stringóòñšlineñ–equalŸ rectangle¡integeròñ£numberóòñ–operandòñ¥ paragraph§okóòñ¨pushñ˜tokenªlinenumòñ¬ operator=ˆ­LTScanneróòñ MAX_PAGES r¯ __unnamedòñÚ +4ñÆ +0ñg +%sòñ + ³r´y ¹¶v rËT¸ ¹êº  ¹¬¼3ôF"«  ¾¿@ +ÀH¨¼™ +" òñ àÄÝ  éfÆ2!õíÈ© rÉúÊR r¸Ìú rx~Îv ¹<Ðì  ÓòÒ™ r¹°Ô‡ ËvÖàD + ØëÙ9  E­Û˜!ݰ  Þ×prrrrròñù  à3ßáÆ­¼¾ S¹äT rprrpòñÌ + æ$çorprrrpròñ¡ + éÛê¢rprrrrpòñ  ì~í° rprrrpppø   ïð±ÔóÒ + nòñi ôvõ£ n¹4÷=Щ¼å ­L ûw ¹Š ýi  ¶È ÿ  r² + ¹@ +ñ ùÓ† +ð + ù²Ä +:!ýá ²;  +m + @  à +ƒ †   +n Ä  +p +  ÕL®  G²ò +PŸ  ²Ô‘  ²*A  j²hu  ~²®|  r²ì„ + P"!  ù¹`#Ñ +¼TÙ eû +&Xí  ²Å(£ ‹*Ì ÿ  ¶¾-Ž ýÖ ‹Ý0  Ó 2÷ +&\ü ö 5Ò6È 7Õ 8o +s¾R :;r µ7 = +üòñö ?§>@`9 fcB +  ¶!D%Ø F„Gq  ¹ZI§ + p¹KgB¿ù£ N +Od¶Ð %ÞsRrÚÙ ° __unnamedòñ± _pagewinóòñ²@_pagepagóòñ²p_pagetagóòñr _pagesñr¢_pageòñ<¤_enabledóòñr®_modeòñ6°_fieldñrÄ _first_focusóòñrÆ_focusñrÈ _next_fldòñrÊ_sheetsÌ_sheetñµÐ_handleróòñPÔ _source_fileóòñP0 _workfileòñŒ_lastposóòñj _exchangeòñ ¢_should_checkòñ¤ _total_time¨ _build_time¬ +_init_timeñ·winòñ¹find_field_winóòñ»set_mask_fieldsòñ» load_checksòñ½ start_runÁ parse_fieldòñ init_maskÅ read_pageÇ read_mask add_buttonsòñËfind_parent_pageñÍfind_first_fieldñÏfind_active_fieldÑcheck_current_pageóòñÓ next_pageÕ curr_page×test_focus_changeÚcontrol_handleròñÜhandleròñâTMaskã~TMaskóòñå source_fileòñè +add_staticóòñë +add_stringóòñë +add_numberóòñèadd_dateñî +add_buttonóòñè add_booleanòññ add_radioîadd_memoñëadd_zoomññadd_listñòfieldsóòñòsheetsóòñóset_modeñòmodeñö set_exchangeñøexchangeñù check_fieldsñúget_mask_fieldsòñüstop_runñþcan_be_closedãopenñãcloseactivateñid2posóòñnext_fldñfldòñfield efieldóòñsetòñgetòñget_longñget_intòñget_boolñget_realñget_dateñ  first_focusòñã set_focusómove_focus_fieldñ"set_focus_win$ focus_fieldòñúdisable_starting_checkóòñüon_keyóòñãon_idleòñ%on_firm_changeóòñ'enableóòñ)disableòñ)enable_defaultóòñó show_page+ enable_pageòñ, disable_pageñ. page_enabledñ/num_keysñ+ +enable_keyóòñ, disable_keyòñ1get_key_field3 key_valid4showñ)hideñ) show_defaultñ)reset)undoñ6autoloadñ9autosaveñ<send_keyñA set_handleròñC set_workfileñ.saveñEloadñdirtyH set_sheetJ get_sheet/ is_sheetmaskñ/no_modeòñ/ +query_modeóòñ/ edit_mode/ insert_modeòñL get_captionòñM set_captionòñPon_dirtyñQtoolwinòñS operator=Ó +ñß…TU°TMaskòñ9€bkg_modeóòñ ÌC   Gl Yà p !¹&[ã  !fà]p +™pòñ¹ + !_Œ`Ê™rrpòñ + !b!c?€pagetypeóòñÀ +pe ‰ + $ !f¥gu  !¹{i™pprpòñJ   !klb +psòñ  ™ !no +peòñÓ  ™ !p +oqX  s !­1s. +pòñ¸  'uÖv÷   ' xØ !¿ª z”x»  !¿; +} * +%$òñô  !$ +€$™ !î + +‚( !¹à +„£ !Dc †y s '‡d +ˆ  '¹ú +Š,” +s òñ  s !Œ[ +0G +4C +8O +<}errròñ.  !’ГD +eòñ³ !•7–È  !Ïu˜1 + A !¹‹šÅ G '¹Éœ| +[@ '¹lŸ.   !Ó¢¡î]*  6 '¹© +¤D  ‘ '¹k +¦H+ !Ì¥ ¨ '¹º©â +˜ÿòñe !«¹ +¬L³ +peO ˜ '®|¯À R !¹² ±™  © !¹ð ³× _ !¹6 µ“  !¶t ·ü +rrp{  !¹ +ºPƒ  !f©¼Æ +€ TForm_editoróòñä!¾¼ ¿ '¹-À\W  !€ÃÎ W !¹FÅ!&ÌÇD  !È +Éli~iG! t Ì !È^Í– *(W_background_modeóòñ@_nameòñ@_codeòñ@ _fontnameòñr$ _fontsizeòñ@&_section_maskòñr0_xñr2_yñp4 _char_to_posóòñr6_ipxóòñr8_ipyóòñr:_fpxóòñ <_dirtyñ6> _relationòñ‘B_cursorXF _rel_descòñ6J_headòñ6^_bodyòñ6r_footòñ6†_backòñ š _lastpageòñ ›_isnewñ œ_isbase _arrangeóòñrž +_editlevelñ@ _descòñlª_finkòñZheader_handleróòñZfooter_handleróòñ\get_fincatura^set_fincaturaaps_change_date_formatdps_change_number_formatòñhexistjinitñmreadñrsectionòñtheightóòñwprint_sectionyprint_onñ{ parse_use{ +parse_joinóòñ{parse_description|print_description{parse_general|print_general~extended_parse_generalóòñpre_edit_checksòñƒpost_edit_checksñ… read_profileñ…write_profilejset_compulsory_specialsòñjget_compulsory_specialsòñ‰pageñj arrange_formñ‹recordsòñŽset_backgroundóòñ +set_headeróòñset_bodyñ‘ +set_footeróòñ”genera_fincaturañ—genera_intestazioniòñ™print›bodyñ›headñ›footñ›backñnameñcodeñž section_maskñ  +edit_levelóòñ¢set_edit_levelóòñ£set_descriptionòñ¥relationñ§cursoróòñªrel_descñ­validateñ° +find_fieldóòñ²offset_xñ²offset_yñ´fontnameñ²fontsizeñ¶ char_to_posòñ²ipxòñ²ipyòñ²fpxòñ dirty¸ set_dirty¸ set_arrangeòñ£change_date_formatóòñ»change_number_formatñ½rereadóòñÁeditoróòñ¸set_last_pageÄset_modeñÆmodeñÊTFormË~TFormóòñÎ operator=5gÏǶTFormòñ™g 6 +r@ñÊ.  .#-ÔXÕõ #-ë  #, c +ר/4 Ú#-¿‹ Ú#-aúÛÜ`÷ #úV +Þ!¨ +àrsþ + #áÚ +â• —#-Óäã Ì#,¹Gæh  A#-¹è• ˜#,ÓÛê ˜#,²™ìQ  #-D_î¬ #-¹ð> +rÚòñB #-ò°ó¿Úà #-õWö° #,¹¾ #-¹ú ødùh_ s#,¹H û\ s#-¹Ž ý¹ +RRòñ­ #-ÿí  #-Ó#ø± #-¹ +lI #-¿Ä€ #-÷ S #-fX @ p#,¹žJ e#,¹Üø #-¶3ö r#-ÓqVÕ' + #-ÔÌÒpe òñæ #-Á +ð{Â6Ñ_mskñs_heights_ofspcñs_ofsvrñs_nfldòñ _dirtyñ  _columnwise _tempòñÒ _formòñp$ _sec_typeòñe& +_page_typeñ ( _subsection6*_itemòñr>_repeat_countòñÓ@_tabóòñÖcopyñÙprint_onñÝ +parse_itemóòñßdetail_field_handlerñßspecial_field_handlerãdetail_field_notifyòñårowòñçformñé field_arrayòñëfieldí +find_fieldóòñïdestroy_fieldñdestroy_fieldsóòñô change_fieldñô insert_fieldñ÷ add_fieldútempñüfieldsóòñþcolumnsòñüheightóòñüofspcüofsvroffsetóòñset_repeat_countñokóòññresetupdateóòñparse + read_from editñ section_typeñ page_typedirty set_dirty +columnwiseóòñtabòññ +reset_tabsóòñ operator=TPrint_sectionóòñ~TPrint_sectionòñá +:<€TPrint_sectionñŒ + /12r /2ã%“ /2!z  /1 /   $"(#! +#,Ø /2¿ +&0Þ +&4Š ÿ/2Ó; +)Ü +G˜òñé /1+X +,­ /2Óž +.9 /2¹Ü +0± p/1 2h Ú/1¹ +48P 4 + ;/1¹ð 7è X/2¹& /1¹\ 9<:Ç r/1¹F 9@heightóòñ?ofsòñ@effective_heightñCtempñDhas_memoñFset_xHxIyJ +get_columnóòñK +set_columnóòñMfieldsóòñDshownDhiddenóòñDenabledòñDdisabledñD automagicDfinklDfinkrDmemoñNparsePupdateóòñQprint_on_sheet_rowóòñU read_fromWeditñYgetòñ[setòñ\exampleòñ^col_headñ` set_col_headñ^promptóòñ` +set_promptóòñb memo_infocpictureòñd set_pictureòñfsectionòñhformñj +find_fieldóòñl set_finkll set_finkrl set_dirtyDdirtynin_groupñ^keyòñoshowñqhideñrenableóòñqdisableòñsspecial_itemsuspecialsñxget_special_nameszget_special_value|set_special_valuezget_special_typeñzget_special_descñ‚ +TForm_itemóòñƒ ~TForm_itemòñ… operator=³  +.óòñ’c†‡@ +TForm_itemñƒMAXSTRóòñÛr‰ __unnamedòñð +pñö +rñ~!9J¸ 78Ž7  78¹ð +yÅ  s7:¹Ô“Æ p7:¹•û  ;7:¹P—• —78¹‹šû ;7:¹^ ;7:ÓV +œÄ  r7:¹o r7:Ó +Ÿ I —78éƒ ¢¹;N 78¤& ¥lŸ —78ŽE ¨rz( Š __unnamedòñN_rowóòñ‹_attròñŒ_colsòñ<_tabóòñ;_currentstyleòñr_currentcoloròñr_lastposóòñ‘ TPrintrow’ +~TPrintrowóòñ”class_idñ– +class_nameóòñ˜dupòñ™rowòñ™ row_codifiedñ›resetž get_style¡ get_color£putòñ¦ set_style§lastposòñ© operator=!ªø  TPrintrowòñd @J!¬j ­ê @A®õ @A¹° +¯°Y +°' !@½ ³@A®Ñ ´Æ v(r_idr +_father_idñ@_txtóòñ_rowóòñ±BkDef²~BkDefóòñµ operator= ¶øBkDefòñ°€TViswinþ¸M€ +s_printrcdñ8ºß BC2§¼Ê +"€TPrint_intersectorñľ$ pBC¹ +À t Pa BCÂÔ BC¹GŹ BC¹Ç¤© BCÉúÊ+ BC‡Ì +ÌÇÇ× BË ÏÄ BC­ÒÑÛ BC¶ÓR +pAòñ  BCÕwÖ& rBC¹5Øú!=¨ ÚBE­¨Û& pBE¹jÝ+ sBE¹(ßÏ rBCÓ( rBE¹œ +áâÃâT sBC­½ +åß§ PBCÓ$çâáA +ròñe + BCê… +rPòñ' + BCì) +ëíÇk BCfðo 3BC¹Óòq ABC¹‘ôFų ÿBC¹4÷ ¤BC¹ +ù +I7 BCûiüè +L’ BCþÌÿF LBC¹ $ pBC¹@ & pBE¹† q BCÓÄ  +Å$—) BC +X  BCqž= ƒBE¹ÜE MBC¹‹ +M BCq,ß® +p r™ BCõè BCæ  +r; »BC® f BCËì ^ BCÓ"!– BE¹`#Z + BCx¦%Ï pBEÓä'nÝ: rBC *è FBC‡Y ,… b (7_cnfptr7_fp¹ _vf£_txtóòñPL _exportfiler¨ _headersizerª _footersize6¬_header6À_footer6Ô _printersòñrè_curprnrê_curcodeóòñrì_formlenóòñrî +_formwidthñrð _currentrowLò _fontnameòñrN_ch_sizeóòñsP _currentpageóòñsR _frompageòñsT_topage V _hwformfeedMX _printertypeóòñ Z_isopen~\_dateòñPd _printerfileóòñ6À _linksdescr6Ô +_bookmarksñ è_multiple_linkñ@ê_configXô _backgroundX _image_namesóòñp_bg_descóòñT _printer_namesñ . _isgraphics /_frozenr0_ncopiesóòñ»2 +_print_rcdñr6_print_rcd_sizer8_lines_per_inchr: _vert_offsetóòñr< _horz_offsetóòñr> _l_offsetòñr@ _c_offsetòñrB_dots_per_lineñ½_get_windows_printer_namesóòñ D_multiple_copiesóòñ E_export_headerñrF_export_header_lenñIH_headerhandlerñIL_footerhandlerñLP _linkhandleróòñlT_finkòñ¿`_finkerÁnewlineòñÄprintrowñÆprintformfeedÆ printheaderòñÆ printfooteròñÈsave_configurationóòñË print_txtÍTPrinterñÎ ~TPrinterÐstart_winprintóòñÒset_from_pageÒ set_to_pageòñÔset_hwffñ×parse_backgroundñÙ descriptionsñÜget_descriptionòñÞ +class_nameóòñàclass_idñãformlenòñä formwidthæfrompageñætopageóòñä current_rowòñä +headersizeóòñä +footersizeóòñègetheaderlineègetfooterlineé footerlené headerlenîsetheaderlineîsetfooterlineï resetheaderòñï resetfooteròññsetbackgroundó image_namesòñó getbgdescõget_bookmarksöfrozenóòñÔfreezeóòñÙn_copiesñÔenable_multiple_copiesóòñøgetprinternamesòñúget_txtòñýsetheaderhandlerñýsetfooterhandlerñsetlinkhandleróòñgetlinkhandleróòñõlinksÔsetmultiplelinkòñöismultiplelinkóòñget_fincaturañset_fincatura f_topleft f_topmiddleòñ +f_toprightóòñ f_botleft f_botmiddleòñ +f_botrightóòñ f_centerleftñf_centermiddleóòñf_centerright f_horizontalñ +f_verticalóòñskipñjumpñïreset setòñöopenñïcloseöformfeedñ printöisopenóòñsetdateòñgetdateòñ printtypeset_printtypeñset_printerfileòñgetcurrentpageóòñÒsetcurrentpageóòñset_export_fileòñmerge_export_filerowsñ rows_leftï set_printrcdñ get_printrcdñ set_win_formlenòñ"set_lines_per_inchóòñäget_lines_per_inchóòñäget_vert_offsetòñäget_horz_offsetòñäget_line_offsetòñäget_column_offsetäget_dots_per_line$ +isgraphicsóòñÔ set_graphicsñ& +set_offsetóòñ(background_charsñäget_char_size)fontnameñ) printernameòñ"set_char_sizeñ set_fontnameññread_configurationóòñ+ set_bookmarkñö +is_genericóòñ- operator=°¦.°dTPrinteróòñ† WXËÝ 0] +W!2° 3 WX4¦p rÌ WX6 +57÷ WX¹N9\ +!WÑ ;WX4)<Y jS1setmaxóòñ1 setstatus1 addstatus8TProgindñ: ~TProgind= operator= >"TProgindóòñ "MAX_BUTòñ€MAX_COLòñ“r@ __unnamedòñ  + €ñ¶ + ñ +sñU Y[¹ÇE¦ Y[¹…Gé +GHD Y\ËzJö ÓY[Ï<LŸ Y\EúNÛ Y\­¸P© Y\¹vR¸ Y[Ë0T rY[¹öVÖ rY[Ë´X§ Y[¹JZ¹ Y\Ë\+ +ô òñ× Y\^­_¨ Y[¹ +aL` Y\PE +cPrRù +!Zƒf9 Y\g¦ pp s Y\ iî +hjwRX +psá Y\mßn3 +ZT^ ÿY\Ë +qXKZ{J¾ Y\Ó° Y[Ó¥ +uv +ZT c Y\¶«zsR1TÆE +!Y„«  Y\€‚ ­ÚÝ A __unnamedòñX _pageòñ 4_columnsóòñB5_sizeòñBµ_typeòñ6_curròñ: _last_updateóòñ>_visible_rowsòñ @ +_checkableñ A_check_enabledñ<B_checkedóòñ<L _disabledòñCV_buttonDv_keyóòñ † _buttonmaskFhead_onòñF +buttons_onóòñH visible_rowsñIreserved_rowsK +build_pageóòñMlog2devòñOhandleròñQon_keyóòñSupdateóòñK set_firstU +is_visibleóòñWwidthY row_to_pageòñY +row_to_winóòñ[first] +update_rowóòñK +invert_rowóòñ`set_rowòñbrepos_buttonsd +page_buildóòñeprintkTSheetóòñlopenño +add_buttonóòñpitemsrrowòñsselectedñtselectóòñw column_flagòñxcheckedòñychecktuncheckòñ{ enable_checkñ|disable_checkyenableóòñtdisableòñ}enabledòñ}disabledñ~ one_checkedòñ‚ operator=l~TSheetòñI<ƒˆˆTSheetñê ]^P …Ä ÿ]^ËE ‡d!_Î ‰à ]^ŠÙpp òñ) ]^Œè + +‹à ]`¹XÁ 3]^¹’‘ø \ø ]^“ ]^õ' +”• +ôòñƒ  ]^—u˜@ ‡+ ]^Óè ›š +!]Zé ]^žl Ÿ ]^¹¦¡‡ÊYXˆ_dataòñ† +page_buildóòñˆdatañŽ TArray_sheetñitems’ +rows_arrayóòñ–addòñ™insertóòñšrowòñœdestroyòñ  operator=¢~TArray_sheet»£ˆœ TArray_sheetóòñ` adP#¥g ac¹`§  sad¹Ê +©\à ‘ac¹ø «Á!bj­ ad®“‘ppp Ä ad° +¯±™ ad¹ô +³&!ar µo µad¶t +·­ ¶Y6ˆ_fieldsœ_recordsóòñ‘ _cursor¦ +page_buildóòñ¨itemsªrunòñ¬cursoróòñ²TCursor_sheet´~TCursor_sheetóòñ¸ operator=s ¹[¤TCursor_sheetòñ efE»£e[½Œ e¾¹ ¿¾ e¾¹ÇÁA ef­…Ãê  ef¹GÅ{ !½ÌÇb  efÈý} ‘ppp Ê\9  efË + +ÉÌ ef¹{· sef¹9жa¤_fieldñr¨_selóòñ¼handleròñÀreserved_rowsÂrepos_buttonsÄon_keyóòñÆfieldÍTBrowse_sheetÏ~TBrowse_sheetóòñÑrunòñF Ò[ªTBrowse_sheetòñä + œ«O rghÔWÕ¢ + +«rrâ rgh×4ØÖ  rgh‹ÊÚF rgh¹ˆÜg  rghºKÞº rghÀ à rghÃÇâ= rghá…ä÷ rgh)Cæ ›ghÓèD rgj¹Ûêé gh™ì× gh¹_î. !iÕð ghñ +òî[îl !g”  õghñWö‹¢±6<_pagóòñ6P_veróòñrd_old_pagóòñrf_old_veróòñÖ write_recÙcancellañÛregistrañÝread_scperc_rowsñßnextñßprevñßfirstßlastñáskipñãreadñåwriteårewriteòñçremoveóòñépagòñéveròñë pag_itemsë ver_itemsí +empty_versóòñï destroy_rowsñó TSchedaPEô +~TSchedaPEóòñ÷ operator=.øûh TSchedaPEòñ; pv¹+ú pr¹iüg ppr¹¯þe rpr¹í{ jpr¹#ñs"  pr†7 pr¹Ä¨utòñ­  pv ;  +i rpv¹y    pv×  pvó + pv¹!p pvq°’ _coddittaòñp_tipoañ _codanagròñr +_nprogñj +_spese_docñj_compenso_docòñ~0 _data_docòñûreadñýcoddittañÿtipoaýcodanagrñnprog compenso_docñ spese_docanno_docñ +operator==óòñ +operator!=óòñ not_emptyokóòñ setòñremoveóòñTSchedaPñ ~TSchedaP operator=‰8TSchedaPóòñ' wy¹õA pwy¹ + wy¹I + z* wyì +ç +uòñ± w{! " w{¹A $­  w{÷ç +u~  w{'â +&( ö _coddittaòñp_tipoañ _codanagròñcoddittañtipoacodanagrñ not_emptyokóòñ  +operator==óòñ  +operator!=óòñ#setòñ%esiste_scheda%elimina_schedeóòñ) TPercipienteñE* + TPercipienteóòñÅ + |~¹Y,g  p|~¹Ÿ.e  r|~¹Ý0› + j|~¹ 2…­  |€4¶ 5›!|Ç + 7|€8^ +9v |~8;j |€2$uttnòñš |€>  +=?× + |~¹BAQ |€8¸ |€pCD?ò + |€¹çFYz +½ _coddittaòñp_tipoañ + _codanagròñr_nprogñr_nrigañj_importo_versatoóòñ-coddittañ/tipoa-codanagrñ1nprog1nriga3importo_versatoòñ6set_importo_versatoòñ: operator=< +operator==óòñ< +operator!=óòñ@setòñB not_emptyBokóòñE TVersamentoòñG ~TVersamentoñp +yHI$ TVersamentoë ‚…>K!!‚ „¹  M‚…N¼ +O ¬ + r‚…óRQÐt ‚†S1T¥  j‚†¹÷V+  ‚…èµX< 7t ‚…Z([W ‚…Zî]¨ÚtnnòñI j‚…_`À ‚…N# +bK; + ‚…¹d‡²|f$_versòñj + _importo_versato_residuoóòñj _importo_versatoóòñr. _statusr0 _num_pagsòñ 2 _gia_letti_pagñr4 _num_last_pagòñLsetòñP operator=R read_pagsRnum_pagsñUlast_pagñWimporto_versatoòñYset_importo_versatoòñ\addòñ^findña vers_stampaòñWimporto_versato_residuoòñcTVersamento_stampaóòñe~TVersamento_stampaòñs +©"fg6 TVersamento_stampañ³u¹ Š‹iUjÏ‰ä Š‹lÿm  Š‹¹Å +oTÚ Š‹G +qX¤ + ñŸ  ‘йtz 6йÒvsq +q\. +j`’ +Fu• Š‹{` +|dy‰òñ7 Š‹~M½o› +Ftòñ½  Š‹‚Áƒé +—–rß  Š‹…&†  йdˆÄ Š‹f6 +Šh +Ž òñÇ  Š‹Œ   й\ Û Š‹f’‘•¯ + Š‹“ñ”eˆ  Š‹¹T—é  ©Š‹¹ª +™Û Š‹fè +›€  й. +´3  Š‹ŸM + o Š‹Sƒ ¢¸ rйÁ ¤¼o‡  ‰Š¹d §K HŠ‹¹º©ë +¦ Š‹«Y +¬l– +6‘òña Š‹®|¯„  ŽŠ‹¹² ±k!Œ0³¬ Š‹´Ò Š‹ % +µ¶¸o)!Š]  ¹Š‹´ëºÉR j¶_f_tot_totaleòñjÈ_f_tot_snsritòñjÚ _f_tot_imponóòñjì _f_tot_imporóòñjþ _f_tot_nettoóòñj_nf_tot_totaleñj"_nf_tot_snsritñj4_nf_tot_imponòñjF_nf_tot_imporòñjX_nf_tot_nettoòñkaggiorna_totali_Ckaggiorna_totali_Dkaggiorna_totali_D1óòñkaggiorna_totali_Ekaggiorna_totali_E1óòñj_Itemsñ‰n_PaginaCorrentenset_curr_pagepinc_curr_pager next_page6p_relóòñ‘t_curóòñ x +_modulaserñ y +_posizionañz _tipo_dittar| _num_foglio@~ _cofi_dicòñ ˆ_can_print_tot_fisñ ‰_can_print_tot_nofisóòñ Š _finite_fis ‹_finite_nofisòñ Œ +_LastDittañ _EndPrintDittañ Ž_GiaStampatiFis _GiaStampatiNoFisòñ _PaginaPosizionamentoòñ ‘_GiaPosizionato ’_GiaMessoStartDocòñs“_GiaMessoStartPageñr˜_CtrNoFisStampatiòñrš_CtrFisStampatiœ _coddittaòñr  _RigaCorròñJ¢_quadroucursoróòñwrelationñxstampa_testataóòñystampa_totalizaggiorna_totaliòñ}set_bodyñ€ StampaPaginañ posiziona„ fill_page‡put_modulaserClearFlagModulaseróòñ‰PaginaPosizionamentoñ‹ InitPrint ¾ _UsaProgindŽÀ_progòñŽ set_progindòñcoddittañ’ set_coddittañ•set_posiziona•can_print_tot_fis•can_print_tot_nofisòñ•set_last_dittaóòñ– +last_dittaóòñ–EndJobóòñ˜ +ultima_fisóòñ˜ ultima_nofisñšcofi_dicñœ set_cofi_dicñž +tipo_dittaóòñ¡set_tipo_dittaóòñ– modulaser•set_modulaser£set_num_foglioóòñ¥ +num_foglioóòñ¦azzera_totali¨ curr_pageªcuròñ­print° set_cur_relòñ²progindòñ– +usaprogindóòñ·TDicFormñ¸ ~TDicForm» operator=Z¼ÄTDicFormóòñ€ +Fòñ5 ž¾¿— ž¹ÇÁB žG…Ãá žiCÅ  ž{Ç{ + +òñ€ žÉûÊ ž«½Ì[ô!ÎÔÏê žÐZ  ž ý +ÑÒÆÁZ!ß ÕžÐwÖß +ŠÄ_items_góòñÈ _items_gdòñÀstampa_prospetti1_2òñÀstampa_prospetti3_4òñÂinc_curr_pageÄ next_pageÄstampa_totaliÆaggiorna_totaliòñÈset_bodyñË set_items_gdñÍprintÓTQuadroGñÔ ~TQuadroG× operator=e ØÌTQuadroGóòñ% Ÿ iÉÚ Ÿ G‹Ü‡ÜY  Ÿ {.ßD Ÿ «æá¥Ÿa!ãAä! Ÿ å  Ÿ  C +æçW Ÿ ¹þé¤!Ÿ 럠å™ìørjÌ_f_tot_utspetòñjÞ _f_tot_utpagóòñjð _f_tot_ropej_f_tot_ropespetj_nf_tot_utspetñj&_nf_tot_utpagòñj8 _nf_tot_ropeóòñjJ_nf_tot_ropespetóòñÛaggiorna_totaliòñÝstampa_totaliÞstampa_testataóòñÝ next_pageàset_bodyñâprintè +TDistintaGóòñê ~TDistintaGòñí operator=wî\ +TDistintaGñ6 ÿ¡¤Óð‡ r¡£¹Óò t¥tt pF  ¡¤ôvõ4 +t¥òñ˜  ¡¤÷ø +tòñû  ¡¤úHû +tQ + ¡¤ý¯þN +ttt¶ + ¡¤¥tt pw  ¡¤a ¡¤¹§!¢-Ë  ¡¤ à + +æ!¡µ ¡¤ ž£.(6_storeññ +operator[]óòñó +curr_indexóòñösetòñùset_tipoñüset_ultima_con_fisóòñüset_ultima_con_nofisñÿset_flag_tipi set_ctr_tipiñaddòñóitemsdestroyòñ  TStDicArrayòñ operator= ~TStDicArrayñ/ø TStDicArray ŠÍ Æô +ÏW §¨¹“  §¨f… +<0 §¨¹/   §¨²m  p§¨fû +@ž +©tòñI §¨¤ + DÀ + p§¨¹ +"­§ !$â %@ §¨&ž +puòñ §¨(  +')¬!§  +§¨&Y ,’ ð¾]à_formòñÑä_mñ6è_relóòñì_curóòñJð_quadroL _titleñph_livelloóòñj _coddittaòñ¡n_ditteñ†_cnfóòñJŠ_sectionóòñ ¦_singola_dittañr¨ _anno_dicòñon_config_changeñ fill_estintiñprintcreateóòñdestroyòñmenuñmaskñ! print_quadroñ#taitolóòñ*TStampaQuadro- operator=.~TStampaQuadroóòñ +/ªTStampaQuadroòñï© +p1z„Ÿ£ °±f¸5  °±¹ñ70  °±¹O9L °±²;P p°±fÏ=Y °±?à  p°±¹BA”°Á!CáDá °±E« °±( +FG×!°, I°±E{Jð7T ö]3à_form_g4ä_form_gdóòñÑè_mñ6ì_rel_gñ6ð_rel_gd‘ô_cur_gñ‘ø_cur_gdJü_quadroL_titleñpt_livelloóòñv _coddittaòñ¡z_ditteñ’_cnfóòñJ–_sectionóòñ ²_singola_dittañr´ _anno_dicòñ6 fill_estintiñ8on_config_changeñ8print:createóòñ:destroyòñ<menuñ>maskñ@ print_quadroñBtaitolóòñHTStampaQuadroGóòñK operator=L~TStampaQuadroGòñòM‹¶TStampaQuadroGñ‹ +‘òñÔ +Of +r³òñg +rQu ´µ¾S ´µfR +Up´]!W}Xõ ´µY* ´µ + +Z[• ´µ¹ê]S!´ _´µY`»rŠÄ_itemsñTstampa_prospettoñVprint\ TQuadroG1^ +~TQuadroG1óòña operator= +óòñFbcÈ TQuadroG1òñs´Ñ ¶·¹Âfô ¶·¹€h  ¶·²^j- ¶·lã ¶·fÚn$ p¶·¹pR¶Ð!rðs< ¶·tc ¶·(¥ +uv!¶´ x¶·tŠyÃf¤ Ú§eª_formòñ‘®_curóòñgprinticreateóòñidestroyòñkmenuñm print_quadroño fill_estintiñqtaitolóòñwTStampaQuadroG1òñz operator={~TStampaQuadroG1ñ1|²TStampaQuadroG1ñ +pñª N…!¥€Ù NO¸ NOa£ + NOfŒ‚ƒ„u +!NS  †NOr GNOai + GNOfc ‡ˆ‰ NO¹Ü‹6RH~ +_str256… +TString256óòñŠ operator=Œ ~TString256òñ¯ °  +TString256ñ±2Ö r1(I + ' p1¹· ’% s1¹õ ” 1¸(ý 1¸¹£ +–—v!1  ™1¸(‹ šP —Xr(‘compareòñ“ +class_nameóòñ•class_idñ˜ TSortable› operator=œ +~TSortableóòñ H TSortableòñá á Ñ )*!o) ¢K )£ Ø +¡¤ !¢C ¦ )*§ )*¹O +¨©Í )*¶ø «4  )*Þ> ­  )*f| ¯n!)²  ±)*§“²¾ ©ì&(š automagicòñ›enabledœshownòñdirtyòñžfinklòñŸfinkròñ memoóòñ¥print_onñª TForm_flagsòñ¬ set_shown¬ set_finkl¬ set_finkr¬set_memoñ® read_from°updateóòñ³ operator=´ ~TForm_flagsñ´ µø TForm_flags +m(ñ\ +p7òñt <?¸Ê¹V <?¹ˆ»’ p<>­N½¿Úµ <?¿s <?¹Ÿ +ÀÁÛ!<ò Ã<?¿¡ÄÆÁµ*(@ _printernameóòñ@ _printertypeóòñ@ _filtername@" _devicename·,_atstrñXT_codesñXh_namesñ@|_ffcode@†_nlcodeºreadñ¼ isdefault¾get_codenames¾ get_codes +PrinterDefóòñÅ operator=Æ ~PrinterDefòñEÇø +PrinterDefñŠ n!ɯÊg noËF pp r- no Í– +ÌÎI  noÓ=о no2óÒl ÿnoÓ±ÔU!n3Ö) + Öno×5ØÑ no¹ÏÚùž]6œ_internoóòñr°_visible_itemsñÏTNikArray_sheetòñÑdestroyòñÓaddòñÕrowòñÙ operator=Û~TNikArray_sheetñ + +܈²TNikArray_sheet¬Ê_nullfldñ_alfafldñ_intfldòñ_longfldñ_realfldñ_datefldñ_wordfldñ_charfldñ_boolfldñ _intzerofldòñ + _longzerofldñ _memofldñC rÞ TFieldtypesõ :PRIMASECONDAòñTERZAQUARTAóòñÑràPagineQDóòñÊFSTARTDOCñ +STARTDITTAóòñ STARTPAGEENDDOCóòñÕrâ ModulaserKeyóòñ +6estintoòñnormaleòñ dichiaranteòñrä TipoDittaòñ»€FileDesìæ– +brfhndóòñçdòñ~ròñ +RecNoòñrlnñrftñrknumóòñ<èisdefòñÒ€ RecFieldDesr +êñ + dñ†€KeyDesñŽ +íñåJrNFieldsëFdñì +SortFdñrnNKeysòñîpKyñ¾ï€RecDesñ¾ +  +ñ¥ZsDupKeys NkFieldsóòññFieldSeqóòññFromChññToChóòñ½ò"KeyDesñ­J¬Nameóòñ  TypeFòñ Len DecsRecOffñ³ ô RecFieldDes. +p*ñÁzöSysName*EOD.EOXs2LenRóòñ4Flagsòñö8Des“bFCalcòñ“‚ GenPromptòñr ÷¢FileDes €idecóòñ €ldecóòñBùdcñúlsñÇûDECª€ +TTipo_collñ¸ + s + ¹­þ§ p + ¹ï‰ +ã  +fBU  +ô„ê + p + æÆÞ  +Ë k  +¿Z F +¿œ‘ +­ÞË +ÃÖ  +ÓW¹ + r + ¹‘ˆ! ð  +–Ñ.  +L +©! +Þ  +ˆ?  +¹Î =Nýr¤ _decimalsòñÿclass_idñget_window_dataòñset_window_dataòñset_field_dataóòñexchangeñ picture_datañ +createóòñ  +parse_headóòñ +parse_itemóòñon_keyóòñautoloadñ set_decimalsñdecimalsñ TReal_fieldòñ operator=! ~TReal_fieldñ + +%óòñ€"#¦ TReal_field_ã +!%Ä&û 'Z  Ç7 + ¹Þ ()**^!–  -'Q  Çá  7./0É^ 5+istream_withassignóòñ,~istream_withassignòñ1 operator=" 2*istream_withassignñ«  „…fV4†Ñ  p„6¹ó7c!„‡[  9„…:ñ 9„…qæ 9„…fÇ ;<= „…:Ê +ƒpòñK „…@Ý rrrpòñ  „…B–?ACõ  „…¹Å Eå~~_format5 +set_formatóòñ8stringóòñ> operator=DTFormatted_dateòñF~TFormatted_dateñr GøTFormatted_date˜† normprinteròñ fileprinteròñ spoolprinterñ localprinterñ screenvis +winprinteróòñexportóòñÂrITPrtypeð *IND_CANCELLED IND_FINISHEDñ›rK __unnamedòñë +ÿOòñ÷  sSUMù +NO SVE¿ +Pu SV¹q Ru RÅ sSV¹Ð U™ SU¹“ Wg SU¹m Yt R— W + SVfé ]³ !Tc _4  SV`B SV6 +abp RÐ !S‘ eSV`ÀfrÙ L __unnamedòñ _textòñ_cancel_baróòñ _flagsñ_maxóòñ_statusO measure_textñQhandleròñSupdateóòñT +update_baróòñV +check_stopóòñX iscancelledòñX +isfinishedóòñZstatusóòñ[cancelóòñ\can_be_closed^set_textñcTIndwinòñd~TIndwinñg operator=áh"TIndwin0€ +TipoPaginañ¡¢_isfirstñ_islastòñ_isnextòñ_isprevòñ_iscurròñ_isequalñ _isgreatñ@_isgteqòñ_isnextnñ_isprevnñù +rkTIsamop Ïйømtoë ÏÐo›p÷ ÏйUrz ÏÐ t ©ÏÐkÐvÿppròñÌ ÏÐxy™pprpòñÇ pÏÐ{î|Ÿpprròñ& rÏÐ~KÉppr òñÝ ÏФ‚Ïppr"òñ° "ÏЄ…vpp r" ÏЇppp rä ÏЉ. +ˆŠ  ÏÐþŒùmÊ  sÏÐ [  ÏÐf•‘# rÏÐvד + +3 p  rÏЕ0–Õ +Ïþ!˜Ù™4 ÏКd ÏÐJî ›tœPrÔ +!ÏW ŸÏКJ ¬ º(f_dataòñPê_fileòñ F _dirtyñ G +_ispresentñ@H +_paragraphñn_read_paragraphòñq_write_paragraphñs _write_fileòñuinitñwgetòñzget_longñ}get_charñ€get_intòñƒget_boolñ† get_color‹setòñexistŽnew_paragraphitems’set_paragraph”list_paragraphsòñ—list_variablesóòñTConfigòñž~TConfigñ¡ operator=„¢øR TConfigÏ!!!òñ +¤C +¥Ãs ©ýÿ¿ª  sýÿ¹Û¬Ø ý¿®û ý¿_°À ýÿª‘²µ  ýÿ¹Ó´E  ý˶’  ý¹W¸D ý­íºž ýf«¼  pýÿ¹m¾×´·  ý¹Á ÁèºÒ´Š pýÿæE ÅN ý¶ Ç$‚ ýÉ“ ýÿ¹ +ÊËÖ´Üø ýÎ +Ï; §ýÿ¹Õ Ñ: ¨ýÿ¹— Ó Ç  pýÿfp Öh¾%!þ™ Ù“ ýÚS + ýi +ÛÜV¸ž  ýÚ+ ßS Úô@€_stróòñ@Š_pictureóòñ”_checkñ –_forced —_check_enabledñ§˜_browse¨œ_sheetñ  +_buttonwinñ« +get_browseóòñ­class_idñ¯ +parse_headóòñ± +parse_itemóòñ³set_back_coloróòñµis_editòñ·createóòñ¹destroyòñ»validateñ½set_window_dataòñ½set_field_dataóòñ¿get_field_dataóòñÀdefault_error_boxÂon_hitóòñÃon_keyóòñÄ has_checkÄ has_queryÆ picture_datañÈshowñÈenableóòñÌ +check_typeóòñÍforcedóòñÐcheckÒbrowseóòñÔsheetÕ enable_checkñÍcheck_enabled×formatóòñØpictureòñÝ TEdit_fieldòñÞ ~TEdit_fieldñà operator=‘+á#¤ TEdit_fieldB Φã9  ¹`å  ¹"ç ¹Ñ  ù²’ +éêU  ÿ2Ÿì¦  r¹XîÊ + r¶ðã!ò< óƒ +Ê‘òñ} õwÊ6rpòñ½ ÷Õôöøaås ¿Oû‡ +GòòñX ý¨þë  fêy  G¹$m Îf#ç, ô¹Ã ‘¹   ¹_ ©  s¹™¡! óú4ºÊ_fldóòñ6 _relationòñ‘_cursor@ _insert@_filter _recóòñ $ +_secondaryñ %_checkedóòñT&_headòñT4_itemsñTB_inp_idTP_inp_fnT^_out_idTl_out_fnä do_outputædo_clearñè do_insertëfieldícreate_siblingsòñïinputsóòññdo_inputñùTBrowseòñú~TBrowseñü +parse_joinóòñü parse_inputòñüparse_displayü parse_outputñü parse_insertñÿ +parse_copyóòñ +set_insertóòñ +get_insertóòñ +get_filteróòñcheck empty_checkòñheadñitems +cursoróòñ checkedòñ  secondaryrunòñ operator=\,zTBrowseº +]& + r¹ú ÎÒ” + ¹,Ž  ¹Q  ù ²ù +o!ü " +ÊppH !q + "± + ¹F$ë ¿€&„  ¹Â(Ý Î*! + s¹^,-!Y .û/ +"Ê_fldóòñ_sheetñr_rowóòñT +_inp_idT_out_iddo_inputñ do_output do_insertfield# TList_sheetòñ% ~TList_sheetñ' parse_inputòñ' read_item' parse_outputñ)sheet+check-runòñ0 operator=ý1& TList_sheet¤ pNO¹s3s NO¶±5î NOÓó7£ + NOfM 9ç NOì ;? PNOÓÉ =Ç PNR¹‹ ?¦ rNO¹EA NO¹CtP NOEàFô NO¹¢H¦H !QÏK NOLÕ pprrrròñÆ NONÛ +MOCu !NÒ RNOL +SôbBd_sizeòñph_driveñrl_volumern_num_rec_volumerp_num_rec_testa_codarr_num_rec_iniziort_num_rec_fineòñrv_len_recóòñ6x_record Œ_nome_file_fissatoñ _label_fissatañ Ž _formattaòñp_fileòñp”_labelñ6˜ +_tmp_filesñ7¬_fd4newlineòñ6set_file_fissatoñ6set_label_fissata8 set_len_recòñ:set_fileñ: set_label< +set_recordóòñ> +get_recordóòñ@get_record_inizio_volumeñ@get_record_inizio_elencoñ@get_record_dettaglioñ@get_record_fine_elencoóòñ@get_record_fine_volumeóòñ@get_record_fillerBnum_rec_volumeóòñB +num_volumióòñD +inc_volumeóòñGadd_fileñDopenñDcloseIgenera_dischettiñJsetòñPTFile_printerQ~TFile_printeróòñT operator=¹+U°°TFile_printeròñ€s_cpenñ"€s_cbrushóòñ‚jWpenX +brushòñÙmodeóòñ" +fore_colorñ" +back_colorñ opaque_text5 Ys_drawctóòñ’ +Eù[q€TSortòñ»]ž ÆÇ1ª_× ÆÇË` aZ  rÆÇ>" c ÆÇ¹ä eí !Æ"Æ!h) iý gÆÇjÒ ÆÇf +klã ÆÇfØne ÆÇja6pprCCòñÅ ÆÇqÑ +pr1 ÆÇ¹té¾T _order_expr^_sortòñ _is_changed_expróòñ _is_valid_exprñ` +check_expróòñ`is_upperñb buildcursoròñd filtercursorñfchangedòñm operator=o change_orderñsTSorted_cursoróòñu~TSorted_cursoròñývˆTSorted_cursorñJ +Ë>x¡#Ø!zÿ{ö + #$| + #$Ç×  #$¹º}~O !#r ‚#$|` #$Ç3 + #$–胄…y^5€ostream_withassignóòñ~ostream_withassignòñ† operator=O" ‡(ostream_withassignñÿápat"coloròñÉ ‰s_cbrushóòñRp_ptróòñr_cntóòñp_baseòñp +_flagòñp _fileòñˆ ‹ _iobufñ € TList_field- MAX_RADIO%rŽ __unnamedòñ  s¹êË ’ËÒ“2 ’¹•€ ’¶V—€ + ª¨™  r¹Ã ’Óà +›œ§  ¹ž5!‚ W ’¡ý ’Ô +¢£×“® ’Ó¦Ê!¶ ¨’¡½©•Ù +>  __unnamedòñr¦_nitemsr¨ _active_itemóòñCª_radio_ctl_winñ‘class_idñ”createóòñ–destroyòñ˜enableóòñ˜showñšset_back_coloróòñcurrentòñŸwinòñ¤ TRadio_fieldñ¥check_radiobutton§ +move_focusóòñª operator=«~TRadio_fieldì ++ ¬­Ê TRadio_fieldóòñ +sñ6rattróòñridñ¯slñ msdذidecóòñ¾ +"ñØ:rlattròñrlid²lsl lmsdóòñ? ³ldecóòñ +pñ6Fodd_pageñ even_page +first_pageóòñ last_page#r¶pagetypeóòñFrgma_dateñmga_dateñamg_dateña_dateóòñm_dateóòñg_dateóòñma_dateòñ r¸ TDate_order’ ÈÊ é º: ;Èʹª ¼Ž !É\¾ ÈË¿g +GòñÓ ÈËÁË È˹×ÀÂï !ÈP ÅÈË¿4 ÅÈËa  +ÆÇ× Èʹ٠Ée rÈʹŸ Ë  ÈËÓY Í GÈʹ Ï ÈËfÕ +Ѽ  rÈÊ— +Óà  pÈÊ÷< pÈÊÃê +ÕÖ¸ +p›òñÉ ÈÊØ] +p6òñ‹ ÈÊÚà +ÙÛƒÃåB(_fileid@_id@_nameòñr_fromòñr_to»print_onñ½dupòñÄ TFieldrefÈ operator=ÊokóòñÌfileñÎset_fileñÐnameñÒset_nameñÎset_fromñÎset_toóòñÌfromñÌtoóòñÔlenòñ×readñÜwriteÝ +~TFieldrefóòñ Þø TFieldrefòñH *noneñtestographicsñHràbkg_modeóòñF +pRñä  s¹¢ ãWû åËE æ( + ª èF å¿Ùê¢ å¿›ìn å¶]îñ + å­ðV!ò åó  åè +ôõ§ ãw! øåóùˆ å¹KûW"ôs€ _virtual_keyóòñs‚ _exit_keyòñäclass_idñçcreateóòñéset_back_coloróòñë +parse_headóòñí +parse_itemóòñïenableóòñïshowññon_keyóòñöTButton_field÷ virtual_keyòñ÷exit_keyñú operator=ü~TButton_fieldóòñký#„TButton_fieldòñì +pìñÖ +>widthòñápatâstyleòñ"coloròñß  +s_cpenñð +pñ ÈTˆ TField_FlagsóòñÂprrrpròñµ ô÷ « +"òñí ô÷ ³ +  … ôö¹ + + ý¡pòñ© ô÷ ˜ Z +rr• rô÷ û = + U ô÷¿ + $r ô÷¿Ü + (  + ô÷Ë’ + ,“ ô÷¹h + 0” ôö¹6 + 4à ôöªô + 8ç pôö¹º + <­ ô÷fp +! @L +! D† + H} ô÷ôÀ +% LŸ  ô÷Óâ' º ôöf=) < + † ôö¹^, · ôö¹œ. ˜. } ô÷¶51 ï ä sôö¹R4 å rôö¹6 ü +. Pà +. Tä +. X‘ ôö¹ + +; \# ô÷ν + += `¥ + d¹ +1 h-  +. l± +1 pXüÍ ô÷D Á E  +. t! + ôöŒ¢ H ¶ ô÷¹à +J x! ô÷­® +L |è +J €%! ( ©ôö¹ºP ‘ ÿô÷¹t R Z  pôöæž +T „G + ˆ ô÷Ã3 +W Œù ôö7É +Y ë Y ôö¶\ V4 ® Éü _ ôö¹Š` J  ô÷aDb o ¥ +sòñÏ  ô÷e Àf [ ôö™‚h  sôö™\ j ´ %ôö¹ l ã ô÷ÉP ô÷| +n o ) ë ùô÷ÉTr Xv(Ñ_maskòñ@_helpòñ _fieldñ<_keysòñ< _groupsT* _userdataòñr_xóòñr_yóòñr_widthóòñL_promptòñü8_handleróòñr<_sizeòñ>_winóòñB +_promptwinñF_dlgóòñrH_validate_funcñ6J_validate_parms@^_warningóòñ6h_messageóòñ  TField_Flagsóòñ |_flagsñ construct winòñ wincreate create_prompt default_flags +parse_headóòñ +parse_itemóòñ createóòñ destroyòñ highlight set_back_coloróòñ get_window_dataòñ" set_window_dataòñ# set_field_dataóòñ$ get_field_dataóòñ& exchangeñ( +do_messageóòñ* atodlgóòñ+ parentóòñ- dlgòñ/ okóòñ0 dirty0 +focusdirtyóòñ2 set_focusdirtyóòñ2 set_dirty2 set_trimñ2 set_justifyòñ0 right_justifiedòñ0 pipe_allowedñ2 +allow_pipeóòñ3 +class_nameóòñ5 class_idñ7 sizeñ0 roman0 automagic0 ghost0 exchangeableñ8 has_check9 has_query: has_messageòñ< +check_typeóòñ0 requiredñ> check? reset@ enableóòñA disableòñB enabledòñA enable_defaultóòñ0 enabled_defaultòñC showñA hideñ0 shownA show_defaultñ0 activeóòñF set_handleròñG is_editòñI to_checkñK on_hitóòñM on_keyóòñN test_focus_changeO setòñQ getòñS custom_dataòñU picture_datañV warningòñX autoloadñZ autosaveñA undoñ[ promptóòñO +set_promptóòñ] in_keyóòñ2 set_keyòñ2 reset_key^ last_keyñ] in_groupñ2 set_groupa fieldc set_fieldd set_focusg send_keyñi message_boxòñi warning_boxòñi error_boxi yesno_boxk yesnocancel_boxòñm maskñp TMask_fieldòñq ~TMask_fieldñs operator=« qt #€ TMask_fieldî á î Å e  y ¹¬z H  p y fî| gzš automagicòñv dirtyòñenabledženable_defaultñŸfirmóòñ  +focusdirtyñw ghostòñšpasswordóòñ› +persistentñœ rightjustòñromanòñžshownòñŸ show_defaultóòñx trimóòñš uppercaseòñ›exchangeóòñœ +zerofilledñ pipeallowed{ TField_Flagsñ} updateóòñC~  TField_Flagsóòñþ HIDo€ l H'!‚ ƒ ƒ  HI„ ]  HIJ +… † õ HI¹fˆ  ©HI™¸Š / !H0  Œ HI„ Y GHIf¶ GHIaŠ Ž  † Çv@ resizeóòñ‡ TFixed_string‰ ~TFixed_stringóòñ‹ formatóòñ operator=‘ strncpyòñ +’ ° +TFixed_stringòñÀÚPAT_NONEñ +PAT_HOLLOWóòñ PAT_SOLIDPAT_HORZñPAT_VERTñ PAT_FDIAG PAT_BDIAG PAT_CROSSPAT_DIAGCROSS +PAT_RUBBERóòñ + PAT_SPECIALòñXVT_ENUM_DUMMY8òñ r” e_patòñÑb€ÿANSIbrieffullñlettersòñweekdayòñquarteròñcdefòñ¤r– TDate_mgafmtóòñ®V +CHECK_NONEóòñ CHECK_NORMALñCHECK_REQUIREDóòñ CHECK_SEARCHñºr˜ CheckTypeòñ« +€ +_xvt_imageñš å ÖØËΜ ÝÖ¯ Öž xkŸ  ›à!¡ º +¢ ¢ Ñ ÖØ£  +¢ òñŒ ÖØ¥ % ÖØ ¤ ¦ § œ › © › Öž © œª T › Öž ²  › Öž fx +¬ ­ ÷ ÖØ¹¯  ÖØ¹µ± u ¢ ÖØ¹÷³ H Öž ¹1µ C + "òñ Öž · R¸ Ü !רº ‹ Öž » V +º Ë Öž ½   Öž ²ü + Öž f¼ ¾ ¿ À 5µ ý !ÖG à Öž » ¦ Ä ³(› _imageñ›_srcóòñ›_dstóòñ set_paletteòñ  set_posòñ¨ drawñ« setòñ® loadñ° okóòñ² width² heightóòñ´ rectñ¶ convert_to_default_colors¹ set_clutñÁ TImageóòñ ~TImageòñÅ operator=Æ øTImageñª r¥¦¶" È ³  r¥¦­üÊ  r¥¦¹¾Ì c¥ó +!Î ÓÏ  ¥¦Ð î ¥¦Dò +Ñ Ò — ¥¦¹² Ô b!¥. Ö ¥¦Ð  × ÊbŸÉ flagsË openñÍ closeÓ TIsamfileÕ +~TIsamfileóòñØ operator=wÙ z6 TIsamfileòñ´€DEFAULT_PAGESIZEñjrÛ  __unnamedòñ[€ directionòñ– +ñv  £4Ë%ß [  £4Ëëá ' £4¹©ã Ø€styleòñä å £4ÛNæ 6 £4¹è  £4¹Ü ê : +rF p£4ì y í ‹ p£4Ë; ï Ô £4fõñ §ã L + ‹ £4ô qõ Ø  p£4¹3÷ } r£4Óù s p£4ÓOû  £4Ó‰ý  p£4ÏËÿ £k +55òñØ !£4!G!‰ £4¶!¶ +Ñl +p!!: £4! !DpR £ £4 !~ !}prròñ¥ r£4!Û!a +ppòñ £4!4!ï  A£4¹v!k £47°!!£y!!Y!§  £4!æprÝ òñâ  £4!Ç +!!£ã  ¤£4!Ê !“þ( Ü __unnamedòñ6_pageòñ< _dirty_linesóòñ" _page_start& _page_endòñ* +_page_sizeñ._linesñ2 _cur_lineòñP6 _filenameòñP’_indnameóòñ7î_indexñ7ò_instrñÝ ö +_directionñrø_itemòñTú_lineòñÞ _styles _tabbed_pieceòñ6 + _hotspotsòñ6_spotsñ 2_dirtyñ 3_isopen 4_istemp 5_accept 6 _interactiveóòñ68_relóòñà +_read_pageóòñâ _in_pageñä _save_changesç _trans_styleñé linesë changedòñî lineñð line_formattedóòñò appendóòñó closeó printó freezeóòñë frozenóòñö read_lineø pieceú get_styleü get_backgroundóòñü get_foregroundóòñþ get_attribute!word_atòñ!sectionòñø nameñ! interactiveòñ +!writeó destroyòñ!searchóòñ!replaceòñ! set_hotspotsñ!hotspotsñ! set_relationñ! TTextfile! +~TTextfileóòñ!! operator=º<"!ø< TTextfileòñ-€SecDefñå$!_ +€ TFilelockòñ+ +p&!òñ ˆ‰'!Â(! ˆ‰f*! ˆ‰í^,!u  ˆ‰¹˜.!# ˆ‰fÚ0!û +pµ£  ˆ‰2!w3!ä + rˆ‹¹±5!  Rˆ‰¹ó7!V  ˆ‹¹I 9!M 9!)!Šž!?!œ.!ï!ˆ/ + B!ˆ‰=! +C!m(%!_fileòñr_lenóòñr +_baseòñ)!openñ+!verifyóòñ-!createóòñ-!chsizeóòñ/!close1!unlinkóòñ4!readñ4!write6!statusóòñ8!baseñ8!lenòñ:!okóòñ;!error@!TFileA!~TFileóòñD! operator=¡E!ø TFileòñD s¹† +G!I + p¹X I!°Ë K!Ë; L!~ K!¿ý N!ô ¹¿ P!D K!fqR! K!¶3T!2  K!­õV!ó!zX!  K!Y!y  K!$ +Z![!¸ K!¹í]!!Ë _!K!Y!Š`!_Bô€_teT‚_dataòñH!class_idñJ! +class_nameóòñM!createóòñO! +parse_headóòñQ! highlightS!set_window_dataòñJ!get_window_dataòñS!set_field_dataóòñJ!get_field_dataóòñU!enableóòñU!showñW!on_keyóòñ\! TMemo_fieldòñ^! ~TMemo_fieldña! operator=Úb!# TMemo_field BRUNNING_CHECKSTARTING_CHECKóòñ FINAL_CHECKòñ`rd! CheckTimeòñ멃 r©f!­¢g!D r©f!¹|i! r©f!f£ +k!x¯ +k!|é +i!€Õ +i!„u ©«¹6 +p!ˆ !ªr!V ©f!s!¤ ©f!Dè + +t!u!Õ ©f!¹· w! «©f!s!y!À⟠6 _was_openòñr8_oldkeyh!openñj!closel! +operator+=óòñm! +operator-=óòñn! +operator++óòño! +operator--óòñq!tabòñv!TLocalisamfileóòñx!~TLocalisamfileòñz! operator=À  +#!{!|!:TLocalisamfileñì€s_xvt_iostreamñƒ~!Ú +!!p³ +€!à!W <>¹Âƒ!: <> …!  <?­B‡!ú!=ɉ!à  <?Š!Þ‹!± s<>Ë! <>ËZ!  <?Ë[ +‹!‘!s <?¹Ó“!Û!<u + •!<?Š!0–![!E <>¹­™!= <?fÈ <?P-›!“!œ!‘!S +“!‘!•‘!z6(s_sizeòñ _bitóòñ„!okóòñ†!print_onñˆ!resizeóòñŒ!copyñŽ!index!maskñ’! +TBit_arrayóòñ”! ~TBit_arrayòñ—! operator=˜! +operator[]óòñ—! +operator|=óòñš!itemsš! first_oneš!last_oneñš!onesñ!setòñž!resetŸ!notòñ‘ !ø + +TBit_arrayñkBgoodbitòñeofbitóòñfailbitòñbadbitóòñ^ r¢!io_stateóòñ&ninóòñoutòñateòñappòñtrunc nocreateñ@ noreplace€binaryóòñþr¤! open_modeòñ>&begòñcuròñendòñ=r¦!seek_diróòñ_ ~”–¹C¨!  ”—ËÅ  ”–¹Ä +ª!«!e r”–¹9­!h + ”— {¯!• ©”—fµ±!` ”— ÷³! + ”—f1µ!Ó  ”—¹s·!R!•ù¹!³  ”—º!ç +Còñv  ”—¼!x +Còñ4  ”—¾!å»!½!¿!w·!¨ ”—º!ä +Â!ö(<_dirtyñX_dataòñ"_recnoñC&_ownerñ©!rec_desòñ¬!recno®!numòñ°!putòñ²!getòñ´! +write_dataóòñ¶! memo_loadedòñ¸!resetÀ! +TMemo_infoóòñÁ! ~TMemo_infoòñÃ! operator=ÅÄ!ø* +TMemo_infoñ VW¹a +Æ!² +V©!È!‰ +É!Å VWÊ!! VWF +Ë!Ì!} !V” Î!VWÊ!  GVWay  GVWfŒ Ï!Ð!Ñ!þ VWÓ—Ó!d +Æ!R~Tr_widthñÇ!tokenizeñÍ!TParagraph_stringÒ! operator=Ô! set_widthÕ!~TParagraph_stringóòñ<" +Ö!°TParagraph_stringòñÄ s¹7Ø!Á + p¹ÉÚ!<[ Ü!flÝ!hÝ!Ü Ü!Ëà!­ Ü!¹Áâ!  Ü!¶‚ä! pÜ!¹@æ!ß  Ü!­è!!ˆê!> Ü!ë!n  Ü!ø +ì!í!Àâ!! ð!Ü!ë!õ ñ!/ fýT¤_memoòñ² _buttonzoomÙ!class_idñÛ! +class_nameóòñÞ!set_window_dataòñÛ!get_window_dataòñÞ!set_field_dataóòñÛ!get_field_dataóòñß!set_first_lineóòñá!createóòñã!destroyòñå!showñå!enableóòñç!get_first_lineóòñé!on_keyóòñî! TZoom_fieldòñï! ~TZoom_fieldñò! operator=Šó!#¶ TZoom_fieldjFP_SOLIDòñP_DOTP_DASHóòñXVT_ENUM_DUMMY9òñÓrõ! e_pen_style*2 _excllock _autolock _manulock'r÷! TFilelockòñƒ![ +ù!ú!€ _event_type$ˆs_mouse + ˆs_charñ9ˆs_scroll_infoòñ—ˆs_cmdòñõˆs_sizeñžˆs_efont…ˆ +s_efont_r4ñ¤ˆ +s_efont_r3ñ—ˆs_ctlòñňs_updateóòñçˆs_timerˆs_userñJˆs_helpñ0– ý!s_mouseý!mouseòñ þ!s_charñþ!chractiveñqueryòñ ÿ!s_scroll_infoòñÿ!scrollñ "s_cmdòñ"cmd "s_sizeñ"sizeóòñ "s_efont"fontóòñ " +s_efont_r4ñ"font_R4 " +s_efont_r3ñ"font_R3 "s_ctlòñ"ctl "s_updateóòñ"updateñ "s_timer"timeròñ "s_userñ"useróòñ  "s_helpñ "helpóòñÿ +" __unnamedòñžü!typeóòñ "vòñ± "s_eventü +r¹"= €s_errmsgóòñQ"ú +"pòñb +"¶"€TDiropñýrµ"òñ Œ"Ó" +r"2 Œ" "Ó Œ¹N" Œfˆ" + ŒfÊ "þš[ Œ""g#"&ppp° Œ%"€&"g  pŒŽ¹Â("û pŒf *"ö + 猎¹^," + OŒ¹˜."ê rŒŽ‡Ú0"e  rŒŽ¹2"÷ 猎¹V4"· ŒŽ¹6"¶ Œ¹Ò8"J!X:" Œ;"§ +<""J"k!ŒR + ?"Œ;"ª @"¥ ®(ç_diróòñr_numóòñ  +_comóòñ"getòñ"putòñ"zeroñ"set_nameñ!"set_eoxòñ$"set_lenòñ'"setòñ)"nameñ)"filenameñ)"desòñ+"tab_desòñ)"exprñ-"eodòñ-"eoxòñ-"flags/"lenòñ1"statusóòñ3"numòñ1"items5"filedescñ7"is_comóòñ7"is_firmòñ9"is_validñ7" is_active="TDirñ>"~TDirA" operator= B"ø TDiróòñF_unlockòñ _nolockòñ@_lock€€ _testandlockóòñ´rD"TReclockóòñášM_COPYóòñM_ORñM_XORM_CLEARòñ +M_NOT_COPYóòñM_NOT_ORñ M_NOT_XOR M_NOT_CLEARòñXVT_ENUM_DUMMY1òñ] rF"e_modeñ¢vòñhòñH"s_pntòñ Ìî ÌJ"¹K"· ÌιÝM"¶ ÌJ"Ó›O"ƒ ÌJ"fUQ"Í ÌJ"¹S" rÌJ"¹ÑU"ž ÌJ"f} pÌJ"¹n +W"X"† ÌJ" LZ"3 pÌJ"f\"²X"“ ÅÌJ"¹«_"½ ,Ìιe a"– +÷3òñ8 ÌJ"c" d" ÌÎ Ä f" + !ÍJ h"  ÌJ"i"ü÷A  ÌJ"k"e +j"l"K"e ¨ÌJ"i"» +o"äV(6_relóòñX_filesñ6_fieldsr0 _cur_fileòñr2 +_cur_fieldñ 4_menuòñT6_cfileñTD_cfieldL"init_files_arrayñL"read_relñN"okóòñP" choose_fileòñP" set_cur_fileñR" choose_fieldñR" +build_menuóòñT" remove_menuòñV"file_numñY" file_desc["set_field_description]"get_field_descriptionY" +field_descóòñ^" +field_nameóòñV" field_len`" +field_typeóòñb" get_all_descñe"change_relationòñg"print_onñm"TRelation_descriptionn"~TRelation_descriptionóòñp" operator=1 &"q"øRTRelation_descriptionòñ„ "_nordiròñ_comdiròñars"TDirtypeóòñN +pdataóòñu" +s_printrcdñþW_NONEóòñW_DOCW_PLAINòñW_DBLW_PRINTòñW_TASKóòñW_SCREENñ W_NO_BORDERòñW_PIXMAPñ WD_MODALñ + WD_MODELESSòñ WC_PUSHBUTTON WC_RADIOBUTTONóòñ WC_CHECKBOXòñ +WC_HSCROLLóòñ +WC_VSCROLLóòñWC_EDITòñWC_TEXTòñWC_LBOXòñWC_LISTBUTTON WC_LISTEDITòñ WC_GROUPBOXòñWO_TEWC_ICONòñWC_IMAGEBUTTONóòñ WC_IMAGEICONñWC_NUM_WIN_TYPESñXVT_ENUM_DUMMY12ñ¿rw" +e_win_typeñµ®â ®y"x¢z"•!®´!¯½ }"> |"®y"~" n®y"èÜ p®y"fF ƒ®y"q» ®y"ËÓ r®y"Ó&"€""‚"ƒ"„"! r®°¹ †"Á  ®°¹bˆ"e p®°¹¼Š"S ~®°¹þŒ"> k®°¹8Ž"ª ®y"Ëz"' p®°¹´’"” + Å®°¹ö”"N ›®°¹0–"µ ®y"~"ô›prròñ£  ®y"™" +˜"š" ®y"¹Êœ"Ë’(¬_nameòñ_recóòñp_pñ _lenóòñ _decóòñ _typeòñ{"setòñ…" operator=‡" operator intñ‰"operator long‹"operator const char __far *òñ"operator class ::TDateóòñ"operator const class ::realòñ‘"setptróòñ‰"ptròñ“"posòñ‡"lenòñ‡"decòñ•"typeñ—"recordóòñ›" TRecfield" +~TRecfieldóòñüž"ø TRecfieldòñ+" _nordirop _sysdirop¶r "TDiropñ¤R normalstyleòñ boldstyleunderlinedstyleòñ italicstyleòñLr¢" TPrintstylep òñí  r¬­¤" ¥"f r¬­¹b§"k ¬­¶½©"¬.!«"¬" ¬­­"Ž +rp F ¬­¯"Ý +®"°"•  ¬­¹²"K!¬±  ´"¬­­"1µ"›†© :_autodelóòñ¦"openñ¨"closeª" set_autodelòñ±"TIsamtempfile³"~TIsamtempfileóòñ¶" operator=@ ·"|!topleftóòñbottomñrightòñs¹"s_rctòñòunsuppñç»"s_errmsgóòñ®ropaqueñƒ½"s_xvt_iostreamñ¥ Rnormalóòñboldñitalicóòñ +underlinedóòñtabbedóòñj r¿"styleòñjE_CREATEñ E_DESTROYE_FOCUSòñE_SIZEóòñE_UPDATEñE_CLOSEòñ E_MOUSE_DOWNñ +E_MOUSE_UPóòñ E_MOUSE_MOVEñ E_MOUSE_DBLòñ +E_CHARóòñ E_VSCROLL E_HSCROLL E_COMMANDE_FONTóòñ E_CONTROLE_TIMERòñE_QUITóòñE_HELPóòñE_USERóòñXVT_ENUM_DUMMY14ñy +rÁ" _event_typeà rdummyòñ* Ã" +_xvt_imageñk +Ê  Å"¹nÆ"J‰È"^ sÉ"¹ùÊ"Æ  Å"f»Ì"[ pÉ"¹}Î"= Å"Ë?Ð"] rÉ"¹5 Å"ÓFÒ"”Ó"˜W rÅ"fPÕ"ç  Å"¹×"| Å"­èÙ"€ Å"¿ +Û"œþ É"ªlÝ"ªÛ"£ Å"¿à"© !È"€â"+ Å"ã"  Å"È +ä"å"G Å" — +ç" v +Ì"¤r +Ì"¨ôÒ"K!8 ì"Å"ã"y +í"dÆ"TÖôÇ"add_listñT€_valuesTŽ_codesñ@œ_stróòñË"class_idñÍ"set_window_dataòñÏ"get_window_dataòñÍ"set_field_dataóòñÏ"get_field_dataóòñÑ"createóòñÔ"currentòñÖ"str2currñØ"on_hitóòñÚ"on_keyóòñÜ" read_itemÞ"set_back_coloróòñß" +parse_headóòñá" +parse_itemóòñæ" TList_fieldòñè"replace_itemsé"add_itemñê" delete_itemòñë"itemsî" operator=ï" ~TList_fieldñ! ð"­¦ TList_field¥ *upóòñdownñupdownóòñ“rò" directionòñzrFòñ7FdñrIORrLenRecñr +BaseFils LockModeóòñlposóòñönameóòñvô"<SecDefñÉ rnessunoòñfatturaòñ pagamento +versamentoóòñritenutañpagamento_piu_percóòñ_rö" +TTipo_collñ`"fisicheòñ nofisicheèrø" +TipoPaginañâ$ðr¼€TQuadroFóòñ= ü"c  Š‹f¨þ"Ô +—l] +¬pä +¯t⎠j¶_f_tot_totaleòñjÈ_f_tot_snsritòñjÚ _f_tot_imponóòñjì _f_tot_imporóòñjþ _f_tot_nettoóòñj_nf_tot_totaleñj"_nf_tot_snsritñj4_nf_tot_imponòñjF_nf_tot_imporòñjX_nf_tot_nettoòñkaggiorna_totali_Ckaggiorna_totali_Dkaggiorna_totali_D1óòñkaggiorna_totali_Ekaggiorna_totali_E1óòñ6j_relóòñ‘n_curóòñr _sorted_curv_Itemsñ‰z_PaginaCorrentenset_curr_pagepinc_curr_pager next_page | +_modulaserñ } +_posizionañ~ _tipo_dittar€ _num_foglio@‚ _cofi_dicòñ Œ_can_print_tot_fisñ _can_print_tot_nofisóòñ Ž _finite_fis _finite_nofisòñ  +_LastDittañ ‘_EndPrintDittañ ’_GiaStampatiFis “_GiaStampatiNoFisòñ ”_PaginaPosizionamentoòñ •_GiaPosizionato –_GiaMessoStartDocòñs—_GiaMessoStartPageñrœ_CtrNoFisStampatiòñrž_CtrFisStampati  _coddittaòñr¤ _RigaCorròñJ¦_quadroucursoróòñwrelationñxstampa_testataóòñystampa_totalizaggiorna_totaliòñ}set_bodyñ€ StampaPaginañ posiziona„ fill_page‡put_modulaserClearFlagModulaseróòñ‰PaginaPosizionamentoñ‹ InitPrint  _UsaProgindÿ"filtraóòñ#UsaSortedCursoròñŽÄ_progòñŽ set_progindòñcoddittañ’ set_coddittañ•set_posiziona•can_print_tot_fis•can_print_tot_nofisòñ•set_last_dittaóòñ– +last_dittaóòñ–EndJobóòñ˜ +ultima_fisóòñ˜ ultima_nofisñšcofi_dicñœ set_cofi_dicñž +tipo_dittaóòñ¡set_tipo_dittaóòñ– modulaser•set_modulaser£set_num_foglioóòñ¥ +num_foglioóòñ¦azzera_totali¨ curr_pageªcuròñ#print# set_cur_relòñ²progindòñ– +usaprogindóòñ·TDicFormñ¸ ~TDicForm» operator=]#zÈTDicFormóòñô ž¹…#2ŠÈ_items_góòñÌ _items_gdòñÀstampa_prospetti1_2òñÀstampa_prospetti3_4òñÂinc_curr_pageÄ next_pageÄstampa_totaliÆaggiorna_totaliòñÈset_bodyñ#UsaSortedCursoròñÍprintË set_items_gdñÓTQuadroGñÔ ~TQuadroG× operator=í #zÐTQuadroGóòñ0 Ÿ ¹ #CŠjÐ_f_tot_utspetòñjâ _f_tot_utpagóòñjô _f_tot_ropej_f_tot_ropespetj_nf_tot_utspetñj*_nf_tot_utpagòñj< _nf_tot_ropeóòñjN_nf_tot_ropespetóòñÛaggiorna_totaliòñÝstampa_totaliÞstampa_testataóòñÝ next_pageàset_bodyñ +#UsaSortedCursoròñâprintè +TDistintaGóòñê ~TDistintaGòñí operator=n #z` +TDistintaGñÇ +<§ ‘§¨¹í +#@½ +Dà +H¬ + LÀ §ú"¹2 +#P. +#Tÿ §ú"¹Ì +#XÄ:]à_formòñÑä_mñ6è_relóòñ‘ì_curóòñð _sorted_curJô_quadroL_titleñpl_livelloóòñn _coddittaòñ¡r_ditteñŠ_cnfóòñJŽ_sectionóòñ ª_singola_dittañr¬ _anno_dicòñ# +build_formóòñ# build_cursorñon_config_changeñ# fill_estintiñprintcreateóòñdestroyòñmenuñ#maskñ# print_quadroñ#UsaSortedCursoròñ# ContaTipiPerñ# +sorted_curóòñ#taitolóòñ*TStampaQuadro- operator=.~TStampaQuadroóòñ"!#ˆ®TStampaQuadroòñ‰?r6§3®_form_g4²_form_gdóòñѶ_mñ6º_rel_gñ6¾_rel_gd‘Â_cur_gñ‘Æ_cur_gdÊ _coddittaòñ¡Î_ditteñ æ_singola_dittañ8print:createóòñ:destroyòñ# print_quadroñHTStampaQuadroGóòñK operator=L~TStampaQuadroGòñÿ#ˆèTStampaQuadroGñ¸ ´µ¹­#J +UxŠŠÈ_itemsñTstampa_prospettoñ#UsaSortedCursoròñ#print\ TQuadroG1^ +~TQuadroG1óòña operator=7 +òñƒ #!#Ì TQuadroG1òñ6 ¶û"¹b##A ‘¶·¹¤%#½ê§e®_formòñ6²_relóòñ‘¶_curóòñ$# ContaTipiPerñ$#UsaSortedCursoròñg +build_formóòñ&# build_cursorñidestroyòñgprintwTStampaQuadroG1òñz operator={~TStampaQuadroG1ñ™'#ˆºTStampaQuadroG1 ü"ý"¾3)#Ì ü"ý"¹{+# ü"ý"f% +-#x^ü"2!/#0# ü"ý"1#> ü"ý" õ +2#3#ñ ü"ý"¹µ5#!ü"^ 7#ü"ý"1#Ò8#÷ŠŠÈ_itemsñ*#stampa_prospetto_Aóòñ,#UsaSortedCursoròñ.#print4#TQuadroFñ6# ~TQuadroF9# operator=? :#!#ÌTQuadroFóòñ \ No newline at end of file diff --git a/m770/772.url b/m770/772.url new file mode 100755 index 000000000..575ca030a --- /dev/null +++ b/m770/772.url @@ -0,0 +1,24 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(1) + +MENU MENU_BAR(1) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(2) + +MENU MENU_BAR(2) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(3) + +MENU MENU_BAR(3) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(4) + +MENU MENU_BAR(4) + SUBMENU MENU_FILE "~File" diff --git a/m770/772100.cpp b/m770/772100.cpp new file mode 100755 index 000000000..fdae8314f --- /dev/null +++ b/m770/772100.cpp @@ -0,0 +1,1342 @@ +// 772100.cpp - Stampa schede percipienti +#include +#include +#include +#include +#include +#include +#include +#include +#include "scperc.h" +#include "rpag.h" +#include "rver.h" +#include +#include +#include +#include +#include "perc.h" +#include +#include + +#include "772.h" +#include "772100.h" +#include "77lib.h" + +// +// Lista modifiche +// +// 23.11.95 Nella stampa a 198 una colonna sola comprendente quote e +// spese non soggette +// 27.11.95 Scarta le schede con annodoc MAGGIORE di annodic +// 27.11.95 Se l'annopag e' successivo mette il pag. nei NON pagati e non lo stampa +// 7.12.95 Riparte da pag.1 con un nuovo percipiente +// 11. 1.96 Nel tot_comp_non_pagati somma anche i pagamenti di anni precedenti +// 11. 1.96 Scarta le schede SOLO SE non hanno NESSUN pag con annopag==annodic +// non piu' in base al loro annodoc +// + +/**************************************************************************** + 11.1.96 + Layout della stampa a 198 + I numeri indicati sono gia' calcolati come parametri per set_row() e set_header() + 145 + 80 Somme o D +Cod. 43 60 70 Totale Data 101 115 122 134 quote T C Serie Numero 183 +Caus. Descrizione Data Numero Imponibili Spese Imposte Documento Pagamento Imponibili % Ritenute Compensi non sogg. C B Data ABI CAB Importo versato + 3 8 24 33 41 53 65 77 90 99 112 118 130 142 155 159 168 174 186 +II I__I I_15__________I I______I I_____I I_IMPONIB__II_SPESE____II_IMPOSTE__II_TOTDOC___I I______I I_IMPOPAG__I I___I I_RITPAG___II_COMPENS__II_NSOGG____I I I I______I I___I I_________I I_IMPVERS__I + 157 + +****************************************************************************/ +void calcola_non_pagate(TSchedaP& sch_corr, real& comp_npag, real& spese_npag, const int anno_in_corso); + +HIDDEN TString256 tmp; +HIDDEN const int RIGHE_FOOTER = 2; +HIDDEN const char* P198_REAL_PICTURE = "############"; + +class TStampa_perc : public TPrintapp +{ + char _liv; // Se stampa a livello di studio + int _anno_dic; // Anno dichiarazione nei paramentri utente o studio + bool _changed_perc; // flag che segnala il passaggio a nuovo perc. + struct righe_pag + { + char codq[3]; + char codc[5]; + char perc[7]; + real totale; + real somme; + real quote; + real imp; + real rit; + real netto; + }; + + TRelation* _rel; + TCursor* _cur; + righe_pag* _bil; + TSort* _sort; + TVersamento_stampa _stvers; + const char* _buf; + TLocalisamfile* _nditte, *_anag, *_rpag, *_rver, *_comuni; + TString16 _section; + TConfig* _cnf; + TString _ragsocER,_indER,_civER,_capER,_dencomER,_provER,_cofiER; + TString _ragsocPE,_indPE,_civPE,_capPE,_dencomPE,_provPE,_cofiPE; + TString _dencomnscER,_provnscER,_dencomnscPE,_provnscPE; + TString _datanascER,_datanascPE,_desc_cau,_numdoc; + TDate _datadoc; + int _nprog; + int _anno,_numcarat,_codcaus,_codtrib; + long _codditta,_codanagER,_codanagPE; + char _tipoa, _tipoaER; + real _impondoc,_spesedoc,_imposdoc,_totaledoc; + real _tot_comp,_tot_fatt; + real _tot_somme_non_soggette, _tot_comp_non_pagati; // tot.delle rimanenze di un percipiente + real _compenso_dovuto, _spese_dovute; // usati per calcolare rimanenza di una scheda + bool _rifai_sort,_stampa_modulo; + int _ind,_mesecomp,_annocomp; + bool _stampa_scheda; // stampo o no la scheda corrente + bool _almeno_una_scheda; // c'e' almeno una scheda stampabile + bool init_print(); + void add(TVersamento& vers); + bool find(TVersamento& vers); + +protected: + virtual void on_config_change(); + virtual bool user_create() ; + virtual bool user_destroy(); + virtual bool set_print(int m); + + virtual bool preprocess_page (int,int); + virtual bool preprocess_print(int,int); + virtual print_action postprocess_page (int,int); + virtual void preprocess_header(); + +public: + int stampa_vers(TVersamento_stampa& vers, int riga, const int numvers, const real& ritenpag); + void dati_erogante(); + void dati_percipiente(); + int stampa_dati_erog_perc(); + int ricerca_causale(TString&,TString&); + void setta_righe_documento(); + void setta_righe_pagamenti (TDate& datapag, const real& imponpag,const TString& percent,const real& ritenpag,const real& compenpag,const real& spesepag, const real& quotepag,int i); + void setta_righe_versamenti(char luo, char tipo, TDate& dataver, const TString& serie, const TString& numero,const real& impvers,int j); + void do_sort(const TString&,int,const real&,const real&,const real&,const real&,const real&,const real&); + void setta_righe_documento_modulo(); + int setta_righe_pagamenti_modulo(TDate& datapag, const real& imponpag,const TString& percent,const real& ritenpag,const real& compenpag,const real& spesepag, const real& quotepag,int j); + int setta_righe_versamenti_modulo(char luo,char tipo,TDate& dataver,const TString&,const TString&,const real&,int); + void init_sort(); + void riempi_record(const TString&,int,const real&,const real&,const real&,const real&,const real&,const real&,const real&); + void set_bil_key(righe_pag* b,const char* codq,int codc,const real& perc); + void set_bil_val(righe_pag* b, const real& totale = ZERO,const real& somme = ZERO, + const real& quote = ZERO,const real& imp = ZERO, + const real& rit = ZERO,const real& netto = ZERO); + void intestazione_riepilogo(const bool redo_header=FALSE, const int start_riga=0); + real fatture(); + static bool codditta_hnd(TMask_field& f, KEY k); + +// D = stampa ditta, S = stampa a livello di studio + TStampa_perc(char livello='D') : _liv(toupper(livello)) {} +}; + +HIDDEN TStampa_perc& app() { return (TStampa_perc&) main_app(); } + +void TStampa_perc::add(TVersamento& vers) +{ + _stvers.add(vers); +} + +bool TStampa_perc::find(TVersamento& vers) +{ + return _stvers.find(vers); +} + +bool TStampa_perc::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; codditta << app()._codditta; + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + return TRUE; +} + +void TStampa_perc::init_sort() +{ + _sort->reset(sizeof(righe_pag)); + _sort -> addsortkey ((char*)&(_bil->codq) - (char*)&(_bil->codq),2); + _sort -> addsortkey ((char*)&(_bil->codc) - (char*)&(_bil->codq),4); + _sort -> addsortkey ((char*)&(_bil->perc) - (char*)&(_bil->codq),6); + _sort -> init(); +} + +void TStampa_perc::set_bil_key(righe_pag* b,const char* codq,int codc,const real& perc) +{ + strcpy (b->codq, codq); + sprintf(b->codc , "%4d", codc); + TString16 pp(perc.string("###,@@")); + sprintf(b->perc, "%s", (const char*)pp); +} + +void TStampa_perc::set_bil_val(righe_pag* b, const real& totale, + const real& somme,const real& quote, + const real& imp,const real& rit, const real& netto) +{ + b->totale = totale; + b->somme = somme; + b->quote = quote; + b->imp = imp; + b->rit = rit; + b->netto = netto; +} + +void TStampa_perc::riempi_record(const TString& codq,int codc,const real& perc, + const real& totale,const real& somme, + const real& quote,const real& imp, + const real& rit,const real& netto ) +{ + set_bil_key(_bil, codq, codc, perc); + set_bil_val(_bil, totale, somme, quote, imp, rit, netto); + _sort->sort ((const char*) _bil); +} + +void TStampa_perc::do_sort(const TString& codqua,int codcaus,const real& perc,const real& spese, + const real& quote,const real& imp,const real& rit,const real& comp) +{ + real totale,netto; + netto = imp - rit; + totale = comp + spese ; + riempi_record(codqua,codcaus,perc,totale,spese,quote,imp,rit,netto); +} + +int TStampa_perc::ricerca_causale(TString& desc,TString& codqua) +{ + TTable ca7 ("%CA7"); + TString16 dep; + int cod = 0; + + ca7.zero(); + dep.format("%02d", _codcaus); + ca7.put("CODTAB", dep); + if (ca7.read() == NOERR) + { + desc = ca7.get("S0"); + cod = ca7.get_int("I0"); + codqua = ca7.get("S1"); + } + return cod; +} + +bool TStampa_perc::preprocess_print(int file, int counter) +{ + if (file == LF_SCPERC) + { +// _tot_comp_testata = ZERO; +// _tot_spese_testata = ZERO; + _tot_somme_non_soggette = _tot_comp_non_pagati = ZERO; + _almeno_una_scheda = FALSE; + } + return TRUE; +} + +void TStampa_perc::setta_righe_documento() +{ + reset_print(); + TString spesedoc(20), imposdoc(20), totdoc(20), impondoc(20); + + spesedoc = _spesedoc.string(P198_REAL_PICTURE); + imposdoc = _imposdoc.string(P198_REAL_PICTURE); + totdoc = _totaledoc.string(P198_REAL_PICTURE); + impondoc = _impondoc.string(P198_REAL_PICTURE); + + if (_numcarat == 1) + { + set_row (1, "Documento del %10s", (const char*) _datadoc); + set_row (1, "@26gNumero@33g%-7s", (const char*) _numdoc); + set_row (1, "@41gPeriodo di competenza %2d / %4d", _mesecomp,_annocomp); + set_row (2, "Cod."); + if (_codtrib != 0) + set_row (2, "@5g%4d", _codtrib); + set_row (2, "@10g%.35s", (const char*) _desc_cau); + set_row (2, "@46gCompenso %12s", (const char*)impondoc); + set_row (2, "@69gSpese %12s", (const char*)spesedoc); + set_row (2, "@89gImposta %12s", (const char*)imposdoc); + set_row (2, "@111gTotale %12s", (const char*)totdoc); +/* set_row (2, "@46gCompenso %12r", &_impondoc); + set_row (2, "@69gSpese %12r", &_spesedoc); + set_row (2, "@89gImposta %12r", &_imposdoc); + set_row (2, "@111gTotale %12r", &_totaledoc);*/ + } + else + if (_numcarat == 2) + { + reset_row(1); + set_row (1, "@0g%02d", _codcaus); + set_row (1, "@3g%4d", _codtrib); + set_row (1, "@8g%.15s", (const char*) _desc_cau); + TString16 dep(_datadoc.string(brief)); + set_row (1, "@24g%8s", (const char*) dep); + set_row (1, "@33g%-7s", (const char*) _numdoc); + set_row (1, "@41g%12s", (const char*)impondoc); + set_row (1, "@53g%12s", (const char*)spesedoc); + set_row (1, "@65g%12s", (const char*)imposdoc); + set_row (1, "@77g%12s", (const char*)totdoc); +/* set_row (1, "@41g%12r", &_impondoc); + set_row (1, "@53g%12r", &_spesedoc); + set_row (1, "@65g%12r", &_imposdoc); + set_row (1, "@77g%12r", &_totaledoc); */ + } +} + +void TStampa_perc::setta_righe_documento_modulo() +{ + reset_print(); + + if (_numcarat == 1) + { + set_row (1, "@18g%10s", (const char*) _datadoc); + set_row (1, "@10g%7s", (const char*) _numdoc); + set_row (1, "@42g%.29s", (const char*) _desc_cau); + set_row (1, "@74g%12r", &_impondoc); + set_row (1, "@105g%12r", &_spesedoc); + set_row (1, "@89g%12r", &_imposdoc); + set_row (3, "@14g%12r", &_totaledoc); + set_row (4, ""); + } + else + if (_numcarat == 2) + { + set_row (1, "@0g%02d", _codcaus); + set_row (1, "@3g%4d", _codtrib); + set_row (1, "@8g%.15s", (const char*) _desc_cau); + TString16 dep(_datadoc.string(brief)); + set_row (1, "@24g%10s", (const char*) dep); + set_row (1, "@33g%-7s", (const char*) _numdoc); + set_row (1, "@41g%12r", &_impondoc); + set_row (1, "@53g%12r", &_spesedoc); + set_row (1, "@65g%12r", &_imposdoc); + set_row (1, "@77g%12r", &_totaledoc); + } +} + +void TStampa_perc::setta_righe_pagamenti(TDate& datapag,const real& imponpag, + const TString& percent,const real& ritenpag,const real& compenpag, + const real& spesepag, const real& quotepag,int i) +{ + if (_numcarat == 1) + { + set_row (i, "%10s", (const char*) datapag.string()); + set_row (i, "@11g%12r", &imponpag); + set_row (i, "@24g%s", (const char*)percent); + set_row (i, "@30g%12r", &ritenpag); + set_row (i, "@42g%12r", &compenpag); + set_row (i, "@54g%12r", &spesepag); + if (quotepag != ZERO) + set_row (i, "@67g%12r", "epag); + } + else + if (_numcarat == 2) + { + TString16 dep(datapag.string(brief)); + real quotepag198 = ZERO; + set_row (i, "@90g%8s", (const char*) dep); + set_row (i, "@99g%12r", &imponpag); + set_row (i, "@112g%s", (const char*)percent); + set_row (i, "@118g%12r", &ritenpag); + set_row (i, "@130g%12r", &compenpag); +// 23.11.95 +// Nella stampa a 198 una colonna sola comprendente quote e spese non soggette + quotepag198 = compenpag - imponpag + spesepag; + set_row (i, "@142g%12r", "epag198); + } +} + +int TStampa_perc::setta_righe_pagamenti_modulo(TDate& datapag,const real& imponpag, + const TString& percent,const real& ritenpag,const real& compenpag, + const real& spesepag, const real& quotepag,int i) +{ + if (_numcarat == 1) + { + set_row (i, "@29g%10s", (const char*) datapag.string()); + i += 2; + set_row (i, "@56g%s", (const char*)percent); + } + else + if (_numcarat == 2) + { + TString16 dep(datapag.string(brief)); + real quotepag198 = ZERO; + set_row (i, "@89g%8s", (const char*) dep); + set_row (i, "@97g%12r", &imponpag); + TString16 app (percent.left(4)); + app.ltrim(); + set_row (i, "@110g%s", (const char*)app); + set_row (i, "@115g%12r", &ritenpag); + set_row (i, "@127g%12r", &compenpag); +// 23.11.95 +// Nella stampa a 198 una colonna sola comprendente quote e spese non soggette + quotepag198 = compenpag - imponpag + spesepag; + set_row (i, "@139g%12r", "epag198); + } + return i; +} + +void TStampa_perc::setta_righe_versamenti(char luovers,char tipovers, TDate& dataver, + const TString& serie,const TString& numero, + const real& impvers,int j) +{ + if (_numcarat == 1) + { + set_row (j, "@84g%c", luovers); + set_row (j, "@87g%c", tipovers); + set_row (j, "@91g%10s", (const char*) dataver.string()); + set_row (j, "@102g%s", (const char*) serie); + set_row (j, "@108g%s", (const char*) numero); + set_row (j, "@120g%12r", &impvers); + } + else + if (_numcarat == 2) + { + set_row (j, "@155g%c", luovers); + set_row (j, "@157g%c", tipovers); + TString16 dep(dataver.string(brief)); + set_row (j, "@159g%8s", (const char*) dep); + set_row (j, "@168g%5s", (const char*) serie); + set_row (j, "@174g%-11s", (const char*)numero); + set_row (j, "@186g%12r", &impvers); + } +} + +int TStampa_perc::setta_righe_versamenti_modulo(char luovers,char tipovers,TDate& dataver, + const TString& serie,const TString& numero, + const real& impvers,int j) +{ + if (_numcarat == 1) + { + j += 2; + set_row (j, "@80g%c", luovers); + set_row (j, "@84g%c", tipovers); + set_row (j, "@87g%10s", (const char*) dataver.string()); + } + else + if (_numcarat == 2) + { + set_row (j, "@155g%c", luovers); + set_row (j, "@157g%c", tipovers); + TString dep(dataver.string(brief)); + set_row (j, "@159g%8s", (const char*) dep); + set_row (j, "@168g%5s", serie); + set_row (j, "@174g%11s", numero); + set_row (j, "@186g%12r", &impvers); + } + return j; +} + +int TStampa_perc::stampa_vers(TVersamento_stampa& ve, int nriga, const int numvers, const real& ritenpag) +{ + TString16 serie, numero; + int j = nriga; + real vers_stampa = ZERO; + + _rver->setkey(1); + _rver->zero(); + _rver->put(SPR_CODDITTA, _codditta); + _rver->put(SPR_TIPOA, _tipoa); + _rver->put(SPR_CODANAGR, _codanagPE); + _rver->put(SPR_NPROG, _nprog); + _rver->put(VER_NRIGA, numvers); + + if (_rver->read(_isequal) == NOERR) + { + char luovers = _rver->get(VER_LUOVERS)[0]; + char tipovers = _rver->get(VER_TIPOVERS)[0]; + TDate dataver(_rver->get_date(VER_DATAVERS)); + serie = _rver->get(VER_SERIE); + numero = _rver->get(VER_NUMERO); + real impvers = _rver->get_real(VER_IMPVERS); + + ve.set(_codditta, _tipoa, _codanagPE, _nprog, numvers, impvers); + + const bool gia_visto = find(ve); + + if (gia_visto) + { + real vvee = ve.importo_versato_residuo(); + impvers = vvee; + } + + vers_stampa = ve.vers_stampa(_rpag, numvers, impvers, ritenpag); + + if (_numcarat == 1 && !_stampa_modulo) + if (j == 3) + { + set_row (j++, "@83gEstremi versamento@102gSerie@108gNumero"); + set_row (j++, "@83gTC DCB@91gData@102gABI@108gCAB@121gImp.versato"); + } + + if (_stampa_modulo) + j = setta_righe_versamenti_modulo(luovers,tipovers,dataver,serie,numero,vers_stampa,j); + else + setta_righe_versamenti(luovers,tipovers,dataver,serie,numero,vers_stampa,j); + + j += _stampa_modulo ? 2 : 1; + } + return j; +} + +void calcola_non_pagate(TSchedaP& sch, real& compensi_non_pagati, + real& spese_non_pagate, const int anno_in_corso) +{ + real comp, spese; + real comp_doc, spese_doc, comp_pagato, spese_pagate; + TDate data_pag; + int anno_pag; + + comp = spese = ZERO; + TLocalisamfile* rpag = new TLocalisamfile(LF_RPAG); + sch.read(); +// anno_doc = sch.anno_doc(); + comp_doc = sch.compenso_doc(); + spese_doc = sch.spese_doc(); + + rpag->zero(); + rpag->put(PAG_CODDITTA, sch.codditta()); + rpag->put(PAG_TIPOA, sch.tipoa()); + rpag->put(PAG_CODANAGR, sch.codanagr()); + rpag->put(PAG_NPROG, sch.nprog()); + TRectype mst(rpag->curr()); + for (rpag->read(_isgteq); !rpag->eof(); rpag->next()) + { + if (rpag->curr() > mst) break; + comp_pagato = rpag->get_real(PAG_COMPENSO); + spese_pagate = rpag->get_real(PAG_SPESA); + data_pag = rpag->get_date(PAG_DATAPAG); + anno_pag = data_pag.year(); + if (anno_pag <= anno_in_corso) + { + comp_doc -= comp_pagato; + spese_doc -= spese_pagate; + } + } + compensi_non_pagati = comp_doc; + spese_non_pagate = spese_doc; +} + +bool TStampa_perc::preprocess_page(int file, int counter) +{ + TString16 datapag,dataver; + TString16 codqua; + real imponpag,ritenpag,compenpag,spesepag,quotepag; + int i, rigaver, numvers, anno_doc; + bool pagato_anno_in_corso = FALSE; + + if (counter) + return TRUE; + + if (!_stampa_modulo) + { + if (_numcarat == 1) + i = rigaver = 3; + else + if (_numcarat == 2) + i = rigaver = 1; + } + else + i = rigaver = 1; + + if (file == LF_SCPERC) + { + reset_print(); + TRectype sch_curr(current_cursor()->curr(LF_SCPERC)); + _tipoa = current_cursor()->curr(LF_SCPERC).get (SPR_TIPOA)[0]; + _codanagPE = current_cursor()->curr(LF_SCPERC).get_long(SPR_CODANAGR); + _nprog = current_cursor()->curr(LF_SCPERC).get_int(SPR_NPROG); + _codcaus = current_cursor()->curr(LF_SCPERC).get_int (SPR_CODCAUS); + _codtrib = ricerca_causale(_desc_cau,codqua); + _datadoc = current_cursor()->curr(LF_SCPERC).get_date(SPR_DATADOC); + _numdoc = current_cursor()->curr(LF_SCPERC).get (SPR_NUMDOC); + _impondoc = current_cursor()->curr(LF_SCPERC).get_real(SPR_COMPENSO); + _spesedoc = current_cursor()->curr(LF_SCPERC).get_real(SPR_SPESE); + _imposdoc = current_cursor()->curr(LF_SCPERC).get_real(SPR_IVA); + _totaledoc = current_cursor()->curr(LF_SCPERC).get_real(SPR_TOTALE); + _mesecomp = current_cursor()->curr(LF_SCPERC).get_int (SPR_MESEC); + _annocomp = current_cursor()->curr(LF_SCPERC).get_int (SPR_ANNOC); + + anno_doc = _datadoc.year(); + + _compenso_dovuto = _impondoc; + _spese_dovute = _spesedoc; + + TSchedaP scheda(sch_curr); + bool esiste_pag_anno_in_corso = esiste_pag_in_anno(scheda, _anno_dic); + _stampa_scheda = anno_doc <= _anno_dic && esiste_pag_anno_in_corso; + + TSchedaP sch_corr(_codditta, _tipoa, _codanagPE, _nprog); + + if (_stampa_scheda) + { + _tot_fatt += _totaledoc; + + if (_stampa_modulo) + setta_righe_documento_modulo(); + else + setta_righe_documento(); + + _almeno_una_scheda = TRUE; + } + + if (_rifai_sort) + { + init_sort(); + _rifai_sort = FALSE; + } + + TRectype recpag(_rpag->curr()); + recpag.zero(); + recpag.put(SPR_CODDITTA, _codditta); + recpag.put(SPR_TIPOA, _tipoa); + recpag.put(SPR_CODANAGR, _codanagPE); + recpag.put(SPR_NPROG, _nprog); + + _rpag->setkey(1); + _rpag->zero(); + _rpag->curr() = recpag; + + TDate datapag; + TVersamento_stampa ve; + bool aggiorna_totali = FALSE; + for (_rpag->read(_isgteq); _rpag->good(); _rpag->next()) + { + if (_rpag->curr() > recpag) + break; + + datapag = _rpag->get_date(PAG_DATAPAG); + const int anno_pag = datapag.year(); + + compenpag = _rpag->get_real(PAG_COMPENSO); + spesepag = _rpag->get_real(PAG_SPESA); + +// Aggiorna i tot. per questa scheda + if (anno_pag <= _anno_dic) + { + _compenso_dovuto -= compenpag; + _spese_dovute -= spesepag; + aggiorna_totali = TRUE; + } + +// 28.11.95 Se sono di anni precedenti non li stampo +// (v. prospetto di Omero) +// 10.1.96 pero' sommo compenso e spese nei non pagati + if (anno_pag < _anno_dic) + continue; + +// Non devo stampare nulla, si resta nel ciclo solo per aggiornare i totali + if (!_stampa_scheda) + continue; + + pagato_anno_in_corso = anno_pag == _anno_dic; + + imponpag = _rpag->get_real(PAG_IMPONIBILE); + real r_perc; + r_perc = _rpag->get_real(PAG_PERC); + TString16 st_perc(r_perc.string("###,@@")); + ritenpag = _rpag->get_real(PAG_RITENUTA); + quotepag = compenpag - imponpag; + numvers = _rpag->get_int(PAG_NUMVERS); + +// 27.11.95 se l'anno e' successivo deve restare nei NON pagati +// e non si stampa + if (pagato_anno_in_corso) + { + if (_numcarat == 1 && !_stampa_modulo) + if (i == 3) + { + set_row (i++, "Data@54gSpese@67gQuote"); + set_row (i++, "Pagamento@13gImponibili@27g%%@32gRitenute@45gCompensi@54gnon soggette@67gnon soggette"); + } + + if (_stampa_modulo) + i = setta_righe_pagamenti_modulo(datapag,imponpag,st_perc,ritenpag,compenpag,spesepag,quotepag,i); + else + setta_righe_pagamenti(datapag,imponpag,st_perc,ritenpag,compenpag,spesepag,quotepag,i); + + i += _stampa_modulo ? 2 : 1; + do_sort(codqua,_codtrib,r_perc,spesepag,quotepag,imponpag,ritenpag,compenpag); + + if (numvers > 0) + rigaver = stampa_vers(ve, rigaver, numvers, ritenpag); + } + } // for (rpag.. legge pagamento successivo + +// Aggiorna i totali delle spese e comp. ancora da pagare + if (aggiorna_totali) + { + _tot_comp_non_pagati += _compenso_dovuto; + _tot_somme_non_soggette += _spese_dovute; + } + +// Determina se questa e' l'ultima scheda di questo percipiente + current_cursor()->save_status(); + ++(*current_cursor()); + char tipoa = current_cursor()->curr(LF_SCPERC).get_char(SPR_TIPOA); + long codanag = current_cursor()->curr(LF_SCPERC).get_long(SPR_CODANAGR); + --(*current_cursor()); + current_cursor()->restore_status(); + +// Se e' l'ultima chiude il sort (cioe' il riepilogo) + if (_tipoa != tipoa || _codanagPE != codanag) + _sort->endsort(); + } + return TRUE; +} + +real TStampa_perc::fatture() +{ + TLocalisamfile perc (LF_PERC); + real fatt_bil; + + fatt_bil = ZERO; + + perc.setkey(1); + perc.zero(); + perc.put(PRC_CODDITTA, _codditta); + perc.put(PRC_TIPOA, _tipoa); + perc.put(PRC_CODANAGR, _codanagPE); + if (perc.read() == NOERR) + fatt_bil = perc.get_real(PRC_FATTBIL); + + return fatt_bil; +} + +print_action TStampa_perc::postprocess_page(int file, int counter) +{ + char tipoa; + long codanag; + bool intesta_sort = TRUE; + + if (counter) + { + printer().formfeed(); + reset_print(); // per evitare che stampi di nuovo il totale prec. +// 7.12.95 Riparto da pag.1 con un nuovo percipiente + if (_changed_perc) + { + printer().setcurrentpage(1); + _changed_perc = FALSE; + } + return NEXT_PAGE; + } + + if (file == LF_SCPERC) + { + if (!_stampa_scheda && !_almeno_una_scheda) + return NEXT_PAGE; + + current_cursor()->save_status(); + ++(*current_cursor()); + tipoa = current_cursor()->curr(LF_SCPERC).get_char(SPR_TIPOA); + codanag = current_cursor()->curr(LF_SCPERC).get_long(SPR_CODANAGR); + --(*current_cursor()); + current_cursor()->restore_status(); + _changed_perc = _tipoa != tipoa || _codanagPE != codanag; + + if (_changed_perc) + { + TString16 codqua,codqua_t; + int codcau,codcau_t; + real totale,somme,quote,imp,rit,netto; + real totale_t,somme_t,quote_t,imp_t,rit_t,netto_t; + TString key(20),keyp(20); + real perc,perc_t; + + _almeno_una_scheda = FALSE; + reset_print(); + if (_tot_fatt != ZERO) + { + set_row (2, "@62gTotale fatturato@79g%12.0r", &_tot_fatt); + set_row (2, "@93gComprensivo d'iva"); + _ind = 4; + } + else +// _ind = 2; + _ind = 3; + + struct righe_pag* bil = (struct righe_pag*) _buf; + + _buf = _sort->retrieve(); + + int righe_libbere = printer().rows_left(); + + if (_buf != NULL) + { + do + { + bil = (struct righe_pag*) _buf; + codqua = bil->codq; + codcau = atoi(bil->codc); + real dumb; + const char* eng_perc = dumb.ita2eng(bil->perc); + const double ppp = atof(eng_perc); + perc = ppp; + totale = bil->totale; + somme = bil->somme; + quote = bil->quote; + imp = bil->imp; + rit = bil->rit; + netto = bil->netto; + + TString16 st_perc(perc.string("###,@@")); + if (!intesta_sort) + key.format("%2s%4d%s", (const char*) codqua,codcau,(const char*)st_perc); + + if (intesta_sort) + { + intestazione_riepilogo(); + righe_libbere -= 6; + intesta_sort = FALSE; + key.format("%2s%4d%s", (const char*) codqua,codcau,(const char*)st_perc); + keyp.format("%2s%4d%s", (const char*) codqua,codcau,(const char*)st_perc); + } + + if (key == keyp) + { + codqua_t = codqua; + codcau_t = codcau; + perc_t = perc; + totale_t += totale; + somme_t += somme; + quote_t += quote; + imp_t += imp; + rit_t += rit; + netto_t += netto; + } + else + { + if (righe_libbere <= 1) + { + intestazione_riepilogo(); + righe_libbere = printer().formlen() - printer().headersize(); + } + set_row (_ind, "%2s", (const char*) codqua_t); + set_row (_ind, "@4g%4d", codcau_t); + TString16 st_perc_t(perc_t.string("###,@@")); + set_row (_ind, "@10g%s", (const char*) st_perc_t); + set_row (_ind, "@17g%12r", &totale_t); + set_row (_ind, "@31g%12r", &somme_t); + set_row (_ind, "@47g%12r", "e_t); + set_row (_ind, "@63g%12r", &imp_t); + set_row (_ind, "@79g%12r", &rit_t); + set_row (_ind, "@94g%12r", &netto_t); + _ind++; + righe_libbere--; + codqua_t = codqua; + codcau_t = codcau; + perc_t = perc; + totale_t = totale; + somme_t = somme; + quote_t = quote; + imp_t = imp; + rit_t = rit; + netto_t = netto; + } + keyp = key; + _buf = _sort->retrieve(); + } + while ( _buf != NULL); + } + + set_row (_ind, "%2s", (const char*) codqua_t); + set_row (_ind, "@4g%4d", codcau_t); + TString16 st_perc_t(perc_t.string("###,@@")); + set_row (_ind, "@10g%s", (const char*)st_perc_t); + set_row (_ind, "@17g%12r", &totale_t); + set_row (_ind, "@31g%12r", &somme_t); + set_row (_ind, "@47g%12r", "e_t); + set_row (_ind, "@63g%12r", &imp_t); + set_row (_ind, "@79g%12r", &rit_t); + set_row (_ind, "@94g%12r", &netto_t); + _ind++; +// Prospetto delle sommee **NON PAGATE** +// _tot_comp_non_pagati = _tot_comp_testata - _tot_comp_pagati; +// _tot_somme_non_soggette = _tot_spese_testata - _tot_spese_pagate; + + real fatt_bil, totale_non_pagate; + + fatt_bil = fatture(); + totale_non_pagate = _tot_comp_non_pagati + _tot_somme_non_soggette; + + set_row (_ind++, ""); + + if (fatt_bil != ZERO) + { + set_row (_ind++, "***************************"); + set_row (_ind++, "*** FATTURE DA RICEVERE ***@30g%12.0r", &fatt_bil); + set_row (_ind++, "***************************"); + set_row (_ind++, ""); + } + + set_row (_ind++, "************** Compensi@42g%12.0r@56g+", &_tot_comp_non_pagati); + set_row (_ind++, "* NON PAGATE * Somme non soggette@42g%12.0r@56g=", &_tot_somme_non_soggette); + set_row (_ind++, "**************@42g----------------"); + set_row (_ind , " Totale@42g%12.0r", &totale_non_pagate); + + _rifai_sort = TRUE; + _tot_comp = ZERO; + _tot_fatt = ZERO; + _tot_somme_non_soggette = _tot_comp_non_pagati = ZERO; + + return REPEAT_PAGE; + } + } + return NEXT_PAGE; +} + +void TStampa_perc::intestazione_riepilogo(const bool redo_header, const int start_riga) +{ + TString sep(110); + if (redo_header) + { + int ind = start_riga; + sep.fill('_'); + set_header (ind++, (const char*) sep); + set_header (ind++, "Q@4gCod.@31gSomme@47gQuote@95gNetto"); + set_header (ind++, "D@4gCaus.@13g%%@23gTotale@31gnon soggette@47gnon soggette@65gImponibili@83gRitenute@95gcorrisposto"); + set_header (ind++, (const char*) sep); + } + else + { + sep.fill('_'); + set_row (_ind++, (const char*) sep); + set_row (_ind++, "Q@4gCod.@31gSomme@47gQuote@95gNetto"); + set_row (_ind++, "D@4gCaus.@13g%%@23gTotale@31gnon soggette@47gnon soggette@65gImponibili@83gRitenute@95gcorrisposto"); + set_row (_ind++, (const char*) sep); + } +} + +void TStampa_perc::on_config_change() +{ + TConfig conf(_liv == 'S' ? CONFIG_USER : CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, _section); +} + +bool TStampa_perc::init_print() +{ + KEY tasto; + TLocalisamfile* fl; + TMask msk ("772100a"); + + _changed_perc = FALSE; + printer().footerlen(RIGHE_FOOTER); + msk.set_handler (F_CODDITTA, codditta_hnd); + + tasto = msk.run(); + + if (tasto == K_ENTER) + { + char tipoa_da = msk.get(F_TIPODA)[0]; + long cod_da = msk.get_long(F_CODDA); + char tipoa_a = msk.get(F_TIPOA)[0]; + long cod_a = msk.get_long(F_CODA); + + _numcarat = msk.get_int (F_CARATTERE); + _stampa_modulo = msk.get_bool(F_MODULO); + +//Crea il cursore su gruppo, conto e sottoconto del file RMOV + reset_files(); //resetta l'albero di stampa + add_file(LF_SCPERC); + + fl = &(current_cursor()->file(LF_SCPERC)); + TRectype da (fl->curr()); + TRectype a (fl->curr()); + + da.zero(); + a.zero(); + + da.put(SPR_CODDITTA, _codditta); + da.put(SPR_TIPOA, tipoa_da); + da.put(SPR_CODANAGR, cod_da); + + a.put(SPR_CODDITTA, _codditta); + a.put(SPR_TIPOA, tipoa_a); + a.put(SPR_CODANAGR, cod_a); + + current_cursor()->setregion(da, a); + + _anno = _anno_dic; + + dati_erogante(); + _rifai_sort = TRUE; + } + return tasto == K_ENTER; +} + +bool TStampa_perc::set_print(int) +{ + long codditta_prec; + int i = 0; + + if (_liv == 'S') + { + codditta_prec = get_firm_770(); + while ((_codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L) + { + set_firm_770(_codditta); +// init_print ritorna TRUE solo se K_ENTER + if (init_print()) + print(); + else + break; + } + set_firm_770(codditta_prec); +// Non richiamare di nuovo print()! + return FALSE; + } + else + return init_print(); +} + +void TStampa_perc::preprocess_header() +{ + int riga; + dati_percipiente(); + riga = stampa_dati_erog_perc(); +} + +void TStampa_perc::dati_erogante() +{ + TString com,comnasc; + TDate data; + + _nditte->setkey(1); + _nditte->curr().zero(); + _nditte->curr().put(NDT_CODDITTA, _codditta); + if (_nditte->read() == NOERR) + { + _tipoaER = _nditte->get_char(NDT_TIPOA); + _codanagER = _nditte->get_long(NDT_CODANAGR); + } + + _anag->setkey(1); + _anag->zero(); + _anag->put(ANA_TIPOA, _tipoaER); + _anag->put(ANA_CODANAGR, _codanagER); + if (_anag->read() == NOERR) + { + _ragsocER = _anag->get(ANA_RAGSOC); + _cofiER = _anag->get(ANA_COFI); + + if (_tipoaER == 'F') + { + TString80 nome = _ragsocER.mid(30); + _ragsocER.cut(30); + _ragsocER.trim(); nome.trim(); + _ragsocER << ' ' << nome; + } + + com = _anag->get(ANA_COMRF); + + if (com != "") + { + _indER = _anag->get(ANA_INDRF); + _civER = _anag->get(ANA_CIVRF); + _capER = _anag->get(ANA_CAPRF); + } + else + { + _indER = _anag->get(ANA_INDRES); + _civER = _anag->get(ANA_CIVRES); + _capER = _anag->get(ANA_CAPRES); + com = _anag->get(ANA_COMRES); + } + } + + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM,com); + if (_comuni->read() == NOERR) + { + _dencomER = _comuni->get(COM_DENCOM); + _provER = _comuni->get(COM_PROVCOM); + } + + if (_tipoaER == 'F') + { + TLocalisamfile anagfis(LF_ANAGFIS); + + anagfis.setkey(1); + anagfis.zero(); + anagfis.put(ANF_CODANAGR, _codanagER); + if (anagfis.read() == NOERR) + { + data = anagfis.get_date(ANF_DATANASC); + _datanascER = data.string(); + comnasc = anagfis.get (ANF_COMNASC); + } + + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM,comnasc); + if (_comuni->read() == NOERR) + { + _dencomnscER = _comuni->get(COM_DENCOM); + _provnscER = _comuni->get(COM_PROVCOM); + } + _dencomnscER.rtrim(); + _provnscER.rtrim(); + } + else + { + _dencomnscER = ""; + _provnscER = ""; + } + _indER.rtrim(); + _dencomER.rtrim(); +} + +void TStampa_perc::dati_percipiente() +{ + TString com; + TDate data; + TString comnasc; + + _anag->setkey(1); + _anag->zero(); + _anag->put(ANA_TIPOA, _tipoa); + _anag->put(ANA_CODANAGR, _codanagPE); + if (_anag->read() == NOERR) + { + _ragsocPE = _anag->get(ANA_RAGSOC); + _cofiPE = _anag->get(ANA_COFI); + + if (_tipoa == 'F') + { + TString80 nome = _ragsocPE.mid(30); + _ragsocPE.cut(30); + _ragsocPE.trim(); nome.trim(); + _ragsocPE << ' ' << nome; + } + + com = _anag->get(ANA_COMRF); + + if (com != "") + { + _indPE = _anag->get(ANA_INDRF); + _civPE = _anag->get(ANA_CIVRF); + _capPE = _anag->get(ANA_CAPRF); + } + else + { + _indPE = _anag->get(ANA_INDRES); + _civPE = _anag->get(ANA_CIVRES); + _capPE = _anag->get(ANA_CAPRES); + com = _anag->get(ANA_COMRES); + } + } + + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM,com); + if (_comuni->read() == NOERR) + { + _dencomPE = _comuni->get(COM_DENCOM); + _provPE = _comuni->get(COM_PROVCOM); + } + + if (_tipoa == 'F') + { + TLocalisamfile anagfis(LF_ANAGFIS); + + anagfis.setkey(1); + anagfis.zero(); + anagfis.put(ANF_CODANAGR, _codanagPE); + if (anagfis.read() == NOERR) + { + data = anagfis.get_date(ANF_DATANASC); + _datanascPE = data.string(); + comnasc = anagfis.get (ANF_COMNASC); + } + + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM,comnasc); + if (_comuni->read() == NOERR) + { + _dencomnscPE = _comuni->get(COM_DENCOM); + _provnscPE = _comuni->get(COM_PROVCOM); + } + _dencomnscPE.rtrim(); + _provnscPE.rtrim(); + } + else + { + _dencomnscPE = ""; + _provnscPE = ""; + } + _indPE.rtrim(); + _dencomPE.rtrim(); +} + +int TStampa_perc::stampa_dati_erog_perc() +{ + int riga, riga2; + TString sep(200); + + reset_header(); + + // Dati del soggetto erogante + if (_stampa_modulo) + { + riga = 7; + set_header (riga, "@12g%4d", _anno); + sep << "@#"; + sep.right_just(105); + set_header(riga,(const char*) sep); + riga += 4; // da 7 a 11 + set_header (riga, "@10g%s", (const char*) _ragsocER); + riga += 3; + set_header (riga++, "@10g%s %s", (const char*) _indER, (const char*) _civER); + set_header (riga, "@10g%5s", (const char*) _capER); + set_header (riga++, "@17g%s %s", (const char*) _dencomER, (const char*) _provER); + set_header (riga++, "@10gxxx"); + set_header (riga++, "@10g%-16s", (const char*) _cofiER); + } + else + { +// 7.12.95 Numeri di pagina qui! + riga = 1; + set_header (riga++, _numcarat == 1 ? "SOGGETTO EROGANTE @122gPag. @#" : "SOGGETTO EROGANTE @188gPag. @#"); + set_header (riga++, "Codice@15g%5d", _codditta); + set_header (riga++, "Denominazione@15g%s", (const char*) _ragsocER); + set_header (riga++, "Domicilio in@15g%s %s", (const char*) _indER, (const char*) _civER); + set_header (riga, "@15g%5s", (const char*) _capER); + set_header (riga++, "@21g%s %s", (const char*) _dencomER, (const char*) _provER); + set_header (riga++, "Codice fiscale@15g%-16s",(const char*) _cofiER); + if (_tipoaER == 'F') + set_header (riga++, "Luogo data di nascita@22g%s %s %10s", (const char*) _dencomnscER, (const char*) _provnscER, (const char*) _datanascER); + } + +// Dati del soggetto percipiente + if (_stampa_modulo) + { + set_header (11, "@65g%s", (const char*) _ragsocPE); + set_header (14, "@65g%s %s", (const char*) _indPE, (const char*) _civPE); + set_header (15, "@65g%5s", (const char*) _capPE); + set_header (15, "@72g%s %s", (const char*) _dencomPE, (const char*) _provPE); + set_header (17, "@65g%-16s",(const char*) _cofiPE); + set_header (23, ""); + } + else + { + if (_numcarat == 1) + { + riga2 = 1; + set_header (riga2++, "@66gSOGGETTO PERCIPIENTE"); + set_header (riga2++, "@66gCodice@81g%c %5d", _tipoa, _codanagPE); + set_header (riga2++, "@66gDenominazione@81g%s", (const char*) _ragsocPE); + set_header (riga2++, "@66gDomicilio in@81g%s %s", (const char*) _indPE, (const char*) _civPE); + set_header (riga2, "@81g%5s", (const char*) _capPE); + set_header (riga2++, "@87g%s %s", (const char*) _dencomPE, (const char*) _provPE); + set_header (riga2++, "@66gCodice fiscale@81g%-16s",(const char*) _cofiPE); + if (_tipoa == 'F') + set_header (riga2++, "@66gLuogo data di nascita@88g%s %s %s", (const char*) _dencomnscPE, (const char*) _provnscPE, (const char*) _datanascPE); + else + riga2++; + set_header (riga2++, "Conto individuale percipiente anno %4d", _anno); + TString app(132); + app.fill('_'); + set_header(riga2++, (const char*) app); + } + else + if (_numcarat == 2) + { + TString app(198); + app.fill('_'); + riga2=1; + set_header (riga2++, "@110gSOGGETTO PERCIPIENTE"); + set_header (riga2++, "@110gCodice@125g%c %5d", _tipoa, _codanagPE); + set_header (riga2++, "@110gDenominazione@125g%s", (const char*) _ragsocPE); + set_header (riga2++, "@110gDomicilio in@125g%s %s", (const char*) _indPE, (const char*) _civPE); + set_header (riga2 /*5*/, "@125g%5s", (const char*) _capPE); + set_header (riga2++ /*5*/, "@131g%s %s", (const char*) _dencomPE, (const char*) _provPE); + set_header (riga2++, "@110gCodice fiscale@125g%-16s",(const char*) _cofiPE); + if (_tipoa == 'F') + set_header (riga2++, "@110gLuogo data di nascita@132g%s %s %s", (const char*) _dencomnscPE, (const char*) _provnscPE, (const char*) _datanascPE); + else + riga2++; + set_header (riga2++, "Conto individuale percipiente anno %4d", _anno); + set_header (riga2++, (const char*) app); + set_header (riga2++, "@50gESTREMI DOCUMENTO @101gESTREMI PAGAMENTO @145gSomme e@157gD@165gESTREMI VERSAMENTO"); + set_header (riga2++, "Cod.@80gTotale@90gData@145gquote@155gT@157gC@168gSerie@174gNumero"); + set_header (riga2 /*13*/, "Caus.@8gDescrizione@24gData@33gNumero@43gImponibili@60gSpese@70gImposte@80gDocumento@90gPagamento@101gImponibili@115g%%@122gRitenute"); + set_header (riga2++ /*13*/, "@134gCompensi@145gnon sogg.@155gC@157gB@159gData@168gABI @174gCAB @183gImporto versato"); + set_header (riga2++, (const char*) app); + } + } +// ritorna la prima riga libera + return riga > riga2 ? riga : riga2; +} + +/* +// Crea l'intestazione per la stampa a 132 e a 198 caratteri +void TStampa_perc::intesta_fissa() +{ + set_background(); + if (_numcarat == 1) + set_background("W4l{1 10 132 10}"); + else if (_numcarat == 2) + set_background("W4l{1 10 198 10} W4l{1 13 198 13}"); +} +*/ + +bool TStampa_perc::user_create() +{ + TToken_string exp; + +// Parametri configurazione + _section = name(); + _section.cut(2); + _cnf = new TConfig(CONFIG_USER, _section); + _rel = new TRelation (LF_SCPERC); + _cur = new TCursor(_rel,"",2); + add_cursor(_cur); + + _nditte = new TLocalisamfile (LF_NDITTE); + _comuni = new TLocalisamfile (LF_COMUNI); + _anag = new TLocalisamfile (LF_ANAG); + _rpag = new TLocalisamfile (LF_RPAG); + _rver = new TLocalisamfile (LF_RVER); + _bil = new righe_pag; + _sort = new TSort(); + + _codditta = get_firm_770(); + + return TRUE; +} + +bool TStampa_perc::user_destroy() +{ + delete _rel; + delete _cur; + delete _nditte; + delete _anag; + delete _comuni; + delete _rpag; + delete _rver; + delete _bil; + delete _sort; + delete _cnf; + + return TRUE; +} + +int m72100(int argc, char* argv[]) +{ + TStampa_perc a(*argv[2]); + a.run(argc, argv, "Stampa schede percipienti"); + return 0; +} diff --git a/m770/772100.h b/m770/772100.h new file mode 100755 index 000000000..cb6fcdc06 --- /dev/null +++ b/m770/772100.h @@ -0,0 +1,15 @@ +// Campi maschera 772100a.uml + +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_TIPODA 103 +#define F_CODDA 104 +#define F_RAGDA 105 +#define F_TIPOA 106 +#define F_CODA 107 +#define F_RAGA 108 +#define F_CARATTERE 109 +#define F_RAGDITTA 110 +#define F_MODULO 111 + + diff --git a/m770/772100a.uml b/m770/772100a.uml new file mode 100755 index 000000000..f0ead1658 --- /dev/null +++ b/m770/772100a.uml @@ -0,0 +1,138 @@ +// 772100a.uml +// Stampa schede percipienti + +#include "772100.h" + +PAGE "Stampa schede percipienti" -1 -1 78 15 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_SCPERC->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +/* +NUMBER F_ANNO 4 +BEGIN + PROMPT 3 3 "Anno dichiarazione " +END +*/ + +STRING F_TIPODA 1 +BEGIN + PROMPT 3 4 "Da codice " + FLAGS "U" +END + +TEXT DLG_NULL +BEGIN + PROMPT 23 4 "/" +END + +NUMBER F_CODDA 5 +BEGIN + PROMPT 25 4 "" + HELP "Codice anagrafico del percipiente" + USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA) + JOIN LF_ANAG TO LF_PERC INTO TIPOA=TIPOA CODANAGR=CODANAGR + CHECKTYPE NORMAL + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPODA + INPUT CODANAGR F_CODDA + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPODA TIPOA + OUTPUT F_CODDA CODANAGR + OUTPUT F_RAGDA LF_ANAG->RAGSOC + WARNING "Percipiente inesistente" +END + +STRING F_RAGDA 50 +BEGIN + PROMPT 3 5 "Ragione sociale " + FLAGS "D" +END + +STRING F_TIPOA 1 +BEGIN + PROMPT 3 6 "A codice " + FLAGS "U" +END + +TEXT DLG_NULL +BEGIN + PROMPT 23 6 "/" +END + +NUMBER F_CODA 5 +BEGIN + PROMPT 25 6 "" + HELP "Codice anagrafico del percipiente" + USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA) + JOIN LF_ANAG TO LF_PERC INTO TIPOA=TIPOA CODANAGR=CODANAGR + CHECKTYPE NORMAL + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODA + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODA CODANAGR + OUTPUT F_RAGA LF_ANAG->RAGSOC + WARNING "Percipiente inesistente" +END + +STRING F_RAGA 50 +BEGIN + PROMPT 3 7 "Ragione sociale " + FLAGS "D" +END + +LIST F_CARATTERE 13 +BEGIN + PROMPT 3 9 "Tipo stampa " + ITEMS "1|132 caratteri" + ITEMS "2|198 caratteri" +END + +BOOLEAN F_MODULO +BEGIN + PROMPT 3 11 "Stampa su modulo " + HELP "Indicare se si desidera stampare su modulo" +END + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -1 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/772200.cpp b/m770/772200.cpp new file mode 100755 index 000000000..a89f153ae --- /dev/null +++ b/m770/772200.cpp @@ -0,0 +1,1001 @@ +// 772200.cpp - Stampa certificazioni +#include +#include +#include +#include +#include +#include +#include +#include +#include "scperc.h" +#include "rpag.h" +#include +#include +#include +#include +#include "perc.h" +#include +#include "772.h" +#include "772200.h" +#include "77lib.h" + +class TSt_certif : public TPrintapp +{ + char _liv; // Se stampa a livello di studio + int _anno_dic; // Anno dichiarazione nei paramentri utente o studio + + // Configurazione + TString16 _section; + TConfig* _cnf,* _cns; + + struct righe_pag + { + char ditta[6]; + char tipoa; + char codan[6]; + char perc[7]; + char codc[3]; + real corr; + real somme; + real quote; + real impo; + real rite; + real netto; + }; + righe_pag* _rig; + TRelation* _rel; + TCursor* _cur; + TProgind* _prog; + TSort* _sort; + const char* _buf; + TLocalisamfile* _nditte; + TLocalisamfile* _anag; + TLocalisamfile* _rpag; + TLocalisamfile* _scperc; + TLocalisamfile* _comuni; + TTable* _ca7; + TString80 _ragsocER, _indER, _civER, _capER, _dencomER, _provER, _cofiER; + TString80 _ragsocPE, _indPE, _civPE, _capPE, _dencomPE, _provPE, _cofiPE; + TString80 _dencomnscER, _provnscER, _dencomnscPE, _provnscPE; + TString80 _datanascER, _datanascPE, _luogo; + TString16 _key1p, _key2p, _perc_p; + TDate _data; + char _tipoa_p, _tipoa; + int _mese_da, _mese_a, _codc_p; + int _riga, _off_lung, _conta; + long _num_att, _codanagER, _codanagPE_p, _codanagPE; + real _tot_corr, _tot_somme, _tot_quote, _tot_impo, _tot_rite, _tot_netto; + real _t_corr, _t_somme, _t_quote, _t_impo, _t_rite, _t_netto; + real _corr, _quote, _impo, _rite, _netto, _somme; + bool _intesta, _stampa, _settato_totale, _fai_footer; + bool _st_modulo, _st_data; + +protected: + virtual void on_config_change(); + virtual bool user_create() ; + virtual bool user_destroy(); + virtual bool set_print(int m); + virtual bool preprocess_page (int,int); + virtual bool preprocess_print(int,int); + virtual print_action postprocess_page (int,int); + virtual void postclose_print(); + virtual void preprocess_header(); + virtual void preprocess_footer(); + + static bool mese_handler(TMask_field& f, KEY k); + static bool codditta_hnd(TMask_field& f, KEY k); + + bool init_print(); + +public: + TRectype& look_causali(); + TRectype& look_schperc(long,char,long,int); + void crea_sort(); + void init_sort(); + void leggi_sort(); + void stampa_su_modulo(); + void stampa_totale(int); + void salva_totale(); + int stampa_riga(int,int,const char*); + void dati_erogante(); + void dati_percipiente(); + void riempi_record(long,char,long,const real&,int,const real&,const real&,const real&,const real&,const real&,const real&); + + // D = stampa ditta, S = stampa a livello di studio + TSt_certif(char livello='D') : _intesta(TRUE), _liv(toupper(livello)) {} + virtual ~TSt_certif() {} +}; + +bool TSt_certif::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + + return TRUE; +} + +void TSt_certif::on_config_change() +{ + + TConfig conf(_liv == 'S' ? CONFIG_USER : CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, _section); + if (_liv == 'D') + { + TConfig confs(CONFIG_USER); + _st_data = confs.get_bool(ST_DATA, "77ps"); + } + else _st_data = conf.get_bool(ST_DATA, "77ps"); +} + +bool TSt_certif::mese_handler (TMask_field& f, KEY k) +{ + if (k == K_ENTER) + { + const int meseda = f.mask().get_int(F_DA); + const int mesea = atoi(f.get()); + if (meseda > mesea) + { + f.error_box("Il mese di inizio periodo non deve essere superiore al mese di fine periodo"); + return FALSE; + } + } + return TRUE; +} + +TRectype& TSt_certif::look_schperc (long cod, char t, long codan, int np) +{ + TLocalisamfile schede(LF_SCPERC); + schede.zero(); + schede.put(SPR_CODDITTA, cod); + schede.put(SPR_TIPOA, t); + schede.put(SPR_CODANAGR, codan); + schede.put(SPR_NPROG, np); + schede.read(); + if (schede.bad()) + schede.zero(); + + return schede.curr(); +} + +TRectype& TSt_certif::look_causali() +{ + TString16 dep; + + _ca7->zero(); + dep.format("%02d", _codc_p); + _ca7->put("CODTAB", dep); + _ca7->read(); + if (_ca7->bad()) + _ca7->zero(); + + return _ca7->curr(); +} + +void TSt_certif::init_sort() +{ + _rig = new righe_pag; + _sort = new TSort(sizeof(righe_pag)); + + _sort->addsortkey ((char*)&(_rig->ditta) - (char*)&(_rig->ditta),5); + _sort->addsortkey ((char*)&(_rig->tipoa) - (char*)&(_rig->ditta),1); + _sort->addsortkey ((char*)&(_rig->codan) - (char*)&(_rig->ditta),5); + _sort->addsortkey ((char*)&(_rig->perc) - (char*)&(_rig->ditta),6); + _sort->addsortkey ((char*)&(_rig->codc) - (char*)&(_rig->ditta),2); + _sort->init(); +} + +void TSt_certif::crea_sort() +{ + long ditta, dittac, codan, codanc; + char tipoa, tipoac; + int nprog, nprogc, codc, mese, anno; + real corrisp, somme, impo, rite, netto, quote, perc; + TDate datapag; + + dittac = codanc = 0l; + tipoac = '\0'; + nprogc = -1; + + init_sort(); + *_cur = 0l; + for (int i = 0; i < _cur->items(); i++, ++(*_cur)) + { + _prog->addstatus(1); + ditta = _cur->curr().get_long(PAG_CODDITTA); + tipoa = _cur->curr().get(PAG_TIPOA)[0]; + codan = _cur->curr().get_long(PAG_CODANAGR); + nprog = _cur->curr().get_int(PAG_NPROG); + datapag = _cur->curr().get(PAG_DATAPAG); + if (ditta == dittac && tipoa == tipoac && codan == codanc && nprog == nprogc) + continue; + TRectype dep = look_schperc(ditta, tipoa, codan, nprog); + mese = dep.get_int(SPR_MESEC); + anno = dep.get_int(SPR_ANNOC); + codc = dep.get_int(SPR_CODCAUS); + if ( anno != 0 ) //se c'e' l'anno c'e' di certo anche il mese (Omero) + { + if ( anno != _anno_dic || (mese < _mese_da || mese > _mese_a ) ) + { + dittac = ditta; + tipoac = tipoa; + codanc = codan; + nprogc = nprog; + continue; + } + } + else //anno non specificato + if ( datapag.year() != _anno_dic || (datapag.month() < _mese_da || mese > _mese_a) ) + { + //dittac = ditta; + //tipoac = tipoa; + //codanc = codan; + //nprogc = nprog; + continue; + } + perc = _cur->curr().get_real(PAG_PERC); + somme = _cur->curr().get_real(PAG_SPESA); + corrisp = _cur->curr().get_real(PAG_COMPENSO); + rite = _cur->curr().get_real(PAG_RITENUTA); + impo = _cur->curr().get_real(PAG_IMPONIBILE); + netto = _cur->curr().get_real(PAG_NETTO); + quote = corrisp-impo; + + riempi_record(ditta,tipoa,codan,perc,codc,corrisp,somme,quote,impo,rite,netto); + } +} + +void TSt_certif::riempi_record(long d,char t,long ca,const real& p,int c, + const real& co,const real& so, + const real& qu,const real& im,const real& ri,const real& ne) +{ + sprintf(_rig->ditta, "%5ld", d); + _rig->tipoa = t; + sprintf(_rig->codan, "%5ld", ca); + //sprintf(_rig->perc, "%2d", p); + TString16 pp(p.string("###,@@")); + sprintf(_rig->perc, "%s", (const char*)pp); + sprintf(_rig->codc, "%02d", c); + _rig->corr = co; + _rig->somme = so; + _rig->quote = qu; + _rig->impo = im; + _rig->rite = ri; + _rig->netto = ne; + + _sort->sort((const char*)_rig); +} + +int TSt_certif::stampa_riga(int i, int ct, const char* d) +{ + if (!_st_modulo) + { + TString16 app (_perc_p.left(3)); //stampo solo la parte intera + app.ltrim(); + set_row(i,"%02d %4d %-.25s @34g%r@50g%r@66g%r",_codc_p,ct,d,&_tot_corr,&_tot_somme,&_tot_quote); + set_row(i++,"@82g%r@98g%s@101g%r@117g%r",&_tot_impo,(const char*)app,&_tot_rite,&_tot_netto); + } + else + { + real non_sogg = _tot_corr - _tot_impo + _tot_somme; + real imp_netto = _tot_impo - _tot_rite; + TString16 app (_perc_p.left(3)); + app.ltrim(); + set_row(i++, "@3g%4d@11g%-.28s@43g%12.0r@57g%12.0r@71g%12.0r@85g%s@89g%12.0r@104g%12.0r", + ct,d,&_tot_corr,&non_sogg,&_tot_impo,(const char*)app,&_tot_rite,&imp_netto); + set_row(i, ""); + } + return i; +} + +void TSt_certif::stampa_totale(int i) +{ + TString dep(94); + dep.fill('-'); + set_row(i++, ""); + set_row(i++, "@38g%s", (const char*) dep); + set_row(i, "@15gTOTALE@34g%r@50g%r@66g%r@82g%r@101g%r@117g%r", + &_t_corr,&_t_somme,&_t_quote,&_t_impo,&_t_rite,&_t_netto); +} + +void TSt_certif::salva_totale() +{ + //salvo gli importi del record che sto leggendo + _tot_corr += _corr; + _tot_somme+= _somme; + _tot_quote+= _quote; + _tot_impo += _impo; + _tot_rite += _rite; + _tot_netto+= _netto; +} + +void TSt_certif::leggi_sort() +{ + int i = 1; + reset_print(); + + //il concetto e' che quando sto stampando un record sto gia' leggendo i dati del record successivo!!! + if ((_buf = _sort->retrieve()) != NULL) + { + TString16 key1, key2; + struct righe_pag* rp; + + rp = (struct righe_pag*)_buf; + long ditta = atol(rp->ditta); + _tipoa = rp->tipoa; + _codanagPE = atol(rp->codan); + + if (_key1p == "") + { + _tipoa_p = _tipoa; + _codanagPE_p = _codanagPE; + } + + TString16 perc = rp->perc; + int codc = atoi(rp->codc); + _corr = rp->corr; + _somme = rp->somme; + _quote = rp->quote; + _impo = rp->impo; + _rite = rp->rite; + _netto = rp->netto; + + key1.format("%c%5ld", _tipoa, _codanagPE); + key2.format("%s%02d", (const char*)perc, codc); + + if (key1 != _key1p && _key1p != "") //e' cambiato il percipiente + { + TRectype cau = look_causali(); + TString descr = cau.get("S0"); + int codtrib = cau.get_int("I0"); + + i = stampa_riga(i, codtrib, descr); + + //aggiornamento totale finale + _t_corr += _tot_corr; + _t_somme += _tot_somme; + _t_quote += _tot_quote; + _t_impo += _tot_impo; + _t_rite += _tot_rite; + _t_netto += _tot_netto; + + if (!_st_modulo) + { + stampa_totale(i); + _tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=ZERO; //sono i totali relativi ad ogni singola riga di stampa + _t_corr = _t_somme = _t_quote = _t_impo = _t_rite =_t_netto = ZERO; //sono i totali finali (relativi cioe' al percipiente) + } + + //salvo gli importi del record che sto leggendo + //salva_totale(); + + _settato_totale = TRUE; + } + else if (key2 != _key2p && _key2p != "") + { + TRectype cau = look_causali(); + TString descr = cau.get("S0"); + int codtrib = cau.get_int("I0"); + + stampa_riga(i, codtrib, descr); + + _t_corr += _tot_corr; + _t_somme += _tot_somme; + _t_quote += _tot_quote; + _t_impo += _tot_impo; + _t_rite += _tot_rite; + _t_netto += _tot_netto; + + _tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=ZERO; + + if (_st_modulo) + _conta += 1; + + //salvo gli importi del record che sto leggendo + //spostato in postprocess_page + //salva_totale(); + } + //else //non e' cambiato il percipiente e non sono cambiate ne' la causale ne' la percentuale + //salva_totale(); + + //spostato nella postprocess_page + /* + _tipoa_p = _tipoa; //serve alla preprocess_header + _codanagPE_p = _codanagPE; //idem + */ + _codc_p = codc; + _perc_p = perc; + _key1p = key1, + _key2p = key2; + _stampa = TRUE; + } + else if (_stampa) //sono finiti i record ma c'e' ancora un record da stampare + { + TRectype cau = look_causali(); + TString descr = cau.get("S0"); + int codtrib = cau.get_int("I0"); + + /* + _tipoa_p = _tipoa; + _codanagPE_p = _codanagPE; + */ + + stampa_riga(i, codtrib, descr); + + _t_corr += _tot_corr; + _t_somme += _tot_somme; + _t_quote += _tot_quote; + _t_impo += _tot_impo; + _t_rite += _tot_rite; + _t_netto += _tot_netto; + + if (!_st_modulo) + stampa_totale(i); + + _settato_totale = TRUE; + } +} + +void TSt_certif::preprocess_footer() +{ + if (_st_modulo) + { + //riga totale + real t_non_sogg = _t_corr - _t_impo + _t_somme; + real t_imp_netto = _t_impo - _t_rite; + + reset_footer(); + + int r = 1; + + TString tc, tns, ti, tr, tim; + tc = _t_corr.string(); + tns = t_non_sogg.string(); + ti = _t_impo.string(); + tr = _t_rite.string(); + tim = t_imp_netto.string(); + + _tot_corr=_tot_somme=_tot_quote=_tot_impo=_tot_rite=_tot_netto=ZERO; + + if (_settato_totale) + _t_corr = _t_somme = _t_quote = _t_impo = _t_rite =_t_netto = ZERO; + + if (_settato_totale) + set_footer(r++, "@43g%12s@57g%12s@71g%12s@89g%12s@104g%12s", (const char*)tc, + (const char*)tns,(const char*)ti,(const char*)tr,(const char*)tim); + else set_footer(r++, "@5gsegue..."); + + set_footer(r++, ""); + set_footer(r++, ""); + set_footer(r++, ""); + set_footer(r++, ""); + set_footer(r++, ""); + set_footer(r++, ""); + set_footer(r++, ""); + set_footer(r++, ""); + set_footer(r++, "@3g%s",(const char*) _ragsocER); + set_footer(r++, ""); + set_footer(r++, "@3g%s %s",(const char*) _indER, (const char*) _civER); + set_footer(r++, ""); + set_footer(r++, "@3g%s %s %s", (const char*) _capER, (const char*) _dencomER, + (const char*) _provER); + set_footer(r++, ""); + set_footer(r, "@3g%s", (const char*)_cofiER); + r+=2; + if (_st_data) + set_footer(++r, "@16g%s", (const char*)_data); + } + else if (_fai_footer) + { + reset_footer(); + + TString dep(71); + dep.fill('-'); + int r = 1; + + set_footer(r++, "LE CIFRE GLOBALI SU ESPOSTE CORRISPONDONO ALLE SINGOLE REGISTRAZIONI RISULTANTI NEL CONTO INDIVIDUALE DEL"); + set_footer(r++, "PERCIPIENTE LE CUI RITENUTE D'ACCONTO SONO STATE VERSATE NEI TERMINI DI LEGGE."); + set_footer(r++, ""); + set_footer(r++, "@1g%s", (const char*) dep); + set_footer(r++, "!@5gDATI IDENTIFICATIVI DEL SOGGETTO EROGANTE O SOSTITUTO D'IMPOSTA@72g!"); + set_footer(r , "!@1g%s@72g!", (const char*) dep); + set_footer(r++, "@85gIn fede."); + set_footer(r++, "!@15g%s@72g!",(const char*) _ragsocER); + set_footer(r++, "! Indirizzo:@15g%s %s@72g!",(const char*) _indER, (const char*) _civER); + set_footer(r++, "!@6g%s@15g%s %s@72g!",(const char*) _capER, (const char*) _dencomER, + (const char*) _provER); + set_footer(r, "! Cod.Fiscale: %s@72g!", (const char*) _cofiER); + set_footer(r++, "@74g----------------------------------------"); + set_footer(r, "@1g%s", (const char*) dep); + set_footer(r, "@90g(Firma)"); + + _fai_footer = FALSE; + } +} + +bool TSt_certif::preprocess_print(int file, int counter) +{ + _key1p = _key2p = ""; + _tot_corr = _tot_somme = _tot_quote = _tot_impo = _tot_rite = _tot_netto = ZERO; + _t_corr = _t_somme = _t_quote = _t_impo = _t_rite = _t_netto = ZERO; + _stampa = _settato_totale = _fai_footer = FALSE; + _conta = 0; + + return TRUE; +} + +bool TSt_certif::preprocess_page(int file, int counter) +{ + leggi_sort(); + return TRUE; +} + +print_action TSt_certif::postprocess_page(int file, int counter) +{ + //devo usare due flag diversi: _settato_totale mi dice se fare oppure no + //un formfeed cosi' da richiamare la preprocess_footer() anche se il totale viene stampato + //prima dell'area del footer. Se pero' sto stampando proprio il totale nell'area del footer + //viene richiamata la preprocess_footer() che a questo punto deve essere eseguita solo se e' vero il + //flag _fai_footer. Infatti se controllassi il flag _settato_totale esso sarebbe vero in questo caso + //e il risultato sarebbe quello di vedere stampato il footer e a pagina vuota il totale del percipiente + //e cio' non sarebbe corretto! + if (_settato_totale) + if (!_st_modulo) + { + _intesta = TRUE; + _fai_footer = TRUE; + _tipoa_p = _tipoa; //serve alla preprocess_header + _codanagPE_p = _codanagPE; //idem + printer().formfeed(); + _settato_totale = FALSE; + } + else + { + _tipoa_p = _tipoa; //serve alla preprocess_header + _codanagPE_p = _codanagPE; //idem + _conta = 0; + printer().formfeed(); + _settato_totale = FALSE; + } + + if (_st_modulo && _conta == 8) + { + _conta = 0; + printer().formfeed(); + } + + if (_buf == NULL) + return NEXT_PAGE; + + salva_totale(); + + return REPEAT_PAGE; +} + +void TSt_certif::postclose_print() +{ + delete _sort; +} + +bool TSt_certif::init_print() +{ + TMask msk ("772200a"); + KEY tasto; + TLocalisamfile& fl = _cur->file(LF_RPAG); + + msk.set_handler (F_A, mese_handler); + msk.set_handler (F_CODDITTA, codditta_hnd); + + //msk.set(F_ANNO, _anno_dic); + tasto = msk.run(); + + if (tasto == K_ENTER) + { + char tipoa_da = msk.get(F_TIPODA)[0]; + long cod_da = msk.get_long(F_CODDA); + char tipoa_a = msk.get(F_TIPOA)[0]; + long cod_a = msk.get_long(F_CODA); + long codditta = get_firm_770(); + + _num_att = msk.get_long(F_ATTESTA); + _mese_da = msk.get_int(F_DA); + _mese_a = msk.get_int(F_A); + _luogo = msk.get(F_LUOGO); + _data = msk.get(F_DATA); + _st_modulo = msk.get_bool(F_MODULO); + + _off_lung = msk.get_int(F_LUNG); + + TRectype da (fl.curr()); + TRectype a (fl.curr()); + + da.zero(); + a.zero(); + + da.put(PAG_CODDITTA, codditta); + da.put(PAG_TIPOA, tipoa_da); + da.put(PAG_CODANAGR, cod_da); + + a.put(PAG_CODDITTA, codditta); + a.put(PAG_TIPOA, tipoa_a); + a.put(PAG_CODANAGR, cod_a); + + _cur->setregion(da, a); + + _intesta = TRUE; + dati_erogante(); + if (!_st_modulo) + { + set_real_picture ("###.###.###.###"); + printer().footerlen(11); + for (int i=1; i<=11; i++) set_footer(i, "%s", " "); + } + else + { + /* + printer().footerlen(22); + for (int i=1; i<=22; i++) set_footer(i, "%s", " "); + */ + int area_footer = 31 - _off_lung; + printer().footerlen(area_footer); + for (int i=1; i<=area_footer; i++) set_footer(i, "%s", " "); + } + + set_print_zero(FALSE); + + _prog = new TProgind(_cur->items(),"Elaborazione in corso... prego attendere",FALSE); + + crea_sort(); + _sort->endsort(); + + delete _rig; + delete _prog; + + return TRUE; + } + else + return FALSE; +} + +bool TSt_certif::set_print(int) +{ + long codditta, codditta_prec; + int i = 0; + + if (_liv == 'S') + { + codditta_prec = get_firm_770(); + while ((codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L) + { + set_firm_770(codditta); + +// init_print ritorna TRUE solo se K_ENTER + if (init_print()) + print(); + else break; + } + set_firm_770(codditta_prec); +// Non richiamare di nuovo print()! + return FALSE; + } + else + return init_print(); +} + +void TSt_certif::stampa_su_modulo() +{ + dati_percipiente(); + //in origine _off_lung era fisso (=3) + //in origine _off_larg era fisso (=3) + /* + set_header(3, "@26g%s", (const char*)_ragsocPE); + set_header(4, "@8g%4d", _anno_dic); + */ + set_header(_off_lung, "@26g%s", (const char*)_ragsocPE); + set_header(_off_lung + 1, "@8g%4d", _anno_dic); + if (_tipoa_p == 'F') + { + set_header(_off_lung + 2, "@26g%-.50s %s %s",(const char*)_dencomnscPE, + (const char*)_provnscPE,(const char*)_datanascPE); + set_header(_off_lung + 6, "@26g%-.35s", (const char*)_dencomPE); + } + set_header(_off_lung + 6, "@8g%ld", _num_att++); + set_header(_off_lung + 4, "@26g%16s", (const char*)_cofiPE); + set_header(_off_lung + 8, "@26g%-.35s %s %5s %-.35s %s", (const char*)_indPE, + (const char*)_civPE,(const char*)_capPE,(const char*)_dencomPE,(const char*)_provPE); + /* + for (int i = 12; i <= 25; i++) + set_header(i, ""); + */ + int app = _off_lung + 6; + for (int i = app; i <= app + 12; i++) + set_header(i, ""); +} + +void TSt_certif::preprocess_header() +{ + int i = 1; + + reset_header(); + + if (_st_modulo) + { + stampa_su_modulo(); + return; + } + + if (_intesta) + { + TString dep(73); + dep.fill('-'); + dati_percipiente(); + set_header(i++, "@1g---------------------------------------------------"); + set_header(i++, "!@12gCERTIFICAZIONE DEI COMPENSI@52g!"); + set_header(i++, "!@9gASSOGGETTATI A RITENUTA D'ACCONTO@52g!"); + set_header(i++, "!@3g(Art. 7 bis D.P.R. 29 Settembre 1973, n.600)@52g!"); + set_header(i++, "@1g---------------------------------------------------"); + set_header(i++, ""); + set_header(i++, "@59g%s", (const char*) dep); + set_header(i++, "@58g!@84gSOGGETTO PERCIPIENTE@132g!"); + set_header(i++, "@58g!%s@132g!", (const char*) dep); + set_header(i, "@29gATTESTAZIONE RILASCIATA A:@58g!"); + if (_tipoa_p == 'F') + set_header(i, "@60gCognome e Nome:"); + else + set_header(i, "@60gDenominazione:"); + set_header(i++, " %s@132g!", (const char*)_ragsocPE ); + set_header(i++, "@58g!@60gDomicilio in %s %s@132g!", (const char*)_indPE,(const char*)_civPE); + set_header(i++, "@58g!@70g%5s %-.46s %s@132g!", (const char*)_capPE,(const char*)_dencomPE,(const char*)_provPE); + if (_tipoa_p == 'F') + { + set_header(i++, "@58g!@60gLuogo e data di nascita: %-.30s %s %s@132g!", (const char*)_dencomnscPE, + (const char*)_provnscPE,(const char*)_datanascPE); + set_header(i, "ANNO EROGAZIONE ATTESTAZIONE@58g!@132g!"); + set_header(i++, "@60gComune di iscrizione anagrafica: %-.35s", (const char*)_dencomPE); + } + else + { + set_header(i++, "@58g!@132g!"); + set_header(i++, "ANNO EROGAZIONE ATTESTAZIONE@58g!@132g!"); + } + set_header(i++, "@5g%d@25g%ld@58g!@60gCodice fiscale: %16s@132g!", _anno_dic,_num_att++,(const char*)_cofiPE); + set_header(i++, "@59g%s", (const char*) dep); + set_header(i++, ""); + set_header(i++, "@50g%s,li %d %s %d", (const char*)_luogo, _data.day(), itom(_data.month()), _data.year()); + set_header(i++, ""); + set_header(i++, "@7gPer gli adempimenti previsti dall'art.7 bis del D.P.R. 29 Settembre 1973,n. 600 e successive modifica-"); + set_header(i++, "zioni si attesta che nel corso del periodo dal 01/01/%d al 31/12/%d al percipiente evidenziato in riquadro", _anno_dic, _anno_dic); + set_header(i++, "sono stati corrisposti i seguenti compensi debitamente assoggettati a ritenuta d'acconto:"); + set_header(i++, ""); + _intesta = FALSE; + } + TString sep(132); + sep.fill('-'); + set_header(i++, (const char*)sep); + set_header(i++, "Codice@53gSomme@69gQuote"); + set_header(i++, "Cs Trib Descrizione@36gCorrispettivo@53gNon soggette@69gNon soggette@87gImponibili@98gAl@108gRitenute@123gNet.corr."); + set_header(i, (const char*)sep); +} + +void TSt_certif::dati_erogante() +{ + long codditta; + char tipoa; + TString com,comnasc; + TDate data; + + codditta = get_firm_770(); + + _nditte->setkey(1); + _nditte->curr().zero(); + _nditte->curr().put(NDT_CODDITTA, codditta); + if (_nditte->read() == NOERR) + { + tipoa = _nditte->get_char(NDT_TIPOA); + _codanagER = _nditte->get_long(NDT_CODANAGR); + } + _anag->setkey(1); + _anag->zero(); + _anag->put(ANA_TIPOA, tipoa); + _anag->put(ANA_CODANAGR, _codanagER); + if (_anag->read() == NOERR) + { + _ragsocER = _anag->get(ANA_RAGSOC); + _cofiER = _anag->get(ANA_COFI); + + if (tipoa == 'F') + { + TString80 nome = _ragsocER.mid(30); + _ragsocER.cut(30); + _ragsocER.trim(); nome.trim(); + _ragsocER << ' ' << nome; + } + + com = _anag->get(ANA_COMRF); + + if (com != "") + { + _indER = _anag->get(ANA_INDRF); + _civER = _anag->get(ANA_CIVRF); + _capER = _anag->get(ANA_CAPRF); + } + else + { + _indER = _anag->get(ANA_INDRES); + _civER = _anag->get(ANA_CIVRES); + _capER = _anag->get(ANA_CAPRES); + com = _anag->get(ANA_COMRES); + } + } + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM,com); + if (_comuni->read() == NOERR) + { + _dencomER = _comuni->get(COM_DENCOM); + _provER = _comuni->get(COM_PROVCOM); + } + + /* dati riguardanti il luogo e la data di nascita + if (tipoa == 'F') + { + TLocalisamfile anagfis(LF_ANAGFIS); + + anagfis.setkey(1); + anagfis.zero(); + anagfis.put(ANF_CODANAGR, _codanagER); + if (anagfis.read() == NOERR) + { + data = anagfis.get_date(ANF_DATANASC); + _datanascER = data.string(); + comnasc = anagfis.get (ANF_COMNASC); + } + + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM,comnasc); + if (_comuni->read() == NOERR) + { + _dencomnscER = _comuni->get(COM_DENCOM); + _provnscER = _comuni->get(COM_PROVCOM); + } + _dencomnscER.rtrim(); + _provnscER.rtrim(); + } + else + { + _dencomnscER = ""; + _provnscER = ""; + } + _indER.rtrim(); + _dencomER.rtrim(); + */ +} + +void TSt_certif::dati_percipiente() +{ + TString com; + TDate data; + TString comnasc; + + _anag->setkey(1); + _anag->zero(); + _anag->put(ANA_TIPOA, _tipoa_p); + _anag->put(ANA_CODANAGR, _codanagPE_p); + if (_anag->read() == NOERR) + { + _ragsocPE = _anag->get(ANA_RAGSOC); + _cofiPE = _anag->get(ANA_COFI); + if (_tipoa_p == 'F') + { + TString80 nome = _ragsocPE.mid(30); + _ragsocPE.cut(30); + _ragsocPE.trim(); nome.trim(); + _ragsocPE << ' ' << nome; + } + com = _anag->get(ANA_COMRF); + if (com != "") + { + _indPE = _anag->get(ANA_INDRF); + _civPE = _anag->get(ANA_CIVRF); + _capPE = _anag->get(ANA_CAPRF); + } + else + { + _indPE = _anag->get(ANA_INDRES); + _civPE = _anag->get(ANA_CIVRES); + _capPE = _anag->get(ANA_CAPRES); + com = _anag->get(ANA_COMRES); + } + } + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM,com); + if (_comuni->read() == NOERR) + { + _dencomPE = _comuni->get(COM_DENCOM); + _provPE = _comuni->get(COM_PROVCOM); + } + if (_tipoa_p == 'F') + { + TLocalisamfile anagfis(LF_ANAGFIS); + anagfis.setkey(1); + anagfis.zero(); + anagfis.put(ANF_CODANAGR, _codanagPE_p); + if (anagfis.read() == NOERR) + { + data = anagfis.get_date(ANF_DATANASC); + _datanascPE = data.string(); + comnasc = anagfis.get(ANF_COMNASC); + } + _comuni->setkey(1); + _comuni->zero(); + _comuni->put(COM_COM,comnasc); + if (_comuni->read() == NOERR) + { + _dencomnscPE = _comuni->get(COM_DENCOM); + _provnscPE = _comuni->get(COM_PROVCOM); + } + _dencomnscPE.rtrim(); + _provnscPE.rtrim(); + } + else + { + _dencomnscPE = ""; + _provnscPE = ""; + } + _indPE.rtrim(); + _dencomPE.rtrim(); +} + +bool TSt_certif::user_create() +{ + // Parametri configurazione + _section = name(); + _section.cut(2); + _cnf = new TConfig(CONFIG_USER, _section); + _cns = new TConfig(CONFIG_USER, "77ps"); + + _rel = new TRelation (LF_RPAG); + _cur = new TCursor(_rel,"",1); + + _nditte = new TLocalisamfile (LF_NDITTE); + _comuni = new TLocalisamfile (LF_COMUNI); + _anag = new TLocalisamfile (LF_ANAG); + _rpag = new TLocalisamfile (LF_RPAG); + _scperc = new TLocalisamfile (LF_SCPERC); + _ca7 = new TTable ("%CA7"); + _rig = new righe_pag; + + return TRUE; +} + +bool TSt_certif::user_destroy() +{ + delete _rel; + delete _cur; + delete _nditte; + delete _anag; + delete _comuni; + delete _rpag; + delete _scperc; + delete _ca7; + delete _rig; + delete _cnf; + delete _cns; + + return TRUE; +} + +int m72200(int argc, char* argv[]) +{ + TSt_certif a(*argv[2]); + a.run(argc, argv, "Stampa certificazioni"); + return 0; +} diff --git a/m770/772200.h b/m770/772200.h new file mode 100755 index 000000000..d4850ac71 --- /dev/null +++ b/m770/772200.h @@ -0,0 +1,16 @@ +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_DATA 103 +#define F_LUOGO 104 +#define F_ATTESTA 105 +#define F_DA 106 +#define F_A 107 +#define F_TIPODA 108 +#define F_CODDA 109 +#define F_RAGDA 110 +#define F_TIPOA 111 +#define F_CODA 112 +#define F_RAGA 113 +#define F_MODULO 114 +#define F_LUNG 115 +#define F_LARG 116 diff --git a/m770/772200a.uml b/m770/772200a.uml new file mode 100755 index 000000000..83b50b317 --- /dev/null +++ b/m770/772200a.uml @@ -0,0 +1,162 @@ +// 772200a.uml +// Stampa certificazioni + +#include "772200.h" + +PAGE "Stampa certificazioni" -1 -1 78 17 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + OUTPUT F_CODDITTA CODDITTA + OUTPUT F_RAGSOC RAGSOC +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +DATE F_DATA +BEGIN + PROMPT 3 3 "Data " + FLAGS "A" +END + +STRING F_LUOGO 36 +BEGIN + PROMPT 33 3 "Luogo " +END + +NUMBER F_ATTESTA 5 +BEGIN + PROMPT 3 4 "N.Attestazione " + FLAGS "R" +END + +LISTBOX F_DA 10 +BEGIN + PROMPT 3 6 "Periodo: Da " + FLAGS "M" +END + +LISTBOX F_A 10 +BEGIN + PROMPT 37 6 "A " + FLAGS "M" + STR_EXPR (#THIS_FIELD >= #F_DA) //Non funziona!!! + WARNING "Limite superiore errato" +END + +STRING F_TIPODA 1 +BEGIN + PROMPT 3 8 "Da codice " + FLAGS "U" +END + +TEXT DLG_NULL +BEGIN + PROMPT 22 8 "/" +END + +NUMBER F_CODDA 5 +BEGIN + PROMPT 24 8 "" + HELP "Codice anagrafico del percipiente da cui iniziare la stampa" + USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA) + JOIN LF_ANAG TO LF_PERC INTO TIPOA=TIPOA CODANAGR=CODANAGR + CHECKTYPE NORMAL + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPODA + INPUT CODANAGR F_CODDA + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPODA TIPOA + OUTPUT F_CODDA CODANAGR + OUTPUT F_RAGDA LF_ANAG->RAGSOC + WARNING "Percipiente inesistente" +END + +STRING F_RAGDA 50 +BEGIN + PROMPT 3 9 "Ragione sociale " + FLAGS "D" +END + +STRING F_TIPOA 1 +BEGIN + PROMPT 3 10 "A codice " + FLAGS "U" +END + +TEXT DLG_NULL +BEGIN + PROMPT 22 10 "/" +END + +NUMBER F_CODA 5 +BEGIN + PROMPT 24 10 "" + HELP "Codice anagrafico del percipiente" + USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA) + JOIN LF_ANAG TO LF_PERC INTO TIPOA=TIPOA CODANAGR=CODANAGR + CHECKTYPE NORMAL + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODA + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODA CODANAGR + OUTPUT F_RAGA LF_ANAG->RAGSOC + WARNING "Percipiente inesistente" +// NUM_EXPR {(#F_CODA==0)||(#F_CODA>=#F_CODDA)} +// WARNING "Limite superiore errato" +END + +STRING F_RAGA 50 +BEGIN + PROMPT 3 11 "Ragione sociale " + FLAGS "D" +END + +BOOLEAN F_MODULO +BEGIN + PROMPT 3 13 "Stampa su modulo " + HELP "Indicare se si desidera stampare su modulo" + MESSAGE TRUE SHOW,F_LUNG|"8",F_LUNG + MESSAGE FALSE HIDE,F_LUNG +END + +NUMBER F_LUNG 1 +BEGIN + PROMPT 28 13 "Margine di lunghezza " + +END + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -1 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/772300.cpp b/m770/772300.cpp new file mode 100755 index 000000000..797e646fd --- /dev/null +++ b/m770/772300.cpp @@ -0,0 +1,600 @@ +// 772300.cpp - Lista movimenti percipienti +// +// 16. 1.96 Stampa solo le schede che hanno almeno un pagamento con data +// compresa negli estremi richiesti +// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "scperc.h" +#include "rpag.h" +#include "rver.h" +#include +#include +#include +#include +#include "perc.h" +#include +#include + +#include "772.h" +#include "772300.h" +#include "77lib.h" + +HIDDEN TString256 __tmp; +HIDDEN bool filter_func (const TRelation *); + +class TStampa_mov : public TPrintapp +{ + char _liv; // Se stampa a livello di studio + int _anno_dic; // Anno dichiarazione nei paramentri utente o studio + int _row; // Riga corrente di stampa + TString16 _section; + TConfig* _cnf; + TVersamento_stampa _stvers; + TRelation* _rel; + TCursor* _cur; + TLocalisamfile* _nditte; + TLocalisamfile* _anag; + TLocalisamfile* _rpag; + TLocalisamfile* _rver; + TArray _pagver; + TPercipiente _curr_perc, _prec_perc; + TString _ragsocER,_ragsocPE,_datadoc,_numdoc,_datastampa; + int _anno, _codcaus, _codtrib, _ind, _nprog; + long _codditta,_codanagER,_codanagPE,_cod_da,_cod_a; + char _tipoa,_tipoa_da,_tipoa_a; + real _tot_imponpag,_tot_ritenpag,_tot_impvers; + real _g_tot_imp, _g_tot_ver, _g_tot_rit; + TDate _datada,_dataa; +protected: + friend bool filter_func (const TRelation *); + virtual void on_config_change(); + virtual bool user_create() ; + virtual bool user_destroy(); + virtual bool set_print(int m); + virtual bool preprocess_page (int,int); + virtual bool preprocess_print(int,int); + virtual print_action postprocess_page (int,int); + bool init_print(); + void set_total_perc(); + void set_global_total(); + void add(TVersamento& vers); + bool find(TVersamento& vers); +public: + void dati_erogante(); +// void intesta_fissa(); + void stampa_dati_erog_perc(); + void ragione_sociale(); + int ricerca_causale(); + void setta_righe_documento(); + void setta_righe_pagamenti(const TString&,const real&,const TString&,const real&,int); + void setta_righe_versamenti(char,char,const TString&,const TString&,const TString&,const real&,int); + static bool codditta_hnd(TMask_field& f, KEY k); +// D = stampa ditta, S = stampa a livello di studio + TStampa_mov(char livello='D') : _liv(toupper(livello)) {} + virtual ~TStampa_mov() {} +}; + +HIDDEN TStampa_mov& app() { return (TStampa_mov&) main_app(); } + +bool filter_func (const TRelation * rel) +{ + const int anno_corr = app()._anno; + TRectype sch_curr(rel->lfile().curr()); + TSchedaP scheda(sch_curr); + return esiste_pag_in_anno(scheda, anno_corr); +} + +bool TStampa_mov::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; codditta << app()._codditta; + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + return TRUE; +} + +void TStampa_mov::on_config_change() +{ + TConfig conf(_liv == 'S' ? CONFIG_USER : CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, _section); +} + +HIDDEN int compare_rows(const TObject** o1, const TObject** o2) +{ + TToken_string* r1 = (TToken_string*)*o1; + TToken_string* r2 = (TToken_string*)*o2; + + long np1 = atol(r1->get(0)); + long nv1 = atol(r1->get(1)); + long np2 = atol(r2->get(0)); + long nv2 = atol(r2->get(1)); + + if (nv1 == nv2 && np1 == np2) + return 0; + + if (nv1 > nv2) + return 1; + + if (nv1 < nv2) + return -1; + + if (nv1 == nv2) + if (np1 > np2) + return 1; + else + return -1; + + return 0; +} + +int TStampa_mov::ricerca_causale() +{ + TTable ca7 ("%CA7"); + TString16 dep; + int cod = 0; + + ca7.zero(); + dep.format("%02d", _codcaus); + ca7.put("CODTAB", dep); + if (ca7.read() == NOERR) + cod = ca7.get_int("I0"); + + return cod; +} + +bool TStampa_mov::preprocess_print(int file, int counter) +{ + if (file == LF_SCPERC) + { + _tot_imponpag = ZERO; + _tot_ritenpag = ZERO; + _tot_impvers = ZERO; + } + return TRUE; +} + +void TStampa_mov::ragione_sociale() +{ + _ragsocPE = ""; + _anag->setkey(1); + _anag->zero(); + _anag->put(ANA_TIPOA, _tipoa); + _anag->put(ANA_CODANAGR, _codanagPE); + if (_anag->read() == NOERR) + { + _ragsocPE = _anag->get(ANA_RAGSOC); + _ragsocPE.trim(); + if (_tipoa == 'F') + { + TString80 nome = _ragsocPE.mid(30); + _ragsocPE.cut(30); + _ragsocPE.trim(); nome.trim(); + _ragsocPE << ' ' << nome; + } + } + set_row (_row, "%c %5ld %-50s", _tipoa, _codanagPE, (const char*) _ragsocPE); +} + +void TStampa_mov::setta_righe_documento() +{ + set_row (_row, "%-4d", _nprog); /* Prima era 2 */ + if (_codcaus != 0) + set_row (_row, "@5g%02d", _codcaus); + if (_codtrib != 0) + set_row (_row, "@8g%4d", _codtrib); + + set_row (_row, "@13g%10s", (const char*) _datadoc); + set_row (_row, "@24g%-7s", (const char*) _numdoc); +} + +void TStampa_mov::setta_righe_pagamenti(const TString& datapag,const real& imponpag, + const TString& percent,const real& ritenpag,int i) +{ + set_row (i, "@32g%10s", (const char*) datapag); + set_row (i, "@43g%15.0r", &imponpag); + set_row (i, "@59g%s", (const char*) percent); + set_row (i, "@65g%12r", &ritenpag); +} + +void TStampa_mov::setta_righe_versamenti(char luovers,char tipovers,const TString& dataver, + const TString& serie,const TString& numero,const real& impvers,int j) +{ + if (impvers != ZERO) + { + set_row (j, "@79g%c", luovers); + set_row (j, "@82g%c", tipovers); + set_row (j, "@84g%10s", (const char*) dataver); + set_row (j, "@97g%s", (const char*) serie); + set_row (j, "@103g%s", (const char*) numero); + set_row (j, "@116g%15.0r", &impvers); + } +} + +void TStampa_mov::set_total_perc() +{ + set_row (_row, "@20gTOTALE PERCIPIENTE@43g%15.0r", &_tot_imponpag); + set_row (_row, "@62g%15.0r", &_tot_ritenpag); + set_row (_row, "@116g%15.0r", &_tot_impvers); + set_row (_row+1, ""); + + _g_tot_imp += _tot_imponpag; + _g_tot_rit += _tot_ritenpag; + _g_tot_ver += _tot_impvers; + + _tot_imponpag = _tot_ritenpag = _tot_impvers = ZERO; +} + +void TStampa_mov::set_global_total() +{ + set_row (_row, "@20gTOTALE GENERALE @43g%15.0r", &_g_tot_imp); + set_row (_row, "@62g%15.0r", &_g_tot_rit); + set_row (_row, "@116g%15.0r", &_g_tot_ver); + set_row (_row+1, ""); +} + +void TStampa_mov::add(TVersamento& vers) +{ + _stvers.add(vers); +} + +bool TStampa_mov::find(TVersamento& vers) +{ + return _stvers.find(vers); +} + +bool TStampa_mov::preprocess_page(int file, int counter) +{ + TString datapag,dataver,serie,numero; + TDate datadoc,datav; + real imponpag,ritenpag,impvers,dep,dep2; + char luovers,tipovers; + real percent; + int i,j, numvers; + + i = j = _row = 1; + + if (counter) + return TRUE; + + if (file == LF_SCPERC) + { + reset_print(); + TRectype sch_curr(current_cursor()->curr(LF_SCPERC)); + _tipoa = current_cursor()->curr(LF_SCPERC).get (SPR_TIPOA)[0]; + _codanagPE = current_cursor()->curr(LF_SCPERC).get_long(SPR_CODANAGR); + _nprog = current_cursor()->curr(LF_SCPERC).get_int(SPR_NPROG); + _codcaus = current_cursor()->curr(LF_SCPERC).get_int (SPR_CODCAUS); + _codtrib = ricerca_causale(); + datadoc = current_cursor()->curr(LF_SCPERC).get_date(SPR_DATADOC); + _datadoc = datadoc.string(); + _numdoc = current_cursor()->curr(LF_SCPERC).get (SPR_NUMDOC); + + const int anno_doc = datadoc.year(); + TSchedaP scheda(sch_curr); + bool esiste_pag_anno_in_periodo = esiste_pag_in_periodo(scheda, _datada, _dataa); + bool stampa_scheda = (anno_doc == _anno_dic) || esiste_pag_anno_in_periodo; + if (!stampa_scheda) + return TRUE; + + _curr_perc.set(_tipoa, _codanagPE); + if (_curr_perc != _prec_perc) + { + if (_prec_perc.not_empty()) + { + set_total_perc(); + _row = 3; + } + _prec_perc = _curr_perc; + ragione_sociale(); + _row++; + } + + setta_righe_documento(); + + i = j = _row; + TVersamento_stampa ve; + int nriga = 0; + TRectype recpag(_rpag->curr()); + recpag.zero(); + recpag.put(SPR_CODDITTA, _codditta); + recpag.put(SPR_TIPOA, _tipoa); + recpag.put(SPR_CODANAGR, _codanagPE); + recpag.put(SPR_NPROG, _nprog); + _rpag->setkey(1); + _rpag->zero(); + _rpag->curr() = recpag; + + for (_rpag->read(_isgteq); _rpag->good(); _rpag->next()) + { + if (_rpag->curr() > recpag) break; + TDate datap(_rpag->get_date(PAG_DATAPAG)); + if (datap < _datada || datap > _dataa) continue; + + datapag = datap.string(); + imponpag = _rpag->get_real(PAG_IMPONIBILE); + percent = _rpag->get_real(PAG_PERC); + TString16 st_perc(percent.string("###,@@")); + ritenpag = _rpag->get_real(PAG_RITENUTA); + numvers = _rpag->get_int(PAG_NUMVERS); + nriga = _rpag->get_int(PAG_NRIGA); + _tot_imponpag += imponpag; + _tot_ritenpag += ritenpag; + + setta_righe_pagamenti(datapag,imponpag,st_perc,ritenpag,i++); + + if (numvers < 0) continue; + +// Stampa estremi versamento + real vers_stampa = ZERO; + TLocalisamfile rver (LF_RVER); + rver.zero(); + rver.put(VER_CODDITTA, _codditta); + rver.put(VER_TIPOA, _tipoa); + rver.put(VER_CODANAGR, _codanagPE); + rver.put(VER_NPROG, _nprog); + rver.put(VER_NRIGA, numvers); + + if (rver.read() == NOERR) + { + luovers = rver.get(VER_LUOVERS)[0]; + tipovers = rver.get(VER_TIPOVERS)[0]; + datav = rver.get_date(VER_DATAVERS); + dataver = datav.string(); + serie = rver.get(VER_SERIE); + numero = rver.get(VER_NUMERO); + impvers = rver.get_real(VER_IMPVERS); + ve.set(_codditta,_tipoa,_codanagPE,_nprog, numvers, impvers); + + const bool gia_visto = find(ve); + + if (gia_visto) + impvers = ve.importo_versato_residuo(); + else + { + _tot_impvers += impvers; + add(ve); + } + +// NB - in vers_stampa() viene fatta anche la add + vers_stampa = ve.vers_stampa(_rpag, numvers, impvers, ritenpag); +// if (vers_stampa != ZERO) + setta_righe_versamenti(luovers,tipovers,dataver,serie,numero,vers_stampa,j++); + } + } + } + return TRUE; +} + +print_action TStampa_mov::postprocess_page(int file, int counter) +{ + if (counter) + { + //printer().formfeed(); + reset_print(); // per evitare che stampi di nuovo il totale prec. + return NEXT_PAGE; + } + + if (file == LF_SCPERC) + { + if (_cur->pos() >= _cur->items()-1) // Se son sull'ultimo + { + reset_print(); + _row = 1; + set_total_perc(); + _row++; + set_global_total(); + return REPEAT_PAGE; + } + } + return NEXT_PAGE; +} + +bool TStampa_mov::set_print(int) +{ + long codditta_prec; + int i = 0; + + if (_liv == 'S') + { + codditta_prec = get_firm_770(); + while ((_codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L) + { + set_firm_770(_codditta); + +// init_print ritorna TRUE solo se K_ENTER + if (init_print()) + print(); + else break; + } + set_firm_770(codditta_prec); +// Non richiamare di nuovo print()! + return FALSE; + } + else + return init_print(); +} + +bool TStampa_mov::init_print() +{ + TMask msk ("772300a"); + KEY tasto; + TLocalisamfile* fl; + + msk.set_handler (F_CODDITTA, codditta_hnd); + + printer().footerlen(3); + + _g_tot_imp = _g_tot_rit = _g_tot_ver = ZERO; + + tasto = msk.run(); + + if (tasto == K_ENTER) + { + _tipoa_da = msk.get (F_TIPODA)[0]; + _cod_da = msk.get_long(F_CODDA); + _tipoa_a = msk.get (F_TIPOA)[0]; + _cod_a = msk.get_long(F_CODA); + + TDate datada (msk.get(F_DATADA)); + TDate dataa (msk.get(F_DATAA)); + + TString data1 = datada.string(); + TString data2 = dataa.string(); + + _datada = data1 == "" ? botime : datada; + _dataa = data2 == "" ? eotime : dataa; + + TDate data (msk.get(F_DATASTAMPA)); + _datastampa = data.string(); + + reset_files(); //resetta l'albero di stampa + add_file(LF_SCPERC); + + fl = &(current_cursor()->file(LF_SCPERC)); + TRectype da (fl->curr()); + TRectype a (fl->curr()); + + da.zero(); + a.zero(); + + da.put(SPR_CODDITTA, _codditta); + da.put(SPR_TIPOA, _tipoa_da); + da.put(SPR_CODANAGR, _cod_da); + + a.put(SPR_CODDITTA, _codditta); + a.put(SPR_TIPOA, _tipoa_a); + a.put(SPR_CODANAGR, _cod_a); + + current_cursor()->setregion(da, a); + +// viene ordinato per numero pagamento e numero versamento +// _pagver.sort(compare_rows); + dati_erogante(); + stampa_dati_erog_perc(); + //intesta_fissa(); + return TRUE; + } + else + return FALSE; +} + +void TStampa_mov::dati_erogante() +{ + char tipoa; + bool ditta_ok = FALSE; + + _ragsocER = ""; + _codanagER = 0L; + + _nditte->setkey(1); + _nditte->curr().zero(); + _nditte->curr().put(NDT_CODDITTA, _codditta); + ditta_ok = _nditte->read() == NOERR; + if (ditta_ok) + { + tipoa = _nditte->get_char(NDT_TIPOA); + _codanagER = _nditte->get_long(NDT_CODANAGR); + } + + if (ditta_ok) + { + _anag->setkey(1); + _anag->zero(); + _anag->put(ANA_TIPOA, tipoa); + _anag->put(ANA_CODANAGR, _codanagER); + if (_anag->read() == NOERR) + { + _ragsocER = _anag->get(ANA_RAGSOC); + if (tipoa == 'F') + { + TString80 nome = _ragsocER.mid(30); + _ragsocER.cut(30); + _ragsocER.trim(); nome.trim(); + _ragsocER << ' ' << nome; + } + } + } +} + +void TStampa_mov::stampa_dati_erog_perc() +{ + TString sep; + TString app(132); + reset_header(); + +// 7.12.95 Numero di pagina qui! + set_header (1, "ELENCO MOVIMENTI PER PERCIPIENTE @121gPag. @#"); + set_header (3, "SOGGETTO EROGANTE"); + set_header (3, "@19g%5d", _codditta); // 20.11.95 codditta e NON codanag + set_header (3, "@25g%s", (const char*) _ragsocER); + set_header (3, "@80gData@85g%10s", (const char*) _datastampa); + sep << "@#"; + sep.right_just(125); + set_header(3,(const char*) sep); + app.fill('_'); + set_header (5, (const char*) app); + set_header (6, "Num.@5gCod.@13gDocumento@32gData@78gEstremi versamento@97gSerie@103gNumero"); + set_header (7, "Reg.@5gCaus.@13gData@24gNumero@48gImponibili@62g%%@69gRitenute@78gLV@81gTV@84gData@97gABI@103gCAB@116gImporto versato"); + set_header (8, (const char*) app); +} + +/* +// Crea l'intestazione per la stampa a 132 e a 198 caratteri +void TStampa_mov::intesta_fissa() +{ + set_background(); + set_background("W4l{1 5 198 5} W4l{1 8 198 8}"); +} +*/ + +bool TStampa_mov::user_create() +{ + // Parametri configurazione + _section = name(); + _section.cut(2); + _cnf = new TConfig(CONFIG_USER, _section); + _rel = new TRelation (LF_SCPERC); + _cur = new TCursor(_rel,"",2); +// _cur->set_filterfunction (filter_func); + add_cursor(_cur); + + _nditte = new TLocalisamfile (LF_NDITTE); + _anag = new TLocalisamfile (LF_ANAG); + _rpag = new TLocalisamfile (LF_RPAG); + _rver = new TLocalisamfile (LF_RVER); + _codditta = get_firm_770(); + + return TRUE; +} + +bool TStampa_mov::user_destroy() +{ + delete _rel; + delete _cur; + delete _nditte; + delete _anag; + delete _rpag; + delete _rver; + delete _cnf; + return TRUE; +} + +int m72300(int argc, char* argv[]) +{ + TStampa_mov a(*argv[2]); + a.run(argc, argv, "Stampa movimenti per percipienti"); + return 0; +} diff --git a/m770/772300.h b/m770/772300.h new file mode 100755 index 000000000..d8336b1e9 --- /dev/null +++ b/m770/772300.h @@ -0,0 +1,13 @@ +// Campi maschera persone fisiche 771100a.uml + +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_TIPODA 103 +#define F_CODDA 104 +#define F_RAGDA 105 +#define F_TIPOA 106 +#define F_CODA 107 +#define F_RAGA 108 +#define F_DATADA 109 +#define F_DATAA 110 +#define F_DATASTAMPA 111 \ No newline at end of file diff --git a/m770/772300a.uml b/m770/772300a.uml new file mode 100755 index 000000000..f22542fab --- /dev/null +++ b/m770/772300a.uml @@ -0,0 +1,131 @@ +// 772300a.uml +// Stampa movimenti per percipiente + +#include "772300.h" + +PAGE "Stampa movimenti per percipiente" -1 -1 78 16 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + OUTPUT F_CODDITTA CODDITTA + OUTPUT F_RAGSOC RAGSOC +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +DATE F_DATASTAMPA +BEGIN + PROMPT 3 4 "Data di stampa " + FLAGS "A" +END + +DATE F_DATADA +BEGIN + PROMPT 3 6 "Dalla data " +END + +DATE F_DATAA +BEGIN + PROMPT 43 6 "Alla data " +END + +STRING F_TIPODA 1 +BEGIN + PROMPT 3 8 "Da codice " + FLAGS "U" +END + +TEXT DLG_NULL +BEGIN + PROMPT 22 8 "/" +END + +NUMBER F_CODDA 5 +BEGIN + PROMPT 24 8 "" + HELP "Codice anagrafico del percipiente" + USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA) + JOIN LF_ANAG TO LF_PERC INTO TIPOA=TIPOA CODANAGR=CODANAGR + CHECKTYPE NORMAL + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPODA + INPUT CODANAGR F_CODDA + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPODA TIPOA + OUTPUT F_CODDA CODANAGR + OUTPUT F_RAGDA LF_ANAG->RAGSOC + WARNING "Percipiente inesistente" +END + +STRING F_RAGDA 50 +BEGIN + PROMPT 3 9 "Ragione sociale " + FLAGS "D" +END + +STRING F_TIPOA 1 +BEGIN + PROMPT 3 11 "A codice " + FLAGS "U" +END + +TEXT DLG_NULL +BEGIN + PROMPT 22 11 "/" +END + +NUMBER F_CODA 5 +BEGIN + PROMPT 24 11 "" + HELP "Codice anagrafico del percipiente" + USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA) + JOIN LF_ANAG TO LF_PERC INTO TIPOA=TIPOA CODANAGR=CODANAGR + CHECKTYPE NORMAL + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODA + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + DISPLAY "Ragione Sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODA CODANAGR + OUTPUT F_RAGA LF_ANAG->RAGSOC + WARNING "Percipiente inesistente" +END + +STRING F_RAGA 50 +BEGIN + PROMPT 3 12 "Ragione sociale " + FLAGS "D" +END + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -1 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/772400.cpp b/m770/772400.cpp new file mode 100755 index 000000000..cbbdc97d8 --- /dev/null +++ b/m770/772400.cpp @@ -0,0 +1,503 @@ +// 772400.cpp - Calcolo e Stampa versamenti ritenute +#include +#include +#include +#include +#include +#include +#include +#include +#include "scperc.h" +#include "rpag.h" +#include "rver.h" +#include +#include +#include "perc.h" +#include +#include "772.h" +#include "772400.h" +#include "77lib.h" + +static TString256 tmp; + +static bool filter_func (const TRelation*); + +class TSt_vers : public TPrintapp + { + friend bool filter_func (const TRelation *); + + struct righe_vers + { + char anno[5]; + char mese[3]; + char codtrib[5]; + char tipoa; + char codan[6]; + char descr[51]; + int nprog; + TDate datadoc; + char numdoc[8]; + real rite; + }; + righe_vers* _rig; + TRelation* _rel; + TCursor* _cur; + TProgind* _prog; + TSort* _sort; + const char* _buf; + TLocalisamfile* _nditte; + TLocalisamfile* _anag; + TLocalisamfile* _rpag; + TLocalisamfile* _rver; + TLocalisamfile* _scperc; + TTable* _ca7; + int _annop, _mesep, _codtribp; + TDate _datamsk; + char _tipoap; + long _codditta, _codanagp; + real _tot_cod, _tot_mese; + bool _primo; + +protected: + virtual bool user_create() ; + virtual bool user_destroy(); + virtual bool set_print(int m); + virtual bool preprocess_page (int,int); + virtual bool preprocess_print(int,int); + virtual print_action postprocess_page (int,int); + virtual void postclose_print(); + +public: + TRectype& look_causali(int); + TRectype& look_schperc(long,char,long,int); + TDate look_vers(TSchedaP& sch, long numvers); + void crea_sort(); + void init_sort(); + void leggi_sort(); + void setta_intestazione(); + const char* desc_percipiente(char,long); + void riempi_record(int,int,int,char,long,const char*,int,const TDate&, const char*,const real&); + + static bool codditta_hnd(TMask_field& f, KEY k); + + TSt_vers() {} + virtual ~TSt_vers() {} +}; + +HIDDEN inline TSt_vers& app() { return (TSt_vers&)main_app(); } + +bool TSt_vers::codditta_hnd(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; codditta << app()._codditta; + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + + return TRUE; +} + +bool filter_func (const TRelation* rel) +{ + long codditta = rel->lfile(LF_RPAG).get_long(PAG_CODDITTA); + + //const TRectype& rec = rel->lfile(LF_RVER).curr(); + + if (codditta != app()._codditta) + return FALSE; + + TDate datapag = rel->lfile(LF_RPAG).get(PAG_DATAPAG); + + if (datapag.ok() && datapag <= app()._datamsk) + { + long numvers = rel->lfile(LF_RPAG).get_long(PAG_NUMVERS); + if (numvers <= 0) + return TRUE; + const long codanagr = rel->lfile(LF_RPAG).get_long(PAG_CODANAGR); + const char tipoa = rel->lfile(LF_RPAG).get_char(PAG_TIPOA); + const int nprog = rel->lfile(LF_RPAG).get_int(PAG_NPROG); + TSchedaP sch(codditta, tipoa, codanagr, nprog); + //TDate datavers = rel->lfile(LF_RVER).get(VER_DATAVERS); + TDate datavers = app().look_vers(sch, numvers); + if (!datavers.ok()) + return TRUE; + } + return FALSE; +} + +TDate TSt_vers::look_vers(TSchedaP& scheda, long num) +{ + TLocalisamfile vers(LF_RVER); + vers.zero(); + vers.put(VER_CODDITTA, scheda.codditta()); + vers.put(VER_TIPOA, scheda.tipoa()); + vers.put(VER_CODANAGR, scheda.codanagr()); + vers.put(VER_NPROG, scheda.nprog()); + vers.put(VER_NRIGA, num); + vers.read(); + if (vers.bad()) + vers.zero(); + + return vers.get_date(VER_DATAVERS); +} + +TRectype& TSt_vers::look_schperc (long cod, char t, long codan, int np) +{ + TLocalisamfile schede(LF_SCPERC); + schede.zero(); + schede.put(SPR_CODDITTA, cod); + schede.put(SPR_TIPOA, t); + schede.put(SPR_CODANAGR, codan); + schede.put(SPR_NPROG, np); + schede.read(); + if (schede.bad()) + schede.zero(); + + return schede.curr(); +} + +TRectype& TSt_vers::look_causali(int cod) +{ + TString16 dep; + + _ca7->zero(); + dep.format("%02d", cod); + _ca7->put("CODTAB", dep); + _ca7->read(); + if (_ca7->bad()) + _ca7->zero(); + + return _ca7->curr(); +} + +void TSt_vers::init_sort() +{ + _rig = new righe_vers; + _sort = new TSort(sizeof(righe_vers)); + + _sort -> addsortkey((char*)&(_rig->anno) - (char*)&(_rig->anno),4); + _sort -> addsortkey((char*)&(_rig->mese) - (char*)&(_rig->anno),2); + _sort -> addsortkey((char*)&(_rig->codtrib) - (char*)&(_rig->anno),4); + _sort->addsortkey ((char*)&(_rig->tipoa) - (char*)&(_rig->anno),1); + _sort->addsortkey ((char*)&(_rig->codan) - (char*)&(_rig->anno),5); + _sort->init(); +} + +void TSt_vers::crea_sort() +{ + long codan; + char tipoa; + int nprog, codc, mese, anno; + real rite; + TDate datapag, datadoc; + TString16 numdoc; + + init_sort(); + *_cur = 0l; //il cursore e' stato filtrato (filter_function) + + for (int i = 0; i < _cur->items(); i++, ++(*_cur)) + { + _prog->addstatus(1); + tipoa = _cur->curr().get(PAG_TIPOA)[0]; + codan = _cur->curr().get_long(PAG_CODANAGR); + nprog = _cur->curr().get_int(PAG_NPROG); + datapag = _cur->curr().get(PAG_DATAPAG); + mese = datapag.month(); + anno = datapag.year(); + + TRectype dep = look_schperc(_codditta, tipoa, codan, nprog); + codc = dep.get_int(SPR_CODCAUS); + datadoc = dep.get_date(SPR_DATADOC); + numdoc = dep.get(SPR_NUMDOC); + + TRectype cau = look_causali(codc); + TString descr = cau.get("S0"); + int codtrib = cau.get_int("I0"); + +// rite = _rpag->get_real(PAG_RITENUTA); Non va! + rite = _cur->curr().get_real(PAG_RITENUTA); + riempi_record(anno,mese,codtrib,tipoa,codan,descr,nprog,datadoc,numdoc,rite); + } +} + +void TSt_vers::riempi_record(int a,int m,int ct,char t,long ca,const char* d, + int np,const TDate& dd,const char* nd,const real& ri) +{ + sprintf (_rig->anno, "%4d", a); + sprintf (_rig->mese, "%2d", m); + sprintf (_rig->codtrib, "%4d", ct); + _rig->tipoa = t; + sprintf(_rig->codan, "%5ld", ca); + _rig->rite = ri; + sprintf(_rig->descr, "%s", d); + _rig->nprog = np; + _rig->datadoc = dd; + sprintf(_rig->numdoc, "%s", nd); + + _sort->sort((const char*)_rig); +} + +void TSt_vers::leggi_sort() +{ + reset_print(); + + if ((_buf = _sort->retrieve()) != NULL) + { + struct righe_vers* rp; + + rp = (struct righe_vers*)_buf; + int anno = atoi(rp->anno); + int mese = atoi(rp->mese); + int codtrib = atoi(rp->codtrib); + TString80 descr(rp->descr); //descrizione della causale + char tipoa = rp->tipoa; + long codanag = atol(rp->codan); + int nprog = rp->nprog; + TString16 data((rp->datadoc).string(brief, '.')); + TString16 numdoc(rp->numdoc); + real rite = rp->rite; + + TString80 dp; + TString16 ff; + int i = 1; + TString dep(94); + dep.fill('-'); + + if ((mese != _mesep && _mesep != 0) || (anno != _annop && _annop != 0)) //e' cambiato il mese oppure l'anno + { + set_row(i++, "@b@87gTOTALI CODICE ESATTORIA@115g%r", &_tot_cod); + TDate d = format("%02d/%04d", mese, anno); + TString16 s(d.string(brief,'/')); + real arr = _tot_mese.round(-3); + set_row(i++, "@b@87gTOTALI MESE PAGAMENTO %s@115g%r", (const char*)s, &arr); + set_row(i++, ""); + set_row(i++, ""); + dp = desc_percipiente(tipoa,codanag); + ff = format("%5ld/%c", codanag,tipoa); + set_row(i++,"@1g%2d %4d@11g%4d@17g%-.30s@49g%s@61g%-.30s@91g%4d@98g%s@107g%s@115g%r", + mese,anno,codtrib,(const char*)descr,(const char*)ff, + (const char*)dp,nprog,(const char*)data,(const char*)numdoc,&rite); + + _tot_cod = _tot_mese = ZERO; + } + else if (codtrib != _codtribp && _codtribp != -1) + { + set_row(i++, "@b@87gTOTALI CODICE ESATTORIA@115g%r", &_tot_cod); + set_row(i++, ""); + dp = desc_percipiente(tipoa, codanag); + ff = format("%5ld/%c", codanag,tipoa); + set_row(i++,"@11g%4d@17g%-.30s@49g%s@61g%-.30s@91g%4d@98g%s@107g%s@115g%r", + codtrib,(const char*)descr,(const char*)ff, + (const char*)dp,nprog,(const char*)data,(const char*)numdoc,&rite); + + _tot_cod = ZERO; + } + else if ((codanag != _codanagp && _codanagp != 0) || (tipoa != _tipoap && _tipoap != ' ')) + { + dp = desc_percipiente(tipoa,codanag); + ff = format("%5ld/%c", codanag,tipoa); + set_row(i++,"@49g%s@61g%-.30s@91g%4d@98g%s@107g%s@115g%r", + (const char*)ff,(const char*)dp,nprog,(const char*)data,(const char*)numdoc,&rite); + } + else //non e' cambiato nulla + { + if (_primo) + { + dp = desc_percipiente(tipoa,codanag); + ff = format("%5ld/%c", codanag,tipoa); + set_row(i++,"@1g%2d %4d@11g%4d@17g%-.30s@49g%s@61g%-.30s@91g%4d@98g%s@107g%s@115g%r", + mese,anno,codtrib,(const char*)descr,(const char*)ff, + (const char*)dp,nprog,(const char*)data,(const char*)numdoc,&rite); + + _primo = FALSE; + } + else + set_row(i++, "@91g%4d@98g%s@107g%s@115g%r", nprog,(const char*)data,(const char*)numdoc,&rite); + } + _mesep = mese; + _annop = anno; + _codtribp = codtrib; + _codanagp = codanag; + _tipoap = tipoa; + + _tot_cod += rite; + _tot_mese += rite; + } + else + { + set_row(1, "@b@87gTOTALI CODICE ESATTORIA@115g%r", &_tot_cod); + TDate d = format("%02d/%04d", _mesep, _annop); + TString16 s(d.string(brief,'/')); + real arr = _tot_mese.round(-3); + set_row(2, "@b@87gTOTALI MESE PAGAMENTO %s@115g%r", (const char*)s, &arr); + } +} + +bool TSt_vers::preprocess_print(int file, int counter) +{ + _annop = _mesep = 0; + _codanagp = 0l; + _codtribp = -1; + _tipoap = ' '; + _primo = TRUE; + _tot_mese = _tot_cod = ZERO; + + return TRUE; +} + +bool TSt_vers::preprocess_page(int file, int counter) +{ + leggi_sort(); + return TRUE; +} + +print_action TSt_vers::postprocess_page(int file, int counter) +{ + if (_buf == NULL) + return NEXT_PAGE; + + return REPEAT_PAGE; +} + +void TSt_vers::postclose_print() +{ + delete _sort; +} + +bool TSt_vers::set_print(int) +{ + TMask msk ("772400a"); + KEY tasto; + TLocalisamfile& fl = _cur->file(LF_RPAG); + + msk.set_handler (F_CODDITTA, codditta_hnd); + + tasto = msk.run(); + + if (tasto == K_ENTER) + { + int anno = msk.get_int(F_ANNO); + int mese = msk.get_int(F_MESE); + + TDate d (1, mese, anno); + int ult = d.last_day(mese, anno); + TDate dd (ult, mese, anno); + + _datamsk = dd; + + _cur->set_filterfunction(filter_func); + + set_real_picture ("###.###.###.###"); + set_print_zero(); + printer().footerlen(5); + + setta_intestazione(); + + _prog = new TProgind(_cur->items(),"Elaborazione in corso... prego attendere",FALSE); + + crea_sort(); + _sort->endsort(); + + delete _rig; + delete _prog; + + return TRUE; + } + else + return FALSE; +} + +void TSt_vers::setta_intestazione() +{ + int soh = 1; + TString sep(132); + TString ragsoc(50); + + TLocalisamfile nditte(LF_NDITTE); + nditte.zero(); + nditte.put(NDT_CODDITTA, get_firm_770()); + if (nditte.read() == NOERR) + ragsoc = nditte.get(NDT_RAGSOC); + + reset_header(); + + set_header (soh++, "STAMPA VERSAMENTI RITENUTE@54gDITTA@61g%-.45s@107gDATA @< PAG. @#", (const char*) ragsoc); + sep.fill('-'); + set_header (soh++, (const char *) sep); + set_header (soh++, "PAGAMENTO CODICE ESATTORIA@48gPERCIPIENTE@91gN°@101gDOCUMENTO@122gRITENUTA"); + set_header (soh++, "MESE ANNO@48gCODICE/TIPO@61gDESCRIZIONE@91gPROG.@99gDATA@108gNUMERO"); + set_header (soh, (const char *) sep); +} + +const char* TSt_vers::desc_percipiente(char t, long c) +{ + TString80 ragsoc; + _anag->setkey(1); + _anag->zero(); + _anag->put(ANA_TIPOA, t); + _anag->put(ANA_CODANAGR, c); + if (_anag->read() == NOERR) + { + ragsoc = _anag->get(ANA_RAGSOC); + if (t == 'F') + { + TString80 nome = ragsoc.mid(30); + ragsoc.cut(30); + ragsoc.trim(); nome.trim(); + ragsoc << ' ' << nome; + } + tmp = ragsoc; + } + else tmp = ""; + return tmp; +} + +bool TSt_vers::user_create() +{ + //TToken_string exp; + + //exp.add("CODDITTA=CODDITTA"); + //exp.add("NUMVERS=NUMVERS"); + + _rel = new TRelation (LF_RPAG); + + //_rel->add(LF_RVER, exp, 2, LF_RPAG); + + _cur = new TCursor(_rel,"",1); + + _nditte = new TLocalisamfile (LF_NDITTE); + _anag = new TLocalisamfile (LF_ANAG); + _rpag = new TLocalisamfile (LF_RPAG); + _rver = new TLocalisamfile (LF_RVER); + _scperc = new TLocalisamfile (LF_SCPERC); + _ca7 = new TTable ("%CA7"); + _rig = new righe_vers; + _codditta = get_firm_770(); + return TRUE; +} + +bool TSt_vers::user_destroy() +{ + delete _rel; + delete _cur; + delete _nditte; + delete _anag; + delete _rpag; + delete _rver; + delete _scperc; + delete _ca7; + delete _rig; + + return TRUE; +} + +int m72400(int argc, char* argv[]) +{ + TSt_vers a; + a.run(argc, argv, "Calcolo e stampa versamenti ritenute"); + return 0; +} diff --git a/m770/772400.h b/m770/772400.h new file mode 100755 index 000000000..8b3f20892 --- /dev/null +++ b/m770/772400.h @@ -0,0 +1,4 @@ +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_ANNO 103 +#define F_MESE 104 diff --git a/m770/772400a.uml b/m770/772400a.uml new file mode 100755 index 000000000..35e594165 --- /dev/null +++ b/m770/772400a.uml @@ -0,0 +1,57 @@ +// 772400a.uml +// Calcolo e Stampa versamenti ritenute + +#include "772400.h" + +PAGE "Calcolo e stampa versamenti ritenute" -1 -1 78 14 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + OUTPUT F_CODDITTA CODDITTA + OUTPUT F_RAGSOC RAGSOC +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNO 4 +BEGIN + PROMPT 3 4 "Anno di pagamento " + FLAGS "A" + CHECKTYPE REQUIRED + WARNING "Inserire l'anno di pagamento" +END + +LISTBOX F_MESE 9 +BEGIN + PROMPT 3 6 "Mese di pagamento " + FLAGS "AM" +END + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -1 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/772mod.mak b/m770/772mod.mak new file mode 100755 index 000000000..ba7017f70 --- /dev/null +++ b/m770/772mod.mak @@ -0,0 +1,141 @@ +# Microsoft Visual C++ generated build script - Do not modify + +PROJ = 772MOD +DEBUG = 1 +PROGTYPE = 0 +CALLER = +ARGS = +DLLS = +D_RCDEFINES = /d_DEBUG +R_RCDEFINES = /dNDEBUG +ORIGIN = MSVC +ORIGIN_VER = 1.00 +PROJPATH = F:\NIK\P.DUE\77\ +USEMFC = 0 +CC = cl +CPP = cl +CXX = cl +CCREATEPCHFLAG = +CPPCREATEPCHFLAG = +CUSEPCHFLAG = +CPPUSEPCHFLAG = +FIRSTC = +FIRSTCPP = 772.CPP +RC = rc +CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"772.PDB" /GEs +CFLAGS_R_WEXE = /nologo /W3 /AM /O1 /D "NDEBUG" /FR /GA +LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO +LFLAGS_R_WEXE = /NOLOGO /NOD /PACKC:61440 /STACK:10240 /ALIGN:16 /ONERROR:NOEXE +LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib +LIBS_R_WEXE = oldnames libw mlibcew commdlg.lib olecli.lib olesvr.lib shell.lib +RCFLAGS = /nologo +RESFLAGS = /nologo /k /k +RUNFLAGS = +DEFFILE = ..\..\..\P.DUE\WIN\LIB\UNIVERSL.DEF +OBJS_EXT = +LIBS_EXT = ..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB ..\..\..\P.DUE\WIN\LIB\WINDUED.LIB \ + ..\..\..\P.DUE\WIN\LIB\WINGFM.LIB ..\..\..\P.DUE\WIN\LIB\WINUNO.LIB ..\..\..\P.DUE\WIN\LIB\XVT400.LIB +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS_D_WEXE) +LFLAGS = $(LFLAGS_D_WEXE) +LIBS = $(LIBS_D_WEXE) +MAPFILE = nul +RCDEFINES = $(D_RCDEFINES) +!else +CFLAGS = $(CFLAGS_R_WEXE) +LFLAGS = $(LFLAGS_R_WEXE) +LIBS = $(LIBS_R_WEXE) +MAPFILE = nul +RCDEFINES = $(R_RCDEFINES) +!endif +!if [if exist MSVC.BND del MSVC.BND] +!endif +SBRS = 772.SBR \ + 772100.SBR \ + 772200.SBR \ + 772300.SBR \ + 772400.SBR + + +HLAPI_CW_DEP = + +WINDUED_DEP = + +WINGFM_DEP = + +WINUNO_DEP = + +XVT400_DEP = + +772_DEP = + +772100_DEP = + +772_RCDEP = + +772200_DEP = + +772300_DEP = + +772400_DEP = + +all: $(PROJ).EXE $(PROJ).BSC + +772.OBJ: ..\..\..\P.DUE\77\772.CPP $(772_DEP) + $(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c ..\..\..\P.DUE\77\772.CPP + +772100.OBJ: ..\..\..\P.DUE\77\772100.CPP $(772100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\772100.CPP + +772.RES: 772.RC $(772_RCDEP) + $(RC) $(RCFLAGS) $(RCDEFINES) -r 772.RC + +772200.OBJ: ..\..\..\P.DUE\77\772200.CPP $(772200_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\772200.CPP + +772300.OBJ: ..\..\..\P.DUE\77\772300.CPP $(772300_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\772300.CPP + +772400.OBJ: ..\..\..\P.DUE\77\772400.CPP $(772400_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\772400.CPP + + +$(PROJ).EXE:: 772.RES + +$(PROJ).EXE:: 772.OBJ 772100.OBJ 772200.OBJ 772300.OBJ 772400.OBJ $(OBJS_EXT) $(DEFFILE) + echo >NUL @<<$(PROJ).CRF +772.OBJ + +772100.OBJ + +772200.OBJ + +772300.OBJ + +772400.OBJ + +$(OBJS_EXT) +$(PROJ).EXE +$(MAPFILE) +c:\msvc\lib\+ +f:\p.due\win\lib\+ +f:\xvt.403\win_x86\ptk\lib\+ +f:\xvt.403\win_x86\xpo\lib\+ +..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB+ +..\..\..\P.DUE\WIN\LIB\WINDUED.LIB+ +..\..\..\P.DUE\WIN\LIB\WINGFM.LIB+ +..\..\..\P.DUE\WIN\LIB\WINUNO.LIB+ +..\..\..\P.DUE\WIN\LIB\XVT400.LIB+ +$(LIBS) +$(DEFFILE); +<< + link $(LFLAGS) @$(PROJ).CRF + $(RC) $(RESFLAGS) 772.RES $@ + @copy $(PROJ).CRF MSVC.BND + +$(PROJ).EXE:: 772.RES + if not exist MSVC.BND $(RC) $(RESFLAGS) 772.RES $@ + +run: $(PROJ).EXE + $(PROJ) $(RUNFLAGS) + + +$(PROJ).BSC: $(SBRS) + bscmake @<< +/o$@ $(SBRS) +<< diff --git a/m770/772mod.url b/m770/772mod.url new file mode 100755 index 000000000..575ca030a --- /dev/null +++ b/m770/772mod.url @@ -0,0 +1,24 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(1) + +MENU MENU_BAR(1) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(2) + +MENU MENU_BAR(2) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(3) + +MENU MENU_BAR(3) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(4) + +MENU MENU_BAR(4) + SUBMENU MENU_FILE "~File" diff --git a/m770/773.cpp b/m770/773.cpp new file mode 100755 index 000000000..6d14afd63 --- /dev/null +++ b/m770/773.cpp @@ -0,0 +1,28 @@ +#include +#include + +#include "773.h" + +#define usage "Error - usage : %s -{0|1|2|3}" + +int main(int argc,char** argv) +{ + int n = (argc > 1) ? atoi(argv[1]+1) : -1; + + switch (n) + { + case 0: + m73100(argc,argv) ; break; + case 1: + generic(argc,argv) ; break; + case 2: + quadriN_T(argc,argv) ; break; + case 3: + m73400(argc,argv) ; break; + case 4: + quadriB_B1(argc,argv) ; break; + default: + error_box(usage, argv[0]) ; + } + return 0; +} diff --git a/m770/773.h b/m770/773.h new file mode 100755 index 000000000..4a79de185 --- /dev/null +++ b/m770/773.h @@ -0,0 +1,13 @@ +// 773.h +#ifndef __773_H +#define __773_H + +extern int m73100 (int argc, char* argv[]); +extern int generic (int argc, char* argv[]); +extern int m73400 (int argc, char* argv[]); +extern int quadriN_T(int argc, char* argv[]); +extern int quadriB_B1(int argc, char* argv[]); + +#endif + + diff --git a/m770/773.mak b/m770/773.mak new file mode 100755 index 000000000..34b372a9b --- /dev/null +++ b/m770/773.mak @@ -0,0 +1,385 @@ +# Microsoft Visual C++ generated build script - Do not modify + +PROJ = 773 +DEBUG = 1 +PROGTYPE = 0 +CALLER = +ARGS = +DLLS = +D_RCDEFINES = /d_DEBUG +R_RCDEFINES = /dNDEBUG +ORIGIN = MSVC +ORIGIN_VER = 1.00 +PROJPATH = F:\NIK\P.DUE\77\ +USEMFC = 0 +CC = cl +CPP = cl +CXX = cl +CCREATEPCHFLAG = +CPPCREATEPCHFLAG = +CUSEPCHFLAG = +CPPUSEPCHFLAG = +FIRSTC = +FIRSTCPP = TABAPP.CPP +RC = rc +CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"773.PDB" /GEs +CFLAGS_R_WEXE = /nologo /W3 /AM /O1 /D "NDEBUG" /FR /GA +LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO +LFLAGS_R_WEXE = /NOLOGO /NOD /PACKC:61440 /STACK:10240 /ALIGN:16 /ONERROR:NOEXE +LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib +LIBS_R_WEXE = oldnames libw mlibcew commdlg.lib olecli.lib olesvr.lib shell.lib +RCFLAGS = /nologo +RESFLAGS = /nologo /k +RUNFLAGS = +DEFFILE = ..\WIN\LIB\UNIVERSL.DEF +OBJS_EXT = +LIBS_EXT = ..\WIN\LIB\HLAPI_CW.LIB ..\WIN\LIB\WINDUED.LIB ..\WIN\LIB\WINUNO.LIB ..\WIN\LIB\XVT400.LIB \ + ..\WIN\LIB\WINGFM.LIB +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS_D_WEXE) +LFLAGS = $(LFLAGS_D_WEXE) +LIBS = $(LIBS_D_WEXE) +MAPFILE = nul +RCDEFINES = $(D_RCDEFINES) +!else +CFLAGS = $(CFLAGS_R_WEXE) +LFLAGS = $(LFLAGS_R_WEXE) +LIBS = $(LIBS_R_WEXE) +MAPFILE = nul +RCDEFINES = $(R_RCDEFINES) +!endif +!if [if exist MSVC.BND del MSVC.BND] +!endif +SBRS = TABAPP.SBR \ + 773.SBR \ + 773100.SBR \ + 773400.SBR + + +HLAPI_CW_DEP = + +WINDUED_DEP = + +WINUNO_DEP = + +XVT400_DEP = + +WINGFM_DEP = + +TABAPP_DEP = f:\p.due\include\stdtypes.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\date.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\execp.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\tabapp.h \ + f:\p.due\include\relapp.h \ + f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\scanner.h + + +773_DEP = f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\checks.h \ + f:\p.due\77\773.h + + +773100_DEP = f:\p.due\include\confapp.h \ + f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\array.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\p.due\include\scanner.h + + +773400_DEP = f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\tabapp.h \ + f:\p.due\include\relapp.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\window.h \ + f:\p.due\include\object.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\array.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\checks.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\sysfld.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\date.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\utility.h \ + f:\p.due\77\batbca7.h + + +773_RCDEP = + +all: $(PROJ).EXE $(PROJ).BSC + +TABAPP.OBJ: ..\INCLUDE\TABAPP.CPP $(TABAPP_DEP) + $(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c ..\INCLUDE\TABAPP.CPP + +773.OBJ: 773.CPP $(773_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 773.CPP + +773100.OBJ: 773100.CPP $(773100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 773100.CPP + +773400.OBJ: 773400.CPP $(773400_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c 773400.CPP + +773.RES: C:\PRASSI\773.RC $(773_RCDEP) + $(RC) $(RCFLAGS) $(RCDEFINES) -r -FoF:\NIK\P.DUE\77\773.RES C:\PRASSI\773.RC + + +$(PROJ).EXE:: 773.RES + +$(PROJ).EXE:: TABAPP.OBJ 773.OBJ 773100.OBJ 773400.OBJ $(OBJS_EXT) $(DEFFILE) + echo >NUL @<<$(PROJ).CRF +TABAPP.OBJ + +773.OBJ + +773100.OBJ + +773400.OBJ + +$(OBJS_EXT) +$(PROJ).EXE +$(MAPFILE) +c:\vc\lib\+ +f:\p.due\win\lib\+ +f:\xvt.403\win_x86\ptk\lib\+ +f:\xvt.403\win_x86\xpo\lib\+ +..\WIN\LIB\HLAPI_CW.LIB+ +..\WIN\LIB\WINDUED.LIB+ +..\WIN\LIB\WINUNO.LIB+ +..\WIN\LIB\XVT400.LIB+ +..\WIN\LIB\WINGFM.LIB+ +$(LIBS) +$(DEFFILE); +<< + link $(LFLAGS) @$(PROJ).CRF + $(RC) $(RESFLAGS) 773.RES $@ + @copy $(PROJ).CRF MSVC.BND + +$(PROJ).EXE:: 773.RES + if not exist MSVC.BND $(RC) $(RESFLAGS) 773.RES $@ + +run: $(PROJ).EXE + $(PROJ) $(RUNFLAGS) + + +$(PROJ).BSC: $(SBRS) + bscmake @<< +/o$@ $(SBRS) +<< diff --git a/m770/773.url b/m770/773.url new file mode 100755 index 000000000..ee694e844 --- /dev/null +++ b/m770/773.url @@ -0,0 +1,26 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(1) + +MENU MENU_BAR(1) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(2) + +MENU MENU_BAR(2) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(3) + +MENU MENU_BAR(3) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(4) + +MENU MENU_BAR(4) + SUBMENU MENU_FILE "~File" + + diff --git a/m770/773100.cpp b/m770/773100.cpp new file mode 100755 index 000000000..1331246e1 --- /dev/null +++ b/m770/773100.cpp @@ -0,0 +1,32 @@ +#include + +class M73_App : public TConfig_application +{ + public: + virtual bool user_create(); + + M73_App() : TConfig_application(CONFIG_STUDIO) {} + virtual ~M73_App() {} +}; + +bool M73_App::user_create() +{ + TString16 section; + const char* edit_mask = "773100a"; + + section = name(); + section.cut(2); + +// Forza EdMask in prassis.ini + TConfig cnf (CONFIG_STUDIO, section); + cnf.get("EdMask", section, -1, edit_mask); + + return TRUE; +} + +int m73100 (int argc, char* argv[]) +{ + M73_App appc; + appc.run(argc, argv, "Parametri Modello 770"); + return 0; +} diff --git a/m770/773100.h b/m770/773100.h new file mode 100755 index 000000000..973cbfe40 --- /dev/null +++ b/m770/773100.h @@ -0,0 +1,6 @@ +// 773100.h + +#define F_CODCAU1015 101 +#define F_FSTAMPAQL 102 +#define F_FSTAMPAQCQD 103 +#define F_ANNO 104 \ No newline at end of file diff --git a/m770/773100a.uml b/m770/773100a.uml new file mode 100755 index 000000000..7c8a671e6 --- /dev/null +++ b/m770/773100a.uml @@ -0,0 +1,55 @@ +#include "773100.h" + +PAGE "Parametri Modello 770" -1 -1 76 13 + +// +// NB Il parametro AnnoDic e' letto in tutte le stampe +// +NUMBER F_ANNO 4 +BEGIN + PROMPT 3 2 "Anno dichiarazione " + FLAGS "R" + FIELD AnnoDic +END + +NUMBER F_CODCAU1015 2 +BEGIN + PROMPT 3 4 "Codice causale 1015 " + USE %CA7 SELECT (I0=1015) + INPUT CODTAB F_CODCAU1015 + DISPLAY "Codice Causale" CODTAB + DISPLAY "Descrizione@60" S0 + OUTPUT F_CODCAU1015 CODTAB + FIELD CoCa1015 + FLAGS "RZ" +END + +LIST F_FSTAMPAQL 35 +BEGIN + PROMPT 3 6 "Flag per stampa quadro L " + ITEM "1|Ordine primario data versamento" + ITEM "2|Ordine primario periodo riferimento" + FIELD FlStQl +END + +LIST F_FSTAMPAQCQD 29 +BEGIN + PROMPT 3 8 "Flag per stampa quadri C/D/D1 " + ITEM "1|Per codice causale e aliquota" + ITEM "2|Per codice tributo e aliquota" + FIELD FlStQcQd +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK diff --git a/m770/773400.cpp b/m770/773400.cpp new file mode 100755 index 000000000..3c72bb220 --- /dev/null +++ b/m770/773400.cpp @@ -0,0 +1,175 @@ +// 773400.cpp - gestione tabelle 770 +#include +#include +#include +#include +#include +#include +#include "batbca7.h" + +// Lista modifiche +// +// 21.12.95 i codici quadro con 1015 sono C-E1 (= tolto E2) (nf) +// la perc. r.a. non e' piu' obbligatoria (nf) +// +// 14.5.96 Modifiche per dichiarazione 96 (nf) +// + +class Tab770_application : public Tab_application +{ + private: + TMask* _msk; + TString _tabname; + + protected: + bool IsCausali() const { return _tabname == "%CA7"; } + void SetDefaultValueCausali(TMask& m); + void init_mask(TMask& m); + static bool TC_causD1_handler(TMask_field& f, KEY k); + public: + bool user_create(); + virtual void init_modify_mode(TMask& m); + virtual void init_insert_mode(TMask& m); + virtual void init_query_mode(TMask& m); + Tab770_application() {} + virtual ~Tab770_application() {} +}; + +HIDDEN inline Tab770_application& app() {return (Tab770_application&) main_app();} + +bool Tab770_application::TC_causD1_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TString16 value(f.get()); + TMask& m = f.mask(); + if (value == "F") + m.reset(F_ASSRIT); + else + if (value == "A" || value == "B" || value == "C" || value == "D" + || value == "E") + m.set(F_ASSRIT, "X"); + } + return TRUE; +} + +HIDDEN bool codqua_handler(TMask_field& f, KEY k) +{ + if (k == K_ENTER && f.mask().is_running()) + { + TMask& m = f.mask(); + const int trib = atoi(m.get(F_CODTRIB)); + + if (trib == 1015) + { + const int dlg_qua = F_QUADRCE2; + TString16 quad(m.get(F_QUADRCE2)); + quad.trim(); + quad.upper(); + if (quad != "C" && quad != "D" && quad != "E" && quad != "E1" && + quad != "D1") + return f.warning_box("Con il codice tributo 1015 si possono indicare solo i quadri C-D-D1-E-E1"); + } + } + return TRUE; +} + +HIDDEN bool codtrib_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TMask& m = f.mask(); + const int trib = atoi(f.get()); + + if (trib == 1015) { + m.hide(F_QUADRAT); + m.show(F_QUADRCE2); + } + else { + m.hide(F_QUADRCE2); + m.show(F_QUADRAT); + } + } + return TRUE; +} + +HIDDEN bool descr_handler(TMask_field& f, KEY k) +{ + if (k == K_ENTER) + { + TMask& m = f.mask(); + const TString descr = f.get(); + + if (descr == "") + { + f.error_box("La descrizione e' obbligatoria"); + return FALSE; + } + } + return TRUE; +} + +void Tab770_application::SetDefaultValueCausali(TMask& m) +{ + TString sAssImpInps(m.get(TCF_ASSIMPINPS)); + TString sPercInps(m.get(TCF_PERCINPS)); + TString sPercAss(m.get(F_PERASS)); + + sAssImpInps.trim(); + sPercInps.trim(); + sPercAss.trim(); + + if (sAssImpInps.empty()) + m.set(TCF_ASSIMPINPS, "95.00"); // % ass.imp.contr.INPS +// m.set(TCF_COMMINPS, "66.67"); // quota competenza committente + if (sPercInps.empty()) + m.set(TCF_PERCINPS, "10.00"); // % contr. INPS + if (sPercAss.empty()) + m.set(F_PERASS, "100.00"); // % ass. imponibile +} + +void Tab770_application::init_mask(TMask& m) +{ + if (IsCausali()) + SetDefaultValueCausali(m); +} + +void Tab770_application::init_query_mode(TMask& m) +{ + init_mask(m); +} + +void Tab770_application::init_insert_mode(TMask& m) +{ + init_mask(m); +} + +void Tab770_application::init_modify_mode(TMask& m) +{ +// init_mask(m); +} + +bool Tab770_application::user_create() +{ + Tab_application::user_create(); + _msk = get_mask(); + _tabname = get_tabname(); + + if (IsCausali()) + { + _msk->set_handler(F_CODTRIB, codtrib_handler); + _msk->set_handler(F_QUADRCE2, codqua_handler); + _msk->set_handler(F_QUADRAT, codqua_handler); + _msk->set_handler(TCF_CAUSD1, TC_causD1_handler); + } + return TRUE; +} + +m73400(int argc, char* argv[]) +{ + Tab770_application a; + a.run(argc,argv, "Tabelle"); + return 0; +} + + diff --git a/m770/774.cpp b/m770/774.cpp new file mode 100755 index 000000000..5eb6f9617 --- /dev/null +++ b/m770/774.cpp @@ -0,0 +1,24 @@ +#include +#include + +#include "774.h" + +#define usage "Error - usage : %s -{0|1|2|3}" + +int main(int argc,char** argv) +{ + int n = (argc > 1) ? atoi(argv[1]+1) : -1; + + switch (n) + { + case 0: + m74100(argc,argv) ; break; + case 1: + riporti_dich(argc,argv) ; break; + default: + error_box(usage, argv[0]) ; + } + return 0; +} + + diff --git a/m770/774.h b/m770/774.h new file mode 100755 index 000000000..49f4a77eb --- /dev/null +++ b/m770/774.h @@ -0,0 +1,9 @@ +#ifndef __774_H +#define __774_H + +extern int m74100 (int argc, char* argv[]); +extern int riporti_dich(int argc, char* argv[]); + +#endif + + diff --git a/m770/774.mak b/m770/774.mak new file mode 100755 index 000000000..92a34db1c --- /dev/null +++ b/m770/774.mak @@ -0,0 +1,108 @@ +# Microsoft Visual C++ generated build script - Do not modify + +PROJ = 774 +DEBUG = 1 +PROGTYPE = 0 +CALLER = +ARGS = +DLLS = +D_RCDEFINES = /d_DEBUG +R_RCDEFINES = /dNDEBUG +ORIGIN = MSVC +ORIGIN_VER = 1.00 +PROJPATH = F:\ALE\P.DUE\77\ +USEMFC = 0 +CC = cl +CPP = cl +CXX = cl +CCREATEPCHFLAG = +CPPCREATEPCHFLAG = +CUSEPCHFLAG = +CPPUSEPCHFLAG = +FIRSTC = +FIRSTCPP = M74100.CPP +RC = rc +CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"774.PDB" /GEs +CFLAGS_R_WEXE = /nologo /W3 /AM /O1 /D "NDEBUG" /FR /GA +LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE +LFLAGS_R_WEXE = /NOLOGO /NOD /PACKC:61440 /STACK:10240 /ALIGN:16 /ONERROR:NOEXE +LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib +LIBS_R_WEXE = oldnames libw mlibcew commdlg.lib olecli.lib olesvr.lib shell.lib +RCFLAGS = /nologo +RESFLAGS = /nologo /k /k +RUNFLAGS = +DEFFILE = ..\..\..\P.DUE\WIN\LIB\UNIVERSL.DEF +OBJS_EXT = +LIBS_EXT = ..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB ..\..\..\P.DUE\WIN\LIB\WINDUED.LIB \ + ..\..\..\P.DUE\WIN\LIB\WINGFM.LIB ..\..\..\P.DUE\WIN\LIB\WINUNO.LIB ..\..\..\P.DUE\WIN\LIB\XVT400.LIB +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS_D_WEXE) +LFLAGS = $(LFLAGS_D_WEXE) +LIBS = $(LIBS_D_WEXE) +MAPFILE = nul +RCDEFINES = $(D_RCDEFINES) +!else +CFLAGS = $(CFLAGS_R_WEXE) +LFLAGS = $(LFLAGS_R_WEXE) +LIBS = $(LIBS_R_WEXE) +MAPFILE = nul +RCDEFINES = $(R_RCDEFINES) +!endif +!if [if exist MSVC.BND del MSVC.BND] +!endif +SBRS = 774.SBR \ + 774100.SBR + + +HLAPI_CW_DEP = + +WINDUED_DEP = + +WINGFM_DEP = + +WINUNO_DEP = + +XVT400_DEP = + +774_DEP = + +774100_DEP = + +all: $(PROJ).EXE $(PROJ).BSC + +774.OBJ: ..\..\..\P.DUE\77\774.CPP $(774_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\774.CPP + +774100.OBJ: ..\..\..\P.DUE\77\774100.CPP $(774100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\774100.CPP + + +$(PROJ).EXE:: 774.OBJ 774100.OBJ $(OBJS_EXT) $(DEFFILE) + echo >NUL @<<$(PROJ).CRF +774.OBJ + +774100.OBJ + +$(OBJS_EXT) +$(PROJ).EXE +$(MAPFILE) +c:\msvc\lib\+ +f:\p.due\win\lib\+ +..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB+ +..\..\..\P.DUE\WIN\LIB\WINDUED.LIB+ +..\..\..\P.DUE\WIN\LIB\WINGFM.LIB+ +..\..\..\P.DUE\WIN\LIB\WINUNO.LIB+ +..\..\..\P.DUE\WIN\LIB\XVT400.LIB+ +$(LIBS) +$(DEFFILE); +<< + link $(LFLAGS) @$(PROJ).CRF + $(RC) $(RESFLAGS) $@ + + +run: $(PROJ).EXE + $(PROJ) $(RUNFLAGS) + + +$(PROJ).BSC: $(SBRS) + bscmake @<< +/o$@ $(SBRS) +<< diff --git a/m770/774.url b/m770/774.url new file mode 100755 index 000000000..9f0d1e4df --- /dev/null +++ b/m770/774.url @@ -0,0 +1,11 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(1) + +MENU MENU_BAR(1) + SUBMENU MENU_FILE "~File" + + diff --git a/m770/774100.cpp b/m770/774100.cpp new file mode 100755 index 000000000..398d5d922 --- /dev/null +++ b/m770/774100.cpp @@ -0,0 +1,515 @@ +// 774100.cpp - Generazione quadro L +// +// 774 -0 S (livello di studio) oppure +// 774 -0 D (livello di ditta) +// +// Lista modifiche +// +// 21.12.95 Azzera solo i record con AP=anno dichiarazione (nf) +// 8.01.96 Scambiate nel quadrol la chiave 2 con la 1 (nf) +// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "rpag.h" +#include "rver.h" +#include "scperc.h" +#include "quadrol.h" +#include "774100.h" +#include "77lib.h" + +// inizializzato in TGenera::set() - usato in filter_func() +HIDDEN TGenera* this_genera = NULL; +// Possibili esiti della dialog-box di configurazione parametri di gen. +HIDDEN const int UNCHANGED = 0; +HIDDEN const int CHANGED = 1; +HIDDEN const int ESCI = 2; + +void TVersamenti::set (TSchedaP& sc, const long numvers) +{ + _key.format("%4ld%c%4ld%4d%4ld", sc.codditta(),sc.tipoa(),sc.codanagr(),sc.nprog(),numvers); + add(_key); +} + +bool TVersamenti::find (TSchedaP& sc, const long numvers) +{ + _key.format("%4ld%c%4ld%4d%4ld", sc.codditta(),sc.tipoa(),sc.codanagr(),sc.nprog(),numvers); + return is_key(_key); +} + +// Accetta un record solo se: +// l'anno della data-pagamento == annodic E +// il pagamento e' collegato ad un versamento (non importa quale) +bool filter_func (const TRelation * rel) +{ + TDate datapag; + int anno,annod; + long nvers; + + annod = this_genera->_annodic; + datapag = rel->lfile().get(PAG_DATAPAG); + nvers = rel->lfile().get_long(PAG_NUMVERS); + anno = datapag.year(); + + return anno == annod && nvers > 0L; +} + +bool TGenera::causale1015(int causale) +{ + TTable ca7("%CA7"); + TString dep; + int artbil = 0; + + ca7.zero(); + dep = format("%02d", causale); + ca7.put("CODTAB", dep); + const bool ok = ca7.read() == NOERR; + + if (!ok) ca7.zero(); + + _ab1015 = ca7.get_int("I3"); + _ct1015 = ca7.get_int("I0"); + _cq1015 = ca7.get ("S1"); + + return ok; +} + +void TGenera::causale(int causale) +{ + TTable ca7("%CA7"); + TString dep; + + _codqua = ""; + + ca7.zero(); + dep = format("%02d", causale); + ca7.put("CODTAB", dep); + if (ca7.read() == NOERR) + { + _codqua = ca7.get ("S1"); + _artbil = ca7.get_int("I3"); + _codtrib = ca7.get_int("I0"); + } +} + +bool TGenera::set(const long codditta, TConfig* cnf, const char* section) +{ + TString16 filt; + int causale; + TRelation* rel; + TCursor* cur; + + if (!yesno_box("Conferma la generazione dei versamenti?")) + return FALSE; + + _codditta = codditta; + _annodic = (int)cnf->get_long(ANNO_SEL, section); + + this_genera = this; + + rel = new TRelation (LF_RPAG); + filt.format("CODDITTA=%ld", codditta); + + cur = new TCursor(rel,filt,1); + cur->set_filterfunction (filter_func); + + causale = atoi(cnf->get("CoCa1015", section)); + + if (causale) + { + if (!causale1015(causale)) + return warning_box("Manca la causale 1015 nella tabella causali"); + } + else + return warning_box("Manca la causale 1015 nei parametri di studio"); + + azzera_quadroL(); + genera_riga(cur); + arrotonda(); + + delete cur; + delete rel; + + return FALSE; +} + +int TGenera::controllo_parametri() +{ + TLocalisamfile base (LF_BASE); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", _codditta); + const int rc = base.read(); + if (rc == NOERR) + { + TDate dv (base.get_date("DATAVERS")); + char lv = base.get_char("LUOVERS"); + char tv = base.get_char("TIPOVERS"); + TString s(base.get("SERIE")); + TString n(base.get("NUMERO")); + + if (!dv.ok() || lv == '\0' || tv == '\0' || n == "" || (s == "" && tv != 'C') ) + { + TString appname("776mod -4 d"); + TExternal_app a (appname); + a.run(); + + TMailbox m; + TMessage* msg = m.next_s(""); + int subj; +// 1 => uscito con Registra +// 0 => uscito con Quit + if (msg != NULL) + { + subj = atoi(msg->body()); + if (subj) + return CHANGED; + else + return ESCI; + } + } + } +#ifdef DBG + if (rc != NOERR) + return warning_box("Errore di lettura su base cod. %d", rc); +#endif + return UNCHANGED; +} + +bool TGenera::azzera_quadroL() +{ + TString quadro(3); + const long dittafirm = get_firm_770(); + TLocalisamfile ql(LF_QUAL); + TProgind progn(ql.items(), "Azzeramento quadro L", FALSE, TRUE); + + for (ql.first(); !ql.eof(); ql.next(), progn.addstatus(1)) + { + const long codditta = ql.get_long(QUL_CODDITTA); + if (codditta != dittafirm) continue; + +// 21.12.95 Azzera solo quelli dell'anno dichiarazione + const int ap = ql.get_int(QUL_QLAP); + if (ap != _annodic) continue; + + quadro = ql.get(QUL_QLCODQUA); + if (quadro == "C" || quadro == "D" || quadro == "D1" + || quadro == "E" || quadro == "E1") + ql.remove(); + } + progn.addstatus(1); + return TRUE; +} + +void TGenera::dati_rver(TLocalisamfile& rver,TSchedaP& sch, long numvers) +{ + rver.zero(); + rver.put(VER_CODDITTA, sch.codditta()); + rver.put(VER_TIPOA, sch.tipoa()); + rver.put(VER_CODANAGR, sch.codanagr()); + rver.put(VER_NPROG, sch.nprog()); + rver.put(VER_NRIGA, (long)numvers); + rver.read(); + if (rver.bad()) + rver.zero(); + + _ver1015 = rver.get_bool(VER_VERS1015); + _ritver = rver.get_real(VER_IMPVERS); + + if (_ver1015) + { + //Prendo i dati su flags LF_BASE + TLocalisamfile base(LF_BASE); + + base.setkey(1); + base.zero(); + base.put("CODDITTA", _codditta); + if (base.read(_isequal) == NOERR) + { + _datavers = base.get_date("DATAVERS"); + _mesepag = 12; + _luovers = base.get_char("LUOVERS"); + _tipover = base.get_char("TIPOVERS"); + _serie = base.get ("SERIE"); + _numero = base.get ("NUMERO"); + if (_tipover == DELEGA_BANCARIA) + _sNprog = _numero.mid(6); + + rver.reread(_testandlock); + rver.put("DATAVERS", _datavers); + rver.put("TIPOVERS", _tipover); + rver.put("SERIE", _serie); + rver.put("NUMERO", _numero); + rver.put("LUOVERS", _luovers); + rver.rewrite(); + rver.reread(_unlock); + } + } + else + { + _datavers = rver.get_date(VER_DATAVERS); + _luovers = rver.get_char(VER_LUOVERS); + _tipover = rver.get_char(VER_TIPOVERS); + _serie = rver.get (VER_SERIE); + _numero = rver.get (VER_NUMERO); + _sNrog = rver.get (VER_PROGBANC); + _sNprog.trim(); + if (_sNprog.not_empty()) + _numero << _sNprog; + } +} + +void TGenera::dati_scperc(TSchedaP& sch) +{ + TLocalisamfile scperc(LF_SCPERC); + int codtrib = 0; + + scperc.setkey(1); + scperc.zero(); + scperc.put(SPR_CODDITTA, sch.codditta()); + scperc.put(SPR_TIPOA, sch.tipoa()); + scperc.put(SPR_CODANAGR, sch.codanagr()); + scperc.put(SPR_NPROG, sch.nprog()); + if (scperc.read(_isequal) == NOERR) + _causale = scperc.get_int(SPR_CODCAUS); +} + +void TGenera::arrotonda() +{ + TLocalisamfile qual (LF_QUAL); + TRecnotype items_qual = qual.items(); + real importo; importo = ZERO; + TProgind progn(items_qual, "Arrotondamento ritenute versate in corso... Prego attendere", FALSE, TRUE); + + qual.setkey(1); + qual.zero(); + for (qual.first(); !qual.eof(); qual.next()) + { + progn.addstatus(1); + const long codditta = qual.get_long(QUL_CODDITTA); + if (codditta != _codditta) + continue; + importo = qual.get_real(QUL_QLRITVER); + importo = round_770(importo); + qual.reread(_testandlock); + qual.put(QUL_QLRITVER, importo); + qual.rewrite(); + qual.reread(_unlock); + } + progn.addstatus(1); +} + +void TGenera::genera_riga(TCursor* cur) +{ + TLocalisamfile ql (LF_QUAL); + TLocalisamfile rver(LF_RVER); + real riteff,ritver; + long numvers,codanagr,codp; + char tipoa,tipop; + int nprog,nprogp; + bool prima_volta = TRUE; + bool gia_fatto = FALSE; + TString perc,percp; + + (*cur) = 0L; + TRecnotype items_rpag = cur->items(); + TString scritta(60); + scritta.format("Generazione versamenti per la ditta %ld", _codditta); + TProgind progn(items_rpag, scritta, FALSE, TRUE); + + riteff = ZERO; + ritver = ZERO; + + _righe_gia_presenti = new TVersamenti; + _righe_gia_presenti->destroy(); + + tipop = 'Z'; + codp = 99999; + nprogp = 9999; + + TSchedaP scheda_prec; + for (int i = 0; i < items_rpag; i++, ++(*cur), progn.addstatus(1)) + { +// Leggo i dati su RPAG + TDate datapag(cur->curr().get(PAG_DATAPAG)); + _mesepag = datapag.month();; + _annopag = datapag.year(); + riteff = cur->curr().get_real(PAG_RITENUTA); + numvers = cur->curr().get_long(PAG_NUMVERS); + tipoa = cur->curr().get_char(PAG_TIPOA); + codanagr = cur->curr().get_long(PAG_CODANAGR); + nprog = cur->curr().get_int (PAG_NPROG); + + TSchedaP scheda_corr(_codditta, tipoa, codanagr, nprog); + dati_rver(rver,scheda_corr,numvers); + + if (scheda_corr != scheda_prec) + { + dati_scperc(scheda_corr); + causale(_causale); + } + scheda_prec.set(_codditta,tipoa,codanagr,nprog); + +// Se e' tributo1015 posso evitare di controllare il codice quadro + if (!_ver1015) + { + if (_codqua != "C" && _codqua != "D" && _codqua != "D1" && + _codqua != "E" && _codqua != "E1") + continue; + } + else + if (!gia_fatto) + { + gia_fatto = TRUE; + const int cp = controllo_parametri(); + if (cp == CHANGED) + dati_rver(rver,scheda_corr,numvers); + else + if (cp == ESCI) + break; // ho premuto il bottone FINE + } + + ql.setkey(1); + ql.zero(); + ql.put(QUL_CODDITTA, _codditta); + ql.put(QUL_QLMP, _mesepag); + ql.put(QUL_QLAP, _annopag); + ql.put(QUL_QLDV, _datavers); + ql.put(QUL_QLLV, _luovers); + ql.put(QUL_QLTV, _tipover); + + if (_ver1015) + { + ql.put(QUL_QLCT, _ct1015); + ql.put(QUL_QLAB, _ab1015); + ql.put(QUL_QLCODQUA, _cq1015); + } + else + { + ql.put(QUL_QLCT, _codtrib); + ql.put(QUL_QLAB, _artbil); + ql.put(QUL_QLCODQUA, _codqua); + } + ql.put(QUL_QLSERIE, _serie); + ql.put(QUL_QLNUMERO, _numero); + + TRectype dep(ql.curr()); + + if (ql.read(_isequal, _lock) == NOERR) + { + _riteff = ql.get_real(QUL_QLRITEFF); + _riteff += riteff; + ql.put(QUL_QLRITEFF, _riteff); + + if (!_righe_gia_presenti->find(scheda_corr,numvers)) + { + ritver = ql.get_real(QUL_QLRITVER); + ritver += _ritver; + ql.put(QUL_QLRITVER, ritver); + } + ql.rewrite(); + } + else + { + ql.zero(); + ql.curr() = dep; + ql.put(QUL_QLRITEFF, riteff); + ql.put(QUL_QLRITVER, _ritver); + ql.write(); + } + _righe_gia_presenti->set(scheda_corr,numvers); + } +} + + +class TGenera_versamenti : public TApplication +{ + char _liv; + TString16 _section; + TConfig* _cnf; + public: + TGenera* _genera; + TLocalisamfile *_rver, *_rpag, *_base, *_scperc, *_ql; + public: + virtual bool create(); + virtual bool menu(MENU_TAG m); + virtual bool destroy(); + + TGenera& genera() { return *_genera; } + + public: + TGenera_versamenti(char livello) : _liv(toupper(livello)) {} + ~TGenera_versamenti() {} +}; + +TGenera_versamenti& app() { return (TGenera_versamenti&)main_app(); } + +bool TGenera_versamenti::menu(MENU_TAG m) +{ + long codditta, codditta_prec; + int i = 0; + + if (m == BAR_ITEM(1)) + if (_liv == 'S') + { + codditta_prec = get_firm_770(); + while ((codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L) + { + set_firm_770(codditta); + _genera->set(codditta, _cnf, _section); + } + set_firm_770(codditta_prec); + + return FALSE; + } + else + return _genera->set(get_firm_770(), _cnf, _section); + + return FALSE; +} + +bool TGenera_versamenti::create() +{ + TApplication::create(); + _rver = new TLocalisamfile(LF_RVER); + _rpag = new TLocalisamfile(LF_RPAG); + _scperc = new TLocalisamfile(LF_SCPERC); + _base = new TLocalisamfile(LF_BASE); + _ql = new TLocalisamfile(LF_QUAL); + _genera = new TGenera; + _cnf = new TConfig(_liv == 'S' ? CONFIG_USER : CONFIG_STUDIO); + + _section = name(); + _section.cut(2); + + dispatch_e_menu (BAR_ITEM(1)); + return TRUE; +} + +bool TGenera_versamenti::destroy() +{ + delete _rver; + delete _rpag; + delete _scperc; + delete _base; + delete _ql; + delete _genera; + delete _cnf; + return TApplication::destroy(); +} + +int m74100 (int argc, char* argv[]) +{ + TGenera_versamenti a(*argv[2]); + a.run(argc, argv, "Generazione versamenti"); + return 0; +} + diff --git a/m770/774100.h b/m770/774100.h new file mode 100755 index 000000000..89a697eb4 --- /dev/null +++ b/m770/774100.h @@ -0,0 +1,55 @@ +#ifndef __774100_H +#define __774100_H + +#include +#include "77lib.h" + +// Usato in generazione per evitare di leggere due volte lo stesso versamento +class TVersamenti : public TAssoc_array +{ + TString80 _key; + public: + bool find (TSchedaP& sch, const long numvers); + void set (TSchedaP& scheda, const long numvers); + + TVersamenti() {} +}; + +bool filter_func (const TRelation *); + +class TGenera +{ + friend bool filter_func (const TRelation *); + + TVersamenti* _righe_gia_presenti; + + TRecnotype _items_rpag; + int _annodic,_annopag,_mesepag,_causale,_artbil; + int _ab1015, _ct1015, _codtrib; + long _codditta; + real _riteff,_ritver; + TDate _datavers; + char _luovers,_tipover; + TString _serie,_numero,_codqua,_cq1015,_rss,_note,_sNprog; + bool _ver1015; + + bool azzera_quadroL(); + bool causale1015 (int codcaus); + void causale (int causale); + void genera_riga (TCursor*); + void dati_rver (TLocalisamfile&, TSchedaP& scheda, long numvers); + void dati_scperc (TSchedaP& scheda); + int controllo_parametri(); + +public: + bool set(const long codditta, TConfig* cnf, const char* section="77"); + void arrotonda(); + + TGenera() : _annodic(0),_annopag(0),_mesepag(0),_causale(0),_artbil(0), + _ab1015(0), _ct1015(0), _codtrib(0) {} + + virtual ~TGenera() {} +}; + +#endif + diff --git a/m770/774200.cpp b/m770/774200.cpp new file mode 100755 index 000000000..7a8b0256f --- /dev/null +++ b/m770/774200.cpp @@ -0,0 +1,2145 @@ +// 774200.cpp - Calcolo riporti dei Quadri +// +// Per l'interfaccia vedere 774200.h. +// Il metodo pubblico che fa tutto il lavoro dalla gestione di +// un singolo quadro e' set(). +// +// 774 -1 D : riporto sul quadro I del dichiarante +// +// 774 -1 S : livello di studio oppure +// richiamare la funzione set all' interno +// di ogni programma di gestione quadri. +// +// ATTENZIONE: +// Se si aggiungono o tolgono quadri in build_fill_string() +// bisogna cambiare il numero dei quadri. +// +// 15.3.96 Allungata la stringa QCOMP per far spazio ai quadri A1-2-3 +// +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "774200.h" + +#include "quadroa.h" +#include "quadroa3.h" +#include "quadrob.h" +#include "quadrob1.h" +#include "dipend.h" +#include "quadroh.h" +#include "quadroc.h" +#include "quadrod.h" +#include "quadrod1.h" +#include "quadroe.h" +#include "quadroe1.h" +#include "prospe1.h" +#include "quadroe2.h" +#include "quadrif.h" +#include "quadrog.h" +#include "quadrogd.h" +#include "quadrog1.h" +#include "774200a.h" +#include "77lib.h" + +// Costanti +#define TIPOQUA "TIPOQUA" + +// NB Tutte da spostare in lffiles +#define LF_RIGHEF2 100 +#define LF_RIGHEF1 99 +#define LF_RIGHEF 98 +#define LF_QUAGD 101 + +// inizializzato in TRiporti::set() - usato in filter_func() +HIDDEN TRiporti* this_riporti = NULL; + +HIDDEN TString80 __tmp; + +// Costanti usate per il calcolo dei fogli compilati +HIDDEN const int QE2_FISICHE_PER_FOGLIO = 16; +HIDDEN const int QE2_NOFISICHE_PER_FOGLIO = 9; +HIDDEN const int QGD_FISICHE_PER_FOGLIO = 5; +HIDDEN const int QGD_NOFISICHE_PER_FOGLIO = 6; +HIDDEN const int QD1_FISICHE_PER_FOGLIO = 24; +HIDDEN const int QD1_NOFISICHE_PER_FOGLIO = 8; +HIDDEN const int QD_FISICHE_PER_FOGLIO = 18; +HIDDEN const int QD_NOFISICHE_PER_FOGLIO = 6; +HIDDEN const int QE_FISICHE_PER_FOGLIO = 26; +HIDDEN const int QE_NOFISICHE_PER_FOGLIO = 8; +HIDDEN const int QE1_PERCIPIENTI_PER_FOGLIO = 25; +HIDDEN const int QE1_RIGHE_PROSPETTO = 17; + +HIDDEN long fogli_compilati(const long fisiche, const long nofisiche, const int fisiche_x_foglio, const int nofisiche_x_foglio); +HIDDEN const char* build_fill_string(TString& qcomp); + +class TRiporta_quadri : public TApplication +{ + char _liv; + TRiporti* _riporta; + TMask* _msk; + int _anno_dic; + static bool codditta_handler(TMask_field& f, KEY k); + public: + virtual bool create(); + virtual bool menu(MENU_TAG m); + virtual bool destroy(); + + TRiporti& riporta() { return *_riporta; } + + TRiporta_quadri(char livello) : _liv(toupper(livello)) {} + ~TRiporta_quadri() {} +}; + +TRiporta_quadri& app() { return (TRiporta_quadri&)main_app(); } + +bool TRiporta_quadri::codditta_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; + codditta << get_firm_770(); + + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + return TRUE; +} + +bool TRiporta_quadri::menu(MENU_TAG m) +{ + if (m == BAR_ITEM(1)) + if (_liv == 'D') + { + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL); + _msk->set(F_ANNODIC, _anno_dic); + KEY tast = _msk->run(); + if (tast != K_ENTER) + return FALSE; + const int annod = (int)_msk->get_long(F_ANNODIC); + _riporta->riporti_dich(get_firm_770(), annod); + message_box("Generazione riporti terminata"); + } + return FALSE; +} + +bool TRiporta_quadri::create() +{ + TApplication::create(); + _riporta = new TRiporti; + _msk = new TMask("774200a"); + _msk->set_handler(F_CODDITTA, codditta_handler); + dispatch_e_menu (BAR_ITEM(1)); + return TRUE; +} + +bool TRiporta_quadri::destroy() +{ + delete _riporta; + delete _msk; + return TApplication::destroy(); +} + +int riporti_dich(int argc, char* argv[]) +{ + TRiporta_quadri a(*argv[2]); + a.run(argc, argv, "Generazione riporti"); + return 0; +} + +HIDDEN bool filter_func (const TRelation * rel) +{ + int anno,annod; + + annod = this_riporti->_annodic; + anno = rel->lfile().get_int(QUH_H1ANNO); + + return anno == annod; +} + +bool TRiporti::riporti_dich(const long dich, const int anno) +{ + long codditta=0L; + long codic=0L; + +// Crea il record I "globale" se non c'e' + enter_dichiar_770(dich, anno, TRUE); + + TLocalisamfile base(LF_BASE); + base.setkey(2); + base.zero(); + base.put("CODDIC", (long)dich); +// TRectype dep(base.curr()); + +// 1. Riporto dai quadri degli estinti al quadro I globale del dichiarante + for (base.read(); !base.eof(); base.next()) + { + codic = base.get_long("CODDIC"); + if (codic != dich) break; +// if (base.curr() > dep) break; + codditta = base.get_long("CODDITTA"); + if (codditta == dich) continue; // scarta il dichiarante stesso + set("*", anno, codditta, dich); + } + +// 2. Somma del quadro I "locale" del dichiarante a quello globale + riporta_I_globale(dich); + + return TRUE; +} + +bool TRiporti::riporta_I_globale(const long dich) +{ + int ret1, ret2; + long c0nfcom, c0nlass, d0nfcom, d0nlaut, d1nfcom, d1nper; + long e0nfcom, e0nper, e1nfcom, e1nper; + real h0codlav, h0coldip; + real c0snsrit, c0rope, c0actot, d0actot, d0snsrit, d0rope, d1tacor, d1snsrit; + real d1rope, e0aimp, e0snsrit, e0rope, e1scor, e1bcom, e1rope, e1acom; + real e1bcom2, e1rope2; + long cc0nfcom, cc0nlass, dd0nfcom, dd0nlaut, dd1nfcom, dd1nper; + long ee0nfcom, ee0nper, ee1nfcom, ee1nper; + real ee0snsrit, ee0rope, ee0aimp, hh0codlav, hh0coldip; + real cc0snsrit, cc0rope, cc0actot, dd0actot, dd0snsrit, dd0rope, dd1tacor; + real dd1snsrit, dd1rope; + real ee1scor, ee1bcom, ee1rope, ee1acom, ee1bcom2, ee1rope2; + + c0nfcom = c0nlass = d0nfcom = d0nlaut = d1nfcom = d1nper = 0; + e1nfcom = e1nper = 0; + + h0codlav = h0coldip = ZERO; + c0snsrit = c0rope = c0actot = d0actot = ZERO; + d0snsrit = d0rope = d1tacor = ZERO; + e1scor = e1bcom = e1rope = ZERO; + e1acom = e1bcom2 = e1rope2 = ZERO; + +// 1. Lettura quadro I "locale" del dichiarante + TLocalisamfile base(LF_BASE); + TLocalisamfile basebis(LF_BASEBIS); + base.zero(); + base.put("CODDITTA", dich); + if (base.read() != NOERR) return FALSE; + basebis.zero(); + basebis.put("CODDITTA", dich); + if (basebis.read() != NOERR) return FALSE; + + d1nfcom = base.get_int(BSE_D1NFCOM); + d1nper = base.get_int(BSE_D1NPER); + d1tacor = base.get_real(BSE_D1TACOR); + d1snsrit = base.get_real(BSE_D1SNSRIT); + d1rope = base.get_real(BSE_D1ROPE); + e1nfcom = basebis.get_int(BSB_E1NFCOM); + e1nper = basebis.get_int(BSB_E1NPER); + e1scor = basebis.get_real(BSB_E1SCOR); + e1bcom = basebis.get_real(BSB_E1BCOM); + e1rope = basebis.get_real(BSB_E1ROPE); + e1acom = basebis.get_int(BSB_E1ACOM); + e1bcom2 = basebis.get_real(BSB_E1BCOM2); + e1rope2 = basebis.get_real(BSB_E1ROPE2); + + e0nfcom = basebis.get_int(BSB_E0NFCOM); + e0nper = basebis.get_int(BSB_E0NPER); + e0aimp = basebis.get_real(BSB_E0AIMP); + e0snsrit = basebis.get_real(BSB_E0SNSRIT); + e0rope = basebis.get_real(BSB_E0ROPE); + + h0codlav = basebis.get_real(BSB_H0CODLAV); + h0coldip = basebis.get_real(BSB_H0COLDIP); + c0nfcom = base.get_int(BSE_C0NFCOM); + c0nlass = base.get_int(BSE_C0NLASS); + c0actot = base.get_real(BSE_C0ACTOT); + c0snsrit = base.get_real(BSE_C0SNSRIT); + c0rope = base.get_real(BSE_C0ROPE); + + d0nfcom = base.get_int(BSE_D0NFCOM); + d0nlaut = base.get_int(BSE_D0NLAUT); + d0actot = base.get_real(BSE_D0ACTOT); + d0snsrit = base.get_real(BSE_D0SNSRIT); + d0rope = base.get_real(BSE_D0ROPE); + +// 2. Riporto nel quadro I globale + base.zero(); +// base.setkey(2); + base.put(TIPOQUA, COD_QUA_I_DIC); + base.put("CODDITTA", (long)dich); + TRectype dep(base.curr()); + ret1 = base.read(); + if (ret1 == _iskeynotfound) + { + base.curr() = dep; + base.write(); + } + basebis.zero(); + basebis.put(TIPOQUA, COD_QUA_I_DIC); + basebis.put("CODDITTA", (long)dich); + TRectype dep2(basebis.curr()); + ret2 = basebis.read(); + if (ret2 == _iskeynotfound) + { + basebis.curr() = dep2; + basebis.write(); + } + + dd1nfcom = base.get_int(BSE_D1NFCOM); + dd1nper = base.get_int(BSE_D1NPER); + dd1tacor = base.get_real(BSE_D1TACOR); + dd1snsrit = base.get_real(BSE_D1SNSRIT); + dd1rope = base.get_real(BSE_D1ROPE); + ee1nfcom = basebis.get_int(BSB_E1NFCOM); + ee1nper = basebis.get_int(BSB_E1NPER); + ee1scor = basebis.get_real(BSB_E1SCOR); + ee1bcom = basebis.get_real(BSB_E1BCOM); + ee1rope = basebis.get_real(BSB_E1ROPE); + ee1acom = basebis.get_int(BSB_E1ACOM); + ee1bcom2 = basebis.get_real(BSB_E1BCOM2); + ee1rope2 = basebis.get_real(BSB_E1ROPE2); + + ee0nfcom = basebis.get_int(BSB_E0NFCOM); + ee0nper = basebis.get_int(BSB_E0NPER); + ee0aimp = basebis.get_real(BSB_E0AIMP); + ee0snsrit = basebis.get_real(BSB_E0SNSRIT); + ee0rope = basebis.get_real(BSB_E0ROPE); + + hh0codlav = basebis.get_real(BSB_H0CODLAV); + hh0coldip = basebis.get_real(BSB_H0COLDIP); + cc0nfcom = base.get_int(BSE_C0NFCOM); + cc0nlass = base.get_int(BSE_C0NLASS); + cc0actot = base.get_real(BSE_C0ACTOT); + cc0snsrit = base.get_real(BSE_C0SNSRIT); + cc0rope = base.get_real(BSE_C0ROPE); + + dd0nfcom = base.get_int(BSE_D0NFCOM); + dd0nlaut = base.get_int(BSE_D0NLAUT); + dd0actot = base.get_real(BSE_D0ACTOT); + dd0snsrit = base.get_real(BSE_D0SNSRIT); + dd0rope = base.get_real(BSE_D0ROPE); + + d1nfcom += dd1nfcom ; + d1nper += dd1nper ; + d1tacor += dd1tacor ; + d1snsrit += dd1snsrit ; + d1rope += dd1rope ; + e1nfcom += ee1nfcom ; + e1nper += ee1nper ; + e1scor += ee1scor ; + e1bcom += ee1bcom ; + e1rope += ee1rope ; + e1acom += ee1acom ; + e1bcom2 += ee1bcom2 ; + e1rope2 += ee1rope2 ; + e0nfcom += ee0nfcom ; + e0nper += ee0nper ; + e0aimp += ee0aimp ; + e0snsrit += ee0snsrit ; + e0rope += ee0rope ; + h0codlav += hh0codlav ; + h0coldip += hh0coldip ; + c0nfcom += cc0nfcom ; + c0nlass += cc0nlass ; + c0actot += cc0actot ; + c0snsrit += cc0snsrit ; + c0rope += cc0rope ; + d0nfcom += dd0nfcom ; + d0nlaut += dd0nlaut ; + d0actot += dd0actot ; + d0snsrit += dd0snsrit ; + d0rope += dd0rope ; + + base.put(BSE_D1NFCOM, d1nfcom); + base.put(BSE_D1NPER, d1nper); + base.put(BSE_D1TACOR, d1tacor); + base.put(BSE_D1SNSRIT, d1snsrit); + base.put(BSE_D1ROPE, d1rope); + basebis.put(BSB_E1NFCOM, e1nfcom); + basebis.put(BSB_E1NPER, e1nper); + basebis.put(BSB_E1SCOR, e1scor); + basebis.put(BSB_E1BCOM, e1bcom); + basebis.put(BSB_E1ROPE, e1rope); + basebis.put(BSB_E1ACOM, e1acom); + basebis.put(BSB_E1BCOM2, e1bcom2); + basebis.put(BSB_E1ROPE2, e1rope2); + + basebis.put(BSB_E0NFCOM, e0nfcom); + basebis.put(BSB_E0NPER, e0nper); + basebis.put(BSB_E0AIMP, e0aimp); + basebis.put(BSB_E0SNSRIT, e0snsrit); + basebis.put(BSB_E0ROPE, e0rope); + + basebis.put(BSB_H0CODLAV, h0codlav); + basebis.put(BSB_H0COLDIP, h0coldip); + base.put(BSE_C0NFCOM, c0nfcom); + base.put(BSE_C0NLASS, c0nlass); + base.put(BSE_C0ACTOT, c0actot); + base.put(BSE_C0SNSRIT, c0snsrit); + base.put(BSE_C0ROPE, c0rope); + + base.put(BSE_D0NFCOM, d0nfcom); + base.put(BSE_D0NLAUT, d0nlaut); + base.put(BSE_D0ACTOT, d0actot); + base.put(BSE_D0SNSRIT, d0snsrit); + base.put(BSE_D0ROPE, d0rope); + + ret1 = base.rewrite(); + ret2 = basebis.rewrite(); + + return TRUE; +} + +// Calcola i riporti dai quadri al quadro I per la ditta codditta. +// Esegue i riporti anche su dichiarante se specificato +bool TRiporti::set(const TString& quadro, int anno, const long codditta, const long dichiarante) +{ + TString16 filt; + TRelation* rel; + TCursor* cur; + long codditta_dich = 0L; + + _codditta = codditta ? codditta : get_firm_770(); + _annodic = anno ? anno : anno_770(); + _quadro = quadro; + + this_riporti = this; + + if (quadro == "A" || quadro == "*") + { + rel = new TRelation (LF_QUAA); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_A(cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "A1" || quadro == "*") + { + rel = new TRelation (LF_QUAA1); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_A1(cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "A2" || quadro == "*") + { + rel = new TRelation (LF_QUAA2); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_A2(cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "A3" || quadro == "*") + { + rel = new TRelation (LF_QUAA3); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_A3(cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "B" || quadro == "*") + { + rel = new TRelation (LF_QUAB); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_B(cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "B1" || quadro == "*") + { + rel = new TRelation (LF_QUAB1); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_B1(cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "H" || quadro == "*") + { + rel = new TRelation (LF_QUAH); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + cur->set_filterfunction (filter_func); + calcola_riporti_H(cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "C" || quadro == "*") + { + rel = new TRelation (LF_QUAC); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_C (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "D" || quadro == "*") + { + rel = new TRelation (LF_QUAD); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_D (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "D1" || quadro == "*") + { + rel = new TRelation (LF_QUAD1); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_D1 (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "E" || quadro == "*") + { + rel = new TRelation (LF_QUAE); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_E (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "E1" || quadro == "*") + { + rel = new TRelation (LF_QUAE1); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_E1 (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "E2" || quadro == "*") + { + rel = new TRelation (LF_QUAE2); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_E2 (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "F" || quadro == "*") + { + rel = new TRelation (LF_QUAF); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_F (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "F1" || quadro == "*") + { + rel = new TRelation (LF_QUAF1); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_F1 (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "F2" || quadro == "*") + { + rel = new TRelation (LF_QUAF2); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_F2 (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "G" || quadro == "*") + { + rel = new TRelation (LF_QUAG); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_G (cur, dichiarante); + delete cur; delete rel; + } + + if (quadro == "G1" || quadro == "*") + { + rel = new TRelation (LF_QUAG1); + filt.format("CODDITTA=%ld", _codditta); + cur = new TCursor(rel,filt,1); + calcola_riporti_G1 (cur, dichiarante); + delete cur; delete rel; + } + + + setta_flag_quadro_I(_codditta); + + return TRUE; +} + +void TRiporti::calcola_riporti_A(TCursor* cur, const long dich) +{ + TLocalisamfile base (LF_BASE); + real totale,somme,ritenute; + bool almeno_una_riga = FALSE; + double dipendenti; + double num_rec; + + real a0cobb,a0cnet,a0eprev,a0iitra,a0cter,a0timp,a0ilor,a0tdet,a0rter,a0rdat; + real a0erit,a0carr,a0aarr,a0darr,a0rarr,a0cinps,a0ciiaut,a0crimpras; + + a0cobb = ZERO; a0cnet = ZERO; a0eprev = ZERO; a0iitra = ZERO; a0cter = ZERO; + a0timp = ZERO; a0ilor = ZERO; a0tdet = ZERO; a0rter = ZERO; a0rdat = ZERO; + a0erit = ZERO; a0carr = ZERO; a0aarr = ZERO; a0darr = ZERO; a0rarr = ZERO; + a0cinps = ZERO; a0ciiaut = ZERO; a0crimpras = ZERO; + + dipendenti = 0; + num_rec = 0; + + (*cur) = 0L; + + TRecnotype items = cur->items(); + TString scritta(60); + + scritta.format("Calcolo riporti del quadro A per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + long coddipp = -1; + + for (int i = 0; i < items; i++, ++(*cur)) + { + progn.addstatus(1); + + long coddip = cur->curr().get_long(QUA_CODIP); + + bool compilato = FALSE; + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + for (int i = 0; i < CAMPI_A; i++) + if (cur->curr().get_real(_campi_A[i]) != ZERO) + { + compilato = TRUE; + break; + } + + if (!compilato) + continue; + + num_rec++; + + if (coddip != coddipp) + if (!is_erede(_codditta,coddip)) + dipendenti++; + + coddipp = coddip; + + int causa = cur->curr().get_int (QUA_CAUSA); + TString codfis = cur->curr().get (QUA_CODFISDL); + char retcon = cur->curr().get_char(QUA_RETCON); + + if (causa == 0 && retcon != 'B' && codfis.empty()) + { + a0cobb += cur->curr().get_real(QUA_COBBDIP); + a0cnet += cur->curr().get_real(QUA_COMPNETTI); + a0eprev += cur->curr().get_real(QUA_AIENTIPREV); + a0iitra += cur->curr().get_real(QUA_TOTIMP); +// a0cter += cur->curr().get_real(QUA_CCTAMMCONT) + cur->curr().get_real(QUA_CCTAMNACON); + a0cter += cur->curr().get_real(QUA_CCTAMMCONT); + a0timp += cur->curr().get_real(QUA_TOTIMP2); + a0ilor += cur->curr().get_real(QUA_ICTOTIMP); + a0tdet += cur->curr().get_real(QUA_TOTDET); + a0rter += cur->curr().get_real(QUA_AMRIOT); + a0rdat += cur->curr().get_real(QUA_AMRIODL); + a0erit += cur->curr().get_real(QUA_ECCRITRIMB); + a0carr += cur->curr().get_real(QUA_COBBDIP); + a0aarr += cur->curr().get_real(QUA_AMMIMP); + a0darr += cur->curr().get_real(QUA_DETIMPOS); + a0rarr += cur->curr().get_real(QUA_RITESEG); +// a0cinps += cur->curr().get_real(QUA_CFCONINPS); +// a0ciiaut += cur->curr().get_real(QUA_CIIAT); +// a0crimpras += cur->curr().get_real(QUA_CIPA); + } + } + + double app = num_rec / 9; + double foglid = ceil(app); + + long fogli = (long)foglid; + +// base.setkey(2); + base.zero(); + if (dich) + { + base.put("TIPOQUA", COD_QUA_I_DIC); + base.put(BSE_CODDITTA, dich); + } + else + base.put(BSE_CODDITTA, _codditta); + + if (base.read(_isequal,_testandlock) == NOERR) + { + base.put(BSE_A0NFCOM, fogli); + base.put(BSE_A0NLDIP, (long)dipendenti); + base.put(BSE_A0COBB, a0cobb); + base.put(BSE_A0CNET, a0cnet); + base.put(BSE_A0EPREV, a0eprev); + base.put(BSE_A0IITRA, a0iitra); + base.put(BSE_A0CTER, a0cter); + base.put(BSE_A0TIMP, a0timp); + base.put(BSE_A0ILOR, a0ilor); + base.put(BSE_A0TDET, a0tdet); + base.put(BSE_A0RTER, a0rter); + base.put(BSE_A0RDAT, a0rdat); + base.put(BSE_A0ERIT, a0erit); + base.put(BSE_A0CARR, a0carr); + base.put(BSE_A0AARR, a0aarr); + base.put(BSE_A0DARR, a0darr); + base.put(BSE_A0RARR, a0rarr); +// base.put(BSE_A0CINPS, a0cinps); +// base.put(BSE_A0CIIAUT, a0ciiaut); +// base.put(BSE_A0CRIMPRAS, a0crimpras); + base.rewrite(); + base.reread(_unlock); + setta_flag_quadri_comp(_codditta, A, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_A3(TCursor* cur, const long dich) +{ + TLocalisamfile base (LF_BASE); + bool almeno_una_riga = FALSE; + double dipendenti; + double num_rec; + + real a3rept10,a3rept12; + + a3rept10 = ZERO; + a3rept12 = ZERO; + + dipendenti = 0; + num_rec = 0; + + (*cur) = 0L; + + TRecnotype items = cur->items(); + TString scritta(60); + + scritta.format("Calcolo riporti del quadro A3 per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + for (int i = 0; i < items; i++, ++(*cur)) + { + progn.addstatus(1); + + long coddip = cur->curr().get_long(QUA_CODIP); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + if ( (cur->curr().get_real(QA3_REDCOR16) == ZERO) && (cur->curr().get_real(QA3_REDCOR18) == ZERO)) + continue; + + dipendenti++; + + a3rept10 += cur->curr().get_real(QA3_REDCOR16); + a3rept12 += cur->curr().get_real(QA3_REDCOR18); + } + + double app = dipendenti / 35; + double foglid = ceil(app); + + long fogli = (long)foglid; + +// base.setkey(2); + base.zero(); + if (dich) + { + base.put("TIPOQUA", COD_QUA_I_DIC); + base.put(BSE_CODDITTA, dich); + } + else + base.put(BSE_CODDITTA, _codditta); + + if (base.read(_isequal,_testandlock) == NOERR) + { + base.put(BSE_A3NFCOM, fogli); + base.put(BSE_A3NUMPER, (long)dipendenti); + base.put(BSE_A3REPT10, a3rept10); + base.put(BSE_A3REPT12, a3rept12); + base.rewrite(); + base.reread(_unlock); + setta_flag_quadri_comp(_codditta, A3, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_A1(TCursor* cur, const long dich) +{ + bool almeno_una_riga = FALSE; + + (*cur) = 0L; + + TRecnotype items = cur->items(); + TString scritta(60); + + scritta.format("Calcolo riporti del quadro A1 per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + for (int i = 0; i < items; i++, ++(*cur)) + { + progn.addstatus(1); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + } + + setta_flag_quadri_comp(_codditta, A1, almeno_una_riga, dich); +} + +void TRiporti::calcola_riporti_A2(TCursor* cur, const long dich) +{ + bool almeno_una_riga = FALSE; + + (*cur) = 0L; + + TRecnotype items = cur->items(); + TString scritta(60); + + scritta.format("Calcolo riporti del quadro A2 per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + for (int i = 0; i < items; i++, ++(*cur)) + { + progn.addstatus(1); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + } + + setta_flag_quadri_comp(_codditta, A2, almeno_una_riga, dich); +} + +const char* build_fill_string(TString& qcomp) +{ +// NB cambiare qui il numero dei quadri + const int NUM_QUADRI = 25; // sono 26 posizioni perche' parte da 0 + const int agg = NUM_QUADRI - qcomp.len(); + __tmp.cut(agg); + __tmp.fill(' ', agg); + return __tmp; +} + +void TRiporti::setta_flag_quadri_comp(const long codditta, const int quadro, const bool almeno_una_riga, const long dich) +{ + TLocalisamfile basebis(LF_BASEBIS); + + basebis.setkey(1); + basebis.zero(); + basebis.put(BSE_CODDITTA, codditta); + if (basebis.read(_isequal, _testandlock) == NOERR) + { + TString qcomp(basebis.get(BSE_QCOMP)); + TString dep(build_fill_string(qcomp)); + qcomp << dep; +// TString qcomp (format("%25s", (const char*) app)); + + if (almeno_una_riga) + qcomp[(int)quadro] = 'X'; + else + qcomp[(int)quadro] = ' '; + + basebis.put(BSE_QCOMP, qcomp); + basebis.rewrite(); + basebis.reread(_unlock); + } + else + warning_box("Dichiarazione non presente: impossibile registrare il campo Quadri compilati"); + +// +// Setta flag quadri compilati del dichiarante; cio' va fatto in 3 casi: +// +// 1. dalla gestione dei singoli quadri di una ditta "estinta". +// 2. dal prg "Riporti" del dichiarante. +// 3. dalla gestione dei quadri del dichiarante stesso. +// + const long codic = sogg_estinto(codditta); + const long ha_dichiarante = dich ? dich : codic; + const bool sono_dichiarante = sogg_dic(codditta); + + if (ha_dichiarante || sono_dichiarante) + { + basebis.setkey(1); + basebis.zero(); + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSE_CODDITTA, sono_dichiarante ? codditta : ha_dichiarante); + if (basebis.read(_isequal, _testandlock) == NOERR) + { + TString qcomp(basebis.get(BSE_QCOMP)); + TString dep(build_fill_string(qcomp)); + qcomp << dep; +// TString qcomp (format("%25s", (const char*) app)); + + if (almeno_una_riga) + qcomp[(int)quadro] = 'X'; + else + qcomp[(int)quadro] = ' '; + + basebis.put(BSE_QCOMP, qcomp); + basebis.rewrite(); + basebis.reread(_unlock); + } + else + warning_box("Dichiarazione non presente: impossibile registrare il campo Quadri compilati"); + } +} + +void TRiporti::setta_flag_quadro_I(const long codditta, const long dich) +{ + bool compilato = FALSE; + TLocalisamfile base (LF_BASE); + TLocalisamfile basebis (LF_BASEBIS); + + base.setkey(1); + base.zero(); + base.put(BSE_CODDITTA, codditta); + base.read(); + basebis.setkey(1); + basebis.zero(); + basebis.put(BSB_CODDITTA, codditta); + basebis.read(); + + TString qcomp(basebis.get(BSE_QCOMP)); + TString dep(build_fill_string(qcomp)); + qcomp << dep; +// TString qcomp (format("%25s", (const char*) app)); + + for (int i = 0; i < CAMPI_IB1; i++) + if (base.get_real(_campi_I1[i]) != ZERO) + { + compilato = TRUE; + break; + } + + if (!compilato) + { + TLocalisamfile basebis (LF_BASEBIS); + basebis.setkey(1); + basebis.zero(); + basebis.put(BSB_CODDITTA, codditta); + basebis.read(); + + for (int i = 0; i < CAMPI_IB2; i++) + if (basebis.get_real(_campi_I2[i]) != ZERO) + { + compilato = TRUE; + break; + } + } + + if (compilato) + qcomp[(int)I] = 'X'; + else + qcomp[(int)I] = ' '; + + basebis.put(BSE_QCOMP, qcomp); + basebis.rewrite(); +} + +void TRiporti::calcola_riporti_H(TCursor* cur, const long dich) +{ + TLocalisamfile basebis (LF_BASEBIS); + real ritdat,ritlav; + bool almeno_una_riga = FALSE; + + ritdat = ZERO; + ritlav = ZERO; + + (*cur) = 0L; + + TRecnotype items = cur->items(); +// if (items == 0L) return; + TString scritta(60); + scritta.format("Calcolo riporti del quadro H per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + for (int i = 0; i < items; i++, ++(*cur)) + { + ritdat += cur->curr().get_real(QUH_H1DAT); + ritlav += cur->curr().get_real(QUH_H1LAV); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + basebis.setkey(1); + basebis.zero(); + if (dich) + { + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSB_CODDITTA, dich); + } + else + basebis.put(BSB_CODDITTA, _codditta); + + if (basebis.read(_isequal, _testandlock) == NOERR) + { + basebis.put(BSB_H0CODLAV, ritdat); + basebis.put(BSB_H0COLDIP, ritlav); + basebis.rewrite(); + basebis.reread(_unlock); + setta_flag_quadri_comp(_codditta, H, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_C(TCursor* cur, const long dich) +{ + TLocalisamfile base (LF_BASE); + real totale,somme,ritenute; + bool almeno_una_riga = FALSE; + double percipienti; + + percipienti = 0; + + totale = ZERO; + somme = ZERO; + ritenute = ZERO; + + (*cur) = 0L; + + TRecnotype items = cur->items(); +// if (items == 0L) return; + TString scritta(60); + scritta.format("Calcolo riporti del quadro C per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + char tipoap = 'Z'; + long codanagrp = -1; + + for (int i = 0; i < items; i++, ++(*cur)) + { + char tipoa = cur->curr().get_char(QUC_TIPOA); + long codanagr = cur->curr().get_long(QUC_CODANAGR); + + if ( (tipoa != tipoap) || (codanagr != codanagrp) ) + percipienti++; + + tipoap = tipoa; + codanagrp = codanagr; + + totale += cur->curr().get_real(QUC_TOTALE); + somme += cur->curr().get_real(QUC_SOMME); + ritenute += cur->curr().get_real(QUC_RITENUTE); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + double app = percipienti / 36; + double foglid = ceil(app); + + long fogli = (long)foglid; + +// base.setkey(2); + base.zero(); + if (dich) + { + base.put("TIPOQUA", COD_QUA_I_DIC); + base.put(BSE_CODDITTA, dich); + } + else + base.put(BSE_CODDITTA, _codditta); + + if (base.read(_isequal,_testandlock) == NOERR) + { + base.put(BSE_C0NFCOM, fogli); + base.put(BSE_C0NLASS, (long)percipienti); + base.put(BSE_C0ACTOT, totale); + base.put(BSE_C0SNSRIT, somme); + base.put(BSE_C0ROPE, ritenute); + base.rewrite(); + base.reread(_unlock); + setta_flag_quadri_comp(_codditta, C, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_D(TCursor* cur, const long dich) +{ + TLocalisamfile base (LF_BASE); + real totale,somme,ritenute; + bool almeno_una_riga = FALSE; + int percipienti; + int fisiche,giuridiche; + + percipienti = 0; + fisiche = 0; + giuridiche = 0; + + totale = ZERO; + somme = ZERO; + ritenute = ZERO; + + (*cur) = 0L; + + TRecnotype items = cur->items(); +// if (items == 0L) return; + TString scritta(60); + scritta.format("Calcolo riporti del quadro D per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + char tipoap = 'Z'; + long codanagrp = -1; + + for (int i = 0; i < items; i++, ++(*cur)) + { + char tipoa = cur->curr().get_char(QUD_TIPOA); + long codanagr = cur->curr().get_long(QUD_CODANAGR); + + if ( (tipoa != tipoap) || (codanagr != codanagrp) ) + percipienti++; + + tipoap = tipoa; + codanagrp = codanagr; + + if (tipoa == 'F') + fisiche++; + else + if (tipoa == 'G') + giuridiche++; + + totale += cur->curr().get_real(QUD_TOTALE); + somme += cur->curr().get_real(QUD_SOMME); + ritenute += cur->curr().get_real(QUD_IMPORTO); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + const long fogli = fogli_compilati(fisiche,giuridiche,QD_FISICHE_PER_FOGLIO,QD_NOFISICHE_PER_FOGLIO); + + base.setkey(1); + base.zero(); + if (dich) + { + base.put("TIPOQUA", COD_QUA_I_DIC); + base.put(BSE_CODDITTA, dich); + } + else + base.put(BSE_CODDITTA, _codditta); + + if (base.read(_isequal,_testandlock) == NOERR) + { + base.put(BSE_D0NFCOM, fogli); + base.put(BSE_D0NLAUT, (long)percipienti); + base.put(BSE_D0ACTOT, totale); + base.put(BSE_D0SNSRIT, somme); + base.put(BSE_D0ROPE, ritenute); + base.rewrite(); + base.reread(_unlock); + setta_flag_quadri_comp(_codditta, D, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_D1(TCursor* cur, const long dich) +{ + TLocalisamfile base (LF_BASE); + real totale,somme,importo; + bool almeno_una_riga = FALSE; + int percipienti,fisiche,giuridiche; + + percipienti = 0; + fisiche = 0; + giuridiche = 0; + + totale = ZERO; + somme = ZERO; + importo = ZERO; + + (*cur) = 0L; + + TRecnotype items = cur->items(); +// if (items == 0L) return; + TString scritta(60); + scritta.format("Calcolo riporti del quadro D1 per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + char tipoap = 'Z'; + long codanagrp = -1; + + for (int i = 0; i < items; i++, ++(*cur)) + { + char tipoa = cur->curr().get_char(QD1_TIPOA); + long codanagr = cur->curr().get_long(QD1_CODANAGR); + + if ( (tipoa != tipoap) || (codanagr != codanagrp) ) + percipienti++; + + tipoap = tipoa; + codanagrp = codanagr; + + if (tipoa == 'F') + fisiche++; + else + if (tipoa == 'G') + giuridiche++; + + totale += cur->curr().get_real(QD1_TOTALE); + somme += (cur->curr().get_real(QD1_QUOTAPRO)) + (cur->curr().get_real(QD1_SPESEANT)); + importo += cur->curr().get_real(QD1_IMPORTO); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + const long fogli = fogli_compilati(fisiche,giuridiche,QD1_FISICHE_PER_FOGLIO,QD1_NOFISICHE_PER_FOGLIO); + + base.setkey(1); + base.zero(); + if (dich) + { + base.put("TIPOQUA", COD_QUA_I_DIC); + base.put(BSE_CODDITTA, dich); + } + else + base.put(BSE_CODDITTA, _codditta); + + if (base.read(_isequal,_testandlock) == NOERR) + { + base.put(BSE_D1NFCOM, fogli); + base.put(BSE_D1NPER, (long)percipienti); + base.put(BSE_D1TACOR, totale); + base.put(BSE_D1SNSRIT, somme); + base.put(BSE_D1ROPE, importo); + base.rewrite(); + base.reread(_unlock); + setta_flag_quadri_comp(_codditta, D1, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_E(TCursor* cur, const long dich) +{ + TLocalisamfile basebis (LF_BASEBIS); + real imponibile,somme,ritenute; + bool almeno_una_riga = FALSE; + int percipienti,fisiche,giuridiche; + + percipienti = 0; + fisiche = 0; + giuridiche = 0; + + imponibile = ZERO; + somme = ZERO; + ritenute = ZERO; + + (*cur) = 0L; + + TRecnotype items = cur->items(); +// if (items == 0L) return; + TString scritta(60); + scritta.format("Calcolo riporti del quadro E per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + char tipoap = 'Z'; + long codanagrp = -1; + + for (int i = 0; i < items; i++, ++(*cur)) + { + char tipoa = cur->curr().get_char(QUE_TIPOA); + long codanagr = cur->curr().get_long(QUE_CODANAGR); + + if ( (tipoa != tipoap) || (codanagr != codanagrp) ) + percipienti++; + + tipoap = tipoa; + codanagrp = codanagr; + + if (tipoa == 'F') + fisiche++; + else + if (tipoa == 'G') + giuridiche++; + + imponibile += cur->curr().get_real(QUE_IMPONIBILE); + somme += cur->curr().get_real(QUE_SOMME); + ritenute += cur->curr().get_real(QUE_IMPORTO); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + const long fogli = fogli_compilati(fisiche,giuridiche,QE_FISICHE_PER_FOGLIO,QE_NOFISICHE_PER_FOGLIO); + + basebis.setkey(1); + basebis.zero(); + if (dich) + { + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSB_CODDITTA, dich); + } + else + basebis.put(BSB_CODDITTA, _codditta); + + if (basebis.read(_isequal,_testandlock) == NOERR) + { + basebis.put(BSB_E0NFCOM, fogli); + basebis.put(BSB_E0NPER, (long)percipienti); + basebis.put(BSB_E0AIMP, imponibile); + basebis.put(BSB_E0SNSRIT, somme); + basebis.put(BSB_E0ROPE, ritenute); + basebis.rewrite(); + basebis.reread(_unlock); + setta_flag_quadri_comp(_codditta, E, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_E1(TCursor* cur, const long dich) +{ + TLocalisamfile basebis (LF_BASEBIS); + TRelation* relp; + TCursor* curp; + TString16 filt; + real ammontare,somme,ritenute; + real comp,impo,rite; + bool almeno_una_riga = FALSE; + int percipienti,righep; + + percipienti = 0; + righep = 0; + + ammontare = ZERO; + somme = ZERO; + ritenute = ZERO; + + comp = ZERO; + impo = ZERO; + rite = ZERO; + + (*cur) = 0L; + + TRecnotype items = cur->items(); +// if (items == 0L) return; + TString scritta(60); + scritta.format("Calcolo riporti del quadro E1 per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + char tipoap = 'Z'; + long codanagrp = -1; + + for (int i = 0; i < items; i++, ++(*cur)) + { + char tipoa = cur->curr().get_char(QE1_TIPOA); + long codanagr = cur->curr().get_long(QE1_CODANAGR); + + if ( (tipoa != tipoap) || (codanagr != codanagrp) ) + percipienti++; + + tipoap = tipoa; + codanagrp = codanagr; + + ammontare += cur->curr().get_real(QE1_AMMONTARE); + somme += cur->curr().get_real(QE1_SOMME); + ritenute += cur->curr().get_real(QE1_IMPORTO); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + relp = new TRelation (LF_PROSPE1); + filt.format("CODDITTA=%ld", _codditta); + curp = new TCursor(relp,filt,1); + (*curp) = 0L; + TRecnotype itemp = curp->items(); + scritta.format("Calcolo riporti del prospetto del quadro E1 per la ditta %ld", _codditta); + TProgind prognp(itemp, scritta, FALSE, TRUE); + + for (int j = 0; j < itemp; j++, ++(*curp)) + { + righep++; + + comp += curp->curr().get_real(PRE_COMPENSO); + impo += curp->curr().get_real(PRE_IMPONIBILE); + rite += curp->curr().get_real(PRE_RITENUTA); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + prognp.addstatus(1); + } + + delete curp; + delete relp; + + const long fogli = fogli_compilati(percipienti,righep,QE1_PERCIPIENTI_PER_FOGLIO,QE1_RIGHE_PROSPETTO); + + basebis.setkey(1); + basebis.zero(); + if (dich) + { + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSB_CODDITTA, dich); + } + else + basebis.put(BSB_CODDITTA, _codditta); + + if (basebis.read(_isequal, _testandlock) == NOERR) + { + basebis.put(BSB_E1NFCOM, fogli); + basebis.put(BSB_E1NPER, (long)percipienti); + basebis.put(BSB_E1SCOR, somme); + basebis.put(BSB_E1BCOM, ammontare ); + basebis.put(BSB_E1ROPE, ritenute ); + basebis.put(BSB_E1ACOM, comp); + basebis.put(BSB_E1BCOM2, impo); + basebis.put(BSB_E1ROPE2, rite); + basebis.rewrite(); + basebis.reread(_unlock); + setta_flag_quadri_comp(_codditta, E1, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_E2(TCursor* cur, const long dich) +{ + TLocalisamfile basebis (LF_BASEBIS); + long fisiche, no_fisiche; + long fogli_comp; + real soggrit, rope; + real comp,impo,rite; + bool almeno_una_riga = FALSE; + double percipienti; + + fisiche = no_fisiche = fogli_comp = 0L; + percipienti = 0.00; + + soggrit = ZERO; + rope = ZERO; + + comp = ZERO; + impo = ZERO; + rite = ZERO; + + (*cur) = 0L; + + TRecnotype items = cur->items(); + TString scritta(60); + scritta.format("Calcolo riporti del quadro E2 per la ditta %ld", _codditta); + + TProgind progn(items, scritta, FALSE, TRUE); + + char tipoap = 'Z'; + long codanagrp = -1; + + for (int i = 0; i < items; i++, ++(*cur)) + { + const char tipoa = cur->curr().get_char(QE2_TIPOA); + const long codanagr = cur->curr().get_long(QE2_CODANAGR); + + if ( (tipoa != tipoap) || (codanagr != codanagrp) ) + percipienti++; + + tipoap = tipoa; + codanagrp = codanagr; + + if (tipoa == 'F') + fisiche++; + else + no_fisiche++; + + soggrit += cur->curr().get_real(QE2_SOGGRIT); + rope += cur->curr().get_real(QE2_ROPE); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + fogli_comp = fogli_compilati(fisiche,no_fisiche,QE2_FISICHE_PER_FOGLIO,QE2_NOFISICHE_PER_FOGLIO); + + basebis.setkey(1); + basebis.zero(); + if (dich) + { + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSB_CODDITTA, dich); + } + else + basebis.put(BSB_CODDITTA, _codditta); + + if (basebis.read(_isequal, _testandlock) == NOERR) + { + basebis.put(BSB_E2NFCOM, fogli_comp); + basebis.put(BSB_E2NPER, (long)percipienti); + basebis.put(BSB_E2SSRIT, soggrit); + basebis.put(BSB_E2ROPE, rope ); + basebis.rewrite(); + basebis.reread(_unlock); + setta_flag_quadri_comp(_codditta, E2, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_F(TCursor* cur, const long dich) +{ + TLocalisamfile basebis (LF_BASEBIS); + TLocalisamfile* rf; + TRecord_array* _prosp_a, *_prosp_b, *_prosp_c, *_prosp_d; + real a_sogrit, a_rope, a_totacc, f_rope, e_rope, f_sogrit, e_sogrit; + real b_sogrit, b_rope, c_sogrit, c_rope, d_sogrit, d_rope; + real i20_1, i20_2, i20_3, i20_4, i20_5, i20_6, i21_1, i21_2, i21_3; + bool almeno_una_riga = FALSE; + + a_sogrit = a_rope = a_totacc = ZERO; + b_sogrit = b_rope = c_sogrit = c_rope = d_sogrit = d_rope = ZERO; + f_rope = e_rope = f_sogrit = e_sogrit = ZERO; + i20_1 = i20_2 = i20_3 = i20_4 = i20_5 = i20_6 = i21_1 = i21_2 = i21_3 = ZERO; + + (*cur) = 0L; + TRecnotype items = cur->items(); + + TString scritta(60); + scritta.format("Calcolo riporti del quadro F per la ditta %ld", _codditta); + + rf = new TLocalisamfile(LF_RIGHEF); + + TRectype dep(rf->curr()); + dep.zero(); + dep.put("CODDITTA", _codditta); + dep.put("TIPOPRO", "A"); + _prosp_a = new TRecord_array(dep, "NPROG"); + _prosp_a->read(dep); + dep.put("TIPOPRO", "B"); + _prosp_b = new TRecord_array(dep, "NPROG"); + _prosp_b->read(dep); + dep.put("TIPOPRO", "C"); + _prosp_c = new TRecord_array(dep, "NPROG"); + _prosp_c->read(dep); + dep.put("TIPOPRO", "D"); + _prosp_d = new TRecord_array(dep, "NPROG"); + _prosp_d->read(dep); + + items = _prosp_a->last_row() + _prosp_b->last_row() + _prosp_c->last_row() + _prosp_d->last_row(); + TProgind progn(items, scritta, FALSE, TRUE); + + for (int i = 1; i <= _prosp_a->last_row(); i++) + { + TRectype& r = _prosp_a->row(i, TRUE); + a_sogrit += r.get_real(RQF0_SOGRIT); + a_rope += r.get_real(RQF0_ROPE); + a_totacc += r.get_real(RQF0_TOTACC); + if (!almeno_una_riga) almeno_una_riga = TRUE; + progn.addstatus(1); + } + i20_1 = a_sogrit; + i20_2 = a_rope; + i20_3 = a_totacc; + i20_4 = cur->curr().get_real(QF0_A1); + i20_5 = cur->curr().get_real(QF0_A2); + i20_6 = cur->curr().get_real(QF0_A3); + i21_1 = cur->curr().get_real(QF0_A4); + e_sogrit = cur->curr().get_real(QF0_ESOGRIT); + f_sogrit = cur->curr().get_real(QF0_FSOGRIT); + e_rope = cur->curr().get_real(QF0_EROPE); + f_rope = cur->curr().get_real(QF0_FROPE); + + for (i = 1; i <= _prosp_b->last_row(); i++) + { + TRectype& r = _prosp_b->row(i, TRUE); + b_sogrit += r.get_real(RQF0_SOGRIT); + b_rope += r.get_real(RQF0_ROPE); + if (!almeno_una_riga) almeno_una_riga = TRUE; + progn.addstatus(1); + } + + for (i = 1; i <= _prosp_c->last_row(); i++) + { + TRectype& r = _prosp_c->row(i, TRUE); + c_sogrit += r.get_real(RQF0_SOGRIT); + c_rope += r.get_real(RQF0_ROPE); + if (!almeno_una_riga) almeno_una_riga = TRUE; + progn.addstatus(1); + } + + for (i = 1; i <= _prosp_d->last_row(); i++) + { + TRectype& r = _prosp_d->row(i, TRUE); + d_sogrit += r.get_real(RQF0_SOGRIT); + d_rope += r.get_real(RQF0_ROPE); + if (!almeno_una_riga) almeno_una_riga = TRUE; + progn.addstatus(1); + } + + i21_2 += b_sogrit + c_sogrit + d_sogrit + e_sogrit + f_sogrit; + i21_3 += b_rope + c_rope + d_rope + e_rope + f_rope; + + basebis.setkey(1); + basebis.zero(); + if (dich) + { + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSB_CODDITTA, dich); + } + else + basebis.put(BSB_CODDITTA, _codditta); + + if (basebis.read(_isequal, _testandlock) == NOERR) + { + basebis.put(BSB_F0SRITA, i20_1); + basebis.put(BSB_F0ROPEA, i20_2); + basebis.put(BSB_F0TACCA, i20_3); + basebis.put(BSB_F0EDACCA, i20_4); + basebis.put(BSB_F0ERIMA, i20_5); + basebis.put(BSB_F0SSVA, i20_6); + basebis.put(BSB_F0ROPEVA, i21_1); + basebis.put(BSB_F0SSRITBF, i21_2); + basebis.put(BSB_F0ROPEBF, i21_3); + basebis.rewrite(); + basebis.reread(_unlock); + setta_flag_quadri_comp(_codditta, F, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_F1(TCursor* cur, const long dich) +{ + TLocalisamfile basebis (LF_BASEBIS); + TLocalisamfile* rf; + TRecord_array* _prosp_b; + real b_sogrit, b_rope; + real i22_1, i22_2; + real f1a1=ZERO, f1a2=ZERO; + bool almeno_una_riga = FALSE; + + b_sogrit = b_rope = ZERO; + i22_1 = i22_2 = ZERO; + + (*cur) = 0L; + TRecnotype items = cur->items(); + + TString scritta(60); + scritta.format("Calcolo riporti del quadro F-1 per la ditta %ld", _codditta); + + TLocalisamfile f1(LF_QUAF1); + f1.zero(); + f1.put("CODDITTA", _codditta); + f1.read(); + f1a1 = f1.get_real("F1_A1"); + f1a2 = f1.get_real("F1_A2"); + almeno_una_riga = (f1a1 != ZERO) || (f1a2 != ZERO); + + rf = new TLocalisamfile(LF_RIGHEF1); + + TRectype dep(rf->curr()); + dep.zero(); + dep.put("CODDITTA", _codditta); + dep.put("TIPOPRO", "B"); + _prosp_b = new TRecord_array(dep, "NPROG"); + _prosp_b->read(dep); + + items = _prosp_b->last_row(); + TProgind progn(items, scritta, FALSE, TRUE); + + i22_1 = cur->curr().get_real(QF1_A1); + i22_2 = cur->curr().get_real(QF1_A2); + + for (int i = 1; i <= _prosp_b->last_row(); i++) + { + TRectype& r = _prosp_b->row(i, TRUE); + b_sogrit += r.get_real(RQF1_SOGRIT); + b_rope += r.get_real(RQF1_ROPE); + if (!almeno_una_riga) almeno_una_riga = TRUE; + progn.addstatus(1); + } + + i22_1 += b_sogrit; + i22_2 += b_rope; + + basebis.setkey(1); + basebis.zero(); + if (dich) + { + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSB_CODDITTA, dich); + } + else + basebis.put(BSB_CODDITTA, _codditta); + + if (basebis.read(_isequal, _testandlock) == NOERR) + { + basebis.put(BSB_F1SSRIT, i22_1); + basebis.put(BSB_F1ROPE, i22_2); + basebis.rewrite(); + basebis.reread(_unlock); + setta_flag_quadri_comp(_codditta, F1, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +void TRiporti::calcola_riporti_F2(TCursor* cur, const long dich) +{ + TLocalisamfile basebis (LF_BASEBIS); + TLocalisamfile* rf; + TRecord_array* _prosp_b; + real b_sogrit, b_rope; + real i23_1, i23_2; + bool almeno_una_riga = FALSE; + + b_sogrit = b_rope = ZERO; + i23_1 = i23_2 = ZERO; + + (*cur) = 0L; + TRecnotype items = cur->items(); + + TString scritta(60); + scritta.format("Calcolo riporti del quadro F-2 per la ditta %ld", _codditta); + + rf = new TLocalisamfile(LF_RIGHEF2); + + TRectype dep(rf->curr()); + dep.zero(); + dep.put("CODDITTA", _codditta); + dep.put("TIPOPRO", "B"); + _prosp_b = new TRecord_array(dep, "NPROG"); + _prosp_b->read(dep); + + items = _prosp_b->last_row(); + TProgind progn(items, scritta, FALSE, TRUE); + + for (int i = 1; i <= _prosp_b->last_row(); i++) + { + TRectype& r = _prosp_b->row(i, TRUE); + b_sogrit += r.get_real(RQF2_SOGRIT); + b_rope += r.get_real(RQF2_ROPE); + if (!almeno_una_riga) almeno_una_riga = TRUE; + progn.addstatus(1); + } + + i23_1 += b_sogrit; + i23_2 += b_rope; + + basebis.setkey(1); + basebis.zero(); + if (dich) + { + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSB_CODDITTA, dich); + } + else + basebis.put(BSB_CODDITTA, _codditta); + + if (basebis.read(_isequal, _testandlock) == NOERR) + { + basebis.put(BSB_F2SSRIT, i23_1); + basebis.put(BSB_F2ROPE, i23_2); + basebis.rewrite(); + basebis.reread(_unlock); + setta_flag_quadri_comp(_codditta, F2, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + +// +// fogli_compilati +// +// Determina il numero di fogli compilati: +// Divide il numero di persone (F o G) trovate per il numero +// di posti previsto nel modulo. +// Se il resto e' diverso da 0 conta un foglio in piu' +// +long fogli_compilati(const long fisiche, const long no_fisiche, const int fisiche_x_foglio, const int nofisiche_x_foglio) +{ + long fogli_compilati=0L, fogli_fisiche=0L, fogli_nofisiche=0L; + + if (fisiche > 0L) + { + fogli_fisiche = fisiche / fisiche_x_foglio; + if (fisiche % fisiche_x_foglio) + fogli_fisiche += 1; + } + + if (no_fisiche > 0L) + { + fogli_nofisiche = no_fisiche / nofisiche_x_foglio; + if (no_fisiche % nofisiche_x_foglio) + fogli_nofisiche += 1; + } + + fogli_compilati = fogli_fisiche > fogli_nofisiche ? fogli_fisiche : fogli_nofisiche; + + return fogli_compilati; +} + +void TRiporti::calcola_riporti_G(TCursor* cur, const long dich) +{ + TLocalisamfile basebis (LF_BASEBIS); + real b_sogrit, b_rope; + real i24_1, i24_2, i24_3, i24_4, i24_5, i24_6; + real i24_7, i24_8, i24_9, i24_10, i24_11, i24_12; + real i24_13, i25_4; + bool almeno_una_riga = FALSE; + long fogli_comp = 0L, percipienti=0L; + TRelation* relp; + TCursor* curp; + int fisiche = 0, no_fisiche = 0; + TString filt(20); + + i24_1 = i24_2 = i24_3 = i24_4 = i24_5 = i24_6 = ZERO; + i24_7 = i24_8 = i24_9 = i24_10 = i24_11 = i24_12 = ZERO; + i24_13 = ZERO; + i25_4 = ZERO; + + (*cur) = 0L; + TRecnotype items = cur->items(); + almeno_una_riga = items > 0L; + +// Legge quadro G + i24_2 = cur->curr().get_real(QG_P1NUMQT); + i24_3 = cur->curr().get_real(QG_P1AMMT); + i24_4 = cur->curr().get_real(QG_P2VALT); + i24_5 = cur->curr().get_real(QG_P22TOT); + i24_6 = cur->curr().get_real(QG_P33TOT); + i24_7 = cur->curr().get_real(QG_P35TOT); + i24_8 = cur->curr().get_real(QG_P36TOT); + i24_9 = cur->curr().get_real(QG_P37TOT); + + TString scritta(60); +// scritta.format("Calcolo riporti del quadro G per la ditta %ld", _codditta); + +// Scorre quadrogd (distinta) + relp = new TRelation (LF_QUAGD); + filt.format("CODDITTA=%ld", _codditta); + curp = new TCursor(relp,filt,1); + (*curp) = 0L; + TRecnotype ItemDistinta = curp->items(); + scritta.format("Calcolo riporti del quadro G per la ditta %ld", _codditta); + TProgind progn(ItemDistinta, scritta, FALSE, TRUE); + + char tipoap = 'Z'; + long codanagrp = -1; + + for (int i = 0; i < ItemDistinta; i++, ++(*curp)) + { + const char tipoa = curp->curr().get_char(QGD_TIPOA); + const long codanagr = curp->curr().get_long(QGD_CODANAGR); + + if ( (tipoa != tipoap) || (codanagr != codanagrp) ) + percipienti++; + + tipoap = tipoa; + codanagrp = codanagr; + + if (tipoa == 'F') + fisiche++; + else + no_fisiche++; + + i24_11 += curp->curr().get_real(QGD_UTSPETT); + i24_12 += curp->curr().get_real(QGD_UTPAG); + i24_13 += curp->curr().get_real(QGD_ROPE); + i25_4 += curp->curr().get_real(QGD_ROPESPET); + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + fogli_comp = fogli_compilati(fisiche,no_fisiche,QGD_FISICHE_PER_FOGLIO,QGD_NOFISICHE_PER_FOGLIO); + + basebis.setkey(1); + basebis.zero(); + if (dich) + { + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSB_CODDITTA, dich); + } + else + basebis.put(BSB_CODDITTA, _codditta); + + if (basebis.read(_isequal, _testandlock) == NOERR) + { + basebis.put(BSB_G0NFCOM, (long)fogli_comp); + basebis.put(BSB_G0NPER, (long)percipienti); + basebis.put(BSB_G0USPE, i24_11); + basebis.put(BSB_G0UPAG, i24_12); + basebis.put(BSB_G0ROPE, i24_13); + basebis.put(BSB_G0NAZI1, i24_2); + basebis.put(BSB_G0UDEN1, i24_3); + basebis.put(BSB_G0UNAT1, i24_4); + basebis.put(BSB_G0IUTI2, i24_5); + basebis.put(BSB_G0USRIT3, i24_6); + basebis.put(BSB_G0RACC3, i24_7); + basebis.put(BSB_G0RIMP3, i24_8); + basebis.put(BSB_G0UNSRIT3, i24_9); + basebis.put(BSB_G0RITSPET, i25_4); + basebis.rewrite(); + basebis.reread(_unlock); + setta_flag_quadri_comp(_codditta, G, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); +} + + +void TRiporti::calcola_riporti_G1 (TCursor* cur, const long dich) +{ + TLocalisamfile basebis (LF_BASEBIS); + real i27_1, i27_2, i27_3, i27_4, i27_5; + bool almeno_una_riga = FALSE; + + i27_1 = i27_2 = i27_3 = i27_4 = i27_5 = ZERO; + (*cur) = 0L; + TRecnotype items = cur->items(); + almeno_una_riga = items > 0L; + + i27_1 = cur->curr().get_real(QG1_P12TOT); + i27_2 = cur->curr().get_real(QG1_P13TOT); + i27_3 = cur->curr().get_real(QG1_P15TOT); + i27_4 = cur->curr().get_real(QG1_P16TOT); + i27_5 = cur->curr().get_real(QG1_P17TOT); + + TString scritta(60); + scritta.format("Calcolo riporti del quadro G-1 per la ditta %ld", _codditta); + TProgind progn(items, scritta, FALSE, TRUE); + + basebis.setkey(1); + basebis.zero(); + if (dich) + { + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSB_CODDITTA, dich); + } + else + basebis.put(BSB_CODDITTA, _codditta); + + if (basebis.read(_isequal, _testandlock) == NOERR) + { + basebis.put(BSB_G1UCOR, i27_1); + basebis.put(BSB_G1USRIT, i27_2); + basebis.put(BSB_G1RACC, i27_3); + basebis.put(BSB_G1RIMP, i27_4); + basebis.put(BSB_G1UNSRIT, i27_5); + basebis.rewrite(); + basebis.reread(_unlock); + setta_flag_quadri_comp(_codditta, G1, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); + + progn.addstatus(1); +} + +HIDDEN const int QB_NUMPERC_PER_FOGLIO = 16; + +void TRiporti::calcola_riporti_B (TCursor* cur, const long dich) +{ + TLocalisamfile base (LF_BASE); + real c3,c4,c5,c6,c7,c8,c9,c10; + real tc3,tc4,tc5,tc6,tc7,tc8,tc9,tc10; + int c2=0; + long c1=0L; + bool almeno_una_riga = FALSE; + int NumPerc=0; + long fogli_comp=0L; + TBit_array baGiaVisto; + + c3=c4=c5=c6=c7=c8=c9=c10=ZERO; + tc3=tc5=tc6=tc7=tc8=tc9=tc10=ZERO; + (*cur) = 0L; + TRecnotype items = cur->items(); + almeno_una_riga = items > 0L; + + TString scritta(60); + scritta.format("Calcolo riporti del quadro B per la ditta %ld", _codditta); + TProgind progn(items, scritta, FALSE, TRUE); + + for (int i = 0; i < items; i++, ++(*cur)) + { + const long codditta = cur->curr().get_long(QB_CODDITTA); + const long coddip = cur->curr().get_long(QB_CODDIP); + + if (!baGiaVisto[coddip]) + { + baGiaVisto.set(coddip); + if (!is_erede(codditta, coddip)) + NumPerc++; + } + + c3 = cur->curr().get_real(QB_C20); + c4 = cur->curr().get_real(QB_C24); + c5 = cur->curr().get_real(QB_C25); + c6 = cur->curr().get_real(QB_C26); + c7 = cur->curr().get_real(QB_C27); + c8 = cur->curr().get_real(QB_C36); + c9 = cur->curr().get_real(QB_C37); + c10 = cur->curr().get_real(QB_C43); + + tc3 += c3; + tc4 += c4; + tc5 += c5; + tc6 += c6; + tc7 += c7; + tc8 += c8; + tc9 += c9; + tc10 += c10; + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + fogli_comp = fogli_compilati(items,0L,QB_NUMPERC_PER_FOGLIO,0); + + c1 = fogli_comp; + c2 = NumPerc; + + base.setkey(1); + base.zero(); + if (dich) + { + base.put("TIPOQUA", COD_QUA_I_DIC); + base.put(BSE_CODDITTA, dich); + } + else + base.put(BSE_CODDITTA, _codditta); + + if (base.read(_isequal, _testandlock) == NOERR) + { + base.put(I8_1,c1); + base.put(I8_2,(long)c2); + base.put(I8_3,tc3); + base.put(I8_4,tc4); + base.put(I8_5,tc5); + base.put(I8_6,tc6); + base.put(I9_7,tc7); + base.put(I9_8,tc8); + base.put(I9_9,tc9); + base.put(I9_10,tc10); + base.rewrite(); + base.reread(_unlock); + setta_flag_quadri_comp(_codditta, B, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); + + progn.addstatus(1); +} + +HIDDEN const int QB1_NUMPERC_PER_FOGLIO = 14; + +void TRiporti::calcola_riporti_B1(TCursor* cur, const long dich) +{ + TLocalisamfile base (LF_BASE); + real c3,c4,c5; + real tc3,tc4,tc5; + int c2=0; + bool almeno_una_riga = FALSE; + int NumPerc=0; + long fogli_comp=0L, c1=0L; + + c3=c4=c5=ZERO; + tc3=tc4=tc5=ZERO; + (*cur) = 0L; + TRecnotype items = cur->items(); + almeno_una_riga = items > 0L; + + TString scritta(60); + scritta.format("Calcolo riporti del quadro B-1 per la ditta %ld", _codditta); + TProgind progn(items, scritta, FALSE, TRUE); + + for (int i = 0; i < items; i++, ++(*cur)) + { + c3 = cur->curr().get_real(QB1_C11); + c4 = cur->curr().get_real(QB1_C12); + c5 = cur->curr().get_real(QB1_C18); + + tc3 += c3; + tc4 += c4; + tc5 += c5; + + NumPerc++; + + if (!almeno_una_riga) + almeno_una_riga = TRUE; + + progn.addstatus(1); + } + + fogli_comp = fogli_compilati(items,0L,QB1_NUMPERC_PER_FOGLIO,0); + + c1 = fogli_comp; +// c2 = items; + + base.setkey(1); + base.zero(); + if (dich) + { + base.put("TIPOQUA", COD_QUA_I_DIC); + base.put(BSE_CODDITTA, dich); + } + else + base.put(BSE_CODDITTA, _codditta); + + if (base.read(_isequal, _testandlock) == NOERR) + { + base.put(I11_1,c1); + base.put(I11_2,(long)items); + base.put(I11_3,tc3); + base.put(I11_4,tc4); + base.put(I11_5,tc5); + base.rewrite(); + base.reread(_unlock); + setta_flag_quadri_comp(_codditta, B1, almeno_una_riga, dich); + } + else + warning_box("Dichiarazione non presente. Impossibile registrare i riporti"); + + progn.addstatus(1); +} + diff --git a/m770/774200.h b/m770/774200.h new file mode 100755 index 000000000..bceb539ce --- /dev/null +++ b/m770/774200.h @@ -0,0 +1,101 @@ +// 774200.h - Riporti dai quadri +#ifndef __774200_H +#define __774200_H + +#include + +#include "base.h" +#include "basebis.h" +#include "quadroa.h" + +bool filter_func (const TRelation *); + +enum {A,A1,A2,A3,B,B1,C,D,D1,E,E1,E2,F,F1,F2,G,G1,H,I,N,P,Q,R,S,T}; + +const int CAMPI_IB1 = 60; +const int CAMPI_IB2 = 50; +const int CAMPI_A = 53; + +HIDDEN const char* _campi_I1[CAMPI_IB1] = { BSE_A0NFCOM,BSE_A0NLDIP,BSE_A0COBB,BSE_A0CNET,BSE_A0EPREV,BSE_A0IITRA, + BSE_A0CTER,BSE_A0TIMP,BSE_A0ILOR,BSE_A0TDET,BSE_A0RTER,BSE_A0RDAT, + BSE_A0ERIT,BSE_A0CARR,BSE_A0AARR,BSE_A0DARR,BSE_A0RARR,BSE_A0RITSI, + BSE_A0CINPS,BSE_A0RITOPEVA,BSE_A0RITOPESA,BSE_A0CIIAUT,BSE_A0NADLAV, + BSE_A0NACAAF,BSE_B0NFCOM,BSE_B0NLDIP,BSE_B0TFR93,BSE_B0AI,BSE_B0COLAV, + BSE_B0TFR7492,BSE_B0AI7492,BSE_B0RITSI,BSE_B0IMP,BSE_B0TIMP,BSE_B0ROP, + BSE_B0AIINPS,BSE_B0ROPESA,BSE_B0CIIAUT,BSE_B1NFCOM,BSE_B1NPER,BSE_B1TIND, + BSE_B1TIRM,BSE_B1TICOM,BSE_C0NFCOM,BSE_C0NLASS,BSE_C0ACTOT,BSE_C0SNSRIT, + BSE_C0ROPE,BSE_C0CIIAUT,BSE_D0NFCOM,BSE_D0NLAUT,BSE_D0ACTOT,BSE_D0SNSRIT, + BSE_D0ROPE,BSE_D0CIIAUT,BSE_D1NFCOM,BSE_D1NPER,BSE_D1TACOR,BSE_D1SNSRIT, + BSE_D1ROPE}; + +HIDDEN const char* _campi_I2[CAMPI_IB2] = { BSB_E0NFCOM,BSB_E0NPER,BSB_E0AIMP,BSB_E0ROPE,BSB_E0SNSRIT,BSB_E1NFCOM, + BSB_E1NPER,BSB_E1SCOR,BSB_E1BCOM,BSB_E1ROPE,BSB_E1ACOM,BSB_E1BCOM2, + BSB_E1ROPE2,BSB_E2NFCOM,BSB_E2NPER,BSB_E2ROPE,BSB_E2SSRIT,BSB_F0SRITA, + BSB_F0ROPEA,BSB_F0TACCA,BSB_F0EDACCA,BSB_F0ERIMA,BSB_F0SSRITBF,BSB_F0ROPEBF, + BSB_F0SSVA,BSB_F0ROPEVA,BSB_F1SSRIT,BSB_F1ROPE,BSB_F2SSRIT,BSB_F2ROPE, + BSB_G0NFCOM,BSB_G0NAZI1,BSB_G0UDEN1,BSB_G0UNAT1,BSB_G0IUTI2,BSB_G0ROPE, + BSB_G0USRIT3,BSB_G0RACC3,BSB_G0RIMP3,BSB_G0UNSRIT3,BSB_G0USPE,BSB_G0UPAG, + BSB_G0NPER,BSB_G1UCOR,BSB_G1USRIT,BSB_G1RACC,BSB_G1RIMP,BSB_G1UNSRIT, + BSB_H0CODLAV,BSB_H0COLDIP}; + +HIDDEN const char* _campi_A [CAMPI_A] = { + QUA_DENARO, QUA_NATURA, QUA_COBBDIP, QUA_COMPNETTI, + QUA_AMMLORDO, QUA_IACOBBCD, QUA_NORIT, QUA_TOTIMP, + QUA_AIENTIPREV, QUA_CCTAMMCONT, QUA_TOTIMP2, QUA_ICTOTIMP, + QUA_DETCC, QUA_DETFC, QUA_DETAF, QUA_DETLD, + QUA_TOTDET, QUA_INCDETFC, QUA_AMRIOT, QUA_AMRIODL, + QUA_ECCRITRIMB, QUA_AMMRITDOV, QUA_ERSPSAN, QUA_PRASSVI, + QUA_CONPRECO, QUA_COBBDIP2, QUA_AMMIMP, QUA_DETIMPOS, + QUA_RITESEG, QUA_SVNASSRI, QUA_AIFCSSN, QUA_CONEFF, + QUA_IMPVERS, QUA_INTERE, QUA_CSSN95CV, QUA_INTERE2, + QUA_CNEFF, QUA_RETCON, QUA_IMPRIMB, QUA_IMPVER, + QUA_IMPVER2, QUA_INTER, QUA_STSIRPEF, QUA_CONRIMB, + QUA_INTER2, QUA_CONVER2, QUA_INTER3, QUA_STSCSSN70, QUA_M730NLIQ, + QUA_CODCAAF, QUA_DETO, QUA_INTIRPEF, QUA_CONVER +}; + + + +class TRiporti +{ + friend bool filter_func (const TRelation *); + + long _codditta; + int _annodic; + TString16 _quadro; + + void setta_flag_quadri_comp (const long codditta, const int posquadro, const bool aur, const long dich=0L); +// Setta flag di compilato guardando se esistono i riporti sul quadro I + void setta_flag_quadro_I (const long codditta, const long dich=0L); + + void calcola_riporti_A (TCursor* cur, const long dich=0L); + void calcola_riporti_A1(TCursor* cur, const long dich=0L); + void calcola_riporti_A2(TCursor* cur, const long dich=0L); + void calcola_riporti_A3(TCursor* cur, const long dich=0L); + void calcola_riporti_B (TCursor* cur, const long dich=0L); + void calcola_riporti_B1(TCursor* cur, const long dich=0L); + void calcola_riporti_H (TCursor* cur, const long dich=0L); + void calcola_riporti_C (TCursor* cur, const long dich=0L); + void calcola_riporti_D (TCursor* cur, const long dich=0L); + void calcola_riporti_D1(TCursor* cur, const long dich=0L); + void calcola_riporti_E (TCursor* cur, const long dich=0L); + void calcola_riporti_E1(TCursor* cur, const long dich=0L); + void calcola_riporti_E2(TCursor* cur, const long dich=0L); + void calcola_riporti_F (TCursor* cur, const long dich=0L); + void calcola_riporti_F1(TCursor* cur, const long dich=0L); + void calcola_riporti_F2(TCursor* cur, const long dich=0L); + void calcola_riporti_G (TCursor* cur, const long dich=0L); + void calcola_riporti_G1(TCursor* cur, const long dich=0L); +public: + bool riporta_I_globale(const long dich); + bool riporti_dich(const long dich, const int anno); + bool set(const TString& quadro, int anno=0, const long codditta=0L, const long dichiarante=0L); + void set_compilato(const long codditta, const int posquadro, const bool compilato) + { setta_flag_quadri_comp(codditta,posquadro,compilato); } + + TRiporti() {} + virtual ~TRiporti() {} +}; + +#endif + diff --git a/m770/774200a.h b/m770/774200a.h new file mode 100755 index 000000000..c9be6ed0d --- /dev/null +++ b/m770/774200a.h @@ -0,0 +1,5 @@ +// 774200a.h - Riporti su I del dich. +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_ANNODIC 103 + diff --git a/m770/774200a.uml b/m770/774200a.uml new file mode 100755 index 000000000..56da47c27 --- /dev/null +++ b/m770/774200a.uml @@ -0,0 +1,51 @@ +// 774200a.uml - Riporti su dich +#include "774200a.h" + +PAGE "MODULO 770 - GENERAZIONE RIPORTI" -1 -1 76 9 + +GROUPBOX DLG_NULL 75 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "RDG" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGDITTA RAGSOC +END + +STRING F_RAGDITTA 48 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 3 4 "Anno dichiarazione " + FLAGS "RD" +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK + + + diff --git a/m770/775.cpp b/m770/775.cpp new file mode 100755 index 000000000..7ed2811eb --- /dev/null +++ b/m770/775.cpp @@ -0,0 +1,31 @@ +#include +#include +#include "775.h" + +#define usage "Error - usage : %s -{0|1|2|3|4|5} [params]" + +int main(int argc,char** argv) +{ + const int n = (argc > 1) ? atoi(argv[1]+1) : -1; + switch(n) + { + case 0: + GestPerc(argc,argv); break; + case 1: + m75200(argc,argv); break; + case 2: + // cg1300(argc,argv); break; + case 3: + // cg1400(argc,argv); break; + case 4: + // cg1500(argc,argv); break; + case 5: + // cg1600(argc,argv); break; + case 6: + // cg1700(argc,argv); break; + default: + error_box(usage, argv[0]); break; + } + + return n < 0; +} diff --git a/m770/775.h b/m770/775.h new file mode 100755 index 000000000..569dd5942 --- /dev/null +++ b/m770/775.h @@ -0,0 +1,19 @@ +#ifndef __775_H +#define __775_H + +#ifdef MAIN +#define extern +#endif + +#ifdef MAIN +#undef extern +#endif + +#ifndef __STRINGS_H +#include +#endif + +int GestPerc(int argc, char* argv[]); +int m75200(int argc, char* argv[]); + +#endif // __775_H diff --git a/m770/775.mak b/m770/775.mak new file mode 100755 index 000000000..a71c2320d --- /dev/null +++ b/m770/775.mak @@ -0,0 +1,335 @@ +# Microsoft Visual C++ generated build script - Do not modify + +PROJ = 775 +DEBUG = 1 +PROGTYPE = 0 +CALLER = +ARGS = -0 -uPRASSI +DLLS = +D_RCDEFINES = /d_DEBUG +R_RCDEFINES = /dNDEBUG +ORIGIN = MSVC +ORIGIN_VER = 1.00 +PROJPATH = C:\PRASSI\ +USEMFC = 0 +CC = cl +CPP = cl +CXX = cl +CCREATEPCHFLAG = +CPPCREATEPCHFLAG = +CUSEPCHFLAG = +CPPUSEPCHFLAG = +FIRSTC = +FIRSTCPP = 775.CPP +RC = rc +CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"775.PDB" /GEs +CFLAGS_R_WEXE = /nologo /W3 /AM /O1 /D "NDEBUG" /FR /GA +LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO +LFLAGS_R_WEXE = /NOLOGO /NOD /PACKC:61440 /STACK:10240 /ALIGN:16 /ONERROR:NOEXE +LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib +LIBS_R_WEXE = oldnames libw mlibcew commdlg.lib olecli.lib olesvr.lib shell.lib +RCFLAGS = /nologo +RESFLAGS = /nologo /k +RUNFLAGS = +DEFFILE = F:\P.DUE\WIN\LIB\UNIVERSL.DEF +OBJS_EXT = +LIBS_EXT = F:\P.DUE\WIN\LIB\HLAPI_CW.LIB F:\P.DUE\WIN\LIB\WINDUED.LIB F:\P.DUE\WIN\LIB\WINGFM.LIB \ + F:\P.DUE\WIN\LIB\WINUNO.LIB F:\P.DUE\WIN\LIB\XVT400.LIB +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS_D_WEXE) +LFLAGS = $(LFLAGS_D_WEXE) +LIBS = $(LIBS_D_WEXE) +MAPFILE = nul +RCDEFINES = $(D_RCDEFINES) +!else +CFLAGS = $(CFLAGS_R_WEXE) +LFLAGS = $(LFLAGS_R_WEXE) +LIBS = $(LIBS_R_WEXE) +MAPFILE = nul +RCDEFINES = $(R_RCDEFINES) +!endif +!if [if exist MSVC.BND del MSVC.BND] +!endif +SBRS = 775.SBR \ + 775100.SBR \ + 775200.SBR + + +HLAPI_CW_DEP = + +WINDUED_DEP = + +WINGFM_DEP = + +WINUNO_DEP = + +XVT400_DEP = + +775_DEP = f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\checks.h \ + f:\p.due\77\775.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h + + +775100_DEP = f:\p.due\include\relapp.h \ + f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\text.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\p.due\include\real.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\scanner.h \ + f:\p.due\77\775100a.h + + +775_RCDEP = + +775200_DEP = f:\p.due\include\applicat.h \ + f:\xvt.400\win_x86\ptk\include\xvt.h \ + f:\xvt.400\win_x86\ptk\include\xvt_env.h \ + f:\xvt.400\win_x86\ptk\include\xvt_plat.h \ + f:\xvt.400\win_x86\ptk\include\xvt_varg.h \ + f:\xvt.400\win_x86\ptk\include\xvt_styp.h \ + f:\xvt.400\win_x86\ptk\include\xvt_defs.h \ + f:\xvt.400\win_x86\ptk\include\xvt_menu.h \ + f:\xvt.400\win_x86\ptk\include\xvt_type.h \ + f:\xvt.400\win_x86\ptk\include\xvt_sel.h \ + f:\xvt.400\win_x86\ptk\include\xvt_perr.h \ + f:\xvt.400\win_x86\ptk\include\xvt_help.h \ + f:\xvt.400\win_x86\ptk\include\xvt_r3.h \ + f:\xvt.400\win_x86\ptk\include\xvterr.h \ + f:\xvt.400\win_x86\ptk\include\xvtapp.h \ + f:\xvt.400\win_x86\ptk\include\xvtcb.h \ + f:\xvt.400\win_x86\ptk\include\xvtctl.h \ + f:\xvt.400\win_x86\ptk\include\xvtdebug.h \ + f:\xvt.400\win_x86\ptk\include\xvtdlg.h \ + f:\xvt.400\win_x86\ptk\include\xvtdm.h \ + f:\xvt.400\win_x86\ptk\include\xvtdwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtevent.h \ + f:\xvt.400\win_x86\ptk\include\xvtfont.h \ + f:\xvt.400\win_x86\ptk\include\xvtfsys.h \ + f:\xvt.400\win_x86\ptk\include\xvtgmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtiostr.h \ + f:\xvt.400\win_x86\ptk\include\xvtimage.h \ + f:\xvt.400\win_x86\ptk\include\xvtlist.h \ + f:\xvt.400\win_x86\ptk\include\xvtmenu.h \ + f:\xvt.400\win_x86\ptk\include\xvtmem.h \ + f:\xvt.400\win_x86\ptk\include\xvtpalet.h \ + f:\xvt.400\win_x86\ptk\include\xvtpict.h \ + f:\xvt.400\win_x86\ptk\include\xvtpmap.h \ + f:\xvt.400\win_x86\ptk\include\xvtprint.h \ + f:\xvt.400\win_x86\ptk\include\xvtrect.h \ + f:\xvt.400\win_x86\ptk\include\xvtres.h \ + f:\xvt.400\win_x86\ptk\include\xvtsbar.h \ + f:\xvt.400\win_x86\ptk\include\xvtscr.h \ + f:\xvt.400\win_x86\ptk\include\xvtslist.h \ + f:\xvt.400\win_x86\ptk\include\xvtstr.h \ + f:\xvt.400\win_x86\ptk\include\xvttimer.h \ + f:\xvt.400\win_x86\ptk\include\xvttx.h \ + f:\xvt.400\win_x86\ptk\include\xvtvobj.h \ + f:\xvt.400\win_x86\ptk\include\xvtwin.h \ + f:\xvt.400\win_x86\ptk\include\xvtr3r4.h \ + f:\p.due\include\printer.h \ + f:\p.due\include\date.h \ + f:\p.due\include\object.h \ + f:\p.due\include\classes.h \ + f:\p.due\include\stdtypes.h \ + f:\p.due\include\checks.h \ + f:\p.due\include\text.h \ + f:\p.due\include\strings.h \ + f:\p.due\include\array.h \ + f:\p.due\include\window.h \ + f:\p.due\include\xvtility.h \ + f:\p.due\include\keys.h \ + f:\p.due\include\mask.h \ + f:\p.due\include\maskfld.h \ + f:\p.due\include\real.h \ + f:\p.due\include\scanner.h \ + f:\p.due\include\printapp.h \ + f:\p.due\include\relation.h \ + f:\p.due\include\isam.h \ + f:\p.due\include\sysfld.h \ + f:\mathlib\gmsys1.h \ + f:\mathlib\gfd.h \ + f:\p.due\include\files.h \ + f:\p.due\include\extctype.h \ + f:\p.due\include\rectypes.h \ + f:\p.due\include\lffiles.h \ + f:\p.due\include\progind.h \ + f:\p.due\include\tabutil.h \ + f:\p.due\include\utility.h \ + f:\p.due\include\config.h \ + f:\p.due\include\assoc.h \ + f:\p.due\include\urldefid.h \ + f:\p.due\include\defmask.h \ + f:\p.due\include\execp.h \ + f:\p.due\include\mailbox.h \ + f:\p.due\77\774100.h \ + f:\p.due\include\rpag.h \ + f:\p.due\include\rver.h \ + f:\p.due\include\scperc.h \ + f:\p.due\include\quadrol.h + + +all: $(PROJ).EXE $(PROJ).BSC + +775.OBJ: F:\P.DUE\77\775.CPP $(775_DEP) + $(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c F:\P.DUE\77\775.CPP + +775100.OBJ: F:\P.DUE\77\775100.CPP $(775100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\775100.CPP + +775.RES: 775.RC $(775_RCDEP) + $(RC) $(RCFLAGS) $(RCDEFINES) -r 775.RC + +775200.OBJ: F:\P.DUE\77\775200.CPP $(775200_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c F:\P.DUE\77\775200.CPP + + +$(PROJ).EXE:: 775.RES + +$(PROJ).EXE:: 775.OBJ 775100.OBJ 775200.OBJ $(OBJS_EXT) $(DEFFILE) + echo >NUL @<<$(PROJ).CRF +775.OBJ + +775100.OBJ + +775200.OBJ + +$(OBJS_EXT) +$(PROJ).EXE +$(MAPFILE) +C:\MSVC\LIB\+ +F:\P.DUE\WIN\LIB\+ +C:\XVT.400\WIN_X86\PTK\LIB\+ +C:\XVT.400\WIN_X86\XPO\LIB\+ +F:\P.DUE\WIN\LIB\HLAPI_CW.LIB+ +F:\P.DUE\WIN\LIB\WINDUED.LIB+ +F:\P.DUE\WIN\LIB\WINGFM.LIB+ +F:\P.DUE\WIN\LIB\WINUNO.LIB+ +F:\P.DUE\WIN\LIB\XVT400.LIB+ +$(LIBS) +$(DEFFILE); +<< + link $(LFLAGS) @$(PROJ).CRF + $(RC) $(RESFLAGS) 775.RES $@ + @copy $(PROJ).CRF MSVC.BND + +$(PROJ).EXE:: 775.RES + if not exist MSVC.BND $(RC) $(RESFLAGS) 775.RES $@ + +run: $(PROJ).EXE + $(PROJ) $(RUNFLAGS) + + +$(PROJ).BSC: $(SBRS) + bscmake @<< +/o$@ $(SBRS) +<< diff --git a/m770/775.url b/m770/775.url new file mode 100755 index 000000000..2b72ccc80 --- /dev/null +++ b/m770/775.url @@ -0,0 +1,9 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(1) + +MENU MENU_BAR(1) + SUBMENU MENU_FILE "~File" diff --git a/m770/775100.cpp b/m770/775100.cpp new file mode 100755 index 000000000..598515ea3 --- /dev/null +++ b/m770/775100.cpp @@ -0,0 +1,155 @@ +// 775100.cpp - Gestione archivio percipienti + +#include +#include +#include "77lib.h" +#include "775100a.h" + +class TGestionePercipienti : public TRelation_application +{ + private: + TRelation* _rel; + TMask* _msk; + long _codditta; + char _tipoa; + long _codanagr; + bool _auto_posiz, _deleted; + int _anno_dic; + protected: + virtual void on_config_change(); + virtual void init_query_mode(TMask& m); + virtual void init_modify_mode(TMask& m); + void init_mask(TMask& m); + virtual bool user_create(); + virtual bool user_destroy(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode) { return _msk; } + virtual bool changing_mask(int mode) { return FALSE; } + virtual bool remove(); + static bool codditta_handler(TMask_field& f, KEY k); + public: + TGestionePercipienti(const long codditta=0L, const char tipoa='\0', const long codanagr=0L); + virtual ~TGestionePercipienti() {}; +}; + +inline TGestionePercipienti& app() { return (TGestionePercipienti&) main_app(); } + +bool TGestionePercipienti::remove() +{ + bool ok1 = FALSE, ok2 = FALSE, ha_schede = FALSE; + int err; + TPercipiente perc(_rel->curr()); + + ha_schede = perc.esiste_scheda(); + if (ha_schede) + ok1 = yesno_box("Esistono in archivio delle schede riguardanti il percipiente selezionato\nEliminare ugualmente?"); + if (!ok1) + return TRUE; + err = _rel->remove(); + +// Non ri-compilare i dati in init_query_mode() + _deleted = TRUE; + + if (err != NOERR) + return TRUE; + if (ha_schede) + { + ok2 = yesno_box("Eliminare anche le schede collegate?"); + err = perc.elimina_schede(); + } + return TRUE; +} + +void TGestionePercipienti::init_mask(TMask& m) +{ + m.set(F_ANNODIC, _anno_dic); +} + +void TGestionePercipienti::init_query_mode(TMask& m) +{ + init_mask(m); + if (_auto_posiz && !_deleted) + { + TString16 dit, tipo, coda; + dit << _codditta; + tipo << _tipoa; + coda << _codanagr; + m.set(F_CODDITTA, dit); + m.set(F_TIPOA, tipo); + m.set(F_CODANAGR, coda); + m.send_key(K_AUTO_ENTER, 0); + } +} + +void TGestionePercipienti::init_modify_mode(TMask& m) +{ + init_mask(m); +} + +TGestionePercipienti::TGestionePercipienti(const long codditta, const char tipoa, const long codanagr) + : _codditta(codditta), _tipoa(tipoa), _codanagr(codanagr), _auto_posiz(FALSE) +{ + _auto_posiz = _codanagr != 0L; + _deleted = FALSE; +} + +void TGestionePercipienti::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL); +} + +bool TGestionePercipienti::codditta_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; codditta << app()._codditta; + if (codditta != "0") + { + f.set(codditta); + f.check(); + } + } + return TRUE; +} + +bool TGestionePercipienti::user_create() +{ + _rel = new TRelation(LF_PERC); + _msk = new TMask("775100a"); + + if (!_auto_posiz) + _codditta = get_firm_770(); + + _msk->set_handler(F_CODDITTA, codditta_handler); + set_search_field(F_TIPOA); + return TRUE; +} + +bool TGestionePercipienti::user_destroy() +{ + delete _rel; delete _msk; + return TRUE; +} + +// 775 -0 10001 F 10 +int GestPerc(int argc, char* argv[]) +{ + long codditta = 0L; + char tipoa = '\0'; + long codanagr = 0L; + + if (argc >= 5) + { + codditta = atol(argv[2]); + tipoa = *argv[3]; + codanagr = atol(argv[4]); + } + + TGestionePercipienti a(codditta, tipoa, codanagr); + a.run(argc, argv, "Gestione percipienti"); + return 0; +} + + + diff --git a/m770/775100a.h b/m770/775100a.h new file mode 100755 index 000000000..eb56dbd61 --- /dev/null +++ b/m770/775100a.h @@ -0,0 +1,15 @@ +// 775100a.h + +#define F_CODDITTA 100 +#define F_RAGDITTA 101 +#define F_ANNODIC 102 +#define F_TIPOA 103 +#define F_CODANAGR 104 +#define F_RAGSOC 105 +#define F_FATTBIL 106 + + + + + + diff --git a/m770/775100a.uml b/m770/775100a.uml new file mode 100755 index 000000000..c53c98ce6 --- /dev/null +++ b/m770/775100a.uml @@ -0,0 +1,92 @@ +#include "775100a.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "Gestione percipienti" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "RDG" + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_PERC->CODDITTA + KEY 1 + CHECKTYPE REQUIRED +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 8 "@bDati percipiente" +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 9 "" + FIELD LF_PERC->TIPOA + ITEM "F|Fisica" + ITEM "G|Giuridica" + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 15 9 "" + USE LF_PERC KEY 1 SELECT ((CODDITTA==#F_CODDITTA)&&(TIPOA==#F_TIPOA)) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_RAGSOC LF_ANAG->RAGSOC + FIELD LF_PERC->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 9 "" + FLAGS "D" +END + +NUMBER F_FATTBIL 15 +BEGIN + PROMPT 1 14 "Fatture da ricevere " + PICTURE "." + FIELD LF_PERC->FATTBIL + FLAGS "R" +END + +ENDPAGE + +ENDMASK + + + diff --git a/m770/775200.cpp b/m770/775200.cpp new file mode 100755 index 000000000..aa7a53fab --- /dev/null +++ b/m770/775200.cpp @@ -0,0 +1,148 @@ +// Modello 770 - Generazione dettaglio Quadro H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "774100.h" + +#include +#include +#include +#include + +class TGenera_dett : public TApplication +{ + TLocalisamfile* _dettH; + TLocalisamfile* _quaH; + TRelation* _rel; + + long _codditta; + int _anno; + TString _ente; + + public: + virtual bool create(); + virtual bool menu(MENU_TAG m); + virtual bool destroy(); + + bool set(); + + TGenera_dett() {}; + ~TGenera_dett() {}; +}; + +bool TGenera_dett::set() +{ + real tot_dat,tot_lav; + + TRecnotype items_deth = _dettH->items(); + + TProgind progn(items_deth,"Generazione Quadro H in corso... Prego attendere", FALSE, TRUE); + + TRectype recdet(_dettH->curr()); + + recdet.zero(); + recdet.put("CODDITTA", _codditta); + recdet.put("ANNO", _anno); + recdet.put("ENTE", _ente); + + _dettH->setkey(1); + _dettH->zero(); + _dettH->put("CODDITTA", _codditta); + _dettH->put("ANNO", _anno); + _dettH->put("ENTE", _ente); + + for (_dettH->read(_isgteq); _dettH->good(); _dettH->next()) + { + if (_dettH->curr() > recdet) + break; + + real dat = _dettH->get_real("CONTRDAT"); + real lav = _dettH->get_real("CONTRLAV"); + + TString dats = dat.string(); + TString lavs = lav.string(); + + tot_dat += dat; + tot_lav += lav; + + progn.addstatus(1); + } + + _quaH->setkey(1); + _quaH->zero(); + _quaH->put("CODDITTA", _codditta); + _quaH->put("H1ANNO", _anno); + _quaH->put("H1ENTE", _ente); + + if (_quaH->read() == NOERR) + { + _quaH->put("H1DAT", tot_dat); + _quaH->put("H1LAV", tot_lav); + _quaH->rewrite(); + } + + return FALSE; // Per fare in modo che ritorni subito all' applicazione di partenza +} + +bool TGenera_dett::menu(MENU_TAG m) +{ + if (m == BAR_ITEM(1)) + return (set()); + return FALSE; +} + +bool TGenera_dett::create() +{ + TApplication::create(); + + _rel = new TRelation (LF_DETH); + _dettH = new TLocalisamfile(LF_DETH); + _quaH = new TLocalisamfile(LF_QUAH); + + TMailbox m; + TMessage* msg = m.next_s(""); + TToken_string subj(50); + + if (msg != NULL) + { + subj = msg->body(); + + _codditta = atol(subj.get(0)); + _anno = atoi(subj.get(1)); + _ente = subj.get(2); + } +/* + _codditta = 1; + _anno = 1994; + _ente = "Aresi Alessandro"; +*/ + dispatch_e_menu (BAR_ITEM(1)); + return TRUE; +} + +bool TGenera_dett::destroy() +{ + delete _dettH; + delete _rel; + delete _quaH; + + return TApplication::destroy(); +} + +int m75200 (int argc, char* argv[]) +{ + TGenera_dett a; + a.run(argc, argv, "Generazione righe dettaglio Quadro H"); + return 0; +} + diff --git a/m770/776.cpp b/m770/776.cpp new file mode 100755 index 000000000..9e7c3e855 --- /dev/null +++ b/m770/776.cpp @@ -0,0 +1,29 @@ +#include +#include +#include "776.h" + +#define usage "Error - usage : %s -{0|1} [params]" + +int main(int argc,char** argv) +{ + const int n = (argc > 1) ? atoi(argv[1]+1) : -1; + switch(n) + { + case 0: + MenuQuadri(argc,argv); break; + case 1: + ImmissioneDichiarazioni(argc,argv); break; + case 2: + SelezioneDichiarazioni(argc, argv); break; + case 3: + ParametriStampa(argc, argv); break; + case 4: + ParametriGenera(argc, argv); break; + case 5: + Estinti(argc, argv); break; + default: + error_box(usage, argv[0]); break; + } + + return n < 0; +} diff --git a/m770/776.h b/m770/776.h new file mode 100755 index 000000000..8b0d2b3c4 --- /dev/null +++ b/m770/776.h @@ -0,0 +1,23 @@ +#ifndef __776_H +#define __776_H + +#ifdef MAIN +#define extern +#endif + +#ifdef MAIN +#undef extern +#endif + +#ifndef __STRINGS_H +#include +#endif + +int MenuQuadri(int argc, char* argv[]); +int ImmissioneDichiarazioni(int argc, char* argv[]); +int SelezioneDichiarazioni(int argc, char* argv[]); +int ParametriStampa(int argc, char* argv[]); +int ParametriGenera(int argc, char* argv[]); +int Estinti(int argc, char* argv[]); + +#endif // __776_H diff --git a/m770/776.mak b/m770/776.mak new file mode 100755 index 000000000..67a046cd7 --- /dev/null +++ b/m770/776.mak @@ -0,0 +1,147 @@ +# Microsoft Visual C++ generated build script - Do not modify + +PROJ = 776 +DEBUG = 0 +PROGTYPE = 0 +CALLER = +ARGS = +DLLS = +D_RCDEFINES = /d_DEBUG +R_RCDEFINES = /dNDEBUG +ORIGIN = MSVC +ORIGIN_VER = 1.00 +PROJPATH = F:\NIK\P.DUE\77\ +USEMFC = 0 +CC = cl +CPP = cl +CXX = cl +CCREATEPCHFLAG = +CPPCREATEPCHFLAG = +CUSEPCHFLAG = +CPPUSEPCHFLAG = +FIRSTC = +FIRSTCPP = 776.CPP +RC = rc +CFLAGS_D_WEXE = /nologo /Gs /G2 /Gy /W3 /Gf /Zi /AL /Gt65000 /Od /D "XVT_OS"="400" /D "DBG" /FR /GA /Fd"776.PDB" /GEs +CFLAGS_R_WEXE = /nologo /Gs /Gy /W3 /Gf /AL /Gt65000 /O1 /D "XVT_OS"="400" /FR /GA +LFLAGS_D_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE /CO +LFLAGS_R_WEXE = /NOLOGO /NOD /NOE /PACKC:65000 /PACKD:65000 /SEG:512 /ALIGN:16 /ONERROR:NOEXE +LIBS_D_WEXE = oldnames libw llibcew toolhelp.lib +LIBS_R_WEXE = oldnames libw llibcew toolhelp.lib +RCFLAGS = /nologo +RESFLAGS = /nologo /k /k +RUNFLAGS = +DEFFILE = ..\..\..\P.DUE\WIN\LIB\UNIVERSL.DEF +OBJS_EXT = +LIBS_EXT = ..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB ..\..\..\P.DUE\WIN\LIB\WINDUED.LIB \ + ..\..\..\P.DUE\WIN\LIB\WINGFM.LIB ..\..\..\P.DUE\WIN\LIB\WINUNO.LIB ..\..\..\P.DUE\WIN\LIB\XVT400.LIB +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS_D_WEXE) +LFLAGS = $(LFLAGS_D_WEXE) +LIBS = $(LIBS_D_WEXE) +MAPFILE = nul +RCDEFINES = $(D_RCDEFINES) +!else +CFLAGS = $(CFLAGS_R_WEXE) +LFLAGS = $(LFLAGS_R_WEXE) +LIBS = $(LIBS_R_WEXE) +MAPFILE = nul +RCDEFINES = $(R_RCDEFINES) +!endif +!if [if exist MSVC.BND del MSVC.BND] +!endif +SBRS = 776.SBR \ + 776100.SBR \ + 776200.SBR \ + 77LIB01.SBR \ + 776300.SBR \ + 776400.SBR + + +HLAPI_CW_DEP = + +WINDUED_DEP = + +WINGFM_DEP = + +WINUNO_DEP = + +XVT400_DEP = + +776_RCDEP = + +776_DEP = + +776100_DEP = + +776200_DEP = + +77LIB01_DEP = + +776300_DEP = + +776400_DEP = + +all: $(PROJ).EXE $(PROJ).BSC + +776.RES: 776.RC $(776_RCDEP) + $(RC) $(RCFLAGS) $(RCDEFINES) -r 776.RC + +776.OBJ: ..\..\..\P.DUE\77\776.CPP $(776_DEP) + $(CPP) $(CFLAGS) $(CPPCREATEPCHFLAG) /c ..\..\..\P.DUE\77\776.CPP + +776100.OBJ: ..\..\..\P.DUE\77\776100.CPP $(776100_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\776100.CPP + +776200.OBJ: ..\..\..\P.DUE\77\776200.CPP $(776200_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\776200.CPP + +77LIB01.OBJ: ..\..\..\P.DUE\77\77LIB01.CPP $(77LIB01_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\77LIB01.CPP + +776300.OBJ: ..\..\..\P.DUE\77\776300.CPP $(776300_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\776300.CPP + +776400.OBJ: ..\..\..\P.DUE\77\776400.CPP $(776400_DEP) + $(CPP) $(CFLAGS) $(CPPUSEPCHFLAG) /c ..\..\..\P.DUE\77\776400.CPP + + +$(PROJ).EXE:: 776.RES + +$(PROJ).EXE:: 776.OBJ 776100.OBJ 776200.OBJ 77LIB01.OBJ 776300.OBJ 776400.OBJ $(OBJS_EXT) $(DEFFILE) + echo >NUL @<<$(PROJ).CRF +776.OBJ + +776100.OBJ + +776200.OBJ + +77LIB01.OBJ + +776300.OBJ + +776400.OBJ + +$(OBJS_EXT) +$(PROJ).EXE +$(MAPFILE) +c:\msvc\lib\+ +f:\p.due\win\lib\+ +f:\p.due\win\objd\+ +..\..\..\P.DUE\WIN\LIB\HLAPI_CW.LIB+ +..\..\..\P.DUE\WIN\LIB\WINDUED.LIB+ +..\..\..\P.DUE\WIN\LIB\WINGFM.LIB+ +..\..\..\P.DUE\WIN\LIB\WINUNO.LIB+ +..\..\..\P.DUE\WIN\LIB\XVT400.LIB+ +$(LIBS) +$(DEFFILE); +<< + link $(LFLAGS) @$(PROJ).CRF + $(RC) $(RESFLAGS) 776.RES $@ + @copy $(PROJ).CRF MSVC.BND + +$(PROJ).EXE:: 776.RES + if not exist MSVC.BND $(RC) $(RESFLAGS) 776.RES $@ + +run: $(PROJ).EXE + $(PROJ) $(RUNFLAGS) + + +$(PROJ).BSC: $(SBRS) + bscmake @<< +/o$@ $(SBRS) +<< diff --git a/m770/776100.cpp b/m770/776100.cpp new file mode 100755 index 000000000..feca08b2f --- /dev/null +++ b/m770/776100.cpp @@ -0,0 +1,590 @@ +// 776100.cpp - Menu' manutenzione quadri +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "776.h" +#include "776100a.h" +#include "776100b.h" +#include "77lib.h" +#include "../ba/ba4600.h" + +HIDDEN TString80 __tmp; +HIDDEN const int NUM_QUADRI = 26; +HIDDEN const int QUADRO_L = 30; + +typedef enum { grassetto=0, sottolineato, piano } stile; + +class TManutenzione_quadri : public TApplication +{ + private: + TRelation* _rel; + TMask* _msk[2]; + int _mode; + TLocalisamfile* _base, *_basebis; + int _anno_dic; + bool _soci; + long _codditta, _coddic; + + protected: + virtual bool create(); + virtual bool destroy(); + virtual bool menu(MENU_TAG m); + virtual void on_config_change(); + + static void show_menu(TMask& m, const int group, bool mostra); + static bool filtra_ditte(const TRelation * r); + static bool menu_stampe (TMask_field& fld, KEY k); + static bool cancel_menu_stampe (TMask_field& fld, KEY k); + static bool menu_dich (TMask_field& fld, KEY k); + static bool cancel_menu_dich (TMask_field& fld, KEY k); + static bool menu_anagrafici (TMask_field& fld, KEY k); + static bool cancel_menu_anagrafici (TMask_field& fld, KEY k); + static bool codditta_handler (TMask_field& fld, KEY k); + static bool leggi_quadri (TMask_field& f, KEY k); + static bool exec_soci (TMask_field& fld, KEY k); + + void init_mask(TMask&); + TMask* load_mask(int n); + + void enphasize(TString& qcomp, TMask& m); + void inibith(TString& qric, TMask& m); + + const char* make_prompt(int i, stile st = grassetto); + + bool main_loop(); + bool query_mask(); + + void init_query_mask (TMask&); + void init_menu (TMask&); + bool lock(const bool lok=TRUE); + + public: + TManutenzione_quadri (); + ~TManutenzione_quadri() {}; +}; + +inline TManutenzione_quadri& app() { return (TManutenzione_quadri&) main_app(); } + +TManutenzione_quadri::TManutenzione_quadri(): _soci(FALSE),_rel(NULL) {memset(_msk, 0, sizeof(_msk));} + +bool TManutenzione_quadri::filtra_ditte(const TRelation * r) +{ + const TRectype& ditte_rec = r->lfile().curr(); + const long codditta = ditte_rec.get_long("CODDITTA"); + long coddic = 0L; + bool ok = FALSE; + TLocalisamfile& base = *(app()._base); + TString16 tipoq; + + base.zero(); + base.put("CODDITTA", (long)codditta); + ok = base.read() == NOERR; + + if (ok) + { + coddic = base.get_long("CODDITTA"); + tipoq = base.get("TIPOQUA"); + ok = tipoq != "D" ? coddic == codditta : FALSE; + } + + return ok; +} + +void TManutenzione_quadri::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); +} + +// Lancia la gestione soci passando la ditta +bool TManutenzione_quadri::exec_soci(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + TString appname("ba4 -5"); + TString body(16); + const long ditta = app()._codditta; + body << FLD_SC1_CODDITTA << "|"; + body << FLD_SC1_CODDITTA << "="; + body << ditta; + TMessage msg(cmd2name(appname), MSG_FS, (const char*) body); + + TMailbox mb; + mb.send(msg); + + TExternal_app a(appname); + a.run(); + } + return TRUE; +} + +bool TManutenzione_quadri::codditta_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && !(f.mask().is_running()) ) + { + TString16 codditta; + app()._codditta = get_firm_770(); + codditta << app()._codditta; + if (codditta != "0") + { + f.set(codditta); +// f.set_dirty(); + f.check(); + } + } + + if (f.to_check(k)) + { + const long codditta = atol(f.get()); +// controlla se e' gia' stata inserita una dich. per la ditta + if (!exist_dichiar_770(codditta)) + return f.warning_box("Dichiarazione non presente"); + else + set_firm_770(codditta); + } + return TRUE; +} + +TMask* TManutenzione_quadri::load_mask(int n) +{ + if (_msk[n] != NULL) + return _msk[n]; + + TFilename name("776100"); name << char(n == 0 ? 'a' : 'b'); + TMask* m = new TMask(name); + + switch (n) + { + case 0: + { + m->set_handler(F_CODDITTA, codditta_handler); + TEdit_field& rag = m->efield(F_RAGDITTA); + rag.browse()->cursor()->set_filterfunction(filtra_ditte); + } + break; + case 1: + m->set_handler(RILEGGI_QUADRI, leggi_quadri); + break; + default: + CHECKD(0, "Che strano genere di maschera e' la ", n); + break; + } + return _msk[n] = m; +} + +bool TManutenzione_quadri::create() +{ + TApplication::create(); + + _base = new TLocalisamfile(LF_BASE); + _basebis = new TLocalisamfile(LF_BASEBIS); + _rel = new TRelation(LF_BASE); + _rel->add(LF_BASEBIS, "CODDITTA=CODDITTA"); + + load_mask(0); + dispatch_e_menu (BAR_ITEM(1)); + + return TRUE; +} + +bool TManutenzione_quadri::destroy() +{ + if (_msk[1] != NULL) delete _msk[1]; + if (_msk[0] != NULL) delete _msk[0]; + + lock(FALSE); // release lock + + delete _rel; + delete _base; delete _basebis; + + return TApplication::destroy(); +} + + +const char* TManutenzione_quadri::make_prompt(int i, stile vivid) +{ + if (vivid == sottolineato) + __tmp = "@u"; + + if (vivid == grassetto) + __tmp = "@b"; + + if (vivid == piano) + __tmp = ""; + + switch (i) { + case 0: + __tmp << "Quadro A" ; + break; + case 1: + __tmp << "Quadro A-1" ; + break; + case 2: + __tmp << "Quadro A-2"; + break; + case 3: + __tmp << "Quadro A-3" ; + break; + case 4: + __tmp << "Quadro B" ; + break; + case 5: + __tmp << "Quadro B-1"; + break; + case 6: + __tmp << "Quadro C" ; + break; + case 7: + __tmp << "Quadro D" ; + break; + case 8: + __tmp << "Quadro D-1"; + break; + case 9: + __tmp << "Quadro E" ; + break; + case 10: + __tmp << "Quadro E-1"; + break; + case 11: + __tmp << "Quadro E-2"; + break; + case 12: + __tmp << "Quadro F" ; + break; + case 13: + __tmp << "Quadro F-1"; + break; + case 14: + __tmp << "Quadro F-2"; + break; + case 15: + __tmp << "Quadro G" ; + break; + case 16: + __tmp << "Quadro G-1"; + break; + case 17: + __tmp << "Quadro H" ; + break; + case 18: + __tmp << "Quadro I" ; + break; + case 19: + __tmp << "Quadro N" ; + break; + case 20: + __tmp << "Quadro P" ; + break; + case 21: + __tmp << "Quadro Q" ; + break; + case 22: + __tmp << "Quadro R" ; + break; + case 23: + __tmp << "Quadro S" ; + break; + case 24: + __tmp << "Quadro T" ; + break; + case QUADRO_L: + __tmp << "Quadro L" ; + break; + default: + break; + } + return __tmp; +} + +// +// Disabilito i quadri gia' ricevuti via supp. magnetico +// +void TManutenzione_quadri::inibith(TString& qric, TMask& m) +{ + int start_dlg = DLG_STOPREC_A; + int dlg; + + for (int i = 0; i < NUM_QUADRI; i++) + if (qric[i] == 'X') + { + dlg = start_dlg + (i * 2); + m.field(dlg).disable(); + } +} + +// +// Metto in grassetto i quadri gia' compilati +// Il quadro L non ha il flag di compilato sul base. +// +void TManutenzione_quadri::enphasize(TString& qcomp, TMask& m) +{ + int start_dlg = DLG_NULL_A; + const char* prompt; + const int L = 19; + int dlg = 0; + + for (int i = 0; i < L; i++) + { + dlg = start_dlg + (i * 2); + prompt = make_prompt(i, qcomp[i] == 'X' ? grassetto : piano); + m.field(dlg).set_prompt(prompt); + } + + prompt = esiste_record_L(get_firm_770(), _anno_dic) ? + make_prompt(QUADRO_L, grassetto) : + make_prompt(QUADRO_L, piano); + + dlg = start_dlg + (i * 2); + m.field(dlg).set_prompt(prompt); + + for (i = L+1; i < NUM_QUADRI; i++) + { + int dlg = start_dlg + (i * 2); +// Controlla qcomp[i-1] perche' in QCOMP non c'e' il flag del quadro L + prompt = make_prompt(i-1, qcomp[i-1] == 'X' ? grassetto : piano); + m.field(dlg).set_prompt(prompt); + } +} + +void TManutenzione_quadri::show_menu(TMask& m, const int group, bool mostra) +{ + if (mostra) + { + m.hide(-1); + m.hide(DLG_NULL_SOCI); + m.hide(DLG_MANUTENZ_SOCI); + m.show(group); + } + else + { + m.hide(group); + m.show(-1); + m.show(DLG_NULL_SOCI); + m.show(DLG_MANUTENZ_SOCI); + m.enable(DLG_NULL_SOCI, app()._soci); + m.enable(DLG_MANUTENZ_SOCI, app()._soci); + } +} + +bool TManutenzione_quadri::menu_dich(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + show_menu(f.mask(), -4, TRUE); + return TRUE; +} + +bool TManutenzione_quadri::cancel_menu_dich(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + show_menu(f.mask(), -4, FALSE); + return TRUE; +} + +bool TManutenzione_quadri::menu_anagrafici(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + show_menu(f.mask(), -2, TRUE); + return TRUE; +} + +bool TManutenzione_quadri::cancel_menu_anagrafici(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + show_menu(f.mask(), -2, FALSE); + return TRUE; +} + +bool TManutenzione_quadri::menu_stampe(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + show_menu(f.mask(), -3, TRUE); + return TRUE; +} + +bool TManutenzione_quadri::cancel_menu_stampe(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + show_menu(f.mask(), -3, FALSE); + return TRUE; +} + +void TManutenzione_quadri::init_menu(TMask& m) +{ + m.set(F_ANNODIC, _anno_dic); + + _codditta = _msk[0]->get_long(F_CODDITTA); + TString80 ragsoc(_msk[0]->get(F_RAGDITTA)); + m.set(F_CODDITTA, _codditta); + m.set(F_RAGDITTA, ragsoc); + +// Se persona giuridica c'e' la voce "Amministratori" + _soci = tipo_persona(_codditta) == 'G'; + m.enable(DLG_NULL_SOCI, _soci); + m.enable(DLG_MANUTENZ_SOCI, _soci); + m.set_handler(DLG_MANUTENZ_SOCI, exec_soci); + +// Fa uscire/entrare il menu' dati anagrafici + m.set_handler(DLG_MANUTENZ, menu_anagrafici); + m.set_handler(DLG_CANCEL_MENU, cancel_menu_anagrafici); + +// Fa entrare e uscire il menu' STAMPE + m.set_handler(DLG_STOPREC_ST, menu_stampe); + m.set_handler(DLG_CANCEL_MENU_ST, cancel_menu_stampe); + +// Fa entrare e uscire il menu' SOGG. DICHIARANTE + m.set_handler(DLG_STOPREC_SD, menu_dich); + m.set_handler(DLG_CANCEL_MENU_SD, cancel_menu_dich); + +// Se non e' un dichiarante disabilita la corrispondente voce + m.enable(DLG_STOPREC_SD, sogg_dic(_codditta)); + +// Evidenzia i quadri compilati o inibiti + TString qcomp(NUM_QUADRI), qric(NUM_QUADRI); + +// 1.5 + _basebis->setkey(1); + _basebis->zero(); + _basebis->put("CODDITTA", (long)_codditta); + int rt = _basebis->read(); + qcomp = _basebis->get("QCOMP"); + qric = _basebis->get("QSUPPRIC"); + + if (qcomp == "") qcomp.spaces(); + if (qric == "") qric.spaces(); + + enphasize (qcomp, m); + inibith (qric, m); +} + +bool TManutenzione_quadri::lock(const bool lok) +{ + TLocalisamfile& base = *_base; + + base.setkey(1); + base.zero(); + base.put("CODDITTA",(long)_codditta); + const int rt = base.read(_isequal, _testandlock); + if (rt != NOERR) + return error_box("Impossibile leggere i dati: errore %d", rt); + + if (lok) + { + if (rt != NOERR) + { + if (rt == _islocked) + return message_box("I dati sono gia' in uso ad un altro programma."); + } + + const bool in_uso = base.get_bool("IN_USO"); + + if (in_uso) + return message_box("I dati sono gia' in uso ad un altro programma"); + else + { + base.put("IN_USO", "X"); + const int rewr = base.rewrite(); +#ifdef DBG + if (rewr != NOERR) + return message_box("Rewrite fallita errore %d.", rewr); +#endif + } + } +// Release lock + else + { + base.put("IN_USO", " "); + const int rewr = base.rewrite(); +#ifdef DBG + if (rewr != NOERR) + return message_box("Rewrite fallita errore %d", rewr); +#endif + } + base.reread(_unlock); + return TRUE; +} + + +// Forza la rilettura dei quadri compilati +bool TManutenzione_quadri::leggi_quadri(TMask_field& f, KEY k) +{ + if (k == K_TAB) + app().init_menu(f.mask()); + return TRUE; +} + +void TManutenzione_quadri::init_query_mask(TMask& m) +{ + m.set(F_ANNODIC, _anno_dic); +} + +bool TManutenzione_quadri::main_loop() +{ + KEY tasto; + + do { + if (!query_mask()) + return FALSE; +// Disabilita cambio ditta + enable_menu_item(M_FILE_NEW, FALSE); +// Disabilita cambio parametri + enable_menu_item(M_FILE_REVERT, FALSE); + + if (!lock(TRUE)) + continue; + + load_mask(1); + _msk[1]->autoload(_rel); + + init_menu(*_msk[1]); + + tasto = _msk[1]->run(); + + switch (tasto) + { + case K_ESC : + case K_QUIT : + case K_SAVE : + break; + default: + break; + } + + lock(FALSE); // release lock + + } while (tasto != K_QUIT); + + return FALSE; +} + +bool TManutenzione_quadri::menu(MENU_TAG m) +{ + if (m == BAR_ITEM(1)) + return main_loop(); + return FALSE; +} + +bool TManutenzione_quadri::query_mask() +{ + load_mask(0); + init_query_mask(*_msk[0]); + _msk[0]->first_focus(DLG_OK); + KEY ch = _msk[0]->run(); + _codditta = _msk[0]->get_long(F_CODDITTA); + return ch == K_ENTER; +} + +int MenuQuadri (int argc, char* argv[]) +{ + TManutenzione_quadri a; + a.run(argc, argv, "Manutenzione dichiarazione"); + return 0; +} diff --git a/m770/776100a.h b/m770/776100a.h new file mode 100755 index 000000000..f66c9a881 --- /dev/null +++ b/m770/776100a.h @@ -0,0 +1,10 @@ +#ifndef __776100a_H +#define __776100a_H + +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_ANNODIC 103 +#define F_TIPOQUA 104 +#define F_CODDIC 105 + +#endif diff --git a/m770/776100a.uml b/m770/776100a.uml new file mode 100755 index 000000000..e62b0a772 --- /dev/null +++ b/m770/776100a.uml @@ -0,0 +1,82 @@ +#include "776100a.h" + +PAGE "Selezione Ditta" -1 -1 64 8 + +LISTBOX F_TIPOQUA 2 +BEGIN + PROMPT 90 90 "" + KEY 1 + FIELD LF_BASE->TIPOQUA +END + +/* +NUMBER F_CODDIC 6 +BEGIN + PROMPT 1 3 "Codic " +// FLAGS "D" + KEY 1 + FIELD LF_BASE->CODDIC +// CHECKTYPE REQUIRED +END +*/ + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Codice " + HELP "Codice della ditta da selezionare" +// FLAGS "R" + USE LF_BASE KEY 1 SELECT (TIPOQUA!="D") + JOIN LF_NDITTE TO LF_BASE KEY 1 INTO CODDITTA=CODDITTA + INPUT TIPOQUA F_TIPOQUA + INPUT CODDITTA F_CODDITTA +// INPUT CODDIC F_CODDIC + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale@50" LF_NDITTE->RAGSOC + OUTPUT F_TIPOQUA TIPOQUA +// OUTPUT F_CODDIC CODDIC + OUTPUT F_CODDITTA CODDITTA + OUTPUT F_RAGDITTA LF_NDITTE->RAGSOC + FIELD LF_BASE->CODDITTA + HELP "Inserire la ditta" + WARNING "Manca la ditta" + CHECKTYPE REQUIRED + KEY 1 + GROUP 1 +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 1 2 "Rag. Soc. " + USE LF_NDITTE KEY 2 + JOIN LF_BASE TO LF_NDITTE KEY 1 INTO CODDITTA=CODDITTA + HELP "Ragione sociale della ditta da selezionare" + INPUT RAGSOC F_RAGDITTA + DISPLAY "Ragione sociale@50" RAGSOC + DISPLAY "Codice" CODDITTA + OUTPUT F_CODDITTA CODDITTA + OUTPUT F_RAGDITTA LF_NDITTE->RAGSOC + KEY 2 + GROUP 1 +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 1 4 "Anno dichiarazione " + FLAGS "D" +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_NULL 20 2 +BEGIN + PROMTP -22 -1 "Menu' precedente" + MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +ENDMASK + diff --git a/m770/776100b.h b/m770/776100b.h new file mode 100755 index 000000000..f90e0412a --- /dev/null +++ b/m770/776100b.h @@ -0,0 +1,125 @@ +#ifndef __776100b_H +#define __776100b_H + +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_ANNODIC 103 + +#define DLG_NULL_A 104 +#define DLG_STOPREC_A 105 +#define DLG_NULL_A1 106 +#define DLG_STOPREC_A1 107 +#define DLG_NULL_A2 108 +#define DLG_STOPREC_A2 109 +#define DLG_NULL_A3 110 +#define DLG_STOPREC_A3 111 +#define DLG_NULL_B 112 +#define DLG_STOPREC_B 113 +#define DLG_NULL_B1 114 +#define DLG_STOPREC_B1 115 +#define DLG_NULL_C 116 +#define DLG_STOPREC_C 117 +#define DLG_NULL_D 118 +#define DLG_STOPREC_D 119 +#define DLG_NULL_D1 120 +#define DLG_STOPREC_D1 121 +#define DLG_NULL_E 122 +#define DLG_STOPREC_E 123 +#define DLG_NULL_E1 124 +#define DLG_STOPREC_E1 125 +#define DLG_NULL_E2 126 +#define DLG_STOPREC_E2 127 +#define DLG_NULL_F 128 +#define DLG_STOPREC_F 129 +#define DLG_NULL_F1 130 +#define DLG_STOPREC_F1 131 +#define DLG_NULL_F2 132 +#define DLG_STOPREC_F2 133 +#define DLG_NULL_G 134 +#define DLG_STOPREC_G 135 +#define DLG_NULL_G1 136 +#define DLG_STOPREC_G1 137 +#define DLG_NULL_H 138 +#define DLG_STOPREC_H 139 +#define DLG_NULL_I 140 +#define DLG_STOPREC_I 141 +#define DLG_NULL_L 142 +#define DLG_STOPREC_L 143 +#define DLG_NULL_N 144 +#define DLG_STOPREC_N 145 +#define DLG_NULL_P 146 +#define DLG_STOPREC_P 147 +#define DLG_NULL_Q 148 +#define DLG_STOPREC_Q 149 +#define DLG_NULL_R 150 +#define DLG_STOPREC_R 151 +#define DLG_NULL_S 152 +#define DLG_STOPREC_S 153 +#define DLG_NULL_T 154 +#define DLG_STOPREC_T 155 + +#define DLG_MANUTENZ 218 + +#define DLG_NULL_DICH 206 +#define DLG_STOPREC_DICH 207 +#define DLG_NULL_RAPP 208 +#define DLG_STOPREC_RAPP 209 +#define DLG_NULL_SCRIT 210 +#define DLG_STOPREC_SCRIT 211 +#define DLG_NULL_CAAF 212 +#define DLG_STOPREC_CAAF 213 +#define DLG_NULL_DIRET 214 +#define DLG_STOPREC_DIRET 215 +#define DLG_NULL_CONC 216 +#define DLG_STOPREC_CONC 217 +#define DLG_NULL_DIC0 200 +#define DLG_STOPREC_DIC0 201 +#define DLG_NULL_DIC1 202 +#define DLG_STOPREC_DIC1 203 +#define DLG_NULL_SOCTRA 204 +#define DLG_STOPREC_SOCTRA 205 + +#define DLG_CANCEL_MENU 163 + +#define DLG_NULL_DG 164 +#define DLG_STOPREC_DG 165 + +#define DLG_MANUTENZ_SOCI 166 +#define DLG_NULL_SOCI 167 + +#define DLG_NULL_ST 168 +#define DLG_STOPREC_ST 169 +#define DLG_STOPREC_AD 170 + +// Menu' stampe +#define DLG_NULL_ST0 219 +#define DLG_STOPREC_ST0 220 +#define DLG_NULL_ST1 221 +#define DLG_STOPREC_ST1 222 + +#define DLG_CANCEL_MENU_ST 170 +#define DLG_NULL_ST2 171 +#define DLG_STOPREC_ST2 172 +#define DLG_NULL_ST3 173 +#define DLG_STOPREC_ST3 174 +// Fine stampe + +// Menu' sogg. dichiarante +#define DLG_NULL_SD 198 +#define DLG_STOPREC_SD 199 +#define DLG_NULL_SD0 191 +#define DLG_STOPREC_SD0 192 +#define DLG_NULL_SD1 193 +#define DLG_STOPREC_SD1 194 +#define DLG_NULL_SD2 195 +#define DLG_STOPREC_SD2 196 +#define DLG_CANCEL_MENU_SD 197 + +#define DLG_STOPREC_IR 175 + +#define RILEGGI_QUADRI 190 + +#define DLG_NULL_STQD 198 +#define DLG_STOPREC_STQD 199 + +#endif diff --git a/m770/776100b.uml b/m770/776100b.uml new file mode 100755 index 000000000..60f21e64a --- /dev/null +++ b/m770/776100b.uml @@ -0,0 +1,899 @@ +// Menu' manutenzione quadri +#include "776100b.h" +TOOLBAR "" 0 22 0 2 +ENDPAGE + +PAGE "Manutenzione dichiarazione" -1 -1 78 21 + +// Serve solo per rileggere i quadri compilati (nel suo handler) +NUMBER RILEGGI_QUADRI 1 +BEGIN + PROMPT 1 1 "" + FLAGS "H" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "D" + FIELD LF_BASE->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 3 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 5 "Manutenzione dati anagrafici" + GROUP 1 +END + +// Il menu' viene richiamato nell'handler di questo bottone +BUTTON DLG_MANUTENZ 1 1 +BEGIN + PROMPT 1 5 "" + PICTURE 123 + GROUP 1 +END + +// Aggancia il menu' sogg.dich. +TEXT DLG_NULL_SD +BEGIN + PROMPT 5 6 "Soggetto dichiarante" + FLAGS "D" + GROUP 1 +END + +// Il menu' viene richiamato nell'handler di questo bottone +BUTTON DLG_STOPREC_SD 1 1 +BEGIN + PROMPT 1 6 "" + PICTURE 123 + GROUP 1 +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 7 "Anagrafica dipendenti" + GROUP 1 +END + +BUTTON DLG_STOPREC_AD 1 1 +BEGIN + PROMPT 1 7 "" + PICTURE 123 + GROUP 1 + MESSAGE RUN,773,-1,771150a,45,"Anagrafica dipendenti",/uPRASSI +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 8 "Scheda percipienti" + GROUP 1 +END + +BUTTON DLG_STOPREC 1 1 +BEGIN + PROMPT 1 8 "" + GROUP 1 + MESSAGE RUN,770,-0 +END + +TEXT DLG_NULL_SOCI +BEGIN + PROMPT 43 5 "Manutenzione amministratori" + GROUP 1 +END + +BUTTON DLG_MANUTENZ_SOCI 1 1 +BEGIN + PROMPT 39 5 "" +// MESSAGE RUN,ba4,-5 + PICTURE 123 + GROUP 1 +END + +TEXT DLG_NULL +BEGIN + PROMPT 43 6 "Invio/Ricezione ministeriale" + GROUP 1 +END + +BUTTON DLG_STOPREC_IR 1 1 +BEGIN + PROMPT 39 6 "" + PICTURE 123 + FLAGS "D" + GROUP 1 +END + +// Forza la rilettura del flag QCOMP +BUTTON DLG_STOPREC 1 1 +BEGIN + PROMPT 39 7 "" + MESSAGE RUN,771MOD,-2,W|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_DG +BEGIN + PROMPT 43 7 "Prospetto dati generali" + GROUP 1 +END + +TEXT DLG_NULL_ST +BEGIN + PROMPT 43 8 "Stampe" + GROUP 1 +END + +// Il menu' viene richiamato nell'handler di questo bottone +BUTTON DLG_STOPREC_ST 1 1 +BEGIN + PROMPT 39 8 "" + PICTURE 123 + GROUP 1 +END + + +// Prima colonna +TEXT DLG_NULL_A +BEGIN + PROMPT 5 10 "Quadro A" + GROUP 1 +END + +BUTTON DLG_STOPREC_A 1 1 +BEGIN + PROMPT 1 10 "" + MESSAGE RUN,771MOD,-7,A|K_TAB,RILEGGI_QUADRI + PICTURE 123 + GROUP 1 +END + +TEXT DLG_NULL_A1 +BEGIN + PROMPT 5 11 "Quadro A1" + GROUP 1 +END + +BUTTON DLG_STOPREC_A1 1 1 +BEGIN + PROMPT 1 11 "" + MESSAGE RUN,771MOD,-7,1|K_TAB,RILEGGI_QUADRI + PICTURE 123 + GROUP 1 +END + +TEXT DLG_NULL_A2 +BEGIN + PROMPT 5 12 "Quadro A2" + GROUP 1 + FLAGS "D" +END + +BUTTON DLG_STOPREC_A2 1 1 +BEGIN + PROMPT 1 12 "" + MESSAGE RUN,771MOD,-7,2|K_TAB,RILEGGI_QUADRI + PICTURE 123 + GROUP 1 +END + +TEXT DLG_NULL_A3 +BEGIN + PROMPT 5 13 "Quadro A3" + GROUP 1 +END + +BUTTON DLG_STOPREC_A3 1 1 +BEGIN + PROMPT 1 13 "" + MESSAGE RUN,771MOD,-7,3|K_TAB,RILEGGI_QUADRI + PICTURE 123 + GROUP 1 +END + +TEXT DLG_NULL_B +BEGIN + PROMPT 5 14 "Quadro B" + GROUP 1 +END + +BUTTON DLG_STOPREC_B 1 1 +BEGIN + PROMPT 1 14 "" + PICTURE 123 + MESSAGE RUN,773,-4,77qb,59,"Quadro B","B"|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_B1 +BEGIN + PROMPT 5 15 "Quadro B-1" + GROUP 1 +END + +BUTTON DLG_STOPREC_B1 1 1 +BEGIN + PROMPT 1 15 "" + PICTURE 123 + MESSAGE RUN,773,-4,77qb1,60,"Quadro B1","B1"|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_C +BEGIN + PROMPT 5 16 "Quadro C " + GROUP 1 +END + +BUTTON DLG_STOPREC_C 1 1 +BEGIN + PROMPT 1 16 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,C|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +// Fine prima colonna + +// +// Seconda colonna +// + +TEXT DLG_NULL_D +BEGIN + PROMPT 24 10 "Quadro D " + GROUP 1 +END + +BUTTON DLG_STOPREC_D 1 1 +BEGIN + PROMPT 20 10 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,D|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_D1 +BEGIN + PROMPT 24 11 "Quadro D-1 " + GROUP 1 +END + +BUTTON DLG_STOPREC_D1 1 1 +BEGIN + PROMPT 20 11 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,1|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_E +BEGIN + PROMPT 24 12 "Quadro E " + GROUP 1 +END + +BUTTON DLG_STOPREC_E 1 1 +BEGIN + PROMPT 20 12 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,E|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_E1 +BEGIN + PROMPT 24 13 "Quadro E-1 " + GROUP 1 +END + +BUTTON DLG_STOPREC_E1 1 1 +BEGIN + PROMPT 20 13 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,2|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_E2 +BEGIN + PROMPT 24 14 "Quadro E-2" + FLAGS "D" + GROUP 1 +END + +BUTTON DLG_STOPREC_E2 1 1 +BEGIN + PROMPT 20 14 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,3|K_TAB,RILEGGI_QUADRI +// FLAGS "D" versione test + GROUP 1 +END + +TEXT DLG_NULL_F +BEGIN + PROMPT 24 15 "Quadro F" +// FLAGS "D" + GROUP 1 +END + +BUTTON DLG_STOPREC_F 1 1 +BEGIN + PROMPT 20 15 "" + PICTURE 123 + MESSAGE RUN,771MOD,-6,0|K_TAB,RILEGGI_QUADRI +// FLAGS "D" + GROUP 1 +END + +TEXT DLG_NULL_F1 +BEGIN + PROMPT 24 16 "Quadro F-1" +// FLAGS "D" + GROUP 1 +END + +BUTTON DLG_STOPREC_F1 1 1 +BEGIN + PROMPT 20 16 "" + PICTURE 123 + MESSAGE RUN,771MOD,-6,1|K_TAB,RILEGGI_QUADRI +// FLAGS "D" + GROUP 1 +END +// Fine seconda colonna + +// Terza colonna + +TEXT DLG_NULL_F2 +BEGIN + PROMPT 43 10 "Quadro F-2" +// FLAGS "D" + GROUP 1 +END + +BUTTON DLG_STOPREC_F2 1 1 +BEGIN + PROMPT 39 10 "" + PICTURE 123 + MESSAGE RUN,771MOD,-6,2|K_TAB,RILEGGI_QUADRI +// FLAGS "D" + GROUP 1 +END + +TEXT DLG_NULL_G +BEGIN + PROMPT 43 11 "Quadro G" + GROUP 1 +END + +BUTTON DLG_STOPREC_G 1 1 +BEGIN + PROMPT 39 11 "" + PICTURE 123 + MESSAGE RUN,771MOD,-6,3|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_G1 +BEGIN + PROMPT 43 12 "Quadro G-1" + GROUP 1 +END + +BUTTON DLG_STOPREC_G1 1 1 +BEGIN + PROMPT 39 12 "" + PICTURE 123 + MESSAGE RUN,771MOD,-6,5|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_H +BEGIN + PROMPT 43 13 "Quadro H " + GROUP 1 +END + +BUTTON DLG_STOPREC_H 1 1 +BEGIN + PROMPT 39 13 "" + PICTURE 123 + MESSAGE RUN,771MOD,-1|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_I +BEGIN + PROMPT 43 14 "Quadro I " + GROUP 1 +END + +BUTTON DLG_STOPREC_I 1 1 +BEGIN + PROMPT 39 14 "" + PICTURE 123 + MESSAGE RUN,771MOD,-2,I|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_L +BEGIN + PROMPT 43 15 "Quadro L " + GROUP 1 +END + +// Forza l'esecuzione di leggi_quadri() +BUTTON DLG_STOPREC_L 1 1 +BEGIN + PROMPT 39 15 "" + PICTURE 123 + MESSAGE RUN,771MOD,-3|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_N +BEGIN + PROMPT 43 16 "Quadro N" + GROUP 1 +END + +BUTTON DLG_STOPREC_N 1 1 +BEGIN + PROMPT 39 16 "" + PICTURE 123 + MESSAGE RUN,773,-2,77qn,72,"Quadro N","N"|K_TAB,RILEGGI_QUADRI + GROUP 1 +END +// Fine terza colonna + +// QUARTA colonna +TEXT DLG_NULL_P +BEGIN + PROMPT 62 10 "Quadro P" + GROUP 1 +END + +BUTTON DLG_STOPREC_P 1 1 +BEGIN + PROMPT 58 10 "" + PICTURE 123 + MESSAGE RUN,773,-2,77qp,73,"Quadro P","P"|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_Q +BEGIN + PROMPT 62 11 "Quadro Q" + GROUP 1 +END + +BUTTON DLG_STOPREC_Q 1 1 +BEGIN + PROMPT 58 11 "" + MESSAGE RUN,773,-2,77qq,74,"Quadro Q","Q"|K_TAB,RILEGGI_QUADRI + PICTURE 123 + GROUP 1 +END + +TEXT DLG_NULL_R +BEGIN + PROMPT 62 12 "Quadro R" + GROUP 1 +END + +BUTTON DLG_STOPREC_R 1 1 +BEGIN + PROMPT 58 12 "" + PICTURE 123 + MESSAGE RUN,773,-2,77qr,75,"Quadro R","R"|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_S +BEGIN + PROMPT 62 13 "Quadro S" + GROUP 1 +END + +BUTTON DLG_STOPREC_S 1 1 +BEGIN + PROMPT 58 13 "" + PICTURE 123 + MESSAGE RUN,773,-2,77qs,76,"Quadro S","S"|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT DLG_NULL_T +BEGIN + PROMPT 62 14 "Quadro T" + GROUP 1 +END + +BUTTON DLG_STOPREC_T 1 1 +BEGIN + PROMPT 58 14 "" + PICTURE 123 + MESSAGE RUN,773,-2,77qt,77,"Quadro T","T"|K_TAB,RILEGGI_QUADRI + GROUP 1 +END +// Fine QUARTA colonna + +// +/////////// Colonna MENU' ANAGRAFICI //////////////////////////// +// +TEXT DLG_NULL_DICH +BEGIN + PROMPT 5 5 "Dichiarante" + FLAGS "H" + GROUP 2 +END + +BUTTON DLG_STOPREC_DICH 1 1 +BEGIN + PROMPT 1 5 "" + MESSAGE RUN,771MOD,-0,A + PICTURE 123 + FLAGS "H" + GROUP 2 +END + +TEXT DLG_NULL_RAPP +BEGIN + PROMPT 5 6 "Rappresentante" + FLAGS "H" + GROUP 2 +END + +BUTTON DLG_STOPREC_RAPP 1 1 +BEGIN + PROMPT 1 6 "" + PICTURE 123 + MESSAGE RUN,771MOD,-0,C + FLAGS "H" + GROUP 2 +END + +TEXT DLG_NULL_SCRIT +BEGIN + PROMPT 5 7 "Scritture contabili" + FLAGS "H" + GROUP 2 +END + +BUTTON DLG_STOPREC_SCRIT 1 1 +BEGIN + PROMPT 1 7 "" + PICTURE 123 + MESSAGE RUN,771MOD,-0,D + FLAGS "H" + GROUP 2 +END + +TEXT DLG_NULL_CAAF +BEGIN + PROMPT 5 8 "Dati C.A.A.F." + FLAGS "H" + GROUP 2 +END + +BUTTON DLG_STOPREC_CAAF 1 1 +BEGIN + PROMPT 1 8 "" + PICTURE 123 + MESSAGE RUN,771MOD,-0,E + FLAGS "H" + GROUP 2 +END + +TEXT DLG_NULL_DIRET +BEGIN + PROMPT 5 9 "Direttore / Professionista" + FLAGS "H" + GROUP 2 +END + +BUTTON DLG_STOPREC_DIRET 1 1 +BEGIN + PROMPT 1 9 "" + PICTURE 123 + MESSAGE RUN,771MOD,-0,F + FLAGS "H" + GROUP 2 +END + +TEXT DLG_NULL_CONC +BEGIN + PROMPT 5 10 "Concessione / UIDD" + FLAGS "H" + GROUP 2 +END + +BUTTON DLG_STOPREC_CONC 1 1 +BEGIN + PROMPT 1 10 "" + PICTURE 123 + MESSAGE RUN,771MOD,-0,G + FLAGS "H" + GROUP 2 +END + +TEXT DLG_NULL_DIC0 +BEGIN + PROMPT 5 11 "Gestione dichiarante / estinti" + FLAGS "HD" + GROUP 2 +END + +BUTTON DLG_STOPREC_DIC0 1 1 +BEGIN + PROMPT 1 11 "" + PICTURE 123 + MESSAGE RUN,776MOD,-5 + FLAGS "H" + GROUP 2 +END + +TEXT DLG_NULL_SOCTRA +BEGIN + PROMPT 5 12 "Manutenzione dati societa' trasformate" + FLAGS "HD" + GROUP 2 +END + +BUTTON DLG_STOPREC_SOCTRA 1 1 +BEGIN + PROMPT 1 12 "" + PICTURE 123 + MESSAGE RUN,773,-1,771100h,102,"Manutenzione dati societa' trasformate" + FLAGS "H" + GROUP 2 +END + +/****************************************************** +NUMBER DLG_STOPREC_DIC0 5 +BEGIN + PROMPT 1 12 "Soggetto dichiarante " + USE LF_BASE KEY 1 SELECT (CODDIC="") + JOIN LF_NDITTE TO LF_BASE KEY 1 INTO CODDITTA=CODDITTA + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale@50" LF_NDITTE->RAGSOC + OUTPUT DLG_STOPREC_DIC0 CODDITTA + FIELD LF_BASE->CODDIC + FLAGS "H" + GROUP 2 +END + +BUTTON DLG_STOPREC_DIC1 9 2 +BEGIN + PROMPT 1 13 "~Soggetti estinti" +// MESSAGE RUN,771MOD,-0,G + FLAGS "H" + GROUP 2 +END + +TEXT DLG_NULL_DIC0 +BEGIN + PROMPT 5 11 "Soggetto dichiarante" + FLAGS "H" + GROUP 2 +END + +BUTTON DLG_STOPREC_DIC0 1 1 +BEGIN + PROMPT 1 11 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-0,G + FLAGS "H" + GROUP 2 +END + +TEXT DLG_NULL_DIC1 +BEGIN + PROMPT 5 12 "Soggetti estinti" + FLAGS "H" + GROUP 2 +END + +BUTTON DLG_STOPREC_DIC1 1 1 +BEGIN + PROMPT 1 12 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-0,G + FLAGS "H" + GROUP 2 +END +**************************/ + +BUTTON DLG_CANCEL_MENU 20 2 +BEGIN + PROMPT -22 -1 "Menu' precedente" + GROUP 2 + FLAGS "H" +END +/////////// Fine colonna MENU' ANAGRAFICI //////////////////////////// + +/////////// Inizio colonna MENU' STAMPE //////////////////////////// +TEXT DLG_NULL_ST0 +BEGIN + PROMPT 5 5 "Stampa schede percipienti" + FLAGS "H" + GROUP 3 +END + +BUTTON DLG_STOPREC_ST0 1 1 +BEGIN + PROMPT 1 5 "" + MESSAGE RUN,772MOD,-0 + PICTURE 123 + FLAGS "H" + GROUP 3 +END + +TEXT DLG_NULL_ST1 +BEGIN + PROMPT 5 6 "Stampa certificazioni" + FLAGS "H" + GROUP 3 +END + +BUTTON DLG_STOPREC_ST1 1 1 +BEGIN + PROMPT 1 6 "" + PICTURE 123 + MESSAGE RUN,772MOD,-1 + FLAGS "H" + GROUP 3 +END + +TEXT DLG_NULL_ST2 +BEGIN + PROMPT 5 7 "Stampa movimenti percipienti" + FLAGS "H" + GROUP 3 +END + +BUTTON DLG_STOPREC_ST2 1 1 +BEGIN + PROMPT 1 7 "" + PICTURE 123 + MESSAGE RUN,772MOD,-2 + FLAGS "H" + GROUP 3 +END + +TEXT DLG_NULL_ST3 +BEGIN + PROMPT 5 8 "Stampa controllo versamento ritenute" + FLAGS "H" + GROUP 3 +END + +BUTTON DLG_STOPREC_ST3 1 1 +BEGIN + PROMPT 1 8 "" + PICTURE 123 + MESSAGE RUN,772MOD,-3 + FLAGS "H" + GROUP 3 +END + +#include "menustq.uml" + +TEXT DLG_NULL_STQD +BEGIN + PROMPT 5 9 "Menu' stampe dichiarazioni" + FLAGS "H" + GROUP 3 +END + +BUTTON DLG_CANCEL_MENU_ST 20 2 +BEGIN + PROMPT -22 -1 "Menu' precedente" + GROUP 3 + MESSAGE HIDE,3@|SHOW,1@ + FLAGS "H" +END + +BUTTON DLG_STOPREC_STQD 1 1 +BEGIN + PROMPT 1 9 "" + PICTURE 123 + FLAGS "H" + MESSAGE HIDE,3@|SHOW,5@ + GROUP 3 +END + +/////////// Fine colonna MENU' STAMPE //////////////////////////// + +/////////// Inizio colonna MENU' SOGG. DICHIARANTE //////////////////////////// +TEXT DLG_NULL_SD0 +BEGIN + PROMPT 5 5 "Quadro I" + FLAGS "H" + GROUP 4 +END + +BUTTON DLG_STOPREC_SD0 1 1 +BEGIN + PROMPT 1 5 "" + MESSAGE RUN,771MOD,-2,1|K_TAB,RILEGGI_QUADRI + PICTURE 123 + FLAGS "H" + GROUP 4 +END + +TEXT DLG_NULL_SD1 +BEGIN + PROMPT 5 6 "Prospetto dati generali" + FLAGS "H" + GROUP 4 +END + +BUTTON DLG_STOPREC_SD1 1 1 +BEGIN + PROMPT 1 6 "" + PICTURE 123 + MESSAGE RUN,771MOD,-2,2|K_TAB,RILEGGI_QUADRI + FLAGS "H" + GROUP 4 +END + +TEXT DLG_NULL_SD2 +BEGIN + PROMPT 5 7 "Generazione riporti" + FLAGS "H" + GROUP 4 +END + +BUTTON DLG_STOPREC_SD2 1 1 +BEGIN + PROMPT 1 7 "" + PICTURE 123 + MESSAGE RUN,774,-1,D + FLAGS "H" + GROUP 4 +END + +BUTTON DLG_CANCEL_MENU_SD 20 2 +BEGIN + PROMPT -22 -1 "Menu' precedente" + GROUP 4 + FLAGS "H" +END +/////////// Fine colonna MENU' SOGG. DICHIARANTE //////////////////////////// + +BUTTON DLG_CANCEL 20 2 +BEGIN + PROMPT -22 -1 "Menu' precedente" + GROUP 1 +END + +BUTTON DLG_QUIT 20 2 +BEGIN + PROMTP -12 -1 "Fine" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/776200.cpp b/m770/776200.cpp new file mode 100755 index 000000000..17a75d5da --- /dev/null +++ b/m770/776200.cpp @@ -0,0 +1,83 @@ +// 776200.cpp - Immissione nuova dichiarazione 770 +#include +#include +#include +#include +#include + +#include "776200a.h" +#include "77lib.h" + +class TImmissioneDichiarazione : public TApplication +{ + private: + TRelation* _rel; + TMask* _msk; + int _anno_dic; + protected: + virtual bool menu(MENU_TAG); + virtual void on_config_change(); + virtual bool create(); + virtual bool destroy(); + bool do_it(); + public: + TImmissioneDichiarazione() {} + ~TImmissioneDichiarazione() {} +}; + +bool TImmissioneDichiarazione::create() +{ + TApplication::create(); + _rel = new TRelation (LF_BASE); + _rel->add(LF_BASEBIS, "CODDITTA=CODDITTA"); + _msk = new TMask ("776200a"); + dispatch_e_menu (BAR_ITEM(1)); + return TRUE; +} + +bool TImmissioneDichiarazione::destroy() +{ + delete _rel; + delete _msk; + return TApplication::destroy(); +} + +bool TImmissioneDichiarazione::do_it() +{ + KEY tasto; + + _msk->set(F_ANNODIC, _anno_dic); + + while ((tasto = _msk->run()) != K_QUIT) + { + long codditta = _msk->get_long(F_CODDITTA); + if (exist_dichiar_770(codditta)) { + warning_box("La dichiarazione della ditta %d esiste gia'", codditta); + continue; + } + if (enter_dichiar_770(codditta, _anno_dic)) + message_box("Dichiarazione inserita"); + } + return tasto == K_ENTER; +} + +bool TImmissioneDichiarazione::menu(MENU_TAG mt) +{ + if (mt == BAR_ITEM(1)) + return do_it(); + return FALSE; +} + +void TImmissioneDichiarazione::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL); +} + +int ImmissioneDichiarazioni(int argc, char* argv[]) +{ + TImmissioneDichiarazione app; + app.run(argc, argv, "Immissione dichiarazione"); + return 0; +} + diff --git a/m770/776200a.h b/m770/776200a.h new file mode 100755 index 000000000..b32a74458 --- /dev/null +++ b/m770/776200a.h @@ -0,0 +1,8 @@ +#ifndef __776200A_H +#define __776200A_H + +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_ANNODIC 103 + +#endif diff --git a/m770/776200a.uml b/m770/776200a.uml new file mode 100755 index 000000000..60047082a --- /dev/null +++ b/m770/776200a.uml @@ -0,0 +1,55 @@ +// Immissione dichiarazione + +#include "776200a.h" + +PAGE "Selezione Ditta" -1 -1 64 8 + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Codice " + HELP "Codice della ditta da attivare" + FLAGS "FR" + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_CODDITTA CODDITTA + OUTPUT F_RAGDITTA RAGSOC + CHECKTYPE NORMAL + WARNING "Ditta assente" + KEY 1 + GROUP 1 +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 1 2 "Rag. Soc. " + USE LF_NDITTE KEY 2 + HELP "Ragione sociale della ditta da selezionare" + INPUT RAGSOC F_RAGDITTA + DISPLAY "Ragione sociale@50" RAGSOC + DISPLAY "Codice" CODDITTA + COPY OUTPUT F_CODDITTA + KEY 2 + GROUP 1 +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 1 4 "Anno dichiarazione " + FLAGS "D" +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 9 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK diff --git a/m770/776300.cpp b/m770/776300.cpp new file mode 100755 index 000000000..87a6ec6a0 --- /dev/null +++ b/m770/776300.cpp @@ -0,0 +1,483 @@ +// 776300.cpp - Selezione dichiarazioni per menu' stampe +#include +#include +#include +#include +#include +#include +#include +#include + +#include "776300a.h" +#include "77lib.h" + +class TSelezioneDich : public TConfig_application +{ + TString16 _section; + TBit_array _selected; + TArray_sheet* _ditte, * _ditte_sel; + TArray _nomiditte; + TArray _old_ditte; + TConfig* _user_cnf, * _studio_cnf; + int _n_ditte; + int _anno_dic; + TLocalisamfile* _nditte; + long _da_cod, _a_cod; + bool _builded_nomiditte; + + void build_nomiditte(); + void build_ditte_sheet(); + void build_ditte_sel_sheet(); + bool is_in (long codditta); + void init_sheet(); + void check_all_dic(); + + public: + void set_choice_limits(TMask& m); + long select_firm_range(long from, long to); + long set_previous_firm_range(); +// handlers & handlers + static bool to_ditt_handler (TMask_field&, KEY); + static bool fr_ditt_handler (TMask_field&, KEY); + static bool to_butt_handler (TMask_field&, KEY); + static bool fr_butt_handler (TMask_field&, KEY); + static bool mask_select (TMask_field&, KEY); + static bool mask_azzera (TMask_field&, KEY); +// Seleziona tutte le dic + static bool tutte_handler (TMask_field&, KEY); +// Mostra solo le selezionate + static bool dicsel_handler (TMask_field&, KEY); + + virtual bool preprocess_config (TMask& mask, TConfig& config); + virtual bool postprocess_config (TMask& mask, TConfig& config); +// virtual bool postprocess_config_changed(const char* par, const char* var,const char* oldv, const char* newv); + + virtual bool user_create(); + virtual bool user_destroy(); + + TSelezioneDich() : TConfig_application(CONFIG_USER) , + _a_cod(0L), _da_cod(0L) {} + virtual ~TSelezioneDich() {} +}; + +HIDDEN TSelezioneDich& app() { return (TSelezioneDich&) main_app(); } + +bool TSelezioneDich::user_create() +{ + const char* edit_mask = "776300a"; + _section = name(); + _section.cut(2); + +// Forza la scrittura del file in partenza +// (onde evitare di vedere il messaggio "Nessun parametro da configurare" e di dover +// rientrare). + TConfig* tmp = new TConfig(CONFIG_USER, _section); + tmp->get("EdMask", _section, -1, edit_mask); + delete tmp; + + _user_cnf = new TConfig(CONFIG_USER, _section); + _user_cnf->get("EdMask", _section, -1, edit_mask); + + _studio_cnf = new TConfig(CONFIG_STUDIO); + + _nditte = new TLocalisamfile(LF_NDITTE); + _ditte = new TArray_sheet(-1, -1, 0, 0, "Selezione Ditte", + "@1|Cod.@5|Ragione Sociale@50"); + + _ditte_sel = new TArray_sheet(-1, -1, 0, 0, "Selezione Ditte", + "@1|Cod.@5|Ragione Sociale@50", 0); + + _builded_nomiditte = FALSE; + + return TRUE; +} + +bool TSelezioneDich::user_destroy() +{ + delete _ditte; + delete _ditte_sel; + delete _nditte; + delete _user_cnf; + delete _studio_cnf; + return TRUE; +} + +void TSelezioneDich::init_sheet() +{ + _n_ditte = 0l; + _old_ditte.destroy(); + + if (!_builded_nomiditte) + { + build_nomiditte(); + _builded_nomiditte = TRUE; + } + +// Legge ditte selezionate dal CONFIG_USER e mette nell'array _old_ditte + long codditta = 0L; + int i = 0; + TString16 cods; + while ((codditta = _user_cnf->get_long(DITTE_SEL, _section, i++)) != 0L) + { +// Salvo il primo e l'ultimo codice ditta per settare i campi in maschera + if (_da_cod == 0L) _da_cod = codditta; + _a_cod = codditta; + + cods.format("%5ld", codditta); + _old_ditte.add(cods); + } + + build_ditte_sheet(); +} + +bool TSelezioneDich::preprocess_config (TMask& m, TConfig& config) +{ + init_sheet(); + +// Setto l'anno dichiarazione con quello preso dai parametri di studio +// ma SOLO SE non gia' compilato nei par. utente + _anno_dic = (int)_user_cnf->get_long(ANNO_SEL, _section); + if (_anno_dic == 0) + _anno_dic = (int)_studio_cnf->get_long(ANNO_SEL, _section); + + m.set(F_ANNODIC, _anno_dic); + +// const long l = select_firm_range(_da_cod, _a_cod); +// Evidenzia le ditte precedentemente selezionate. Legge _old_ditte + const long l = set_previous_firm_range(); + + set_choice_limits(m); + m.field(F_SELECT).set(format("%ld", l)); + + m.set_handler (DLG_SELECT_2, mask_select); + m.set_handler (F_ANNULLA, mask_azzera); + m.set_handler (A_CODICE, to_ditt_handler); + m.set_handler (DA_CODICE, fr_ditt_handler); + m.set_handler (BUT_DTO, to_butt_handler); + m.set_handler (BUT_DFR, fr_butt_handler); + + m.set_handler (F_TUTTE, tutte_handler); + m.set_handler (F_DICSEL, dicsel_handler); + + return TRUE; +} + +bool TSelezioneDich::is_in (long codditta) +{ + for (int i=0; i<_old_ditte.items(); i++) + if (codditta == atol((TString&)_old_ditte[i])) + return TRUE; + return FALSE; +} + +bool TSelezioneDich::postprocess_config (TMask& m, TConfig& config) +{ + if (m.last_key() == K_ENTER) + { + const int anno_dic = m.get_int(F_ANNODIC); + const long selec = _ditte->checked(); + const long items = _ditte->items(); + + TProgind prg(items, "Registrazione in corso\nAttendere prego...", FALSE, TRUE); + +// Registro l'anno dic. nei parametri utente + _user_cnf->set(ANNO_SEL, anno_dic); + +// Compatto l'array delle ditte nel .ini + int ditte_in_ini = 0; + + long codditta = 0L; + for (int i = 0; i < items; i++) + { + if (_selected[i]) + { + TToken_string& d = (TToken_string&)_nomiditte[i]; + codditta = d.get_long(1); + _user_cnf->set(DITTE_SEL, codditta, _section, TRUE, ditte_in_ini); + ditte_in_ini++ ; + } + prg.addstatus(1); + } + +// Segno l'ultima ditta nel .ini + _user_cnf->set(DITTE_SEL, "", _section, TRUE, ditte_in_ini); +// Reset dei due codici ditta "Da" "A" + _a_cod = _da_cod = 0L; + } + return TRUE; +} + +bool TSelezioneDich::mask_select (TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + app()._ditte->enable_check(); + // seleziona e aggiungi alle gia' selezionate + if (app()._ditte->run() == K_ENTER) + { + for (long j = 0l; j < app()._ditte->items(); j++) + app()._selected.set(j, app()._ditte->checked(j)); + app().set_choice_limits(f.mask()); + } + } + return TRUE; +} + +bool TSelezioneDich::mask_azzera (TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + app()._selected.reset(); + f.mask().reset(F_SELECT); + f.mask().reset(DA_CODICE); + f.mask().reset(A_CODICE); + app()._ditte->check(-1, FALSE); + } + return TRUE; +} + +// --------------------------- handlers per selezione ditte + +bool TSelezioneDich::to_ditt_handler(TMask_field& f, KEY key) +{ + TMask& m = f.mask(); + if (key == K_F9) + { + app().to_butt_handler(m.field(BUT_DTO), K_SPACE); + } + if (key == K_TAB && f.focusdirty()) + { + const long l = app().select_firm_range(m.get_long(DA_CODICE), m.get_long(A_CODICE)); + app().set_choice_limits(m); + m.field(F_SELECT).set(format("%ld", l)); + } + return TRUE; +} + +bool TSelezioneDich::fr_ditt_handler(TMask_field& f, KEY key) +{ + TMask& m = f.mask(); + if (key == K_F9) + { + app().fr_butt_handler(m.field(BUT_DFR), K_SPACE); + } + else if (key == K_TAB && f.focusdirty()) + { + const long l = app().select_firm_range(m.get_long(DA_CODICE), m.get_long(A_CODICE)); + app().set_choice_limits(m); + m.field(F_SELECT).set(format("%ld", l)); + } + return TRUE; +} + +bool TSelezioneDich::to_butt_handler(TMask_field& f, KEY key) +{ + if (key == K_SPACE) + { + TArray_sheet* sh = app()._ditte; + TMask& m = f.mask(); + + sh->disable_check(); + if (sh->run() == K_ENTER) + { + app().select_firm_range(m.get_long(DA_CODICE),sh->row(sh->selected()).get_long(1)); + app().set_choice_limits(m); + } + } + return TRUE; +} + +bool TSelezioneDich::fr_butt_handler(TMask_field& f, KEY key) +{ + if (key == K_SPACE) + { + TMask& m = f.mask(); + TArray_sheet* sh = app()._ditte; + + sh->disable_check(); + if (sh->run() == K_ENTER) + { + app().select_firm_range(sh->row(sh->selected()).get_long(1), m.get_long(A_CODICE)); + app().set_choice_limits(m); + } + } + return TRUE; +} + +void TSelezioneDich::check_all_dic() +{ + for (int i = 0; i < _ditte->items(); i++) + _ditte->check(i); +} + +bool TSelezioneDich::tutte_handler(TMask_field& f, KEY key) +{ + if (key == K_SPACE) + { + const bool checked = (f.get() == "X"); + + if (checked) + { + app().check_all_dic(); + app().select_firm_range(0L,0L); + app().set_choice_limits(f.mask()); + } + } + return TRUE; +} + +bool TSelezioneDich::dicsel_handler(TMask_field& f, KEY key) +{ + if (key == K_SPACE) + { + app().build_ditte_sel_sheet(); + app()._ditte_sel->run(); + } + return TRUE; +} + +void TSelezioneDich::set_choice_limits(TMask& m) +{ + long first = -1l, last = -1l; + for (int i = 0; i < _ditte->items(); i++) + { + if (_selected[i]) + { + long dit = _ditte->row(i).get_long(1); + if (first == -1l) first = dit; + if (last < dit) last = dit; + } + } + if (first != -1) m.field(DA_CODICE).set(format("%ld",first)); + if (last != -1) m.field(A_CODICE).set(format("%ld",last)); + m.set(F_SELECT, _selected.ones()); +} + +// Legge da _old_ditte le ditte selezionate e le evidenzia +long TSelezioneDich::set_previous_firm_range() +{ + const long items = _old_ditte.items(); + for (int i=0; i < items; i++) + { + const long codditta = atol((TString&)_old_ditte[i]); + + for (int dit=0; dit < _ditte->items(); dit++) + { + TToken_string& d = _ditte->row(dit); + const long cod = d.get_long(1); + + if (codditta == cod) + { + _selected.set(dit); + _ditte->check(dit); + break; + } +/************************ + else + { + _selected.set(dit,FALSE); + _ditte->uncheck(dit); + } +**************************/ + } + } + return _selected.ones(); +} + +long TSelezioneDich::select_firm_range(long from, long to) +{ + if (to == 0l) to = 99999L; + for (int i = 0; i < _ditte->items(); i++) + { + if (_ditte->disabled(i)) + continue; + + TToken_string& d = _ditte->row(i); + + const long cod = d.get_long(1); + if (cod >= from && cod <= to) + { + _selected.set(i); + _ditte->check(i); + } + else + { + _selected.set(i,FALSE); + _ditte->uncheck(i); + } + } + return _selected.ones(); +} + +// 23/6/95 - Scelta ditte solo tra quelle che hanno dichiarazione +void TSelezioneDich::build_nomiditte() +{ + _nomiditte.destroy(); + // ricostruire _nomiditte e rifare build_ditte_sheet + TLocalisamfile& dt = *_nditte; + TProgind prg(dt.items(), "Lettura ditte in corso\nAttendere prego...", FALSE, TRUE); + + for (dt.first(); !dt.eof(); dt.next()) + { + prg.addstatus(1); + bool good = exist_dichiar_770(dt.get_long("CODDITTA")); + if (!good) continue; + + _n_ditte++; + TToken_string* d = new TToken_string(64); + + d->add(" "); // spazio per la selezione + d->add(dt.get("CODDITTA")); + d->add(dt.get("RAGSOC")); + + _nomiditte.add(d); + } +} + +void TSelezioneDich::build_ditte_sheet() +{ + long codditta = 0L; + // build sheet + _ditte->destroy(); + for (int i = 0; i < _nomiditte.items(); i++) + { + TToken_string* d = new TToken_string(64); + *d = (TToken_string&)_nomiditte[i]; + codditta = d->get_long(1); + + const long pos = _ditte->add(d); +// Metto check se selezionata o era nei parametri precedenti + if (_selected[i] || is_in(codditta)) + _ditte->check(pos); + } +} + +// Costruisce un array sheet copiando da nomiditte solo quelle +// gia' selezionate +void TSelezioneDich::build_ditte_sel_sheet() +{ + long codditta = 0L; + // build sheet + _ditte_sel->destroy(); + for (int i = 0; i < _nomiditte.items(); i++) + { + TToken_string* d = new TToken_string(64); + *d = (TToken_string&)_nomiditte[i]; + codditta = d->get_long(1); + +// se selezionata o era nei parametri precedenti + if (_selected[i]) + { + const long pos = _ditte_sel->add(d); +// _ditte_sel->check(pos); + } + } +} + +int SelezioneDichiarazioni(int argc, char* argv[]) +{ + TSelezioneDich app; + app.run(argc, argv, "Selezione dichiarazione"); + return 0; +} + diff --git a/m770/776300a.h b/m770/776300a.h new file mode 100755 index 000000000..1716d91ec --- /dev/null +++ b/m770/776300a.h @@ -0,0 +1,16 @@ +// 776300a.h - Maschera selezione dichiarazioni + +#define F_ANNODIC 101 +#define DA_CODICE 102 +#define A_CODICE 103 +#define BUT_DFR 104 +#define BUT_DTO 105 +#define F_SELECT 106 +#define F_ANNULLA 107 +#define F_VERIFICA 108 +#define DLG_SELECT_2 109 +#define F_TUTTE 110 +#define F_DICSEL 111 +#define RADIO1 112 +#define RADIO2 113 + diff --git a/m770/776300a.uml b/m770/776300a.uml new file mode 100755 index 000000000..abd1baf0e --- /dev/null +++ b/m770/776300a.uml @@ -0,0 +1,130 @@ +// 776300a.uml +// Selezione dichiarazioni + +#include "776300a.h" + +PAGE " Nuova Selezione " -1 -1 70 16 + +/* +GROUPBOX DLG_NULL 39 5 +BEGIN + PROMPT 16 2 "Scelta ditte" +END +*/ + +BOOLEAN RADIO1 +BEGIN + PROMPT 2 2 "" + MESSAGE TRUE ENABLE,DLG_SELECT_2|FALSE,RADIO2|FALSE,F_TUTTE + MESSAGE FALSE DISABLE,DLG_SELECT_2 +END + +TEXT DLG_NULL +BEGIN + PROMPT 9 2 "Le seguenti dichiarazioni" +END + +BUTTON DLG_SELECT_2 25 1 +BEGIN + PROMPT 38 2 "~Seleziona dichiarazioni" + HELP "Indicare le dichiarazioni da selezionare per la stampa" + FLAGS "D" +END + +BOOLEAN RADIO2 +BEGIN + PROMPT 2 4 "" + MESSAGE TRUE ENABLE,BUT_DFR|ENABLE,BUT_DTO|FALSE,RADIO1|DISABLE,DLG_SELECT_2|FALSE,F_TUTTE + MESSAGE FALSE DISABLE,BUT_DFR|DISABLE,BUT_DTO|ENABLE,DLG_SELECT_2 +END + +TEXT DLG_NULL +BEGIN + PROMPT 9 4 "Fra limiti di codici" + FLAGS "D" + GROUP 2 +END + +NUMBER DA_CODICE 6 +BEGIN + PROMPT 38 4 "da " + FLAGS "D" + GROUP 2 + HELP "Codice dichiarazione di inizio selezione" +END + +BUTTON BUT_DFR 2 1 +BEGIN + PROMPT 48 4 "*" + FLAGS "D" + PICTURE 109 + GROUP 2 +END + +NUMBER A_CODICE 6 +BEGIN + PROMPT 53 4 "a " + FLAGS "D" + GROUP 2 + HELP "Codice ditta di fine selezione" +END + +BUTTON BUT_DTO 2 1 +BEGIN + PROMPT 62 4 "*" +// FLAGS "D" + PICTURE 109 + GROUP 2 +END + +BOOLEAN F_TUTTE +BEGIN + PROMPT 2 6 " Tutte " + MESSAGE TRUE FALSE,RADIO1|FALSE,RADIO2|DISABLE,DLG_SELECT_2|DISABLE,BUT_DFR|DISABLE,BUT_DTO + HELP "Seleziona tutte le dichiarazioni" +END + +STRING F_SELECT 5 +BEGIN + PROMPT 2 8 "Dichiarazioni selezionate " +// FLAGS "DP" + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 2 10 "Anno dichiarazione " + HELP "Anno dichiarazione" + FLAGS "A" + WARNING "Inserire l'anno" + CHECKTYPE REQUIRED +END + +BUTTON F_DICSEL 33 1 +BEGIN + PROMPT 2 12 "~Elenco Dichiarazioni Selezionate" + HELP "Visualizza le dichiarazioni selezionate" +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "" +// MESSAGE EXIT,K_ENTER +END + +BUTTON F_ANNULLA 10 2 +BEGIN + PROMPT -23 -1 "A~zzera" + HELP "Annullare la selezione delle dichiarazioni" + MESSAGE RESET,DA_CODICE|RESET,A_CODICE +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -33 -1 "" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/776400.cpp b/m770/776400.cpp new file mode 100755 index 000000000..37f38881e --- /dev/null +++ b/m770/776400.cpp @@ -0,0 +1,80 @@ +// 776400.cpp - Selezione parametri di stampa +#include +#include +#include +#include +#include +#include +#include + +#include "776400a.h" +#include "77lib.h" + +class TPar_Stampa : public TConfig_application +{ + TString16 _section; + TConfig* _user_cnf, * _studio_cnf; + + public: +// virtual bool preprocess_config (TMask& mask, TConfig& config); +// virtual bool postprocess_config (TMask& mask, TConfig& config); +// virtual bool postprocess_config_changed(const char* par, const char* var,const char* oldv, const char* newv); + + virtual bool user_create(); + virtual bool user_destroy(); + + TPar_Stampa() : TConfig_application(CONFIG_USER) {} + virtual ~TPar_Stampa() {} +}; + +HIDDEN TPar_Stampa& app() { return (TPar_Stampa&) main_app(); } + +bool TPar_Stampa::user_create() +{ + const char* edit_mask = "776400a"; + _section = name(); + _section.cut(2); + +// Configurazioni + _user_cnf = new TConfig(CONFIG_USER, _section); + _user_cnf->get("EdMask", _section, -1, edit_mask); + + _studio_cnf = new TConfig(CONFIG_STUDIO); + + return TRUE; +} + +bool TPar_Stampa::user_destroy() +{ + delete _user_cnf; + delete _studio_cnf; + return TRUE; +} + +/* +bool TPar_Stampa::postprocess_config (TMask& m, TConfig& config) +{ + if (m.last_key() == K_ENTER) + { +// Registro i parametri di stampa nei parametri utente + + bool stampa_su_modulo = m.get_bool(F_MODULO); + _user_cnf->set(ST_MODULO, stampa_su_modulo); + + bool stampa_data_modulo = m.get_bool(F_DATA); + _user_cnf->set(ST_DATA, stampa_data_modulo); + + bool stampa_doc = m.get_bool(F_DOCUMENTI); + _user_cnf->set(ST_DOC, stampa_doc); + } + return TRUE; +} +*/ + +int ParametriStampa(int argc, char* argv[]) +{ + TPar_Stampa app; + app.run(argc, argv, "Parametri di stampa"); + return 0; +} + diff --git a/m770/776400a.h b/m770/776400a.h new file mode 100755 index 000000000..b888a831e --- /dev/null +++ b/m770/776400a.h @@ -0,0 +1,7 @@ +// 776400a.h - Maschera selezione parametri di stampa + +#define F_MODULO 101 +#define F_DATA 102 +#define F_DOCUMENTI 103 + + diff --git a/m770/776400a.uml b/m770/776400a.uml new file mode 100755 index 000000000..ac4e33f9b --- /dev/null +++ b/m770/776400a.uml @@ -0,0 +1,43 @@ +// 776400a.uml +// Parametri di stampa + +#include "776400a.h" + +PAGE "Parametri di stampa" -1 -1 70 12 + +/* +BOOLEAN F_MODULO +BEGIN + PROMPT 2 2 "Stampa su modulo " + FIELD StSuModulo + HELP "Indicare se si desidera stampare su modulo" +END +*/ + +BOOLEAN F_DATA +BEGIN + PROMPT 2 2 "Stampa data su modulo " + FIELD StDataMod + HELP "Indicare se si desidera stampare la data sul modulo" +END + +BOOLEAN F_DOCUMENTI +BEGIN + PROMPT 2 4 "Inserire anche documenti non pagati " + FIELD StDocNoPag +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/776500.cpp b/m770/776500.cpp new file mode 100755 index 000000000..82a1d460e --- /dev/null +++ b/m770/776500.cpp @@ -0,0 +1,161 @@ +// 776500.cpp - Parametri di generazione - Maschera di immissione +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "776.h" +#include "776500.h" +#include "77lib.h" + +class TParametri_genera : public TApplication +{ + char _liv; // Se stampa a livello di studio + int _anno_dic; // Anno dichiarazione nei paramentri utente o studio + + TRelation* _rel; + +// Configurazione + TString16 _section; + TConfig* _cnf; + int _risposta; + + bool init_print(); + +protected: + virtual void on_config_change(); + + virtual bool create() ; + virtual bool destroy(); + virtual bool menu(MENU_TAG m); + +public: + bool main_loop(); +// D = stampa ditta, S = stampa a livello di studio + TParametri_genera(char livello='D') : _liv(toupper(livello)) {} +}; + +HIDDEN TParametri_genera& app() { return (TParametri_genera&) main_app(); } + +void TParametri_genera::on_config_change() +{ + TConfig conf(_liv == 'S' ? CONFIG_USER : CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, _section); +} + +bool TParametri_genera::main_loop() +{ + KEY tasto; + TMask msk ("776500a"); + long codditta, codditta_prec; + int i = 0; + + if (_liv == 'S') + { + codditta_prec = get_firm_770(); + while ((codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L) + { + set_firm_770(codditta); + + _rel->lfile().put("CODDITTA", codditta); + _rel->read(); + msk.autoload(_rel); + tasto = msk.run(); + + if (tasto == K_ESC) continue; + + if (tasto == K_SAVE) + { + msk.autosave(_rel); + _rel->rewrite(); + } + + if (tasto == K_QUIT) break; + } + set_firm_770(codditta_prec); + return FALSE; + } + else + { + codditta = get_firm_770(); + + _rel->lfile().put("CODDITTA", codditta); + _rel->read(); + msk.autoload(_rel); + tasto = msk.run(); + + if (tasto == K_ESC) + { + _risposta = 1; + return FALSE; + } + + if (tasto == K_SAVE) + { + msk.autosave(_rel); + _rel->rewrite(); + _risposta = 1; + } + + if (tasto == K_QUIT) + { + _risposta = 0; + return FALSE; + } + } + + return FALSE; +} + +bool TParametri_genera::create() +{ + TApplication::create(); +// Parametri configurazione + _section = name(); + _section.cut(2); + _cnf = new TConfig(CONFIG_USER, _section); + _rel = new TRelation (LF_BASE); + dispatch_e_menu (BAR_ITEM(1)); + return TRUE; +} + +bool TParametri_genera::destroy() +{ + delete _rel; + delete _cnf; + + if (_liv == 'D') + { + TString appname = "771mod -3"; + TString body = ""; + + body << _risposta; + + TMessage msg (appname,"",(const char*) body); + + TMailbox mb; + mb.send(msg); + } + + return TApplication::destroy(); +} + +bool TParametri_genera::menu(MENU_TAG m) +{ + if (m == BAR_ITEM(1)) + return main_loop(); + return FALSE; +} + +int ParametriGenera(int argc, char* argv[]) +{ + TParametri_genera a(*argv[2]); + a.run(argc, argv, "Parametri di generazione"); + return 0; +} diff --git a/m770/776500.h b/m770/776500.h new file mode 100755 index 000000000..157f65cf0 --- /dev/null +++ b/m770/776500.h @@ -0,0 +1,10 @@ +// Campi maschera 776500a.uml - Parametri generazione L +#define F_CODDITTA 101 +#define F_RAGSOC 102 +#define F_DATAVERS 103 +#define F_TIPOVERS 104 +#define F_LUOVERS 105 +#define F_SERIE 106 +#define F_NUMERO 107 +#define F_ABI 108 +#define F_CAB 109 diff --git a/m770/776500a.uml b/m770/776500a.uml new file mode 100755 index 000000000..8f9647504 --- /dev/null +++ b/m770/776500a.uml @@ -0,0 +1,148 @@ +#include "776500.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON DLG_SAVEREC 10 2 +BEGIN +PROMPT -13 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_CANCEL 10 2 +BEGIN +PROMPT -23 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 10 2 +BEGIN +PROMPT -33 -1 "" +MESSAGE EXIT,K_QUIT +END + +ENDPAGE + +PAGE "Prospetto dati generali" -1 -1 78 18 + +#define ABICAB 1 +#define GSERIE 2 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 0 0 "" + FLAGS "R" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 2 1 "Ditta " + FLAGS "RD" + USE LF_NDITTE KEY 1 + FIELD LF_BASE->CODDITTA + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGSOC RAGSOC + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 2 2 "Ragione sociale " + FLAGS "D" +END + +TEXT 96 +BEGIN + PROMPT 2 13 "Numero serie " + GROUP GSERIE +END + +TEXT 97 +BEGIN + PROMPT 2 13 "Codice ABI " + GROUP ABI_CAB +END + +TEXT 98 +BEGIN + PROMPT 46 13 "Numero quietanza " + GROUP GSERIE +END + +TEXT 99 +BEGIN + PROMPT 46 13 "Codice CAB " + GROUP ABI_CAB +END + +DATE F_DATAVERS +BEGIN + PROMPT 2 7 "Data versamento " + FIELD LF_BASE->DATAVERS + FLAGS "A" +END + +RADIOBUTTON F_LUOVERS 25 +BEGIN + PROMPT 2 8 "Luogo versamento " + ITEM "C|Concessione" + ITEM "T|Tesoreria" + FIELD LF_BASE->LUOVERS +END + +RADIOBUTTON F_TIPOVERS 26 +BEGIN + PROMPT 46 7 "Tipo versamento " + ITEM "B|Delega bancaria" + MESSAGE SHOW,97|SHOW,99|SHOW,F_ABI|SHOW,F_CAB|HIDE,96|HIDE,98|HIDE,F_SERIE|HIDE,F_NUMERO +// MESSAGE HIDE,GSERIE@|SHOW,ABI_CAB@ +// MESSAGE ENABLE,F_ABI + ITEM "D|Distinta" + MESSAGE SHOW,96|SHOW,98|SHOW,F_SERIE|SHOW,F_NUMERO|HIDE,97|HIDE,99|HIDE,F_ABI|HIDE,F_CAB +// MESSAGE HIDE,ABI_CAB@|SHOW,GSERIE@ + MESSAGE ENABLE,F_SERIE + ITEM "C|C/C Postale" + MESSAGE SHOW,96|SHOW,98|SHOW,F_SERIE|SHOW,F_NUMERO|HIDE,97|HIDE,99|HIDE,F_ABI|HIDE,F_CAB +// MESSAGE HIDE,ABI_CAB@|SHOW,GSERIE@ + MESSAGE CLEAR,F_SERIE|DISABLE,F_SERIE + FIELD LF_BASE->TIPOVERS +END + +NUMBER F_ABI 5 +BEGIN + PROMPT 18 13 "" + FIELD LF_BASE->SERIE + GROUP ABI_CAB +END + +NUMBER F_CAB 11 +BEGIN + PROMPT 63 13 "" + FIELD LF_BASE->NUMERO + GROUP ABI_CAB +END + +STRING F_SERIE 5 +BEGIN + PROMPT 18 13 "" + FIELD LF_BASE->SERIE + GROUP GSERIE +END + +STRING F_NUMERO 11 +BEGIN + PROMPT 63 13 "" + FIELD LF_BASE->NUMERO + GROUP GSERIE +END + +GROUPBOX DLG_NULL 78 11 +BEGIN + PROMPT 0 5 "Dati relativi ai versamenti con codice 1015" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/776600.cpp b/m770/776600.cpp new file mode 100755 index 000000000..18f2af8d0 --- /dev/null +++ b/m770/776600.cpp @@ -0,0 +1,190 @@ +// 776600.cpp - Gestione estinti +#include +#include +#include +#include +#include +#include +#include "776600a.h" +#include "77lib.h" +// +// Lista modifiche +// 3.4.96 Aggiunto controllo in save() per impedire la creazione di un record-dichiarazione +// anche quando si vuol solo cancellare il codice dichiarante senza immetterne un altro +// + +class TEstinti_app : public TApplication +{ + long _codditta; + TMask* _msk; + TLocalisamfile* _base, *_basebis; + TRelation* _rel; + TCursor* _cur; + TBrowse_sheet* _estint_sheet; + static bool show_estinti(TMask_field& f, KEY k); + void force_output(int dlg, const long cod); + protected: + virtual bool create(); + virtual bool destroy(); + virtual bool menu(MENU_TAG m); + bool save(TMask& m, const long coddic_prec); + bool set_codditta(TMask_field& f); + bool main_loop(); +}; + +TEstinti_app& app() { return (TEstinti_app&) main_app(); } + +bool TEstinti_app::set_codditta(TMask_field& f) +{ + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + f.set(codditta); +// f.set_dirty(); + f.check(); + } + return TRUE; +} + +bool TEstinti_app::show_estinti(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + app()._estint_sheet->run(); + return TRUE; +} + +bool TEstinti_app::create() +{ + TApplication::create(); + _base = new TLocalisamfile(LF_BASE); + _basebis = new TLocalisamfile(LF_BASEBIS); + _msk = new TMask("776600a"); + _rel = new TRelation(LF_BASE); + _rel->add(LF_NDITTE, "CODDITTA=CODDITTA"); + + _codditta = get_firm_770(); + set_codditta(_msk->field(F_CODDITTA)); + TString16 filt; + filt.format("CODDIC=%ld", _codditta); + _cur = new TCursor(_rel, filt); + TEdit_field& dummy = (TEdit_field&)_msk->field(F_CODDIC_DUMMY); + _estint_sheet = new TBrowse_sheet(_cur,"CODDITTA|9->RAGSOC", "Elenco estinti", + "Codice|Ragione sociale@50", 8, &dummy); + _msk->set_handler(F_ESTINTI, show_estinti); + dispatch_e_menu (BAR_ITEM(1)); + return TRUE; +} + +bool TEstinti_app::destroy() +{ + delete _estint_sheet; + delete _rel; delete _cur; + delete _msk; delete _base; delete _basebis; + return TApplication::destroy(); +} + +void TEstinti_app::force_output(int dlg, const long codditta) +{ + TLocalisamfile ditte(LF_NDITTE); + ditte.zero(); + ditte.put("CODDITTA", (long)codditta); + int ret = ditte.read(_isequal); + if (ret == NOERR) + { + TString80 ragsoc(ditte.get("RAGSOC")); + _msk->set(dlg, ragsoc); + } +} + +bool TEstinti_app::save(TMask& m, const long codic_prec) +{ + const long new_codic = m.get_long(F_CODDIC); + + _base->zero(); + _base->put("CODDITTA", (long)_codditta); + _base->put("CODDIC", (long)new_codic); + _base->rewrite(); + +// Stessa cosa su basebis + _basebis->zero(); + _basebis->put("CODDITTA", (long)_codditta); + _basebis->put("CODDIC", (long)new_codic); + _basebis->rewrite(); + +// Crea il record globale per il dichiarante scelto se non esiste +// 3.4.96 - Solo se il dichiarante e' diverso da 0, senno' quando si vuol cancellare +// il dichiarante crea un record duplicato! + if (new_codic != 0L) + if (!exist_dichiar_770(new_codic, TRUE)) + enter_dichiar_770(new_codic, anno_770(), TRUE); + + return TRUE; +} + +bool TEstinti_app::main_loop() +{ + KEY tasto; + + const long codditta = _msk->get_long(F_CODDITTA); + _base->zero(); + _base->setkey(1); + _base->put("CODDITTA", (long)codditta); + _base->read(); + + do { + const bool dichiarante = sogg_dic(_codditta); + long coddic = 0L; + if (!dichiarante) + { + coddic = sogg_estinto(_codditta); + if (coddic > 0L && coddic < COD_QUA_I_DIC) + { + _msk->set(F_CODDIC, coddic); +// _msk->field(F_CODDIC).check(); + force_output(F_RAGSOC, coddic); + } + } + _msk->enable(F_CODDIC, !dichiarante); + _msk->enable(F_ESTINTI, dichiarante); + _msk->enable(DLG_SAVEREC,!dichiarante); + + tasto = _msk->run(); + + switch (tasto) { + case K_ENTER: + if (_msk->dirty()) +// Se e' un dichiarante F_CODDIC e' disabilitato e non c'e' nulla da salvare + if (!dichiarante) + save(*_msk, coddic); + break; + case K_ESC : + tasto = K_QUIT; + break; + case K_QUIT : + break; + case K_SAVE : + if (!dichiarante) + save(*_msk, coddic); + break; + default: + break; + } + } + while (tasto != K_QUIT); + return FALSE; +} + +bool TEstinti_app::menu(MENU_TAG m) +{ + if (m == BAR_ITEM(1)) + return main_loop(); + return FALSE; +} + +int Estinti(int argc, char* argv[]) +{ + TEstinti_app a; + a.run(argc, argv, "Gestione dichiarante / estinti"); + return 0; +} + diff --git a/m770/776600a.h b/m770/776600a.h new file mode 100755 index 000000000..8e1ff8087 --- /dev/null +++ b/m770/776600a.h @@ -0,0 +1,12 @@ +#ifndef __776600a_H +#define __776600a_H + +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_CODDIC 103 +#define F_ESTINTI 104 +#define F_RAGSOC 105 +#define F_TIPOQUA 106 +#define F_CODDIC_DUMMY 107 + +#endif diff --git a/m770/776600a.uml b/m770/776600a.uml new file mode 100755 index 000000000..684d9f371 --- /dev/null +++ b/m770/776600a.uml @@ -0,0 +1,104 @@ +// 776600a.uml - Gestione estinti-dichiaranti + +#include "776600a.h" + +PAGE "Gestione dichiarante / estinti" -1 -1 78 8 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +STRING F_TIPOQUA 2 +BEGIN + PROMPT 80 80 "" + FIELD LF_BASE->TIPOQUA + KEY 1 +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + USE LF_BASE KEY 1 + JOIN LF_NDITTE TO LF_BASE KEY 1 INTO CODDITTA=CODDITTA + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale@50" LF_NDITTE->RAGSOC + OUTPUT F_CODDIC CODDITTA + OUTPUT F_RAGDITTA LF_NDITTE->RAGSOC + FLAGS "DG" + FIELD LF_BASE->CODDITTA + CHECKTYPE REQUIRED +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +// serve solo per costruire un Browse_sheet. v. 776600.cpp +NUMBER F_CODDIC_DUMMY 5 +BEGIN + PROMPT 1 1 "" + USE LF_BASE KEY 2 + JOIN LF_NDITTE TO LF_BASE KEY 1 INTO CODDITTA=CODDITTA + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale@50" LF_NDITTE->RAGSOC + OUTPUT F_CODDIC CODDITTA + FLAGS "HG" +END + +NUMBER F_CODDIC 5 +BEGIN + PROMPT 1 3 "Soggetto dichiarante " + USE LF_BASE KEY 1 SELECT ((CODDITTA!=#F_CODDITTA)&&(CODDIC="")&&(TIPOQUA!="D")) + JOIN LF_NDITTE TO LF_BASE KEY 1 INTO CODDITTA=CODDITTA + INPUT TIPOQUA F_TIPOQUA + INPUT CODDITTA F_CODDIC + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale@50" LF_NDITTE->RAGSOC + OUTPUT F_CODDIC CODDITTA + OUTPUT F_RAGSOC LF_NDITTE->RAGSOC + FIELD LF_BASE->CODDIC + WARNING "Ditta dichiarante non valida" + HELP "Indicare la ditta dichiarante" + CHECKTYPE NORMAL +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 4 "Ragione " + FLAGS "D" +END + +BUTTON DLG_SAVEREC 9 2 +BEGIN + PROMPT -13 -1 "" + MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_QUIT 8 2 +BEGIN + PROMPT -23 -1 "" + MESSAGE EXIT,K_QUIT +END + +BUTTON F_ESTINTI 16 2 +BEGIN + PROMPT -33 -1 "~Soggetti estinti" +END + +/*** +BUTTON DLG_NULL 20 2 +BEGIN + PROMPT -44 -1 "Menu' precedente" + MESSAGE EXIT,K_QUIT +END +****/ + +ENDPAGE + +ENDMASK + diff --git a/m770/776mod.url b/m770/776mod.url new file mode 100755 index 000000000..5a3c0d973 --- /dev/null +++ b/m770/776mod.url @@ -0,0 +1,30 @@ +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(1) + +MENU MENU_BAR(1) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(2) + +MENU MENU_BAR(2) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(3) + +MENU MENU_BAR(3) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(4) + +MENU MENU_BAR(4) + SUBMENU MENU_FILE "~File" + +MENUBAR MENU_BAR(5) + +MENU MENU_BAR(5) + SUBMENU MENU_FILE "~File" + diff --git a/m770/77_g_p2.uml b/m770/77_g_p2.uml new file mode 100755 index 000000000..d359326c7 --- /dev/null +++ b/m770/77_g_p2.uml @@ -0,0 +1,43 @@ +// 77_g_p2.uml - Quadro G prospetto 1-II + +PAGE "" -1 -1 76 7 + +STRING 101 35 +BEGIN + PROMPT 1 1 "Descrizione dei beni distribuiti " + GROUP 1 +END + +DATE 102 +BEGIN + PROMPT 1 2 "Data " + GROUP 1 +END + +NUMBER 103 15 +BEGIN + PROMPT 1 3 "Valore ultimo bilancio " + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77_g_p3.uml b/m770/77_g_p3.uml new file mode 100755 index 000000000..7a12d9969 --- /dev/null +++ b/m770/77_g_p3.uml @@ -0,0 +1,72 @@ +// 77_g_p3.uml - Quadro G prospetto 3 + +PAGE "" -1 -1 76 11 + +STRING 101 21 +BEGIN + PROMPT 1 1 "Delibera " + FLAGS "D" +END + +NUMBER 102 15 +BEGIN + PROMPT 1 2 "Utili corrisposti nel 1995 " + PICTURE "." + GROUP 1 +END + +NUMBER 103 15 +BEGIN + PROMPT 1 3 "Importo " + PICTURE "." + GROUP 1 +END + +NUMBER 104 6 +BEGIN + PROMPT 1 4 "Aliquota " + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} +END + +NUMBER 105 15 +BEGIN + PROMPT 1 5 "Ritenuta d'acconto " + PICTURE "." + GROUP 1 +END + +NUMBER 106 15 +BEGIN + PROMPT 1 6 "Ritenuta d'imposta " + PICTURE "." + GROUP 1 +END + +NUMBER 107 15 +BEGIN + PROMPT 1 7 "Utili non assoggettati a ritenuta " + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77g1.cpp b/m770/77g1.cpp new file mode 100755 index 000000000..4916a2d92 --- /dev/null +++ b/m770/77g1.cpp @@ -0,0 +1,266 @@ +// 77g1.cpp - Quadro G1 +#include +#include +#include +#include +#include +#include +#include +#include + +#include "quadrog1.h" +#include "77lib.h" +#include "774200.h" +#include "77g1a.h" +#include "771232.h" + +HIDDEN const int RIGHE_PI = 11; + +TQuadroG1::TQuadroG1() +{ + _registra = FALSE; + _quadro = "G1"; + _title = "Quadro G-1"; +} + +inline TQuadroG1& app() { return (TQuadroG1&) main_app(); } + +void TQuadroG1::init_modify_mode (TMask& m) +{ + init_mask(m); + m.disable(DLG_DELREC); +} + +void TQuadroG1::init_query_mode (TMask& m) +{ + TString16 codditta; codditta << _codditta; + if (codditta != "0") + { + m.field(F_CODDITTA).set(codditta); + m.field(F_CODDITTA).check(); + } + m.send_key(K_AUTO_ENTER,0); + + init_mask(m); +} + +void TQuadroG1::init_mask (TMask& m) +{ + fill_arr(m); +} + +void TQuadroG1::update_totals(TSheet_field& f) +{ + int i = 0; + real tcol2, tcol3, tcol5, tcol6, tcol7; + tcol2 = tcol3 = tcol5 = tcol6 = tcol7 = ZERO; + TSheet_field& pI = f; +// Calcolo il totale + for (i = 0; i < RIGHE_PI; i++) + { + TToken_string& r = pI.row(i); + real c2(r.get(1)); + real c3(r.get(2)); + real c5(r.get(4)); + real c6(r.get(5)); + real c7(r.get(6)); + tcol2 += c2; + tcol3 += c3; + tcol5 += c5; + tcol6 += c6; + tcol7 += c7; + } +// Setto le celle di totale + TToken_string& row = pI.row(i); + row.add(tcol2.string(), 1); + row.add(tcol3.string(), 2); + row.add(tcol5.string(), 4); + row.add(tcol6.string(), 5); + row.add(tcol7.string(), 6); + pI.force_update(i); +} + +bool TQuadroG1::user_create() +{ + _msk = new TMask("77g1a"); + _rel = new TRelation(LF_QUAG1); + _codditta = get_firm_770(); + TSheet_field& p1 = (TSheet_field&) _msk->field(F_PI); + p1.set_notify(p1_notify); + return TRUE; +} + +bool TQuadroG1::user_destroy() +{ + delete _rel; delete _msk; + if (_registra) + _rip.set(_quadro); + return TRUE; +} + +void TQuadroG1::arr2rel(const TMask& m) +{ + TToken_string p3a(200); + TToken_string p3b(200); + TToken_string p3c(200); + TToken_string p3d(200); + TToken_string p3e(200); + TToken_string p3f(200); + TRectype& r = _rel->curr(); + int dlg; dlg = 0; + +// Prospetto 3 - Prospetto delle ritenute + TSheet_field& pI = (TSheet_field&)m.field(F_PI); + + for (int i = 0; i < RIGHE_PI; i++) + { + TToken_string& r = pI.row(i); + TString ut94 (r.get(1)); // Salto data delibera che e' fisso + TString imp (r.get()); + TString ali (r.get()); + TString racc (r.get()); + TString rimp (r.get()); + TString utnsogg (r.get()); + p3a.add(ut94); + p3b.add(imp); + p3c.add(ali); + p3d.add(racc); + p3e.add(rimp); + p3f.add(utnsogg); + } + r.put(QG1_P12, p3a); + r.put(QG1_P13, p3b); + r.put(QG1_P14, p3c); + r.put(QG1_P15, p3d); + r.put(QG1_P16, p3e); + r.put(QG1_P17, p3f); +// Salvo i totali che servono poi per i riporti (774200.cpp) + TToken_string& r_tot = pI.row(i); + real tot_col2(r_tot.get(1)); + real tot_col3(r_tot.get(2)); + real tot_col5(r_tot.get(4)); + real tot_col6(r_tot.get(5)); + real tot_col7(r_tot.get(6)); + r.put(QG1_P12TOT, tot_col2); + r.put(QG1_P13TOT, tot_col3); + r.put(QG1_P15TOT, tot_col5); + r.put(QG1_P16TOT, tot_col6); + r.put(QG1_P17TOT, tot_col7); +} + +void TQuadroG1::fill_arr(TMask& m) +{ + TRectype& r = _rel->curr(); + TToken_string p3a(r.get(QG1_P12)); + TToken_string p3b(r.get(QG1_P13)); + TToken_string p3c(r.get(QG1_P14)); + TToken_string p3d(r.get(QG1_P15)); + TToken_string p3e(r.get(QG1_P16)); + TToken_string p3f(r.get(QG1_P17)); + int dlg, j; dlg = j = 0; + + const char* date_delib[20] = + { + "18-12-1977/31-12-1995", + "18-12-1977/31-12-1995", + "18-12-1977/31-12-1995", + "11-10-1976/17-12-1977", + "11-10-1976/17-12-1977", + "11-10-1976/17-12-1977", + "1-1-1974/10-10-1976", + "1-1-1974/10-10-1976", + "24-2-1964/31-12-1973", + "24-2-1964/31-12-1973", + "1-1-1963/23-2-1964" + }; + + const char* aliq[15] = + { + "10", + "12.5", + "30", + "10", + "30", + "50", + "10", + "30", + "5", + "30", + "15" + }; + + TSheet_field& pI = (TSheet_field&)m.field(F_PI); + const int COL_ALIQ = 3; + int ind_aliq = 0; + for (int i = 1; i <= RIGHE_PI; i++) + { + TRectype& r = _rel->curr(); + TToken_string& row = pI.row(i-1); + row.add(date_delib[i-1]); + row.add(p3a.get(i-1)); + row.add(p3b.get(i-1)); + row.add(p3c.get(i-1)); + row.add(p3d.get(i-1)); + row.add(p3e.get(i-1)); + row.add(p3f.get(i-1)); + row.add(aliq[ind_aliq++], 3); + pI.disable_cell(i-1, COL_ALIQ); + } + + if (m.mode() == MODE_MOD) + update_totals(pI); + else + { +// Aggiungo la riga per i totali + TToken_string& row = pI.row(i-1); + row.add("Totali", 0); + pI.disable_cell(i-1, -1); + pI.force_update(); + } +} + +int TQuadroG1::write(const TMask& m) +{ + arr2rel(m); + int err = TRelation_application::write(m); + _registra = err == NOERR; + return err; +} + +int TQuadroG1::rewrite(const TMask& m) +{ + arr2rel(m); + int err = TRelation_application::rewrite(m); + _registra = err == NOERR; + return err; +} + +bool TQuadroG1::remove() +{ + const bool ok = TRelation_application::remove(); + return ok; +} + +bool TQuadroG1::p1_notify(TSheet_field& s, int r, KEY k) +{ + switch(k) + { + case K_ENTER: + update_totals(s); + break; + case K_SPACE: + break; +// Rifiuta di entrare sull'ultima riga + case K_TAB: + return r < RIGHE_PI; + break; + case K_INS: + if (s.mask().is_running()) + return FALSE; // rifiuta inserimento di nuove righe + break; + default: + break; + } + return TRUE; +} + diff --git a/m770/77g1a.h b/m770/77g1a.h new file mode 100755 index 000000000..138864ae2 --- /dev/null +++ b/m770/77g1a.h @@ -0,0 +1,4 @@ +// 77qg1a.h +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_PI 103 diff --git a/m770/77g1a.uml b/m770/77g1a.uml new file mode 100755 index 000000000..7b98b5dbf --- /dev/null +++ b/m770/77g1a.uml @@ -0,0 +1,55 @@ +#include "77g1a.h" +TOOLBAR "" 0 20 0 2 +#include "77toolb.h" +ENDPAGE + +PAGE "Modello 770 - Quadro G-1" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAG1->CODDITTA + KEY 1 + CHECKTYPE REQUIRED + FLAGS "GR" + MESSAGE COPY,1@ +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" + MESSAGE COPY,2@ +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 3 "@bPROSPETTO DEGLI UTILI E DELLE RITENUTE " +END + +SPREADSHEET F_PI 0 13 +BEGIN + PROMPT 0 4 "" + ITEM "Anni@21" + ITEM "Utili corr. nel 1995" + ITEM "Importo" + ITEM "Aliquota" + ITEM "Rit.acconto" + ITEM "Rit.imposta" + ITEM "Utili non assog.a ritenuta" +END + +ENDPAGE + +ENDMASK + +#include "77g1pa.uml" + diff --git a/m770/77g1pa.uml b/m770/77g1pa.uml new file mode 100755 index 000000000..d4525c480 --- /dev/null +++ b/m770/77g1pa.uml @@ -0,0 +1,72 @@ +// 77g1pa.uml - Quadro G-1 prospetto + +PAGE "" -1 -1 76 11 + +STRING 101 21 +BEGIN + PROMPT 1 1 "Delibera " + FLAGS "D" +END + +NUMBER 102 15 +BEGIN + PROMPT 1 2 "Utili corrisposti nel 1994 " + PICTURE "." + GROUP 1 +END + +NUMBER 103 15 +BEGIN + PROMPT 1 3 "Importo " + PICTURE "." + GROUP 1 +END + +NUMBER 104 6 +BEGIN + PROMPT 1 4 "Aliquota " + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} +END + +NUMBER 105 15 +BEGIN + PROMPT 1 5 "Ritenuta d'acconto " + PICTURE "." + GROUP 1 +END + +NUMBER 106 15 +BEGIN + PROMPT 1 6 "Ritenuta d'imposta " + PICTURE "." + GROUP 1 +END + +NUMBER 107 15 +BEGIN + PROMPT 1 7 "Utili non assoggettati a ritenuta " + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 9 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_CANCEL 9 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_NULL 9 2 +BEGIN + PROMPT -33 -1 "Azzera" + MESSAGE RESET,1@ +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77lib.h b/m770/77lib.h new file mode 100755 index 000000000..5cefa778d --- /dev/null +++ b/m770/77lib.h @@ -0,0 +1,365 @@ +// 77lib.h - utilita' varie per modulo 770 +#ifndef __77LIB_H +#define __77LIB_H + +#include +#include +#include + +#include "770101.h" + +class TSchedaP; + +// Flag di record del dichiarante (quadro I "globale") +HIDDEN const char COD_QUA_I_DIC = 'D'; + +HIDDEN const char DELEGA_BANCARIA = 'B'; +HIDDEN const char DISTINTA = 'D'; +HIDDEN const char CC_POSTALE = 'C'; + +//////////////////////////////////////////////////////////////////////// +// +// Parametri pacchetto/utente +// +//////////////////////////////////////////////////////////////////////// + +// L'anno di dichiarazione selezionato nei parametri di studio 770. +// (Usato anche in 773100a.uml) +HIDDEN const char* ANNO_SEL = "AnnoDic"; +// Elenco di ditte selezionate da un utente. Array in CONFIG_USER +HIDDEN const char* DITTE_SEL = "DitteSel"; +HIDDEN const char* ST_MODULO = "StSuModulo"; +HIDDEN const char* ST_DATA = "StDataMod"; +HIDDEN const char* ST_DOC = "StDocNoPag"; + +// La ditta corrente per il 770 - s/get_firm_770() usano questo +HIDDEN const char* DITTA_770 = "Ditta770"; + +// Arrotonda modificato { 1500 -> 1000 (e non 2000 come in round(-3)) } +real& round_770(const real& importo); + +// Cerca di stabilire se il titolare della ditta e' PF o PG +char tipo_persona (long codditta); + +//////////////////////////////////////////////////////////////////////// +// +// Dipendenti +// +//////////////////////////////////////////////////////////////////////// +// Stabilisce se coddip esiste +bool esiste_dipendente(const long codditta, const long coddip); +// Stabilisce se coddip e' un (erede o un deceduto) o no +bool is_dipendente(const long codditta, const long coddip); +// Stabilisce se coddip e' un erede +bool is_erede(const long codditta, const long coddip); +// Stabilisce se coddip e' deceduto +bool is_deceduto(const long codditta, const long coddip); + +bool scrivi_erede(const long codditta, const long deceduto, const long erede); +bool riscrivi_erede(const long codditta, const long deceduto, const long erede, const long val); + +// Determina se esiste un pagamento con annopag = anno passato come par. +bool esiste_pag_in_anno(TSchedaP& sch, const int anno=0, const TDate& data_da=NULLDATE, const TDate& data_a=NULLDATE); +// La stessa cosa tra due date +bool esiste_pag_in_periodo(TSchedaP& sch, const TDate& data_da, const TDate& data_a); + + +//////////////////////////////////////////////////////////////////////// +// +// Dichiarazioni & quadri +// +//////////////////////////////////////////////////////////////////////// + +typedef enum { estinto=0, normale, dichiarante } TipoDitta; + +// Controlla se esiste la dic +bool exist_dichiar_770 (long codditta, bool sogg_dich= FALSE); +// Immette una dichiarazione +bool enter_dichiar_770 (long codditta, int annodic=0, bool sogg_dich= FALSE); +// Ritorna l'anno sui parametri di studio +int anno_770(); + +// Conta il numero di persone fisiche e non della ditta codit per quadro "quadro" +// Mette i totali nei due parametri passati per riferimento +int conta_tipiper(const long codit, TString& quadro, int* NumFisiche, int* NumNoFisiche); + +// TRUE se c'e' almeno un record sul quadro L +bool esiste_record_L(const long codditta, const int annodic); + +// TRUE se la codditta e' sogg. dichiarante +bool sogg_dic (const long codditta); +// Ritorna il codice del sogg. dichiarante oppure 0 +long sogg_estinto(const long codditta); + +// Ritorna la ditta corrente selezionata +long get_firm_770(); +// Setta la ditta 'codditta' come corrente +void set_firm_770(const long codditta); + + +//////////////////////////////////////////////////////////////////////// +// +// Utility varie +// +//////////////////////////////////////////////////////////////////////// +bool ricerca(const TMask& m); +bool modifica(const TMask& m); +bool inserimento(const TMask& m); +// Ritorna il codice fiscale del titolare di codditta +const char* cod_fis(const long codditta); +// Ritorna la descrizione della causale +const char* get_desc_cau(const char* codcau); +bool esiste_perc(char tipoa, const long codanag); + +//////////////////////////////////////////////////////////////////////////// +// E' un array sheet in cui si puo' decidere di visualizzare solo i +// primi "visible" campi. I campi successivi vengono mantenuti in un +// TArray e possono essere letti da programma ma NON vengono visualizzati +//////////////////////////////////////////////////////////////////////////// +class TNikArray_sheet : public TArray_sheet +{ + TArray _interno; + int _visible_items; + public: + TNikArray_sheet(short x, short y, short dx, short dy, const char* caption, + const char* head, byte buttons = 0, WINDOW parent = NULL_WIN, + int visible=0) + : TArray_sheet(x, y, dx, dy, caption,head, buttons), + _visible_items(visible) {} + + bool destroy(int i = -1); + long add(TToken_string& s); + TToken_string& row(int i); +}; + + + +//////////////////////////////////////////////////////////////////////// +// +// Schede, versamenti, pagamenti, percipienti.... +// +//////////////////////////////////////////////////////////////////////// + +const int SCHEDA_NON_ESISTENTE = -2; + +class TSchedaP +{ + private: + long _codditta; + char _tipoa; + long _codanagr; + int _nprog; + real _spese_doc, _compenso_doc; + TDate _data_doc; + + public: + bool read(); + long codditta() const { return _codditta; } + char tipoa() const { return _tipoa; } + long codanagr() const { return _codanagr; } + int nprog() const { return _nprog; } + + real compenso_doc() const; + real spese_doc() const; + int anno_doc() const; + + bool operator == (const TSchedaP& sch) const + { + return (_codditta == sch.codditta() && _tipoa == sch.tipoa() && + _codanagr == sch.codanagr() && _nprog == sch.nprog()) ; + } + + bool operator != (const TSchedaP& sch) const + { + return (_codditta != sch.codditta() || _tipoa != sch.tipoa() || + _codanagr != sch.codanagr() || _nprog != sch.nprog()) ; + } + + bool not_empty() const { return _codditta != 0L && _tipoa != '\0' && + _codanagr != 0L && _nprog != 0; } + bool ok() const { return not_empty(); } + + void set(const long codditta=0L, const char tipoa=0, const long codanagr=0L, const int nprog=0) + { + _codditta=codditta; _tipoa=tipoa; _codanagr=codanagr; _nprog=nprog; + } +// Cancella la scheda con tutte le sue righe di pag. e vers. + int remove(); + + TSchedaP (const long codditta=0L, const char tipoa=0, const long codanagr=0L, const int nprog=0); + TSchedaP (TRectype& rec); + ~TSchedaP(); +}; + +class TPercipiente +{ + private: + long _codditta; + char _tipoa; + long _codanagr; + + public: + long codditta() const { return _codditta; } + char tipoa() const { return _tipoa; } + long codanagr() const { return _codanagr; } + + bool not_empty() const { return _tipoa != '\0' && _codanagr != 0L; } + bool ok() const { return not_empty(); } + + bool operator == (const TPercipiente& sch) const + { + return _tipoa == sch.tipoa() && _codanagr == sch.codanagr() ; + } + + bool operator != (const TPercipiente& sch) const + { + return _tipoa != sch.tipoa() || _codanagr != sch.codanagr() ; + } + + void set(const char tipoa=0, const long codanagr=0L) + { + _tipoa=tipoa; _codanagr=codanagr; + } + +// Determina se esiste almeno una scheda per questo perc. + bool esiste_scheda(); +// Cancella tutte le schede di questo percipiente + bool elimina_schede(); + + TPercipiente (const long codditta=0L, const char tipoa='\0', const long codanagr=0L) : + _codditta(codditta), _tipoa(tipoa), _codanagr(codanagr) {} + + TPercipiente (const TRectype& rec); +}; + +class TVersamento +{ + protected: + long _codditta; + char _tipoa; + long _codanagr; + int _nprog; + int _nriga; + real _importo_versato; + + public: + long codditta() const { return _codditta; } + char tipoa() const { return _tipoa; } + long codanagr() const { return _codanagr; } + int nprog() const { return _nprog; } + int nriga() const { return _nriga; } + real importo_versato() const { return _importo_versato; } + + void set_importo_versato(real& imp) { _importo_versato = imp; } + + virtual TVersamento& operator = (const TVersamento& sch) + { + _codditta = sch.codditta(); + _tipoa = sch.tipoa(); + _codanagr = sch.codanagr(); + _nprog = sch.nprog(); + _nriga = sch.nriga(); + return *this; + } + + bool operator == (const TVersamento& sch) const + { + return (_codditta == sch.codditta() && _tipoa == sch.tipoa() && + _codanagr == sch.codanagr() && _nprog == sch.nprog() && + _nriga == sch.nriga()) ; + } + + bool operator != (const TVersamento& sch) const + { + return (_codditta != sch.codditta() || _tipoa != sch.tipoa() || + _codanagr != sch.codanagr() || _nprog != sch.nprog() || + _nriga != sch.nriga()) ; + } + + virtual void set(const long codditta=0L, const char tipoa=0, const long codanagr=0L, const int nprog=0, const int nriga=0, const real& impvers=ZERO); + virtual void set(TToken_string& row); + + bool not_empty() const { return _codditta != 0L && _tipoa != '\0' && + _codanagr != 0L && _nprog != 0 && _nriga != 0; } + + bool ok() const { return not_empty(); } + + TVersamento (const long codditta=0L, const char tipoa=0, const long codanagr=0L, const int nprog=0, const int nriga=0, const real& impvers=ZERO) : + _codditta(codditta), _tipoa(tipoa), _codanagr(codanagr), _nprog(nprog), _nriga(nriga) + {} + + TVersamento(TRectype& rec); +}; + +// per suddividere il versamento sui vari pagamenti +// e per ricordarsi i versamenti gia' visti +class TVersamento_stampa : public TVersamento +{ + private: + TAssoc_array _vers; + real _importo_versato_residuo; + real _importo_versato; + int _status; // esito read_pags + int _num_pags; // numero di pagamenti collegati + bool _gia_letti_pag; + int _num_last_pag; // numero dell'ultimo pagamento + + public: + virtual void set(const long codditta=0L, const char tipoa=0, const long codanagr=0L, const int nprog=0, const int nriga=0, const real& impvers=ZERO); + virtual TVersamento_stampa& operator = (const TVersamento_stampa& sch) + { + _codditta = sch.codditta(); + _tipoa = sch.tipoa(); + _codanagr = sch.codanagr(); + _nprog = sch.nprog(); + _nriga = sch.nriga(); + _importo_versato = sch.importo_versato(); + return *this; + } + + int read_pags(TLocalisamfile* pagf=NULL); // legge i pagamenti collegati + int num_pags(TLocalisamfile* pag=NULL); + bool last_pag(const int npag) const { return npag == _num_last_pag; } + real importo_versato() const { return _importo_versato; } + void set_importo_versato(const real& imp) { _importo_versato = imp; } + + void add(TVersamento& vers); + bool find(TVersamento& vers); + + real vers_stampa(TLocalisamfile* rpag, const int nriga_pag, const real& vers, const real& rit); + real importo_versato_residuo() const { return _importo_versato_residuo; } + + TVersamento_stampa(const long codditta=0L, const char tipoa=0, const long codanagr=0L, const int nprog=0, const int nriga=0, const real& impvers=ZERO); +}; + + +//////////////////////////////////////////////////////////////////////////// +// Collegamento CG - 770 +//////////////////////////////////////////////////////////////////////////// + +typedef enum { nessuno=0, fattura=1, pagamento=3, versamento=4, + ritenuta=6, pagamento_piu_perc=7 } TTipo_coll; + +struct TLink770 +{ + TTipo_coll _tipo_coll; + char _immissione; + char _tipo; + long _codanagr; + long _numreg; + TString16 _numdoc; + TString16 _datadoc; + real _spese; + real _compenso; + real _imposte; + real _ritenute; + real _totdoc; + + bool read(const char* msg); + + TLink770(); +}; + + +#endif + diff --git a/m770/77lib01.cpp b/m770/77lib01.cpp new file mode 100755 index 000000000..ab7d7d31b --- /dev/null +++ b/m770/77lib01.cpp @@ -0,0 +1,864 @@ +// 77lib01.cpp +#include +#include +#include +#include +#include +#include +#include "scperc.h" +#include "perc.h" +#include "rver.h" +#include "rpag.h" +#include "quadrol.h" +#include "dipend.h" // per is_erede +#include "770101.h" // per TSchedaPE +#include "77lib.h" + +HIDDEN real __dep; +HIDDEN TString80 __tmp; +HIDDEN const char* _build_key(TVersamento& vers); +// La ditta corrente 770 +HIDDEN long _codditta_770 = 0L; + +////////////////////////////////////////////////////////////////////////////// +// Utility varie +////////////////////////////////////////////////////////////////////////////// +bool ricerca(const TMask& m) +{ + return (m.mode() == MODE_QUERY) || (m.mode() == MODE_QUERYINS); +} + +bool modifica(const TMask& m) +{ + return m.mode() == MODE_MOD; +} + +bool inserimento(const TMask& m) +{ + return m.mode() == MODE_INS; +} + +bool esiste_perc(char tipoa, const long codanagr) +{ +// Controllo che l'anagrafica esista + TLocalisamfile anag(LF_ANAG); + anag.zero(); + anag.put("TIPOA", tipoa); + anag.put("CODANAGR", (long)codanagr); + const bool esiste_anagr = anag.read() == NOERR; + return esiste_anagr; + /* + bool ok=FALSE; + TLocalisamfile fp(LF_PERC); + fp.zero(); + fp.put("CODDITTA", (long)codditta); + fp.put("TIPOA", tipoa); + fp.put("CODANAGR", (long) codanag); + ok = fp.read(); + return ok;*/ +} + +// Ritorna il codice fiscale del titolare di codditta +const char* cod_fis(const long codditta) +{ + TLocalisamfile ditte(LF_NDITTE); + ditte.zero(); + ditte.put("CODDITTA", (long)codditta); + int err = ditte.read(); + if (err) return NULL; + const char tipoa = ditte.get("TIPOA")[0]; + const long codanagr = ditte.get_long("CODANAGR"); + TLocalisamfile anagr(LF_ANAG); + anagr.zero(); + anagr.put(ANA_TIPOA, tipoa); + anagr.put(ANA_CODANAGR,(long)codanagr); + err = anagr.read(); + if (err) return NULL; + __tmp = anagr.get(ANA_COFI); + return __tmp; +} + +const char* get_desc_cau(const char* codcau) +{ + TTable ca7("%ca7"); + __tmp = ""; + ca7.zero(); + ca7.put("CODTAB", codcau); + const int rc = ca7.read(); + if (rc == NOERR) + __tmp = ca7.get("S0"); + return __tmp; +} + + +// +// Round_770 +// +// Round adattata per 770 - 1.12.95 +// Arrotonda cosi': +// se importo >= 500 importo -> 1000 +// se importo < 500 importo -> 0 +// L'unica differenza con round(-3) e' il comportamento +// alle 500 lire. +// +real& round_770(const real& importo) +{ + __dep = ZERO; + __dep = importo / 1000.00; + __dep = __dep + 0.499; + __dep.trunc(); + __dep *= 1000.00; + return __dep; +} + +int conta_tipiper(const long codit, TString& quadro, int* NumFisiche, int* NumNoFisiche) +{ + int file; + int ctrf=0, ctr_nof=0; + + if (quadro == "C") + file = LF_QUAC; + + if (quadro == "D") + file = LF_QUAD; + + if (quadro == "D1") + file = LF_QUAD1; + + if (quadro == "E") + file = LF_QUAE; + + if (quadro == "E1") + file = LF_QUAE1; + + if (quadro == "G") + file = LF_QUAGD; + + TLocalisamfile fl(file); + fl.zero(); + fl.put("CODDITTA", (long) codit); + TRectype dep(fl.curr()); + for (fl.read(); !fl.eof(); fl.next()) + { + if (fl.curr() > dep) + break; + const char tipoa = fl.get("TIPOA")[0]; + if (tipoa == 'F') + ctrf++; + else + ctr_nof++; + } + *NumFisiche = ctrf; + *NumNoFisiche = ctr_nof; + return 0; +} + +////////////////////////////////////////////////////////////////////////////// +// Gestione ditta 770 +////////////////////////////////////////////////////////////////////////////// +// Ritorna l'anno di dichiarazione sui parametri di studio +int anno_770() +{ + TConfig conf(CONFIG_STUDIO); + const int anno = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); + return anno; +} + +long get_firm_770() +{ + if (!_codditta_770) + { + const char* section = "77"; + TConfig cnf(CONFIG_USER, section); + _codditta_770 = cnf.get_long(DITTA_770, section); + } + + return _codditta_770; +} + +void set_firm_770(const long codditta) +{ + if (_codditta_770 == 0 || codditta != _codditta_770) + { + const char* section = "77"; + TConfig cnf(CONFIG_USER, section); + cnf.set(DITTA_770, codditta); + } + _codditta_770 = codditta; +} + +// Cerca di stabilire se il titolare della ditta e' PF o PG +char tipo_persona(long codditta) +{ + TLocalisamfile nditte(LF_NDITTE); + + nditte.zero(); + nditte.put("CODDITTA", (long)codditta); + + if (nditte.read() == NOERR) + return nditte.get_char("TIPOA"); + else + return NULL; +} + +// Stabilisce se coddip esiste +bool esiste_dipendente(const long codditta, const long coddip) +{ + TLocalisamfile dip (LF_DIPEND); + dip.zero(); + dip.put(DIP_CODDITTA, codditta); + dip.put(DIP_CODIP, coddip); + return dip.read() == NOERR; +} + +// Stabilisce se coddip e' un dipendente non erede e non deceduto +bool is_dipendente(const long codditta, const long coddip) +{ + return !(is_erede(codditta,coddip) || is_deceduto(codditta,coddip)); +} + +// Stabilisce se il dipendente e' un erede +bool is_erede(const long codditta, const long coddip) +{ + TLocalisamfile dip (LF_DIPEND); + TString16 CodDipDec(""); + + dip.setkey(1); + dip.zero(); + dip.put(DIP_CODDITTA, codditta); + dip.put(DIP_CODIP, coddip); + if (dip.read() == NOERR) + CodDipDec = dip.get(DIP_CODDIPDEC); + + return CodDipDec.not_empty(); +} + +// Stabilisce se il dipendente e' un deceduto +// Se un qualunque codice erede e' stato compilato => e' un deceduto +bool is_deceduto(const long codditta, const long coddip) +{ + TLocalisamfile dip (LF_DIPEND); + dip.zero(); + dip.put(DIP_CODDITTA, codditta); + dip.put(DIP_CODIP, coddip); + bool ok = dip.read() == NOERR; + if (!ok) return FALSE; + for (int i=0; i < 10; i++) + { + TString campo("CODEREDE"); + campo << i; + TString16 dep; + dep = dip.get(campo); + if (dep.not_empty()) + return TRUE; + } + return FALSE; +} + +const int MAX_EREDI = 10; + +bool scrivi_erede(const long codditta, const long deceduto, const long coddip) +{ + bool esiste=FALSE, trovato=FALSE; + TLocalisamfile dip (LF_DIPEND); + + dip.zero(); + dip.put(DIP_CODDITTA, (long)codditta); + dip.put(DIP_CODIP, (long)deceduto); + esiste = dip.read(_isequal, _lock) == NOERR; + + if (!esiste) return FALSE; + + for (int i=0; izero(); + rpag->put(PAG_CODDITTA, sch.codditta()); + rpag->put(PAG_TIPOA, sch.tipoa()); + rpag->put(PAG_CODANAGR, sch.codanagr()); + rpag->put(PAG_NPROG, sch.nprog()); + TRectype mst(rpag->curr()); + for (rpag->read(_isgteq); !rpag->eof(); rpag->next()) + { + if (rpag->curr() > mst) break; + const TDate datapag = rpag->get_date(PAG_DATAPAG); + const int annopag = datapag.year(); + if (filtra_anno) + { + const int annopag = datapag.year(); + if (annopag == annodic) + return TRUE; + } + + if (filtra_periodo) + { + if (datapag <= data_a && datapag >= data_da) + return TRUE; + } + } + return FALSE; +} + +////////////////////////////////////////////////////////////////////////////// +// Dichiarazioni +////////////////////////////////////////////////////////////////////////////// +// +// Controlla se esiste il record sul base. Se (dichiarante) => controlla se c'e' +// il record del quadro I "globale" di codditta (che deve essere quindi +// un dichiarante) +// +bool exist_dichiar_770(long codditta, bool dichiarante) +{ + int status; + TLocalisamfile base(LF_BASE); + + base.zero(); + base.setkey(1); + if (dichiarante) + base.put("TIPOQUA", COD_QUA_I_DIC); + base.put("CODDITTA", (long)codditta); + status = base.read(); + return status == NOERR; +} + +// +// Idem come sopra. Se (sogg_dich) s'intende che voglio creare il quadro I +// "globale" per un sogg. dichiarante +// +bool enter_dichiar_770(long codditta, int anno_dic, bool sogg_dich) +{ + int rc1, rc1wr, rc1rw, rc2, rc2wr, rc2rw; + TLocalisamfile base(LF_BASE); + TLocalisamfile basebis(LF_BASEBIS); + + base.zero(); + base.put("CODDITTA", (long)codditta); + base.put("ANNODIC", (long)anno_dic); + if (sogg_dich) + base.put("TIPOQUA", COD_QUA_I_DIC); + TRectype dep1(base.curr()); + + rc1 = base.read(); + if (rc1 == NOERR) + rc1rw = base.rewrite(); + else + { + base.curr() = dep1; + rc1wr = base.write(); + } + +#ifdef DBG + if (rc1wr != NOERR) + warning_box("write su base fallita codice %d", rc1wr); + if (rc1rw != NOERR) + warning_box("rewrite su base fallita codice %d", rc1rw); +#endif + +// Devo scrivere anche su BASEBIS ! + basebis.zero(); + basebis.put("CODDITTA", (long)codditta); + if (sogg_dich) + basebis.put("TIPOQUA", COD_QUA_I_DIC); + TRectype dep2(basebis.curr()); + rc2 = basebis.read(); + if (rc2 == NOERR) + rc2rw = basebis.rewrite(); + else + { + basebis.curr() = dep2; + rc2wr = basebis.write(); + } + +#ifdef DBG + if (rc2wr != NOERR) + warning_box("write su basebis fallita codice %d", rc2wr); + if (rc2rw != NOERR) + warning_box("rewrite su basebis fallita codice %d", rc2rw); +#endif + +// return (rc1 == NOERR && rc2 == NOERR); + return TRUE; +} + +// 20.12.95 flag di quadro compilato legato all'anno dich. +bool esiste_record_L(const long codditta, const int annodic) +{ + TLocalisamfile qual(LF_QUAL); + bool found = FALSE; + qual.zero(); + qual.put(QUL_CODDITTA, (long)codditta); + for (qual.read(); !qual.eof(); qual.next()) + { + const long cod = qual.get_long(QUL_CODDITTA); + if (cod != codditta) break; + const int adic = qual.get_int(QUL_QLAP); + found = adic == annodic; + if (found) break; + } + return found; +} + +long sogg_estinto(const long codditta) +{ + TLocalisamfile base(LF_BASE); + long coddic = 0L; + + base.zero(); + base.setkey(1); + base.put("TIPOQUA", ""); + base.put("CODDITTA", (long)codditta); + const int rc = base.read(); + if (rc != NOERR) + base.zero(); + coddic = base.get_long("CODDIC"); + return coddic; +} + +bool sogg_dic(const long codditta) +{ + TLocalisamfile base(LF_BASE); + + base.zero(); + base.setkey(2); + base.put("CODDIC", codditta); + const int rc = base.read(); + if (rc == _iseof) base.zero(); + const long codic = base.get_long("CODDIC"); + return codic == codditta; +} + +//////////////////////////////////////////////////////////////////////////// +// Array sheet 'modificato' +//////////////////////////////////////////////////////////////////////////// +TToken_string& TNikArray_sheet::row(int i) +{ + return (TToken_string&)_interno[i]; +} + +long TNikArray_sheet::add(TToken_string& s) +{ + _interno.add(s); + TToken_string vis(40); + for (int i = 0; i < _visible_items; i++) + { + const char* tmp = s.get(i); + vis.add(tmp); + } + + return TArray_sheet::add(vis); +} + +bool TNikArray_sheet::destroy(int i) +{ + _interno.destroy(); + return TArray_sheet::destroy(i); +} + +//////////////////////////////////////////////////////////////////////////// +// Collegamento CG - 770 +//////////////////////////////////////////////////////////////////////////// +TLink770::TLink770() +{ + _tipo_coll = nessuno; + _immissione = _tipo = NULL; + _codanagr = _numreg = 0L; + _totdoc = _spese = _compenso = _imposte = _ritenute = ZERO; +} + +bool TLink770::read(const char* msg) +{ + TToken_string mesg(msg); + + _tipo_coll = (TTipo_coll)mesg.get_int(0); + _immissione = mesg.get_char(1); + _tipo = mesg.get_char(2); + _codanagr = mesg.get_long(3); + _numreg = mesg.get_long(4); + _numdoc = mesg.get(5); + _datadoc = mesg.get(6); + _totdoc = real(mesg.get(7)); + _spese = real(mesg.get(8)); + _compenso = real(mesg.get(9)); + _imposte = real(mesg.get(10)); + _ritenute = real(mesg.get(11)); + + if (_tipo_coll == fattura) + if ( (_tipo != 'F' && _tipo != 'G') || _codanagr <= 0L ) + return FALSE; + + return TRUE; +} + +TPercipiente::TPercipiente(const TRectype& rec) +{ + _codditta = rec.get_long(PRC_CODDITTA); + _tipoa = rec.get(PRC_TIPOA)[0]; + _codanagr = rec.get_long(PRC_CODANAGR); +} + +// Determina se per il percipiente esiste almeno una scheda +bool TPercipiente::esiste_scheda() +{ + TLocalisamfile sch(LF_SCPERC); + sch.zero(); + sch.put(SCH_CODDITTA, _codditta); + sch.put(SCH_TIPOA, _tipoa); + sch.put(SCH_CODANAGR, _codanagr); + TRectype dep(sch.curr()); + sch.read(); + return sch.curr() == dep; +} + +bool TPercipiente::elimina_schede() +{ + TLocalisamfile sch(LF_SCPERC); + sch.zero(); + sch.put(SCH_CODDITTA, codditta()); + sch.put(SCH_TIPOA, tipoa()); + sch.put(SCH_CODANAGR, codanagr()); + TRectype dep(sch.curr()); + for (sch.read(); !sch.eof(); sch.next()) + { + if (sch.curr() > dep) + break; + TSchedaP scheda(sch.curr()); + scheda.remove(); + } + return TRUE; +} + +int TSchedaP::anno_doc() const +{ + int anno_doc; + anno_doc = _data_doc.year(); + return anno_doc; +} + +real TSchedaP::compenso_doc() const +{ + return _compenso_doc; +} + +real TSchedaP::spese_doc() const +{ + return _spese_doc; +} + + +int TSchedaP::remove() +{ + int err1=0, err2=0; + + TLocalisamfile sch(LF_SCPERC); + sch.put(SCH_CODDITTA, codditta()); + sch.put(SCH_TIPOA, tipoa()); + sch.put(SCH_CODANAGR, codanagr()); + sch.put(SCH_NPROG, nprog()); + err1 = sch.read(_isequal, _testandlock); + bool esiste = err1 == NOERR; + if (!esiste) + { + sch.reread(_unlock); + return SCHEDA_NON_ESISTENTE; + } + +// Elimino i pagamenti + TLocalisamfile rpag(LF_RPAG); + rpag.put(PAG_CODDITTA, codditta()); + rpag.put(PAG_TIPOA, tipoa()); + rpag.put(PAG_CODANAGR, codanagr()); + rpag.put(PAG_NPROG, nprog()); + TRectype pagrec(rpag.curr()); + for (rpag.read(_isgteq); !rpag.eof(); rpag.next()) + { + if (rpag.curr() > pagrec) + break; + rpag.reread(_testandlock); + err1 = rpag.remove(); + if (err1 != NOERR) + { + warning_box("Elimina righe pag. errore: %d", err1); + rpag.reread(_unlock); + break; + } + rpag.reread(_unlock); + } + +// E poi i versamenti + TLocalisamfile rver(LF_RVER); + rver.put(VER_CODDITTA, codditta()); + rver.put(VER_TIPOA, tipoa()); + rver.put(VER_CODANAGR, codanagr()); + rver.put(VER_NPROG, nprog()); + TRectype verrec(rver.curr()); + for (rver.read(_isgteq); !rver.eof(); rver.next()) + { + if (rver.curr() > verrec) + break; + rver.reread(_testandlock); + err2 = rver.remove(); + if (err2 != NOERR) + { + warning_box("Elimina righe ver. errore: %d", err2); + rver.reread(_unlock); + break; + } + rver.reread(_unlock); + } + +// Alla fine se tutto e' andato bene rimuovo la testata della scheda + if (err1 == NOERR && err2 == NOERR) err1 = sch.remove(); + return err1 + err2; // (NOERR e' 0) +} + +bool TSchedaP::read() +{ + bool ok = FALSE; + TLocalisamfile sch(LF_SCPERC); + sch.put(SCH_CODDITTA, codditta()); + sch.put(SCH_TIPOA, tipoa()); + sch.put(SCH_CODANAGR, codanagr()); + sch.put(SCH_NPROG, nprog()); + const int rc = sch.read(); + ok = rc == NOERR; + if (ok) + { + _compenso_doc = sch.get_real(SCH_COMPENSO); + _spese_doc = sch.get_real(SCH_SPESE); + _data_doc = sch.get_date(SCH_DATADOC); + } + return ok; +} + +TSchedaP::~TSchedaP() +{ +} + +TSchedaP::TSchedaP (const long codditta, const char tipoa, const long codanagr, const int nprog) + : _codditta(codditta), _tipoa(tipoa), _codanagr(codanagr), _nprog(nprog) +{ + _compenso_doc = _spese_doc = ZERO; +} + +TSchedaP::TSchedaP(TRectype& rec) +{ + _codditta = rec.get_long("CODDITTA"); + _tipoa = rec.get("TIPOA")[0]; + _codanagr = rec.get_long("CODANAGR"); + _nprog = rec.get_int("NPROG"); +} + +TVersamento::TVersamento(TRectype& rec) +{ + _codditta = rec.get_long(VER_CODDITTA); + _tipoa = rec.get(VER_TIPOA)[0]; + _codanagr = rec.get_long(VER_CODANAGR); + _nprog = rec.get_int(VER_NPROG); + _nriga = rec.get_int(VER_NRIGA); +} + +void TVersamento::set(TToken_string& row) +{ + _codditta = atol(row.get(0)); + _tipoa = row.get()[0]; + _codanagr = atol(row.get()); + _nprog = atoi(row.get()); + _nriga = atoi(row.get()); + _importo_versato = real(row.get()); +} + +void TVersamento::set(const long codditta, const char tipoa, const long codanagr, + const int nprog, const int nriga, const real& impvers) +{ + _codditta=codditta; + _tipoa=tipoa; + _codanagr=codanagr; + _nprog=nprog; + _nriga = nriga; + _importo_versato = impvers; +} + + +TVersamento_stampa::TVersamento_stampa(const long codditta, const char tipoa, const long codanagr, const int nprog, const int nriga, const real& impvers) : + TVersamento(codditta, tipoa, codanagr, nprog, nriga, impvers) +{ + _gia_letti_pag = FALSE; + _num_last_pag = 0; +} + + +void TVersamento_stampa::set(const long codditta, const char tipoa, const long codanagr, + const int nprog, const int nriga, const real& impvers) +{ +// se sto cambiando versamento resetto il flag "pagamenti gia' letti" + if ((_nriga && nriga != _nriga) || (_nprog && nprog != _nprog) || + (_tipoa != '\0' && tipoa != _tipoa) || (_codditta != 0 && _codditta != codditta) || + (_codanagr != 0 && _codanagr != codanagr) ) + { + _gia_letti_pag = FALSE; + _importo_versato = ZERO; + _importo_versato_residuo = ZERO; + } + + _codditta = codditta; + _tipoa = tipoa; + _codanagr = codanagr; + _nprog = nprog; + _nriga = nriga; + _importo_versato = impvers; +} + +int TVersamento_stampa::num_pags(TLocalisamfile* pag) +{ + if (!_gia_letti_pag) + _num_pags = read_pags(pag); + return _num_pags; +} + +int TVersamento_stampa::read_pags(TLocalisamfile* frpag) +{ + TLocalisamfile* tmp = frpag ? NULL : new TLocalisamfile(LF_RPAG); + TLocalisamfile& rpag = frpag ? *frpag : *tmp; + int ctr = 0; + TRecnotype recno = frpag ? frpag->recno() : 0L; + + rpag.zero(); + rpag.put(PAG_CODDITTA, (long)_codditta); + rpag.put(PAG_TIPOA, _tipoa); + rpag.put(PAG_CODANAGR, (long)_codanagr); + rpag.put(PAG_NPROG, _nprog); + TRectype mst(rpag.curr()); + for (rpag.read(_isgteq); !rpag.eof(); rpag.next()) + { + if (rpag.curr() > mst) break; + const int numvers = rpag.get_int(PAG_NUMVERS); + if (numvers != _nriga) continue; + const int nriga = rpag.get_int(PAG_NRIGA); + _num_last_pag = nriga; + ctr++; + } + _gia_letti_pag = TRUE; + if (frpag) frpag->readat(recno); // ripristina la posizione prec. + return ctr; +} + +HIDDEN TVersamento __vers; + +// stampa solo la quota di versamento corrispondente al pagamento +real TVersamento_stampa::vers_stampa(TLocalisamfile* rpag, const int nriga_pag, + const real& impvers, const real& ritenpag) +{ + real vers_stampa = ZERO; + real vers_residuo = ZERO; + const int numpags = num_pags(rpag); + +// se l'importo versato e' minore della ritenuta oppure c'e' solo un +// pagamento collegato stampo l'intera somma versata, altrimenti solo +// quella che copre la ritenuta + const bool ultimo_pagamento = numpags == 1 || last_pag(nriga_pag); + vers_stampa = ultimo_pagamento || (impvers < ritenpag) ? impvers : ritenpag; + _importo_versato_residuo = impvers - vers_stampa; + return vers_stampa; +} + +HIDDEN const char* _build_key(TVersamento& vers) +{ + __tmp.format("%5ld%c%5ld%d%d", vers.codditta(),vers.tipoa(),vers.codanagr(),vers.nprog(),vers.nriga()); + return __tmp; +} + +void TVersamento_stampa::add(TVersamento& vers) +{ + TString80 key; + real dep(vers.importo_versato()); + TString vvv(dep.string()); + key = _build_key(vers); + _vers.add(key, vvv, TRUE); +} + +bool TVersamento_stampa::find(TVersamento& vers) +{ + TString80 key; + bool truovato = FALSE; + + key = _build_key(vers); + truovato = _vers.is_key(key); + + if (truovato) + { + TString& vvv = (TString&)_vers.find(key); + real dep(vvv); + _importo_versato_residuo = dep; + } + return truovato; +} + diff --git a/m770/77qb.h b/m770/77qb.h new file mode 100755 index 000000000..2711b4cde --- /dev/null +++ b/m770/77qb.h @@ -0,0 +1,61 @@ +// 77qb.h +#define QBF_CODDITTA 181 +#define QBF_ANNODIC 182 +#define QBF_CODDIP 183 +#define QBF_NPROG 184 +#define QBF_DATAINI 185 +#define QBF_DATAFIN 186 +#define QBF_ANNICOMM 187 +#define QBF_MESICOMM 188 +#define QBF_ANNICONV 189 +#define QBF_MESICONV 190 +#define QBF_ANNIPARZ 191 +#define QBF_MESIPARZ 192 +#define QBF_PERCPARZ 193 +#define QBF_QUOTAECC 194 +#define QBF_MESEEROG 195 +#define QBF_TITEROG 196 +#define QBF_PERCABB 197 +#define QBF_AMMNETTO 198 +#define QBF_MESEEROG2 199 +#define QBF_TITEROG2 200 +#define QBF_PERCABB2 201 +#define QBF_AMMNETTO2 202 +#define QBF_CONTLAV 203 +#define QBF_TFR7494 204 +#define QBF_INDEN7494 205 +#define QBF_TIND7494 206 +#define QBF_TRID 207 +#define QBF_TFRIND 208 +#define QBF_ALIQUOTA 209 +#define QBF_RETRMEDIA 210 +#define QBF_ALIQUOTA2 211 +#define QBF_IMPTFR 212 +#define QBF_IMPIND 213 +#define QBF_IMPANNO 214 +#define QBF_TOTIMP 215 +#define QBF_ROPEACC 216 +#define QBF_IMPDOV 217 +#define QBF_RITECC 218 +#define QBF_QUOTASPET 219 +#define QBF_INDSPETT 220 +#define QBF_ROPE 221 +#define QBF_IMPOCSSN 222 +#define QBF_RAGDITTA 223 +#define QBF_ANADIP_CODDIP 224 +#define QBF_QUAB_CODDIP 225 + +#define QBF_HCODDIP 228 + +#define QBF_COGNOME 226 +#define QBF_NOME 227 + +#define GROUP_EREDE 2 +#define GROUP_DIPDEC 3 +#define RICERCA_DIP 4 +#define RICERCA_QB 5 +#define GROUP_ALL 6 + + + + diff --git a/m770/77qb.uml b/m770/77qb.uml new file mode 100755 index 000000000..72263f510 --- /dev/null +++ b/m770/77qb.uml @@ -0,0 +1,736 @@ +// Quadro B +#include "77qb.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - QUADRO B" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QBF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QBF_CODDITTA + OUTPUT QBF_RAGDITTA RAGSOC + FIELD LF_QUAB->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +STRING QBF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QBF_ANNODIC 4 +BEGIN + PROMPT 52 3 "Anno dichiarazione " + FLAGS "DR" +END + +NUMBER QBF_CODDIP 6 +BEGIN + PROMPT 80 80 "Codice dipendente con KEY 1 usato per la read in RELAPP" + FLAGS "D" + FIELD LF_QUAB->CODDIP + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QBF_ANADIP_CODDIP 6 +BEGIN + PROMPT 1 3 "Codice dipendente " + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QBF_CODDITTA)) + INPUT CODDITTA QBF_CODDITTA + INPUT CODIP QBF_ANADIP_CODDIP + DISPLAY "Codice dipendente" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + DISPLAY "Qualifica" QUALIFICA + OUTPUT QBF_ANADIP_CODDIP CODIP + ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" /uPRASSI + MESSAGE COPY,QBF_CODDIP + FLAGS "RZH" + KEY 1 + GROUP RICERCA_DIP +END + +NUMBER QBF_QUAB_CODDIP 6 +BEGIN + PROMPT 1 3 "Codice dipendente " + USE LF_QUAB //SELECT (CODDITTA=#QBF_CODDITTA) + JOIN LF_DIPEND INTO CODDITTA=CODDITTA CODIP=CODDIP + INPUT CODDITTA QBF_CODDITTA // SELECT + INPUT CODDIP QBF_QUAB_CODDIP +// INPUT NPROG QBF_NPROG + DISPLAY "Dipendente" CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@5" NPROG + DISPLAY "Inizio rapporto" DATAINI + DISPLAY "Fine rapporto" DATAFIN + OUTPUT QBF_QUAB_CODDIP CODDIP + GROUP RICERCA_QB + KEY 1 + FLAGS "RZ" + MESSAGE COPY,QBF_CODDIP +END + +NUMBER QBF_NPROG 4 +BEGIN + PROMPT 29 3 "@bNumero " + USE LF_QUAB SELECT (CODDITTA=#QBF_CODDITTA) + JOIN LF_DIPEND INTO CODDITTA=CODDITTA CODIP=CODDIP + INPUT CODDITTA QBF_CODDITTA SELECT + DISPLAY "Dipendente" CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°" NPROG + DISPLAY "Inizio rapporto" DATAINI + DISPLAY "Fine rapporto" DATAFIN + OUTPUT QBF_NPROG NPROG + FIELD LF_QUAB->NPROG + CHECKTYPE REQUIRED + KEY 1 +END + +GROUPBOX DLG_NULL 25 4 +BEGIN + PROMPT 0 6 "Rapporto di lavoro " +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "Inizio" +END + +DATE QBF_DATAINI +BEGIN + PROMPT 1 8 "" + FIELD LF_QUAB->DATAINI + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 13 7 "Cessazione" +END + +DATE QBF_DATAFIN +BEGIN + PROMPT 13 8 "" + FIELD LF_QUAB->DATAFIN + GROUP GROUP_ALL +END + +#define COLCOMM 27 +#define COLCOMM1 28 +#define COLCOMM6 34 + +TEXT DLG_NULL +BEGIN + PROMPT COLCOMM 5 "Periodo di " +END + +GROUPBOX DLG_NULL 14 4 +BEGIN + PROMPT COLCOMM 6 "commisurazione " +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCOMM1 7 "Anni" +END + +NUMBER QBF_ANNICOMM 2 +BEGIN + PROMPT COLCOMM1 8 "" + FIELD LF_QUAB->ANNICOMM + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCOMM6 7 "Mesi" +END + +NUMBER QBF_MESICOMM 2 +BEGIN + PROMPT COLCOMM6 8 "" + FIELD LF_QUAB->MESICOMM + GROUP GROUP_ALL +END + +#define COLCONV 43 +#define COLCONV1 44 +#define COLCONV6 51 + +TEXT DLG_NULL +BEGIN + PROMPT COLCONV 5 "Periodo " +END + +GROUPBOX DLG_NULL 14 4 +BEGIN + PROMPT COLCONV 6 "convenzionale " +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCONV1 7 "Anni" +END + +NUMBER QBF_ANNICONV 2 +BEGIN + PROMPT COLCONV1 8 "" + FIELD LF_QUAB->ANNICONV + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCONV6 7 "Mesi" +END + +NUMBER QBF_MESICONV 2 +BEGIN + PROMPT COLCONV6 8 "" + FIELD LF_QUAB->MESICONV + GROUP GROUP_ALL +END + +#define COLPAR0 58 +#define COLPAR1 59 +#define COLPAR2 64 +#define COLPAR3 69 + +GROUPBOX DLG_NULL 20 4 +BEGIN + PROMPT COLPAR0 6 "Tempo parziale" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLPAR1 7 "Anni" +END + +NUMBER QBF_ANNIPARZ 2 +BEGIN + PROMPT COLPAR1 8 "" + FIELD LF_QUAB->ANNIPARZ + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLPAR2 7 "Mesi" +END + +NUMBER QBF_MESIPARZ 2 +BEGIN + PROMPT COLPAR2 8 "" + FIELD LF_QUAB->MESIPARZ + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLPAR3 7 " %" +END + +NUMBER QBF_PERCPARZ 6 +BEGIN + PROMPT COLPAR3 8 "" + FIELD LF_QUAB->PERCPARZ + PICTURE ".2" + GROUP GROUP_ALL +END + +// SECONDA RIGA + +TEXT DLG_NULL +BEGIN + PROMPT 1 10 "Quota eccedente" +END + +NUMBER QBF_QUOTAECC 15 +BEGIN + PROMPT 1 11 "" + FIELD LF_QUAB->QUOTAECC + FLAGS "R" + PICTURE "." + GROUP GROUP_ALL +END + +#define COLTFR0 40 //21 +#define COLTFR1 41 //22 +#define COLTFR2 46 //27 +#define COLTFR3 53 //33 +#define COLTFR4 61 //40 + +#define RIGTFR1 11 +#define RIGTFR2 12 + +GROUPBOX DLG_NULL 38 4 +BEGIN + PROMPT COLTFR0 10 "TFR o ind.equip. corrisposti nel 1994 " +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR1 RIGTFR1 "Mese" +END + +NUMBER QBF_MESEEROG 2 +BEGIN + PROMPT COLTFR1 RIGTFR2 "" + NUM_EXPR {(#THIS>=0) && (#THIS<13)} + WARNING "Mese non valido" + FIELD LF_QUAB->MESEEROG + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR2 RIGTFR1 "Titolo" +END + +STRING QBF_TITEROG 1 +BEGIN + PROMPT COLTFR2 RIGTFR2 "" + SHEET "Codice|Descrizione@15" + INPUT QBF_TITEROG + ITEM "|" + ITEM "A|Anticipazione" + ITEM "B|Saldo" + ITEM "C|Acconto" + OUTPUT QBF_TITEROG + FIELD LF_QUAB->TITEROG + FLAGS "U" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR3 RIGTFR1 "% abb." +END + +NUMBER QBF_PERCABB 6 +BEGIN + PROMPT COLTFR3 RIGTFR2 "" + FIELD LF_QUAB->PERCABB + PICTURE ".2" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR4 RIGTFR1 "Ammontare netto" +END + +NUMBER QBF_AMMNETTO 15 +BEGIN + PROMPT COLTFR4 RIGTFR2 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->AMMNETTO + GROUP GROUP_ALL +END + + +// TERZA RIGA + +#define COLTFRB0 2 +#define COLTFRB1 2 +#define COLTFRB2 7 +#define COLTFRB3 14 +#define COLTFRB4 22 +#define RIGTFRB1 15 +#define RIGTFRB2 16 + + +GROUPBOX DLG_NULL 38 4 +BEGIN + PROMPT 1 14 "Altre indennità corrisposte nel 1994" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB1 RIGTFRB1 "Mese" +END + +NUMBER QBF_MESEEROG2 2 +BEGIN + PROMPT COLTFRB1 RIGTFRB2 "" + FIELD LF_QUAB->MESEEROG2 + NUM_EXPR {(#THIS>=0) && (#THIS<13)} + WARNING "Mese non valido" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB2 RIGTFRB1 "Titolo" +END + +STRING QBF_TITEROG2 1 +BEGIN + PROMPT /*COLTFR2*/ 8 RIGTFRB2 "" + SHEET "Codice|Descrizione@15" + INPUT QBF_TITEROG2 + ITEM "|" + ITEM "A|Anticipazione" + ITEM "B|Saldo" + ITEM "C|Acconto" + OUTPUT QBF_TITEROG2 + FIELD LF_QUAB->TITEROG2 + FLAGS "U" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB3 RIGTFRB1 "% abb." +END + +NUMBER QBF_PERCABB2 6 +BEGIN + PROMPT COLTFRB3 RIGTFRB2 "" + FIELD LF_QUAB->PERCABB2 + PICTURE ".2" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB4 RIGTFRB1 "Ammontare netto" +END + +NUMBER QBF_AMMNETTO2 15 +BEGIN + PROMPT COLTFRB4 RIGTFRB2 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->AMMNETTO2 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 45 RIGTFRB1 "Contributi obbligatori a carico" +END + +NUMBER QBF_CONTLAV 15 +BEGIN + PROMPT 45 RIGTFRB2 "del lavoratore " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->CONTLAV + GROUP GROUP_ALL +END + +ENDPAGE + +PAGE "MODULO 770 - QUADRO B" -1 -1 78 18 + +#define C1 2 +#define C2 22 +#define C3 57 + +GROUPBOX DLG_NULL 41 4 +BEGIN + PROMPT 1 1 "Acconti e anticipazioni erogati dal 74 al 93" +END + +TEXT DLG_NULL +BEGIN + PROMPT C1 2 "TFR o ind.equip." +END + +NUMBER QBF_TFR7494 15 +BEGIN + PROMPT C1 3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TFR7494 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C2 2 "Altre indennità" +END + +NUMBER QBF_INDEN7494 15 +BEGIN + PROMPT C2 3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->INDEN7494 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C3 2 "Totale indennità" +END + +NUMBER QBF_TIND7494 15 +BEGIN + PROMPT C3 3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TIND7494 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C1 5 "Totale riduzioni" +END + +NUMBER QBF_TRID 15 +BEGIN + PROMPT C1 6 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TRID + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 30 5 "TFR o indennità equipollenti" +END + +NUMBER QBF_TFRIND 15 +BEGIN + PROMPT 30 6 "per reddito di riferimento " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TFRIND + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C1 7 "Aliquota" +END + +NUMBER QBF_ALIQUOTA 6 +BEGIN + PROMPT C1 8 "" + FIELD LF_QUAB->ALIQUOTA + PICTURE ".2" + GROUP GROUP_ALL +END + +#define GD0 24 //11 +#define GD1 25 //12 +#define GD2 64 //51 + +GROUPBOX DLG_NULL 49 4 +BEGIN + PROMPT GD0 7 "Art.4 3° comma L.482/1985" +END + +TEXT DLG_NULL +BEGIN + PROMPT GD1 8 "Retribuzione media" +END + +NUMBER QBF_RETRMEDIA 15 +BEGIN + PROMPT GD1 9 "biennio precedente " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->RETRMEDIA + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT GD2 8 "Aliquota" +END + +NUMBER QBF_ALIQUOTA2 6 +BEGIN + PROMPT GD2 9 "" + FIELD LF_QUAB->ALIQUOTA2 + PICTURE ".2" + GROUP GROUP_ALL +END + +// QUARTA RIGA +TEXT DLG_NULL +BEGIN + PROMPT 1 11 "Imponibile TFR" +END + +NUMBER QBF_IMPTFR 15 +BEGIN + PROMPT 1 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPTFR + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 11 "Impon. altre ind." +END + +NUMBER QBF_IMPIND 15 +BEGIN + PROMPT 19 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPIND + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 37 11 "Imponibile anno" +END + +NUMBER QBF_IMPANNO 15 +BEGIN + PROMPT 37 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPANNO + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 54 11 "Totale reddito imponibile" +END + +NUMBER QBF_TOTIMP 15 +BEGIN + PROMPT 57 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TOTIMP + GROUP GROUP_ALL +END + +// QUINTA RIGA +TEXT DLG_NULL +BEGIN + PROMPT 1 13 "Rit. operate su acc. e ant. erogati " +END + +NUMBER QBF_ROPEACC 15 +BEGIN + PROMPT 1 14 "dal 74 al 93 " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->ROPEACC + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 37 13 "Imposta dovuta" +END + +NUMBER QBF_IMPDOV 15 +BEGIN + PROMPT 37 14 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPDOV + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 57 13 "Ritenute in eccedenza" +END + +NUMBER QBF_RITECC 15 +BEGIN + PROMPT 57 14 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->RITECC + GROUP GROUP_ALL +END + +// SESTA RIGA +GROUPBOX DLG_NULL 38 4 +BEGIN + PROMPT 1 15 "Art.2122 COD. CIV." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 16 "Quota spettante" +END + +NUMBER QBF_QUOTASPET 15 +BEGIN + PROMPT 2 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->QUOTASPET + GROUP GROUP_DIPDEC GROUP_EREDE +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 16 "Indennità spettante" +END + +NUMBER QBF_INDSPETT 15 +BEGIN + PROMPT 19 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->INDSPETT + GROUP GROUP_DIPDEC GROUP_EREDE +END + +TEXT DLG_NULL +BEGIN + PROMPT 40 16 "Ritenute operate" +END + +NUMBER QBF_ROPE 15 +BEGIN + PROMPT 40 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->ROPE + GROUP GROUP_EREDE +END + +TEXT DLG_NULL +BEGIN + PROMPT 57 16 "Imponibile CSSN" +END + +NUMBER QBF_IMPOCSSN 15 +BEGIN + PROMPT 57 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPOCSSN + GROUP GROUP_ALL +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qb1.h b/m770/77qb1.h new file mode 100755 index 000000000..d75cc64ff --- /dev/null +++ b/m770/77qb1.h @@ -0,0 +1,26 @@ +// 77qb1.h +#define QB1F_CODDITTA 181 +#define QB1F_ANNODIC 182 +#define QB1F_NPROG 183 +#define QB1F_RAGDITTA 184 +#define QB1F_INDEN 185 +#define QB1F_AMMIMP 186 +#define QB1F_IMP4 187 +#define QB1F_IMP8 188 +#define QB1F_IMP10 189 +#define QB1F_IMP12 190 +#define QB1F_IMP15 191 +#define QB1F_IMPO15 192 +#define QB1F_IMPO4 193 +#define QB1F_IMPNETTO 194 +#define QB1F_ANADIP_CODDIP 195 +#define QB1F_QUAB1_CODDIP 196 +#define QB1F_CODDIP 197 + +#define QB1F_COGNOME 198 +#define QB1F_NOME 199 +#define QB1F_HCODDIP 200 + +#define RICERCA_DIP 4 +#define RICERCA_QB 5 + diff --git a/m770/77qb1.uml b/m770/77qb1.uml new file mode 100755 index 000000000..8d59ac78a --- /dev/null +++ b/m770/77qb1.uml @@ -0,0 +1,266 @@ +// Quadro B-1 +#include "77qb1.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - QUADRO B1" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QB1F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QB1F_CODDITTA + OUTPUT QB1F_RAGDITTA RAGSOC + FIELD LF_QUAB1->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +STRING QB1F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QB1F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +NUMBER QB1F_CODDIP 6 +BEGIN + PROMPT 80 80 "Codice dipendente con KEY 1 usato per la read in RELAPP" + FLAGS "D" + FIELD LF_QUAB1->CODDIP + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QB1F_ANADIP_CODDIP 6 +BEGIN + PROMPT 1 4 "Codice dipendente " + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QB1F_CODDITTA)) + INPUT CODDITTA QB1F_CODDITTA + INPUT CODIP QB1F_ANADIP_CODDIP + DISPLAY "Codice dipendente" CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + DISPLAY "Qualifica" QUALIFICA + OUTPUT QB1F_ANADIP_CODDIP CODIP + OUTPUT QB1F_QUAB1_CODDIP CODIP + ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" /uPRASSI + MESSAGE COPY,QB1F_CODDIP + FLAGS "RZH" + KEY 1 + GROUP RICERCA_DIP +END + +NUMBER QB1F_QUAB1_CODDIP 6 +BEGIN + PROMPT 1 4 "Codice dipendente " + USE LF_QUAB1 //SELECT (CODDITTA=#QB1F_CODDITTA) + JOIN LF_DIPEND INTO CODDITTA=CODDITTA CODIP=CODDIP + INPUT CODDITTA QB1F_CODDITTA // SELECT + INPUT CODDIP QB1F_QUAB1_CODDIP +// INPUT NPROG QB1F_NPROG + DISPLAY "Dipendente" CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@5" NPROG + DISPLAY "Indennita'@18" INDEN + DISPLAY "Imponibile@18" AMMIMP + DISPLAY "Imponibile al 4%" IMP4 + DISPLAY "Imponibile al 8%" IMP8 + OUTPUT QB1F_QUAB1_CODDIP CODDIP + OUTPUT QB1F_CODDIP CODDIP + GROUP RICERCA_QB + FLAGS "RZ" + KEY 1 + MESSAGE COPY,QB1F_CODDIP +END + +NUMBER QB1F_NPROG 4 +BEGIN + PROMPT 29 4 "@bNumero " + FIELD LF_QUAB1->NPROG + USE LF_QUAB1 SELECT (CODDITTA=#QB1F_CODDITTA) + JOIN LF_DIPEND INTO CODDITTA=CODDITTA CODIP=CODDIP + INPUT CODDITTA QB1F_CODDITTA SELECT +// INPUT NPROG QB1F_NPROG + DISPLAY "Dipendente" CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°" NPROG + DISPLAY "Indennita'@18" INDEN + DISPLAY "Imponibile@18" AMMIMP + DISPLAY "Imponibile al 4%" IMP4 + DISPLAY "Imponibile al 8%" IMP8 + OUTPUT QB1F_NPROG NPROG + OUTPUT QB1F_INDEN INDEN + OUTPUT QB1F_AMMIMP AMMIMP + OUTPUT QB1F_IMP4 IMP4 + OUTPUT QB1F_IMP8 IMP8 + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QB1F_INDEN 15 +BEGIN + PROMPT 1 6 "Ammontare delle indennita' di anzianita' di previdenza " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB1->INDEN +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bImposta di ricchezza mobile " +END + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 1 7 "" +END + +#define COL1 3 +#define COL2 33 +#define COL3 60 + +TEXT DLG_NULL +BEGIN + PROMPT COL1 8 "Ammontare imponibile" +END + +NUMBER QB1F_AMMIMP 15 +BEGIN + PROMPT COL1 9 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB1->AMMIMP +END + +TEXT DLG_NULL +BEGIN + PROMPT COL2 8 "Imponibile al 4%" +END + +NUMBER QB1F_IMP4 15 +BEGIN + PROMPT COL2 9 "" + FIELD LF_QUAB1->IMP4 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL3 8 "Imponibile al 8% " +END + +NUMBER QB1F_IMP8 15 +BEGIN + PROMPT COL3 9 "" + FIELD LF_QUAB1->IMP8 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL1 10 "Imponibile al 10% " +END + +NUMBER QB1F_IMP10 15 +BEGIN + PROMPT COL1 11 "" + FIELD LF_QUAB1->IMP10 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL2 10 "Imponibile al 12% " +END + +NUMBER QB1F_IMP12 15 +BEGIN + PROMPT COL2 11 "" + FIELD LF_QUAB1->IMP12 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL3 10 "Imponibile al 15% " +END + +NUMBER QB1F_IMP15 15 +BEGIN + PROMPT COL3 11 "" + FIELD LF_QUAB1->IMP15 + PICTURE "." + FLAGS "R" +END + +NUMBER QB1F_IMPNETTO 15 +BEGIN + PROMPT COL1 12 "Amm. imponibile (al netto delle rit.di ricchezza mobile) " + FIELD LF_QUAB1->IMPNETTO + PICTURE "." + FLAGS "R" +END + +#define RIGA1 14 +#define RIGA2 15 +#define RIGA3 16 + +TEXT DLG_NULL +BEGIN + PROMPT 1 RIGA1 "@bImposta complementare " +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 RIGA1 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL1 RIGA2 "Imponibile al 1,5%" +END + +NUMBER QB1F_IMPO15 15 +BEGIN + PROMPT COL1 RIGA3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB1->IMPO15 +END + +TEXT DLG_NULL +BEGIN + PROMPT COL2 RIGA2 "Imponibile al 4%" +END + +NUMBER QB1F_IMPO4 15 +BEGIN + PROMPT COL2 RIGA3 "" + FIELD LF_QUAB1->IMPO4 + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qb1a.uml b/m770/77qb1a.uml new file mode 100755 index 000000000..74b7b4926 --- /dev/null +++ b/m770/77qb1a.uml @@ -0,0 +1,104 @@ +#include "77qb1.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +#define QB1F_CODDIP 197 +#define QB1F_NPROG 183 + +PAGE "MODULO 770 - Manutenzione Quadro B1" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QB1F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA QB1F_CODDITTA + OUTPUT QB1F_RAGDITTA RAGSOC + FIELD LF_QUAB1->CODDITTA +END + +STRING QB1F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QB1F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati dipendente" +END + +NUMBER QB1F_HCODDIP 6 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAB1->CODDIP + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QB1F_CODDIP 6 +BEGIN + PROMPT 1 8 "@bCodice " + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QB1F_CODDITTA)) + INPUT CODDITTA QB1F_CODDITTA + INPUT CODIP QB1F_CODDIP + DISPLAY "Codice " CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QB1F_CODDIP CODIP + OUTPUT QB1F_COGNOME COGNOME + OUTPUT QB1F_NOME NOME + ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" + MESSAGE COPY, QB1F_HCODDIP +END + +STRING QB1F_COGNOME 24 +BEGIN + PROMPT 25 8 "" + FLAGS "D" +END + +STRING QB1F_NOME 20 +BEGIN + PROMPT 49 8 "" + FLAGS "D" +END + +NUMBER QB1F_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + USE LF_QUAB1 KEY 1 SELECT ((CODDITTA=#QB1F_CODDITTA)) + JOIN LF_DIPEND KEY 1 INTO CODIP=CODDIP + INPUT CODDITTA QB1F_CODDITTA + INPUT CODDIP QB1F_CODDIP + INPUT NPROG QB1F_NPROG + DISPLAY "Codice@10" CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@4" NPROG + OUTPUT QB1F_CODDIP CODDIP + OUTPUT QB1F_NPROG NPROG + FIELD LF_QUAB1->NPROG + KEY 1 +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qb1b.uml b/m770/77qb1b.uml new file mode 100755 index 000000000..d7ef1b6a3 --- /dev/null +++ b/m770/77qb1b.uml @@ -0,0 +1,212 @@ +// Quadro B-1 +#include "77qb1.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - QUADRO B1" -1 -1 78 18 + +NUMBER QB1F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRDH" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QB1F_CODDITTA + FIELD LF_QUAB1->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QB1F_CODDIP 5 +BEGIN + PROMPT 17 1 "" + USE LF_DIPEND KEY 1 + FIELD LF_QUAB1->CODDIP + INPUT CODDITTA QB1F_CODDITTA + INPUT CODIP QB1F_CODDIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QB1F_COGNOME COGNOME + OUTPUT QB1F_NOME NOME + CHECKTYPE REQUIRED + FLAGS "DG" + KEY 1 +END + +STRING QB1F_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" +END + +STRING QB1F_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" +END + +NUMBER QB1F_NPROG 4 +BEGIN + PROMPT 72 1 "" + FIELD LF_QUAB1->NPROG + FLAGS "DG" + KEY 1 +END + +NUMBER QB1F_INDEN 15 +BEGIN + PROMPT 1 6 "11 Ammontare indennita' di anzianita' di previdenza " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB1->INDEN +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bImposta di ricchezza mobile " +END + +GROUPBOX DLG_NULL 78 7 +BEGIN + PROMPT 1 7 "" +END + +#define COL1 3 +#define COL2 33 +#define COL3 60 + +TEXT DLG_NULL +BEGIN + PROMPT COL1 8 "12 Ammontare impon. " +END + +NUMBER QB1F_AMMIMP 15 +BEGIN + PROMPT COL1 9 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB1->AMMIMP +END + +TEXT DLG_NULL +BEGIN + PROMPT COL2 8 "13 Imponibile 4%" +END + +NUMBER QB1F_IMP4 15 +BEGIN + PROMPT COL2 9 "" + FIELD LF_QUAB1->IMP4 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL3 8 "14 Imponibile 8% " +END + +NUMBER QB1F_IMP8 15 +BEGIN + PROMPT COL3 9 "" + FIELD LF_QUAB1->IMP8 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL1 10 "15 Imponibile 10% " +END + +NUMBER QB1F_IMP10 15 +BEGIN + PROMPT COL1 11 "" + FIELD LF_QUAB1->IMP10 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL2 10 "16 Imponibile 12% " +END + +NUMBER QB1F_IMP12 15 +BEGIN + PROMPT COL2 11 "" + FIELD LF_QUAB1->IMP12 + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL3 10 "17 Imponibile 15% " +END + +NUMBER QB1F_IMP15 15 +BEGIN + PROMPT COL3 11 "" + FIELD LF_QUAB1->IMP15 + PICTURE "." + FLAGS "R" +END + +NUMBER QB1F_IMPNETTO 15 +BEGIN + PROMPT COL1 12 "18 Amm. impon. (al netto delle rit.di ricchezza mobile) " + FIELD LF_QUAB1->IMPNETTO + PICTURE "." + FLAGS "R" +END + +#define RIGA1 14 +#define RIGA2 15 +#define RIGA3 16 + +TEXT DLG_NULL +BEGIN + PROMPT 1 RIGA1 "@bImposta complementare " +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 RIGA1 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT COL1 RIGA2 "19 Imponibile 1,5%" +END + +NUMBER QB1F_IMPO15 15 +BEGIN + PROMPT COL1 RIGA3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB1->IMPO15 +END + +TEXT DLG_NULL +BEGIN + PROMPT COL2 RIGA2 "20 Imponibile 4%" +END + +NUMBER QB1F_IMPO4 15 +BEGIN + PROMPT COL2 RIGA3 "" + FIELD LF_QUAB1->IMPO4 + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qba.uml b/m770/77qba.uml new file mode 100755 index 000000000..c4a9f021b --- /dev/null +++ b/m770/77qba.uml @@ -0,0 +1,103 @@ +#include "77qb.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - Manutenzione Quadro B" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QBF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA QBF_CODDITTA + OUTPUT QBF_RAGDITTA RAGSOC + FIELD LF_QUAB->CODDITTA +END + +STRING QBF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QBF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati dipendente" +END + +NUMBER QBF_HCODDIP 6 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QBF_CODDIP 6 +BEGIN + PROMPT 1 8 "@bCodice " + USE LF_DIPEND KEY 1 SELECT ((CODDITTA=#QBF_CODDITTA)) + INPUT CODDITTA QBF_CODDITTA + INPUT CODIP QBF_CODDIP + DISPLAY "Codice " CODIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QBF_CODDIP CODIP + OUTPUT QBF_COGNOME COGNOME + OUTPUT QBF_NOME NOME + ADD RUN 773 -1 771150a 45 "Anagrafica dipendenti" + MESSAGE COPY,QBF_HCODDIP +END + +STRING QBF_COGNOME 24 +BEGIN + PROMPT 25 8 "" + FLAGS "D" +END + +STRING QBF_NOME 20 +BEGIN + PROMPT 49 8 "" + FLAGS "D" +END + +NUMBER QBF_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + USE LF_QUAB KEY 1 SELECT ((CODDITTA=#QBF_CODDITTA)) + JOIN LF_DIPEND KEY 1 INTO CODIP=CODDIP + INPUT CODDITTA QBF_CODDITTA + INPUT CODDIP QBF_CODDIP + INPUT NPROG QBF_NPROG + DISPLAY "Codice@10" CODDIP + DISPLAY "Cognome@24" LF_DIPEND->COGNOME + DISPLAY "Nome@20" LF_DIPEND->NOME + DISPLAY "N°@4" NPROG + OUTPUT QBF_CODDIP CODDIP + OUTPUT QBF_COGNOME COGNOME + OUTPUT QBF_NOME NOME + OUTPUT QBF_NPROG NPROG + FIELD LF_QUAB->NPROG + CHECKTYPE REQUIRED + KEY 1 +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qbb.uml b/m770/77qbb.uml new file mode 100755 index 000000000..bdd581380 --- /dev/null +++ b/m770/77qbb.uml @@ -0,0 +1,710 @@ +// Quadro B +#include "77qb.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - QUADRO B" -1 -1 78 18 + +NUMBER QBF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "H" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QBF_CODDITTA + FIELD LF_QUAB->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 1 "@bDipendente" +END + +NUMBER QBF_CODDIP 5 +BEGIN + PROMPT 17 1 "" + USE LF_DIPEND KEY 1 + FIELD LF_QUAB->CODDIP + INPUT CODDITTA QBF_CODDITTA + INPUT CODIP QBF_CODDIP + DISPLAY "Cognome@24" COGNOME + DISPLAY "Nome@20" NOME + OUTPUT QBF_COGNOME COGNOME + OUTPUT QBF_NOME NOME + CHECKTYPE REQUIRED + FLAGS "DG" + KEY 1 +END + +STRING QBF_COGNOME 24 +BEGIN + PROMPT 25 1 "" + FLAGS "DG" +END + +STRING QBF_NOME 20 +BEGIN + PROMPT 49 1 "" + FLAGS "DG" +END + +NUMBER QBF_NPROG 4 +BEGIN + PROMPT 72 1 "" + FIELD LF_QUAB->NPROG + FLAGS "DG" + KEY 1 +END + +GROUPBOX DLG_NULL 25 4 +BEGIN + PROMPT 0 4 "Rapporto di lavoro " +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 5 "11 Inizio" +END + +DATE QBF_DATAINI +BEGIN + PROMPT 1 6 "" + FIELD LF_QUAB->DATAINI + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 13 5 "12 Cessaz." +END + +DATE QBF_DATAFIN +BEGIN + PROMPT 13 6 "" + FIELD LF_QUAB->DATAFIN + GROUP GROUP_ALL +END + +#define COLCOMM 27 +#define COLCOMM1 28 +#define COLCOMM6 34 + +TEXT DLG_NULL +BEGIN + PROMPT COLCOMM 3 "13 Periodo " +END + +GROUPBOX DLG_NULL 14 4 +BEGIN + PROMPT COLCOMM 4 "commisurazione " +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCOMM1 5 "Anni" +END + +NUMBER QBF_ANNICOMM 2 +BEGIN + PROMPT COLCOMM1 6 "" + FIELD LF_QUAB->ANNICOMM + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCOMM6 5 "Mesi" +END + +NUMBER QBF_MESICOMM 2 +BEGIN + PROMPT COLCOMM6 6 "" + FIELD LF_QUAB->MESICOMM + GROUP GROUP_ALL +END + +#define COLCONV 43 +#define COLCONV1 44 +#define COLCONV6 51 + +TEXT DLG_NULL +BEGIN + PROMPT COLCONV 3 "14 Periodo " +END + +GROUPBOX DLG_NULL 14 4 +BEGIN + PROMPT COLCONV 4 "convenzionale " +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCONV1 5 "Anni" +END + +NUMBER QBF_ANNICONV 2 +BEGIN + PROMPT COLCONV1 6 "" + FIELD LF_QUAB->ANNICONV + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLCONV6 5 "Mesi" +END + +NUMBER QBF_MESICONV 2 +BEGIN + PROMPT COLCONV6 6 "" + FIELD LF_QUAB->MESICONV + GROUP GROUP_ALL +END + +#define COLPAR0 58 +#define COLPAR1 59 +#define COLPAR2 64 +#define COLPAR3 69 + +GROUPBOX DLG_NULL 20 4 +BEGIN + PROMPT COLPAR0 4 "15 Tempo parziale" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLPAR1 5 "Anni" +END + +NUMBER QBF_ANNIPARZ 2 +BEGIN + PROMPT COLPAR1 6 "" + FIELD LF_QUAB->ANNIPARZ + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLPAR2 5 "Mesi" +END + +NUMBER QBF_MESIPARZ 2 +BEGIN + PROMPT COLPAR2 6 "" + FIELD LF_QUAB->MESIPARZ + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLPAR3 5 " %" +END + +NUMBER QBF_PERCPARZ 6 +BEGIN + PROMPT COLPAR3 6 "" + FIELD LF_QUAB->PERCPARZ + PICTURE ".2" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 8 "16 Quota eccedente" +END + +NUMBER QBF_QUOTAECC 15 +BEGIN + PROMPT 1 9 "" + FIELD LF_QUAB->QUOTAECC + FLAGS "R" + PICTURE "." + GROUP GROUP_ALL +END + +#define COLTFR0 25 +#define COLTFR1 26 +#define COLTFR2 35 //27 +#define COLTFR3 49 //33 +#define COLTFR4 59 //40 + +#define RIGTFR1 9 +#define RIGTFR2 10 + +GROUPBOX DLG_NULL 53 4 +BEGIN + PROMPT COLTFR0 8 "TFR o ind.equip. corrisposti nel 1994 " +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR1 RIGTFR1 "17 Mese" +END + +NUMBER QBF_MESEEROG 2 +BEGIN + PROMPT 28 RIGTFR2 "" + NUM_EXPR {(#THIS>=0) && (#THIS<13)} + WARNING "Mese non valido" + FIELD LF_QUAB->MESEEROG + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR2 RIGTFR1 "18 Titolo" +END + +STRING QBF_TITEROG 1 +BEGIN + PROMPT 39 RIGTFR2 "" + SHEET "Codice|Descrizione@15" + INPUT QBF_TITEROG + ITEM "|" + ITEM "A|Anticipazione" + ITEM "B|Saldo" + ITEM "C|Acconto" + OUTPUT QBF_TITEROG + FIELD LF_QUAB->TITEROG + FLAGS "U" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR3 RIGTFR1 "19 % abb." +END + +NUMBER QBF_PERCABB 6 +BEGIN + PROMPT COLTFR3 RIGTFR2 "" + FIELD LF_QUAB->PERCABB + PICTURE ".2" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFR4 RIGTFR1 "20 Ammontare netto" +END + +NUMBER QBF_AMMNETTO 15 +BEGIN + PROMPT COLTFR4 RIGTFR2 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->AMMNETTO + GROUP GROUP_ALL +END + +#define COLTFRB0 2 +#define COLTFRB1 2 +#define COLTFRB2 7 +#define COLTFRB3 14 +#define COLTFRB4 22 + +#define RIGTFRB0 14 +#define RIGTFRB1 15 +#define RIGTFRB2 16 + +GROUPBOX DLG_NULL 38 6 +BEGIN + PROMPT 1 13 "Altre indennità corrisposte nel 1994" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB1 RIGTFRB0 "21" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB1 RIGTFRB1 "Mese" +END + + +NUMBER QBF_MESEEROG2 2 +BEGIN + PROMPT COLTFRB1 RIGTFRB2 "" + FIELD LF_QUAB->MESEEROG2 + NUM_EXPR {(#THIS>=0) && (#THIS<13)} + WARNING "Mese non valido" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB2 RIGTFRB0 "22" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB2 RIGTFRB1 "Titolo" +END + +STRING QBF_TITEROG2 1 +BEGIN + PROMPT /*COLTFR2*/ 8 RIGTFRB2 "" + SHEET "Codice|Descrizione@15" + INPUT QBF_TITEROG2 + ITEM "|" + ITEM "A|Anticipazione" + ITEM "B|Saldo" + ITEM "C|Acconto" + OUTPUT QBF_TITEROG2 + FIELD LF_QUAB->TITEROG2 + FLAGS "U" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB3 RIGTFRB0 "23" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB3 RIGTFRB1 "% abb." +END + +NUMBER QBF_PERCABB2 6 +BEGIN + PROMPT COLTFRB3 RIGTFRB2 "" + FIELD LF_QUAB->PERCABB2 + PICTURE ".2" + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB4 RIGTFRB0 "24" +END + +TEXT DLG_NULL +BEGIN + PROMPT COLTFRB4 RIGTFRB1 "Ammontare netto" +END + +NUMBER QBF_AMMNETTO2 15 +BEGIN + PROMPT COLTFRB4 RIGTFRB2 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->AMMNETTO2 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 45 RIGTFRB1 "25 Contr. obbligatori a carico" +END + +NUMBER QBF_CONTLAV 15 +BEGIN + PROMPT 45 RIGTFRB2 "del lavoratore " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->CONTLAV + GROUP GROUP_ALL +END + +ENDPAGE + +PAGE "MODULO 770 - QUADRO B" -1 -1 78 18 + +#define C1 2 +#define C2 22 +#define C3 57 + +GROUPBOX DLG_NULL 41 4 +BEGIN + PROMPT 1 1 "Acconti e anticipazioni erogati dal 74 al 93" +END + +TEXT DLG_NULL +BEGIN + PROMPT C1 2 "26 TFR ind.equi." +END + +NUMBER QBF_TFR7494 15 +BEGIN + PROMPT C1 3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TFR7494 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C2 2 "27 Altre inden." +END + +NUMBER QBF_INDEN7494 15 +BEGIN + PROMPT C2 3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->INDEN7494 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C3 2 "28 Tot.indennità" +END + +NUMBER QBF_TIND7494 15 +BEGIN + PROMPT C3 3 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TIND7494 + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C1 5 "29 Tot.riduzioni" +END + +NUMBER QBF_TRID 15 +BEGIN + PROMPT C1 6 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TRID + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 30 5 "30 TFR o inden. equipollenti" +END + +NUMBER QBF_TFRIND 15 +BEGIN + PROMPT 30 6 "per reddito di riferimento " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TFRIND + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT C1 7 "31 Aliq." +END + +NUMBER QBF_ALIQUOTA 6 +BEGIN + PROMPT C1 8 "" + FIELD LF_QUAB->ALIQUOTA + PICTURE ".2" + GROUP GROUP_ALL +END + +#define GD0 24 //11 +#define GD1 25 //12 +#define GD2 64 //51 + +GROUPBOX DLG_NULL 49 4 +BEGIN + PROMPT GD0 7 "Art.4 3° comma L.482/1985" +END + +TEXT DLG_NULL +BEGIN + PROMPT GD1 8 "32 Retrib. media " +END + +NUMBER QBF_RETRMEDIA 15 +BEGIN + PROMPT GD1 9 "biennio precedente " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->RETRMEDIA + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT GD2 8 "33 Aliq." +END + +NUMBER QBF_ALIQUOTA2 6 +BEGIN + PROMPT GD2 9 "" + FIELD LF_QUAB->ALIQUOTA2 + PICTURE ".2" + GROUP GROUP_ALL +END + +// QUARTA RIGA +TEXT DLG_NULL +BEGIN + PROMPT 1 11 "34 Impon. TFR " +END + +NUMBER QBF_IMPTFR 15 +BEGIN + PROMPT 1 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPTFR + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 11 "35 Imp.altre ind." +END + +NUMBER QBF_IMPIND 15 +BEGIN + PROMPT 19 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPIND + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 37 11 "36 Impon. anno " +END + +NUMBER QBF_IMPANNO 15 +BEGIN + PROMPT 37 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPANNO + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 54 11 "37 Totale reddito impon. " +END + +NUMBER QBF_TOTIMP 15 +BEGIN + PROMPT 57 12 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->TOTIMP + GROUP GROUP_ALL +END + +// QUINTA RIGA +TEXT DLG_NULL +BEGIN + PROMPT 1 13 "38 Rit. operate su acc.ant. erogati " +END + +NUMBER QBF_ROPEACC 15 +BEGIN + PROMPT 1 14 "dal 74 al 93 " + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->ROPEACC + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 37 13 "39 Impos. dov." +END + +NUMBER QBF_IMPDOV 15 +BEGIN + PROMPT 37 14 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPDOV + GROUP GROUP_ALL +END + +TEXT DLG_NULL +BEGIN + PROMPT 57 13 "40 Ritenute in ecced." +END + +NUMBER QBF_RITECC 15 +BEGIN + PROMPT 57 14 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->RITECC + GROUP GROUP_ALL +END + +// SESTA RIGA +GROUPBOX DLG_NULL 38 4 +BEGIN + PROMPT 1 15 "Art.2122 COD. CIV." +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 16 "41 Quota spett." +END + +NUMBER QBF_QUOTASPET 15 +BEGIN + PROMPT 2 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->QUOTASPET + GROUP GROUP_DIPDEC GROUP_EREDE +END + +TEXT DLG_NULL +BEGIN + PROMPT 19 16 "42 Indennità spett." +END + +NUMBER QBF_INDSPETT 15 +BEGIN + PROMPT 19 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->INDSPETT + GROUP GROUP_DIPDEC GROUP_EREDE +END + +TEXT DLG_NULL +BEGIN + PROMPT 40 16 "43 Rit. operate " +END + +NUMBER QBF_ROPE 15 +BEGIN + PROMPT 40 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->ROPE + GROUP GROUP_EREDE +END + +TEXT DLG_NULL +BEGIN + PROMPT 57 16 "44 Impon. CSSN " +END + +NUMBER QBF_IMPOCSSN 15 +BEGIN + PROMPT 57 17 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAB->IMPOCSSN + GROUP GROUP_ALL +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qc.frm b/m770/77qc.frm new file mode 100755 index 000000000..fc218181e --- /dev/null +++ b/m770/77qc.frm @@ -0,0 +1,419 @@ +USE 61 +JOIN %CA7 TO 61 ALIAS 14 INTO CODTAB=CODCAUS +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR +JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC +JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) +JOIN 6 TO 61 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR +JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC +JOIN 13 TO 218@ ALIAS 413 INTO COM=COMRF(COMRES) +JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES +END + +DESCRIPTION +BEGIN + 61->* "Quadro D 770" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 113@->* "Comuni" + 213@->* "Comuni" + 216@->* "Anagrafica persone fisiche e giuridiche" + 218@->* "Anagrafica persone giuridiche" + 313@->* "Comuni" + 413@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION HEADER FIRST 28 + +STRINGA 1 +BEGIN + KEY "CODICE FISCALE" + PROMPT 4 9 "" + FIELD 116@->COFI +END + +STRINGA 2 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 39 9 "" + FIELD 116@->RAGSOC + GROUP 2 +END + +STRINGA 3 +BEGIN + KEY "COGNOME" + PROMPT 39 9 "" + FIELD 116@->RAGSOC[1,30] + GROUP 1 +END + +STRINGA 4 +BEGIN + KEY "NOME" + PROMPT 17 11 "" + FIELD 116@->RAGSOC[31,50] + GROUP 1 +END + +STRINGA 5 +BEGIN + KEY "SESSO" + PROMPT 58 11 "" + FIELD 118@->SESSO + GROUP 1 +END + +STRINGA 6 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 66 11 "" + FIELD 118@->DATANASC + GROUP 1 +END + +STRINGA 7 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 84 11 "" + FIELD 113@->DENCOM + GROUP 1 +END + +STRINGA 8 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 126 11 "" + FIELD 113@->PROVCOM + GROUP 1 +END + +LISTA 9 +BEGIN + KEY "Tipo anagrafica" + FIELD 116@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 10 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 17 13 "" + FIELD 213@->DENCOM +END + +STRINGA 11 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 59 13 "" + FIELD 213@->PROVCOM +END + +STRINGA 12 +BEGIN + KEY "VIA di RES." + PROMPT 66 13 "" + FIELD 116@->INDRF +END + +STRINGA 13 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 102 13 "" + FIELD 116@->CIVRF +END + +STRINGA 14 +BEGIN + KEY "CAP" + PROMPT 120 13 "" + FIELD 116@->CAPRF +END + +STRINGA 15 +BEGIN + KEY "CODICE FISCALE DICHIARANTE" + PROMPT 118 16 "" +END + +NUMBER 16 +BEGIN + KEY "NUM. FOGLIO" + PROMPT 123 20 "" +END + +END + +SECTION BODY ODD 8 + +LISTA 100 +BEGIN + KEY "Tipo anagrafica" + FIELD 216@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 1 +BEGIN + KEY "COD.FIS" + PROMPT 10 2 "" + FIELD 216@->COFI +END + +STRING 2 +BEGIN + KEY "COGNOME" + PROMPT 42 2 "" + FIELD 216@->RAGSOC[1,30] + GROUP 1 +END + +STRING 3 +BEGIN + KEY "NOME" + PROMPT 81 2 "" + FIELD 216@->RAGSOC[31,50] + GROUP 1 +END + +STRING 102 +BEGIN + KEY "RAGSOC GIURIDICHE" + PROMPT 54 2 "" + FIELD 216@->RAGSOC + GROUP 2 +END + +STRING 4 +BEGIN + KEY "DATA NASCITA" + PROMPT 114 2 "" + FIELD 218@->DATANASC +END + +STRING 5 +BEGIN + KEY "SESSO" + PROMPT 129 2 "" + FIELD 218@->SESSO +END + +STRING 6 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 10 4 "" + FIELD 313@->DENCOM + GROUP 1 +END + +STRING 101 +BEGIN + KEY "COMUNE DI RESIDENZA GIURIDICHE" + PROMPT 10 4 "" + FIELD 413@->DENCOM + GROUP 2 +END + +STRING 7 +BEGIN + KEY "PROV DI NASCITA" + PROMPT 47 4 "" + FIELD 313@->PROVCOM + GROUP 1 +END + +STRING 8 +BEGIN + KEY "COMUNE DI RESIDENZA" + PROMPT 53 4 "" + FIELD 413@->DENCOM + GROUP 1 +END + +STRING 9 +BEGIN + KEY "PROV. RESIDENZA" + PROMPT 88 4 "" + FIELD 413@->PROVCOM +END + +STRING 106 +BEGIN + KEY "PROV. RESIDENZA GIURIDICHE" + PROMPT 61 4 "" + FIELD 413@->PROVCOM + GROUP 2 +END + +STRING 10 +BEGIN + KEY "VIA RES." + PROMPT 94 4 "" + FIELD 216@->INDRES[1,18] + FLAGS "H" + MESSAGE COPY,12|COPY,107 +END + +STRING 11 +BEGIN + KEY "NUM.CIV" + PROMPT 93 4 "" + FLAGS "H" + FIELD 216@->CIVRES + MESSAGE APPEND,12|APPEND,107 +END + +STRING 12 +BEGIN + KEY "VIA RES. + numcivres" + PROMPT 95 4 "" + GROUP 1 +END + +STRING 107 +BEGIN + KEY "VIA RES GIURIDICHE" + PROMPT 69 4 "" + GROUP 2 +END + +STRING 13 +BEGIN + KEY "FLAG I.C." + PROMPT 129 4 "" + FIELD 14@->B1 +END + +STRING 14 +BEGIN + KEY "FLAG DI NON RESIDENTE" + PROMPT 11 6 "" + FIELD 216@->SOGGNRES +END + +STRING 15 +BEGIN + KEY "STATO ESTERO DI RES." + PROMPT 16 6 "" + FIELD 24@->S0 +END + +STRING 16 +BEGIN + KEY "CODICE STATO ESTERO DI RES." + PROMPT 75 6 "" + FIELD 216@->STATORES +END + +STRING 17 +BEGIN + KEY "CODICE FISCALE ESTERO" + PROMPT 89 6 "" + FIELD 216@->COFIEST +END + +STRING 18 +BEGIN + KEY "DESCR. CAUSALE" + PROMPT 10 8 "" + FIELD 14@->S0[1,20] +END + +STRING 19 +BEGIN + KEY "TOTALE" + PROMPT 36 8 "" + FIELD 61->TOTALE + PICTURE "#########^^^" +END + +STRING 20 +BEGIN + KEY "SOMME NON SOGGETTE A RITENUTA" + PROMPT 55 8 "" + FIELD 61->SOMME + PICTURE "#########^^^" +END + +STRING 21 +BEGIN + KEY "IMPONIBILE" + PROMPT 75 8 "" + FIELD 61->IMPONIBILE + PICTURE "#########^^^" +END + +STRING 22 +BEGIN + KEY "ALIQUOTA" + PROMPT 88 8 "" + FIELD 61->PERC + PICTURE "###@@" +END + +STRING 23 +BEGIN + KEY "IMPORTO" + PROMPT 100 8 "" + FIELD 61->IMPORTO + PICTURE "#########^^^" +END + +STRING 24 +BEGIN + KEY "NETTO" + PROMPT 119 8 "" + FIELD 61->NETTO + PICTURE "#########^^^" +END + +END + +SECTION BODY EVEN 2 + +NUMBER 1 +BEGIN + KEY "TOTALE TOTALE" + PROMPT 36 1 "" +END + +NUMBER 2 +BEGIN + KEY "TOTALE SOMME NON SOGGETTE" + PROMPT 55 1 "" +END + +NUMBER 3 +BEGIN + KEY "TOTALE IMPONIBILE" + PROMPT 75 1 "" +END + +NUMBER 4 +BEGIN + KEY "TOTALE IMPORTO" + PROMPT 101 1 "" +END + +NUMBER 5 +BEGIN + KEY "TOTALE NETTO" + PROMPT 120 1 "" +END + +END diff --git a/m770/77qd.frm b/m770/77qd.frm new file mode 100755 index 000000000..a64a49c0a --- /dev/null +++ b/m770/77qd.frm @@ -0,0 +1,419 @@ +USE 62 +JOIN %CA7 TO 62 ALIAS 14 INTO CODTAB=CODCAUS +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR +JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC +JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) +JOIN 6 TO 62 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR +JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC +JOIN 13 TO 218@ ALIAS 413 INTO COM=COMRF(COMRES) +JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES +END + +DESCRIPTION +BEGIN + 62->* "Quadro D 770" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 113@->* "Comuni" + 213@->* "Comuni" + 216@->* "Anagrafica persone fisiche e giuridiche" + 218@->* "Anagrafica persone giuridiche" + 313@->* "Comuni" + 413@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION HEADER FIRST 28 + +STRINGA 1 +BEGIN + KEY "CODICE FISCALE" + PROMPT 4 9 "" + FIELD 116@->COFI +END + +STRINGA 2 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 39 9 "" + FIELD 116@->RAGSOC + GROUP 2 +END + +STRINGA 3 +BEGIN + KEY "COGNOME" + PROMPT 39 9 "" + FIELD 116@->RAGSOC[1,30] + GROUP 1 +END + +STRINGA 4 +BEGIN + KEY "NOME" + PROMPT 17 11 "" + FIELD 116@->RAGSOC[31,50] + GROUP 1 +END + +STRINGA 5 +BEGIN + KEY "SESSO" + PROMPT 58 11 "" + FIELD 118@->SESSO + GROUP 1 +END + +STRINGA 6 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 66 11 "" + FIELD 118@->DATANASC + GROUP 1 +END + +STRINGA 7 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 84 11 "" + FIELD 113@->DENCOM + GROUP 1 +END + +STRINGA 8 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 126 11 "" + FIELD 113@->PROVCOM + GROUP 1 +END + +LISTA 9 +BEGIN + KEY "Tipo anagrafica" + FIELD 116@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 10 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 17 13 "" + FIELD 213@->DENCOM +END + +STRINGA 11 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 59 13 "" + FIELD 213@->PROVCOM +END + +STRINGA 12 +BEGIN + KEY "VIA di RES." + PROMPT 66 13 "" + FIELD 116@->INDRF +END + +STRINGA 13 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 102 13 "" + FIELD 116@->CIVRF +END + +STRINGA 14 +BEGIN + KEY "CAP" + PROMPT 120 13 "" + FIELD 116@->CAPRF +END + +STRINGA 15 +BEGIN + KEY "CODICE FISCALE DICHIARANTE" + PROMPT 118 16 "" +END + +NUMBER 16 +BEGIN + KEY "NUM. FOGLIO" + PROMPT 123 20 "" +END + +END + +SECTION BODY ODD 8 + +LISTA 100 +BEGIN + KEY "Tipo anagrafica" + FIELD 216@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 1 +BEGIN + KEY "COD.FIS" + PROMPT 10 2 "" + FIELD 216@->COFI +END + +STRING 2 +BEGIN + KEY "COGNOME" + PROMPT 42 2 "" + FIELD 216@->RAGSOC[1,30] + GROUP 1 +END + +STRING 3 +BEGIN + KEY "NOME" + PROMPT 81 2 "" + FIELD 216@->RAGSOC[31,50] + GROUP 1 +END + +STRING 102 +BEGIN + KEY "RAGSOC GIURIDICHE" + PROMPT 54 2 "" + FIELD 216@->RAGSOC + GROUP 2 +END + +STRING 4 +BEGIN + KEY "DATA NASCITA" + PROMPT 114 2 "" + FIELD 218@->DATANASC +END + +STRING 5 +BEGIN + KEY "SESSO" + PROMPT 129 2 "" + FIELD 218@->SESSO +END + +STRING 6 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 10 4 "" + FIELD 313@->DENCOM + GROUP 1 +END + +STRING 101 +BEGIN + KEY "COMUNE DI RESIDENZA GIURIDICHE" + PROMPT 10 4 "" + FIELD 413@->DENCOM + GROUP 2 +END + +STRING 7 +BEGIN + KEY "PROV DI NASCITA" + PROMPT 47 4 "" + FIELD 313@->PROVCOM + GROUP 1 +END + +STRING 8 +BEGIN + KEY "COMUNE DI RESIDENZA" + PROMPT 53 4 "" + FIELD 413@->DENCOM + GROUP 1 +END + +STRING 9 +BEGIN + KEY "PROV. RESIDENZA" + PROMPT 88 4 "" + FIELD 413@->PROVCOM +END + +STRING 106 +BEGIN + KEY "PROV. RESIDENZA GIURIDICHE" + PROMPT 61 4 "" + FIELD 413@->PROVCOM + GROUP 2 +END + +STRING 10 +BEGIN + KEY "VIA RES." + PROMPT 94 4 "" + FIELD 216@->INDRES[1,18] + FLAGS "H" + MESSAGE COPY,12|COPY,107 +END + +STRING 11 +BEGIN + KEY "NUM.CIV" + PROMPT 93 4 "" + FLAGS "H" + FIELD 216@->CIVRES + MESSAGE APPEND,12|APPEND,107 +END + +STRING 12 +BEGIN + KEY "VIA RES. + numcivres" + PROMPT 95 4 "" + GROUP 1 +END + +STRING 107 +BEGIN + KEY "VIA RES GIURIDICHE" + PROMPT 69 4 "" + GROUP 2 +END + +STRING 13 +BEGIN + KEY "FLAG I.C." + PROMPT 129 4 "" + FIELD 14@->B1 +END + +STRING 14 +BEGIN + KEY "FLAG DI NON RESIDENTE" + PROMPT 11 6 "" + FIELD 216@->SOGGNRES +END + +STRING 15 +BEGIN + KEY "STATO ESTERO DI RES." + PROMPT 16 6 "" + FIELD 24@->S0 +END + +STRING 16 +BEGIN + KEY "CODICE STATO ESTERO DI RES." + PROMPT 75 6 "" + FIELD 216@->STATORES +END + +STRING 17 +BEGIN + KEY "CODICE FISCALE ESTERO" + PROMPT 89 6 "" + FIELD 216@->COFIEST +END + +STRING 18 +BEGIN + KEY "DESCR. CAUSALE" + PROMPT 10 8 "" + FIELD 14@->S0[1,20] +END + +STRING 19 +BEGIN + KEY "TOTALE" + PROMPT 36 8 "" + FIELD 62->TOTALE + PICTURE "#########^^^" +END + +STRING 20 +BEGIN + KEY "SOMME NON SOGGETTE A RITENUTA" + PROMPT 55 8 "" + FIELD 62->SOMME + PICTURE "#########^^^" +END + +STRING 21 +BEGIN + KEY "IMPONIBILE" + PROMPT 75 8 "" + FIELD 62->IMPONIBILE + PICTURE "#########^^^" +END + +STRING 22 +BEGIN + KEY "ALIQUOTA" + PROMPT 88 8 "" + FIELD 62->PERC + PICTURE "###@@" +END + +STRING 23 +BEGIN + KEY "IMPORTO" + PROMPT 100 8 "" + FIELD 62->IMPORTO + PICTURE "#########^^^" +END + +STRING 24 +BEGIN + KEY "NETTO" + PROMPT 119 8 "" + FIELD 62->NETTO + PICTURE "#########^^^" +END + +END + +SECTION BODY EVEN 2 + +NUMBER 1 +BEGIN + KEY "TOTALE TOTALE" + PROMPT 36 1 "" +END + +NUMBER 2 +BEGIN + KEY "TOTALE SOMME NON SOGGETTE" + PROMPT 55 1 "" +END + +NUMBER 3 +BEGIN + KEY "TOTALE IMPONIBILE" + PROMPT 75 1 "" +END + +NUMBER 4 +BEGIN + KEY "TOTALE IMPORTO" + PROMPT 101 1 "" +END + +NUMBER 5 +BEGIN + KEY "TOTALE NETTO" + PROMPT 120 1 "" +END + +END diff --git a/m770/77qd1.frm b/m770/77qd1.frm new file mode 100755 index 000000000..3b9ca7517 --- /dev/null +++ b/m770/77qd1.frm @@ -0,0 +1,427 @@ +USE 63 +JOIN %CA7 TO 63 ALIAS 14 INTO CODTAB=CODCAUS +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR +JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC +JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) +JOIN 6 TO 63 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR +JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC +JOIN 13 TO 218@ ALIAS 413 INTO COM=COMRF(COMRES) +JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES +END + +DESCRIPTION +BEGIN + 63->* "Quadro D 770" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 113@->* "Comuni" + 213@->* "Comuni" + 216@->* "Anagrafica persone fisiche e giuridiche" + 218@->* "Anagrafica persone giuridiche" + 313@->* "Comuni" + 413@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION HEADER FIRST 28 + +STRINGA 1 +BEGIN + KEY "CODICE FISCALE" + PROMPT 4 9 "" + FIELD 116@->COFI +END + +STRINGA 2 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 39 9 "" + FIELD 116@->RAGSOC + GROUP 2 +END + +STRINGA 3 +BEGIN + KEY "COGNOME" + PROMPT 39 9 "" + FIELD 116@->RAGSOC[1,30] + GROUP 1 +END + +STRINGA 4 +BEGIN + KEY "NOME" + PROMPT 17 11 "" + FIELD 116@->RAGSOC[31,50] + GROUP 1 +END + +STRINGA 5 +BEGIN + KEY "SESSO" + PROMPT 58 11 "" + FIELD 118@->SESSO + GROUP 1 +END + +STRINGA 6 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 66 11 "" + FIELD 118@->DATANASC + GROUP 1 +END + +STRINGA 7 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 84 11 "" + FIELD 113@->DENCOM + GROUP 1 +END + +STRINGA 8 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 126 11 "" + FIELD 113@->PROVCOM + GROUP 1 +END + +LISTA 9 +BEGIN + KEY "Tipo anagrafica" + FIELD 116@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 10 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 17 13 "" + FIELD 213@->DENCOM +END + +STRINGA 11 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 59 13 "" + FIELD 213@->PROVCOM +END + +STRINGA 12 +BEGIN + KEY "VIA di RES." + PROMPT 66 13 "" + FIELD 116@->INDRF +END + +STRINGA 13 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 102 13 "" + FIELD 116@->CIVRF +END + +STRINGA 14 +BEGIN + KEY "CAP" + PROMPT 120 13 "" + FIELD 116@->CAPRF +END + +STRINGA 15 +BEGIN + KEY "CODICE FISCALE DICHIARANTE" + PROMPT 118 16 "" +END + +NUMBER 16 +BEGIN + KEY "NUM. FOGLIO" + PROMPT 123 20 "" +END + +END + +SECTION BODY ODD 8 + +LISTA 100 +BEGIN + KEY "Tipo anagrafica" + FIELD 216@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 1 +BEGIN + KEY "COD.FIS" + PROMPT 10 2 "" + FIELD 216@->COFI +END + +STRING 2 +BEGIN + KEY "COGNOME" + PROMPT 42 2 "" + FIELD 216@->RAGSOC[1,30] + GROUP 1 +END + +STRING 3 +BEGIN + KEY "NOME" + PROMPT 81 2 "" + FIELD 216@->RAGSOC[31,50] + GROUP 1 +END + +STRING 102 +BEGIN + KEY "RAGSOC GIURIDICHE" + PROMPT 54 2 "" + FIELD 216@->RAGSOC + GROUP 2 +END + +STRING 4 +BEGIN + KEY "DATA NASCITA" + PROMPT 114 2 "" + FIELD 218@->DATANASC +END + +STRING 5 +BEGIN + KEY "SESSO" + PROMPT 129 2 "" + FIELD 218@->SESSO +END + +STRING 6 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 10 4 "" + FIELD 313@->DENCOM + GROUP 1 +END + +STRING 101 +BEGIN + KEY "COMUNE DI RESIDENZA GIURIDICHE" + PROMPT 10 4 "" + FIELD 413@->DENCOM + GROUP 2 +END + +STRING 7 +BEGIN + KEY "PROV DI NASCITA" + PROMPT 47 4 "" + FIELD 313@->PROVCOM + GROUP 1 +END + +STRING 8 +BEGIN + KEY "COMUNE DI RESIDENZA" + PROMPT 53 4 "" + FIELD 413@->DENCOM + GROUP 1 +END + +STRING 9 +BEGIN + KEY "PROV. RESIDENZA" + PROMPT 88 4 "" + FIELD 413@->PROVCOM +END + +STRING 106 +BEGIN + KEY "PROV. RESIDENZA GIURIDICHE" + PROMPT 61 4 "" + FIELD 413@->PROVCOM + GROUP 2 +END + +STRING 10 +BEGIN + KEY "VIA RES." + PROMPT 94 4 "" + FIELD 216@->INDRES[1,18] + FLAGS "H" + MESSAGE COPY,12|COPY,107 +END + +STRING 11 +BEGIN + KEY "NUM.CIV" + PROMPT 93 4 "" + FLAGS "H" + FIELD 216@->CIVRES + MESSAGE APPEND,12|APPEND,107 +END + +STRING 12 +BEGIN + KEY "VIA RES. + numcivres" + PROMPT 95 4 "" + GROUP 1 +END + +STRING 107 +BEGIN + KEY "VIA RES GIURIDICHE" + PROMPT 69 4 "" + GROUP 2 +END + +STRING 13 +BEGIN + KEY "FLAG I.C." + PROMPT 129 4 "" + FIELD 14@->B1 +END + +STRING 14 +BEGIN + KEY "FLAG DI NON RESIDENTE" + PROMPT 11 6 "" + FIELD 216@->SOGGNRES +END + +STRING 15 +BEGIN + KEY "STATO ESTERO DI RES." + PROMPT 16 6 "" + FIELD 24@->S0 +END + +STRING 16 +BEGIN + KEY "CODICE STATO ESTERO DI RES." + PROMPT 75 6 "" + FIELD 216@->STATORES +END + +STRING 17 +BEGIN + KEY "CODICE FISCALE ESTERO" + PROMPT 89 6 "" + FIELD 216@->COFIEST +END + +STRING 18 +BEGIN + KEY "DESCR. CAUSALE" + PROMPT 10 8 "" + FIELD 14@->S0[1,20] +END + +STRING 19 +BEGIN + KEY "TOTALE" + PROMPT 36 8 "" + FIELD 63->TOTALE + PICTURE "#########^^^" +END + +STRING 20 +BEGIN + KEY "QUOTA PROVVIGIONI" + PROMPT 55 8 "" + FIELD 63->QUOTAPRO + PICTURE "#########^^^" +END + +STRING 21 +BEGIN + KEY "SPESE ANTICIPATE" + PROMPT 65 8 "" + FIELD 63->SPESEANT + PICTURE "#########^^^" +END + +STRING 22 +BEGIN + KEY "IMPONIBILE" + PROMPT 75 8 "" + FIELD 63->IMPONIBILE + PICTURE "#########^^^" +END + +STRING 23 +BEGIN + KEY "ALIQUOTA" + PROMPT 88 8 "" + FIELD 63->PERC + PICTURE "###@@" +END + +STRING 24 +BEGIN + KEY "IMPORTO" + PROMPT 100 8 "" + FIELD 63->IMPORTO + PICTURE "#########^^^" +END + +STRING 25 +BEGIN + KEY "NETTO" + PROMPT 119 8 "" + FIELD 63->NETTO + PICTURE "#########^^^" +END + +END + +SECTION BODY EVEN 2 + +NUMBER 1 +BEGIN + KEY "TOTALE TOTALE" + PROMPT 36 1 "" +END + +NUMBER 2 +BEGIN + KEY "TOTALE SOMME NON SOGGETTE" + PROMPT 55 1 "" +END + +NUMBER 3 +BEGIN + KEY "TOTALE IMPONIBILE" + PROMPT 75 1 "" +END + +NUMBER 4 +BEGIN + KEY "TOTALE IMPORTO" + PROMPT 101 1 "" +END + +NUMBER 5 +BEGIN + KEY "TOTALE NETTO" + PROMPT 120 1 "" +END + +END diff --git a/m770/77qe.frm b/m770/77qe.frm new file mode 100755 index 000000000..5ef1c1938 --- /dev/null +++ b/m770/77qe.frm @@ -0,0 +1,419 @@ +USE 64 +JOIN %CA7 TO 64 ALIAS 14 INTO CODTAB=CODCAUS +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR +JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC +JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) +JOIN 6 TO 64 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR +JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC +JOIN 13 TO 218@ ALIAS 413 INTO COM=COMRF(COMRES) +JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES +END + +DESCRIPTION +BEGIN + 64->* "Quadro D 770" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 113@->* "Comuni" + 213@->* "Comuni" + 216@->* "Anagrafica persone fisiche e giuridiche" + 218@->* "Anagrafica persone giuridiche" + 313@->* "Comuni" + 413@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION HEADER FIRST 28 + +STRINGA 1 +BEGIN + KEY "CODICE FISCALE" + PROMPT 4 9 "" + FIELD 116@->COFI +END + +STRINGA 2 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 39 9 "" + FIELD 116@->RAGSOC + GROUP 2 +END + +STRINGA 3 +BEGIN + KEY "COGNOME" + PROMPT 39 9 "" + FIELD 116@->RAGSOC[1,30] + GROUP 1 +END + +STRINGA 4 +BEGIN + KEY "NOME" + PROMPT 17 11 "" + FIELD 116@->RAGSOC[31,50] + GROUP 1 +END + +STRINGA 5 +BEGIN + KEY "SESSO" + PROMPT 58 11 "" + FIELD 118@->SESSO + GROUP 1 +END + +STRINGA 6 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 66 11 "" + FIELD 118@->DATANASC + GROUP 1 +END + +STRINGA 7 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 84 11 "" + FIELD 113@->DENCOM + GROUP 1 +END + +STRINGA 8 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 126 11 "" + FIELD 113@->PROVCOM + GROUP 1 +END + +LISTA 9 +BEGIN + KEY "Tipo anagrafica" + FIELD 116@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 10 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 17 13 "" + FIELD 213@->DENCOM +END + +STRINGA 11 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 59 13 "" + FIELD 213@->PROVCOM +END + +STRINGA 12 +BEGIN + KEY "VIA di RES." + PROMPT 66 13 "" + FIELD 116@->INDRF +END + +STRINGA 13 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 102 13 "" + FIELD 116@->CIVRF +END + +STRINGA 14 +BEGIN + KEY "CAP" + PROMPT 120 13 "" + FIELD 116@->CAPRF +END + +STRINGA 15 +BEGIN + KEY "CODICE FISCALE DICHIARANTE" + PROMPT 118 16 "" +END + +NUMBER 16 +BEGIN + KEY "NUM. FOGLIO" + PROMPT 123 20 "" +END + +END + +SECTION BODY ODD 8 + +LISTA 100 +BEGIN + KEY "Tipo anagrafica" + FIELD 216@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 1 +BEGIN + KEY "COD.FIS" + PROMPT 10 2 "" + FIELD 216@->COFI +END + +STRING 2 +BEGIN + KEY "COGNOME" + PROMPT 42 2 "" + FIELD 216@->RAGSOC[1,30] + GROUP 1 +END + +STRING 3 +BEGIN + KEY "NOME" + PROMPT 81 2 "" + FIELD 216@->RAGSOC[31,50] + GROUP 1 +END + +STRING 102 +BEGIN + KEY "RAGSOC GIURIDICHE" + PROMPT 54 2 "" + FIELD 216@->RAGSOC + GROUP 2 +END + +STRING 4 +BEGIN + KEY "DATA NASCITA" + PROMPT 114 2 "" + FIELD 218@->DATANASC +END + +STRING 5 +BEGIN + KEY "SESSO" + PROMPT 129 2 "" + FIELD 218@->SESSO +END + +STRING 6 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 10 4 "" + FIELD 313@->DENCOM + GROUP 1 +END + +STRING 101 +BEGIN + KEY "COMUNE DI RESIDENZA GIURIDICHE" + PROMPT 10 4 "" + FIELD 413@->DENCOM + GROUP 2 +END + +STRING 7 +BEGIN + KEY "PROV DI NASCITA" + PROMPT 47 4 "" + FIELD 313@->PROVCOM + GROUP 1 +END + +STRING 8 +BEGIN + KEY "COMUNE DI RESIDENZA" + PROMPT 53 4 "" + FIELD 413@->DENCOM + GROUP 1 +END + +STRING 9 +BEGIN + KEY "PROV. RESIDENZA" + PROMPT 88 4 "" + FIELD 413@->PROVCOM +END + +STRING 106 +BEGIN + KEY "PROV. RESIDENZA GIURIDICHE" + PROMPT 61 4 "" + FIELD 413@->PROVCOM + GROUP 2 +END + +STRING 10 +BEGIN + KEY "VIA RES." + PROMPT 94 4 "" + FIELD 216@->INDRES[1,18] + FLAGS "H" + MESSAGE COPY,12|COPY,107 +END + +STRING 11 +BEGIN + KEY "NUM.CIV" + PROMPT 93 4 "" + FLAGS "H" + FIELD 216@->CIVRES + MESSAGE APPEND,12|APPEND,107 +END + +STRING 12 +BEGIN + KEY "VIA RES. + numcivres" + PROMPT 95 4 "" + GROUP 1 +END + +STRING 107 +BEGIN + KEY "VIA RES GIURIDICHE" + PROMPT 69 4 "" + GROUP 2 +END + +STRING 13 +BEGIN + KEY "FLAG I.C." + PROMPT 129 4 "" + FIELD 14@->B1 +END + +STRING 14 +BEGIN + KEY "FLAG DI NON RESIDENTE" + PROMPT 11 6 "" + FIELD 216@->SOGGNRES +END + +STRING 15 +BEGIN + KEY "STATO ESTERO DI RES." + PROMPT 16 6 "" + FIELD 24@->S0 +END + +STRING 16 +BEGIN + KEY "CODICE STATO ESTERO DI RES." + PROMPT 75 6 "" + FIELD 216@->STATORES +END + +STRING 17 +BEGIN + KEY "CODICE FISCALE ESTERO" + PROMPT 89 6 "" + FIELD 216@->COFIEST +END + +STRING 18 +BEGIN + KEY "DESCR. CAUSALE" + PROMPT 10 8 "" + FIELD 14@->S0[1,20] +END + +STRING 19 +BEGIN + KEY "TOTALE" + PROMPT 36 8 "" + FIELD 64->TOTALE + PICTURE "#########^^^" +END + +STRING 20 +BEGIN + KEY "SOMME NON SOGGETTE A RITENUTA" + PROMPT 55 8 "" + FIELD 64->SOMME + PICTURE "#########^^^" +END + +STRING 21 +BEGIN + KEY "IMPONIBILE" + PROMPT 75 8 "" + FIELD 64->IMPONIBILE + PICTURE "#########^^^" +END + +STRING 22 +BEGIN + KEY "ALIQUOTA" + PROMPT 88 8 "" + FIELD 64->PERC + PICTURE "###@@" +END + +STRING 23 +BEGIN + KEY "IMPORTO" + PROMPT 100 8 "" + FIELD 64->IMPORTO + PICTURE "#########^^^" +END + +STRING 24 +BEGIN + KEY "NETTO" + PROMPT 119 8 "" + FIELD 64->NETTO + PICTURE "#########^^^" +END + +END + +SECTION BODY EVEN 2 + +NUMBER 1 +BEGIN + KEY "TOTALE TOTALE" + PROMPT 36 1 "" +END + +NUMBER 2 +BEGIN + KEY "TOTALE SOMME NON SOGGETTE" + PROMPT 55 1 "" +END + +NUMBER 3 +BEGIN + KEY "TOTALE IMPONIBILE" + PROMPT 75 1 "" +END + +NUMBER 4 +BEGIN + KEY "TOTALE IMPORTO" + PROMPT 101 1 "" +END + +NUMBER 5 +BEGIN + KEY "TOTALE NETTO" + PROMPT 120 1 "" +END + +END diff --git a/m770/77qe1.frm b/m770/77qe1.frm new file mode 100755 index 000000000..7b556730d --- /dev/null +++ b/m770/77qe1.frm @@ -0,0 +1,419 @@ +USE 65 +JOIN %CA7 TO 65 ALIAS 14 INTO CODTAB=CODCAUS +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR +JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC +JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) +JOIN 6 TO 65 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR +JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC +JOIN 13 TO 218@ ALIAS 413 INTO COM=COMRF(COMRES) +JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES +END + +DESCRIPTION +BEGIN + 65->* "Quadro D 770" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 113@->* "Comuni" + 213@->* "Comuni" + 216@->* "Anagrafica persone fisiche e giuridiche" + 218@->* "Anagrafica persone giuridiche" + 313@->* "Comuni" + 413@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION HEADER FIRST 28 + +STRINGA 1 +BEGIN + KEY "CODICE FISCALE" + PROMPT 4 9 "" + FIELD 116@->COFI +END + +STRINGA 2 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 39 9 "" + FIELD 116@->RAGSOC + GROUP 2 +END + +STRINGA 3 +BEGIN + KEY "COGNOME" + PROMPT 39 9 "" + FIELD 116@->RAGSOC[1,30] + GROUP 1 +END + +STRINGA 4 +BEGIN + KEY "NOME" + PROMPT 17 11 "" + FIELD 116@->RAGSOC[31,50] + GROUP 1 +END + +STRINGA 5 +BEGIN + KEY "SESSO" + PROMPT 58 11 "" + FIELD 118@->SESSO + GROUP 1 +END + +STRINGA 6 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 66 11 "" + FIELD 118@->DATANASC + GROUP 1 +END + +STRINGA 7 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 84 11 "" + FIELD 113@->DENCOM + GROUP 1 +END + +STRINGA 8 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 126 11 "" + FIELD 113@->PROVCOM + GROUP 1 +END + +LISTA 9 +BEGIN + KEY "Tipo anagrafica" + FIELD 116@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 10 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 17 13 "" + FIELD 213@->DENCOM +END + +STRINGA 11 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 59 13 "" + FIELD 213@->PROVCOM +END + +STRINGA 12 +BEGIN + KEY "VIA di RES." + PROMPT 66 13 "" + FIELD 116@->INDRF +END + +STRINGA 13 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 102 13 "" + FIELD 116@->CIVRF +END + +STRINGA 14 +BEGIN + KEY "CAP" + PROMPT 120 13 "" + FIELD 116@->CAPRF +END + +STRINGA 15 +BEGIN + KEY "CODICE FISCALE DICHIARANTE" + PROMPT 118 16 "" +END + +NUMBER 16 +BEGIN + KEY "NUM. FOGLIO" + PROMPT 123 20 "" +END + +END + +SECTION BODY ODD 8 + +LISTA 100 +BEGIN + KEY "Tipo anagrafica" + FIELD 216@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 1 +BEGIN + KEY "COD.FIS" + PROMPT 10 2 "" + FIELD 216@->COFI +END + +STRING 2 +BEGIN + KEY "COGNOME" + PROMPT 42 2 "" + FIELD 216@->RAGSOC[1,30] + GROUP 1 +END + +STRING 3 +BEGIN + KEY "NOME" + PROMPT 81 2 "" + FIELD 216@->RAGSOC[31,50] + GROUP 1 +END + +STRING 102 +BEGIN + KEY "RAGSOC GIURIDICHE" + PROMPT 54 2 "" + FIELD 216@->RAGSOC + GROUP 2 +END + +STRING 4 +BEGIN + KEY "DATA NASCITA" + PROMPT 114 2 "" + FIELD 218@->DATANASC +END + +STRING 5 +BEGIN + KEY "SESSO" + PROMPT 129 2 "" + FIELD 218@->SESSO +END + +STRING 6 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 10 4 "" + FIELD 313@->DENCOM + GROUP 1 +END + +STRING 101 +BEGIN + KEY "COMUNE DI RESIDENZA GIURIDICHE" + PROMPT 10 4 "" + FIELD 413@->DENCOM + GROUP 2 +END + +STRING 7 +BEGIN + KEY "PROV DI NASCITA" + PROMPT 47 4 "" + FIELD 313@->PROVCOM + GROUP 1 +END + +STRING 8 +BEGIN + KEY "COMUNE DI RESIDENZA" + PROMPT 53 4 "" + FIELD 413@->DENCOM + GROUP 1 +END + +STRING 9 +BEGIN + KEY "PROV. RESIDENZA" + PROMPT 88 4 "" + FIELD 413@->PROVCOM +END + +STRING 106 +BEGIN + KEY "PROV. RESIDENZA GIURIDICHE" + PROMPT 61 4 "" + FIELD 413@->PROVCOM + GROUP 2 +END + +STRING 10 +BEGIN + KEY "VIA RES." + PROMPT 94 4 "" + FIELD 216@->INDRES[1,18] + FLAGS "H" + MESSAGE COPY,12|COPY,107 +END + +STRING 11 +BEGIN + KEY "NUM.CIV" + PROMPT 93 4 "" + FLAGS "H" + FIELD 216@->CIVRES + MESSAGE APPEND,12|APPEND,107 +END + +STRING 12 +BEGIN + KEY "VIA RES. + numcivres" + PROMPT 95 4 "" + GROUP 1 +END + +STRING 107 +BEGIN + KEY "VIA RES GIURIDICHE" + PROMPT 69 4 "" + GROUP 2 +END + +STRING 13 +BEGIN + KEY "FLAG I.C." + PROMPT 129 4 "" + FIELD 14@->B1 +END + +STRING 14 +BEGIN + KEY "FLAG DI NON RESIDENTE" + PROMPT 11 6 "" + FIELD 216@->SOGGNRES +END + +STRING 15 +BEGIN + KEY "STATO ESTERO DI RES." + PROMPT 16 6 "" + FIELD 24@->S0 +END + +STRING 16 +BEGIN + KEY "CODICE STATO ESTERO DI RES." + PROMPT 75 6 "" + FIELD 216@->STATORES +END + +STRING 17 +BEGIN + KEY "CODICE FISCALE ESTERO" + PROMPT 89 6 "" + FIELD 216@->COFIEST +END + +STRING 18 +BEGIN + KEY "DESCR. CAUSALE" + PROMPT 10 8 "" + FIELD 14@->S0[1,20] +END + +STRING 19 +BEGIN + KEY "TOTALE" + PROMPT 36 8 "" + FIELD 65->TOTALE + PICTURE "#########^^^" +END + +STRING 20 +BEGIN + KEY "SOMME NON SOGGETTE A RITENUTA" + PROMPT 55 8 "" + FIELD 65->SOMME + PICTURE "#########^^^" +END + +STRING 21 +BEGIN + KEY "IMPONIBILE" + PROMPT 75 8 "" + FIELD 65->IMPONIBILE + PICTURE "#########^^^" +END + +STRING 22 +BEGIN + KEY "ALIQUOTA" + PROMPT 88 8 "" + FIELD 65->PERC + PICTURE "###@@" +END + +STRING 23 +BEGIN + KEY "IMPORTO" + PROMPT 100 8 "" + FIELD 65->IMPORTO + PICTURE "#########^^^" +END + +STRING 24 +BEGIN + KEY "NETTO" + PROMPT 119 8 "" + FIELD 65->NETTO + PICTURE "#########^^^" +END + +END + +SECTION BODY EVEN 2 + +NUMBER 1 +BEGIN + KEY "TOTALE TOTALE" + PROMPT 36 1 "" +END + +NUMBER 2 +BEGIN + KEY "TOTALE SOMME NON SOGGETTE" + PROMPT 55 1 "" +END + +NUMBER 3 +BEGIN + KEY "TOTALE IMPONIBILE" + PROMPT 75 1 "" +END + +NUMBER 4 +BEGIN + KEY "TOTALE IMPORTO" + PROMPT 101 1 "" +END + +NUMBER 5 +BEGIN + KEY "TOTALE NETTO" + PROMPT 120 1 "" +END + +END diff --git a/m770/77qe2a.uml b/m770/77qe2a.uml new file mode 100755 index 000000000..2a2fc40d9 --- /dev/null +++ b/m770/77qe2a.uml @@ -0,0 +1,166 @@ +#include "771230a.h" +TOOLBAR "" 0 20 0 2 +#include "toolbar.h" +ENDPAGE + +PAGE "MODULO 770 - QUADRO E2" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAE2->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati percipiente" +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 8 "" + ITEM "F|Fisica" + MESSAGE COPY,F_TIPOAF + ITEM "G|Giuridica" + MESSAGE COPY,F_TIPOAF + FIELD LF_QUAE2->TIPOA + CHECKTYPE REQUIRED + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 1 9 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "H" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAE2->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGRPERC 5 +BEGIN + PROMPT 15 8 "" + USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRPERC + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRPERC CODANAGR + OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC + MESSAGE COPY, F_CODANAGR + ADD RUN 775 -0 + GROUP 2 +END + +NUMBER F_CODANAGRCOM 5 +BEGIN + PROMPT 15 8 "" + USE LF_ANAG KEY 1 + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRCOM + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + MESSAGE COPY, F_CODANAGR + ADD RUN BA4 -1 + FLAGS "H" + GROUP 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 8 "" + FLAGS "H" +END + +STRING F_RAGSOCCOM 50 +BEGIN + PROMPT 25 8 "" + USE LF_ANAG KEY 2 + INPUT RAGSOC F_RAGSOCCOM + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_TIPOA TIPOA + ADD RUN BA4 -1 + MESSAGE COPY, F_RAGSOC + GROUP 1 +END + +STRING F_RAGSOCPER 50 +BEGIN + PROMPT 25 8 "" + FLAGS "D" + GROUP 2 + MESSAGE COPY, F_RAGSOC +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + CHECKTYPE REQUIRED + KEY 1 + FIELD LF_QUAE2->NPROG + USE LF_QUAE2 + JOIN LF_ANAG TO LF_QUAE2 KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR SELECT + INPUT NPROG F_NPROG + DISPLAY "N°" NPROG + DISPLAY "Tipo" TIPOA + DISPLAY "Codice@10" CODANAGR + //DISPLAY "Ragione@50" LF_ANAG->RAGSOC + DISPLAY "Causale" CODCAUS + DISPLAY "Somme soggette a ritenuta" SOGGRIT + DISPLAY "Aliquota" PERC + DISPLAY "Ritenute@15" ROPE + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_NPROG NPROG +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qe2b.uml b/m770/77qe2b.uml new file mode 100755 index 000000000..a79028360 --- /dev/null +++ b/m770/77qe2b.uml @@ -0,0 +1,172 @@ +#include "771230a.h" +TOOLBAR "" 0 19 0 3 +#include +ENDPAGE + +PAGE "Quadro E2" -1 -1 78 18 + +NUMBER F_CODDITTA 5 +BEGIN + FLAGS "H" + FIELD LF_QUAE2->CODDITTA + KEY 1 +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 3 0 "" + FIELD LF_QUAE2->TIPOA + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "D" + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 3 1 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "HG" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 17 0 "" + FIELD LF_QUAE2->CODANAGR + MESSAGE COPY,F_CODANAGR2 + FLAGS "D" + KEY 1 +END + +NUMBER F_CODANAGR2 5 +BEGIN + USE LF_ANAG KEY 1 + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_RAGSOC2 RAGSOC + CHECKTYPE REQUIRED + FLAGS "HG" +END + +STRING F_RAGSOC2 45 +BEGIN + PROMPT 24 0 "" + FLAGS "D" +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 71 0 "" + FIELD LF_QUAE2->NPROG + FLAGS "D" + KEY 1 +END + +STRING F_CODCAUS 2 +BEGIN + PROMPT 3 3 "Causale " + USE %CA7 SELECT (S1="E2") + INPUT CODTAB F_CODCAUS + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + OUTPUT F_CODCAUS CODTAB + OUTPUT F_CODTRIB I0 + OUTPUT F_DESCRCAUS S0 + OUTPUT F_PERC R0 + CHECKTYPE REQUIRED + FLAGS "Z" + WARNING "Manca la causale" + FIELD LF_QUAE2->CODCAUS + ADD RUN 773 -3 %CA7 +END + +STRING F_DESCRCAUS 60 +BEGIN + PROMPT 17 3 "" + FLAGS "D" +END + +NUMBER F_CODTRIB 4 +BEGIN + PROMPT 11 4 "" + FLAGS "D" +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 8 "Somme soggette r.a." +END + +NUMBER F_IMPONIBILE 15 +BEGIN + PROMPT 5 9 "" + FIELD LF_QUAE2->SOGGRIT + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_PERC +END + +/**************** +TEXT DLG_NULL +BEGIN + PROMPT 38 6 "Amm. compl. premi riscossi" +END + +TEXT DLG_NULL +BEGIN + PROMPT 38 7 "sui quali le ritenute sono" +END + +TEXT DLG_NULL +BEGIN + PROMPT 38 8 "state commisurate" +END + +NUMBER F_IMPONIBILE 15 +BEGIN + PROMPT 38 9 "" + FIELD LF_QUAE1->AMMONTARE + PICTURE "." + FLAGS "R" + MESSAGE K_TAB,F_IMPORTO|K_TAB,F_NETTO +END +*******************************/ + +GROUPBOX DLG_NULL 32 5 +BEGIN + PROMPT 3 11 "@bRitenute operate" +END + +TEXT DLG_NULL +BEGIN + PROMPT 5 13 "Aliquota" +END + +NUMBER F_PERC 6 2 +BEGIN + PROMPT 5 14 "" + FIELD LF_QUAE2->PERC + PICTURE ".2" +END + +TEXT DLG_NULL +BEGIN + PROMPT 16 13 "Ritenute operate" +END + +NUMBER F_IMPORTO 15 +BEGIN + PROMPT 16 14 "" + FIELD LF_QUAE2->ROPE + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + + diff --git a/m770/77qf.frm b/m770/77qf.frm new file mode 100755 index 000000000..4090823da --- /dev/null +++ b/m770/77qf.frm @@ -0,0 +1,863 @@ +USE 67 +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR +JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC +JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) +END + +DESCRIPTION +BEGIN + 67->* "Quadro F 770" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 113@->* "Comuni" + 213@->* "Comuni" + 216@->* "Anagrafica persone fisiche e giuridiche" + 218@->* "Anagrafica persone giuridiche" + 313@->* "Comuni" + 413@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION HEADER FIRST 65 + +STRINGA 1 +BEGIN + KEY "CODICE FISCALE" + PROMPT 4 9 "" + FIELD 116@->COFI +END + +STRINGA 2 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 39 9 "" + FIELD 116@->RAGSOC + GROUP 2 +END + +STRINGA 3 +BEGIN + KEY "COGNOME" + PROMPT 39 9 "" + FIELD 116@->RAGSOC[1,30] + GROUP 1 +END + +STRINGA 4 +BEGIN + KEY "NOME" + PROMPT 17 11 "" + FIELD 116@->RAGSOC[31,50] + GROUP 1 +END + +STRINGA 5 +BEGIN + KEY "SESSO" + PROMPT 58 11 "" + FIELD 118@->SESSO + GROUP 1 +END + +STRINGA 6 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 66 11 "" + FIELD 118@->DATANASC + GROUP 1 +END + +STRINGA 7 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 84 11 "" + FIELD 113@->DENCOM + GROUP 1 +END + +STRINGA 8 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 126 11 "" + FIELD 113@->PROVCOM + GROUP 1 +END + +LISTA 9 +BEGIN + KEY "Tipo anagrafica" + FIELD 116@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 10 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 17 13 "" + FIELD 213@->DENCOM +END + +STRINGA 11 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 59 13 "" + FIELD 213@->PROVCOM +END + +STRINGA 12 +BEGIN + KEY "VIA di RES." + PROMPT 66 13 "" + FIELD 116@->INDRF +END + +STRINGA 13 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 102 13 "" + FIELD 116@->CIVRF +END + +STRINGA 14 +BEGIN + KEY "CAP" + PROMPT 120 13 "" + FIELD 116@->CAPRF +END + +STRINGA 15 +BEGIN + KEY "CODICE FISCALE DICHIARANTE" + PROMPT 118 16 "" +END + + +STRINGA 56 +BEGIN + KEY "Colonna 0 Numero d'ordine" + PROMPT 10 35 "" +END + +STRINGA 57 +BEGIN + KEY "P02" + PROMPT 10 37 "" +END + +STRINGA 58 +BEGIN + KEY "P03" + PROMPT 10 39 "" +END + +STRINGA 59 +BEGIN + KEY "P04" + PROMPT 10 41 "" +END + +STRINGA 60 +BEGIN + KEY "P05" + PROMPT 10 43 "" +END + +STRINGA 61 +BEGIN + KEY "P06" + PROMPT 10 45 "" +END + +STRINGA 62 +BEGIN + KEY "P11 Colonna causale" + PROMPT 18 35 "" +END + +STRINGA 63 +BEGIN + KEY "P12" + PROMPT 18 37 "" +END + +STRINGA 64 +BEGIN + KEY "P13" + PROMPT 18 39 "" +END + +STRINGA 65 +BEGIN + KEY "P14" + PROMPT 18 41 "" +END + +STRINGA 66 +BEGIN + KEY "P15" + PROMPT 18 43 "" +END + +STRINGA 67 +BEGIN + KEY "P16" + PROMPT 18 45 "" +END + +STRINGA 68 +BEGIN + KEY "Colonna 3 - P21" + PROMPT 38 35 "" +END + +STRINGA 69 +BEGIN + KEY "P22" + PROMPT 38 37 "" +END + +STRINGA 70 +BEGIN + KEY "P23" + PROMPT 38 39 "" +END + +STRINGA 71 +BEGIN + KEY "P24" + PROMPT 38 41 "" +END + +STRINGA 72 +BEGIN + KEY "P25" + PROMPT 38 43 "" +END + +STRINGA 73 +BEGIN + KEY "P26" + PROMPT 38 45 "" +END + +STRINGA 74 +BEGIN + KEY "P31" + PROMPT 58 35 "" +END + +STRINGA 75 +BEGIN + KEY "P32" + PROMPT 58 37 "" +END + +STRINGA 76 +BEGIN + KEY "P33" + PROMPT 58 39 "" +END + +STRINGA 77 +BEGIN + KEY "P34" + PROMPT 58 41 "" +END + +STRINGA 78 +BEGIN + KEY "P35" + PROMPT 58 43 "" +END + +STRINGA 79 +BEGIN + KEY "P36" + PROMPT 58 45 "" +END + +STRINGA 80 +BEGIN + KEY "P52" + PROMPT 78 35 "" +END + +STRINGA 81 +BEGIN + KEY "P53" + PROMPT 78 37 "" +END + +STRINGA 82 +BEGIN + KEY "P54" + PROMPT 78 39 "" +END + +STRINGA 83 +BEGIN + KEY "P55" + PROMPT 78 41 "" +END + +STRINGA 84 +BEGIN + KEY "P56" + PROMPT 78 43 "" +END + +STRINGA 85 +BEGIN + KEY "P57" + PROMPT 78 45 "" +END + +STRINGA 86 +BEGIN + KEY "P58" + PROMPT 98 35 "" +END + +STRINGA 87 +BEGIN + KEY "P59" + PROMPT 98 37 "" +END + +STRINGA 88 +BEGIN + KEY "P5-10" + PROMPT 98 39 "" +END + +STRINGA 89 +BEGIN + KEY "P5-11" + PROMPT 98 41 "" +END + +STRINGA 90 +BEGIN + KEY "COLONNA 6 - 1" + PROMPT 98 43 "" +END + +STRINGA 91 +BEGIN + KEY "P62" + PROMPT 98 45 "" +END + +STRINGA 92 +BEGIN + KEY "P63" + PROMPT 118 35 "" +END + +STRINGA 93 +BEGIN + KEY "P64" + PROMPT 118 37 "" +END + +STRINGA 94 +BEGIN + KEY "P65" + PROMPT 118 39 "" +END + +STRINGA 95 +BEGIN + KEY "P66" + PROMPT 118 41 "" +END + +STRINGA 96 +BEGIN + KEY "P67" + PROMPT 118 43 "" +END + +STRINGA 97 +BEGIN + KEY "P68" + PROMPT 118 45 "" +END + +STRINGA 98 +BEGIN + KEY "P69" + PROMPT 138 35 "" +END + +STRINGA 99 +BEGIN + KEY "P6-10" + PROMPT 138 37 "" +END + +STRINGA 100 +BEGIN + KEY "P6-11" + PROMPT 138 39 "" +END + +STRINGA 101 +BEGIN + KEY "P6-11" + PROMPT 138 41 "" +END + +STRINGA 102 +BEGIN + KEY "P6-11" + PROMPT 138 43 "" +END + +STRINGA 103 +BEGIN + KEY "P6-11" + PROMPT 138 45 "" +END + +STRINGA 104 +BEGIN + KEY "P3TOT" + PROMPT 38 47 "" +END + +STRINGA 105 +BEGIN + KEY "P4TOT" + PROMPT 58 47 "" +END + +STRINGA 106 +BEGIN + KEY "P5TOT" + PROMPT 78 47 "" +END + +STRINGA 107 +BEGIN + KEY "P6TOT" + PROMPT 98 47 "" +END + +STRINGA 108 +BEGIN + KEY "P7TOT" + PROMPT 118 47 "" +END + +STRINGA 109 +BEGIN + KEY "A1" + PROMPT 118 50 "" + FIELD 67->A1 +END + +STRINGA 110 +BEGIN + KEY "A2" + PROMPT 118 52 "" + FIELD 67->A2 +END + +STRINGA 111 +BEGIN + KEY "A3" + PROMPT 118 54 "" + FIELD 67->A3 +END + +STRINGA 112 +BEGIN + KEY "A4" + PROMPT 118 56 "" + FIELD 67->A4 +END + + +END + + +SECTION BODY FIRST 66 + +STRINGA 1 +BEGIN + KEY "B - n.ord 1" + PROMPT 4 10 "" +END + +STRINGA 2 +BEGIN + KEY "B - n.ord 2" + PROMPT 4 12 "" +END + +STRINGA 3 +BEGIN + KEY "B - n.ord 3" + PROMPT 4 14 "" +END + +STRINGA 4 +BEGIN + KEY "B - col. DESCR. CAUSALE 1/1" + PROMPT 8 10 "" +END + +STRINGA 5 +BEGIN + KEY "col.1/2" + PROMPT 8 12 "" +END + +STRINGA 6 +BEGIN + KEY "col.1/3" + PROMPT 8 14 "" +END + +STRINGA 7 +BEGIN + KEY "ALIQUOTA col.2/1" + PROMPT 28 10 "" +END + +STRINGA 8 +BEGIN + KEY "col.2/2" + PROMPT 28 12 "" +END + +STRINGA 9 +BEGIN + KEY "col.2/3" + PROMPT 28 14 "" +END + +STRINGA 10 +BEGIN + KEY "col. SOMM.SOGG.RIT / 1" + PROMPT 38 10 "" +END + +STRINGA 11 +BEGIN + KEY "col. SOMM.SOGG.RIT / 2" + PROMPT 38 12 "" +END + +STRINGA 12 +BEGIN + KEY "col. SOMM.SOGG.RIT / 3" + PROMPT 38 14 "" +END + +STRINGA 13 +BEGIN + KEY "col. RIT.OPE. / 1" + PROMPT 58 10 "" +END + +STRINGA 14 +BEGIN + KEY "col. RIT.OPE. / 2" + PROMPT 58 12 "" +END + +STRINGA 15 +BEGIN + KEY "col. RIT.OPE. / 3" + PROMPT 58 14 "" +END + +STRINGA 16 +BEGIN + KEY "C - n.ord 1" + PROMPT 4 16 "" +END + +STRINGA 17 +BEGIN + KEY "C - n.ord 2" + PROMPT 4 18 "" +END + +STRINGA 18 +BEGIN + KEY "C - n.ord 3" + PROMPT 4 20 "" +END + +STRINGA 19 +BEGIN + KEY "C - col. DESCR. CAUSALE 1/1" + PROMPT 8 16 "" +END + +STRINGA 20 +BEGIN + KEY "col.1/2" + PROMPT 8 18 "" +END + +STRINGA 21 +BEGIN + KEY "col.1/3" + PROMPT 8 20 "" +END + +STRINGA 22 +BEGIN + KEY "ALIQUOTA col.2/1" + PROMPT 28 16 "" +END + +STRINGA 23 +BEGIN + KEY "col.2/2" + PROMPT 28 18 "" +END + +STRINGA 24 +BEGIN + KEY "col.2/3" + PROMPT 28 20 "" +END + +STRINGA 25 +BEGIN + KEY "col. SOMM.SOGG.RIT / 1" + PROMPT 38 16 "" +END + +STRINGA 26 +BEGIN + KEY "col. SOMM.SOGG.RIT / 2" + PROMPT 38 18 "" +END + +STRINGA 27 +BEGIN + KEY "col. SOMM.SOGG.RIT / 3" + PROMPT 38 20 "" +END + +STRINGA 28 +BEGIN + KEY "col. RIT.OPE. / 1" + PROMPT 58 16 "" +END + +STRINGA 29 +BEGIN + KEY "col. RIT.OPE. / 2" + PROMPT 58 18 "" +END + +STRINGA 30 +BEGIN + KEY "col. RIT.OPE. / 3" + PROMPT 58 20 "" +END + +STRINGA 31 +BEGIN + KEY "D - n.ord 1" + PROMPT 4 22 "" +END + +STRINGA 32 +BEGIN + KEY "D - n.ord 2" + PROMPT 4 24 "" +END + +STRINGA 33 +BEGIN + KEY "D - n.ord 3" + PROMPT 4 26 "" +END + +STRINGA 34 +BEGIN + KEY "D - col. DESCR. CAUSALE 1/1" + PROMPT 8 22 "" +END + +STRINGA 35 +BEGIN + KEY "col.1/2" + PROMPT 8 24 "" +END + +STRINGA 36 +BEGIN + KEY "col.1/3" + PROMPT 8 26 "" +END + +STRINGA 37 +BEGIN + KEY "ALIQUOTA col.2/1" + PROMPT 28 22 "" +END + +STRINGA 38 +BEGIN + KEY "col.2/2" + PROMPT 28 24 "" +END + +STRINGA 39 +BEGIN + KEY "col.2/3" + PROMPT 28 26 "" +END + +STRINGA 40 +BEGIN + KEY "col. SOMM.SOGG.RIT / 1" + PROMPT 38 22 "" +END + +STRINGA 41 +BEGIN + KEY "col. SOMM.SOGG.RIT / 2" + PROMPT 38 24 "" +END + +STRINGA 42 +BEGIN + KEY "col. SOMM.SOGG.RIT / 3" + PROMPT 38 26 "" +END + +STRINGA 43 +BEGIN + KEY "col. RIT.OPE. / 1" + PROMPT 58 22 "" +END + +STRINGA 44 +BEGIN + KEY "col. RIT.OPE. / 2" + PROMPT 58 24 "" +END + +STRINGA 45 +BEGIN + KEY "col. RIT.OPE. / 3" + PROMPT 58 26 "" +END + +STRINGA 46 +BEGIN + KEY "E 1 " + PROMPT 8 28 "" + FIELD 67->E_CAMBIALI +END + +STRINGA 47 +BEGIN + KEY "E 2 PROV.SOGG.RIT" + PROMPT 30 28 "" + FIELD 67->E_SOGRIT +END + +STRINGA 48 +BEGIN + KEY "E 3 ALIQUOTA" + PROMPT 52 28 "" + FIELD 67->E_ALIQUOTA +END + +STRINGA 49 +BEGIN + KEY "E 4 RIT.OPE." + PROMPT 73 28 "" + FIELD 67->E_ROPE +END + +STRINGA 50 +BEGIN + KEY "F 1 DESC. CAUSALE" + PROMPT 8 30 "" +END + +STRINGA 51 +BEGIN + KEY "F 2 ALIQUOTA" + PROMPT 30 30 "" + FIELD 67->F_ALIQUOTA +END + +STRINGA 52 +BEGIN + KEY "F 3 SOMM.SOGG.RIT." + PROMPT 40 30 "" + FIELD 67->F_SOGRIT +END + +STRINGA 53 +BEGIN + KEY "F 4 RIT.OPE." + PROMPT 60 30 "" + FIELD 67->F_ROPE +END + +STRINGA 54 +BEGIN + KEY "TOTALI PB3" + PROMPT 38 15 "" +END + +STRINGA 55 +BEGIN + KEY "TOTALI PB4" + PROMPT 58 15 "" +END + +STRINGA 56 +BEGIN + KEY "TOTALI PC3" + PROMPT 38 21 "" +END + +STRINGA 57 +BEGIN + KEY "TOTALI PC4" + PROMPT 58 21 "" +END + +STRINGA 58 +BEGIN + KEY "TOTALI PD3" + PROMPT 38 27 "" +END + +STRINGA 59 +BEGIN + KEY "TOTALI PD4" + PROMPT 58 27 "" +END + +END + + diff --git a/m770/77qg.frm b/m770/77qg.frm new file mode 100755 index 000000000..fb8382193 --- /dev/null +++ b/m770/77qg.frm @@ -0,0 +1,1127 @@ +USE 70 +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR +JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC +JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) +END + +DESCRIPTION +BEGIN + 70->* "Quadro G 770" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 113@->* "Comuni" + 213@->* "Comuni" + 216@->* "Anagrafica persone fisiche e giuridiche" + 218@->* "Anagrafica persone giuridiche" + 313@->* "Comuni" + 413@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION HEADER FIRST 50 + +STRINGA 1 +BEGIN + KEY "CODICE FISCALE" + PROMPT 4 9 "" + FIELD 116@->COFI +END + +STRINGA 2 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 39 9 "" + FIELD 116@->RAGSOC + GROUP 2 +END + +STRINGA 3 +BEGIN + KEY "COGNOME" + PROMPT 39 9 "" + FIELD 116@->RAGSOC[1,30] + GROUP 1 +END + +STRINGA 4 +BEGIN + KEY "NOME" + PROMPT 17 11 "" + FIELD 116@->RAGSOC[31,50] + GROUP 1 +END + +STRINGA 5 +BEGIN + KEY "COMUNE DI RES." + PROMPT 17 13 "" + FIELD 213@->DENCOM +END + +STRINGA 6 +BEGIN + KEY "PROV DI RES." + PROMPT 59 13 "" + FIELD 213@->PROVCOM +END + +STRINGA 7 +BEGIN + KEY "VIA di RES." + PROMPT 66 13 "" + FIELD 116@->INDRES + GROUP 4 +END + +STRINGA 8 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 102 13 "" + FIELD 116@->CIVRES + GROUP 4 +END + +STRINGA 9 +BEGIN + KEY "CAP" + PROMPT 120 13 "" + FIELD 116@->CAPRES + GROUP 4 +END + +STRINGA 10 +BEGIN + KEY "VIA di RES. RF" + PROMPT 66 13 "" + FIELD 116@->INDRF + MESSAGE EMPTY HIDE,5@ + GROUP 5 +END + +STRINGA 11 +BEGIN + KEY "NUM. CIVICO di RES. RF" + PROMPT 102 13 "" + FIELD 116@->CIVRF + GROUP 5 +END + +STRINGA 12 +BEGIN + KEY "CAP" + PROMPT 120 13 "" + FIELD 116@->CAPRF + GROUP 5 +END + +STRINGA 13 +BEGIN + KEY "CODICE FISCALE DICHIARANTE" + PROMPT 118 16 "" +END + +STRINGA 14 +BEGIN + KEY "NUM. FOGLIO" + PROMPT 120 18 "" +END + +STRINGA 15 +BEGIN + KEY "Prospetto 1 data delib.1" + PROMPT 4 22 "" + FIELD 70->P1DATAD1 + GROUP 3 +END + +STRINGA 16 +BEGIN + KEY "Titolo 1" + PROMPT 15 22 "" + FIELD 70->P1TITOLO1 + GROUP 3 +END + +STRINGA 17 +BEGIN + KEY "Data ut.1" + PROMPT 34 22 "" + FIELD 70->P1DATAP1 + GROUP 3 +END + +STRINGA 20 +BEGIN + KEY "Amm.1" + PROMPT 45 22 "" + FIELD 70->P1AMMQ1 + GROUP 3 +END + +STRINGA 21 +BEGIN + KEY "Num.az.1" + PROMPT 53 22 "" + FIELD 70->P1NUMQ1 + GROUP 3 +END + +STRINGA 22 +BEGIN + KEY "Amm.Compless.1" + PROMPT 62 22 "" + FIELD 70->P1AMM1 + GROUP 3 +END + +STRINGA 23 +BEGIN + KEY "Prospetto 1 data delib.2" + PROMPT 4 23 "" + FIELD 70->P1DATAD2 + GROUP 3 +END + +STRINGA 24 +BEGIN + KEY "Titolo 2" + PROMPT 15 23 "" + FIELD 70->P1TITOLO2 + GROUP 3 +END + +STRINGA 25 +BEGIN + KEY "Data ut.2" + PROMPT 34 23 "" + FIELD 70->P1DATAP2 + GROUP 3 +END + +STRINGA 26 +BEGIN + KEY "Amm.2" + PROMPT 45 23 "" + FIELD 70->P1AMMQ2 + GROUP 3 +END + +STRINGA 27 +BEGIN + KEY "Num.az.2" + PROMPT 53 23 "" + FIELD 70->P1NUMQ2 + GROUP 3 +END + +STRINGA 28 +BEGIN + KEY "Amm.Compless.2" + PROMPT 62 23 "" + FIELD 70->P1AMM2 + GROUP 3 +END + +STRINGA 29 +BEGIN + KEY "Prospetto 1 data delib.3" + PROMPT 4 24 "" + FIELD 70->P1DATAD3 + GROUP 3 +END + +STRINGA 30 +BEGIN + KEY "Titolo 3" + PROMPT 15 24 "" + FIELD 70->P1TITOLO3 + GROUP 3 +END + +STRINGA 31 +BEGIN + KEY "Data ut.3" + PROMPT 34 24 "" + FIELD 70->P1DATAP3 + GROUP 3 +END + +STRINGA 32 +BEGIN + KEY "Amm.3" + PROMPT 45 24 "" + FIELD 70->P1AMMQ3 + GROUP 3 +END + +STRINGA 33 +BEGIN + KEY "Num.az.3" + PROMPT 53 24 "" + FIELD 70->P1NUMQ3 + GROUP 3 +END + +STRINGA 34 +BEGIN + KEY "Amm.Compless.3" + PROMPT 62 24 "" + FIELD 70->P1AMM3 + GROUP 3 +END + +STRINGA 35 +BEGIN + KEY "Prospetto 1 data delib.4" + FIELD 70->P1DATAD4 + PROMPT 4 25 "" + GROUP 3 +END + +STRINGA 36 +BEGIN + KEY "Titolo 4" + PROMPT 15 25 "" + FIELD 70->P1TITOLO4 + GROUP 3 +END + +STRINGA 37 +BEGIN + KEY "Data ut.4" + PROMPT 34 25 "" + FIELD 70->P1DATAP4 + GROUP 3 +END + +STRINGA 38 +BEGIN + KEY "Amm.4" + PROMPT 45 25 "" + FIELD 70->P1AMMQ4 + GROUP 3 +END + +STRINGA 39 +BEGIN + KEY "Num.az.4" + PROMPT 53 25 "" + FIELD 70->P1NUMQ4 + GROUP 3 +END + +STRINGA 40 +BEGIN + KEY "Amm.Compless.4" + PROMPT 62 25 "" + FIELD 70->P1AMM4 + GROUP 3 +END + +STRINGA 41 +BEGIN + KEY "Totale num.az" + FIELD 70->P1NUMQT + PROMPT 37 26 "" +END + +STRINGA 42 +BEGIN + KEY "Totale amm.compl." + FIELD 70->P1AMMT + PROMPT 45 26 "" +END + +STRINGA 43 +BEGIN + KEY "Data delibera" + PROMPT 13 28 "" + FIELD 70->P2DATADE +END + +STRINGA 44 +BEGIN + KEY "Data distribuzione" + PROMPT 33 28 "" + FIELD 70->P2DATADI +END + +STRINGA 45 +BEGIN + KEY "DESC.BENI DISTR.1" + PROMPT 4 29 "" + FIELD 70->P2DESC1 +END + +STRINGA 46 +BEGIN + KEY "DATA 1" + PROMPT 40 29 "" + FIELD 70->P2DATA1 +END + +STRINGA 47 +BEGIN + KEY "VALORE ULT. BIL. 1" + PROMPT 50 29 "" + FIELD 70->P2VAL1 +END + +STRINGA 48 +BEGIN + KEY "DESC.BENI DISTR.2" + PROMPT 4 30 "" + FIELD 70->P2DESC2 +END + +STRINGA 49 +BEGIN + KEY "DATA 2" + PROMPT 40 30 "" + FIELD 70->P2DATA2 +END + +STRINGA 50 +BEGIN + KEY "VALORE ULT. BIL. 2" + PROMPT 50 30 "" + FIELD 70->P2VAL2 +END + +STRINGA 51 +BEGIN + KEY "DESC.BENI DISTR.3" + PROMPT 4 31 "" + FIELD 70->P2DESC3 +END + +STRINGA 52 +BEGIN + KEY "DATA 3" + PROMPT 40 31 "" + FIELD 70->P2DATA3 +END + +STRINGA 53 +BEGIN + KEY "VALORE ULT. BIL. 3" + PROMPT 50 31 "" + FIELD 70->P2VAL3 +END + +STRINGA 54 +BEGIN + KEY "TOT.UT.NATURA" + PROMPT 50 32 "" + FIELD 70->P2VALT +END + +STRINGA 55 +BEGIN + KEY "IMP.IMPUT.AZ.QUOT" + PROMPT 50 33 "" + FIELD 70->P2IMPQ +END + + +STRINGA 56 +BEGIN + KEY "P221" + PROMPT 15 35 "" +END + +STRINGA 57 +BEGIN + KEY "P231" + PROMPT 20 35 "" +END + +STRINGA 58 +BEGIN + KEY "P241" + PROMPT 25 35 "" +END + +STRINGA 59 +BEGIN + KEY "P251" + PROMPT 30 35 "" +END + +STRINGA 60 +BEGIN + KEY "P261" + PROMPT 35 35 "" +END + +STRINGA 61 +BEGIN + KEY "P222" + PROMPT 15 36 "" +END + +STRINGA 62 +BEGIN + KEY "P232" + PROMPT 20 36 "" +END + +STRINGA 63 +BEGIN + KEY "P242" + PROMPT 25 36 "" +END + +STRINGA 64 +BEGIN + KEY "P252" + PROMPT 30 36 "" +END + +STRINGA 65 +BEGIN + KEY "P262" + PROMPT 35 36 "" +END + +STRINGA 66 +BEGIN + KEY "P223" + PROMPT 15 37 "" +END + +STRINGA 67 +BEGIN + KEY "P233" + PROMPT 20 37 "" +END + +STRINGA 68 +BEGIN + KEY "P243" + PROMPT 25 37 "" +END + +STRINGA 69 +BEGIN + KEY "P253" + PROMPT 30 37 "" +END + +STRINGA 70 +BEGIN + KEY "P263" + PROMPT 35 37 "" +END + +STRINGA 71 +BEGIN + KEY "P224" + PROMPT 15 38 "" +END + +STRINGA 72 +BEGIN + KEY "P234" + PROMPT 20 38 "" +END + +STRINGA 73 +BEGIN + KEY "P244" + PROMPT 25 38 "" +END + +STRINGA 74 +BEGIN + KEY "P254" + PROMPT 30 38 "" +END + +STRINGA 75 +BEGIN + KEY "P264" + PROMPT 35 38 "" +END + +STRINGA 76 +BEGIN + KEY "P225" + PROMPT 15 39 "" +END + +STRINGA 77 +BEGIN + KEY "P235" + PROMPT 20 39 "" +END + +STRINGA 78 +BEGIN + KEY "P245" + PROMPT 25 39 "" +END + +STRINGA 79 +BEGIN + KEY "P255" + PROMPT 30 39 "" +END + +STRINGA 80 +BEGIN + KEY "P265" + PROMPT 35 39 "" +END + + +STRINGA 81 +BEGIN + KEY "P22TOT" + PROMPT 15 41 "" + FIELD 70->P22TOT +END + +STRINGA 82 +BEGIN + KEY "P23TOT" + PROMPT 27 41 "" + FIELD 70->P23TOT +END + +STRINGA 83 +BEGIN + KEY "P24TOT" + PROMPT 39 41 "" + FIELD 70->P24TOT +END + +STRINGA 84 +BEGIN + KEY "P25TOT" + PROMPT 51 41 "" + FIELD 70->P25TOT +END + +STRINGA 85 +BEGIN + KEY "P26TOT" + PROMPT 63 41 "" + FIELD 70->P26TOT +END + +END + +SECTION BODY ODD 60 + +STRINGA 1 +BEGIN + KEY "P3 COL 2 - CINQUE SOLE RIGHE -" + PROMPT 4 10 "" +END + +STRINGA 2 +BEGIN + KEY "P3 COL2 - 2" + PROMPT 4 14 "" +END + +STRINGA 3 +BEGIN + KEY "P3 COL2 - 3" + PROMPT 4 18 "" +END + +STRINGA 4 +BEGIN + KEY "P3 COL2 - 4" + PROMPT 4 22 "" +END + +STRINGA 5 +BEGIN + KEY "P3 COL2 - 5" + PROMPT 4 26 "" +END + + +STRINGA 6 +BEGIN + KEY "P3 COL3 1" + PROMPT 10 10 "" +END + +STRINGA 7 +BEGIN + KEY "P3 COL3 2" + PROMPT 10 12 "" +END + +STRINGA 8 +BEGIN + KEY "P3 COL3 3" + PROMPT 10 14 "" +END + +STRINGA 9 +BEGIN + KEY "P3 COL3 4" + PROMPT 10 16 "" +END + +STRINGA 10 +BEGIN + KEY "P3 COL3 5" + PROMPT 10 18 "" +END + +STRINGA 11 +BEGIN + KEY "P3 COL3 6" + PROMPT 10 20 "" +END + +STRINGA 12 +BEGIN + KEY "P3 COL3 7" + PROMPT 10 22 "" +END + +STRINGA 13 +BEGIN + KEY "P3 COL3 8" + PROMPT 10 24 "" +END + +STRINGA 14 +BEGIN + KEY "P3 COL3 9" + PROMPT 10 26 "" +END + +STRINGA 15 +BEGIN + KEY "P3 COL3 10" + PROMPT 10 28 "" +END + +STRINGA 16 +BEGIN + KEY "P3 COL3 11" + PROMPT 10 30 "" +END + +STRINGA 17 +BEGIN + KEY "P3 COL3 12" + PROMPT 10 32 "" +END + +STRINGA 18 +BEGIN + KEY "P3 COL3 13" + PROMPT 10 34 "" +END + +STRINGA 19 +BEGIN + KEY "P3 COL3 14" + PROMPT 10 36 "" +END + +STRINGA 20 +BEGIN + KEY "P3 COL3 15" + PROMPT 10 38 "" +END + +STRINGA 21 +BEGIN + KEY "P3 COL3 16" + PROMPT 10 40 "" +END + +STRINGA 22 +BEGIN + KEY "P3 COL3 17" + PROMPT 10 42 "" +END + +STRINGA 23 +BEGIN + KEY "P3 COL3 18" + PROMPT 10 44 "" +END + +STRINGA 24 +BEGIN + KEY "P3 COL3 19" + PROMPT 10 46 "" +END + +STRINGA 25 +BEGIN + KEY "P3 COL3 20" + PROMPT 10 48 "" +END + + +STRINGA 26 +BEGIN + KEY "P3 COL5 1" + PROMPT 30 10 "" +END + +STRINGA 27 +BEGIN + KEY "P3 COL5 2" + PROMPT 30 12 "" +END + +STRINGA 28 +BEGIN + KEY "P3 COL5 3" + PROMPT 30 14 "" +END + +STRINGA 29 +BEGIN + KEY "P3 COL5 4" + PROMPT 30 16 "" +END + +STRINGA 30 +BEGIN + KEY "P3 COL5 5" + PROMPT 30 18 "" +END + +STRINGA 31 +BEGIN + KEY "P3 COL5 6" + PROMPT 30 20 "" +END + +STRINGA 32 +BEGIN + KEY "P3 COL5 7" + PROMPT 30 22 "" +END + +STRINGA 33 +BEGIN + KEY "P3 COL5 8" + PROMPT 30 24 "" +END + +STRINGA 34 +BEGIN + KEY "P3 COL5 9" + PROMPT 30 26 "" +END + +STRINGA 35 +BEGIN + KEY "P3 COL5 10" + PROMPT 30 28 "" +END + +STRINGA 36 +BEGIN + KEY "P3 COL5 11" + PROMPT 30 30 "" +END + +STRINGA 37 +BEGIN + KEY "P3 COL5 12" + PROMPT 30 32 "" +END + +STRINGA 38 +BEGIN + KEY "P3 COL5 13" + PROMPT 30 34 "" +END + +STRINGA 39 +BEGIN + KEY "P3 COL5 14" + PROMPT 30 36 "" +END + +STRINGA 40 +BEGIN + KEY "P3 COL5 15" + PROMPT 30 38 "" +END + +STRINGA 41 +BEGIN + KEY "P3 COL5 16" + PROMPT 30 40 "" +END + +STRINGA 42 +BEGIN + KEY "P3 COL5 17" + PROMPT 30 42 "" +END + +STRINGA 43 +BEGIN + KEY "P3 COL5 18" + PROMPT 30 44 "" +END + +STRINGA 44 +BEGIN + KEY "P3 COL5 19" + PROMPT 30 46 "" +END + +STRINGA 45 +BEGIN + KEY "P3 COL5 20" + PROMPT 30 48 "" +END + + +STRINGA 46 +BEGIN + KEY "P3 COL6 1" + PROMPT 40 10 "" +END + +STRINGA 47 +BEGIN + KEY "P3 COL6 2" + PROMPT 40 12 "" +END + +STRINGA 48 +BEGIN + KEY "P3 COL6 3" + PROMPT 40 14 "" +END + +STRINGA 49 +BEGIN + KEY "P3 COL6 4" + PROMPT 40 16 "" +END + +STRINGA 50 +BEGIN + KEY "P3 COL6 5" + PROMPT 40 18 "" +END + +STRINGA 51 +BEGIN + KEY "P3 COL6 6" + PROMPT 40 20 "" +END + +STRINGA 52 +BEGIN + KEY "P3 COL6 7" + PROMPT 40 22 "" +END + +STRINGA 53 +BEGIN + KEY "P3 COL6 8" + PROMPT 40 24 "" +END + +STRINGA 54 +BEGIN + KEY "P3 COL6 9" + PROMPT 40 26 "" +END + +STRINGA 55 +BEGIN + KEY "P3 COL6 10" + PROMPT 40 28 "" +END + +STRINGA 56 +BEGIN + KEY "P3 COL6 11" + PROMPT 40 30 "" +END + +STRINGA 57 +BEGIN + KEY "P3 COL6 12" + PROMPT 40 32 "" +END + +STRINGA 58 +BEGIN + KEY "P3 COL6 13" + PROMPT 40 34 "" +END + +STRINGA 59 +BEGIN + KEY "P3 COL6 14" + PROMPT 40 36 "" +END + +STRINGA 60 +BEGIN + KEY "P3 COL6 15" + PROMPT 40 38 "" +END + +STRINGA 61 +BEGIN + KEY "P3 COL6 16" + PROMPT 40 40 "" +END + +STRINGA 62 +BEGIN + KEY "P3 COL6 17" + PROMPT 40 42 "" +END + +STRINGA 63 +BEGIN + KEY "P3 COL6 18" + PROMPT 40 44 "" +END + +STRINGA 64 +BEGIN + KEY "P3 COL6 19" + PROMPT 40 46 "" +END + +STRINGA 65 +BEGIN + KEY "P3 COL6 20" + PROMPT 40 48 "" +END + +STRINGA 66 +BEGIN + KEY "P3 COL7 1/5" + PROMPT 50 10 "" +END + +STRINGA 67 +BEGIN + KEY "P3 COL7 2/5" + PROMPT 50 14 "" +END + +STRINGA 68 +BEGIN + KEY "P3 COL7 3/5" + PROMPT 50 18 "" +END + +STRINGA 69 +BEGIN + KEY "P3 COL7 4/5" + PROMPT 50 22 "" +END + +STRINGA 70 +BEGIN + KEY "P3 COL7 5/5" + PROMPT 50 26 "" +END + + +STRINGA 71 +BEGIN + KEY "P4 IMP.1" + PROMPT 53 50 "" + FIELD 70->P421 +END + +STRINGA 72 +BEGIN + KEY "P4 IMP.2" + PROMPT 53 51 "" + FIELD 70->P422 +END + +STRINGA 73 +BEGIN + KEY "P4 IMP.3" + PROMPT 53 52 "" + FIELD 70->P423 +END + +STRINGA 74 +BEGIN + KEY "P4 IMP.4 " + PROMPT 53 53 "" + FIELD 70->P424 +END + +STRINGA 75 +BEGIN + KEY "P4 IMP.5" + PROMPT 53 54 "" + FIELD 70->P425 +END + +STRINGA 76 +BEGIN + KEY "P4 IMP.6" + PROMPT 53 55 "" + FIELD 70->P426 +END + +STRINGA 77 +BEGIN + KEY "P4 IMP.7" + PROMPT 53 56 "" + FIELD 70->P427 +END + +STRINGA 78 +BEGIN + KEY "P4 IMP.8" + PROMPT 53 57 "" + FIELD 70->P428 +END + +STRINGA 79 +BEGIN + KEY "P4 IMP.9" + PROMPT 53 58 "" + FIELD 70->P429 +END + +STRINGA 80 +BEGIN + KEY "P4 TOTALE" + PROMPT 53 59 "" + FIELD 70->P42TOT +END + +END + +END + + diff --git a/m770/77qg1.frm b/m770/77qg1.frm new file mode 100755 index 000000000..4e3c677c8 --- /dev/null +++ b/m770/77qg1.frm @@ -0,0 +1,461 @@ +USE 71 +JOIN 98 INTO CODDITTA=CODDITTA +JOIN 9 TO 71 INTO CODDITTA=CODDITTA +JOIN 6 TO 9 ALIAS 116 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 6 ALIAS 118 INTO CODANAGR=CODANAGR +JOIN 13 TO 8 ALIAS 113 INTO COM=COMNASC +JOIN 13 TO 6 ALIAS 213 INTO COM=COMRF(COMRES) +END + +DESCRIPTION +BEGIN + 71->* "Quadro G1 770" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 113@->* "Comuni" + 213@->* "Comuni" + 216@->* "Anagrafica persone fisiche e giuridiche" + 218@->* "Anagrafica persone giuridiche" + 313@->* "Comuni" + 413@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION HEADER FIRST 65 + +STRINGA 1 +BEGIN + KEY "CODICE FISCALE" + PROMPT 4 9 "" + FIELD 116@->COFI +END + +STRINGA 2 +BEGIN + KEY "RAGIONE SOCIALE" + PROMPT 39 9 "" + FIELD 116@->RAGSOC + GROUP 2 +END + +STRINGA 3 +BEGIN + KEY "COGNOME" + PROMPT 39 9 "" + FIELD 116@->RAGSOC[1,30] + GROUP 1 +END + +STRINGA 4 +BEGIN + KEY "NOME" + PROMPT 17 11 "" + FIELD 116@->RAGSOC[31,50] + GROUP 1 +END + +STRINGA 5 +BEGIN + KEY "SESSO" + PROMPT 58 11 "" + FIELD 118@->SESSO + GROUP 1 +END + +STRINGA 6 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 66 11 "" + FIELD 118@->DATANASC + GROUP 1 +END + +STRINGA 7 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 84 11 "" + FIELD 113@->DENCOM + GROUP 1 +END + +STRINGA 8 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 126 11 "" + FIELD 113@->PROVCOM + GROUP 1 +END + +LISTA 9 +BEGIN + KEY "Tipo anagrafica" + FIELD 116@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 10 +BEGIN + KEY "COMUNE DI RES.FISCALE" + PROMPT 17 13 "" + FIELD 213@->DENCOM +END + +STRINGA 11 +BEGIN + KEY "PROV DI RES.FISCALE" + PROMPT 59 13 "" + FIELD 213@->PROVCOM +END + +STRINGA 12 +BEGIN + KEY "VIA di RES." + PROMPT 66 13 "" + FIELD 116@->INDRF +END + +STRINGA 13 +BEGIN + KEY "NUM. CIVICO di RES." + PROMPT 102 13 "" + FIELD 116@->CIVRF +END + +STRINGA 14 +BEGIN + KEY "CAP" + PROMPT 120 13 "" + FIELD 116@->CAPRF +END + +STRINGA 15 +BEGIN + KEY "CODICE FISCALE DICHIARANTE" + PROMPT 118 16 "" +END + +STRINGA 56 +BEGIN + KEY "P. Colonna 2 - solo 5 righe" + PROMPT 10 35 "" +END + +STRINGA 57 +BEGIN + KEY "P21" + PROMPT 10 37 "" +END + +STRINGA 58 +BEGIN + KEY "P22" + PROMPT 10 39 "" +END + +STRINGA 59 +BEGIN + KEY "P23" + PROMPT 10 41 "" +END + +STRINGA 60 +BEGIN + KEY "P24" + PROMPT 10 43 "" +END + +STRINGA 61 +BEGIN + KEY "P25" + PROMPT 10 45 "" +END + +STRINGA 62 +BEGIN + KEY "P. Colonna 7 - solo 5 righe" + PROMPT 65 35 "" +END + +STRINGA 63 +BEGIN + KEY "P71" + PROMPT 65 37 "" +END + +STRINGA 64 +BEGIN + KEY "P72" + PROMPT 65 39 "" +END + +STRINGA 65 +BEGIN + KEY "P73" + PROMPT 65 41 "" +END + +STRINGA 66 +BEGIN + KEY "P74" + PROMPT 65 43 "" +END + +STRINGA 67 +BEGIN + KEY "P75" + PROMPT 65 45 "" +END + + +STRINGA 68 +BEGIN + KEY "Colonna 3 - P31" + PROMPT 30 35 "" +END + +STRINGA 69 +BEGIN + KEY "P32" + PROMPT 30 37 "" +END + +STRINGA 70 +BEGIN + KEY "P33" + PROMPT 30 39 "" +END + +STRINGA 71 +BEGIN + KEY "P34" + PROMPT 30 41 "" +END + +STRINGA 72 +BEGIN + KEY "P35" + PROMPT 30 43 "" +END + +STRINGA 73 +BEGIN + KEY "P36" + PROMPT 30 45 "" +END + +STRINGA 74 +BEGIN + KEY "P37" + PROMPT 30 47 "" +END + +STRINGA 75 +BEGIN + KEY "P38" + PROMPT 30 49 "" +END + +STRINGA 76 +BEGIN + KEY "P39" + PROMPT 30 51 "" +END + +STRINGA 77 +BEGIN + KEY "P3-10" + PROMPT 30 53 "" +END + +STRINGA 78 +BEGIN + KEY "P3-11" + PROMPT 30 55 "" +END + + + +STRINGA 79 +BEGIN + KEY "COLONNA 5 - 1" + PROMPT 45 35 "" +END + +STRINGA 80 +BEGIN + KEY "P52" + PROMPT 45 37 "" +END + +STRINGA 81 +BEGIN + KEY "P53" + PROMPT 45 39 "" +END + +STRINGA 82 +BEGIN + KEY "P54" + PROMPT 45 41 "" +END + +STRINGA 83 +BEGIN + KEY "P55" + PROMPT 45 43 "" +END + +STRINGA 84 +BEGIN + KEY "P56" + PROMPT 45 45 "" +END + +STRINGA 85 +BEGIN + KEY "P57" + PROMPT 45 47 "" +END + +STRINGA 86 +BEGIN + KEY "P58" + PROMPT 45 49 "" +END + +STRINGA 87 +BEGIN + KEY "P59" + PROMPT 45 51 "" +END + +STRINGA 88 +BEGIN + KEY "P5-10" + PROMPT 45 53 "" +END + +STRINGA 89 +BEGIN + KEY "P5-11" + PROMPT 45 55 "" +END + + + +STRINGA 90 +BEGIN + KEY "COLONNA 6 - 1" + PROMPT 60 35 "" +END + +STRINGA 91 +BEGIN + KEY "P62" + PROMPT 60 37 "" +END + +STRINGA 92 +BEGIN + KEY "P63" + PROMPT 60 39 "" +END + +STRINGA 93 +BEGIN + KEY "P64" + PROMPT 60 41 "" +END + +STRINGA 94 +BEGIN + KEY "P65" + PROMPT 60 43 "" +END + +STRINGA 95 +BEGIN + KEY "P66" + PROMPT 60 45 "" +END + +STRINGA 96 +BEGIN + KEY "P67" + PROMPT 60 47 "" +END + +STRINGA 97 +BEGIN + KEY "P68" + PROMPT 60 49 "" +END + +STRINGA 98 +BEGIN + KEY "P69" + PROMPT 60 51 "" +END + +STRINGA 99 +BEGIN + KEY "P6-10" + PROMPT 60 53 "" +END + +STRINGA 100 +BEGIN + KEY "P6-11" + PROMPT 60 55 "" +END + + +STRINGA 101 +BEGIN + KEY "P2TOT" + PROMPT 15 58 "" + FIELD 71->P12TOT +END + +STRINGA 102 +BEGIN + KEY "P3TOT" + PROMPT 30 58 "" + FIELD 71->P13TOT +END + +STRINGA 103 +BEGIN + KEY "P5TOT" + PROMPT 60 58 "" + FIELD 71->P15TOT +END + +STRINGA 104 +BEGIN + KEY "P6TOT" + PROMPT 75 58 "" + FIELD 71->P16TOT +END + +STRINGA 105 +BEGIN + KEY "P7TOT" + PROMPT 90 58 "" + FIELD 71->P17TOT +END + +END + + diff --git a/m770/77qg1a.h b/m770/77qg1a.h new file mode 100755 index 000000000..bd88f1333 --- /dev/null +++ b/m770/77qg1a.h @@ -0,0 +1,3 @@ +// 77qg1a.h +#define F_CODDITTA 101 +#define F_RAGDITTA 102 diff --git a/m770/77qgd.frm b/m770/77qgd.frm new file mode 100755 index 000000000..6de124969 --- /dev/null +++ b/m770/77qgd.frm @@ -0,0 +1,245 @@ +USE 101 +JOIN 6 TO 101 ALIAS 216 INTO TIPOA=TIPOA CODANAGR=CODANAGR +JOIN 8 TO 216@ ALIAS 218 INTO CODANAGR=CODANAGR +JOIN 13 TO 216@ ALIAS 313 INTO COM=COMNASC +JOIN 13 TO 218@ ALIAS 413 INTO COM=COMRF(COMRES) +JOIN %STA TO 216@ ALIAS 24 INTO CODTAB=STATORES +END + +DESCRIPTION +BEGIN + 62->* "770 Quadro G distinta" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 8->* "Anagrafica persone fisiche" + 113@->* "Comuni" + 213@->* "Comuni" + 216@->* "Anagrafica persone fisiche e giuridiche" + 218@->* "Anagrafica persone giuridiche" + 313@->* "Comuni" + 413@->* "Comuni" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier 17cpi" + SIZE 10 + CA "X" + IN 3 2 + FI 131 +END + +SECTION HEADER FIRST 28 + +NUMBER 14 +BEGIN + KEY "NUM. FOGLIO" + PROMPT 123 20 "" +END + +END + +SECTION BODY ODD 8 + +LISTA 100 +BEGIN + KEY "Tipo anagrafica" + FIELD 216@->TIPOA + ITEM "F| " MESSAGE ENABLE,1@|DISABLE,2@ + ITEM "G| " MESSAGE ENABLE,2@|DISABLE,1@ +END + +STRINGA 1 +BEGIN + KEY "COD.FIS" + PROMPT 10 2 "" + FIELD 216@->COFI +END + +STRING 2 +BEGIN + KEY "COGNOME" + PROMPT 42 2 "" + FIELD 216@->RAGSOC[1,30] + GROUP 1 +END + +STRING 3 +BEGIN + KEY "NOME" + PROMPT 81 2 "" + FIELD 216@->RAGSOC[31,50] + GROUP 1 +END + +STRING 102 +BEGIN + KEY "RAGSOC GIURIDICHE" + PROMPT 54 2 "" + FIELD 216@->RAGSOC + GROUP 2 +END + +STRING 4 +BEGIN + KEY "DATA NASCITA" + PROMPT 114 2 "" + FIELD 218@->DATANASC +END + +STRING 5 +BEGIN + KEY "SESSO" + PROMPT 129 2 "" + FIELD 218@->SESSO +END + +STRING 6 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 10 4 "" + FIELD 313@->DENCOM + GROUP 1 +END + +STRING 101 +BEGIN + KEY "COMUNE DI RESIDENZA GIURIDICHE" + PROMPT 10 4 "" + FIELD 413@->DENCOM + GROUP 2 +END + +STRING 7 +BEGIN + KEY "PROV DI NASCITA" + PROMPT 47 4 "" + FIELD 313@->PROVCOM + GROUP 1 +END + +STRING 8 +BEGIN + KEY "COMUNE DI RESIDENZA" + PROMPT 53 4 "" + FIELD 413@->DENCOM + GROUP 1 +END + +STRING 9 +BEGIN + KEY "PROV. RESIDENZA" + PROMPT 88 4 "" + FIELD 413@->PROVCOM +END + +STRING 106 +BEGIN + KEY "PROV. RESIDENZA GIURIDICHE" + PROMPT 61 4 "" + FIELD 413@->PROVCOM + GROUP 2 +END + +STRING 10 +BEGIN + KEY "VIA RES." + PROMPT 94 4 "" + FIELD 216@->INDRES[1,18] + FLAGS "H" + MESSAGE COPY,12|COPY,107 +END + +STRING 11 +BEGIN + KEY "NUM.CIV" + PROMPT 93 4 "" + FLAGS "H" + FIELD 216@->CIVRES + MESSAGE APPEND,12|APPEND,107 +END + +STRING 12 +BEGIN + KEY "VIA RES. + numcivres" + PROMPT 95 4 "" + GROUP 1 +END + +STRING 107 +BEGIN + KEY "VIA RES GIURIDICHE" + PROMPT 69 4 "" + GROUP 2 +END + +STRING 19 +BEGIN + KEY "NUMERO QUOTE" + PROMPT 128 4 "" + FIELD 101->NUMQUOTE + PICTURE "####^^^" +END + +STRING 20 +BEGIN + KEY "UTILI SPETTANTI" + PROMPT 55 5 "" + FIELD 101->UTSPETT + PICTURE "#########^^^" +END + +STRING 21 +BEGIN + KEY "UTILI PAGATI" + PROMPT 75 5 "" + FIELD 101->UTPAG + PICTURE "#########^^^" +END + +STRING 22 +BEGIN + KEY "RITENUTE OPERATE SUGLI UT.PAGATI" + PROMPT 88 5 "" + FIELD 101->ROPE + PICTURE "###@@" +END + +STRING 23 +BEGIN + KEY "RIT.OPERATE SUGLI UTILI SPETTANTI" + PROMPT 100 5 "" + FIELD 101->ROPESPET + PICTURE "#########^^^" +END + +END + +SECTION BODY EVEN 2 + +NUMBER 1 +BEGIN + KEY "TOTALE UT.SPETT." + PROMPT 36 1 "" +END + +NUMBER 2 +BEGIN + KEY "TOTALE R.OPE.SU UT.SPETT." + PROMPT 55 1 "" +END + +NUMBER 3 +BEGIN + KEY "TOTALE UTILI PAGATI" + PROMPT 75 1 "" +END + +NUMBER 4 +BEGIN + KEY "TOTALE R.OPE.SU UT.SPETT." + PROMPT 101 1 "" +END + +END diff --git a/m770/77qgd.h b/m770/77qgd.h new file mode 100755 index 000000000..9f198d750 --- /dev/null +++ b/m770/77qgd.h @@ -0,0 +1,26 @@ +// 77qgd.h +#define F_CODDITTA 101 +#define F_TIPOA 102 +#define F_CODANAGR 103 +#define F_NPROG 104 +#define F_UTSPETT 105 +#define F_UTPAG 106 +#define F_ROPE 107 +#define F_NUMQUOTE 108 + +#define F_RAGSOC 109 +#define F_RAGSOCCOM 110 +#define F_RAGDITTA 111 +#define F_ANNODIC 112 +#define F_TIPOAF 113 +#define F_CODANAGRPERC 114 +#define F_CODANAGRCOM 115 +#define F_RAGSOCPER 116 + +#define F_RAGSOC2 117 +#define F_CODANAGR2 118 +#define F_ROPESPET 119 + + + + diff --git a/m770/77qgda.uml b/m770/77qgda.uml new file mode 100755 index 000000000..2789d236f --- /dev/null +++ b/m770/77qgda.uml @@ -0,0 +1,220 @@ +// Distinta quadro G +#include "77qgd.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +// +// Lista modifiche +// 9.4.96 Aggiunto campo ROPESPET +// + +#define LF_QUAGD 101 + +PAGE "MODULO 770 - QUADRO G" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAGD->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +GROUPBOX DLG_NULL 78 6 +BEGIN + PROMPT 1 5 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 6 "@bDati percipiente " +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 2 7 "" + ITEM "F|Fisica" + MESSAGE COPY,F_TIPOAF + ITEM "G|Giuridica" + MESSAGE COPY,F_TIPOAF + FIELD LF_QUAGD->TIPOA + CHECKTYPE REQUIRED + KEY 1 +END + +LIST F_TIPOAF 1 12 +BEGIN + PROMPT 7 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "H" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 80 80 "" + FLAGS "D" + FIELD LF_QUAGD->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGRPERC 5 +BEGIN + PROMPT 15 7 "" + USE LF_PERC KEY 1 SELECT ((CODDITTA=#F_CODDITTA)&&(TIPOA=#F_TIPOA)) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRPERC + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRPERC CODANAGR + OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC + MESSAGE COPY, F_CODANAGR|COPY,F_CODANAGRCOM + ADD RUN 775 -0 + GROUP 2 + KEY 1 +END + +NUMBER F_CODANAGRCOM 5 +BEGIN + PROMPT 15 7 "" + USE LF_ANAG KEY 1 SELECT (TIPOA=#F_TIPOA) + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRCOM + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + MESSAGE COPY, F_CODANAGR + ADD RUN BA4 -1 + KEY 1 + GROUP 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 7 "" + FLAGS "H" +END + +STRING F_RAGSOCCOM 50 +BEGIN + PROMPT 25 7 "" + USE LF_ANAG KEY 2 + INPUT RAGSOC F_RAGSOCCOM + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_TIPOA TIPOA + ADD RUN BA4 -1 + KEY 1 + MESSAGE COPY, F_RAGSOC + GROUP 1 +END + +STRING F_RAGSOCPER 50 +BEGIN + PROMPT 25 7 "" + FLAGS "D" + GROUP 2 + MESSAGE COPY, F_RAGSOC +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 2 9 "@bNumero " + FIELD LF_QUAGD->NPROG + USE LF_QUAGD + JOIN LF_ANAG TO LF_QUAGD KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA SELECT + INPUT TIPOA F_TIPOA SELECT + INPUT CODANAGR F_CODANAGR SELECT + INPUT NPROG F_NPROG + DISPLAY "N°" NPROG + DISPLAY "Tipo" TIPOA + DISPLAY "Codice@10" CODANAGR + DISPLAY "Utili spettanti@15" UTSPETT + DISPLAY "Utili pagati@15" UTPAG + DISPLAY "Ritenute su utili pagati" ROPE + DISPLAY "Ritenute su utili spettanti" ROPESPET + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_NPROG NPROG + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_NUMQUOTE 15 +BEGIN + PROMPT 2 12 "Numero quote " + FIELD LF_QUAGD->NUMQUOTE + PICTURE ".2" + FLAGS "R" +END + +NUMBER F_UTPAG 15 +BEGIN + PROMPT 2 14 "Utili pagati " + FIELD LF_QUAGD->UTPAG + PICTURE "." + FLAGS "R" +END + +NUMBER F_ROPE 15 +BEGIN + PROMPT 40 14 "Rit. utili pagati " + FIELD LF_QUAGD->ROPE + PICTURE "." + FLAGS "R" +END + +NUMBER F_UTSPETT 15 +BEGIN + PROMPT 2 16 "Utili spettanti " + FIELD LF_QUAGD->UTSPETT + PICTURE "." + FLAGS "R" +END + +NUMBER F_ROPESPET 15 +BEGIN + PROMPT 40 16 "Rit.ut. spettanti " + FIELD LF_QUAGD->ROPESPET + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qn.h b/m770/77qn.h new file mode 100755 index 000000000..97535440d --- /dev/null +++ b/m770/77qn.h @@ -0,0 +1,13 @@ +// 77qn.h +#define QNF_NPROG 102 +#define QNF_RAGDITTA 103 +#define QNF_MESERIF 104 +#define QNF_ANNORIF 105 +#define QNF_IMPOSTA 106 +#define QNF_COMPENSI 107 + +#define QNF_CODDITTA 181 +#define QNF_ANNODIC 182 + + + diff --git a/m770/77qn.uml b/m770/77qn.uml new file mode 100755 index 000000000..bffde5d39 --- /dev/null +++ b/m770/77qn.uml @@ -0,0 +1,126 @@ +// Quadro N +#include "77qn.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - QUADRO N" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QNF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QNF_CODDITTA + OUTPUT QNF_RAGDITTA RAGSOC + FIELD LF_QUAN->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QNF_NPROG 4 +BEGIN + PROMPT 1 5 "@bNumero " + FIELD LF_QUAN->NPROG + USE LF_QUAN SELECT (CODDITTA=#QNF_CODDITTA) + INPUT CODDITTA QNF_CODDITTA SELECT + INPUT NPROG QNF_NPROG + DISPLAY "N°" NPROG + DISPLAY "Mese" MESERIF + DISPLAY "Anno" ANNORIF + DISPLAY "Imposta rimborsata" IMPOSTA + DISPLAY "Compensi per l'assistenza" COMPENSI + OUTPUT QNF_NPROG NPROG + OUTPUT QNF_COMPENSI COMPENSI + OUTPUT QNF_IMPOSTA IMPOSTA + OUTPUT QNF_ANNORIF ANNORIF + OUTPUT QNF_MESERIF MESERIF + CHECKTYPE REQUIRED + KEY 1 +END + +STRING QNF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QNF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bPeriodo di riferimento " +END + +GROUPBOX DLG_NULL 26 4 +BEGIN + PROMPT 1 7 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "Mese" +END + +LIST QNF_MESERIF 1 12 +BEGIN + PROMPT 2 9 "" + FIELD LF_QUAN->MESERIF + WARNING "Manca il mese" + FLAGS "M" + ITEM "|" + CHECKTYPE REQUIRED +END + +TEXT DLG_NULL +BEGIN + PROMPT 17 8 "Anno" +END + +NUMBER QNF_ANNORIF 4 +BEGIN + PROMPT 17 9 "" + WARNING "Manca l'anno" + CHECKTYPE REQUIRED + FIELD LF_QUAN->ANNORIF +END + +TEXT DLG_NULL +BEGIN + PROMPT 29 8 "Imposta rimborsata " +END + +NUMBER QNF_IMPOSTA 15 +BEGIN + PROMPT 29 9 "" + FIELD LF_QUAN->IMPOSTA + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 50 8 "Compensi per l'assistenza " +END + +NUMBER QNF_COMPENSI 15 +BEGIN + PROMPT 50 9 "" + FIELD LF_QUAN->COMPENSI + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qp.h b/m770/77qp.h new file mode 100755 index 000000000..e65946fdc --- /dev/null +++ b/m770/77qp.h @@ -0,0 +1,19 @@ +// 77qp.h +#define QPF_NPROG 102 +#define QPF_RAGDITTA 103 +#define QPF_IMPOSTA 104 +#define QPF_INTERDIP 105 +#define QPF_INTERDAT 106 +#define QPF_TIPOVERS 107 +#define QPF_CODTRIB 108 +#define QPF_DATAVERS 109 +#define QPF_NUMERO 110 +#define QPF_SERIE 111 +#define QPF_ABI 112 +#define QPF_CAB 113 + +#define QPF_CODDITTA 181 +#define QPF_ANNODIC 182 + + + diff --git a/m770/77qp.uml b/m770/77qp.uml new file mode 100755 index 000000000..5b26e7ad1 --- /dev/null +++ b/m770/77qp.uml @@ -0,0 +1,223 @@ +// Quadro P +#include "77qp.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE +// +// Lista modifiche +// 2.4.96 Messo CAB di 5. Abi e Cab zerofilled +// + +#define ABI_CAB 7 +#define NUM_SERIE 8 +#define TEXT_NUM_SERIE 9 +#define TEXT_ABI_CAB 6 + +PAGE "MODULO 770 - QUADRO N" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QPF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QPF_CODDITTA + OUTPUT QPF_RAGDITTA RAGSOC + FIELD LF_QUAP->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QPF_NPROG 4 +BEGIN + PROMPT 1 5 "@bNumero " + FIELD LF_QUAP->NPROG + USE LF_QUAP SELECT (CODDITTA=#QPF_CODDITTA) + INPUT CODDITTA QPF_CODDITTA SELECT + INPUT NPROG QPF_NPROG + DISPLAY "N°" NPROG + DISPLAY "Imposta versata" IMPOSTA + DISPLAY "Data versamento" DATAVERS + DISPLAY "Tipo" TIPOVERS + DISPLAY "Codice tributo" CODTRIB + DISPLAY "Interessi dipendente" INTERDIP + DISPLAY "Interessi datore di lavoro" INTERDAT + DISPLAY "Serie/ABI" SERIE + DISPLAY "Numero/Bollettino/CAB" NUMERO + OUTPUT QPF_NPROG NPROG + OUTPUT QPF_CODTRIB CODTRIB + OUTPUT QPF_DATAVERS DATAVERS + OUTPUT QPF_TIPOVERS TIPOVERS + OUTPUT QPF_INTERDIP INTERDIP + OUTPUT QPF_INTERDAT INTERDAT + OUTPUT QPF_IMPOSTA IMPOSTA + CHECKTYPE REQUIRED + KEY 1 +END + +STRING QPF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QPF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "Imposta o soprattassa" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "versata" +END + +NUMBER QPF_IMPOSTA 15 +BEGIN + PROMPT 2 9 "" + FIELD LF_QUAP->IMPOSTA + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 26 7 "Interessi a carico del" +END + +TEXT DLG_NULL +BEGIN + PROMPT 26 8 "lavoratore dipendente " +END + +NUMBER QPF_INTERDIP 15 +BEGIN + PROMPT 26 9 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAP->INTERDIP +END + +TEXT DLG_NULL +BEGIN + PROMPT 54 7 "Interessi a carico del" +END + +TEXT DLG_NULL +BEGIN + PROMPT 54 8 "datore di lavoro" +END + +NUMBER QPF_INTERDAT 15 +BEGIN + PROMPT 54 9 "" + FIELD LF_QUAP->INTERDAT + PICTURE "." + FLAGS "R" +END + +TEXT 96 +BEGIN + PROMPT 2 14 "Numero serie " + GROUP TEXT_NUM_SERIE +END + +TEXT 97 +BEGIN + PROMPT 2 14 "Codice ABI " + GROUP ABI_CAB +END + +TEXT 98 +BEGIN + PROMPT 40 14 "Numero quietanza " + GROUP TEXT_NUM_SERIE +END + +TEXT 99 +BEGIN + PROMPT 42 14 "Codice CAB " + GROUP ABI_CAB +END + +GROUPBOX DLG_NULL 0 6 +BEGIN + PROMPT 1 10 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 11 "Modalità versamento " +END + +LIST QPF_TIPOVERS 1 18 +BEGIN + PROMPT 2 12 "" + ITEM " |Nessuno" + MESSAGE SHOW,97|SHOW,99|HIDE,96|HIDE,98|ENABLE,QPF_SERIE|HIDE,NUM_SERIE@ + ITEM "B|Delega bancaria" + MESSAGE HIDE,TEXT_NUM_SERIE@|SHOW,ABI_CAB@|ENABLE,ABI_CAB@|HIDE,NUM_SERIE@ + ITEM "D|Distinta" + MESSAGE SHOW,TEXT_NUM_SERIE@|ENABLE,NUM_SERIE@|SHOW,NUM_SERIE@|HIDE,ABI_CAB@|DISABLE,ABI_CAB@ + ITEM "C|C/C Postale" + MESSAGE SHOW,TEXT_NUM_SERIE@|CLEAR,QPF_ABI|CLEAR,QPF_SERIE|HIDE,ABI_CAB@ + MESSAGE DISABLE,QPF_SERIE|DISABLE,ABI_CAB@ + FIELD LF_QUAP->TIPOVERS +END + +NUMBER QPF_CODTRIB 4 +BEGIN + PROMPT 22 12 "Codice tributo " + FIELD LF_QUAP->CODTRIB +END + +DATE QPF_DATAVERS +BEGIN + PROMPT 43 12 "Data versamento " + FIELD LF_QUAP->DATAVERS +END + +STRING QPF_SERIE 5 +BEGIN + PROMPT 23 14 "" + FIELD LF_QUAP->SERIE + GROUP NUM_SERIE +END + +STRING QPF_NUMERO 11 +BEGIN + PROMPT 58 14 "" + FIELD LF_QUAP->NUMERO + GROUP NUM_SERIE +END + +NUMBER QPF_ABI 5 +BEGIN + PROMPT 23 14 "" + FIELD LF_QUAP->SERIE + FLAGS "Z" + GROUP ABI_CAB +END + +NUMBER QPF_CAB 5 +BEGIN + PROMPT 58 14 "" + FIELD LF_QUAP->NUMERO + FLAGS "Z" + GROUP ABI_CAB +END + + +ENDPAGE + +ENDMASK + diff --git a/m770/77qq.h b/m770/77qq.h new file mode 100755 index 000000000..f6f282f5a --- /dev/null +++ b/m770/77qq.h @@ -0,0 +1,17 @@ +// 77qq.h +#define QQF_NPROG 102 +#define QQF_RAGDITTA 103 +#define QQF_MESERIF 104 +#define QQF_ANNORIF 105 + +#define QQF_CONTVERS 106 +#define QQF_CONTRIMB 107 + +#define QQF_INTERESSI 108 +#define QQF_CODREG 109 + +#define QQF_CODDITTA 181 +#define QQF_ANNODIC 182 + + + diff --git a/m770/77qq.uml b/m770/77qq.uml new file mode 100755 index 000000000..c28b0b9a3 --- /dev/null +++ b/m770/77qq.uml @@ -0,0 +1,173 @@ +// Quadro Q +#include "77qq.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - QUADRO Q" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QQF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QQF_CODDITTA + OUTPUT QQF_RAGDITTA RAGSOC + FIELD LF_QUAQ->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QQF_NPROG 4 +BEGIN + PROMPT 1 5 "@bNumero " + FIELD LF_QUAQ->NPROG + USE LF_QUAQ SELECT (CODDITTA=#QQF_CODDITTA) + INPUT CODDITTA QQF_CODDITTA SELECT + INPUT NPROG QQF_NPROG + DISPLAY "N°" NPROG + DISPLAY "Mese" MESEPAG + DISPLAY "Anno" ANNOPAG + DISPLAY "Cod.reg." CODREG + DISPLAY "Interessi o soprattasse" INTERESSI + DISPLAY "Contributo versato" CONTVERS + DISPLAY "Contributo rimborsato" CONTRIMB + OUTPUT QQF_NPROG NPROG + OUTPUT QQF_CONTRIMB CONTRIMB + OUTPUT QQF_CONTVERS CONTVERS + CHECKTYPE REQUIRED + KEY 1 +END + +STRING QQF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QQF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bPeriodo di paga" +END + +GROUPBOX DLG_NULL 26 4 +BEGIN + PROMPT 1 7 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "Mese" +END + +LIST QQF_MESERIF 1 12 +BEGIN + PROMPT 2 9 "" + FIELD LF_QUAQ->MESEPAG + WARNING "Manca il mese" + FLAGS "M" + ITEM "|" + CHECKTYPE REQUIRED +END + +TEXT DLG_NULL +BEGIN + PROMPT 17 8 "Anno" +END + +NUMBER QQF_ANNORIF 4 +BEGIN + PROMPT 17 9 "" + WARNING "Manca l'anno" + CHECKTYPE REQUIRED + FIELD LF_QUAQ->ANNOPAG +END + +TEXT DLG_NULL +BEGIN + PROMPT 29 8 "Contributo versato " +END + +NUMBER QQF_CONTVERS 15 +BEGIN + PROMPT 29 9 "" + FIELD LF_QUAQ->CONTVERS + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 50 8 "Contributo rimborsato " +END + +NUMBER QQF_CONTRIMB 15 +BEGIN + PROMPT 50 9 "" + FIELD LF_QUAQ->CONTRIMB + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 12 "Interessi e/o soprattasse " +END + +NUMBER QQF_INTERESSI 15 +BEGIN + PROMPT 2 13 "" + FIELD LF_QUAQ->INTERESSI + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 40 12 "Codice regione " +END + +LIST QQF_CODREG 21 +BEGIN + PROMPT 40 13 "" + ITEM "|" + ITEM "A|Abruzzo" + ITEM "B|Basilicata" + ITEM "C|Bolzano" + ITEM "D|Calabria" + ITEM "E|Campania" + ITEM "F|Emilia Romagna" + ITEM "G|Friuli Venezia Giulia" + ITEM "H|Lazio" + ITEM "K|Liguria" + ITEM "L|Lombardia" + ITEM "M|Marche" + ITEM "N|Molise" + ITEM "P|Piemonte" + ITEM "Q|Puglia" + ITEM "R|Sardegna" + ITEM "S|Sicilia" + ITEM "T|Toscana" + ITEM "U|Trento" + ITEM "V|Umbria" + ITEM "W|Valle d'Aosta" + ITEM "Z|Veneto " + FIELD LF_QUAQ->CODREG + CHECKTYPE REQUIRED +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qr.h b/m770/77qr.h new file mode 100755 index 000000000..2570e324e --- /dev/null +++ b/m770/77qr.h @@ -0,0 +1,13 @@ +// 77qr.h +#define QRF_NPROG 102 +#define QRF_RAGDITTA 103 +#define QRF_MESERIF 104 +#define QRF_ANNORIF 105 +#define QRF_IMPOSTA 106 +#define QRF_COMPENSI 107 + +#define QRF_CODDITTA 181 +#define QRF_ANNODIC 182 + + + diff --git a/m770/77qr.uml b/m770/77qr.uml new file mode 100755 index 000000000..d7d77d5ff --- /dev/null +++ b/m770/77qr.uml @@ -0,0 +1,126 @@ +// Quadro R +#include "77qr.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - QUADRO R" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QRF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QRF_CODDITTA + OUTPUT QRF_RAGDITTA RAGSOC + FIELD LF_QUAR->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QRF_NPROG 4 +BEGIN + PROMPT 1 5 "@bNumero " + FIELD LF_QUAR->NPROG + USE LF_QUAR SELECT (CODDITTA=#QRF_CODDITTA) + INPUT CODDITTA QRF_CODDITTA SELECT + INPUT NPROG QRF_NPROG + DISPLAY "N°" NPROG + DISPLAY "Mese" MESERIF + DISPLAY "Anno" ANNORIF + DISPLAY "Imposta rimborsata" IMPRIMB + DISPLAY "Compensi per l'assistenza" COMPENSI + OUTPUT QRF_NPROG NPROG + OUTPUT QRF_COMPENSI COMPENSI + OUTPUT QRF_IMPOSTA IMPRIMB + OUTPUT QRF_ANNORIF ANNORIF + OUTPUT QRF_MESERIF MESERIF + CHECKTYPE REQUIRED + KEY 1 +END + +STRING QRF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QRF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bPeriodo di riferimento " +END + +GROUPBOX DLG_NULL 26 4 +BEGIN + PROMPT 1 7 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "Mese" +END + +LIST QRF_MESERIF 1 12 +BEGIN + PROMPT 2 9 "" + FIELD LF_QUAR->MESERIF + WARNING "Manca il mese" + FLAGS "M" + ITEM "|" + CHECKTYPE REQUIRED +END + +TEXT DLG_NULL +BEGIN + PROMPT 17 8 "Anno" +END + +NUMBER QRF_ANNORIF 4 +BEGIN + PROMPT 17 9 "" + WARNING "Manca l'anno" + CHECKTYPE REQUIRED + FIELD LF_QUAR->ANNORIF +END + +TEXT DLG_NULL +BEGIN + PROMPT 29 8 "Imposta rimborsata " +END + +NUMBER QRF_IMPOSTA 15 +BEGIN + PROMPT 29 9 "" + FIELD LF_QUAR->IMPRIMB + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 50 8 "Compensi per l'assistenza " +END + +NUMBER QRF_COMPENSI 15 +BEGIN + PROMPT 50 9 "" + FIELD LF_QUAR->COMPENSI + PICTURE "." + FLAGS "R" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77qs.h b/m770/77qs.h new file mode 100755 index 000000000..a1cf33a7e --- /dev/null +++ b/m770/77qs.h @@ -0,0 +1,19 @@ +// 77qs.h +#define QSF_NPROG 102 +#define QSF_RAGDITTA 103 +#define QSF_IMPOSTA 104 +#define QSF_INTERDIP 105 +#define QSF_INTERDAT 106 +#define QSF_TIPOVERS 107 +#define QSF_CODTRIB 108 +#define QSF_DATAVERS 109 +#define QSF_NUMERO 110 +#define QSF_SERIE 111 +#define QSF_ABI 112 +#define QSF_CAB 113 + +#define QSF_CODDITTA 181 +#define QSF_ANNODIC 182 + + + diff --git a/m770/77qs.uml b/m770/77qs.uml new file mode 100755 index 000000000..c03b3921e --- /dev/null +++ b/m770/77qs.uml @@ -0,0 +1,222 @@ +// Quadro S +#include "77qs.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE +// +// Lista modifiche +// 2.4.96 Messo CAB di 5. Abi e Cab zerofilled +// + +#define ABI_CAB 7 +#define NUM_SERIE 8 +#define TEXT_NUM_SERIE 9 +#define TEXT_ABI_CAB 6 + +PAGE "MODULO 770 - QUADRO S" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QSF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QSF_CODDITTA + OUTPUT QSF_RAGDITTA RAGSOC + FIELD LF_QUAS->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QSF_NPROG 4 +BEGIN + PROMPT 1 5 "@bNumero " + FIELD LF_QUAS->NPROG + USE LF_QUAS SELECT (CODDITTA=#QSF_CODDITTA) + INPUT CODDITTA QSF_CODDITTA SELECT + INPUT NPROG QSF_NPROG + DISPLAY "N°" NPROG + DISPLAY "Imposta versata" IMPOSTA + DISPLAY "Data versamento" DATAVERS + DISPLAY "Tipo" TIPOVERS + DISPLAY "Codice tributo" CODTRIB + DISPLAY "Interessi dipendente" INTERDIP + DISPLAY "Interessi datore di lavoro" INTERDAT + DISPLAY "Serie/ABI" SERIE + DISPLAY "Numero/Bollettino/CAB" NUMERO + OUTPUT QSF_NPROG NPROG + OUTPUT QSF_CODTRIB CODTRIB + OUTPUT QSF_DATAVERS DATAVERS + OUTPUT QSF_TIPOVERS TIPOVERS + OUTPUT QSF_INTERDIP INTERDIP + OUTPUT QSF_INTERDAT INTERDAT + OUTPUT QSF_IMPOSTA IMPOSTA + CHECKTYPE REQUIRED + KEY 1 +END + +STRING QSF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QSF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 7 "Imposta o soprattassa" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "versata" +END + +NUMBER QSF_IMPOSTA 15 +BEGIN + PROMPT 2 9 "" + FIELD LF_QUAS->IMPOSTA + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 26 7 "Interessi a carico del" +END + +TEXT DLG_NULL +BEGIN + PROMPT 26 8 "lavoratore dipendente " +END + +NUMBER QSF_INTERDIP 15 +BEGIN + PROMPT 26 9 "" + PICTURE "." + FLAGS "R" + FIELD LF_QUAS->INTERDIP +END + +TEXT DLG_NULL +BEGIN + PROMPT 54 7 "Interessi a carico del" +END + +TEXT DLG_NULL +BEGIN + PROMPT 54 8 "datore di lavoro" +END + +NUMBER QSF_INTERDAT 15 +BEGIN + PROMPT 54 9 "" + FIELD LF_QUAS->INTERDAT + PICTURE "." + FLAGS "R" +END + +TEXT 96 +BEGIN + PROMPT 2 14 "Numero serie " + GROUP TEXT_NUM_SERIE +END + +TEXT 97 +BEGIN + PROMPT 2 14 "Codice ABI " + GROUP ABI_CAB +END + +TEXT 98 +BEGIN + PROMPT 42 14 "Numero quietanza " + GROUP TEXT_NUM_SERIE +END + +TEXT 99 +BEGIN + PROMPT 42 14 "Codice CAB " + GROUP ABI_CAB +END + +GROUPBOX DLG_NULL 0 6 +BEGIN + PROMPT 1 10 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 11 "Modalità versamento " +END + +LIST QSF_TIPOVERS 1 18 +BEGIN + PROMPT 2 12 "" + ITEM " |Nessuno" + MESSAGE SHOW,97|SHOW,99|HIDE,96|HIDE,98|ENABLE,QSF_SERIE|HIDE,NUM_SERIE@ + ITEM "B|Delega bancaria" + MESSAGE HIDE,TEXT_NUM_SERIE@|SHOW,ABI_CAB@|ENABLE,ABI_CAB@|DISABLE,NUM_SERIE@|HIDE,NUM_SERIE@ + ITEM "D|Distinta" + MESSAGE SHOW,TEXT_NUM_SERIE@|HIDE,ABI_CAB@|SHOW,NUM_SERIE@|ENABLE,NUM_SERIE@|DISABLE,ABI_CAB@ + ITEM "C|C/C Postale" + MESSAGE SHOW,TEXT_NUM_SERIE@|CLEAR,QSF_ABI|CLEAR,QSF_SERIE|HIDE,ABI_CAB@|DISABLE,QSF_SERIE|DISABLE,ABI_CAB@ + FIELD LF_QUAS->TIPOVERS +END + +NUMBER QSF_CODTRIB 4 +BEGIN + PROMPT 22 12 "Codice tributo " + FIELD LF_QUAS->CODTRIB +END + +DATE QSF_DATAVERS +BEGIN + PROMPT 43 12 "Data versamento " + FIELD LF_QUAS->DATAVERS +END + +STRING QSF_SERIE 5 +BEGIN + PROMPT 23 14 "" + FIELD LF_QUAS->SERIE + GROUP NUM_SERIE +END + +STRING QSF_NUMERO 11 +BEGIN + PROMPT 58 14 "" + FIELD LF_QUAS->NUMERO + GROUP NUM_SERIE +END + +NUMBER QSF_ABI 5 +BEGIN + PROMPT 23 14 "" + FIELD LF_QUAS->SERIE + FLAGS "Z" + GROUP ABI_CAB +END + +NUMBER QSF_CAB 5 +BEGIN + PROMPT 58 14 "" + FIELD LF_QUAS->NUMERO + FLAGS "Z" + GROUP ABI_CAB +END + + +ENDPAGE + +ENDMASK + diff --git a/m770/77qt.h b/m770/77qt.h new file mode 100755 index 000000000..bb9feec71 --- /dev/null +++ b/m770/77qt.h @@ -0,0 +1,17 @@ +// 77qt.h +#define QTF_NPROG 102 +#define QTF_RAGDITTA 103 +#define QTF_MESERIF 104 +#define QTF_ANNORIF 105 + +#define QTF_CONTVERS 106 +#define QTF_CONTRIMB 107 + +#define QTF_INTERESSI 108 +#define QTF_CODREG 109 + +#define QTF_CODDITTA 181 +#define QTF_ANNODIC 182 + + + diff --git a/m770/77qt.uml b/m770/77qt.uml new file mode 100755 index 000000000..4d6199d34 --- /dev/null +++ b/m770/77qt.uml @@ -0,0 +1,174 @@ +// Quadro T +#include "77qt.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "MODULO 770 - QUADRO Q" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER QTF_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "GRD" + USE LF_NDITTE KEY 1 + INPUT CODDITTA QTF_CODDITTA + OUTPUT QTF_RAGDITTA RAGSOC + FIELD LF_QUAT->CODDITTA + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER QTF_NPROG 4 +BEGIN + PROMPT 1 5 "@bNumero " + FIELD LF_QUAT->NPROG + USE LF_QUAT SELECT (CODDITTA=#QTF_CODDITTA) + INPUT CODDITTA QTF_CODDITTA SELECT + INPUT NPROG QTF_NPROG + DISPLAY "N°" NPROG + DISPLAY "Mese" MESEPAG + DISPLAY "Anno" ANNOPAG + DISPLAY "Cod.reg." CODREG + DISPLAY "Interessi o soprattasse" INTERESSI + DISPLAY "Contributo versato" CONTVERS + DISPLAY "Contributo rimborsato" CONTRIMB + OUTPUT QTF_NPROG NPROG + OUTPUT QTF_CONTRIMB CONTRIMB + OUTPUT QTF_CONTVERS CONTVERS + CHECKTYPE REQUIRED + KEY 1 +END + +STRING QTF_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER QTF_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bPeriodo di paga" +END + +GROUPBOX DLG_NULL 26 4 +BEGIN + PROMPT 1 7 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 8 "Mese" +END + +LIST QTF_MESERIF 1 12 +BEGIN + PROMPT 2 9 "" + FIELD LF_QUAT->MESEPAG + WARNING "Manca il mese" + FLAGS "M" + ITEM "|" + CHECKTYPE REQUIRED +END + +TEXT DLG_NULL +BEGIN + PROMPT 17 8 "Anno" +END + +NUMBER QTF_ANNORIF 4 +BEGIN + PROMPT 17 9 "" + WARNING "Manca l'anno" + CHECKTYPE REQUIRED + FIELD LF_QUAT->ANNOPAG +END + +TEXT DLG_NULL +BEGIN + PROMPT 29 8 "Contributo versato " +END + +NUMBER QTF_CONTVERS 15 +BEGIN + PROMPT 29 9 "" + FIELD LF_QUAT->CONTVERS + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 50 8 "Contributo rimborsato " +END + +NUMBER QTF_CONTRIMB 15 +BEGIN + PROMPT 50 9 "" + FIELD LF_QUAT->CONTRIMB + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 12 "Interessi e/o soprattasse " +END + +NUMBER QTF_INTERESSI 15 +BEGIN + PROMPT 2 13 "" + FIELD LF_QUAT->INTERESSI + PICTURE "." + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 40 12 "Codice regione " +END + +LIST QTF_CODREG 21 +BEGIN +// PROMPT 40 13 "Codice regione " + PROMPT 40 13 "" + ITEM "|" + ITEM "A|Abruzzo" + ITEM "B|Basilicata" + ITEM "C|Bolzano" + ITEM "D|Calabria" + ITEM "E|Campania" + ITEM "F|Emilia Romagna" + ITEM "G|Friuli Venezia Giulia" + ITEM "H|Lazio" + ITEM "K|Liguria" + ITEM "L|Lombardia" + ITEM "M|Marche" + ITEM "N|Molise" + ITEM "P|Piemonte" + ITEM "Q|Puglia" + ITEM "R|Sardegna" + ITEM "S|Sicilia" + ITEM "T|Toscana" + ITEM "U|Trento" + ITEM "V|Umbria" + ITEM "W|Valle d'Aosta" + ITEM "Z|Veneto " + FIELD LF_QUAT->CODREG + CHECKTYPE REQUIRED +END + +ENDPAGE + +ENDMASK + diff --git a/m770/77stq.cpp b/m770/77stq.cpp new file mode 100755 index 000000000..9db734994 --- /dev/null +++ b/m770/77stq.cpp @@ -0,0 +1,3333 @@ +// Stampa quadro +#include +#include +#include +#include +#include +#include +#include +#include +#include "base.h" +#include + +#include +#include +#include "quadrod.h" +#include "quadrod1.h" +#include "quadrogd.h" +#include "quadrif.h" +#include "77stqd.h" +#include "77lib.h" + +// +// Lista modifiche +// +// 3.4.96 Nella stampa per Modulaser, aggiunto all'inizio un comando per settare +// il font della stampante a 17cpi (v.riga 176) +// + + +// Chincaglieria che serve per posiziona() +typedef long HWND; +HWND hInst; +HIDDEN const int MAX_LEN = 300; +extern "C" { + BOOLEAN PrintLineNow( char *pData, word cbBytes, HWND hInst ); +}; + + +HIDDEN TString16 __dep16; +HIDDEN TString80 __dep80; +HIDDEN const char* form(TString& quadro); + +// Vega-Key di Modulaser +HIDDEN const char* VK_STARTDOC = "&MA795&0&1"; +HIDDEN const char* VK_ENDDOC = "!0"; +HIDDEN const char* VK_STARTPAGE[] = { "*9*1", "*9*2", "*9*3", "*9*4" }; +typedef enum { STARTDOC, STARTDITTA, STARTPAGE, ENDDOC } ModulaserKey; + +// Campi form +#define TOT_TOTALE 1 +#define TOT_SNSRIT 2 +#define TOT_IMPON 3 +#define TOT_IMPOR 4 +#define TOT_NETTO 5 +#define H_COFI_DIC 13 +#define H_NUM_FOGLIO 14 + +// Quadro D +HIDDEN const int QD_FORMLEN_PRIMA = 70; // 72 - 3 (3 e' la posizione della X di posiz.) +HIDDEN const int QD_FORMLEN = 72; +HIDDEN const int POS_DITTA = 91; // Colonna del codice ditta a pie' di modulo +HIDDEN const int QD_PAGINE = 4; +HIDDEN const int QD_RIGHE_PRIMA = 5; +HIDDEN const int QD_RIGHE_SECONDA = 7; +HIDDEN const int QD_RIGHE_TERZA = 6; +HIDDEN const int QD_RIGHE_QUARTA = 6; +HIDDEN const int HEADER_SECONDA = 7; +HIDDEN const int HEADER_TERZA = 8; // Sarebbero 9 col righello... +HIDDEN const int HEADER_QUARTA = 14; // 15 col righello... + +typedef enum { PRIMA=1, SECONDA, TERZA, QUARTA } PagineQD; +typedef enum { fisiche, nofisiche } TipoPagina; + +/////////////////////////////////////////////////////////////////////////////////////////// +// +// Quadro D +// +/////////////////////////////////////////////////////////////////////////////////////////// + +class TDicForm : public TForm +{ + private: + real _f_tot_totale, _f_tot_snsrit, _f_tot_impon, _f_tot_impor, _f_tot_netto; + real _nf_tot_totale, _nf_tot_snsrit, _nf_tot_impon, _nf_tot_impor, _nf_tot_netto; + void aggiorna_totali_C(const char tipo); + void aggiorna_totali_D(const char tipo); + void aggiorna_totali_D1(const char tipo); + void aggiorna_totali_E(const char tipo); + void aggiorna_totali_E1(const char tipo); + + TRelation* _rel; + TCursor* _cur; + TSorted_cursor* _sorted_cur; + + protected: + long _Items; // numero di record che hanno passato il filtro + PagineQD _PaginaCorrente; + void set_curr_page(PagineQD pagina) { _PaginaCorrente = pagina; } + virtual void inc_curr_page(); + virtual void next_page(TPrinter& pr); + bool _modulaser; // se stampa per modulaser + bool _posiziona; // se deve fare posizionamento + TipoDitta _tipo_ditta; // tipo ditta: normale, estinto, dichiarante + int _num_foglio; // numero foglio + TString _cofi_dic; // cod.fis. dichiarante + bool _can_print_tot_fis, _can_print_tot_nofis; + bool _finite_fis, _finite_nofis, _LastDitta, _EndPrintDitta; + bool _GiaStampatiFis, _GiaStampatiNoFis, _PaginaPosizionamento; + bool _GiaPosizionato, _GiaMessoStartDoc, _GiaMessoStartPage[QD_PAGINE]; // flag per modulaser + int _CtrNoFisStampati, _CtrFisStampati; // contatori p.f. e p.g. stampate + long _codditta; // ditta in stampa + int _RigaCorr; // contatore riga corrente + TString16 _quadro; // codice quadro in stampa + virtual TCursor* cursor() const { return _cur; } + virtual TRelation* relation() const { return _rel; } + void stampa_testata(TPrinter& pr); + virtual void stampa_totali(TPrinter& pr); + virtual void aggiorna_totali(const char tipo); + virtual void set_body(TPrinter& pr, const char tipo, const bool UsaProgind); + void StampaPagina(PagineQD PaginaCorrente, const bool StampaTotali, const long Fis, const long NoFis); + void posiziona(); + void fill_page(TPrinter& pr, const int righe); + void put_modulaser(TPrintrow& row, ModulaserKey key, int page=0); + void ClearFlagModulaser(); + bool PaginaPosizionamento() const; + virtual bool InitPrint(const long codditta); + bool _UsaProgind; // usa la progind solo se non e' stampa a video + + public: + + const long filtra(const long codditta); + virtual bool UsaSortedCursor() { return TRUE; } + + TProgind* _prog; // progind usata in print() + + void set_progind(TProgind* prog, bool usaprogind) { _prog = prog; _UsaProgind = usaprogind; } + long codditta() const { return _codditta; } + void set_codditta(const long ditta) { _codditta = ditta; } + void set_posiziona(const bool posiz) { _posiziona = posiz; _GiaPosizionato = FALSE; } + void can_print_tot_fis(const bool canpr) { _can_print_tot_fis = canpr; } + void can_print_tot_nofis(const bool canpr) { _can_print_tot_nofis = canpr; } + void set_last_ditta(const bool last) { _LastDitta = last; } + bool last_ditta() const { return _LastDitta; } + bool EndJob() const { return _LastDitta && _EndPrintDitta; } + bool ultima_fis(); + bool ultima_nofis(); + TString& cofi_dic() { return _cofi_dic; } + void set_cofi_dic(const char* cofi) { _cofi_dic = cofi; } + TipoDitta tipo_ditta() const { return _tipo_ditta; } + void set_tipo_ditta(TipoDitta tipo) { _tipo_ditta = tipo; } + bool modulaser() const { return _modulaser; } + void set_modulaser(const bool modul) { _modulaser = modul; } + void set_num_foglio(const int foglio) { _num_foglio = foglio; } + int num_foglio() const { return _num_foglio; } + void azzera_totali(); + PagineQD curr_page() const { return _PaginaCorrente; } + TCursor& cur(); + TProgind* progind() { return _prog; } + bool usaprogind() const { return _UsaProgind; } + virtual void set_cur_rel(TRelation* rel, TCursor* cur); + virtual void close_print(); + virtual bool print(const long codditta, const long NumFis, const long NumNoFis); + + TDicForm(const char* form, const char* quadro); + virtual ~TDicForm() {} +}; + +TCursor& TDicForm::cur() +{ + if (UsaSortedCursor()) + return *_sorted_cur; + else + return *_cur; +} + +void TDicForm::set_cur_rel(TRelation* rel, TCursor* cur) +{ + _rel = rel; + if (UsaSortedCursor()) + _sorted_cur = (TSorted_cursor*) cur; + else + _cur = cur; +} + +TDicForm::TDicForm(const char* form, const char* quadro) : _quadro(quadro), TForm(form) +{ + _can_print_tot_fis = _can_print_tot_nofis = FALSE; + _GiaStampatiFis = _GiaStampatiNoFis = _GiaMessoStartDoc = FALSE; + _GiaPosizionato = _posiziona = _modulaser = FALSE; + _LastDitta = _EndPrintDitta = _PaginaPosizionamento = FALSE; + ClearFlagModulaser(); +} + +const long TDicForm::filtra(const long codditta) +{ + long items=0L; + TString filtr(20); + + filtr.format("CODDITTA=%ld", codditta); + if (UsaSortedCursor()) + { + _sorted_cur->setfilter(filtr, TRUE); + items = _sorted_cur->items(); + } + else + { + _cur->setfilter(filtr, TRUE); + items = _cur->items(); + } + + return items; +} + + +bool TDicForm::InitPrint(const long codditta) +{ + _codditta = codditta; + _RigaCorr = 0; + + TPrinter& pr = printer(); + pr.set_offset(offset_y(), offset_x()); + pr.set_char_size(fontsize()); // Set font name and size + pr.set_fontname(fontname()); // according to current form + + if (_posiziona && !_GiaPosizionato && pr.printtype() != screenvis && + pr.printtype() != fileprinter) +// arrange_form(); + posiziona(); + +#ifdef DBG + if (pr.printtype() != screenvis) + if (!yesno_box("Proseguo con la stampa ?")) + return FALSE; +#endif + + const bool was_open = pr.isopen(); + + set_last_page(FALSE); + set_background(1, TRUE); + set_curr_page(PRIMA); + + if (!was_open && !pr.open()) + return FALSE; + do_events(); + + _Items = filtra(codditta); + + if (_Items == 0L) // Se non ci sono record non stampa + return FALSE; + + _prog = NULL; + _UsaProgind = pr.printtype() != screenvis; + if (_UsaProgind) + { + TString msg(60); + msg.format("Elaborazione in corso ditta %ld", codditta); + _prog = new TProgind(_Items, msg, FALSE,TRUE); + } + return TRUE; +} + +void TDicForm::close_print() +{ + if (_UsaProgind) + delete _prog; +} + +bool TDicForm::print(const long codditta, const long NumFis, const long NumNoFis) +{ + TCursor* cur = UsaSortedCursor() ? _sorted_cur : _cur; + + bool StabilitaInesistenzaNoFis = FALSE; + bool StabilitaInesistenzaFis = FALSE; + long CtrFis = NumFis; + long CtrNoFis = NumNoFis; + long PtrFis = -1L, PtrNoFis=-1L; + TPrinter& pr = printer(); + + _CtrFisStampati = _CtrNoFisStampati = 0; + _finite_fis = _finite_nofis = FALSE; + _GiaStampatiFis = _GiaStampatiNoFis = FALSE; + _EndPrintDitta = FALSE; // Vero se stampato l'ultimo record + bool LastRecord = FALSE; // Vero se letto l'ultimo record + + _PaginaCorrente = PRIMA; + _UsaProgind = FALSE; + + if (!InitPrint(codditta)) + return FALSE; + + while (!_EndPrintDitta) + { + for (int pagina=1; pagina <= QD_PAGINE; pagina++, next_page(pr)) + { + pr.formlen(QD_FORMLEN); + + if (_PaginaCorrente == PRIMA) + { + if (_modulaser) ClearFlagModulaser(); + + for (int righe=0; righe < QD_RIGHE_PRIMA; righe++) + { +// Stampa intestazione, solo sul primo foglio. + if (!righe) + { + (*cur) = PtrFis >= 0L ? PtrFis : 0L; + stampa_testata(pr); + } + + if (_finite_fis || StabilitaInesistenzaFis) + break; + +// La prima volta si deve posizionare sul primo record di p.f. + if (PtrFis<0L && !StabilitaInesistenzaFis) + { + bool Trovato = FALSE; + + while (!Trovato) + { + const long ditta = cur->curr().get_long(QUD_CODDITTA); + if (ditta != codditta) + break; + const char tipo = cur->curr().get(QUD_TIPOA)[0]; + if (tipo != 'G') + { + PtrFis = cur->pos(); + Trovato = TRUE; + break; + } + else + ++(*cur); + } + StabilitaInesistenzaFis = !Trovato; + } + + if (StabilitaInesistenzaFis) + break; + + (*cur) = PtrFis; + const char tipo = cur->curr().get(QUD_TIPOA)[0]; + + if (tipo != 'F') + break; + else + { + CtrFis--; + if (CtrFis == 0L) _finite_fis = TRUE; + set_body(pr, 'F', _UsaProgind); +// La stampa e' finita se ho STAMPATO l'ultimo record + LastRecord = cur->pos() >= _Items-1; + _EndPrintDitta = LastRecord; + if (!LastRecord) + { + ++(*cur); + PtrFis = cur->pos(); + LastRecord = cur->pos() >= _Items-1; + } + } + } // for righe.. + PtrFis = cur->pos(); + } + + if (_PaginaCorrente == SECONDA) + { +// Reset del flag di pagina con posiz. + if (_posiziona && _PaginaPosizionamento) _PaginaPosizionamento = FALSE; + for (int righe=0; righe < QD_RIGHE_SECONDA; righe++) + { + if (!righe) + fill_page(pr, HEADER_SECONDA); + + if (_finite_fis || StabilitaInesistenzaFis) + break; + + (*cur) = PtrFis; + const char tipo = cur->curr().get(QUD_TIPOA)[0]; + + if (tipo != 'F') + break; + else + { + CtrFis--; + if (CtrFis == 0L) _finite_fis = TRUE; + set_body(pr, 'F', _UsaProgind); + LastRecord = cur->pos() >= _Items-1; + _EndPrintDitta = LastRecord; + if (!LastRecord) + { + ++(*cur); + PtrFis = cur->pos(); + LastRecord = cur->pos() >= _Items-1; + } + } + } + PtrFis = cur->pos(); + } + + if (_PaginaCorrente == TERZA) + { + for (int righe=0; righe < QD_RIGHE_TERZA; righe++) + { + if (!righe) + { + fill_page(pr, HEADER_TERZA); + _CtrFisStampati = 0; // conta quelli che stampo sulla terza + } + + if (_finite_fis || StabilitaInesistenzaFis) + break; + + (*cur) = PtrFis; + const char tipo = cur->curr().get(QUD_TIPOA)[0]; + + if (tipo != 'F') + break; + else + { + CtrFis--; + if (CtrFis == 0L) _finite_fis = TRUE; + set_body(pr, 'F', _UsaProgind); + LastRecord = cur->pos() >= _Items-1; + _EndPrintDitta = LastRecord; + _CtrFisStampati++; + if (!LastRecord) + { + ++(*cur); + PtrFis = cur->pos(); + LastRecord = cur->pos() >= _Items-1; + } + } + } + PtrFis = cur->pos(); + } + + if (_PaginaCorrente == QUARTA) + { + for (int righe=0; righe < QD_RIGHE_QUARTA; righe++) + { + if (!righe) + _CtrNoFisStampati = 0; + +// All'inizio salta le righe in alto + if (!righe) + fill_page(pr, HEADER_QUARTA); + + if (_finite_nofis || StabilitaInesistenzaNoFis) + break; + +// La prima volta si deve posizionare sul primo record di p.g. + if (PtrNoFis<0L && !StabilitaInesistenzaNoFis) + { + bool Trovato = FALSE; + bool eof = FALSE; + (*cur) = PtrFis-1 > 0L ? PtrFis-1 : 0L; // parti dall'inizio + while (!Trovato && !eof) + { + eof = cur->pos() >= _Items-1; + const long ditta = cur->curr().get_long(QUD_CODDITTA); + if (ditta != codditta) + break; + const char tipo = cur->curr().get(QUD_TIPOA)[0]; + if (tipo != 'F') + { + PtrNoFis = cur->pos(); + Trovato = TRUE; + break; + } + else + ++(*cur); + } + StabilitaInesistenzaNoFis = !Trovato; + } + + if (StabilitaInesistenzaNoFis) + break; + + (*cur) = PtrNoFis; + const char tipo = cur->curr().get(QUD_TIPOA)[0]; + + if (tipo != 'G') + break; + else + { + CtrNoFis--; + if (CtrNoFis == 0L) _finite_nofis = TRUE; + set_body(pr, 'G', _UsaProgind); + LastRecord = cur->pos() >= _Items-1; + _EndPrintDitta = LastRecord; + _CtrNoFisStampati++; + if (!LastRecord) + { + ++(*cur); + PtrNoFis = cur->pos(); + LastRecord = cur->pos() >= _Items-1; + } + } + } + PtrNoFis = cur->pos(); + } + } // for pagina.. + } // while !_EndPrintDitta + close_print(); + return TRUE; +} + + +void TDicForm::ClearFlagModulaser() +{ + for (int i=0; i<=QD_PAGINE; i++) + _GiaMessoStartPage[i] = FALSE; +} + +bool TDicForm::ultima_fis() +{ + return _can_print_tot_fis && _finite_fis && !_GiaStampatiFis; +} + +bool TDicForm::ultima_nofis() +{ + return _can_print_tot_nofis && _finite_nofis && !_GiaStampatiNoFis; +} + +void TDicForm::inc_curr_page() +{ + if (_PaginaCorrente == PRIMA) + _PaginaCorrente = SECONDA; + else + if (_PaginaCorrente == SECONDA) + _PaginaCorrente = TERZA; + else + if (_PaginaCorrente == TERZA) + _PaginaCorrente = QUARTA; + else + if (_PaginaCorrente == QUARTA) + _PaginaCorrente = PRIMA; +} + +void TDicForm::put_modulaser(TPrintrow& row, ModulaserKey Cmd, int page) +{ + TString riga(80); + + switch (Cmd) + { + case STARTDOC: + if (!_GiaMessoStartDoc) + { +// riga = VK_STARTDOC; + riga = "\xf"; // Printer escape: font 17cpi + riga << VK_STARTDOC; + _GiaMessoStartDoc = TRUE; + } + break; + case STARTDITTA: + { + TString cofi(16); + const char* tmp = _cur->file(-116).get(ANA_COFI); + cofi.format("%-16s", tmp); + TString ragsoc(50); + ragsoc = _cur->file(LF_NDITTE).get(NDT_RAGSOC); + riga = "$"; + riga << cofi; + riga << "$0$"; + riga << ragsoc; + } + break; + case STARTPAGE: + riga = "*9*"; + riga << page; + _GiaMessoStartPage[page] = TRUE; + break; + case ENDDOC: + riga = VK_ENDDOC; + break; + default: + break; + } + riga.rtrim(); + riga << '\r'; + row.put(riga); +} + + +bool TDicForm::PaginaPosizionamento() const +{ + return curr_page() == PRIMA && _PaginaPosizionamento; +} + +// Stampa "righe" righe vuote. Se righe e' -1 fa un formfeed mettendo +// il codice ditta sull'ultima riga +void TDicForm::fill_page(TPrinter& pr, const int righe) +{ + TPrintrow row; + PagineQD pagina = curr_page(); + +// form feed + if (righe < 0) + { + const bool PrimaPagina = curr_page() == PRIMA; + int stop = PaginaPosizionamento() ? QD_FORMLEN_PRIMA : QD_FORMLEN; + for (int i = _RigaCorr; i < stop; i++) + { + if (i == 0) + if (_modulaser) + { + if (!_GiaMessoStartPage[pagina]) + put_modulaser(row, STARTPAGE, pagina); + } +// Sull'ultima riga metto il codice ditta + if (i == stop-1) + { + if (_modulaser && EndJob() && curr_page() == QUARTA) + put_modulaser(row, ENDDOC); + + TString16 ditta; ditta << _codditta; + row.put(ditta, POS_DITTA); + } + pr.print(row); + } + _RigaCorr = 0; + return; + } + else // righe > 0 + for (int i=0; i0) + fill_page(pr,gap); + } + + if (stampa_tot_nofis) + if (PagCorr == QUARTA) // Scrive totali p.non fisiche + { + stampa=TRUE; + TString ftot(_nf_tot_totale.string(pic)); + TString fsnsrit(_nf_tot_snsrit.string(pic)); + TString fimpon(_nf_tot_impon.string(pic)); + TString fimpor(_nf_tot_impor.string(pic)); + TString fnetto(_nf_tot_netto.string(pic)); +// Toglie le migliaia + ftot.cut(ftot.len() - 3); + fsnsrit.cut(fsnsrit.len()-3); + fimpon.cut(fimpon.len()-3); + fimpor.cut(fimpor.len()-3); + fnetto.cut(fnetto.len()-3); + if (ftot.empty()) ftot = "0"; + if (fsnsrit.empty()) fsnsrit = "0"; + if (fimpon.empty()) fimpon = "0"; + if (fimpor.empty()) fimpor = "0"; + if (fnetto.empty()) fnetto = "0"; +// Setta i campi + ttotale.set(ftot); + tsnsrit.set(fsnsrit); + timpon.set(fimpon); + timpor.set(fimpor); + tnetto.set(fnetto); + _GiaStampatiNoFis = TRUE; +const int NUMPER_QUARTA = 6; +const int NUM_RIGHE = 8; + const int gap = ((NUMPER_QUARTA - _CtrNoFisStampati) * NUM_RIGHE)+1; + + if (gap > 0) + fill_page(pr,gap); + } + if (stampa) + { + foot.update(); + for (word j = 0; j < foot.height(); j++) + { + pr.print(foot.row(j)); + _RigaCorr++; + } + foot.reset(); // non stampare piu' questi totali! + } +} + +void TDicForm::stampa_testata(TPrinter& pr) +{ + TPrint_section& head = section('H', 1); + const word r = head.height()-1; + TPrintrow& head_row = head.row(r-1); + +// Setta il numero di pagina e poi lo incrementa + TForm_item& nf = head.find_field(H_NUM_FOGLIO); + TString fstr(10); fstr << _num_foglio; + nf.set(fstr); + _num_foglio++; + +// Setta il cod.fis. del dichiarante se necessario + if (tipo_ditta() == estinto) + { + TForm_item& cfd = head.find_field(H_COFI_DIC); + cfd.set(_cofi_dic); + } +// Righe da saltare nelle prime pag. dei moduli successivi al primo (che' son +// senza le righe del posizionamento...) + int HEADER_PRIMA_NOPOS = 3; + head.update(); + for (word j = 0; j <= r; j++) + { + if (j==0) + { + if (_modulaser) + { + TPrintrow& r = head.row(j); + if (!_GiaMessoStartDoc) + put_modulaser(r, STARTDOC); + put_modulaser(r, STARTDITTA); + put_modulaser(r, STARTPAGE, 1); + pr.print(r); + _RigaCorr++; + r.reset(); + HEADER_PRIMA_NOPOS--; + } + if (!PaginaPosizionamento()) + fill_page(pr, HEADER_PRIMA_NOPOS); + } + else + { + pr.print(head.row(j)); + _RigaCorr++; + } + } +} + +void TDicForm::next_page(TPrinter& pr) +{ + PagineQD PagCorr = curr_page(); + if (PagCorr >= TERZA) + stampa_totali(pr); + fill_page(pr, -1); // formfeed "adattato" + inc_curr_page(); +} + +void TDicForm::azzera_totali() +{ + _f_tot_netto = _f_tot_totale = _f_tot_impor = _f_tot_impon = _f_tot_snsrit = ZERO; + _nf_tot_netto = _nf_tot_totale = _nf_tot_impor = _nf_tot_impon = _nf_tot_snsrit = ZERO; +} + +void TDicForm::aggiorna_totali_E(const char tipo) +{ +} + +void TDicForm::aggiorna_totali_E1(const char tipo) +{ +} + +void TDicForm::aggiorna_totali_D(const char tipo) +{ + real totale, netto, impon, nsrit, impor; + TCursor* cur = UsaSortedCursor() ? _sorted_cur : _cur; + TRectype& crr = cur->curr(); + + totale = crr.get_real(QUD_TOTALE); + netto = crr.get_real(QUD_NETTO); + impon = crr.get_real(QUD_IMPONIBILE); + impor = crr.get_real(QUD_IMPORTO); + nsrit = crr.get_real(QUD_SOMME); + + if (tipo == 'F') + { + _f_tot_totale += totale; + _f_tot_netto += netto; + _f_tot_impon += impon; + _f_tot_snsrit += nsrit; + _f_tot_impor += impor; + } + else + { + _nf_tot_totale += totale; + _nf_tot_netto += netto; + _nf_tot_impon += impon; + _nf_tot_snsrit += nsrit; + _nf_tot_impor += impor; + } +} + +void TDicForm::aggiorna_totali_D1(const char tipo) +{ + real totale, netto, impon, QuotaProv, SpeseAnt, impor; + TCursor* cur = UsaSortedCursor() ? _sorted_cur : _cur; + TRectype& crr = cur->curr(); + + totale = crr.get_real(QD1_TOTALE); + netto = crr.get_real(QD1_NETTO); + impon = crr.get_real(QD1_IMPONIBILE); + impor = crr.get_real(QD1_IMPORTO); + QuotaProv = crr.get_real(QD1_QUOTAPRO); + SpeseAnt = crr.get_real(QD1_SPESEANT); + + if (tipo == 'F') + { + _f_tot_totale += totale; + _f_tot_netto += netto; + _f_tot_impon += impon; + _f_tot_snsrit += QuotaProv; + _f_tot_impor += impor; + } + else + { + _nf_tot_totale += totale; + _nf_tot_netto += netto; + _nf_tot_impon += impon; + _nf_tot_snsrit += QuotaProv; + _nf_tot_impor += impor; + } +} + +void TDicForm::aggiorna_totali_C(const char tipo) +{ + real totale, netto, impon, nsrit, impor; + TCursor* cur = UsaSortedCursor() ? _sorted_cur : _cur; + TRectype& crr = cur->curr(); + + totale = crr.get_real(QUD_TOTALE); + netto = crr.get_real(QUD_NETTO); + impon = crr.get_real(QUD_IMPONIBILE); + impor = crr.get_real(QUD_IMPORTO); + nsrit = crr.get_real(QUD_SOMME); + + if (tipo == 'F') + { + _f_tot_totale += totale; + _f_tot_netto += netto; + _f_tot_impon += impon; + _f_tot_snsrit += nsrit; + _f_tot_impor += impor; + } + else + { + _nf_tot_totale += totale; + _nf_tot_netto += netto; + _nf_tot_impon += impon; + _nf_tot_snsrit += nsrit; + _nf_tot_impor += impor; + } +} + + +void TDicForm::aggiorna_totali(const char tipo) +{ + if (_quadro == "C") + aggiorna_totali_C(tipo); + + if (_quadro == "D") + aggiorna_totali_D(tipo); + + if (_quadro == "D1") + aggiorna_totali_D1(tipo); + + if (_quadro == "E") + aggiorna_totali_E(tipo); + + if (_quadro == "E1") + aggiorna_totali_E1(tipo); +} + +void TDicForm::set_body(TPrinter& pr, const char tipo, const bool progind) +{ + TPrint_section& body = section('B', odd_page); + body.reset(); + body.update(); + aggiorna_totali(tipo); + const int body_righe = body.height(); + for (int i=0; i < body_righe; i++) + { + pr.print(body.row(i)); + _RigaCorr++; + } + if (progind) + _prog->addstatus(1); +} + + +void TDicForm::posiziona() +{ + _GiaPosizionato = TRUE; + _PaginaPosizionamento = TRUE; + + arrange_form(); +/**************************** + char str_pos[MAX_LEN]; + int i; + const int xip = ipx(); + const int yip = ipy(); + const int xfp = fpx(); //131; + + for (i=0; i < MAX_LEN; i++) str_pos[i] = ' '; + str_pos[0] = '\r'; + str_pos[0] = '\r'; + str_pos[xip] = str_pos[xfp] = char_to_pos(); + str_pos[xfp+1] = '\r'; + str_pos[xfp+1] = '\0'; + + bool parti = yesno_box("Conferma stampa riga di posizionamento ?"); + if (!parti) return; + + _GiaPosizionato = TRUE; + _PaginaPosizionamento = TRUE; + + do + { + if (!PrintLineNow(str_pos, xfp+1, hInst)) + message_box("PrintLineNow fallita!"); + } + while (!yesno_box("Posizione corretta ?")); +**************/ +} + +/////////////////////////////////////////////////////////////////////////////////////////// +// +// Quadro G +// +/////////////////////////////////////////////////////////////////////////////////////////// + +HIDDEN const int QG_FORMLEN = 72; +HIDDEN const int QG_PAGINE = 2; +HIDDEN const int HEADER_SECONDA_G = 7; + +class TQuadroG : public TDicForm +{ + private: + long _items_g, _items_gd; + void stampa_prospetti1_2(TPrinter& pr, const bool UsaProgind); + void stampa_prospetti3_4(TPrinter& pr, const bool UsaProgind); + + protected: + virtual void inc_curr_page(); + virtual void next_page(TPrinter& pr); + virtual void stampa_totali(TPrinter& pr) {} + virtual void aggiorna_totali(const char tipo) {} + virtual void set_body(TPrinter& pr, const char tipo, const bool UsaProgind) {} + + public: + virtual bool UsaSortedCursor() { return FALSE; } + virtual bool print(const long codditta, const long NumFis, const long NumNoFis); + void set_items_gd(const long itg, const long itgd) { _items_g = itg; _items_gd = itgd; } + + TQuadroG(const char* form, const char* quadro) : TDicForm(form, quadro), + _items_g(0L), _items_gd(0L) {} + virtual ~TQuadroG() {} +}; + + +void TQuadroG::inc_curr_page() +{ + if (_PaginaCorrente == PRIMA) + _PaginaCorrente = SECONDA; + else + if (_PaginaCorrente == SECONDA) + _PaginaCorrente = PRIMA; +} + + +void TQuadroG::next_page(TPrinter& pr) +{ + PagineQD PagCorr = curr_page(); + fill_page(pr, -1); + inc_curr_page(); +} + + +void TQuadroG::stampa_prospetti1_2(TPrinter& pr, const bool UsaProgind) +{ + TPrint_section& head = section('H', 1); + const word rr = head.height()-1; + TPrintrow& head_row = head.row(rr-1); + +// Setta il numero di pagina e poi lo incrementa + TForm_item& nf = head.find_field(H_NUM_FOGLIO); + TString fstr(10); fstr << _num_foglio; + nf.set(fstr); + _num_foglio++; + +// Setta il cod.fis. del dichiarante se necessario + if (tipo_ditta() == estinto) + { + TForm_item& cfd = head.find_field(H_COFI_DIC); + cfd.set(_cofi_dic); + } + + TCursor* cur = cursor(); + +// Prospetto n. 2 + TRectype& r = cur->curr(); + TToken_string p22(r.get("P22")); + TToken_string p23(r.get("P23")); + TToken_string p24(r.get("P24")); + TToken_string p25(r.get("P25")); + TToken_string p26(r.get("P26")); + + const int START_P2 = 56; + const int RIGHE_P2 = 5; + const int COL_P2 = 5; + int cols = 0; + for (int i = 0; i < RIGHE_P2; i++) + { + const int fc2 = START_P2 + cols; + TForm_item& c2 = head.find_field(fc2); + c2.set(p22.get(i)); + + const int fc3 = fc2 + 1; + TForm_item& c3 = head.find_field(fc3); + c3.set(p23.get(i)); + + const int fc4 = fc3 + 1; + TForm_item& c4 = head.find_field(fc4); + c4.set(p24.get(i)); + + const int fc5 = fc4 + 1; + TForm_item& c5 = head.find_field(fc5); + c5.set(p25.get(i)); + + const int fc6 = fc5 + 1; + TForm_item& c6 = head.find_field(fc6); + c6.set(p26.get(i)); + + cols += COL_P2; + } + +// Righe da saltare nelle prime pag. dei moduli successivi al primo (che' son +// senza le righe del posizionamento...) + int HEADER_PRIMA_NOPOS = 3; + head.update(); + for (word j = 0; j <= rr; j++) + { + if (j==0) + { + if (_modulaser) + { + TPrintrow& r = head.row(j); + if (!_GiaMessoStartDoc) + put_modulaser(r, STARTDOC); + put_modulaser(r, STARTDITTA); + put_modulaser(r, STARTPAGE, 1); + pr.print(r); + _RigaCorr++; + r.reset(); + HEADER_PRIMA_NOPOS--; + } + if (!PaginaPosizionamento()) + fill_page(pr, HEADER_PRIMA_NOPOS); + } + else + { + pr.print(head.row(j)); + _RigaCorr++; + } + } +} + +void TQuadroG::stampa_prospetti3_4(TPrinter& pr, const bool UsaProgind) +{ + TPrint_section& sez = section('B'); + const word rr = sez.height()-1; + sez.reset(); + TPrintrow& head_row = sez.row(rr-1); + +// Prospetto n. 3 + TCursor* cur = cursor(); + TRectype& r = cur->curr(); + TToken_string p33a(r.get("P33A")); + TToken_string p33b(r.get("P33B")); + TToken_string p35a(r.get("P35A")); + TToken_string p35b(r.get("P35B")); + TToken_string p36a(r.get("P36A")); + TToken_string p36b(r.get("P36B")); + +// colonna 2 e 7 + for (int i=1; i<=5; i++) + { + TForm_item& c2 = sez.find_field(i); + TForm_item& c7 = sez.find_field(i+65); + int src=0; // determina quale posizione va letta dalla token-string per il campo corrente + switch (i) + { + case 1: + src = 0; + break; + case 2: + src = 7; + break; + case 3: + src = 10; + break; + case 4: + src = 12; + break; + case 5: + src = 14; + break; + } + + c2.set(p33a.get(src)); + c7.set(p36b.get(src)); + } + + const int RIGHE_P3 = 20; + +// Colonna 3 + const int START_P3_COL3 = 6; + int c3=0; + for (i = 0; i < RIGHE_P3; i++) + { + c3 = START_P3_COL3 + i; + TForm_item& c5a = sez.find_field(c3); + c5a.set(p33b.get(i)); + } + +// Colonna 5 + const int START_P3_COL5 = c3 + 1; + int c5=0; + for (i = 0; i < RIGHE_P3; i++) + { + c5 = START_P3_COL5 + i; + TForm_item& c6a = sez.find_field(c5); + c6a.set(p35b.get(i)); + } + +// Colonna 6 + const int START_P3_COL6 = c5 + 1; + int c6=0; + for (i = 0; i < RIGHE_P3; i++) + { + c6 = START_P3_COL6 + i; + TForm_item& c6a = sez.find_field(c6); + c6a.set(p36a.get(i)); + } + + sez.update(); + const int sez_righe = sez.height(); + for (i=0; i < sez_righe; i++) + { + pr.print(sez.row(i)); + _RigaCorr++; + } + if (UsaProgind) + _prog->addstatus(1); +} + + +bool TQuadroG::print(const long codditta, const long NumFis, const long NumNoFis) +{ + TCursor* cur = cursor(); + + bool StabilitaInesistenzaNoFis = FALSE; + bool StabilitaInesistenzaFis = FALSE; + long CtrFis = NumFis; + long CtrNoFis = NumNoFis; + long PtrFis = -1L, PtrNoFis=-1L; + TPrinter& pr = printer(); + + _CtrFisStampati = _CtrNoFisStampati = 0; + _finite_fis = _finite_nofis = FALSE; + _GiaStampatiFis = _GiaStampatiNoFis = FALSE; + _EndPrintDitta = FALSE; // Vero se stampato l'ultimo record + bool LastRecord = FALSE; // Vero se letto l'ultimo record + + _PaginaCorrente = PRIMA; + _UsaProgind = FALSE; + + if (!InitPrint(codditta)) + return FALSE; + + for (int pagina=1; pagina <= QG_PAGINE; pagina++, next_page(pr)) + { + pr.formlen(QG_FORMLEN); + + if (_PaginaCorrente == PRIMA) + { + if (_modulaser) ClearFlagModulaser(); + + (*cur) = PtrFis >= 0L ? PtrFis : 0L; + stampa_prospetti1_2(pr, _UsaProgind); + } + + if (_PaginaCorrente == SECONDA) + { +// Reset del flag di pagina con posiz. + if (_posiziona && _PaginaPosizionamento) _PaginaPosizionamento = FALSE; + + fill_page(pr, HEADER_SECONDA_G); + stampa_prospetti3_4(pr, _UsaProgind); + } + } // for pagina.. + + return TRUE; +} + + +/////////////////////////////////////////////////////////////////////////////////////////// +// +// Distinta G +// +/////////////////////////////////////////////////////////////////////////////////////////// + +HIDDEN const int QGD_FORMLEN = 72; +HIDDEN const int QGD_PAGINE = 2; +HIDDEN const int HEADER_SECONDA_GD = 7; +HIDDEN const int QGD_RIGHE_PRIMA = 8; + +class TDistintaG : public TQuadroG +{ + private: + real _f_tot_utspet, _f_tot_utpag, _f_tot_rope, _f_tot_ropespet; + real _nf_tot_utspet, _nf_tot_utpag, _nf_tot_rope, _nf_tot_ropespet; + void aggiorna_totali(const char tipo); + void stampa_totali(TPrinter& pr); + void stampa_testata(TPrinter& pr); + virtual void next_page(TPrinter& pr); + virtual void set_body(TPrinter& pr, const char tipo, const bool UsaProgind); + + public: + virtual bool UsaSortedCursor() { return FALSE; } + virtual bool print(const long codditta, const long NumFis, const long NumNoFis); + + TDistintaG(const char* form, const char* quadro) : TQuadroG(form,quadro) {} + virtual ~TDistintaG() {} +}; + +void TDistintaG::next_page(TPrinter& pr) +{ + PagineQD PagCorr = curr_page(); +// if (PagCorr == SECONDA) + stampa_totali(pr); + fill_page(pr, -1); // formfeed "adattato" + inc_curr_page(); +} + +void TDistintaG::aggiorna_totali(const char tipo) +{ + real utspet, utpag, rope, ropespet; + TCursor* cur = cursor(); + TRectype& crr = cur->curr(); + + utspet = crr.get_real(QGD_UTSPETT); + utpag = crr.get_real(QGD_UTPAG); + rope = crr.get_real(QGD_ROPE); + ropespet = crr.get_real(QGD_ROPESPET); + + if (tipo == 'F') + { + _f_tot_utspet += utspet; + _f_tot_utpag += utpag; + _f_tot_rope += rope; + _f_tot_ropespet += ropespet; + } + else + { + _nf_tot_utspet += utspet; + _nf_tot_utpag += utpag; + _nf_tot_rope += rope; + _nf_tot_ropespet += ropespet; + } +} + + +void TDistintaG::stampa_totali(TPrinter& pr) +{ + PagineQD PagCorr = curr_page(); + TPrint_section& foot = section('B', even_page); + const word righe = foot.height(); + const char* pic = "############"; + bool stampa = FALSE; + + TForm_item& ttotale = foot.find_field(TOT_TOTALE); + TForm_item& tsnsrit = foot.find_field(TOT_SNSRIT); + TForm_item& timpon = foot.find_field(TOT_IMPON); + TForm_item& timpor = foot.find_field(TOT_IMPOR); + + const bool stampa_tot_fis = ultima_fis(); + const bool stampa_tot_nofis = ultima_nofis(); + + if (stampa_tot_fis) + if (PagCorr == PRIMA) // Scrive totali p.fisiche + { + stampa=TRUE; + TString ftot(_f_tot_utspet.string(pic)); + TString fsnsrit(_f_tot_utpag.string(pic)); + TString fimpon(_f_tot_rope.string(pic)); + TString fimpor(_f_tot_ropespet.string(pic)); + +// Toglie le migliaia + ftot.cut(ftot.len() - 3); + fsnsrit.cut(fsnsrit.len()-3); + fimpon.cut(fimpon.len()-3); + fimpor.cut(fimpor.len()-3); + if (ftot.empty()) ftot = "0"; + if (fsnsrit.empty()) fsnsrit = "0"; + if (fimpon.empty()) fimpon = "0"; + if (fimpor.empty()) fimpor = "0"; + +// Setta i campi + ttotale.set(ftot); + tsnsrit.set(fsnsrit); + timpon.set(fimpon); + timpor.set(fimpor); + + _GiaStampatiFis = TRUE; +const int NUMPER_TERZA = 6; +const int NUM_RIGHE = 8; + const int gap = ((NUMPER_TERZA - _CtrFisStampati) * NUM_RIGHE)+1; + if (gap>0) + fill_page(pr,gap); + } + + if (stampa_tot_nofis) + if (PagCorr == SECONDA) // Scrive totali p.non fisiche + { + stampa=TRUE; + TString ftot (_nf_tot_utspet.string(pic)); + TString fsnsrit(_nf_tot_utpag.string(pic)); + TString fimpon (_nf_tot_rope.string(pic)); + TString fimpor (_nf_tot_ropespet.string(pic)); + +// Toglie le migliaia + ftot.cut(ftot.len() - 3); + fsnsrit.cut(fsnsrit.len()-3); + fimpon.cut(fimpon.len()-3); + fimpor.cut(fimpor.len()-3); + + if (ftot.empty()) ftot = "0"; + if (fsnsrit.empty()) fsnsrit = "0"; + if (fimpon.empty()) fimpon = "0"; + if (fimpor.empty()) fimpor = "0"; + +// Setta i campi + ttotale.set(ftot); + tsnsrit.set(fsnsrit); + timpon.set(fimpon); + timpor.set(fimpor); + + _GiaStampatiNoFis = TRUE; +const int NUMPER_QUARTA = 6; +const int NUM_RIGHE = 8; + const int gap = ((NUMPER_QUARTA - _CtrNoFisStampati) * NUM_RIGHE)+1; + + if (gap > 0) + fill_page(pr,gap); + } + if (stampa) + { + foot.update(); + for (word j = 0; j < righe; j++) + { + pr.print(foot.row(j)); + _RigaCorr++; + } + foot.reset(); // non stampare piu' questi totali! + } +} + +void TDistintaG::stampa_testata(TPrinter& pr) +{ + TPrint_section& head = section('H', 1); + const word r = head.height()-1; + TPrintrow& head_row = head.row(r-1); + +// Setta il numero di pagina e poi lo incrementa + TForm_item& nf = head.find_field(H_NUM_FOGLIO); + TString fstr(10); fstr << _num_foglio; + nf.set(fstr); + _num_foglio++; +} + +void TDistintaG::set_body(TPrinter& pr, const char tipo, const bool progind) +{ + TPrint_section& body = section('B', odd_page); + body.reset(); + body.update(); + aggiorna_totali(tipo); + const int body_righe = body.height(); + for (int i=0; i < body_righe; i++) + { + pr.print(body.row(i)); + _RigaCorr++; + } + if (progind) + _prog->addstatus(1); +} + + +bool TDistintaG::print(const long codditta, const long NumFis, const long NumNoFis) +{ + TCursor* cur = cursor(); + + bool StabilitaInesistenzaNoFis = FALSE; + bool StabilitaInesistenzaFis = FALSE; + long CtrFis = NumFis; + long CtrNoFis = NumNoFis; + long PtrFis = -1L, PtrNoFis=-1L; + TPrinter& pr = printer(); + + _CtrFisStampati = _CtrNoFisStampati = 0; + _finite_fis = _finite_nofis = FALSE; + _GiaStampatiFis = _GiaStampatiNoFis = FALSE; + _EndPrintDitta = FALSE; // Vero se stampato l'ultimo record + bool LastRecord = FALSE; // Vero se letto l'ultimo record + _PaginaCorrente = PRIMA; + + _codditta = codditta; + _RigaCorr = 0; + + const long items = filtra(codditta); + + while (!_EndPrintDitta) + { + for (int pagina=1; pagina <= QGD_PAGINE; pagina++, next_page(pr)) + { + pr.formlen(QGD_FORMLEN); + + if (_PaginaCorrente == PRIMA) + { + if (_modulaser) ClearFlagModulaser(); + + for (int righe=0; righe < QGD_RIGHE_PRIMA; righe++) + { +// Stampa intestazione, solo sul primo foglio. + if (!righe) + { + (*cur) = PtrFis >= 0L ? PtrFis : 0L; + stampa_testata(pr); + } + + if (_finite_fis || StabilitaInesistenzaFis) + break; + +// La prima volta si deve posizionare sul primo record di p.f. + if (PtrFis<0L && !StabilitaInesistenzaFis) + { + bool Trovato = FALSE; + + while (!Trovato) + { + const long ditta = cur->curr().get_long(QGD_CODDITTA); + if (ditta != codditta) + break; + const char tipo = cur->curr().get(QGD_TIPOA)[0]; + if (tipo != 'G') + { + PtrFis = cur->pos(); + Trovato = TRUE; + break; + } + else + ++(*cur); + } + StabilitaInesistenzaFis = !Trovato; + } + + if (StabilitaInesistenzaFis) + break; + + (*cur) = PtrFis; + const char tipo = cur->curr().get(QGD_TIPOA)[0]; + + if (tipo != 'F') + break; + else + { + CtrFis--; + if (CtrFis == 0L) _finite_fis = TRUE; + set_body(pr, 'F', _UsaProgind); +// La stampa e' finita se ho STAMPATO l'ultimo record + LastRecord = cur->pos() >= items-1; + _EndPrintDitta = LastRecord; + if (!LastRecord) + { + ++(*cur); + PtrFis = cur->pos(); + LastRecord = cur->pos() >= items-1; + } + } + } // for righe.. + PtrFis = cur->pos(); + } + + if (_PaginaCorrente == SECONDA) + { +// Reset del flag di pagina con posiz. + if (_posiziona && _PaginaPosizionamento) _PaginaPosizionamento = FALSE; + for (int righe=0; righe < QD_RIGHE_SECONDA; righe++) + { + if (!righe) + _CtrNoFisStampati = 0; + +// All'inizio salta le righe in alto + if (!righe) + fill_page(pr, HEADER_SECONDA_GD); + + if (_finite_nofis || StabilitaInesistenzaNoFis) + break; + +// La prima volta si deve posizionare sul primo record di p.g. + if (PtrNoFis<0L && !StabilitaInesistenzaNoFis) + { + bool Trovato = FALSE; + bool eof = FALSE; + (*cur) = PtrFis-1 > 0L ? PtrFis-1 : 0L; // parti dall'inizio + while (!Trovato && !eof) + { + eof = cur->pos() >= items-1; + const long ditta = cur->curr().get_long(QGD_CODDITTA); + if (ditta != codditta) + break; + const char tipo = cur->curr().get(QGD_TIPOA)[0]; + if (tipo != 'F') + { + PtrNoFis = cur->pos(); + Trovato = TRUE; + break; + } + else + ++(*cur); + } + StabilitaInesistenzaNoFis = !Trovato; + } + + if (StabilitaInesistenzaNoFis) + break; + + (*cur) = PtrNoFis; + const char tipo = cur->curr().get(QGD_TIPOA)[0]; + + if (tipo != 'G') + break; + else + { + CtrNoFis--; + if (CtrNoFis == 0L) _finite_nofis = TRUE; + set_body(pr, 'G', _UsaProgind); + LastRecord = cur->pos() >= items-1; + _EndPrintDitta = LastRecord; + _CtrNoFisStampati++; + if (!LastRecord) + { + ++(*cur); + PtrNoFis = cur->pos(); + LastRecord = cur->pos() >= items-1; + } + } + } + PtrNoFis = cur->pos(); + } + } // for pagina.. + } // while !EndPrintDitta + if (_UsaProgind) delete _prog; + return TRUE; +} + + +/////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////////// + + + +//////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////// +// +// TStDicArray +// +// Array delle ditte da stampare. Contiene una riga per ogni ditta che si vuole stampare +// Il formato della riga e': +// codditta|estinti|numfis|numnofis|ultimafis|ultimanofis +// +///////////////////////////////////////////////////////////////////////////////////////////// + +class TStDicArray : public TObject +{ + private: + TArray _store; + public: + TToken_string& operator[](int i); + int curr_index() const { return _store.last(); } + void set(const int index, const TipoDitta tipo=normale, const int num_fis=0, const int num_nofis=0, + bool ultima_con_fis=FALSE, bool ultima_con_nofis=FALSE, const char* cofidic=NULL); + void set_tipo(const int index, const TipoDitta tipo); + void set_ultima_con_fis(const int index, const bool ultima_fis); + void set_ultima_con_nofis(const int index, const bool ultima_nofis); + void set_flag_tipi(const int index, const bool ultima_fis, const bool ultima_nofis); + void set_ctr_tipi(const int index, const int num_fis, const int num_nofis); + void add(const long codditta, const TipoDitta tipo=normale, const int num_fis=0, const int num_nofis=0, + bool ultima_con_fis=FALSE, bool ultima_con_nofis=FALSE, const char* cofidic=NULL); + int items() const { return _store.items(); } + void destroy() { _store.destroy(); } +}; + + +TToken_string& TStDicArray::operator[](int i) +{ + __dep80 = (TToken_string&)_store[i]; + return (TToken_string&)__dep80; +} + +void TStDicArray::set_ultima_con_fis(const int index, const bool ultima_fis) +{ + TToken_string riga((TString&)_store[index]); + riga.add(ultima_fis, 4); + _store.add(riga,index); +} + +void TStDicArray::set_ultima_con_nofis(const int index, const bool ultima_nofis) +{ + TToken_string riga((TString&)_store[index]); + riga.add(ultima_nofis, 5); + _store.add(riga,index); +} + +void TStDicArray::set_flag_tipi(const int index, const bool ultima_fis, const bool ultima_nofis) +{ + TToken_string riga((TString&)_store[index]); + riga.add(ultima_fis,4); + riga.add(ultima_nofis,5); + _store[index] = riga; +} + +void TStDicArray::set_ctr_tipi(const int index, const int num_fis, const int num_nofis) +{ + TToken_string riga((TString&)_store[index]); + riga.add(num_fis,2); + riga.add(num_nofis,3); + _store[index] = riga; +} + +void TStDicArray::set(const int index, const TipoDitta tipo, const int num_fis, const int num_nofis, + bool ultima_con_fis, bool ultima_con_nofis, const char* cofi_dic) +{ + TToken_string riga((TString&)_store[index]); + riga.add(tipo,1); + riga.add(num_fis,2); + riga.add(num_nofis,3); + riga.add(ultima_con_fis,4); + riga.add(ultima_con_nofis,5); + TString codfis(20); codfis = cofi_dic ? cofi_dic : ""; + riga.add((const char*)codfis,6); + _store[index] = riga; +} + +void TStDicArray::add(const long codditta, const TipoDitta tipo, const int num_fis, const int num_nofis, + bool ultima_con_fis, bool ultima_con_nofis, const char* cfdic) +{ + TString key(40); +// Il formato della riga e': codditta|estinti|numfis|numnofis|ultimafis|ultimanofis + key.format("%ld|%d|%d|%d|%d|%d|%s", codditta, tipo, num_fis, num_nofis, ultima_con_fis, ultima_con_nofis, cfdic ? cfdic : ""); + _store.add(key); +} + + + +///////////////////////////////////////////////////////////////////////////////////////////// +// +// STAMPA QUADRO D +// +///////////////////////////////////////////////////////////////////////////////////////////// +class TStampaQuadro : public TApplication +{ + private: + TDicForm* _form; + + protected: + TMask* _m; + TRelation* _rel; + TCursor* _cur; + TSorted_cursor* _sorted_cur; + TString16 _quadro; + TString80 _title; + char _livello; // "S" studio, "D" singola ditta + long _codditta; + TStDicArray _ditte; + TConfig* _cnf; + TString16 _section; + bool _singola_ditta; + int _anno_dic; + + virtual TDicForm* build_form(); + virtual TCursor* build_cursor(); + virtual TDicForm* get_form() const { return _form; } + virtual TRelation* get_relation() const { return _rel; } + virtual TCursor* get_cursor() const { return _cur; } + virtual TSorted_cursor* get_sorted_cursor() const { return _sorted_cur; } + + virtual void on_config_change(); + virtual void fill_estinti(const long CodDic); + virtual void print(); + virtual bool create(); + virtual bool destroy(); + virtual bool menu(MENU_TAG); + virtual const char* mask(const char* quadro); + virtual bool print_quadro(TString& quadro, const int OffsetDitta=-1); + virtual bool UsaSortedCursor() const { return TRUE; } + virtual bool ContaTipiPer() const { return TRUE; } + + public: + virtual TSorted_cursor* sorted_cur() const { return _sorted_cur; } + + const char* taitol() { return _title; } + TStampaQuadro(const char* quadro, const char livel); +}; + +void TStampaQuadro::on_config_change() +{ + TConfig conf(_singola_ditta ? CONFIG_STUDIO : CONFIG_USER); + _anno_dic = (int)conf.get_long(ANNO_SEL, _section); +} + +TStampaQuadro::TStampaQuadro(const char* quadro, const char liv) +{ + _quadro = quadro; + _livello = liv; + _singola_ditta = _livello == 'D'; + _title = "Stampa quadro "; + _title << _quadro; +} + +const char* form(TString& quadro) +{ + __dep16 = "77Q"; + __dep16 << quadro; + return __dep16; +} + +// La maschera e' uguale per tutti i quadri +const char* TStampaQuadro::mask(const char* quadro) +{ + return "77STQD"; +} + +TCursor* TStampaQuadro::build_cursor() +{ + if (_quadro == "C") + { + _rel = new TRelation(LF_QUAC); + _rel->add("%ca7", "CODTAB=CODCAUS", 1, LF_QUAC, 14); + _rel->add(LF_NDITTE, "CODDITTA=CODDITTA"); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_QUAC, 216); + _rel->add("%STA", "CODTAB=STATORES", 1, -216, 24); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, -216, 218); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, -218, 313); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, -216, 413); + _sorted_cur = new TSorted_cursor(_rel, "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC"); + } + + if (_quadro == "D") + { + _rel = new TRelation(LF_QUAD); + _rel->add("%ca7", "CODTAB=CODCAUS", 1, LF_QUAD, 14); + _rel->add(LF_NDITTE, "CODDITTA=CODDITTA"); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_QUAD, 216); + _rel->add("%STA", "CODTAB=STATORES", 1, -216, 24); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, -216, 218); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, -218, 313); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, -216, 413); + _sorted_cur = new TSorted_cursor(_rel, "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC"); + } + + if (_quadro == "D1") + { + _rel = new TRelation(LF_QUAD1); + _rel->add("%ca7", "CODTAB=CODCAUS", 1, LF_QUAD1, 14); + _rel->add(LF_NDITTE, "CODDITTA=CODDITTA"); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_QUAD1, 216); + _rel->add("%STA", "CODTAB=STATORES", 1, -216, 24); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, -216, 218); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, -218, 313); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, -216, 413); + _sorted_cur = new TSorted_cursor(_rel, "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC"); + } + + if (_quadro == "E") + { + _rel = new TRelation(LF_QUAE); + _rel->add("%ca7", "CODTAB=CODCAUS", 1, LF_QUAE, 14); + _rel->add(LF_NDITTE, "CODDITTA=CODDITTA"); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_QUAE, 216); + _rel->add("%STA", "CODTAB=STATORES", 1, -216, 24); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, -216, 218); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, -218, 313); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, -216, 413); + _sorted_cur = new TSorted_cursor(_rel, "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC"); + } + + if (_quadro == "E1") + { + _rel = new TRelation(LF_QUAE1); + _rel->add("%ca7", "CODTAB=CODCAUS", 1, LF_QUAE1, 14); + _rel->add(LF_NDITTE, "CODDITTA=CODDITTA"); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_QUAE1, 216); + _rel->add("%STA", "CODTAB=STATORES", 1, -216, 24); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, -216, 218); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, -218, 313); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, -216, 413); + _sorted_cur = new TSorted_cursor(_rel, "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR|CODCAUS|PERC"); + } + return _sorted_cur; +} + +TDicForm* TStampaQuadro::build_form() +{ + _form = new TDicForm(form(_quadro), _quadro); + return _form; +} + +bool TStampaQuadro::create() +{ + TApplication::create(); + + hInst = (HWND)xvt_vobj_get_attr(TASK_WIN, ATTR_NATIVE_WINDOW); // Usato in posiziona() + + _form = build_form(); + + _section = name(); + _section.cut(2); + _cnf = new TConfig(CONFIG_USER, _section); + + _m = new TMask(mask(_quadro)); + _m->set_caption(taitol()); + + if (_singola_ditta) + { + _codditta = get_firm_770(); + _m->set(F_CODDITTA, _codditta); + } + else + { + _m->hide(F_RAGDITTA); + _m->set(F_TEXT, "Ditte selezionate"); + _m->show(F_TEXT); + } + + if (UsaSortedCursor()) + _sorted_cur = (TSorted_cursor*)build_cursor(); + else + _cur = build_cursor(); + + dispatch_e_menu(BAR_ITEM(1)); + return TRUE; +} + +bool TStampaQuadro::destroy() +{ + delete _m; + delete _rel; + if (UsaSortedCursor()) + delete _sorted_cur; + else + delete _cur; + delete _cnf; + delete _form; + return TApplication::destroy(); +} + +bool TStampaQuadro::menu(MENU_TAG) +{ + KEY k; + _m->set(F_ANNO, _anno_dic); + while ((k = _m->run()) == K_ENTER) + print(); + return FALSE; +} + +// _ditte e' fatto di righe siffatte: +// codditta, flag 2 dichiarante, 1 normale, 0 estinto, num_fis, num_nofis, ultima_con_fis, ultima_con_nofis +bool TStampaQuadro::print_quadro(TString& quadro, const int OffsetDitta) +{ + TDicForm* ff = get_form(); + int start=0, last=0; +// Setta formlen prima di printer.open per avere la lunghezza giusta nel caso di +// stampa a video + printer().formlen(QD_FORMLEN); + bool ok = printer().open(); + bool modulaser = _m->get_bool(F_MODULASER); + + if (UsaSortedCursor()) + ff->set_cur_rel(get_relation(), get_sorted_cursor()); + else + ff->set_cur_rel(get_relation(), get_cursor()); + + ff->azzera_totali(); + ff->set_modulaser(modulaser); + +// Dice se deve eseguire il posizionamento del foglio. +// Se stampa piu' ditte va eseguito solo sulla prima +// Occhio a non spostarlo nel ciclo. + ff->set_posiziona(TRUE); + + if (OffsetDitta >= 0) + { + start = OffsetDitta; + last = OffsetDitta; + } + else + last = _ditte.items() - 1; + + for (int i = start; i <= last; i++) + { + TString CoFiDic(20); + TToken_string riga(_ditte[i]); + riga.separator('|'); + const long codditta = atol(riga.get(0)); + const TipoDitta tipo = (TipoDitta)riga.get_int(1); + const long fis = riga.get_long(2); + const long nofis = riga.get_long(3); + const bool LastFis = (bool)riga.get_int(4); + const bool LastNoFis = (bool)riga.get_int(5); + +// I gruppi dich-estinti hanno totali comuni +// Si presume che nell'array vengano messi nell'ordine dich-estinti + if (tipo == normale || tipo == dichiarante) + ff->azzera_totali(); + + if (tipo == estinto) + CoFiDic = riga.get(6); + + if (ContaTipiPer()) + { +// Se e' un dichiarante i totali vanno sull'estinto in cui finiscono o le F o le G + const bool StampaTotaliFis = tipo == normale || + (tipo == estinto && LastFis); + + const bool StampaTotaliNoFis = tipo == normale || + (tipo == estinto && LastNoFis); + +// Dice al form se e' questa ditta e' l'ultima con f. o g. + ff->can_print_tot_fis(StampaTotaliFis); + ff->can_print_tot_nofis(StampaTotaliNoFis); + } + +// Dice al form che tipo di ditta si stampa + ff->set_tipo_ditta(tipo); + +// Numera i fogli a partire da 1 per ogni ditta normale e da 1 e di seguito negli estinti +// per i sogg. dichiaranti + if (tipo == normale || tipo == dichiarante) + ff->set_num_foglio(1); + +// Se la ditta e' estinta dice al form il cod.fis. del dichiarante + if (tipo == estinto) + ff->set_cofi_dic(CoFiDic); + +// Dice al form che e' l'ultima ditta + if (i == last) + ff->set_last_ditta(TRUE); + + ff->print(codditta, fis, nofis); + } + + printer().close(); + return ok; +} + +void TStampaQuadro::fill_estinti(const long CodDic) +{ + int NumFisiche=0, NumNoFisiche=0; + TString CodFiDic(20); + +// Salva il cod.fis. del dichiarante + CodFiDic = cod_fis(CodDic); + + if (ContaTipiPer()) + { + conta_tipiper(CodDic, _quadro, &NumFisiche, &NumNoFisiche); + _ditte.add(CodDic, dichiarante, NumFisiche, NumNoFisiche); + } + else + _ditte.add(CodDic, dichiarante); + + const int index_dich = _ditte.curr_index(); + bool gia_trovata_ultima_fis = FALSE; + bool gia_trovata_ultima_nofis = FALSE; + int index = index_dich; + +// Leggo gli estinti + TLocalisamfile base(LF_BASE); + base.setkey(2); + base.zero(); + base.put(BSE_CODDIC, (long)CodDic); + TRectype dep(base.curr()); + + for (base.read(); !base.eof(); base.next()) + { + if (base.curr() > dep) + break; + +// Scarta il record del quadro I "globale" del dichiarante + const char tipoqua = base.get(BSE_TIPOQUA)[0]; + if (tipoqua == COD_QUA_I_DIC) + continue; + + const long DittaEstinta = base.get_long(BSE_CODDITTA); + + if (ContaTipiPer()) + { + conta_tipiper(DittaEstinta, _quadro, &NumFisiche, &NumNoFisiche); + _ditte.add(DittaEstinta, estinto, NumFisiche, NumNoFisiche, FALSE, FALSE, CodFiDic); + } + else + _ditte.add(DittaEstinta, estinto, 0L, 0L, FALSE, FALSE, CodFiDic); + + if (ContaTipiPer()) + { + // Determina se con questa ditta finiscono le persone f. o g. + if (NumFisiche == 0 && !gia_trovata_ultima_fis) + { + _ditte.set_ultima_con_fis(index, TRUE); + gia_trovata_ultima_fis = TRUE; + } + + if (NumNoFisiche == 0 && !gia_trovata_ultima_nofis) + { + _ditte.set_ultima_con_nofis(index, TRUE); + gia_trovata_ultima_nofis = TRUE; + } + } + index++; + } + + if (ContaTipiPer()) + { +// Finiti gli estinti. L'ultima ditta deve avere i totali se non gia' trovati + if (!gia_trovata_ultima_fis) + _ditte.set_ultima_con_fis(index, TRUE); + + if (!gia_trovata_ultima_nofis) + _ditte.set_ultima_con_nofis(index, TRUE); + } +} + +void TStampaQuadro::print() +{ + int NumFisiche=0, NumNoFisiche=0; + + _ditte.destroy(); // Pulisce l'array delle ditte + + if (_singola_ditta) + { + if (sogg_estinto(_codditta)) + { + warning_box("La ditta %ld e' un soggetto estinto", _codditta); + return; + } + +// Se e' un dichiarante va a prendere tutti i suoi estinti. + bool dich = sogg_dic(_codditta); + if (dich) + fill_estinti(_codditta); + else + { + if (ContaTipiPer()) + { + conta_tipiper(_codditta, _quadro, &NumFisiche, &NumNoFisiche); + _ditte.add(_codditta, normale, NumFisiche, NumNoFisiche); + } + else + _ditte.add(_codditta, normale); + } + } + else // stampa ditte selezionate + { +// Costruisco un'array delle ditte da stampare. +// Tolgo i sogg. estinti, e dopo un dichiarante metto tutti i suoi estinti. + long codditta_prec = get_firm_770(); + long codditta = 0L; + int i=0; + while ((codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L) + { + if (sogg_estinto(codditta)) + continue; + +// Se e' un dichiarante va a prendere tutti i suoi estinti. + bool dich = sogg_dic(codditta); + if (dich) + fill_estinti(codditta); + else + { + if (ContaTipiPer()) + { + conta_tipiper(codditta, _quadro, &NumFisiche, &NumNoFisiche); + _ditte.add(codditta, normale, NumFisiche, NumNoFisiche); + } + else + _ditte.add(codditta, normale); + } + } + set_firm_770(codditta_prec); + } + print_quadro(_quadro, -1); +} + + +///////////////////////////////////////////////////////////////////////////////////////////// +// +// STAMPA QUADRO G +// +///////////////////////////////////////////////////////////////////////////////////////////// +class TStampaQuadroG : public TStampaQuadro +{ + private: + TQuadroG* _form_g; + TDistintaG* _form_gd; + TRelation* _rel_g, * _rel_gd; + TCursor* _cur_g, * _cur_gd; + + protected: + virtual TCursor* build_cursor(); + virtual TDicForm* build_form(); + virtual TDicForm* get_form() const { return _form_g; } + virtual bool destroy(); + bool print_quadro(TString& quadro, const int OffsetDitta=-1); + + public: + TStampaQuadroG(const char* quadro, const char livel) : TStampaQuadro(quadro,livel) {} +}; + +TDicForm* TStampaQuadroG::build_form() +{ + _form_g = new TQuadroG("77QG", _quadro); + _form_gd = new TDistintaG("77QGD", _quadro); + return _form_g; +} + +TCursor* TStampaQuadroG::build_cursor() +{ + _rel_g = new TRelation(LF_QUAG); + _rel_g->add(LF_NDITTE, "CODDITTA=CODDITTA"); + _rel_g->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116); + _rel_g->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118); + _rel_g->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113); + _rel_g->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213); + _cur_g = new TCursor(_rel_g); + + _rel_gd = new TRelation(LF_QUAGD); + _rel_gd->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_QUAGD, 216); + _rel_gd->add("%STA", "CODTAB=STATORES", 1, -216, 24); + _rel_gd->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, -216, 218); + _rel_gd->add(LF_COMUNI, "COM=COMNASC", 1, -218, 313); + _rel_gd->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, -216, 413); + _cur_gd = new TSorted_cursor(_rel_gd, "CODDITTA|TIPOA|216@->RAGSOC|CODANAGR"); + + return _cur_g; +} + +bool TStampaQuadroG::destroy() +{ + delete _m; + delete _rel_g; + delete _rel_gd; + delete _cur_gd; + delete _cur_g; + delete _cnf; + delete _form_g; + delete _form_gd; + return TApplication::destroy(); +} + +// _ditte e' fatto di righe siffatte: +// codditta, flag 2 dichiarante, 1 normale, 0 estinto, num_fis, num_nofis, ultima_con_fis, ultima_con_nofis +bool TStampaQuadroG::print_quadro(TString& quadro, const int OffsetDitta) +{ + int start=0, last=0; + long items_g, items_gd; + + items_g = items_gd = 0L; +// Setta formlen prima di printer.open per avere la lunghezza giusta nel caso di +// stampa a video + printer().formlen(QG_FORMLEN); + bool ok = printer().open(); + bool modulaser = _m->get_bool(F_MODULASER); + + _form_g->set_cur_rel(_rel_g, _cur_g); + _form_gd->set_cur_rel(_rel_gd, _cur_gd); + + _form_g->set_modulaser(modulaser); + _form_gd->set_modulaser(modulaser); + + _form_gd->azzera_totali(); + +// Dice se deve eseguire il posizionamento del foglio. +// Se stampa piu' ditte va eseguito solo sulla prima +// Occhio a non spostarlo nel ciclo. + _form_g->set_posiziona(TRUE); + + if (OffsetDitta >= 0) + { + start = OffsetDitta; + last = OffsetDitta; + } + else + last = _ditte.items() - 1; + + for (int i = start; i <= last; i++) + { + TString CoFiDic(20); + TToken_string riga(_ditte[i]); + riga.separator('|'); + const long codditta = atol(riga.get(0)); + const TipoDitta tipo = (TipoDitta)riga.get_int(1); + const long fis = riga.get_long(2); + const long nofis = riga.get_long(3); + const bool LastFis = (bool)riga.get_int(4); + const bool LastNoFis = (bool)riga.get_int(5); + +// I gruppi dich-estinti hanno totali comuni +// Si presume che nell'array vengano messi nell'ordine dich-estinti + if (tipo == normale || tipo == dichiarante) + _form_g->azzera_totali(); + + if (tipo == estinto) + CoFiDic = riga.get(6); + +// Se e' un dichiarante i totali vanno sull'estinto in cui finiscono o le F o le G + const bool StampaTotaliFis = tipo == normale || + (tipo == estinto && LastFis); + + const bool StampaTotaliNoFis = tipo == normale || + (tipo == estinto && LastNoFis); + +// Dice al form se e' questa ditta e' l'ultima con f. o g. + _form_gd->can_print_tot_fis(StampaTotaliFis); + _form_gd->can_print_tot_nofis(StampaTotaliNoFis); + +// Dice al form che tipo di ditta si stampa + _form_g->set_tipo_ditta(tipo); + +// Numera i fogli a partire da 1 per ogni ditta normale e da 1 e di seguito negli estinti +// per i sogg. dichiaranti + if (tipo == normale || tipo == dichiarante) + _form_g->set_num_foglio(1); + +// Se la ditta e' estinta dice al form il cod.fis. del dichiarante + if (tipo == estinto) + _form_g->set_cofi_dic(CoFiDic); + +// Dice al form che e' l'ultima ditta + if (i == last) + _form_gd->set_last_ditta(TRUE); + + items_g = _form_g->filtra(codditta); + items_gd = _form_gd->filtra(codditta); + +// Dice al form quanto e' lunga la progress-bar + _form_g->set_items_gd(items_g, items_gd); + + _form_g->print(codditta, fis, nofis); +// La progind deve essere la stessa tra G e distinta... + _form_gd->set_progind(_form_g->progind(), _form_g->usaprogind()); + _form_gd->print(codditta, fis, nofis); + } + + printer().close(); + return ok; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +// +// Quadro G-1 +// +/////////////////////////////////////////////////////////////////////////////////////////// + +HIDDEN const int QG1_FORMLEN = 72; +HIDDEN const int QG1_PAGINE = 1; + +class TQuadroG1 : public TDicForm +{ + private: + long _items; + void stampa_prospetto(TPrinter& pr, const bool UsaProgind); + + public: + virtual bool UsaSortedCursor() { return FALSE; } + virtual bool print(const long codditta, const long NumFis=0L, const long NumNoFis=0L); + //virtual bool print(const long codditta); + + TQuadroG1(const char* form, const char* quadro) : TDicForm(form, quadro) {} + virtual ~TQuadroG1() {} +}; + +bool TQuadroG1::print(const long codditta, const long NumFis, const long NumNoFis) +{ + TCursor* cur = cursor(); + TPrinter& pr = printer(); + _UsaProgind = FALSE; + + if (!InitPrint(codditta)) + return FALSE; + + pr.formlen(QG1_FORMLEN); + + if (_modulaser) ClearFlagModulaser(); + + (*cur) = 0L; + stampa_prospetto(pr, _UsaProgind); + + return TRUE; +} + +void TQuadroG1::stampa_prospetto(TPrinter& pr, const bool UsaProgind) +{ + TPrint_section& head = section('H', 1); + const word rr = head.height()-1; + TPrintrow& head_row = head.row(rr-1); + +// Setta il cod.fis. del dichiarante se necessario + if (tipo_ditta() == estinto) + { + TForm_item& cfd = head.find_field(H_COFI_DIC); + cfd.set(_cofi_dic); + } + + TCursor* cur = cursor(); +// Prospetto + TRectype& r = cur->curr(); + TToken_string p12(r.get("P12")); + TToken_string p13(r.get("P13")); + TToken_string p14(r.get("P14")); + TToken_string p15(r.get("P15")); + TToken_string p16(r.get("P16")); + TToken_string p17(r.get("P17")); + + const int START_PROSP = 56; + const int RIGHE_COL356 = 12; + const int RIGHE_COL27 = 5; + const int COL_PROSP = 5; + +// Colonne 2 e 7 + for (int i = 0; i < RIGHE_COL27; i++) + { + const int fc2 = START_PROSP + i; + TForm_item& c2 = head.find_field(fc2); + c2.set(p12.get(i)); + + const int fc7 = fc2 + RIGHE_COL27 + 1; + TForm_item& c7 = head.find_field(fc7); + c7.set(p17.get(i)); + } + + const int START_COL3 = 68; +// Colonne 3 5 e 6 + for (i = 0; i < RIGHE_COL356; i++) + { + const int fc3 = START_COL3 + i; + TForm_item& c3 = head.find_field(fc3); + c3.set(p13.get(i)); + + const int fc5 = fc3 + RIGHE_COL356 + 1; + TForm_item& c5 = head.find_field(fc5); + c5.set(p15.get(i)); + + const int fc6 = fc5 + RIGHE_COL356 + 1; + TForm_item& c6 = head.find_field(fc6); + c6.set(p16.get(i)); + } + +// Righe da saltare nelle prime pag. dei moduli successivi al primo (che' son +// senza le righe del posizionamento...) + int HEADER_PRIMA_NOPOS = 3; + head.update(); + for (word j = 0; j <= rr; j++) + { + if (j==0) + { + if (_modulaser) + { + TPrintrow& r = head.row(j); + if (!_GiaMessoStartDoc) + put_modulaser(r, STARTDOC); + put_modulaser(r, STARTDITTA); + put_modulaser(r, STARTPAGE, 1); + pr.print(r); + _RigaCorr++; + r.reset(); + HEADER_PRIMA_NOPOS--; + } + if (!PaginaPosizionamento()) + fill_page(pr, HEADER_PRIMA_NOPOS); + } + else + { + pr.print(head.row(j)); + _RigaCorr++; + } + } +} + +///////////////////////////////////////////////////////////////////////////////////////////// +// +// STAMPA QUADRO G-1 +// +///////////////////////////////////////////////////////////////////////////////////////////// +class TStampaQuadroG1 : public TStampaQuadro +{ + private: + TQuadroG1* _form; + TRelation* _rel; + TCursor* _cur; + + protected: + virtual TCursor* get_cursor() const { return _cur; } + virtual TRelation* get_relation() const { return _rel; } + virtual bool ContaTipiPer() const { return FALSE; } + virtual bool UsaSortedCursor() const { return FALSE; } + virtual TDicForm* get_form() const { return _form; } + virtual TDicForm* build_form(); + virtual TCursor* build_cursor(); +// virtual void fill_estinti(const long CodDic); + virtual bool destroy(); +// bool print_quadro(TString& quadro, const int OffsetDitta=-1); +// virtual void print(); + public: + TStampaQuadroG1(const char* quadro, const char livel) : TStampaQuadro(quadro,livel) {} +}; + +TDicForm* TStampaQuadroG1::build_form() +{ + _form = new TQuadroG1("77QG1", _quadro); + return _form; +} + +TCursor* TStampaQuadroG1::build_cursor() +{ + _rel = new TRelation(LF_QUAG1); + _rel->add(LF_NDITTE, "CODDITTA=CODDITTA"); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213); + _cur = new TCursor(_rel); + return _cur; +} + +bool TStampaQuadroG1::destroy() +{ + delete _m; + delete _rel; + delete _cur; + delete _cnf; + delete _form; + + return TApplication::destroy(); +} + +/* +// _ditte e' fatto di righe siffatte: +// codditta, flag 2 dichiarante, 1 normale, 0 estinto, num_fis, num_nofis, ultima_con_fis, ultima_con_nofis +bool TStampaQuadroG1::print_quadro(TString& quadro, const int OffsetDitta) +{ + int start=0, last=0; + +// Setta formlen prima di printer.open per avere la lunghezza giusta nel caso di +// stampa a video + printer().formlen(QG_FORMLEN); + bool ok = printer().open(); + bool modulaser = _m->get_bool(F_MODULASER); + + _form->set_cur_rel(_rel, _cur); + + _form->set_modulaser(modulaser); + +// Dice se deve eseguire il posizionamento del foglio. +// Se stampa piu' ditte va eseguito solo sulla prima +// Occhio a non spostarlo nel ciclo. + _form->set_posiziona(TRUE); + + if (OffsetDitta >= 0) + { + start = OffsetDitta; + last = OffsetDitta; + } + else + last = _ditte.items() - 1; + + for (int i = start; i <= last; i++) + { + TString CoFiDic(20); + TToken_string riga(_ditte[i]); + riga.separator('|'); + const long codditta = atol(riga.get(0)); + const TipoDitta tipo = (TipoDitta)riga.get_int(1); + +// I gruppi dich-estinti hanno totali comuni +// Si presume che nell'array vengano messi nell'ordine dich-estinti + if (tipo == normale || tipo == dichiarante) + _form->azzera_totali(); + + if (tipo == estinto) + CoFiDic = riga.get(6); + +// Dice al form che tipo di ditta si stampa + _form->set_tipo_ditta(tipo); + +// Numera i fogli a partire da 1 per ogni ditta normale e da 1 e di seguito negli estinti +// per i sogg. dichiaranti + if (tipo == normale || tipo == dichiarante) + _form->set_num_foglio(1); + +// Se la ditta e' estinta dice al form il cod.fis. del dichiarante + if (tipo == estinto) + _form->set_cofi_dic(CoFiDic); + +// Dice al form che e' l'ultima ditta + if (i == last) + _form->set_last_ditta(TRUE); + + _form->print(codditta); + } + printer().close(); + return ok; +} +*/ +/* +void TStampaQuadroG1::fill_estinti(const long CodDic) +{ + int NumFisiche=0, NumNoFisiche=0; + TString CodFiDic(20); + +// Salva il cod.fis. del dichiarante + CodFiDic = cod_fis(CodDic); + + _ditte.add(CodDic, dichiarante); + const int index_dich = _ditte.curr_index(); + int index = index_dich; + +// Leggo gli estinti + TLocalisamfile base(LF_BASE); + base.setkey(2); + base.zero(); + base.put(BSE_CODDIC, (long)CodDic); + TRectype dep(base.curr()); + + for (base.read(); !base.eof(); base.next()) + { + if (base.curr() > dep) + break; + +// Scarta il record del quadro I "globale" del dichiarante + const char tipoqua = base.get(BSE_TIPOQUA)[0]; + if (tipoqua == COD_QUA_I_DIC) + continue; + + const long DittaEstinta = base.get_long(BSE_CODDITTA); + + _ditte.add(DittaEstinta, estinto, 0L, 0L, FALSE, FALSE, CodFiDic); + + index++; + } +} +*/ +/* +void TStampaQuadroG1::print() +{ + int NumFisiche=0, NumNoFisiche=0; + + _ditte.destroy(); // Pulisce l'array delle ditte + + if (_singola_ditta) + { + if (sogg_estinto(_codditta)) + { + warning_box("La ditta %ld e' un soggetto estinto", _codditta); + return; + } + +// Se e' un dichiarante va a prendere tutti i suoi estinti. + bool dich = sogg_dic(_codditta); + if (dich) + fill_estinti(_codditta); + else + _ditte.add(_codditta, normale); + } + else // stampa ditte selezionate + { +// Costruisco un'array delle ditte da stampare. +// Tolgo i sogg. estinti, e dopo un dichiarante metto tutti i suoi estinti. + long codditta_prec = get_firm_770(); + long codditta = 0L; + int i=0; + while ((codditta = _cnf->get_long(DITTE_SEL, _section, i++)) != 0L) + { + if (sogg_estinto(codditta)) + continue; + +// Se e' un dichiarante va a prendere tutti i suoi estinti. + bool dich = sogg_dic(codditta); + if (dich) + fill_estinti(codditta); + else + _ditte.add(codditta, normale); + + } + set_firm_770(codditta_prec); + } + print_quadro(_quadro, -1); +} +*/ + + +/////////////////////////////////////////////////////////////////////////////////////////// +// +// Quadro F +// +/////////////////////////////////////////////////////////////////////////////////////////// + +HIDDEN const int QF_FORMLEN = 72; +HIDDEN const int QF_PAGINE = 2; +HIDDEN const int HEADER_SECONDA_F = 7; + +class TQuadroF : public TDicForm +{ + private: + real pa3t, pa4t, pa5t, pa6t, pa7t; // totali prosp. A + real pb3t, pb4t, pc3t, pc4t, pd3t, pd4t; // totali prosp, B, C e D + int _ptrA, _ptrB, _ptrC, _ptrD; // puntatori alle righe dei prospetti + long _items; + int stampa_prospetto_A(TPrinter& pr, const bool UsaProgind); + int stampa_prospetto_B(TPrinter& pr, const bool UsaProgind); + int stampa_prospetto_C(TPrinter& pr, const bool UsaProgind); + int stampa_prospetto_D(TPrinter& pr, const bool UsaProgind); + TRecord_array* _prosp_a, *_prosp_b, *_prosp_c, *_prosp_d; + void azzera_contatori(); + void aggiorna_totali(char tipoprosp, TRectype& r); + void stampa_totali(char tipoprosp, TPrinter& pr, const bool UsaProgind); + + public: + virtual bool UsaSortedCursor() { return FALSE; } + virtual bool print(const long codditta, const long numfis=0L, const long numnofis=0L); + virtual void inc_curr_page(); + virtual void next_page(TPrinter& pr); + + TQuadroF(const char* form, const char* quadro) : TDicForm(form, quadro) {} + virtual ~TQuadroF() {} +}; + +void TQuadroF::azzera_contatori() +{ + pa3t = pa4t = pa5t = pa6t = pa7t = ZERO; + pb3t=pb4t=pc3t=pc4t=pd3t=pd4t = ZERO; // totali prosp, B, C e D + _ptrA = _ptrB = _ptrC = _ptrD = 1; +} + + +void TQuadroF::stampa_totali(char tipoprosp, TPrinter& pr, const bool UsaProgind) +{ + const int PA3_TOT = 104; + const int PB3_TOT = 54; + TPrint_section& sez = tipoprosp == 'A' ? section('H', 1) : section('B', 1); + const int rr = sez.height()-1; + int i = PA3_TOT, riga_tot=0; + + switch (tipoprosp) + { + case 'A': + { + riga_tot = 46; + TForm_item& c = sez.find_field(i++); + TString c3(pa3t.string()); + c.set(c3); + c = sez.find_field(i++); + TString c4(pa4t.string()); + c.set(c4); + c = sez.find_field(i++); + TString c5(pa5t.string()); + c.set(c5); + c = sez.find_field(i++); + TString c6(pa6t.string()); + c.set(c6); + c = sez.find_field(i++); + TString c7(pa7t.string()); + c.set(c7); + break; + } + case 'B': + { + i = PB3_TOT; + riga_tot = 14; + TForm_item& c = sez.find_field(i++); + TString c3(pb3t.string()); + c.set(c3); + c = sez.find_field(i); + TString c4(pb4t.string()); + c.set(c4); + break; + } + case 'C': + { + i = PB3_TOT+2; + riga_tot = 20; + TForm_item& c = sez.find_field(i++); + TString c3(pc3t.string()); + c.set(c3); + c = sez.find_field(i); + TString c4(pc4t.string()); + c.set(c4); + break; + } + case 'D': + { + i = PB3_TOT+4; + riga_tot = 26; + TForm_item& c = sez.find_field(i++); + TString d3(pd3t.string()); + c.set(d3); + c = sez.find_field(i); + TString d4(pd4t.string()); + c.set(d4); + break; + } + default: + break; + } + + sez.update(); + pr.print(sez.row(riga_tot)); + _RigaCorr++; + + if (UsaProgind) + _prog->addstatus(1); +} + +void TQuadroF::aggiorna_totali(char tipoprosp, TRectype& r) +{ + real sogg,rope,acc,ecc,sal; + + switch (tipoprosp) + { + case 'A': + sogg = r.get_real(QUF_SOGRIT); + rope = r.get_real(QUF_ROPE); + acc = r.get_real(QUF_ACCONTI); + ecc = r.get_real(QUF_VERSECC); + sal = r.get_real(QUF_VERSALDO); + pa3t += sogg; + pa4t += rope; + pa5t += acc; + pa6t += ecc; + pa7t += sal; + break; + case 'B': + sogg = r.get_real(QUF_SOGRIT); + rope = r.get_real(QUF_ROPE); + pb3t += sogg; + pb4t += rope; + break; + case 'C': + sogg = r.get_real(QUF_SOGRIT); + rope = r.get_real(QUF_ROPE); + pc3t += sogg; + pc4t += rope; + break; + case 'D': + sogg = r.get_real(QUF_SOGRIT); + rope = r.get_real(QUF_ROPE); + pd3t += sogg; + pd4t += rope; + break; + default: + break; + } +} + +void TQuadroF::next_page(TPrinter& pr) +{ + PagineQD PagCorr = curr_page(); +// if (PagCorr = SECONDA) stampa_totali(pr); + fill_page(pr, -1); // formfeed "adattato" + inc_curr_page(); +} + +void TQuadroF::inc_curr_page() +{ + if (_PaginaCorrente == PRIMA) + _PaginaCorrente = SECONDA; + else + if (_PaginaCorrente == SECONDA) + _PaginaCorrente = PRIMA; +} + + +bool TQuadroF::print(const long codditta, const long numfis, const long numnofis) +{ + bool EndPrint=FALSE, End_A=FALSE, End_B=FALSE, End_C=FALSE, End_D=FALSE; + int residui_A=0, residui_B=0, residui_C=0, residui_D=0; + TCursor* cur = cursor(); + TPrinter& pr = printer(); + _UsaProgind = FALSE; + + if (!InitPrint(codditta)) + return FALSE; + + azzera_contatori(); + + TLocalisamfile& rf = cur->file(LF_RIGHEF); + TRectype dep(rf.curr()); + dep.zero(); + dep.put("CODDITTA", _codditta); + dep.put("TIPOPRO", "A"); + _prosp_a = new TRecord_array(dep, "NPROG"); + dep.put("TIPOPRO", "B"); + _prosp_b = new TRecord_array(dep, "NPROG"); + dep.put("TIPOPRO", "C"); + _prosp_c = new TRecord_array(dep, "NPROG"); + dep.put("TIPOPRO", "D"); + _prosp_d = new TRecord_array(dep, "NPROG"); + + pr.formlen(QG1_FORMLEN); + + while (!EndPrint) + { + for (int pagina=1; pagina <= QF_PAGINE; pagina++, next_page(pr)) + { + if (_PaginaCorrente == PRIMA) + { + if (_modulaser) ClearFlagModulaser(); + + if (End_A) + break; + + (*cur) = 0L; + + residui_A = stampa_prospetto_A(pr, _UsaProgind); + + End_A = (residui_A == 0); + if (End_A) stampa_totali('A', pr, _UsaProgind); + EndPrint = End_A && End_B && End_C && End_D; + } + + if (_PaginaCorrente == SECONDA) + { +// Reset del flag di pagina con posiz. + if (_posiziona && _PaginaPosizionamento) _PaginaPosizionamento = FALSE; + + if (End_B && End_C && End_D) + break; + + fill_page(pr, HEADER_SECONDA_F); + + residui_B = stampa_prospetto_B(pr, _UsaProgind); + End_B = (residui_B == 0); + if (End_B) stampa_totali('B', pr, _UsaProgind); + + residui_C = stampa_prospetto_C(pr, _UsaProgind); + End_C = (residui_C == 0); + if (End_C) stampa_totali('C', pr, _UsaProgind); + + residui_D = stampa_prospetto_D(pr, _UsaProgind); + End_D = (residui_D == 0); + if (End_D) stampa_totali('D', pr, _UsaProgind); + + EndPrint = End_A && End_B && End_C && End_D; + } + } // for pagina.. + } // EndPrint() + close_print(); + return TRUE; +} + +const int F_DESC_CAUS = 50; +const int RIGHE_PROSP = 3; + +int TQuadroF::stampa_prospetto_C(TPrinter& pr, const bool UsaProgind) +{ + TPrint_section& sez = section('B', 1); + const int rr = sez.height()-1; + + const int START_C = 16; + const int last_c = _prosp_c->last_row(); + for (int i=0; i < RIGHE_PROSP; _ptrC++, i++) + { + if (_ptrC > last_c) + break; + + TRectype& r = _prosp_c->row(_ptrC, TRUE); + aggiorna_totali('C', r); + TString16 codcau(r.get(QUF_CODCAUS)); + TString descr_cau(get_desc_cau(codcau)); + TString16 aliq (r.get(QUF_ALIQUOTA)); + TString sogg (r.get(QUF_SOGRIT)); + TString rope (r.get(QUF_ROPE)); + + const int fc0 = START_C + _ptrC - 1; + TString16 nord; nord << _ptrC; + TForm_item& c0 = sez.find_field(fc0); + c0.set(nord); + + const int fc1 = fc0 + RIGHE_PROSP; + TForm_item& c1 = sez.find_field(fc1); + c1.set(descr_cau); + + const int fc2 = fc1 + RIGHE_PROSP; + TForm_item& c2 = sez.find_field(fc2); + c2.set(aliq); + + const int fc3 = fc2 + RIGHE_PROSP; + TForm_item& c3 = sez.find_field(fc3); + c3.set(sogg); + + const int fc4 = fc3 + RIGHE_PROSP; + TForm_item& c4 = sez.find_field(fc4); + c4.set(rope); + } + const int res_C = last_c - _ptrC; + return res_C < 0 ? 0 : res_C; +} + +int TQuadroF::stampa_prospetto_D(TPrinter& pr, const bool UsaProgind) +{ + TPrint_section& sez = section('B', 1); + const int rr = sez.height()-1; + + const int START_D = 31; + const int last_d = _prosp_d->last_row(); + for (int i=0; i < RIGHE_PROSP; _ptrD++, i++) + { + if (_ptrD > last_d) + break; + + TRectype& r = _prosp_d->row(_ptrD, TRUE); + aggiorna_totali('D', r); + TString16 codcau(r.get(QUF_CODCAUS)); + TString descr_cau(get_desc_cau(codcau)); + TString16 aliq (r.get(QUF_ALIQUOTA)); + TString sogg (r.get(QUF_SOGRIT)); + TString rope (r.get(QUF_ROPE)); + + const int fc0 = START_D + _ptrD - 1; + TString16 nord; nord << _ptrD; + TForm_item& c0 = sez.find_field(fc0); + c0.set(nord); + + const int fc1 = fc0 + RIGHE_PROSP; + TForm_item& c1 = sez.find_field(fc1); + c1.set(descr_cau); + + const int fc2 = fc1 + RIGHE_PROSP; + TForm_item& c2 = sez.find_field(fc2); + c2.set(aliq); + + const int fc3 = fc2 + RIGHE_PROSP; + TForm_item& c3 = sez.find_field(fc3); + c3.set(sogg); + + const int fc4 = fc3 + RIGHE_PROSP; + TForm_item& c4 = sez.find_field(fc4); + c4.set(rope); + } + + sez.update(); + for (i=0; i < rr; i++) + { + pr.print(sez.row(i)); + _RigaCorr++; + } + + if (UsaProgind) + _prog->addstatus(1); + + const int res_D = last_d - _ptrD; + return res_D < 0 ? 0 : res_D; +} + +int TQuadroF::stampa_prospetto_B(TPrinter& pr, const bool UsaProgind) +{ + TPrint_section& sez = section('B', 1); + const int rr = sez.height()-1; + + const int START_B = 1; + + const int last_b = _prosp_b->last_row(); + for (int i=0; i < RIGHE_PROSP; _ptrB++, i++) + { + if (_ptrB > last_b) + break; + + TRectype& r = _prosp_b->row(_ptrB, TRUE); + aggiorna_totali('B', r); + TString dep(50); + dep = r.get(QUF_CODCAUS); + TString descr_cau(get_desc_cau(dep)); + TString16 aliq (r.get(QUF_ALIQUOTA)); + TString sogg (r.get(QUF_SOGRIT)); + TString rope (r.get(QUF_ROPE)); + + const int fc0 = START_B + _ptrB - 1; + TString16 nord; nord << _ptrB; + TForm_item& c0 = sez.find_field(fc0); + c0.set(nord); + + const int fc1 = fc0 + RIGHE_PROSP; + TForm_item& c1 = sez.find_field(fc1); + c1.set(descr_cau); + + const int fc2 = fc1 + RIGHE_PROSP; + TForm_item& c2 = sez.find_field(fc2); + c2.set(aliq); + + const int fc3 = fc2 + RIGHE_PROSP; + TForm_item& c3 = sez.find_field(fc3); + c3.set(sogg); + + const int fc4 = fc3 + RIGHE_PROSP; + TForm_item& c4 = sez.find_field(fc4); + c4.set(rope); + } + +// TBI setta totali e descr.causale F + TString16 fcau(cursor()->curr(LF_QUAF).get(QUF_FCAUS)); + TString descr_cau(get_desc_cau(fcau)); + TForm_item& fd = sez.find_field(F_DESC_CAUS); + fd.set(descr_cau); + + const int res_B = last_b - _ptrB; + return res_B < 0 ? 0 : res_B; +} + +int TQuadroF::stampa_prospetto_A(TPrinter& pr, const bool UsaProgind) +{ + TPrint_section& head = section('H', 1); + const word rr = head.height()-1; + TPrintrow& head_row = head.row(rr-1); + +// Setta il cod.fis. del dichiarante se necessario + if (tipo_ditta() == estinto) + { + TForm_item& cfd = head.find_field(H_COFI_DIC); + cfd.set(_cofi_dic); + } + + TCursor* cur = cursor(); + + const int START_PROSP = 56; + const int RIGHE_PROSP = 6; + const int COL_PROSP = 8; + const int last_a = _prosp_a->last_row(); + + for (int i=0; i < RIGHE_PROSP ; _ptrA++, i++) + { + if (_ptrA > last_a) + break; + TRectype& r = _prosp_a->row(_ptrA, TRUE); + aggiorna_totali('A', r); + TString16 codcau(r.get(QUF_CODCAUS)); + TString descr_cau(get_desc_cau(codcau)); + TString16 aliq (r.get(QUF_ALIQUOTA)); + TString sogg (r.get(QUF_SOGRIT)); + TString rope (r.get(QUF_ROPE)); + TString acc(r.get(QUF_ACCONTI)); + TString ecc(r.get(QUF_VERSECC)); + TString sal(r.get(QUF_VERSALDO)); + + const int fc0 = START_PROSP + _ptrA - 1; + TString16 nord; nord << _ptrA; + TForm_item& c0 = head.find_field(fc0); + c0.set(nord); + + const int fc1 = fc0 + RIGHE_PROSP; + TForm_item& c1 = head.find_field(fc1); + c1.set(descr_cau); + + const int fc2 = fc1 + RIGHE_PROSP; + TForm_item& c2 = head.find_field(fc2); + c2.set(aliq); + + const int fc3 = fc2 + RIGHE_PROSP; + TForm_item& c3 = head.find_field(fc3); + c3.set(sogg); + + const int fc4 = fc3 + RIGHE_PROSP; + TForm_item& c4 = head.find_field(fc4); + c4.set(rope); + + const int fc5 = fc4 + RIGHE_PROSP; + TForm_item& c5 = head.find_field(fc5); + c5.set(acc); + + const int fc6 = fc5 + RIGHE_PROSP; + TForm_item& c6 = head.find_field(fc6); + c6.set(ecc); + + const int fc7 = fc6 + RIGHE_PROSP; + TForm_item& c7 = head.find_field(fc7); + c7.set(sal); + } + +// Righe da saltare nelle prime pag. dei moduli successivi al primo (che' son +// senza le righe del posizionamento...) + int HEADER_PRIMA_NOPOS = 3; + head.update(); + for (word j = 0; j <= rr; j++) + { + if (j==0) + { + if (_modulaser) + { + TPrintrow& r = head.row(j); + if (!_GiaMessoStartDoc) + put_modulaser(r, STARTDOC); + put_modulaser(r, STARTDITTA); + put_modulaser(r, STARTPAGE, 1); + pr.print(r); + _RigaCorr++; + r.reset(); + HEADER_PRIMA_NOPOS--; + } + if (!PaginaPosizionamento()) + fill_page(pr, HEADER_PRIMA_NOPOS); + } + else + { + pr.print(head.row(j)); + _RigaCorr++; + } + } + const int res = last_a - _ptrA; + return res < 0 ? 0 : res; +} + +///////////////////////////////////////////////////////////////////////////////////////////// +// +// STAMPA QUADRO F +// +///////////////////////////////////////////////////////////////////////////////////////////// +class TStampaQuadroF : public TStampaQuadro +{ + private: + TQuadroF* _form; + TRelation* _rel; + TCursor* _cur; + + protected: + virtual bool ContaTipiPer() const { return FALSE; } + virtual bool UsaSortedCursor() const { return FALSE; } + virtual TDicForm* get_form() const { return _form; } + virtual TDicForm* build_form(); + virtual TCursor* build_cursor(); + virtual TCursor* get_cursor() const { return _cur; } + virtual TRelation* get_relation() const { return _rel; } + virtual bool destroy(); +// virtual void print(); + + public: + TStampaQuadroF(const char* quadro, const char livel) : TStampaQuadro(quadro,livel) {} +}; + +TDicForm* TStampaQuadroF::build_form() +{ + _form = new TQuadroF("77QF", _quadro); + return _form; +} + +TCursor* TStampaQuadroF::build_cursor() +{ + _rel = new TRelation(LF_QUAF); + _rel->add(LF_RIGHEF, "CODDITTA=CODDITTA"); + _rel->add(LF_NDITTE, "CODDITTA=CODDITTA", 1, LF_QUAF); + _rel->add(LF_ANAG, "TIPOA=TIPOA|CODANAGR=CODANAGR", 1, LF_NDITTE, 116); + _rel->add(LF_ANAGFIS, "CODANAGR=CODANAGR", 1, LF_ANAG, 118); + _rel->add(LF_COMUNI, "COM=COMNASC", 1, LF_ANAGFIS, 113); + _rel->add(LF_COMUNI, "COM=COMRF(COMRES)", 1, LF_ANAG, 213); + _cur = new TCursor(_rel); + return _cur; +} + +bool TStampaQuadroF::destroy() +{ + delete _m; + delete _rel; + delete _cur; + delete _cnf; + delete _form; + + return TApplication::destroy(); +} + +/////////////////////////////////////////////////////////////////////////////////////////// +// +// Quadro H +// +/////////////////////////////////////////////////////////////////////////////////////////// + +HIDDEN const int QH_FORMLEN = 72; +HIDDEN const int QH_PAGINE = 2; +HIDDEN const int HEADER_SECONDA_H = 7; + +class TQuadroH : public TDicForm +{ + private: + real _rC2t, _rC3t; // totali colonna 2 e 3 + long _items; + void azzera_contatori(); +// void aggiorna_totali(char tipoprosp, TRectype& r); +// void stampa_totali(char tipoprosp, TPrinter& pr, const bool UsaProgind); + + public: + virtual bool UsaSortedCursor() { return FALSE; } + virtual bool print(const long codditta, const long numfis=0L, const long numnofis=0L); + virtual void inc_curr_page(); + virtual void next_page(TPrinter& pr); + + TQuadroH(const char* form, const char* quadro) : TDicForm(form, quadro) {} + virtual ~TQuadroH() {} +}; + + +void TQuadroH::azzera_contatori() +{ + _rC2t = _rC3t = ZERO; +} + +///////////////////////////////////////////////////////////////////////////////// +// +// MAIN +// +// Uso: +// 772mod -4 [QUADRO] [ LIVELLO {S|D} ] +// +///////////////////////////////////////////////////////////////////////////////// +int stampa_quadro(int argc, char* argv[]) +{ + if (argc >= 4) + { + TString quadro(argv[2]); + const char livello = *argv[3]; + + if ( quadro == "C" || quadro == "D" || quadro == "D1" || quadro == "E" || + quadro == "E1" ) + { + TStampaQuadro app(quadro, livello); + app.run(argc, argv, app.taitol()); + } + + if (quadro == "F") + { + TStampaQuadroF app(quadro, livello); + app.run(argc, argv, app.taitol()); + } + + if (quadro == "G") + { + TStampaQuadroG app(quadro, livello); + app.run(argc, argv, app.taitol()); + } + + if (quadro == "G1") + { + TStampaQuadroG1 app(quadro, livello); + app.run(argc, argv, app.taitol()); + } +/* + if (quadro == "H") + { + TStampaQuadroH app(quadro, livello); + app.run(argc, argv, app.taitol()); + } +*/ + } + return 0; +} + + diff --git a/m770/77stq.sbr b/m770/77stq.sbr new file mode 100755 index 000000000..629ce620d --- /dev/null +++ b/m770/77stq.sbr @@ -0,0 +1,694 @@ +F:\NIK\P.DUE\77ÿÿ__LINE__þÿ__FILE__ñÿ_MSC_VERíÿXVT_OSf:\nik\p.due\77\77stq.cppf:\p.due\INCLUDE\applicat.hF:\XVT.403\WIN_X86\PTK\include\xvt.hF:\XVT.403\WIN_X86\PTK\include\xvt_vers.hæÿXVT_PTK_VERSION_PATCH +F:\XVT.403\WIN_X86\PTK\include\xvt_env.h>âÿBOOLEANHáÿTRUEQàÿFALSEWßÿVOID[ÝÿXVT_CC_ENUM_ENDªÜÿXVT_OS_UNKNOWN½ØÿXVT_OS_NTÃ×ÿXVT_OS_WIN×ÐÿXVT_OS_VMSÜÍÿXVT_OS_SCOUNIXóÅÿXVT_OS_IS_WINOSôÄÿXVT_OS_IS_DOSBASEDöÃÿXVT_OS_BSD_SIGNALS÷ÂÿXVT_OS_BSD_TIMERSøÁÿXVT_OS_BSD_DIRùÀÿXVT_OS_BSD_GETWDú¿ÿXVT_OS_SYSV_SIGNALSû¾ÿXVT_OS_SYSV_TIMERSü½ÿXVT_OS_SYSV_DIRý¼ÿXVT_OS_SYSV_GETCWD»ÿXVT_WS_UNKNOWNºÿMACWS¹ÿPMWS·ÿWINWSµÿMTFWS´ÿXOLWS³ÿXVTWS6²ÿXVT_FILESYS_MAC7±ÿXVT_FILESYS_HPFS8°ÿXVT_FILESYS_NTFS9¯ÿXVT_FILESYS_DOS:®ÿXVT_FILESYS_UNIX;­ÿXVT_FILESYS_VMSB¬ÿSZ_FNAME´«ÿXVT_CC_UNKNOWNµªÿXVT_CC_CURL¶©ÿXVT_CC_HELPCË¢ÿXVT_CC_BORCØŸÿXVT_CC_MSV80 ˆÿXVT_CC‡ÿXVT_CC_PROTO…ÿXVT_CC_ISANSI*ƒÿXVT_CALLCONV1+‚ÿXVT_CALLCONV2/ÿXVT_CALLCONV_TYPEDEF;ÿpascalCxÿ_asmDwÿ_cdeclEvÿ_exportHsÿ_pascalKpÿ__asmLoÿ__cdeclMnÿ__exportPkÿ__pascalShÿ__loaddsYgÿfarZfÿhuge[eÿnear\dÿ_far]cÿ_huge^bÿ_near_aÿ__far``ÿ__hugea_ÿ__nearu^ÿXVT_MULTINSTANCEvF:\XVT.403\WIN_X86\PTK\include\xvt_plat.h3íÿ4[ÿXVT_OS7Åÿ;Äÿ<YÿXVT_OS_IS_DOSBASEDH³ÿI[ÿ×ÿ×ÿJWÿXVTWSM[ÿ×ÿØÿV[ÿ×ÿØÿ`[ÿ×ÿ×ÿa¯ÿbVÿXVT_FILESYS_DOSc¬ÿdUÿSZ_FNAMEnˆÿ«ÿªÿoˆÿ«ÿ«ÿsYÿáÿáÿñÿ~Yÿáÿáÿñÿˆÿ«ÿ«ÿ‚ˆÿƒTÿXVT_CC„…ÿ…SÿXVT_CC_ISANSI‰Yÿáÿàÿñÿ”YÿáÿáÿŸYÿáÿáÿªñÿ½[ÿ×ÿ×ÿ[ÿ×ÿØÿ¾^ÿÇ[ÿ×ÿ×ÿÉÿÊsÿËkÿÌvÿÍnÿÎxÿÏpÿÐwÿÑoÿÒeÿÓbÿÔ_ÿÕgÿÖdÿ×aÿØfÿÙcÿÚ`ÿÛhÿ݃ÿáQÿXVT_CALLCONV1åÿçPÿXVT_CALLCONV_TYPEDEFê[ÿ×ÿØÿüNÿXVT_NP_MENU_FIELDSeQÿlC:\VC\INCLUDE\sys/types.hBtime_tC_ino_tE_dev_t'G_off_t/ +C:\VC\INCLUDE\sys/stat.hñÿ&I_stat I'E@ôþst_dev(C@óþst_ino)@òþst_mode*@ñþst_nlink+@ðþst_uid,@ïþst_gid-E@îþst_rdev.G@íþst_size/B@ìþst_atime0B@ëþst_mtime1B@êþst_ctime 6Vstat V7E@éþst_dev8C@èþst_ino9@çþst_mode:@æþst_nlink;@åþst_uid<@äþst_gid=E@ãþst_rdev>G@âþst_size?B@áþst_atime@B@àþst_mtimeAB@ßþst_ctime TIUIbVcVk +uVC:\VC\INCLUDE\io.hñÿBp_wopeninfo pC@ºþ_versionD@¹þ_titleE@¸þ_wbufsize J}_wsizeinfo }K@·þ_versionL@¶þ_typeM@µþ_xN@´þ_yO@³þ_hP@²þ_w y}{p}}¡ +}æÿ~ +ž[ÿ×ÿÜÿTÿŸÿªÿTÿŸÿ©ÿ¢Wÿ·ÿ»ÿ¦TÿŸÿ«ÿ«²ÿàÿ±ÿàÿ°ÿàÿVÿáÿ®ÿàÿ­ÿàÿTÿŸÿªÿTÿŸÿ©ÿ¯Ãÿàÿ¿ÿàÿÂÿàÿ¾ÿàÿÁÿàÿ½ÿàÿÀÿàÿ¼ÿàÿ¸‡ÿáÿ¼«þXVT_CC_ARGS½ +TÿŸÿªÿC:\VC\INCLUDE\ctype.hñÿ~ +C:\VC\INCLUDE\stdio.hñÿOsize_tPva_list+ƒþEOF/Q_iobuf Q0@‚þ_ptr1@þ_cnt2@€þ_base3@þ_flag4@~þ_file 6Q^FILE\sþNULLf^m`fpos_tÐ^Ñ^Ò^Ô^Õ^×^Ø^Ù^Ú^Û^ß^`à^á^ã^å^æ^ê^ëOOO^ì^í^ï^ñ^`ò^ó^ö^p}ùOOOú^û^^^ ^^^^OO^^ ^P"P$OP%PJ^N^S^T^_ +C:\VC\INCLUDE\stddef.hñÿ@wchar_tO +C:\VC\INCLUDE\stdlib.hñÿ6_onexit_t7_fonexit_t: onexit_tD!_div_t !E@RþquotF@Qþrem G.div_tI/_ldiv_t /J@PþquotK@Oþrem L<ldiv_t¢<©`_atol¬OO®OO¯.·ºOÄOÅÊOOÏOáOâOãäOOåOOéOêëOìíOîOïOðO   +C:\VC\INCLUDE\string.hñÿ1O3O7O9O:O?`QstrcmpDOHO`hstrlenKOMOOOQO`zstrncpyROXO]O^OeOgOiOmOnOtOwOzO|O~O€OO‡O›OœO¦ +C:\VC\INCLUDE\time.hñÿ""clock_t.#tm #/@:þtm_sec0@9þtm_min1@8þtm_hour2@7þtm_mday3@6þtm_mon4@5þtm_year5@4þtm_wday6@3þtm_yday7@2þtm_isdst [BB^#_Ba"c#Bd#BeB#gOOh#lBB€ +F:\XVT.403\WIN_X86\PTK\include\xvt_varg.hSÿáÿC:\VC\INCLUDE\stdarg.hñÿ3 +% +F:\XVT.403\WIN_X86\PTK\include\xvt_styp.h+TSSTR-< +F:\XVT.403\WIN_X86\PTK\include\xvt_defs.hþ‰ýWSF_NONE!sýXVT_FS_NONE"rýXVT_FS_BOLD#qýXVT_FS_ITALIC%oýXVT_FS_SCALE&nýXVT_FS_UNDERLINE@XýXVT_FFN_FIXEDŽ7ýNULL_WIN•1ýTASK_WIN§+ýATTR_BASE½ýATTR_TASK_WINDOW×ýATTR_NATIVE_WINDOWê +F:\XVT.403\WIN_X86\PTK\include\xvt_menu.h+ +F:\XVT.403\WIN_X86\PTK\include\xvt_type.hXWINDOWYPICTURE ZCOLOR![EVENT_MASK"\GHANDLE#]MENU_TAG$^CURSOR%_TXEDIT&`T_CNUM'aT_CPOS(bT_LNUM)cT_PNUM.âÿ/fDATA_PTR2iCCHR3i8mUINT>PÿB qe_xvt_errsev qG vXVT_ERRSEVIwXVT_ERRIDLxs_errmsg x@Üüunsupp …XVT_ERRMSGRPÿâÿ…fˆXVT_ERRMSG_HANDLERT ‰e_mode ‰]Ýÿ^ “DRAW_MODE` ”e_eol ”dÝÿe ™EOL_FORMATg ›e_access ›kÝÿl  ACCESS_CMDn ¡e_ask_resp ¡rÝÿs ¦ASK_RESPONSEu §e_cb §zÝÿ{ ­CB_FORMAT}®s_dir ®Uÿ@Ûüpath ƒ»DIRECTORY… ½e_file ½‰ÝÿŠ ÂFL_STATUSŒ Ãe_pat à +ÆPAT_SOLID˜Ýÿ™ ÐPAT_STYLE› Ñe_pen_style Ñœ +ÒP_SOLIDŸÝÿ  ÖPEN_STYLE¢×s_pnt ×£@Úüv¤@Ùüh ¥äPNT§æs_printrcd æ¨@Øüdata ©óPRINT_RCD«õs_rct õ¬@×ütop­@Öüleft®@Õübottom¯@Ôüright °RCT² e_scroll_ctl ºÝÿ» SCROLL_CONTROL½ e_scroll_type ÁÝÿ SCROLL_TYPEÄs_slist Å@Óüdummy Æ!SLISTÈ"s_slistelt "É@Òüdummy Ê/SLIST_ELTÐ0s_fontsty 0Ñ@Ñüs_boldÒ@Ðüs_italicÓ@Ïüs_underÔ@Îüs_strikeoutÕ@Íüs_outlineÖ@Ìüs_shadow×@Ëüs_inverseØ@Êüs_blinkÙWÿ·ÿµÿWÿ·ÿ´ÿÜ[ÿ×ÿ×ÿ á=FONT_STYLE_R3ä[ÿ×ÿ×ÿ[ÿ×ÿØÿìÉüXVT_FONT_FAMILY_TYPEòÉü>s_fontfam >@Èüfixed@Çüproof@Æüchset@Åüfamily KFONT_FAMILY_R3õLs_font Lö=@Äüstyle÷K@Ãüfamilyø@Âüsize ùYFONT_R3ü Ze_font ZÝÿ _FONT_PART_R3`s_fntid `@Áüdummy mXVT_FNTIDnXVT_FONT_ATTR_MASKoXVT_FONT_STYLE_MASKPÿâÿmPÿâÿXmó  we_win_type w" +yW_DOC<Ýÿ= ”WIN_TYPE?•s_cbrush •@Ð@ÀüpatAZ@¿ücolor B¢CBRUSHD£s_mitem £E]@¾ütagFT@½ütextG@¼ümkeyH[ÿ×ÿÍÿTÿŸÿ¢ÿP@»üenabledQ@ºücheckedR@¹ücheckableS@¸üseparatorT[ÿ×ÿ×ÿY£@·üchild\Nÿ@¶üstate ]°MENU_ITEM`±s_cpen ±a@µüwidthbÐ@´üpatcÖ@³üstyledZ@²ücolor e¾CPENg¿s_filespec ¿h»@±üdiri@°ütypejUÿ@¯ünamek@®ücreator lÌFILE_SPECnÎs_ctlinfo Îo”@­ütypepX@¬üwinrÐs_pushbutton Ðs@«üreserved uÝs_radiobutton Ýv@ªüreserved xês_checkbox êy@©üreserved {÷s_scroll ÷|@¨üwhat}@§üpos s_edit €âÿ@¦üfocus_changeâÿ@¥üactive ƒs_statictext „@¤üreserved †s_lbox ‡âÿ@£üdbl_click ‰+s_listbutton +Š@¢üreserved Œ8s_listedit 8âÿ@¡üfocus_changeŽâÿ@ üactive Es_groupbox E‘@Ÿüreserved “Rs_icon R”@žüreserved –_s_chr _˜@üch™âÿ@œüshiftšâÿ@›ücontrol œ@šüv „CONTROL_INFO †s_drawct_r3 †¡¾@™üpen¢¢@˜übrush£“@—ümode¤Y@–üfont¥Z@•üfore_color¦Z@”üback_color§âÿ@“üopaque_text ©”s_drawct ”ª¾@’üpen«¢@‘übrush¬“@ümode­Z@üfore_color®Z@Žüback_color¯âÿ@üopaque_text °¡DRAW_CTOOLS_R4´¡¢DRAW_CTOOLS· £_event_type £ÌÝÿÍ ¹EVENT_TYPEϺXVT_HELP_TIDÑ»s_event »Ò¹@ŒütypeÔ½s_mouse ½Öä@‹üwhere×âÿ@ŠüshiftØâÿ@‰ücontrolÙ@ˆübutton ÛÊs_char ÊÜ@‡üchÝâÿ@†üshiftÞâÿ@…ücontrol àâÿáâÿâ×s_scroll_info ×ã@„üwhatä@ƒüpos æäs_cmd äç]@‚ütagèâÿ@üshiftéâÿ@€ücontrol ëñs_size ñì@üheightí@~üwidth ïþs_efont þôm@}üfont_id ø s_efont_r4 ùm@|üfont_id ûs_efont_r3 üY@{üfontý_@züpart ÿ%s_ctl %@yüid„@xüci 2s_update 2@würct ?s_timer ?@vüid  Ls_user L +@uüid @tüptr Ys_help YX@süobj]@rütagº@qütid @püv ~EVENTPÿ_bba„SCROLL_CALLBACKPÿX~‡EVENT_HANDLERPÿâÿ‰XVT_PRINT_FUNCTION Še_unit_type Š"Ýÿ# UNIT_TYPE%s_xvt_config &@oümenu_bar_ID'@nüabout_box_ID(T@mübase_appl_name)T@lüappl_name*T@kütaskwin_title +XVT_CONFIG-žs_win_def ž.”@jüwtype/@iürct0T@hütext1@güunits3 s_win_def_win  4@fümenu_rid5°@eümenu_p6@düflags 8­s_win_def_dlg ­9@cüflags ;ºs_win_def_ctl º<@büctrl_id=@aüicon_id>@`üflags @Çs_win_def_tx ÇA@_üattribPm@^üfont_idR@]ümarginS@\ülimitT@[ütx_id VÔs_win_def_tx_R4 ÔW@ZüattribXm@Yüfont_idY@XümarginZ@Wülimit[@Vütx_id ]ás_win_def_tx_R3 á^@Uüattrib_TÿŸÿ¢ÿbY@TüfontcTÿŸÿ¢ÿf@Sümarging@Rülimith@Qütx_id j@Püv k WIN_DEFo  e_display_type  v x  e_image_format  }  XVT_IMAGE_FORMAT _xvt_image_attr  @Oüdummy " XVT_IMAGE_ATTR# _xvt_image # @Nüdummy 0 XVT_IMAGE… 1 e_palette_type 1 Œ 8 XVT_PALETTE_TYPEŽ9 _xvt_palette_attr 9 @Müdummy F XVT_PALETTE_ATTRG _xvt_palette G @Lüdummy T XVT_PALETTE” U e_pixmap_format U — X XVT_PIXMAP_FORMAT™Y _xvt_pixmap_attr Y @Küdummy f XVT_PIXMAP_ATTR›Xg XVT_PIXMAPŸh s_mem h  PÿfO@Jümalloc¡Pÿßÿf@Iüfree¢PÿffO@Hürealloc£PÿfO@Güzalloc §f{ XVT_IOSTR_CONTEXT©| s_xvt_iostream | @Füopaque ‰ XVT_IOSTREAM®Pÿ‰  XVT_IOSTR_RWFUNC±Pÿ‰  XVT_IOSTR_SZFUNC +F:\XVT.403\WIN_X86\PTK\include\xvt_sel.h®TQÿ‚ÿ«þT¯TQÿ‚ÿ«þTDQÿE‚ÿJ«þ^TLQÿM‚ÿR«þ^TT[ÿ×ÿÐÿVQÿW‚ÿ[«þT]Qÿ^‚ÿb«þTfQÿg‚ÿl«þTTnQÿo‚ÿt«þTT Qÿ‚ÿ«þTTTQÿ‚ÿ«þTTâÿQÿ‚ÿ#«þTT&TQÿ'‚ÿ-«þT™ +F:\XVT.403\WIN_X86\PTK\include\xvt_perr.hÉ +F:\XVT.403\WIN_X86\PTK\include\xvt_help.h µ s_xvt_help_info µ @2ûfake  XVT_HELP_INFO% à e_xvt_help_flavor à + É XVT_HELP_FLAVORFQÿ G‚ÿK«þÌMQÿN‚ÿQ«þ TQÿU‚ÿY«þ º\Qÿ]‚ÿb«þ ºTeQÿf‚ÿm«þ X]ºpQÿºq‚ÿv«þ X]yQÿz‚ÿ€«þ XºƒQÿº„‚ÿˆ«þ X‹QÿŒ‚ÿ’«þ X •Qÿ–‚ÿš«þ XQÿž‚ÿ£«þ X¦Qÿ§‚ÿª«þ ­âÿQÿ®‚ÿ³«þ X~¶QÿÉ ·‚ÿº«þ^Wÿ·ÿºÿkWÿ·ÿ·ÿWÿ·ÿ¹ÿÐ +F:\XVT.403\WIN_X86\PTK\include\xvtapp.hQÿ‚ÿ«þQÿ‚ÿ$«þ‡'Qÿ(‚ÿ+«þ.âÿQÿ/‚ÿ3«þ6Qÿ7‚ÿ;«þâÿ>Qÿ?‚ÿB«þEÌQÿF‚ÿI«þL¢QÿM‚ÿP«þ¢SQÿT‚ÿW«þ +F:\XVT.403\WIN_X86\PTK\include\xvtcb.hQÿf‚ÿ«þâÿQÿ‚ÿ«þQÿ ‚ÿ#«þ&Qÿf'‚ÿ,«þ­T/âÿQÿ0‚ÿ4«þ­T7âÿQÿ8‚ÿ;«þâÿ>âÿQÿ?‚ÿE«þ­TY +F:\XVT.403\WIN_X86\PTK\include\xvtctl.hQÿX‚ÿ«þ”TXQÿX‚ÿ$«þ X'Qÿ(‚ÿ-«þX0Qÿ1‚ÿ6«þX9âÿQÿ:‚ÿ=«þX@QÿA‚ÿE«þâÿXHQÿI‚ÿN«þXX +F:\XVT.403\WIN_X86\PTK\include\xvtdebug.hQÿ‚ÿ«þT +F:\XVT.403\WIN_X86\PTK\include\xvtdlg.hQÿX‚ÿ«þ [‡QÿX‚ÿ#«þ”[‡ +F:\XVT.403\WIN_X86\PTK\include\xvtdm.hQÿ‚ÿ«þQÿ¦‚ÿ «þTTTT#Qÿ$‚ÿ(«þT+Qÿ,‚ÿ0«þT3QÿÂ4‚ÿ8«þÌT;QÿÂ<‚ÿ@«þÌTBâÿQÿC‚ÿI«þXmóKQÿL‚ÿP«þTSQÿT‚ÿX«þT[âÿQÿ\‚ÿ_«þóbTQÿc‚ÿh«þTTkQÿl‚ÿp«þT +F:\XVT.403\WIN_X86\PTK\include\xvtdwin.hQÿ‚ÿ«þXZQÿY‚ÿ«þX Qÿ!‚ÿ'«þâÿâÿXä*Qÿ+‚ÿ3«þX6Qÿ7‚ÿ=«þX@QÿA‚ÿG«þX0 JQÿK‚ÿO«þXäRQÿS‚ÿW«þXZQÿ[‚ÿ`«þXYcQÿd‚ÿl«þXoQÿp‚ÿv«þXg yQÿz‚ÿ«þXä‚Qÿƒ‚ÿˆ«þXä‹QÿŒ‚ÿ«þX“Qÿ”‚ÿš«þXQÿž‚ÿ¢«þXä¥Qÿ¦‚ÿ­«þXT°Qÿ±‚ÿµ«þX¸¢Qÿ¹‚ÿ½«þX¢ÃQÿmÄ‚ÿÇ«þXÉQÿÊ‚ÿΫþXmÐQÿÑ‚ÿÔ«þXÖâÿQÿׂÿÜ«þXTÞâÿQÿß‚ÿä«þXTæâÿQÿç‚ÿì«þXTîQÿï‚ÿò«þXôQÿõ‚ÿø«þXúQÿoû‚ÿþ«þXQÿo‚ÿ«þXQÿ‚ÿ «þXQÿ‚ÿ«þXTQÿ‚ÿ«þXTQÿ‚ÿ «þX"Qÿ#‚ÿ'«þXo+Qÿ,‚ÿ2«þX4Qÿ5‚ÿ:«þXT=Qÿ>‚ÿB«þXEâÿQÿF‚ÿJ«þXMâÿQÿN‚ÿR«þXUQÿV‚ÿ\«þX_Qÿ`‚ÿd«þXZgQÿh‚ÿl«þX¢oQÿp‚ÿt«þXwQÿx‚ÿ|«þX¾Qÿ€‚ÿ„«þX¢‡Qÿˆ‚ÿŒ«þX“ŽQÿ‚ÿ“«þXZ–Qÿ—‚ÿ›«þXžQÿŸ‚ÿ£«þX¦Qÿ§‚ÿª«þX +F:\XVT.403\WIN_X86\PTK\include\xvterr.h#Qÿ$‚ÿ+«þXvw-Qÿ.‚ÿ6«þXvw8Qÿ9‚ÿ=«þˆf?Qÿ@‚ÿC«þˆmâÿQÿn‚ÿq«þ…sQÿvt‚ÿw«þ…yTQÿz‚ÿ}«þ…Qÿw€‚ÿƒ«þ……TQÿ†‚ÿ‰«þ…‹TQÿŒ‚ÿ«þ…‘Qÿ’‚ÿ•«þ…—TQÿ˜‚ÿ›«þ…TQÿž‚ÿ¡«þ…£QÿX¤‚ÿ§«þ…©TQÿª‚ÿ°«þ…wü +F:\XVT.403\WIN_X86\PTK\include\xvtevent.hQÿm‚ÿ«þ~Qÿ‚ÿ«þ~m +F:\XVT.403\WIN_X86\PTK\include\xvtfont.hQÿ‚ÿ«þóTQÿ‚ÿ$«þóTo&Qÿ'‚ÿ.«þóTo0Qÿ1‚ÿ8«þâÿóT:Qÿ;‚ÿC«þâÿóToEQÿF‚ÿK«þmmnMQÿmN‚ÿQ«þSQÿT‚ÿW«þmYâÿQÿZ‚ÿ^«þmT`Qÿa‚ÿd«þmfQÿg‚ÿj«þmlâÿQÿm‚ÿr«þmTtâÿQÿu‚ÿz«þmT|Qÿ}‚ÿƒ«þm…âÿQÿ†‚ÿ‹«þmTQÿŽ‚ÿ‘«þm“Qÿ”‚ÿ—«þm™Qÿoš‚ÿ«þmŸQÿo ‚ÿ£«þm¥QÿX¦‚ÿ©«þm«âÿQÿ¬‚ÿ¯«þm±âÿQÿ²‚ÿµ«þm·âÿQÿ¸‚ÿ»«þm½âÿQÿ¾‚ÿÁ«þmÃQÿÄ‚ÿÈ«þmXÊâÿQÿË‚ÿΫþmÐQÿÑ‚ÿÖ«þmTØQÿÙ‚ÿÝ«þmßQÿà‚ÿä«þmTæQÿç‚ÿë«þmTíQÿî‚ÿò«þmôQÿõ‚ÿù«þmoûQÿü‚ÿÿ«þm +F:\XVT.403\WIN_X86\PTK\include\xvtfsys.hâÿQÿ‚ÿ«þÌQÿ‚ÿ«þÌ!âÿQÿ"‚ÿ'«þ»T*âÿQÿ+‚ÿ/«þT»2Qÿ3‚ÿ6«þ»9âÿQÿ:‚ÿ=«þ»@QÿA‚ÿD«þGQÿ!H‚ÿM«þâÿTTPâÿQÿQ‚ÿT«þÌWQÿX‚ÿ[«þ^Qÿ_‚ÿb«þeâÿQÿf‚ÿi«þ» +F:\XVT.403\WIN_X86\PTK\include\xvtgmem.hQÿ\‚ÿ«þâÿQÿ‚ÿ«þ\Qÿf ‚ÿ#«þ\&Qÿ\'‚ÿ+«þ\.Qÿ/‚ÿ2«þ\5âÿQÿ6‚ÿ9«þ\ +F:\XVT.403\WIN_X86\PTK\include\xvtiostr.hQÿ‰ ‚ÿ«þ^Qÿ‰ ‚ÿ«þ^Qÿ‰ ‚ÿ#«þ{   %Qÿ‰ &‚ÿ*«þ{  ,Qÿ{ -‚ÿ0«þ‰ 2Qÿ3‚ÿ6«þ‰ +F:\XVT.403\WIN_X86\PTK\include\xvtimage.hF:\XVT.403\WIN_X86\PTK\include\xvtiostr.h +Qÿ0 ‚ÿ«þ " Qÿ‚ÿ!«þ0 $Qÿ%‚ÿ*«þ0 Z-QÿZ.‚ÿ2«þ0 5Qÿ6‚ÿ;«þ0 >Qÿ ?‚ÿB«þ0 EQÿF‚ÿL«þ0 g OQÿP‚ÿS«þ0 VQÿZW‚ÿ\«þ0 _Qÿ`‚ÿe«þ0 hQÿfi‚ÿm«þ0 pQÿ0 q‚ÿt«þTwQÿ0 x‚ÿ{«þT~Qÿ0 ‚ÿ‚«þ‰ …Qÿ0 †‚ÿ‰«þTŒQÿ0 ‚ÿ«þ‰ “Qÿ0 ”‚ÿ—«þTšQÿ0 ›‚ÿž«þ‰ ¡Qÿ0 ¢‚ÿ¥«þT¨Qÿ0 ©‚ÿ¬«þ‰ ®Qÿ¯‚ÿ´«þ0 Z·Qÿ¸‚ÿ¼«þ0 ¿QÿÀ‚ÿÆ«þ0 ZÉQÿÊ‚ÿÏ«þ0 ÒQÿÓ‚ÿÙ«þ0 0 ÜâÿQÿÝ‚ÿá«þ0 ‰ äâÿQÿå‚ÿé«þ0 ‰ +F:\XVT.403\WIN_X86\PTK\include\xvtlist.hâÿQÿ‚ÿ«þXTâÿQÿ‚ÿ«þX!Qÿ"‚ÿ%«þX(Qÿ)‚ÿ,«þX/Qÿ!0‚ÿ3«þX6âÿQÿ7‚ÿ=«þXT@âÿQÿA‚ÿF«þXTIQÿ!J‚ÿM«þXPQÿQ‚ÿT«þXWâÿQÿX‚ÿ\«þX_âÿQÿ`‚ÿd«þXgQÿh‚ÿk«þXnâÿQÿo‚ÿt«þâÿXwQÿx‚ÿ{«þX +F:\XVT.403\WIN_X86\PTK\include\xvtmenu.hQÿm‚ÿ«þXQÿ‚ÿ«þXm#°Qÿ$‚ÿ'«þX)Qÿ*‚ÿ/«þâÿX]1Qÿ2‚ÿ7«þâÿX]9Qÿ:‚ÿ?«þX]TAQÿB‚ÿF«þX°HQÿI‚ÿL«þX +F:\XVT.403\WIN_X86\PTK\include\xvtmem.hQÿf‚ÿ«þOQÿ‚ÿ«þfQÿf ‚ÿ$«þfO'Qÿf(‚ÿ.«þffm1Qÿf2‚ÿ5«þO +F:\XVT.403\WIN_X86\PTK\include\xvtpalet.hQÿT ‚ÿ«þ8 F QÿT ‚ÿ«þ Qÿ!‚ÿ$«þT 'Qÿ(‚ÿ+«þT .Qÿ/‚ÿ2«þT 5Qÿ8 6‚ÿ9«þT <Qÿ=‚ÿA«þT DQÿE‚ÿH«þT KQÿL‚ÿQ«þT ZTQÿU‚ÿZ«þT Z]Qÿ^‚ÿb«þT 0 +F:\XVT.403\WIN_X86\PTK\include\xvtpict.hQÿY‚ÿ«þfQÿ‚ÿ«þY!Qÿf"‚ÿ&«þY)Qÿ*‚ÿ-«þY +F:\XVT.403\WIN_X86\PTK\include\xvtpmap.hQÿg ‚ÿ«þXX f Qÿ‚ÿ«þX +F:\XVT.403\WIN_X86\PTK\include\xvtprint.hQÿ‚ÿ«þâÿQÿ‚ÿ«þóóQÿ ‚ÿ#«þ&QÿX'‚ÿ+«þóT.Qÿ/‚ÿ2«þó5Qÿ6‚ÿ9«þ<âÿQÿ=‚ÿ@«þóCâÿQÿD‚ÿG«þJâÿQÿK‚ÿN«þóQâÿQÿR‚ÿV«þ‰ +F:\XVT.403\WIN_X86\PTK\include\xvtrect.hQÿ‚ÿ«þäQÿ‚ÿ«þä Qÿ!‚ÿ$«þ'âÿQÿ(‚ÿ,«þä/âÿQÿ0‚ÿ5«þ8âÿQÿ9‚ÿ<«þ?Qÿ@‚ÿE«þHQÿI‚ÿP«þSQÿT‚ÿW«þZâÿQÿ[‚ÿ_«þbâÿQÿc‚ÿg«þäjâÿQÿk‚ÿo«þ +F:\XVT.403\WIN_X86\PTK\include\xvtres.hQÿ‚ÿ«þ°Qÿ‚ÿ«þ TQÿ‚ÿ$«þ' Qÿ(‚ÿ+«þ.Qÿm/‚ÿ2«þ5Qÿ0 6‚ÿ9«þ<TQÿ=‚ÿA«þD°QÿE‚ÿH«þKTQÿL‚ÿQ«þTTQÿU‚ÿZ«þT]Qÿ!^‚ÿb«þeTQÿf‚ÿk«þn Qÿo‚ÿr«þ +F:\XVT.403\WIN_X86\PTK\include\xvtsbar.hQÿ‚ÿ«þXQÿ‚ÿ«þX!Qÿ"‚ÿ(«þX+Qÿ,‚ÿ1«þX4Qÿ5‚ÿ:«þX=Qÿ>‚ÿD«þX +F:\XVT.403\WIN_X86\PTK\include\xvtscr.hQÿ‚ÿ«þQÿX‚ÿ«þQÿX ‚ÿ#«þ&Qÿ'‚ÿ*«þ-Qÿ!.‚ÿ1«þ4Qÿ5‚ÿ8«þ;Qÿ<‚ÿ?«þX +F:\XVT.403\WIN_X86\PTK\include\xvtslist.hâÿQÿ‚ÿ«þ!/TâÿQÿ‚ÿ"«þ!T%âÿQÿ&‚ÿ-«þâÿâÿ!T0Qÿ1‚ÿ4«þ!7Qÿ!8‚ÿ;«þ>Qÿ?‚ÿB«þ!EQÿF‚ÿI«þ!LTQÿM‚ÿR«þ!/UQÿV‚ÿY«þ/\TQÿ]‚ÿb«þ!eQÿ/f‚ÿi«þ!lQÿ/m‚ÿq«þ!/tâÿQÿu‚ÿx«þ!{âÿQÿ|‚ÿ€«þ!/ +F:\XVT.403\WIN_X86\PTK\include\xvtstr.hTQÿ‚ÿ«þT™âÿQÿ‚ÿ!«þâÿTT$Qÿ%‚ÿ)«þ +F:\XVT.403\WIN_X86\PTK\include\xvttimer.hQÿ‚ÿ«þXQÿ‚ÿ«þ +F:\XVT.403\WIN_X86\PTK\include\xvttx.hâÿQÿ‚ÿ«þ_cT"âÿQÿ#‚ÿ(«þ_cT+âÿQÿ,‚ÿ/«þ_8Qÿ_9‚ÿA«þXmCQÿmD‚ÿG«þ_IQÿJ‚ÿN«þ_mRQÿ_S‚ÿX«þ X[âÿQÿ\‚ÿ_«þ_bQÿ_c‚ÿf«þiQÿj‚ÿm«þ_pQÿq‚ÿt«þ_wQÿx‚ÿ{«þ_~Qÿ‚ÿ‚«þ_…TQÿ†‚ÿ«þ_c bQÿ‘‚ÿ”«þ_—Qÿ`˜‚ÿ«þ_cb Qÿb¡‚ÿ¤«þ_§Qÿb¨‚ÿ¬«þ_c¯Qÿc°‚ÿ³«þ_¶Qÿ·‚ÿ¾«þ_cbbaÁQÿ‚ÿÆ«þ_ÉQÿÊ‚ÿÓ«þ_cb`cb`ÖQÿ`ׂÿÚ«þ_ÝQÿÞ‚ÿâ«þ_åQÿXæ‚ÿé«þ_ìâÿQÿí‚ÿð«þóQÿô‚ÿø«þ_ûâÿQÿü‚ÿ«þX~âÿQÿ‚ÿ«þ_c Qÿ ‚ÿ«þ_Qÿ‚ÿ«þ_Qÿ‚ÿ«þ_!Qÿ"‚ÿ&«þ_)Qÿ*‚ÿ-«þ_0Qÿ1‚ÿ5«þ_8Qÿ9‚ÿ?«þ_ZZZBQÿC‚ÿG«þ_JQÿK‚ÿO«þ_RQÿS‚ÿW«þ_ZâÿQÿ[‚ÿ`«þ_cTcQÿd‚ÿh«þ_„kQÿl‚ÿu«þ_cb`cb`xQÿy‚ÿ}«þ_`€Qÿ‚ÿ„«þ_ +F:\XVT.403\WIN_X86\PTK\include\xvtvobj.hQÿ‚ÿ«þXQÿ‚ÿ«þX`xvt_vobj_get_attr Qÿ!‚ÿ%«þX(Qÿ)‚ÿ,«þX/Qÿ0‚ÿ4«þX7QÿT 8‚ÿ;«þX>QÿX?‚ÿB«þXETQÿF‚ÿK«þXTNQÿ”O‚ÿR«þXUQÿV‚ÿZ«þX]Qÿ^‚ÿa«þXdQÿe‚ÿj«þXmQÿn‚ÿr«þXuQÿv‚ÿz«þâÿX}Qÿ~‚ÿ‚«þXT …Qÿ†‚ÿŠ«þXTQÿŽ‚ÿ’«þâÿX•Qÿ–‚ÿœ«þXXä +F:\XVT.403\WIN_X86\PTK\include\xvtwin.hQÿX‚ÿ«þ”TX[‡ QÿX!‚ÿ(«þ X[‡+QÿX,‚ÿ3«þX[‡6Qÿ7‚ÿ;«þX~>QÿX?‚ÿC«þXFQÿ^G‚ÿJ«þXMQÿ[N‚ÿQ«þXTQÿ‡U‚ÿX«þX[Qÿ_\‚ÿ`«þXcQÿd‚ÿg«þjQÿk‚ÿo«þXärQÿs‚ÿx«þX{Qÿ|‚ÿ€«þâÿXƒQÿ„‚ÿˆ«þX^‹QÿŒ‚ÿ«þXT“Qÿ”‚ÿ˜«þX[›Qÿœ‚ÿ «þX‡£Qÿ¤‚ÿ§«þX©âÿQÿª‚ÿ­«þX + +f:\p.due\INCLUDE\strings.hC:\VC\INCLUDE\string.h +f:\p.due\INCLUDE\array.hf:\p.due\INCLUDE\object.hC:\VC\INCLUDE\iostream.h‰streamoffŠstreamposC:\VC\INCLUDE\ios.h2ú_HFAR_% ‹streambuf‹& ŒostreamŒ(ios + Žio_state Ž, +eofbit- +‘failbit. +’badbit 0 “open_mode “ +”in1 +•out7 9 œseek_dir œ ? +¥dec@ +¦octA +§hexLB°?basefield@ios@@2JFMB±?adjustfield@ios@@2JFNB²?floatfield@ios@@2JFP`´??0ios@@REC@PEVstreambuf@@@ZQ`¶??1ios@@VEC@XZS`¸?flags@ios@@RFCJXZT`º?flags@ios@@RECJJ@ZV`½?setf@ios@@RECJJJ@ZW`¿?setf@ios@@RECJJ@ZX`Á?unsetf@ios@@RECJJ@ZZ`Ã?width@ios@@RFCHXZ[`Å?width@ios@@RECHH@Z]ŒŒ`Ç?tie@ios@@RECPEVostream@@PEV2@@Z^Œ`É?tie@ios@@RFCPEVostream@@XZ``Ë?fill@ios@@RFCDXZa`Í?fill@ios@@RECDD@Zc`Ï?precision@ios@@RECHH@Zd`Ñ?precision@ios@@RFCHXZf`Ó?rdstate@ios@@RFCHXZg`Õ?clear@ios@@RECXH@Zj`×??Bios@@RFAPEXXZk`Ù??7ios@@RFCHXZm`Û?good@ios@@RFCHXZn`Ý?eof@ios@@RFCHXZo`ß?fail@ios@@RFCHXZp`á?bad@ios@@RFCHXZr‹`ã?rdbuf@ios@@RFCPEVstreambuf@@XZt2ú`å?iword@ios@@RFCAEJH@Zu2ú2ú`ç?pword@ios@@RFCAEPEXH@Zwbé?bitalloc@ios@@TAJXZxbë?xalloc@ios@@TAHXZybí?sync_with_stdio@ios@@TAXXZ| ï??0ios@@JEC@XZ} ñ??0ios@@JEC@AFV0@@Z~ ó??4ios@@JECAEV0@AFV0@@Z‹ õ?init@ios@@JECXPEVstreambuf@@@Z‚‹1úbp„0ústate…/úispecial†.úospecial‡-úisfx_specialˆ,úosfx_special‰+úx_delbuf‹Œ*úx_tieŒ)úx_flags(úx_precisionŽ'úx_width&úx_fill‘ú?stdioflush@ios@@1P7AXXZE“`ü?delbuf@ios@@RFCHXZ”`þ?delbuf@ios@@RECXH@Z—ÿ?x_maxbit@ios@@0JE˜2ú?x_statebuf@ios@@0PEJE™?x_curindex@ios@@0HE›?sunk_with_stdio@ios@@0HE +C:\VC\INCLUDE\ios.hj@×??Bios@@RFAPEXXZ ×0ú’‘ “@ü?delbuf@ios@@RFCHXZ ü+ú ”@þ?delbuf@ios@@RECXH@Z þ_i+ú œž@?dec@@ZAAEVios@@AEV1@@Z _strm¥°½ Ÿ@?hex@@ZAAEVios@@AEV1@@Z _strm§°½  @?oct@@ZAAEVios@@AEV1@@Z _strm¦°½ ¢@¸?flags@ios@@RFCJXZ ¸)ú £@º?flags@ios@@RECJJ@Z º#_l&_lO&)ú)ú#& ¥@½?setf@ios@@RECJJJ@Z ½'_l(_m+_lO+)ú)ú'()ú(+ ¦@¿?setf@ios@@RECJJ@Z ¿,_l/_lO/)ú)ú,/ §@Á?unsetf@ios@@RECJJ@Z Á0_l3_lO3)ú)ú03 ©@Ã?width@ios@@RFCHXZ Ã'ú ª@Å?width@ios@@RECHH@Z Å7_i:_iO:'ú'ú7: ¬ŒŒ@Ç?tie@ios@@RECPEVostream@@PEV2@@Z Ç<_osŒ?_osO?*ú*ú<? ­Œ@É?tie@ios@@RFCPEVostream@@XZ É*ú ®@Ë?fill@ios@@RFCDXZ Ë&ú ¯@Í?fill@ios@@RECDD@Z ÍF_cI_cOI&ú&úFI °@Ï?precision@ios@@RECHH@Z ÏJ_iM_iOM(ú(úJM ±@Ñ?precision@ios@@RFCHXZ Ñ(ú ³@Ó?rdstate@ios@@RFCHXZ Ó0ú ¶@Ù??7ios@@RFCHXZ Ù0ú’‘ ¸@á?bad@ios@@RFCHXZ á0ú’ ¹@Õ?clear@ios@@RECXH@Z Õ[_i0ú[ º@Ý?eof@ios@@RFCHXZ Ý0ú »@ß?fail@ios@@RFCHXZ ß0ú’‘ ¼@Û?good@ios@@RFCHXZ Û0ú ¾‹@ã?rdbuf@ios@@RFCPEVstreambuf@@XZ ã1ú À2ú@å?iword@ios@@RFCAEJH@Z åj_ij Á2ú2ú@ç?pword@ios@@RFCAEPEXH@Z çm_i2ú2úm +C:\VC\INCLUDE\streamb.h%Šstreampos‰streamoff'‹streambuf ‹*`r??1streambuf@@VEC@XZ,`t?in_avail@streambuf@@RFCHXZ-`v?out_waiting@streambuf@@RFCHXZ.`x?sgetc@streambuf@@RECHXZ/`z?snextc@streambuf@@RECHXZ0`|?sbumpc@streambuf@@RECHXZ1`~?stossc@streambuf@@RECXXZ3`€?sputbackc@streambuf@@RECHD@Z5`‚?sputc@streambuf@@RECHH@Z62ú`…?sputn@streambuf@@RECHPFDH@Z72ú`ˆ?sgetn@streambuf@@RECHPEDH@Z9`Š?sync@streambuf@@VECHXZ=‹2ú`?setbuf@streambuf@@VECPEV1@PEDH@Z>Љœ`‘?seekoff@streambuf@@VECJJW4seek_dir@ios@@H@Z?ŠŠ`”?seekpos@streambuf@@VECJJH@ZA2ú`—?xsputn@streambuf@@VECHPFDH@ZB2ú`š?xsgetn@streambuf@@VECHPEDH@ZDƒþ`œ?overflow@streambuf@@VECHH@ZE`ž?underflow@streambuf@@VECHXZG` ?pbackfail@streambuf@@VECHH@ZI`¢?dbp@streambuf@@RECXXZL ¤??0streambuf@@JEC@XZM‹ §??0streambuf@@JEC@PEDH@ZO2ú ©?base@streambuf@@JFCPEDXZP2ú «?ebuf@streambuf@@JFCPEDXZQ2ú ­?pbase@streambuf@@JFCPEDXZR2ú ¯?pptr@streambuf@@JFCPEDXZS2ú ±?epptr@streambuf@@JFCPEDXZT2ú ³?eback@streambuf@@JFCPEDXZU2ú µ?gptr@streambuf@@JFCPEDXZV2ú ·?egptr@streambuf@@JFCPEDXZW ¹?blen@streambuf@@JFCHXZX2ú2ú ¼?setp@streambuf@@JECXPED0@ZY2ú2ú2ú À?setg@streambuf@@JECXPED00@ZZ Â?pbump@streambuf@@JECXH@Z[ Ä?gbump@streambuf@@JECXH@Z]2ú2ú È?setb@streambuf@@JECXPED0H@Z^ Ê?unbuffered@streambuf@@JFCHXZ_ Ì?unbuffered@streambuf@@JECXH@Z` Î?allocate@streambuf@@JECHXZa +Ð?doallocate@streambuf@@NECHXZd$ú_fAlloce#ú_fUnbuff"úx_lastcg2ú!ú_baseh2ú ú_ebufi2úú_pbasej2úú_pptrk2úú_epptrl2úú_ebackm2úú_gptrn2úú_egptr +C:\VC\INCLUDE\streamb.h>”•`‘?seekoff@streambuf@@VECJJW4seek_dir@ios@@H@Z?”•`”?seekpos@streambuf@@VECJJH@ZD`œ?overflow@streambuf@@VECHH@Z] È?setb@streambuf@@JECXPED0H@Zo‹q@t?in_avail@streambuf@@RFCHXZ tµúúµ r@v?out_waiting@streambuf@@RFCHXZ vúúúú t@€?sputbackc@streambuf@@RECHD@Z €í_cúµúíí  v@‚?sputc@streambuf@@RECHH@Z ‚ð_iúúúððœ x2ú@…?sputn@streambuf@@RECHPFDH@Z …õ_strö_nõö— y2ú@ˆ?sgetn@streambuf@@RECHPEDH@Z ˆù_strú_nùúš {2ú©?base@streambuf@@JFCPEDXZ ©!ú |2ú«?ebuf@streambuf@@JFCPEDXZ « ú }¹?blen@streambuf@@JFCHXZ ¹ ú!ú ú!ú ~2ú­?pbase@streambuf@@JFCPEDXZ ­ú 2ú¯?pptr@streambuf@@JFCPEDXZ ¯ú €2ú±?epptr@streambuf@@JFCPEDXZ ±ú 2ú³?eback@streambuf@@JFCPEDXZ ³ú ‚2úµ?gptr@streambuf@@JFCPEDXZ µú ƒ2ú·?egptr@streambuf@@JFCPEDXZ ·ú „Ä?gbump@streambuf@@JECXH@Z Änúú …Â?pbump@streambuf@@JECXH@Z Ânúú †2ú2ú2úÀ?setg@streambuf@@JECXPED00@Z À eb!g"egú ú!ú""úƒþ ‡2ú2ú¼?setp@streambuf@@JECXPED0@Z ¼%p&epúú%ú& ˆÊ?unbuffered@streambuf@@JFCHXZ Ê#ú ‰Ì?unbuffered@streambuf@@JECXH@Z Ì,fUnbuf#ú, +C:\VC\INCLUDE\istream.hC:\VC\INCLUDE\ios.h +‰streamoffŠstreampos!/istream / $/`1??0istream@@REC@PEVstreambuf@@@Z%`3??1istream@@VEC@XZ'`5?ipfx@istream@@RECHH@Z(`7?isfx@istream@@RECXXZ*///`:??5istream@@RECAEV0@P7AAEV0@AEV0@@Z@Z+/`=??5istream@@RECAEV0@P7AAEVios@@AEV1@@Z@Z,/2ú`???5istream@@RECAEV0@PED@Z-/2ú`A??5istream@@RECAEV0@PEE@Z./2ú`C??5istream@@RECAEV0@PEC@Z//2ú`E??5istream@@RECAEV0@AED@Z0/2ú`G??5istream@@RECAEV0@AEE@Z1/2ú`I??5istream@@RECAEV0@AEC@Z2/2ú`K??5istream@@RECAEV0@AEF@Z3/2ú`M??5istream@@RECAEV0@AEG@Z4/2ú`O??5istream@@RECAEV0@AEH@Z5/2ú`Q??5istream@@RECAEV0@AEI@Z6/2ú`S??5istream@@RECAEV0@AEJ@Z7/2ú`U??5istream@@RECAEV0@AEK@Z8/2ú`W??5istream@@RECAEV0@AEM@Z9/2ú`Y??5istream@@RECAEV0@AEN@Z:/2ú`[??5istream@@RECAEV0@AEO@Z;/‹`]??5istream@@RECAEV0@PEVstreambuf@@@Z=`_?get@istream@@RECHXZ>/2ú`c?get@istream@@RECAEV1@PEDHD@Z?/2ú`g?get@istream@@RECAEV1@PEEHD@Z@/2ú`k?get@istream@@RECAEV1@PECHD@ZA/2ú`m?get@istream@@RECAEV1@AED@ZB/2ú`o?get@istream@@RECAEV1@AEE@ZC/2ú`q?get@istream@@RECAEV1@AEC@ZD/‹`t?get@istream@@RECAEV1@AEVstreambuf@@D@ZE/2ú`x?getline@istream@@RECAEV1@PEDHD@ZF/2ú`|?getline@istream@@RECAEV1@PEEHD@ZG/2ú`€?getline@istream@@RECAEV1@PECHD@ZI/ƒþ`ƒ?ignore@istream@@RECAEV1@HH@ZJ/2ú`†?read@istream@@RECAEV1@PEDH@ZK/2ú`‰?read@istream@@RECAEV1@PEEH@ZL/2ú`Œ?read@istream@@RECAEV1@PECH@ZN`Ž?gcount@istream@@RFCHXZO`?peek@istream@@RECHXZP/`’?putback@istream@@RECAEV1@D@ZQ`”?sync@istream@@RECHXZS/Š`–?seekg@istream@@RECAEV1@J@ZT/‰œ`™?seekg@istream@@RECAEV1@JW4seek_dir@ios@@@ZUŠ`›?tellg@istream@@RECJXZW`?eatwhite@istream@@RECXXZY Ÿ??0istream@@JEC@XZZ/ ¡??0istream@@JEC@AFV0@@Z[/‹ £??4istream@@JECAEV0@PEVstreambuf@@@Z\// ¥??4istream@@JECAEV0@AFV0@@Z] §?do_ipfx@istream@@JECHH@Z`/ ©??0istream@@BEC@AEVios@@@Za2ú «?getint@istream@@BECHPED@Zb2ú ®?getdouble@istream@@BECHPEDH@Zcú_fGlinedúx_gcount +C:\VC\INCLUDE\istream.h'`5?ipfx@istream@@RECHH@Z(@7?isfx@istream@@RECXXZ 7 >`c?get@istream@@RECAEV1@PEDHD@Z?`g?get@istream@@RECAEV1@PEEHD@Z@`k?get@istream@@RECAEV1@PECHD@ZD`t?get@istream@@RECAEV1@AEVstreambuf@@D@ZE`x?getline@istream@@RECAEV1@PEDHD@ZF`|?getline@istream@@RECAEV1@PEEHD@ZG`€?getline@istream@@RECAEV1@PECHD@ZI`ƒ?ignore@istream@@RECAEV1@HH@ZN@Ž?gcount@istream@@RFCHXZ Žú \¥??4istream@@JECAEV0@AFV0@@Z ¥Ø_isØã1£ e/g///@:??5istream@@RECAEV0@P7AAEV0@AEV0@@Z@Z :Ü_fÜ h/@=??5istream@@RECAEV0@P7AAEVios@@AEV1@@Z@Z =à_fà j/2ú@A??5istream@@RECAEV0@PEE@Z Aã_s2úã? k/2ú@C??5istream@@RECAEV0@PEC@Z Cç_s2úç? m/2ú@G??5istream@@RECAEV0@AEE@Z Gë_c2úëE n/2ú@I??5istream@@RECAEV0@AEC@Z Iï_c2úïE p/2ú@g?get@istream@@RECAEV1@PEEHD@Z góbôlimõdelim2úóôõc q/2ú@k?get@istream@@RECAEV1@PECHD@Z kùbúlimûdelim2úùúûc s/2ú@o?get@istream@@RECAEV1@AEE@Z oÿ_c2úÿm t/2ú@q?get@istream@@RECAEV1@AEC@Z q_c2úm v/2ú@x?getline@istream@@RECAEV1@PEDHD@Z x_b_lim _delimú c w/2ú@|?getline@istream@@RECAEV1@PEEHD@Z | _b_lim_delimú2ú c x/2ú@€?getline@istream@@RECAEV1@PECHD@Z €_b_lim_delimú2úc z/@ƒ?ignore@istream@@RECAEV1@HH@Z ƒ_ndelimú2úc |/2ú@‰?read@istream@@RECAEV1@PEEH@Z ‰_ptr_n2ú† }/2ú@Œ?read@istream@@RECAEV1@PECH@Z Œ#_ptr$_n2ú#$† (istream_withassign ( /`*??0istream_withassign@@REC@XZ‚(`,??0istream_withassign@@REC@PEVstreambuf@@@Zƒ`.??1istream_withassign@@VEC@XZ„//`0??4istream_withassign@@RECAEVistream@@AFV1@@Z…/‹`2??4istream_withassign@@RECAEVistream@@PEVstreambuf@@@Z +C:\VC\INCLUDE\istream.h„@0??4istream_withassign@@RECAEVistream@@AFV1@@Z 0C_isC¥ …@2??4istream_withassign@@RECAEVistream@@PEVstreambuf@@@Z 2F_isbF1£ †(‰(Œ//@K?ws@@ZAAEVistream@@AEV1@@Z KJ_insJJ Ž@?dec@@ZAAEVios@@AEV1@@Z@?hex@@ZAAEVios@@AEV1@@Z@?oct@@ZAAEVios@@AEV1@@Z +C:\VC\INCLUDE\ostream.hC:\VC\INCLUDE\ios.h +‰streamoffŠstreampos Œostream Œ #Œ`Q??0ostream@@REC@PEVstreambuf@@@Z$`S??1ostream@@VEC@XZ&Œ`U?flush@ostream@@RECAEV1@XZ'`W?opfx@ostream@@RECHXZ(`Y?osfx@ostream@@RECXXZ*ŒŒŒ`\??6ostream@@RECAEV0@P7AAEV0@AEV0@@Z@Z+Œ`_??6ostream@@RECAEV0@P7AAEVios@@AEV1@@Z@Z,Œ2ú`a??6ostream@@RECAEV0@PFD@Z-Œ2ú`c??6ostream@@RECAEV0@PFE@Z.Œ2ú`e??6ostream@@RECAEV0@PFC@Z/Œ`g??6ostream@@RECAEV0@D@Z0Œ`i??6ostream@@RECAEV0@E@Z1Œ`k??6ostream@@RECAEV0@C@Z2Œ`m??6ostream@@RECAEV0@F@Z3Œ`o??6ostream@@RECAEV0@G@Z4Œ`q??6ostream@@RECAEV0@H@Z5Œ`s??6ostream@@RECAEV0@I@Z6Œ`u??6ostream@@RECAEV0@J@Z7Œ`w??6ostream@@RECAEV0@K@Z8Œ`y??6ostream@@RECAEV0@M@Z9Œ`{??6ostream@@RECAEV0@N@Z:Œ`}??6ostream@@RECAEV0@O@Z;Œ2ú`??6ostream@@RECAEV0@PFX@Z<Œ‹`??6ostream@@RECAEV0@PEVstreambuf@@@Z=Œ`ƒ?put@ostream@@RECAEV1@D@Z>Œ`…?put@ostream@@RECAEV1@E@Z?Œ`‡?put@ostream@@RECAEV1@C@Z@Œ2ú`Š?write@ostream@@RECAEV1@PFDH@ZAŒ2ú`?write@ostream@@RECAEV1@PFEH@ZBŒ2ú`?write@ostream@@RECAEV1@PFCH@ZCŒŠ`’?seekp@ostream@@RECAEV1@J@ZDŒ‰œ`•?seekp@ostream@@RECAEV1@JW4seek_dir@ios@@@ZEŠ`—?tellp@ostream@@RECJXZH ™??0ostream@@JEC@XZIŒ ›??0ostream@@JEC@AFV0@@ZJŒ‹ ??4ostream@@JECAEV0@PEVstreambuf@@@ZKŒŒ Ÿ??4ostream@@JECAEV0@AFV0@@ZL ¡?do_opfx@ostream@@JECHH@ZM £?do_osfx@ostream@@JECXXZPŒ ¥??0ostream@@BEC@AEVios@@@ZQŒ2ú2ú ¨?writepad@ostream@@BECAEV1@PFD0@ZRúx_floatused +C:\VC\INCLUDE\ostream.hKŸ??4ostream@@JECAEV0@AFV0@@Z Ÿµ_osµãQ SŒUŒŒŒ@\??6ostream@@RECAEV0@P7AAEV0@AEV0@@Z@Z \¹f¹ VŒ@_??6ostream@@RECAEV0@P7AAEVios@@AEV1@@Z@Z _½f½ XŒ@g??6ostream@@RECAEV0@D@Z gÀcÀi YŒ@k??6ostream@@RECAEV0@C@Z kÄcÄi [Œ2ú@c??6ostream@@RECAEV0@PFE@Z cÈs2úÈa \Œ2ú@e??6ostream@@RECAEV0@PFC@Z eÌs2úÌa ^Œ@y??6ostream@@RECAEV0@M@Z yÐfúÐ{ `Œ@ƒ?put@ostream@@RECAEV1@D@Z ƒÔcÔ… aŒ@‡?put@ostream@@RECAEV1@C@Z ‡ØcØ… cŒ2ú@?write@ostream@@RECAEV1@PFEH@Z ÜsÝn2úÜÝŠ dŒ2ú@?write@ostream@@RECAEV1@PFCH@Z ásân2úá⊠gæostream_withassign æ Œi`è??0ostream_withassign@@REC@XZjæ`ê??0ostream_withassign@@REC@PEVstreambuf@@@Zk`ì??1ostream_withassign@@VEC@XZlŒŒ`î??4ostream_withassign@@RECAEVostream@@AFV1@@ZmŒ‹`ð??4ostream_withassign@@RECAEVostream@@PEVstreambuf@@@Z +C:\VC\INCLUDE\ostream.hl@î??4ostream_withassign@@RECAEVostream@@AFV1@@Z î_osãQ m@ð??4ostream_withassign@@RECAEVostream@@PEVstreambuf@@@Z ð_sbQ næqæræsævŒŒ@ ?flush@@ZAAEVostream@@AEV1@@Z  +_outs +U wŒŒ@?endl@@ZAAEVostream@@AEV1@@Z _outs  xŒŒ@?ends@@ZAAEVostream@@AEV1@@Z _outs z@?dec@@ZAAEVios@@AEV1@@Z{@?hex@@ZAAEVios@@AEV1@@Z|@?oct@@ZAAEVios@@AEV1@@Z + iostream  / Œ"`??0iostream@@REC@PEVstreambuf@@@Z#`??1iostream@@VEC@XZ& ??0iostream@@JEC@XZ' ??0iostream@@JEC@AFV0@@Z(‹  ??4iostream@@JECAEV0@PEVstreambuf@@@Z) "??4iostream@@JECAEV0@AEV0@@Z+ $??0iostream@@BEC@AEVios@@@Z, &??0iostream@@BEC@AEVistream@@@Z- (??0iostream@@BEC@AEVostream@@@Z 0‹ ??4iostream@@JECAEV0@PEVstreambuf@@@Z 6_sb61£6Q 2"??4iostream@@JECAEV0@AEV0@@Z "9_strm9ã  4<Iostream_init <6`>??0Iostream_init@@REC@XZ7<`A??0Iostream_init@@REC@AEVios@@H@Z8`C??1Iostream_init@@REC@XZ +C:\VC\INCLUDE\iostream.h7`A??0Iostream_init@@REC@AEVios@@H@Z9< +f:\p.due\INCLUDE\classes.h úCLASS_APPLICATION&ûùCLASS_MEMO_FIELD'úùCLASS_ZOOM_FIELD) +f:\p.due\INCLUDE\stdtypes.h +÷ùpureöùHIDDENôùNOERRTUINT8UUINT16$VUINT32.XINT168TZbool<U[word@VDT]byteIU^KEYKóùUNDEFINEDV +f:\p.due\INCLUDE\checks.h`lwarning_box `rfatal_box `tyesno_boxñùCHECK:ïùCHECKDU +{TObject {"`}??1TObject@@VEC@XZ$`?class_name@TObject@@VFCPFDXZ&[`?class_id@TObject@@VFCIXZ(Z`ƒ?ok@TObject@@VFCEXZ*{`…?dup@TObject@@VFCPEV1@XZ,Œ`‡?print_on@TObject@@VFCXAEVostream@@@Z.//`‰?read_from@TObject@@VECXAEVistream@@@Z1[2`‹?hash@TObject@@VFCIXZ +f:\p.due\INCLUDE\object.h"@}??1TObject@@VEC@XZ } /@‰?read_from@TObject@@VECXAEVistream@@@Z ‰ 2@‹?hash@TObject@@VFCIXZ ‹ 3{?¤TError_Object ¤A {E`¦?class_name@TError_Object@@VFCPFDXZG[`¨?class_id@TError_Object@@VFCIXZIZ`ª?ok@TError_Object@@VFCEXZ W¼TSortable ¼Y {a¼÷ù`¾?compare@TSortable@@VFCHAFV1@@Zc`À?class_name@TSortable@@VFCPFDXZe[`Â?class_id@TSortable@@VFCIXZ rŒsŒt{w@Ö??6@ZAAEVostream@@AEV0@AFVTObject@@@Z ÖÔoutÕobjxÕÔ‡yÔ ‚/ƒ/„{ˆ@Ú??5@ZAAEVistream@@AEV0@AEVTObject@@@Z ÚØinÙobj‰Ù؉ŠñùþÿÿÿÙƒr‹Ø –Z—¼˜¼@ã??8@ZAEAFVTSortable@@0@Z ãáaâbžåresá⾟ååóù ªZ«¼¬¼°@è??O@ZAEAFVTSortable@@0@Z èæaçb±êresæç¾²êêóù ¼Z½¼¾¼Â@í??M@ZAEAFVTSortable@@0@Z íëaìbÃïresëì¾Äïïóù ÎZϼмÕ@ò??P@ZAEAFVTSortable@@0@Z òðañbÖôresðñ¾×ôôóù áZâ¼ã¼ç@÷??N@ZAEAFVTSortable@@0@Z ÷õaöbèùresõö¾éùùóù ôZõ¼ö¼ú@ü??9@ZAEAFVTSortable@@0@Z üúaûbûþresúû¾üþþóù ¤ +{{COMPARE_FUNCTIONZ{CONDITION_FUNCTION{OPERATION_FUNCTION#TContainer $ {+íù_last_condition1{÷ù` ?first_item@TContainer@@VECPEVTObject@@XZ3{÷ù` ?last_item@TContainer@@VECPEVTObject@@XZ5{÷ù`?succ_item@TContainer@@VECPEVTObject@@XZ7{÷ù`?pred_item@TContainer@@VECPEVTObject@@XZ9÷ù`?objects@TContainer@@VECJXZ<`?for_each@TContainer@@VECXP7AXAFVTObject@@@Z@Z?sþ`?for_each_that@TContainer@@VECXP7AXAFVTObject@@@ZP7AE0@Z@ZB{sþ`?first_that@TContainer@@VECPEVTObject@@P7AEAFV2@@Z@ZD{sþ`?last_that@TContainer@@VECPEVTObject@@P7AEAFV2@@Z@ZF{`?succ_that@TContainer@@VECPEVTObject@@XZH{`?pred_that@TContainer@@VECPEVTObject@@XZJsþ` ?count@TContainer@@VECJP7AEAFVTObject@@@Z@ZL{M`"??ETContainer@@RECPEVTObject@@XZO{P`$??FTContainer@@RECPEVTObject@@XZ +f:\p.due\INCLUDE\array.h?`?for_each_that@TContainer@@VECXP7AXAFVTObject@@@ZP7AE0@Z@ZB`?first_that@TContainer@@VECPEVTObject@@P7AEAFV2@@Z@ZD`?last_that@TContainer@@VECPEVTObject@@P7AEAFV2@@Z@ZJ` ?count@TContainer@@VECJP7AEAFVTObject@@@Z@ZM@"??ETContainer@@RECPEVTObject@@XZ " P@$??FTContainer@@RECPEVTObject@@XZ $ RYFTArray F^ a{ìù_datacëù_sizeeêù_itemsgéù_nextjèù_scanindexp H?resize@TArray@@JECXH@Zu`J??0TArray@@REC@H@Zw`L??0TArray@@REC@XZyF`N??0TArray@@REC@AFV0@@Z|`P??1TArray@@VEC@XZ~`R?class_name@TArray@@VFCPFDXZ€[`T?class_id@TArray@@VFCIXZ‚Œ`V?print_on@TArray@@VFCXAEVostream@@@Z„Z`X?ok@TArray@@VFCEXZˆ`Z?size@TArray@@RFCHXZ‹`\?objects@TArray@@VECJXZ`^?items@TArray@@VFCHXZ“{``?first_item@TArray@@VECPEVTObject@@XZ•{`b?last_item@TArray@@VECPEVTObject@@XZ—{`d?succ_item@TArray@@VECPEVTObject@@XZ™{`f?pred_item@TArray@@VECPEVTObject@@XZœ`h?first@TArray@@RFCHXZž`j?last@TArray@@RFCHXZ `l?succ@TArray@@RFCHH@Z¢`n?pred@TArray@@RFCHH@Z¥{`p??ATArray@@RFCAEVTObject@@H@Z§{`r?objptr@TArray@@RFCPEVTObject@@H@Z©FF`t??4TArray@@RECAEV0@AFV0@@Z¬ZZàÿ`w?destroy@TArray@@VECEHE@Z®{`z?add@TArray@@VECHPEVTObject@@H@Z°{`}?insert@TArray@@VECHPEVTObject@@H@Z³{`€?add@TArray@@RECHAFVTObject@@H@Zµ{`ƒ?insert@TArray@@RECHAFVTObject@@H@Z·{Zàÿ`†?remove@TArray@@RECPEVTObject@@HE@Z¹`‰?swap@TArray@@RECXHH@Z»`‹?pack@TArray@@RECXXZ½sþ`?sort@TArray@@RECXP7AHPEPFVTObject@@0@Z@Z +f:\p.due\INCLUDE\array.hˆ@Z?size@TArray@@RFCHXZ Zëù ‹@\?objects@TArray@@VECJXZ \êù @^?items@TArray@@VFCHXZ ^êù ¬`w?destroy@TArray@@VECEHE@Z®`z?add@TArray@@VECHPEVTObject@@H@Z°`}?insert@TArray@@VECHPEVTObject@@H@Z³`€?add@TArray@@RECHAFVTObject@@H@Zµ`ƒ?insert@TArray@@RECHAFVTObject@@H@Z·`†?remove@TArray@@RECPEVTObject@@HE@Z½`?sort@TArray@@RECXP7AHPEPFVTObject@@0@Z@Z¾FÀ{Á@r?objptr@TArray@@RFCPEVTObject@@H@Z r¯index¯ëù¯ìù¯sþ Å{Æ@p??ATArray@@RFCAEVTObject@@H@Z p²indexÇ{µo²rɵsþʲZr ̵ Ö¸TBit_array ¸Û {Ý[çù_sizeß]æù_bitäZ +º?ok@TBit_array@@NFCEXZæŒ +¼?print_on@TBit_array@@NFCXAEVostream@@@Zé[ ¾?resize@TBit_array@@JECXI@Zë¸ À?copy@TBit_array@@JECXAFV1@@Zí[î Â?index@TBit_array@@JFCIJ@Zð]ñ Ä?mask@TBit_array@@JFCEJ@Zö`Æ??0TBit_array@@REC@J@Zø¸`È??0TBit_array@@REC@AFV0@@Zú`Ê??1TBit_array@@VEC@XZý¸¸`Ì??4TBit_array@@RECAEV0@AFV0@@ZÿZ`Î??ATBit_array@@RFCEJ@Z¸¸`Ð??_5TBit_array@@RECAEV0@AFV0@@Z`Ò?items@TBit_array@@RFCJXZ`Ô?first_one@TBit_array@@RFCJXZ`Ö?last_one@TBit_array@@RFCJXZ +`Ø?ones@TBit_array@@RFCJXZ`Ú?set@TBit_array@@RECXJ@Z`Ü?reset@TBit_array@@RECXJ@Z`Þ?not@TBit_array@@RECXJ@ZZ`á?set@TBit_array@@RECXJE@Z`ã?set@TBit_array@@RECXXZ`å?reset@TBit_array@@RECXXZ`ç?set@TBit_array@@RECXPFD@Z +f:\p.due\INCLUDE\array.hîÂ?index@TBit_array@@JFCIJ@Z Âón[ó ñÄ?mask@TBit_array@@JFCEJ@Z Äönö ö`Æ??0TBit_array@@REC@J@Z@Ò?items@TBit_array@@RFCJXZ Òçù @á?set@TBit_array@@RECXJE@Z áýnþonþýÚýÜ ¸ +f:\p.due\INCLUDE\regexp.hZ`?match@@ZAEPFD0@Z +TString  {äù_strãù_size! ?make_room@TString@@JECHH@Z# ?set@TString@@JECAEV1@PFD@Z'  ??0TString@@JEC@PEDH@Z,Z`?resize@TString@@VECXHE@Z/`??0TString@@REC@XZ1`??0TString@@REC@H@Z3`??0TString@@REC@PFD@Z5`??0TString@@REC@AFV0@@Z7`??1TString@@VEC@XZ:`?class_name@TString@@VFCPFDXZ<[`?class_id@TString@@VFCIXZ>Z?sþ`?ok@TString@@VFCEXZA{` ?dup@TString@@VFCPEVTObject@@XZCŒ`"?print_on@TString@@VFCXAEVostream@@@ZE/`$?read_from@TString@@VECXAEVistream@@@ZG[`&?hash@TString@@VFCIXZL`(??BTString@@RFAPFDXZPïùþÿÿÿR`*??ATString@@RECAEDH@ZVïùþÿÿÿX`,??ATString@@RFCDH@Z\`.?size@TString@@RFCHXZ_`0?len@TString@@RFCHXZaZb`2?empty@TString@@RFCEXZdZe`4?not_empty@TString@@RFCEXZgZ`6?blank@TString@@RFCEXZj`9?find@TString@@RFCHDH@Zl`<?find@TString@@RFCHPFDH@Zo`>?left@TString@@RFCAFV1@H@Zq`A?mid@TString@@RFCAFV1@HH@Zs`D?sub@TString@@RFCAFV1@HH@Zu`F?right@TString@@RFCAFV1@H@Zxy`H?sleft@TString@@RFC?EV1@H@Z{|`K?smid@TString@@RFC?EV1@HH@Z~`N?ssub@TString@@RFC?EV1@HH@Z‚`P?sright@TString@@RFC?EV1@H@Z…`S?fill@TString@@RECAEV1@DH@Z‡ˆ`U?spaces@TString@@RECAEV1@H@ZŠ`X?overwrite@TString@@RECAEV1@PFDH@ZŒ`[?insert@TString@@RECAEV1@PFDH@Z`]?strip@TString@@RECAEV1@PFD@Z‘`_?strip_spaces@TString@@RECAEV1@XZ“`a?strip_d_spaces@TString@@RECAEV1@XZ•`c?ltrim@TString@@RECAEV1@H@Z—`e?rtrim@TString@@RECAEV1@H@Zš`g?trim@TString@@RECAEV1@XZ`j?right_just@TString@@RECAEV1@HD@ZŸ`m?center_just@TString@@RECAEV1@HD@Z¡`p?left_just@TString@@RECAEV1@HD@Z¤`s?picture@TString@@RECAEV1@PFD0@Zª`u?format@TString@@VEAAEV1@PFDZZ®`w?cut@TString@@RECAEV1@H@Z±`y?upper@TString@@RECAEV1@XZ³`{?lower@TString@@RECAEV1@XZµ`~?add_plural@TString@@RECAEV1@JPFD@Z¸¹`€??4TString@@RECAFV0@AFV0@@Z»¼`‚??4TString@@RECAFV0@PFD@Z¿`„??6TString@@RECAEV0@PFD@ZÁ`†??6TString@@RECAEV0@D@ZÃ`ˆ??6TString@@RECAEV0@H@ZÅ`Š??6TString@@RECAEV0@J@ZÇ`Œ??6TString@@RECAEV0@N@ZÉ{`Ž??6TString@@RECAEV0@AFVTObject@@@ZË`??6TString@@RECAEV0@AFV0@@ZÎZÏ`’??8TString@@RFCEPFD@ZÑZÒ`”??8TString@@RFCEPED@ZÔZÕ`–??8TString@@RFCEAFV0@@Z×ZØ`˜??9TString@@RFCEPFD@ZÚZÛ`š??9TString@@RFCEPED@ZÝZÞ`œ??9TString@@RFCEAFV0@@ZàZá`ž??MTString@@RFCEPFD@ZãZä` ??OTString@@RFCEPFD@ZæZç`¢??PTString@@RFCEPFD@ZéZê`¤??NTString@@RFCEPFD@ZìZí`¦?match@TString@@RFCEPFD@ZïZàÿ`ª?compare@TString@@RFCHPFDHE@Z +f:\p.due\INCLUDE\strings.h& ??0TString@@JEC@PEDH@Z ´strµsize´µ ?@?ok@TString@@VFCEXZ äù L@(??BTString@@RFAPFDXZ (äù O@*??ATString@@RECAEDH@Z *¿iP¿¿ãù¿rQäù¿ U@,??ATString@@RFCDH@Z ,ÇiVÇÇãùÇrWäùÇ \@.?size@TString@@RFCHXZ .ãù _@0?len@TString@@RFCHXZ 0äùh b@2?empty@TString@@RFCEXZ 2äù e@4?not_empty@TString@@RFCEXZ 4äù j`9?find@TString@@RFCHDH@Zl`<?find@TString@@RFCHPFDH@Zq`A?mid@TString@@RFCAFV1@HH@Zs`D?sub@TString@@RFCAFV1@HH@Zy@H?sleft@TString@@RFC?EV1@H@Z Hàcountà> |@K?smid@TString@@RFC?EV1@HH@Z KæfromçcountæçA @N?ssub@TString@@RFC?EV1@HH@Z NífromîtoíîD ‚@P?sright@TString@@RFC?EV1@H@Z PôcountôF …`S?fill@TString@@RECAEV1@DH@Zˆ@U?spaces@TString@@RECAEV1@H@Z UünüS Š`X?overwrite@TString@@RECAEV1@PFDH@ZŒ`[?insert@TString@@RECAEV1@PFDH@Z•`c?ltrim@TString@@RECAEV1@H@Z—`e?rtrim@TString@@RECAEV1@H@Z`j?right_just@TString@@RECAEV1@HD@ZŸ`m?center_just@TString@@RECAEV1@HD@Z¡`p?left_just@TString@@RECAEV1@HD@Z¹@€??4TString@@RECAFV0@AFV0@@Z € s äù ¼@‚??4TString@@RECAFV0@PFD@Z ‚s Ï@’??8TString@@RFCEPFD@Z ’säùQ Ò@”??8TString@@RFCEPED@Z ”säùQ Õ@–??8TString@@RFCEAFV0@@Z –säùäùQ Ø@˜??9TString@@RFCEPFD@Z ˜säùQ Û@š??9TString@@RFCEPED@Z šsäùQ Þ@œ??9TString@@RFCEAFV0@@Z œ säù äùQ á@ž??MTString@@RFCEPFD@Z ž#säù#Q ä@ ??OTString@@RFCEPFD@Z  &säù&Q ç@¢??PTString@@RFCEPFD@Z ¢)säù)Q ê@¤??NTString@@RFCEPFD@Z ¤,säù,Q í@¦?match@TString@@RFCEPFD@Z ¦/pat/äù ï`ª?compare@TString@@RFCHPFDHE@Zðø5TFixed_string 5ú ÿZ +8?resize@TFixed_string@@NECXHE@Z`;??0TFixed_string@@REC@PFDH@Z`=??1TFixed_string@@VEC@XZ `??format@TFixed_string@@VEAAEVTString@@PFDZZ`A??4TFixed_string@@RECAFVTString@@AFV1@@Z`C??4TFixed_string@@RECAFVTString@@PFD@Z`F?strncpy@TFixed_string@@RECXPFDH@Z +f:\p.due\INCLUDE\strings.h`;??0TFixed_string@@REC@PFDH@Z@A??4TFixed_string@@RECAFVTString@@AFV1@@Z AVsV @C??4TFixed_string@@RECAFVTString@@PFD@Z CZstrZ 5]TString16 ] 5#âù_str16)`_??0TString16@@REC@PFD@Z+],`a??0TString16@@REC@AFVTString@@@Z./`c??4TString16@@RECAFVTString@@AFV1@@Z12`e??4TString16@@RECAFVTString@@PFD@Z +f:\p.due\INCLUDE\strings.h(@_??0TString16@@REC@PFD@Z _wsâù);w +@a??0TString16@@REC@AFVTString@@@Z azsâù,;z /@c??4TString16@@RECAFVTString@@AFV1@@Z c}s} 2@e??4TString16@@RECAFVTString@@PFD@Z es 7]C„TString80 „D 5Eáù_str80H`†??0TString80@@REC@PFD@ZI„`ˆ??0TString80@@REC@AFVTString@@@ZJ`Š??4TString80@@RECAFVTString@@PFD@ZK`Œ??4TString80@@RECAFVTString@@AFV1@@Z +f:\p.due\INCLUDE\strings.hH@†??0TString80@@REC@PFD@Z †žsáù;ž I@ˆ??0TString80@@REC@AFVTString@@@Z ˆ¡sáù;¡ J@Š??4TString80@@RECAFVTString@@PFD@Z Фs¤ K@Œ??4TString80@@RECAFVTString@@AFV1@@Z Œ§s§ L„X«TString256 «Y 5Zàù_str256]`­??0TString256@@REC@PFD@Z^«`¯??0TString256@@REC@AFVTString@@@Z_`±??4TString256@@RECAFVTString@@PFD@Z``³??4TString256@@RECAFVTString@@AFV1@@Z +f:\p.due\INCLUDE\strings.h]@­??0TString256@@REC@PFD@Z ­Åsàù;Å ^@¯??0TString256@@REC@AFVTString@@@Z ¯Èsàù;È _@±??4TString256@@RECAFVTString@@PFD@Z ±ËsË `@³??4TString256@@RECAFVTString@@AFV1@@Z ³ÎsÎ a«hÒTFilename Òk „s`Ô??0TFilename@@REC@PFD@ZuÒv`Ö??0TFilename@@REC@AFVTString@@@ZxÒy`Ø??0TFilename@@REC@AFV0@@Z|}`Ú??4TFilename@@RECAFVTString@@PFD@Z€`Ü??4TFilename@@RECAFVTString@@AFV1@@ZƒZ`Þ?ok@TFilename@@VFCEXZ†`à?ext@TFilename@@RFCPFDXZˆ`â?ext@TFilename@@RECXPFD@Z‹Ò`ä?add@TFilename@@RECAEV1@PFD@ZŽ`æ?name@TFilename@@RFCPFDXZ`è?path@TFilename@@RFCPFDXZ’Òsþ`ê?temp@TFilename@@RECAFV1@PFD@Z”Ò`ì?tempdir@TFilename@@RECAFV1@XZ +f:\p.due\INCLUDE\strings.hr@Ô??0TFilename@@REC@PFD@Z Ôünüs†† u@Ö??0TFilename@@REC@AFVTString@@@Z Öÿnÿv†† x@Ø??0TFilename@@REC@AFV0@@Z Øny†† }@Ú??4TFilename@@RECAFVTString@@PFD@Z Ús €@Ü??4TFilename@@RECAFVTString@@AFV1@@Z Ü +s + ’`ê?temp@TFilename@@RECAFV1@PFD@Z•ÒžTToken_string   ¥ßù_separator§Þù_last¬{ +?dup@TToken_string@@NFCPEVTObject@@XZ®Z ?set_item@TToken_string@@JECEPFDH@Z³`??0TToken_string@@REC@PFDD@Zµ`??0TToken_string@@REC@HD@Z·`??0TToken_string@@REC@AFV0@@Zº`?separator@TToken_string@@RECXD@Z¾` ?restart@TToken_string@@RECXXZÀÁ`"??4TToken_string@@RECAFVTString@@PFD@ZÃÄ`$??4TToken_string@@RECAFVTString@@AFV1@@ZÇ`'?add@TToken_string@@RECXPFDH@ZÉ`*?add@TToken_string@@RECXDH@ZË`-?add@TToken_string@@RECXJH@ZÍ`0?add@TToken_string@@RECXHH@ZÏ`2?destroy@TToken_string@@RECXH@ZÑ`4?get@TToken_string@@RECPFDXZÓ`6?get@TToken_string@@RECPFDH@ZÕ`8?get_char@TToken_string@@RECDH@Z×`:?get_int@TToken_string@@RECHH@ZÙ`<?get_long@TToken_string@@RECJH@ZÛ`>?get_pos@TToken_string@@RECHPFD@ZÝ`@?items@TToken_string@@RFCHXZßZ`B?empty_items@TToken_string@@RFCEXZ +f:\p.due\INCLUDE\strings.h³`??0TToken_string@@REC@PFDD@Zµ`??0TToken_string@@REC@HD@Z¾@ ?restart@TToken_string@@RECXXZ Þù2 Á@"??4TToken_string@@RECAFVTString@@PFD@Z "YsY  Ä@$??4TToken_string@@RECAFVTString@@AFV1@@Z $\s\  Ç`'?add@TToken_string@@RECXPFDH@ZÉ`*?add@TToken_string@@RECXDH@ZË`-?add@TToken_string@@RECXJH@ZÍ`0?add@TToken_string@@RECXHH@ZÕ`8?get_char@TToken_string@@RECDH@Z×`:?get_int@TToken_string@@RECHH@ZÙ`<?get_long@TToken_string@@RECJH@ZàìjTParagraph_string jî òÝù_width÷ l?tokenize@TParagraph_string@@JECXXZü`o??0TParagraph_string@@REC@PFDH@Zþ`q??4TParagraph_string@@RECAFVTString@@PFD@Z`s??4TParagraph_string@@RECAFVTString@@AFV1@@Z`u?set_width@TParagraph_string@@RECXH@Z +f:\p.due\INCLUDE\strings.h@s??4TParagraph_string@@RECAFVTString@@AFV1@@Z s…s…q @u?set_width@TParagraph_string@@RECXH@Z u‰widthÝù‰ jŒTString_array Œ F`Ž?row@TString_array@@RECAEVTToken_string@@H@Z`?row@TString_array@@RFCAFVTToken_string@@H@Z`’?rowptr@TString_array@@RECPEVTToken_string@@H@Z!"`•?add@TString_array@@RECHPEVTToken_string@@H@Z$`˜?add@TString_array@@RECHAFVTToken_string@@H@Z&`›?add@TString_array@@RECHPFDH@Z(`ž?find@TString_array@@RFCHPFDH@Z*Záÿ` ?sort@TString_array@@RECXE@Z.`¢??0TString_array@@REC@H@Z1`¤??1TString_array@@VEC@XZ +f:\p.due\INCLUDE\strings.h@Ž?row@TString_array@@RECAEVTToken_string@@H@Z Ž´n´p @?row@TString_array@@RFCAFVTToken_string@@H@Z ¸n¸p @’?rowptr@TString_array@@RECPEVTToken_string@@H@Z ’¼n¼r "@•?add@TString_array@@RECHPEVTToken_string@@H@Z •ÀsÁnÀÁz $`˜?add@TString_array@@RECHAFVTToken_string@@H@Z&`›?add@TString_array@@RECHPFDH@Z(`ž?find@TString_array@@RFCHPFDH@Z*` ?sort@TString_array@@RECXE@Z-@¢??0TString_array@@REC@H@Z ¢ËsizeË.JJ 1@¤??1TString_array@@VEC@XZ ¤P 2Œ +ÙùCHK_ALLÑTApplication ÑÖù_bar Õù__argc"Ôù__argv$¸Óù_dongle_aut&¸Òù_user_aut)„Ñù_name+„Ðù_title.Ïù_savefirm0ZÎù_create_ok2[Íù_waiting5 Ó?terminate@TApplication@@BECXXZ7Z Õ?set_cursor@TApplication@@BECXE@Z9Z ×?config@TApplication@@BECEXZ; Ù?about@TApplication@@BFCXXZ@ Û?get_module_name@TApplication@@JFCPFDXZBQÿX~"Þ?task_eh@TApplication@@LAJJPEUs_event@@@ZEX~ +á?handler@TApplication@@NECJJPEUs_event@@@ZGZHàÿ +ã?extended_firm@TApplication@@NFCEXZJZKáÿ +å?use_files@TApplication@@NFCEXZNZ +ç?create@TApplication@@NECEXZPZ]Qáÿ +é?menu@TApplication@@NECEF@ZSZZàÿTáÿ +ì?build_firm_data@TApplication@@NECEJE@ZVZ +î?destroy@TApplication@@NECEXZY +ð?on_config_change@TApplication@@NECXXZ[ +ò?on_firm_change@TApplication@@NECXXZ^ ô?set_perms@TApplication@@JECXXZd`ö?setbar@TApplication@@RECXH@Zf`ú?run@TApplication@@RECXHQEPEDPFD@Zi[j ú`ü?class_id@TApplication@@VFCIXZlZm`þ?ok@TApplication@@VFCEXZo`?print@TApplication@@VECXXZqZ`?firm_change_enabled@TApplication@@VFCEXZt`?extra_modules@TApplication@@VFCPFDXZw`?stop_run@TApplication@@RECXXZz]`?check_menu_item@TApplication@@RECXF@Z|]` +?uncheck_menu_item@TApplication@@RECXF@Z~]Záÿ`?enable_menu_item@TApplication@@RECXFE@Z€]àÿ`?disable_menu_item@TApplication@@RECXF@Zƒ]`?dispatch_e_menu@TApplication@@RECXF@Z†‡`?name@TApplication@@RFCAFVTString@@XZŠ`?argv@TApplication@@RFCPEPFDXZŒ`?argv@TApplication@@RFCPFDH@Z`?argc@TApplication@@RFCHXZ“`?set_title@TApplication@@RECXPFD@Z•–`?title@TApplication@@RFCAFVTString@@XZšb ?check_parameters@TApplication@@TAXAEHQEPED@ZZÙù`#?has_module@TApplication@@RFCEHH@ZŸZ`%?set_firm@TApplication@@RECEJ@Z¡`'?get_firm@TApplication@@RFCJXZ£`)?get_firm_dir@TApplication@@RFCPFDXZ¦[§`+?wait_for@TApplication@@RECXI@Zª`-?wake_up@TApplication@@RECXXZ¬[­`/?waiting@TApplication@@RFCIXZ±áÿ`1?begin_wait@TApplication@@RECXXZ´àÿ`3?end_wait@TApplication@@RECXXZ·ZŒ]`6?add_menu@TApplication@@RECEAEVTString_array@@F@Z¹Z]`8?remove_menu@TApplication@@RECEF@Z¼`:??0TApplication@@REC@XZ¾`<??1TApplication@@VEC@XZ +f:\p.due\INCLUDE\applicat.hH +ã?extended_firm@TApplication@@NFCEXZ ã K +å?use_files@TApplication@@NFCEXZ å Q +é?menu@TApplication@@NECEF@Z é T +ì?build_firm_data@TApplication@@NECEJE@Z ì d@ö?setbar@TApplication@@RECXH@Z öWmenubarÖùW j@ü?class_id@TApplication@@VFCIXZ ü m@þ?ok@TApplication@@VFCEXZ þÎù t@?extra_modules@TApplication@@VFCPFDXZ  ~`?enable_menu_item@TApplication@@RECXFE@Z@?disable_menu_item@TApplication@@RECXF@Z fitemf ‡@?name@TApplication@@RFCAFVTString@@XZ Ñù Š@?argv@TApplication@@RFCPEPFDXZ Ôù Œ@?argv@TApplication@@RFCPFDH@Z oiÔùo @?argc@TApplication@@RFCHXZ Õù “@?set_title@TApplication@@RECXPFD@Z utÐùu† –@?title@TApplication@@RFCAFVTString@@XZ Ðù `#?has_module@TApplication@@RFCEHH@ZŸ`%?set_firm@TApplication@@RECEJ@Z§@+?wait_for@TApplication@@RECXI@Z +~taskidÍù~ ª@-?wake_up@TApplication@@RECXXZ -Íù ­@/?waiting@TApplication@@RFCIXZ /Íù ±@1?begin_wait@TApplication@@RECXXZ 1Õ ´@3?end_wait@TApplication@@RECXXZ 3Õ ·`6?add_menu@TApplication@@RECEAEVTString_array@@F@Z¿ÑÁZÂÑ +f:\p.due\INCLUDE\relation.hf:\p.due\INCLUDE\isam.hf:\p.due\INCLUDE\sysfld.h +f:\p.due\INCLUDE\assoc.h“THash_object “ { ”TAssoc_array””Åù_key{Äù_obj !`–?key@THash_object@@RFCAFVTString@@XZ#{$`˜?obj@THash_object@@RFCAEVTObject@@XZ'“(`š??0THash_object@@REC@PFD@Z+`œ??1THash_object@@VEC@XZ +f:\p.due\INCLUDE\assoc.h!@–?key@THash_object@@RFCAFVTString@@XZ –Åù $@˜?obj@THash_object@@RFCAEVTObject@@XZ ˜Äù '@š??0THash_object@@REC@PFD@Z š°k°( +@œ??1THash_object@@VEC@XZ œÄùÄù }Åù ,“4”TAssoc_array ”9 ; +ºHASH_SIZE=[Ãù_cnt?[Âù_rowA[Áù_colCÀù_rowitemE¿ù_colitemGFº¾ù_dataM“ZZàÿ ¾?_lookup@TAssoc_array@@JECPEVTHash_object@@PFDAEEE@ZT`À?items@TAssoc_array@@RFCHXZW{`Â?first_item@TAssoc_array@@VECPEVTObject@@XZY{`Ä?last_item@TAssoc_array@@VECPEVTObject@@XZ[{`Æ?succ_item@TAssoc_array@@VECPEVTObject@@XZ]{`È?pred_item@TAssoc_array@@VECPEVTObject@@XZ``Ê?objects@TAssoc_array@@VECJXZc`Ì?destroy@TAssoc_array@@VECXXZfZ{sþZàÿ`Ð?add@TAssoc_array@@RECEPFDPEVTObject@@E@ZiZ{Zàÿ`Ô?add@TAssoc_array@@RECEPFDAFVTObject@@E@ZlZ`Ö?remove@TAssoc_array@@RECEPFD@Zo{`Ø?find@TAssoc_array@@RECAEVTObject@@PFD@Zr{`Ú?objptr@TAssoc_array@@RECPEVTObject@@PFD@ZuZ`Ü?is_key@TAssoc_array@@RECEPFD@Zx{y`Þ??ATAssoc_array@@RECAEVTObject@@PFD@Z€{`à?get@TAssoc_array@@RECPEVTObject@@XZ‚“`â?get_hashobj@TAssoc_array@@RECPEVTHash_object@@XZ…`ä?restart@TAssoc_array@@RECXXZˆŒZàÿ`ç?get_keys@TAssoc_array@@RECHAEVTString_array@@E@ZŒ`é??0TAssoc_array@@REC@XZ`ë??1TAssoc_array@@VEC@XZ +f:\p.due\INCLUDE\assoc.hM ¾?_lookup@TAssoc_array@@JECPEVTHash_object@@PFDAEEE@ZT@À?items@TAssoc_array@@RFCHXZ ÀÃù `@Ê?objects@TAssoc_array@@VECJXZ ÊÃù f`Ð?add@TAssoc_array@@RECEPFDPEVTObject@@E@Zi`Ô?add@TAssoc_array@@RECEPFDAFVTObject@@E@Zy@Þ??ATAssoc_array@@RECAEVTObject@@PFD@Z ÞkeyØ …@ä?restart@TAssoc_array@@RECXXZ äÂùÁù ˆ`ç?get_keys@TAssoc_array@@RECHAEVTString_array@@E@Z‹@é??0TAssoc_array@@REC@XZ éŒL @ë??1TAssoc_array@@VEC@XZ ëÌ ¾ù ” +f:\p.due\INCLUDE\real.hC:\VC\INCLUDE\iostream.h +f:\mathlib\gmsys1.h»ùSHORT +f:\mathlib\gfd.hidec »ù@¹ùattr»ù@¸ùid»ù@·ùsl@¶ùmsd  'IDEC (ldec ( »ù@µùlattr»ù@´ùlid@³ùlsl@²ùlmsd 5LDEC'5CDECC +ŒEreal E’ {–C±ù_decœ{ +G?dup@real@@NFCPEVTObject@@XZž I?literals@real@@JFCPEDXZ¡ K?points@real@@JFCPEDH@Z¨`M?trail@real@@RECXXZ¬bO?eng2ita@real@@TAPEDPED@Z¯bQ?ita2eng@real@@TAPEDPFD@Z±ZbS?is_real@real@@TAEPFD@Z³ZbU?is_natural@real@@TAEPFD@Z¶C·`W?ptr@real@@RFCPETDEC@@XZ¹óù`[?string@real@@RFCPEDHHD@Z¼óù`_?stringa@real@@RFCPEDHHD@Z¾`a?string@real@@RFCPEDPFD@ZÁ`c?precision@real@@RECHXZÃZ`e?is_zero@real@@RFCEXZÅ`g?sign@real@@RFCHXZÇ`i?integer@real@@RFCJXZÊE`k?round@real@@RECAEV1@H@ZÌE`m?trunc@real@@RECAEV1@H@ZÎE`o?ceil@real@@RECAEV1@H@ZÐE`q??4real@@RECAEV0@N@ZÒEE`s??4real@@RECAEV0@AFV0@@ZÔEE`u??Yreal@@RECAEV0@AFV0@@ZÖE`w??Yreal@@RECAEV0@N@ZØEE`y??Zreal@@RECAEV0@AFV0@@ZÚEE`{??Xreal@@RECAEV0@AFV0@@ZÜEE`}??_0real@@RECAEV0@AFV0@@ZÞZß`??7real@@RFCEXZáE`??Greal@@RFC?EV0@XZä`ƒ??0real@@REC@XZæE`…??0real@@REC@AFV0@@Zè`‡??0real@@REC@N@Zê`‰??0real@@REC@PFD@Zí`‹??1real@@VEC@XZ +f:\p.due\INCLUDE\real.h¡ K?points@real@@JFCPEDH@Z·6@W?ptr@real@@RFCPETDEC@@XZ WC±ù ¹`[?string@real@@RFCPEDHHD@Z¼`_?stringa@real@@RFCPEDHHD@ZÊ`k?round@real@@RECAEV1@H@ZÌ`m?trunc@real@@RECAEV1@H@ZÎ`o?ceil@real@@RECAEV1@H@Zß@??7real@@RFCEXZ e í@‹??1real@@VEC@XZ ‹} îEôŒŒEõ//E÷EEEøEEùEEúEEEûEEüEEýEEEþEEÿEEEEEEEEEZEEZE`Ø??M@ZAENAFVreal@@@ZZEEZE`Þ??O@ZAENAFVreal@@@ZZEE ZE`ä??N@ZAENAFVreal@@@Z +ZEE ZE`ê??P@ZAENAFVreal@@@Z ZEEZE`ð??8@ZAENAFVreal@@@ZZEEZE`ö??9@ZAENAFVreal@@@ZZE@ù??M@ZAEAFVreal@@N@Z ù÷aøbø÷‡Þ ZE@ý??O@ZAEAFVreal@@N@Z ýûaübüû‡‡Ø ZE@??N@ZAEAFVreal@@N@Z ÿabÿ‡ê ZE@??P@ZAEAFVreal@@N@Z ab‡‡ä ZE@ ??8@ZAEAFVreal@@N@Z ab‡‡ð ZE@??9@ZAEAFVreal@@N@Z  a b  ‡‡ö EEEEEEEEEEEEEEEEEEEE EE!EE"EE#EE$EE%EE&EE,E`2ZERO43TDistrib 37 {<E°ù_tot>E¯ù_prog@Z®ù_readyBF­ù_slicesD¬ù_currentF«ù_decsLE`5?add@TDistrib@@RECXVreal@@@ZNE`7?get@TDistrib@@REC?EVreal@@XZQ`9?set_dec@TDistrib@@RECXH@ZTEZàÿ`<?init@TDistrib@@RECXAFVreal@@E@ZWEX`>??4TDistrib@@RECXAFVreal@@@ZZE\ñùþÿÿÿ^`@?last_slice@TDistrib@@RFCAFVreal@@XZa3Eóùb`C??0TDistrib@@REC@AFVreal@@H@Ze`E??1TDistrib@@VEC@XZ +f:\p.due\INCLUDE\real.hQ@9?set_dec@TDistrib@@RECXH@Z 9Sdecs«ùS T`<?init@TDistrib@@RECXAFVreal@@E@ZX@>??4TDistrib@@RECXAFVreal@@@Z >XrX< [@@?last_slice@TDistrib@@RFCAFVreal@@XZ @\¬ùr]E­ù¬ù a@C??0TDistrib@@REC@AFVreal@@H@Z Ccrdroundcdb…‡‡JJ e@E??1TDistrib@@VEC@XZ E}°ù‹¯ù‹­ùP f3ojTGeneric_distrib jp {uEªù_totwE©ù_totslicesyZ¨ù_ready{F§ù_slices}¦ù_current¥ù_decs…E`l?add@TGeneric_distrib@@VECXVreal@@@Z‡E`n?get@TGeneric_distrib@@VEC?EVreal@@XZ‹`p?set_dec@TGeneric_distrib@@RECXH@ZŽEZàÿ`s?init@TGeneric_distrib@@RECXAFVreal@@E@Z‘E’`u??4TGeneric_distrib@@RECXAFVreal@@@Z”E–ñùþÿÿÿ˜`w?last_slice@TGeneric_distrib@@RFCAFVreal@@XZ›jEœ`z??0TGeneric_distrib@@REC@AFVreal@@H@ZŸ`|??1TGeneric_distrib@@VEC@XZ +f:\p.due\INCLUDE\real.h‹@p?set_dec@TGeneric_distrib@@RECXH@Z pŠdecs¥ùŠ Ž`s?init@TGeneric_distrib@@RECXAFVreal@@E@Z’@u??4TGeneric_distrib@@RECXAFVreal@@@Z urs •@w?last_slice@TGeneric_distrib@@RFCAFVreal@@XZ w–¦ùr—E§ù¦ù ›@z??0TGeneric_distrib@@REC@AFVreal@@H@Z z™ršround™šœ…‡‡JJ Ÿ@|??1TGeneric_distrib@@VEC@XZ |}ªù‹©ù‹§ùP  j§ TImporto  © ¼®¤ù_sezione°E£ù_valore¶¼ +¢?compare@TImporto@@NFCHAFVTSortable@@@Z¼`¤?sezione@TImporto@@RFCDXZ¾E¿`¦?valore@TImporto@@RFCAFVreal@@XZÁEÂ`¨?valore@TImporto@@RECAEVreal@@XZÅZÆ`ª?is_zero@TImporto@@RFCEXZÉ  Ê`¬??4TImporto@@RECAFV0@AFV0@@ZÍ `®??4TImporto@@RECAFV0@AEVTToken_string@@@ZÏ  `°??YTImporto@@RECAFV0@AFV0@@ZÑ  `²??ZTImporto@@RECAFV0@AFV0@@ZÓ `´?normalize@TImporto@@RECAFV1@D@ZÕ `¶?swap_section@TImporto@@RECAFV1@XZØ E`¹?set@TImporto@@RECAFV1@DAFVreal@@@ZÛ `¼?add_to@TImporto@@RFCAFV1@AEVTToken_string@@H@ZÞ ß`¿??0TImporto@@REC@DAFVreal@@@Zá â`Á??0TImporto@@REC@AFV0@@Z +f:\p.due\INCLUDE\real.h¼@¤?sezione@TImporto@@RFCDXZ ¤¤ù ¿@¦?valore@TImporto@@RFCAFVreal@@XZ ¦£ù Â@¨?valore@TImporto@@RECAEVreal@@XZ ¨£ù Æ@ª?is_zero@TImporto@@RFCEXZ ª£ùe Ê@¬??4TImporto@@RECAFV0@AFV0@@Z ¬ÛiÛ¤Û¦¹ Ó`´?normalize@TImporto@@RECAFV1@D@Zß2@¿??0TImporto@@REC@DAFVreal@@@Z ¿ßsàvƒß๠á@Á??0TImporto@@REC@AFV0@@Z Áãiã¤ùã£ùâ… ã  +f:\p.due\INCLUDE\date.h¡ùNULLDATE æTDate_order æ +çgma_date  îTDate_mgafmt î +ñfull! (öTDate ö- {0Ÿù_val6Zöö`ù??M@ZAEAFVTDate@@0@Zù8Zöö`ü??O@ZAEAFVTDate@@0@Zü:Zöö`ÿ??N@ZAEAFVTDate@@0@Zÿ<Zöö`??P@ZAEAFVTDate@@0@Z>Zöö`??8@ZAEAFVTDate@@0@Z@Zöö`??9@ZAEAFVTDate@@0@ZC  ?makedata@TDate@@JFCJHHH@ZHîîîæ`?string@TDate@@RFCPEDW4TDate_mgafmt@@D00W4TDate_order@@@ZJ`?date2julian@TDate@@RFCJXZL`?julian2date@TDate@@RFCJJ@ZO`?day@TDate@@RFCHXZQ`?month@TDate@@RFCHXZS`?year@TDate@@RFCHXZU`?wday@TDate@@RFCHXZW` ?addmonth@TDate@@RECXH@ZY`"?addyear@TDate@@RECXH@Z[Z`$?ok@TDate@@VFCEXZ]Zb&?isdate@TDate@@TAEPFD@Z`b)?last_day@TDate@@TAHHH@ZbZ`+?is_end_month@TDate@@RECEXZd`-?set_end_month@TDate@@RECXXZg`/?set_day@TDate@@RECXH@Zi`1?set_month@TDate@@RECXH@Zk`3?set_year@TDate@@RECXH@Zm`5?set_format@TDate@@RECXPFD@Zpöq`7??YTDate@@RECAEV0@J@Zsöt`9??ZTDate@@RECAEV0@J@Zvöw`;??ETDate@@RECAEV0@XZyöz`=??FTDate@@RECAEV0@XZ}Œ`??print_on@TDate@@VFCXAEVostream@@@Z/`A?read_from@TDate@@VECXAEVistream@@@Z‚`C??BTDate@@RFAPFDXZ„ö`E??4TDate@@RECAEV0@PFD@Z†ö‡`G??4TDate@@RECAEV0@J@Z‰ööŠ`I??4TDate@@RECAEV0@AFV0@@Zö`K??0TDate@@REC@AFV0@@Zö`M??0TDate@@REC@J@Z‘`O??0TDate@@REC@PFD@Z“`S??0TDate@@REC@HHH@Z +f:\p.due\INCLUDE\date.hC ?makedata@TDate@@JFCJHHH@Z adaybmonthcyearcba Hñññç`?string@TDate@@RFCPEDW4TDate_mgafmt@@D00W4TDate_order@@@ZW` ?addmonth@TDate@@RECXH@ZY`"?addyear@TDate@@RECXH@Zq@7??YTDate@@RECAEV0@J@Z 7mndayŸùm t@9??ZTDate@@RECAEV0@J@Z 9pndayŸùp w@;??ETDate@@RECAEV0@XZ ;Ÿù z@=??FTDate@@RECAEV0@XZ =Ÿù ‡@G??4TDate@@RECAEV0@J@Z GyvalŸùy Š@I??4TDate@@RECAEV0@AFV0@@Z I|dŸù|Ÿù `M??0TDate@@REC@J@Z”öœ€TFormatted_date €¡ ö¤žù_format©`‚?set_format@TFormatted_date@@RECXPFD@Z«`„?string@TFormatted_date@@RFCPFDXZ®€¯`†??4TFormatted_date@@RECAEV0@PFD@Z±€ö²`ˆ??4TFormatted_date@@RECAEV0@AFVTDate@@@Z´€€µ`Š??4TFormatted_date@@RECAEV0@AFV0@@Z¸`??0TFormatted_date@@REC@HHHPFD@Zº€`’??0TFormatted_date@@REC@AFVTDate@@PFD@Z¼€`”??0TFormatted_date@@REC@AFV0@@Z +f:\p.due\INCLUDE\date.h¯@†??4TFormatted_date@@RECAEV0@PFD@Z †¢s¢OE ²@ˆ??4TFormatted_date@@RECAEV0@AFVTDate@@@Z ˆ¥d¥I µ@Š??4TFormatted_date@@RECAEV0@AFV0@@Z Ѝd¨I¨žù‚ ¸`??0TFormatted_date@@REC@HHHPFD@Zº`’??0TFormatted_date@@REC@AFVTDate@@PFD@Z½€¿ööÀööÁööÂööÌZÍöÎöÏ@ù??M@ZAEAFVTDate@@0@Z ù½a¾b½Ÿù¾Ÿù ÙZÚöÛöÜ@ü??O@ZAEAFVTDate@@0@Z üÀaÁbÀŸùÁŸù æZçöèöé@ÿ??N@ZAEAFVTDate@@0@Z ÿÃaÄbßùÄŸù óZôöõöö@??P@ZAEAFVTDate@@0@Z ÆaÇbÆŸùÇŸù Zöö@??8@ZAEAFVTDate@@0@Z ÉaÊbÉŸùÊŸù Zöö@??9@ZAEAFVTDate@@0@Z ÌaÍbÌŸùÍŸù öööööööö]]öÜbotimeSßeotimeS +f:\p.due\INCLUDE\files.hf:\p.due\INCLUDE\extctype.hf:\p.due\INCLUDE\stdtypes.h +›ù__PACKED__šù__ALIGNED__™ùMaxFields˜ùMKFields—ùMaxKeys”ùMaxArray“ùBPageLen’ùPHLen‘ùAreaLen ùPDLen!ùFHRLen"ŽùMaxPD#ùNOFLDS/áPathSt1ãRecNoType3åFieldName4”ùæTKey5‘ù“ù’ùçAreaKey6“ùèDataArea 8›ù9›ù:›ù;›ù<›ù=›ù>›ù?›ù@›ùA›ùB›ùC›ùD›ùE›ùF›ùK^PãQáRSecDefV›ùWã›ùXã›ùYU›ùZã›ù[›ù\›ù]›ù^FileDesbå›ùc]›ùd]›ùe]›ùiU›ùj RecFieldDeso[šùp]šùq]˜ù›ùr]˜ù›ùs]˜ù›ùt.KeyDesyX›ùz ™ù›ù{]™ù›ù|X›ù}.—ù›ù~<RecDes‚ã›ùƒX›ù„Z›ùˆX›ù‰X›ùŠX›ù‹ã›ùŒã›ùX›ùŽJPDJŽù“ùùùKPathsArray“]›ù—X›ù˜X›ù™ã›ùšã›ù›ã›ùœX›ùYPHR¡ã›ù¢ã›ù£ã›ù¤ã›ù¥X›ù¦X›ù§X›ù¨gFHR¬g›ù­K›ù®uCA´Y›ùµç›ù¶›ù·u›ù¸è›ù½¾g¿XÀKÁæÂãÃXÄãËÌ<ÍãÎXÏXѬisdefԬ׮s_prm ®Ø@Šùrc_lenÝù@‰ùs_fld +f:\p.due\INCLUDE\rectypes.hÈTRecnotype ÉTFilelock É +Ì_manulock  ÍTReclock Í +Î_unlock +Ï_nolock +Ð_lock  ÓTDirtype Ó  +Ô_nordir! & ÖTDirop Ö' +×_nordirop( - ÙTFieldtypes Ù9 > æTIsamop æD +ì_isequalF +î_isgteqH M ñTIsamerr ñN +ò_iseofO +ó_isbofR +ö_isemptyfilea cÈTRecnotype +TFile  {"ƒù_file$‚ù_len&ù_base+É` ?open@TFile@@RECXPFDW4TFilelock@@@Z-Z` ?verify@TFile@@RECEPFD@Z/È`?create@TFile@@RECXPFDJ@Z1È`?chsize@TFile@@RECXPFDJ@Z3`?close@TFile@@RECXXZ5`?unlink@TFile@@RECXPFD@Z7ÈÍ`?read@TFile@@RECXPEDJW4TReclock@@@Z9ÈÍ`?write@TFile@@RECXPEDJW4TReclock@@@Z;`?status@TFile@@RFCHXZ>`!?base@TFile@@RECAEHXZA`#?len@TFile@@RECAEHXZCZDôù`%?ok@TFile@@VFCEXZFZGôù`'?error@TFile@@RFCEXZJ`*??0TFile@@REC@HH@ZL`,??1TFile@@VEC@XZ +f:\p.due\INCLUDE\files.h+Ì` ?open@TFile@@RECXPFDW4TFilelock@@@Z/`?create@TFile@@RECXPFDJ@Z7Ï`?read@TFile@@RECXPEDJW4TReclock@@@Z9Ï`?write@TFile@@RECXPEDJW4TReclock@@@Z>@!?base@TFile@@RECAEHXZ !ù A@#?len@TFile@@RECAEHXZ #‚ù D@%?ok@TFile@@VFCEXZ % G@'?error@TFile@@RFCEXZ ' J`*??0TFile@@REC@HH@ZMUTTDir TZ {]€ù_dir_ù_numaZ~ù_comfÍÓÖ`Y?get@TDir@@RECXHW4TReclock@@W4TDirtype@@W4TDirop@@@ZhÓÖ`]?put@TDir@@RECXHW4TDirtype@@W4TDirop@@@Zj`_?zero@TDir@@RECXXZm`a?set_name@TDir@@RECXPFD@Zoã`c?set_eox@TDir@@RECXJ@ZqU`e?set_len@TDir@@RECXI@Zsãã`k?set@TDir@@RECXPFDJJ00@Zv`m?name@TDir@@RFCPFDXZx`o?filename@TDir@@RFCPFDXZz`q?des@TDir@@RFCPFDXZ|bs?tab_des@TDir@@TAPFDPFD@Z~`u?expr@TDir@@RFCPFDXZ€È`w?eod@TDir@@RFCAEJXZ‚È`y?eox@TDir@@RFCAEJXZ„È`{?flags@TDir@@RFCAEJXZ†[`}?len@TDir@@RECAEIXZˆÓ`?status@TDir@@RFCHW4TDirtype@@@Z‹`?num@TDir@@RFCHXZÓ`ƒ?items@TDir@@RFCHW4TDirtype@@@Z`…?filedesc@TDir@@RFCPEUFileDes@@XZ“Z”`‡?is_com@TDir@@RFCEXZ—Z˜`‰?is_firm@TDir@@RFCEXZ›Zœ`‹?is_valid@TDir@@RECEXZŸZ`?is_active@TDir@@RFCEXZ¢`??0TDir@@REC@XZ¤`‘??1TDir@@VEC@XZ +f:\p.due\INCLUDE\files.hfÏÔ×`Y?get@TDir@@RECXHW4TReclock@@W4TDirtype@@W4TDirop@@@ZhÔ×`]?put@TDir@@RECXHW4TDirtype@@W4TDirop@@@ZˆÔ`?status@TDir@@RFCHW4TDirtype@@@Z‹@?num@TDir@@RFCHXZ ù Ô`ƒ?items@TDir@@RFCHW4TDirtype@@@Z@…?filedesc@TDir@@RFCPEUFileDes@@XZ …€ù ”@‡?is_com@TDir@@RFCEXZ ‡~ù ˜@‰?is_firm@TDir@@RFCEXZ ‰~ù œ@‹?is_valid@TDir@@RECEXZ ‹m} ¥T­·TTrec ·² ¼µ<}ù_rec·|ù_num¼¼ +¹?compare@TTrec@@NFCHAFVTSortable@@@ZÁÓ`¼?get@TTrec@@RECXHW4TDirtype@@@ZÃÓ`¿?put@TTrec@@RECXHW4TDirtype@@@ZÅ`Á?zero@TTrec@@RECXXZÇ`Ã?rehash@TTrec@@RECXXZÉÓ`Å?status@TTrec@@RFCHW4TDirtype@@@ZÌ`Ç?num@TTrec@@RFCHXZÎ`É?field@TTrec@@RFCHPFD@ZÐ<Ñ`Ë?rec@TTrec@@RFCPEURecDes@@XZÓ··`Í??4TTrec@@RECAEV0@AFV0@@ZÖ`Ï?fields@TTrec@@RFCHXZÙ`Ñ?keys@TTrec@@RFCHXZÜ`Ó?set_fields@TTrec@@RECXH@Zß`Õ?set_keys@TTrec@@RECXH@Zá`×?fielddef@TTrec@@RFCPFDH@Zã`Ù?keydef@TTrec@@RFCPFDH@Zæ`Û?len@TTrec@@RFCHXZê`Þ?update_keydef@TTrec@@RECXHPFD@Zì`á?update_fielddef@TTrec@@RECXHPFD@ZîŒ`ã?print_on@TTrec@@VFCXAEVostream@@@Zð/`å?read_from@TTrec@@VECXAEVistream@@@Zô`ç??0TTrec@@REC@XZö`é??1TTrec@@VEC@XZ +f:\p.due\INCLUDE\files.hÁÔ`¼?get@TTrec@@RECXHW4TDirtype@@@ZÃÔ`¿?put@TTrec@@RECXHW4TDirtype@@@ZÉÔ`Å?status@TTrec@@RFCHW4TDirtype@@@ZÌ@Ç?num@TTrec@@RFCHXZ Ç|ù Ñ/@Ë?rec@TTrec@@RFCPEURecDes@@XZ Ë}ù Ö@Ï?fields@TTrec@@RFCHXZ Ï}ù Ù@Ñ?keys@TTrec@@RFCHXZ Ñ}ù Ü@Ó?set_fields@TTrec@@RECXH@Z Ónfields}ù ß@Õ?set_keys@TTrec@@RECXH@Z Õ nkeys}ù  æ@Û?len@TTrec@@RFCHXZ Û}ùÏ}ùÏ ÷· +f:\p.due\INCLUDE\lffiles.h uùLF_ANAG sùLF_ANAGFIS rùLF_NDITTEnùLF_COMUNI(WùLF_BASEB>ùLF_QUACC=ùLF_QUADD<ùLF_QUAD1E;ùLF_QUAEF:ùLF_QUAE1K5ùLF_QUAGL4ùLF_QUAG1bùLF_QUAGDg +- TTextfile4MAX_KEYS6 TLocalisamfile7 TRectype>TMemo_info @ {D¸ù_dirtyFŒù_dataHÈù_recnoJù_ownerP< ?rec_des@TMemo_info@@JFCPEURecDes@@XZUÈV`?recno@TMemo_info@@RFCJXZY`?num@TMemo_info@@RFCHXZ[È\`?recno@TMemo_info@@RECXJ@Z^`?put@TMemo_info@@RECXPFD0@Z`` ?get@TMemo_info@@RECAEVTString@@PFD@Zb¬`"?write_data@TMemo_info@@RECXPEUisdef@@@ZdZ`$?memo_loaded@TMemo_info@@RECEPFD@Zf`&?reset@TMemo_info@@RECXXZi`)??0TMemo_info@@REC@PFVTRectype@@J@Zk`,??0TMemo_info@@REC@PFVTRectype@@AEV0@@Zm`.??1TMemo_info@@VEC@XZ +f:\p.due\INCLUDE\isam.hV@?recno@TMemo_info@@RFCJXZ ù \@?recno@TMemo_info@@RECXJ@Z ?rù? nvTRectype z ¼| BTExtrectypeBB~ CTRecfieldCC€ DTBaseisamfileDD‚„ ETIsamtempfileEE‰ù_rec‹ù_logicnumù_lengthZù_isempty‘ù_tab“Cù_cod•ù_memoinfoš¼ +G?compare@TRectype@@NFCHAFVTSortable@@@Zœ I?last_key_field@TRectype@@JFCPFDH@Z  K?start@TRectype@@JFCPFDH@Z¢Z£ M?setempty@TRectype@@JECXE@Z¨{`O?dup@TRectype@@VFCPEVTObject@@XZ«D[`R?read@TRectype@@VECHAEVTBaseisamfile@@I@Z­D`T?next@TRectype@@VECHAEVTBaseisamfile@@@Z¯D`V?write@TRectype@@VFCHAEVTBaseisamfile@@@Z±D`X?rewrite@TRectype@@VFCHAEVTBaseisamfile@@@Z³D`Z?remove@TRectype@@VFCHAEVTBaseisamfile@@@Zµ`]?renum_key@TRectype@@VECXPFD0@Zº`_?items@TRectype@@RFCHXZ½àÿ`a?setdirty@TRectype@@RECXXZ¿`c?settab@TRectype@@RECXPFD@ZÂ`e?string@TRectype@@RFCPEDXZÆ`g?discard@TRectype@@RECXXZÉ`i?recall@TRectype@@RECXXZËZÌ`k?isdeleted@TRectype@@RFCEXZÏ`m?len@TRectype@@RFCHXZÑÙ`o?type@TRectype@@RFC?EW4TFieldtypes@@PFD@ZÓ`q?length@TRectype@@RFCHPFD@ZÕ`s?ndec@TRectype@@RFCHPFD@Z×Z`u?exist@TRectype@@RFCEPFD@ZÙ`w?fieldname@TRectype@@RFCPFDH@ZÜ`y?build_key@TRectype@@RFCPFDH@ZÞ`}?compare_key@TRectype@@RFCHAFV1@HH@ZàZá`?same_key@TRectype@@RFCEAFV1@HH@Zä`ƒ?get_str@TRectype@@RFCPFDPFD@Zç`…?get@TRectype@@RFCAFVTString@@PFD@Zé`‡?get_int@TRectype@@RFCHPFD@Zë`‰?get_long@TRectype@@RFCJPFD@Zí[`‹?get_word@TRectype@@RFCIPFD@Zï`?get_char@TRectype@@RFCDPFD@ZñZ`?get_bool@TRectype@@RFCEPFD@ZóE`‘?get_real@TRectype@@RFC?EVreal@@PFD@ZõZ`”?get_memo@TRectype@@RFCEPFDAEVTTextfile@@@Zøö`–?get_date@TRectype@@RFC?EVTDate@@PFD@Zü`™?put@TRectype@@RECXPFDH@Zþ`œ?put@TRectype@@RECXPFDJ@Z[`Ÿ?put@TRectype@@RECXPFDI@Zö`¢?put@TRectype@@RECXPFDAFVTDate@@@Z`¥?put@TRectype@@RECXPFDD@ZZ`¨?put@TRectype@@RECXPFDE@ZE`«?put@TRectype@@RECXPFDAFVreal@@@Z +`®?put@TRectype@@RECXPFDAEVTTextfile@@@Z`±?put@TRectype@@RECXPFD0@Z`³?zero@TRectype@@RECXPFD@Z`µ?zero@TRectype@@RECXXZ`·?zero@TRectype@@RECXD@Z`¹?blank@TRectype@@RECXPFD@Z`»??4TRectype@@RECAEV0@AFV0@@Z`½??4TRectype@@RECAEV0@PFD@Z!D`¿??4TRectype@@RECAEV0@AFVTBaseisamfile@@@Z$<`Á?rec_des@TRectype@@VFCPEURecDes@@XZ'`Ã?num@TRectype@@RFCHXZ)Z*`Å?empty@TRectype@@RFCEXZ,Z-`Ç?valid@TRectype@@RFCEXZ/`É?key@TRectype@@RFCPFDH@Z1Z2sþ`Ë?ok@TRectype@@VFCEXZ6`Í??0TRectype@@REC@H@Z8`Ï??0TRectype@@REC@PFVTBaseisamfile@@@Z:`Ñ??0TRectype@@REC@AFV0@@Z=`Ó??1TRectype@@VEC@XZ@È`Õ?init_memo_info@TRectype@@RECXJ@ZBCñùþÿÿÿ`×?memo_info@TRectype@@RFCAEVTMemo_info@@XZE¬`Ù?write_memo_info@TRectype@@RFCXPEUisdef@@@ZGZHsþ`Û?has_memo@TRectype@@RFCEXZ +f:\p.due\INCLUDE\isam.h£M?setempty@TRectype@@JECXE@Z Måvalùå «ì`R?read@TRectype@@VECHAEVTBaseisamfile@@I@Z½@a?setdirty@TRectype@@RECXXZ aM Â@e?string@TRectype@@RFCPEDXZ eù Æ@g?discard@TRectype@@RECXXZ gù É@i?recall@TRectype@@RECXXZ iù Ì@k?isdeleted@TRectype@@RFCEXZ kù Ï@m?len@TRectype@@RFCHXZ mù Ü`y?build_key@TRectype@@RFCPFDH@ZÞ`}?compare_key@TRectype@@RFCHAFV1@HH@Zá@?same_key@TRectype@@RFCEAFV1@HH@Z reckeyskip_last} @¹?blank@TRectype@@RECXPFD@Z ¹fieldname‰O± '@Ã?num@TRectype@@RFCHXZ Ãù *@Å?empty@TRectype@@RFCEXZ Åù -@Ç?valid@TRectype@@RFCEXZ Çù /`É?key@TRectype@@RFCPFDH@Z2@Ë?ok@TRectype@@VFCEXZ Ëù C@×?memo_info@TRectype@@RFCAEVTMemo_info@@XZ ×ùrù H@Û?has_memo@TRectype@@RFCEXZ Ûù KRDTBaseisamfile DV {XZ\ TIsamfile  ^EE`CCj¬ù_isamfilel ù_logicnumn ù_lasterrpZ +ù_delrecrZ ù_delopenrectù_currentvù_hfxù_hfhdzZù_historicfile|Èù_lasthf~Èù_recno€Zù_has_memo†ö #?gethr@TBaseisamfile@@BECHAEVTRectype@@AEVTDate@@@Zˆö &?addhr@TBaseisamfile@@BECHAFVTRectype@@AEVTDate@@@ZŠö )?rewhr@TBaseisamfile@@BECHAFVTRectype@@AEVTDate@@@ZŒö ,?delhr@TBaseisamfile@@BECHAFVTRectype@@AEVTDate@@@Z‘¬’ .?ptrfilehnd@TBaseisamfile@@JFCPEPEUisdef@@XZ•sþ 0?clearfilehnd@TBaseisamfile@@JECXXZ˜ 2?recover@TBaseisamfile@@JECXXZš 4?_open@TBaseisamfile@@JECHI@Zœ 6?_close@TBaseisamfile@@JECHXZŸ 8?filename@TBaseisamfile@@JFCPFDXZ¤`:?setkey@TBaseisamfile@@RECXH@Z¦`<?getkey@TBaseisamfile@@RFCHXZ©`>?setstatus@TBaseisamfile@@RECXH@Z«[`@?first@TBaseisamfile@@VECHI@Z­[`B?last@TBaseisamfile@@VECHI@Z¯[`D?next@TBaseisamfile@@VECHI@Z±ö`F?next@TBaseisamfile@@VECHAEVTDate@@@Z³[`H?prev@TBaseisamfile@@VECHI@Zµö`J?prev@TBaseisamfile@@VECHAEVTDate@@@Z·[öö`M?reread@TBaseisamfile@@VECHIAEVTDate@@@Z¹[öö`Q?reread@TBaseisamfile@@VECHAEVTRectype@@IAEVTDate@@@Z»È[`T?skip@TBaseisamfile@@VECHJI@Z½[[öö`X?read@TBaseisamfile@@VECHIIAEVTDate@@@Z¿[[öö`]?read@TBaseisamfile@@VECHAEVTRectype@@IIAEVTDate@@@ZÁÈ[``?readat@TBaseisamfile@@VECHJI@ZÃÈ[`d?readat@TBaseisamfile@@VECHAEVTRectype@@JI@ZÅöö`f?write@TBaseisamfile@@VECHAEVTDate@@@ZÇöö`i?write@TBaseisamfile@@VECHAFVTRectype@@AEVTDate@@@ZÉöö`k?rewrite@TBaseisamfile@@VECHAEVTDate@@@ZËöö`n?rewrite@TBaseisamfile@@VECHAFVTRectype@@AEVTDate@@@ZÍÈ`p?rewriteat@TBaseisamfile@@VECHJ@ZÏÈ`s?rewriteat@TBaseisamfile@@VECHAFVTRectype@@J@ZÑöö`u?remove@TBaseisamfile@@VECHAEVTDate@@@ZÓöö`x?remove@TBaseisamfile@@VECHAFVTRectype@@AEVTDate@@@ZÕ`z?name@TBaseisamfile@@VFCPFDXZØÈÙ`|?recno@TBaseisamfile@@RFCJXZÛ`~?lock@TBaseisamfile@@RECHXZÝ`€?unlock@TBaseisamfile@@RECHXZß`‚?indexon@TBaseisamfile@@RECXXZá`„?indexoff@TBaseisamfile@@RECXXZä`†?status@TBaseisamfile@@RFCHXZæ`ˆ?is_valid@TBaseisamfile@@RECHXZèé`Š?curr@TBaseisamfile@@RFCAEVTRectype@@XZëZì`Œ?eof@TBaseisamfile@@RFCEXZîZï`Ž?bof@TBaseisamfile@@RFCEXZòZóôù`?good@TBaseisamfile@@RFCEXZöZ÷ôù`’?bad@TBaseisamfile@@RFCEXZùZ`”?empty@TBaseisamfile@@RECEXZü`–?num@TBaseisamfile@@RFCHXZþ`˜?description@TBaseisamfile@@RFCPFDXZÈ`š?eod@TBaseisamfile@@RFCJXZ¬`œ?filehnd@TBaseisamfile@@RFCPEUisdef@@XZ`ž?items@TBaseisamfile@@RFCJXZ ` ?get_int@TBaseisamfile@@RFCHPFD@Z`¢?get_long@TBaseisamfile@@RFCJPFD@Z[`¤?get_word@TBaseisamfile@@RFCIPFD@Z`¦?get_char@TBaseisamfile@@RFCDPFD@ZZ`¨?get_bool@TBaseisamfile@@RFCEPFD@ZE`ª?get_real@TBaseisamfile@@RFC?EVreal@@PFD@ZZ`­?get_memo@TBaseisamfile@@RECEPFDAEVTTextfile@@@Z!ö"`¯?get_date@TBaseisamfile@@RFC?EVTDate@@PFD@Z&'`±?get@TBaseisamfile@@RFCAFVTString@@PFD@Z+`´?put@TBaseisamfile@@RECXPFDH@Z.`·?put@TBaseisamfile@@RECXPFDJ@Z0[1`º?put@TBaseisamfile@@RECXPFDI@Z3ö4`½?put@TBaseisamfile@@RECXPFDAFVTDate@@@Z7`À?put@TBaseisamfile@@RECXPFDD@Z9Z:`Ã?put@TBaseisamfile@@RECXPFDE@Z<E=`Æ?put@TBaseisamfile@@RECXPFDAFVreal@@@Z?@`É?put@TBaseisamfile@@RECXPFDAEVTTextfile@@@ZI`Ì?put@TBaseisamfile@@RECXPFD0@ZM`Î?zero@TBaseisamfile@@RECXPFD@ZP`Ð?zero@TBaseisamfile@@RECXXZS`Ò?zero@TBaseisamfile@@RECXD@ZV`Ô?blank@TBaseisamfile@@RECXPFD@ZXY`Ö??4TBaseisamfile@@RECAEVTRectype@@AFV1@@Z\Z`Ø?has_memo@TBaseisamfile@@RECEXZ_DZ`Û??0TBaseisamfile@@REC@HE@Za`Ý??1TBaseisamfile@@VEC@XZ +f:\p.due\INCLUDE\isam.h’Ÿ.?ptrfilehnd@TBaseisamfile@@JFCPEPEUisdef@@XZ .¬ù •0?clearfilehnd@TBaseisamfile@@JECXXZ 0ù šÌ 4?_open@TBaseisamfile@@JECHI@Z©@>?setstatus@TBaseisamfile@@RECXH@Z >óstatus ùó «Ï`@?first@TBaseisamfile@@VECHI@Z­Ï`B?last@TBaseisamfile@@VECHI@Z¯Ï`D?next@TBaseisamfile@@VECHI@Z³Ï`H?prev@TBaseisamfile@@VECHI@Z·ÏÜ`M?reread@TBaseisamfile@@VECHIAEVTDate@@@Z¹ÏÜ`Q?reread@TBaseisamfile@@VECHAEVTRectype@@IAEVTDate@@@Z»Ï`T?skip@TBaseisamfile@@VECHJI@Z½ìÏÜ`X?read@TBaseisamfile@@VECHIIAEVTDate@@@Z¿ìÏÜ`]?read@TBaseisamfile@@VECHAEVTRectype@@IIAEVTDate@@@ZÁÏ``?readat@TBaseisamfile@@VECHJI@ZÃÏ`d?readat@TBaseisamfile@@VECHAEVTRectype@@JI@ZÅÜ`f?write@TBaseisamfile@@VECHAEVTDate@@@ZÇÜ`i?write@TBaseisamfile@@VECHAFVTRectype@@AEVTDate@@@ZÉÜ`k?rewrite@TBaseisamfile@@VECHAEVTDate@@@ZËÜ`n?rewrite@TBaseisamfile@@VECHAFVTRectype@@AEVTDate@@@ZÑÜ`u?remove@TBaseisamfile@@VECHAEVTDate@@@ZÓÜ`x?remove@TBaseisamfile@@VECHAFVTRectype@@AEVTDate@@@ZÙ@|?recno@TBaseisamfile@@RFCJXZ |ù ä@†?status@TBaseisamfile@@RFCHXZ † ù é@Š?curr@TBaseisamfile@@RFCAEVTRectype@@XZ Šù ì@Œ?eof@TBaseisamfile@@RFCEXZ Œ†òMM‡‡‡‡†öMM‡‡‡‡ ï@Ž?bof@TBaseisamfile@@RFCEXZ ކóMM‡‡‡‡†öMM‡‡‡‡ ó@?good@TBaseisamfile@@RFCEXZ † ÷@’?bad@TBaseisamfile@@RFCEXZ ’† ü@–?num@TBaseisamfile@@RFCHXZ – ù Ÿ@œ?filehnd@TBaseisamfile@@RFCPEUisdef@@XZ œ¬ù  @ ?get_int@TBaseisamfile@@RFCHPFD@Z  <fieldnameŠ<‡ @¢?get_long@TBaseisamfile@@RFCJPFD@Z ¢?fieldnameŠ?‰ @¤?get_word@TBaseisamfile@@RFCIPFD@Z ¤BfieldnameŠB‹ @¦?get_char@TBaseisamfile@@RFCDPFD@Z ¦EfieldnameŠE @¨?get_bool@TBaseisamfile@@RFCEPFD@Z ¨HfieldnameŠH @ª?get_real@TBaseisamfile@@RFC?EVreal@@PFD@Z ªKfieldnameŠK‘… @­?get_memo@TBaseisamfile@@RECEPFDAEVTTextfile@@@Z ­PfieldnameQtxtŠPQ” "@¯?get_date@TBaseisamfile@@RFC?EVTDate@@PFD@Z ¯TfieldnameŠT–K '@±?get@TBaseisamfile@@RFCAFVTString@@PFD@Z ±YfieldnameŠY… +@´?put@TBaseisamfile@@RECXPFDH@Z ´\fieldname]valŠ\]‡M™ .@·?put@TBaseisamfile@@RECXPFDJ@Z ·`fieldnameavalŠ`a‡Mœ 1@º?put@TBaseisamfile@@RECXPFDI@Z ºdfieldnameevalŠde‡MŸ 4@½?put@TBaseisamfile@@RECXPFDAFVTDate@@@Z ½hfieldnameivalŠhi¢ 7@À?put@TBaseisamfile@@RECXPFDD@Z ÀlfieldnamemvalŠlm‡M¥ :@Ã?put@TBaseisamfile@@RECXPFDE@Z ÃpfieldnameqvalŠpq‡M¨ =@Æ?put@TBaseisamfile@@RECXPFDAFVreal@@@Z ÆtfieldnameuvalŠtu« @@É?put@TBaseisamfile@@RECXPFDAEVTTextfile@@@Z ÉxfieldnameytxtŠxy® I@Ì?put@TBaseisamfile@@RECXPFD0@Z Ì|fieldname}valŠ|}‰O± M@Î?zero@TBaseisamfile@@RECXPFD@Z ΀fieldnameŠ€³ P@Ð?zero@TBaseisamfile@@RECXXZ Њµ S@Ò?zero@TBaseisamfile@@RECXD@Z Ò†cІ· V@Ô?blank@TBaseisamfile@@RECXPFD@Z Ô‰fieldnameЉ¹ Y@Ö??4TBaseisamfile@@RECAEVTRectype@@AFV1@@Z ÖŒrecŠŒ _`Û??0TBaseisamfile@@REC@HE@ZbDi TIsamfile l DqZàÿ`’?flags@TIsamfile@@RECHE@Zt`”?open@TIsamfile@@RECHI@Zw`–?close@TIsamfile@@RECHXZy `™??0TIsamfile@@REC@HE@Z{`›??1TIsamfile@@VEC@XZ +f:\p.due\INCLUDE\isam.hq`’?flags@TIsamfile@@RECHE@ZtÌ@”?open@TIsamfile@@RECHI@Z ”ªmodeª4 w@–?close@TIsamfile@@RECHXZ –6 | „°TSystemisamfile °ˆ ŒFù_fldsŽFù_exps‘Z ²?getlcf@TSystemisamfile@@BECEJ@Z“ZZ µ?exec_convapp@TSystemisamfile@@BECEJE@Z– ·?makelc@TSystemisamfile@@BECXAEVTRectype@@@Z›È`¹?build@TSystemisamfile@@RECHJ@ZÈ`»?extend@TSystemisamfile@@RECHJ@ZŸÈ`½?size@TSystemisamfile@@RECJJ@Z¡·Záÿ`À?update@TSystemisamfile@@RECHAEVTTrec@@E@Z¤ZáÿZáÿ`Ã?pack@TSystemisamfile@@RECHEE@Z¦Záÿ`Å?packfile@TSystemisamfile@@RECHE@Z¨ZáÿZáÿ`È?packindex@TSystemisamfile@@RECHEE@Z«ZáÿZàÿ`Ï?load@TSystemisamfile@@RECHPFDDDDEE@Z®ZáÿZàÿ`×?dump@TSystemisamfile@@RECHPFDHDDDEE@Z±°Z²`Ú??0TSystemisamfile@@REC@HE@Zµ`Ü??1TSystemisamfile@@VEC@XZ +f:\p.due\INCLUDE\isam.h¡`À?update@TSystemisamfile@@RECHAEVTTrec@@E@Z¤`Ã?pack@TSystemisamfile@@RECHEE@Z¦`Å?packfile@TSystemisamfile@@RECHE@Z¨`È?packindex@TSystemisamfile@@RECHEE@Z«`Ï?load@TSystemisamfile@@RECHPFDDDDEE@Z®`×?dump@TSystemisamfile@@RECHPFDHDDDEE@Z±@Ú??0TSystemisamfile@@REC@HE@Z Úþlogicnumÿlinkrecinstþÿ²™LL µ@Ü??1TSystemisamfile@@VEC@XZ Ü›ùPùP ¶°½TLocalisamfile À DÄZÿø_was_openÆþø_oldkeyË  ?open@TLocalisamfile@@JECHI@ZÍ  ?close@TLocalisamfile@@JECHXZÒÈ` + ??YTLocalisamfile@@VECHJ@ZÔÈ` ??ZTLocalisamfile@@VECHJ@ZÖ` ??ETLocalisamfile@@VECHXZØ` ??FTLocalisamfile@@VECHXZÚZÛàÿ` ?tab@TLocalisamfile@@VFCEXZßZ` ??0TLocalisamfile@@REC@HE@Zá` ??1TLocalisamfile@@VEC@XZ +f:\p.due\INCLUDE\isam.hËÌ  ?open@TLocalisamfile@@JECHI@ZÛ@ ?tab@TLocalisamfile@@VFCEXZ  ß` ??0TLocalisamfile@@REC@HE@ZâêETIsamtempfile Eí òZýø_autodel÷ZÈÈ / ?open@TIsamtempfile@@JECHPFDEJJ@Zù 1 ?close@TIsamtempfile@@JECHXZþZáÿÿ`3 ?set_autodel@TIsamtempfile@@RECXE@ZE`7 ??0TIsamtempfile@@REC@HPFDE@Z`9 ??1TIsamtempfile@@VEC@XZ +f:\p.due\INCLUDE\isam.hÿ@3 ?set_autodel@TIsamtempfile@@RECXE@Z 3 G valýøG E J TRec_array J  FJ `M ??0TRec_array@@REC@HAEVTBaseisamfile@@@Z CTRecfield C {üø_name!ûø_rec#úø_p%]ùø_len']øø_dec)]÷ø_type, _ ?set@TRecfield@@BECXHH@Z1`a ??4TRecfield@@RECHH@Z3`c ??4TRecfield@@RECJJ@Z5öö`e ??4TRecfield@@RECAFVTDate@@AFV1@@Z7`g ??4TRecfield@@RECPFDPFD@Z:EE`i ??4TRecfield@@RECAFVreal@@AFV1@@Z>`k ??BTRecfield@@RFCHXZ@`m ??BTRecfield@@RFCJXZB`o ??BTRecfield@@RFAPFDXZDö`q ??BTRecfield@@RFC?EVTDate@@XZGE`s ??BTRecfield@@RFC?FVreal@@XZKÈ`u ?setptr@TRecfield@@RECXJ@ZMÈ`w ?ptr@TRecfield@@RFCJXZQ`y ?pos@TRecfield@@RFCPFDXZT`{ ?len@TRecfield@@RFCHXZV`} ?dec@TRecfield@@RFCHXZWÙY` ?type@TRecfield@@RFC?EW4TFieldtypes@@XZ[\` ?record@TRecfield@@RFCAEVTRectype@@XZ_C`† ??0TRecfield@@REC@AEVTRectype@@PFDHH@Z +f:\p.due\INCLUDE\isam.hQ@y ?pos@TRecfield@@RFCPFDXZ y úø T@{ ?len@TRecfield@@RFCHXZ { ùø V@} ?dec@TRecfield@@RFCHXZ } øø Y@ ?type@TRecfield@@RFC?EW4TFieldtypes@@XZ  Ù÷ø \@ ?record@TRecfield@@RFCAEVTRectype@@XZ ûø _`† ??0TRecfield@@REC@AEVTRectype@@PFDHH@Z`CstxZ +  ³ TSort³ ´ TRelation ´  { µ TRelationdefµ µ  ¶ TRelation_description¶ ¶  · TCursor· · öø_status Fõø_files"Fôø_reldefs$óø_errors) ¹ ?log2ind@TRelation@@JFCHH@Z+ » ?alias2ind@TRelation@@JFCHH@Z- ½ ?name2ind@TRelation@@JFCHPFD@Z0µ 1 ¿ ?reldef@TRelation@@JFCAEVTRelationdef@@H@Z34 Á ?file@TRelation@@JFCAEVTLocalisamfile@@H@Z7æÍöö Æ ?position_rels@TRelation@@JECHW4TIsamop@@W4TReclock@@AEVTDate@@H@Z<Z=`È ?ok@TRelation@@VFCEXZ?Œ`Ê ?print_on@TRelation@@VFCXAEVostream@@@ZD`Ì ?update@TRelation@@RECHXZF`Î ?zero@TRelation@@RECXXZHÍIôù`Ð ?next@TRelation@@VECHW4TReclock@@@ZKÍLôù`Ò ?prev@TRelation@@VECHW4TReclock@@@ZNöOôù`Ô ?next@TRelation@@VECHAEVTDate@@@ZQöRôù`Ö ?prev@TRelation@@VECHAEVTDate@@@ZTÍUôù`Ø ?first@TRelation@@VECHW4TReclock@@@ZWÍXôù`Ú ?last@TRelation@@VECHW4TReclock@@@ZZÈÍ[ôù`Ý ?skip@TRelation@@VECHJW4TReclock@@@Z]æÍöö^ôù`á ?read@TRelation@@VECHW4TIsamop@@W4TReclock@@AEVTDate@@@Za`ã ?lfile@TRelation@@RFCAEVTLocalisamfile@@H@Zc`å ?lfile@TRelation@@RFCAEVTLocalisamfile@@PFD@Zef`ç ??ATRelation@@RFCAEVTLocalisamfile@@H@ZiZáÿ`ê ?write_enable@TRelation@@RECXHE@ZkZáÿ`í ?write_enable@TRelation@@RECXPFDE@Znàÿ`ï ?write_disable@TRelation@@RECXH@Zqàÿ`ñ ?write_disable@TRelation@@RECXPFD@Zuv`ó ?curr@TRelation@@RFCAEVTRectype@@H@ZxZsþ`÷ ?next_match@TRelation@@RECEHPFDH@Z{ZZ`þ ?add@TRelation@@RECEPEVTLocalisamfile@@PFDHHHE@Z}ZZàÿ`!?add@TRelation@@RECEHPFDHHHE@ZZZàÿ` !?add@TRelation@@RECEPFD0HHHE@Z`!?replace@TRelation@@RECXPEVTLocalisamfile@@H@Z„Záÿöö`!?write@TRelation@@VECHEAEVTDate@@@Z†Záÿöö`!?rewrite@TRelation@@VECHEAEVTDate@@@Zˆöö`!?remove@TRelation@@VECHAEVTDate@@@ZŒZ`!?eof@TRelation@@RFCEH@ZZ‘`!?bof@TRelation@@RFCEH@Z”Z•`!?status@TRelation@@RFCEH@Z˜Z™`!?good@TRelation@@RFCEH@ZœZ`!!?bad@TRelation@@RFCEH@Z Z¡`#!?empty@TRelation@@RFCEH@Z¤ZZàÿ`%!?isconsistent@TRelation@@RECEE@Z¨Z`'!?is_first_match@TRelation@@RECEH@Z¬`)!?items@TRelation@@RECHXZ¯`+!?save_status@TRelation@@RECXXZ±`-!?restore_status@TRelation@@RECXXZ¶ÈÈ·`/!??YTRelation@@RECJJ@ZºÈÈ»`1!??ZTRelation@@RECJJ@Z¾È¿`3!??ETRelation@@RECJXZÂÈÃ`5!??FTRelation@@RECJXZÆ`7!??0TRelation@@REC@H@ZÈ`9!??0TRelation@@REC@PFD@ZÊ´ `;!??0TRelation@@REC@PEVTLocalisamfile@@@ZÍ`=!??1TRelation@@VEC@XZ +f:\p.due\INCLUDE\relation.h1¿ ?reldef@TRelation@@JFCAEVTRelationdef@@H@Z ¿ K!iµ ôøK! 4Á ?file@TRelation@@JFCAEVTLocalisamfile@@H@Z Á O!iõøO! 7ìÏÜ Æ ?position_rels@TRelation@@JECHW4TIsamop@@W4TReclock@@AEVTDate@@H@Z=@È ?ok@TRelation@@VFCEXZ È ! D@Ì ?update@TRelation@@RECHXZ Ì ìÏÆ IÏ@Ð ?next@TRelation@@VECHW4TReclock@@@Z Ð ^!lockopÁ ^!MDì^!Æ Á † LÏ@Ò ?prev@TRelation@@VECHW4TReclock@@@Z Ò a!lockopÁ a!MHìa!Æ Á † O@Ô ?next@TRelation@@VECHAEVTDate@@@Z Ô d!atdateÁ d!FìÏd!Æ Á † R@Ö ?prev@TRelation@@VECHAEVTDate@@@Z Ö g!atdateÁ g!JìÏg!Æ Á † UÏ@Ø ?first@TRelation@@VECHW4TReclock@@@Z Ø j!lockopÁ j!@ìj!Æ Á † XÏ@Ú ?last@TRelation@@VECHW4TReclock@@@Z Ú m!lockopÁ m!Bìm!Æ Á † [Ï@Ý ?skip@TRelation@@VECHJW4TReclock@@@Z Ý p!nrecq!lockopÁ p!q!Tìq!Æ Á † ^îÏÜ@á ?read@TRelation@@VECHW4TIsamop@@W4TReclock@@AEVTDate@@@Z á t!opu!lockopv!atdateÁ t!u!v!ÍXìu!v!Æ Á † a`ã ?lfile@TRelation@@RFCAEVTLocalisamfile@@H@Zf@ç ??ATRelation@@RFCAEVTLocalisamfile@@H@Z ç {!logicnum{!ã i`ê ?write_enable@TRelation@@RECXHE@Zk`í ?write_enable@TRelation@@RECXPFDE@Zn@ï ?write_disable@TRelation@@RECXH@Z ï ‚!logicnum‚!ê q@ñ ?write_disable@TRelation@@RECXPFD@Z ñ …!name…!í v@ó ?curr@TRelation@@RFCAEVTRectype@@H@Z ó ˆ!logicnumˆ!ã Š x`÷ ?next_match@TRelation@@RECEHPFDH@Z}`!?add@TRelation@@RECEHPFDHHHE@Z` !?add@TRelation@@RECEPFD0HHHE@Z`!?replace@TRelation@@RECXPEVTLocalisamfile@@H@Z„Ü`!?write@TRelation@@VECHEAEVTDate@@@Z†Ü`!?rewrite@TRelation@@VECHEAEVTDate@@@ZˆÜ`!?remove@TRelation@@VECHAEVTDate@@@Z@!?eof@TRelation@@RFCEH@Z !¤!logicnum¤!ã Œ ‘@!?bof@TRelation@@RFCEH@Z !§!logicnum§!ã Ž •@!?status@TRelation@@RFCEH@Z !ª!logicnumª!ã † ™@!?good@TRelation@@RFCEH@Z !­!logicnum­!ã  @!!?bad@TRelation@@RFCEH@Z !!°!logicnum°!ã ’ ¡@#!?empty@TRelation@@RFCEH@Z #!³!logicnum³!ã ” ¤`%!?isconsistent@TRelation@@RECEE@Z¬@)!?items@TRelation@@RECHXZ )!ôø^ ·@/!??YTRelation@@RECJJ@Z /!º!nposº!Ý »@1!??ZTRelation@@RECJJ@Z 1!½!npos½!Ý ¿@3!??ETRelation@@RECJXZ 3!Ð Ã@5!??FTRelation@@RECJXZ 5!Ò Î´ ÚÆ!TRecord_array Æ!ß Fáòø_fileãñø_offsetå]ðø_numê È!?rec2row@TRecord_array@@JFCHAFVTRectype@@@Zìí Ê!?num_field@TRecord_array@@JFCAFVTString@@XZï Ì!?remove_from@TRecord_array@@JFCHH@ZñZ Î!?good@TRecord_array@@JFCEAFVTRectype@@@Zö`Ð!?key@TRecord_array@@RFCAFVTRectype@@XZù`Ò!?rows@TRecord_array@@RFCHXZý`Ô!?succ_row@TRecord_array@@RFCHH@Z`Ö!?pred_row@TRecord_array@@RFCHH@Z`Ø!?last_row@TRecord_array@@RFCHXZ`Ú!?first_row@TRecord_array@@RFCHXZ  +ïùþÿÿÿ`Ü!?row@TRecord_array@@RFCAFVTRectype@@H@ZZ`Þ!?exist@TRecord_array@@RFCEH@ZZ`á!?row@TRecord_array@@RECAEVTRectype@@HE@Z`ã!?add_row@TRecord_array@@VECHPEVTRectype@@@Z`å!?add_row@TRecord_array@@RECHAFVTRectype@@@ZZZàÿ`è!?destroy_row@TRecord_array@@VECEHE@ZZZàÿ`ë!?destroy_row@TRecord_array@@VECEAFVTRectype@@E@Z`í!?destroy_rows@TRecord_array@@RECXXZ `ï!?logic_num@TRecord_array@@RFCHXZ"`ñ!?set_key@TRecord_array@@RECXPEVTRectype@@@Z$Z`ô!?renum_key@TRecord_array@@RECEPFDAFVTString@@@Z&Z`÷!?renum_key@TRecord_array@@RECEPFDJ@Z)`ù!?read@TRecord_array@@VECHAFVTRectype@@@Z+`û!?read@TRecord_array@@VECHPEVTRectype@@@Z-Zàÿ`ý!?write@TRecord_array@@VFCHE@Z0áÿ`ÿ!?rewrite@TRecord_array@@VFCHXZ2`"?remove@TRecord_array@@VFCHXZ5Æ!`"??0TRecord_array@@REC@AFVTRectype@@PFDH@Z7` "??0TRecord_array@@REC@HPFDH@Z9Æ!` "??0TRecord_array@@REC@AFV0@@Z +f:\p.due\INCLUDE\relation.híÊ!?num_field@TRecord_array@@JFCAFVTString@@XZ Ê!ðø ù@Ò!?rows@TRecord_array@@RFCHXZ Ò!^ ý@Ô!?succ_row@TRecord_array@@RFCHH@Z Ô!"r"ñølñø @Ö!?pred_row@TRecord_array@@RFCHH@Z Ö!""r""ñønñø @Ø!?last_row@TRecord_array@@RFCHXZ Ø!jñø @Ú!?first_row@TRecord_array@@RFCHXZ Ú!Ô!  +@Ü!?row@TRecord_array@@RFCAFVTRectype@@H@Z Ü!+"r+"ñø+"r+"ñøp @å!?add_row@TRecord_array@@RECHAFVTRectype@@@Z å!3"r3"Oã! `è!?destroy_row@TRecord_array@@VECEHE@Z@ë!?destroy_row@TRecord_array@@VECEAFVTRectype@@E@Z ë!9"r:"pack9"È!:"Íè!  @ï!?logic_num@TRecord_array@@RFCHXZ ï!òø -`ý!?write@TRecord_array@@VFCHE@Z0@ÿ!?rewrite@TRecord_array@@VFCHXZ ÿ!ý! 5`"??0TRecord_array@@REC@AFVTRectype@@PFDH@Z7` "??0TRecord_array@@REC@HPFDH@Z:Æ!= J"TExpressionJ"BZ´ L"FILTERFUNCTIONI· TCursor · N P´ ïø_ifRîø_nkeyTÈíø_posVÈìø_totrecXÈëø_lastrecZÈêø_lastkrec\Òéø_filename^èø_filter`çø_keyfrombæø_keytodJ"åø_fexprfZäø_frozenhZãø_filter_updatejZâø_filterfunction_updatelL"áø_filterfunctionnÒàø_indexnameqÈ N"?update@TCursor@@BECJXZv^Zàÿ P"?open_index@TCursor@@JECPEU_iobuf@@E@ZxZ +R"?changed@TCursor@@NECEXZzÈÈ +T"?buildcursor@TCursor@@NECJJ@Z|È +W"?filtercursor@TCursor@@NECHHPEJ@ZÈ Y"?readrec@TCursor@@JECJXZsþsþ ]"?filter@TCursor@@JECXPFDPFVTRectype@@1@Z„Z… _"?update_relation@TCursor@@JECEXZŠÈÈ`a"??4TCursor@@RECJJ@ZŒÈÈ`c"??YTCursor@@RECJJ@ZŽÈÈ`e"??ZTCursor@@RECJJ@Z‘{’`g"?first_item@TCursor@@VECPEVTObject@@XZ”{•`i"?succ_item@TCursor@@VECPEVTObject@@XZ—{˜`k"?pred_item@TCursor@@VECPEVTObject@@XZš{›`m"?last_item@TCursor@@VECPEVTObject@@XZž`o"?objects@TCursor@@VECJXZ¡È¢`q"?pos@TCursor@@RECAEJXZ¤È`s"?items@TCursor@@RECJXZ¦È§`u"?size@TCursor@@RFCJXZª«`w"?from@TCursor@@RFCAFVTString@@XZ­®`y"?to@TCursor@@RFCAFVTString@@XZ±²`{"?curr@TCursor@@RFCAEVTRectype@@H@Z´µ`}"?curr@TCursor@@RFCAEVTRectype@@PFD@Z·ÈæÍöö`"?read@TCursor@@RECJW4TIsamop@@W4TReclock@@AEVTDate@@@Z¹Í`ƒ"?lock@TCursor@@RECHW4TReclock@@@Z¼`…"?unlock@TCursor@@RECHXZ¿Z`‡"?ok@TCursor@@VFCEXZÂ`‰"?filter@TCursor@@RFCPFDXZÄZáÿÅ`‹"?freeze@TCursor@@RECXE@ZÇZÈ`"?frozen@TCursor@@RFCEXZÊZàÿË`"?setfilter@TCursor@@RECXPFDE@ZÍÎsþ`“"?setregion@TCursor@@RECXAFVTRectype@@0@ZÑ´ Ò`•"?relation@TCursor@@RFCPEVTRelation@@XZÔÕ`—"?file@TCursor@@RFCAEVTLocalisamfile@@H@Zר`™"?file@TCursor@@RFCAEVTLocalisamfile@@PFD@ZÛ`›"?repos@TCursor@@RECHXZÞJ"ß`"?expression@TCursor@@RFCPEVTExpression@@XZáL"â`Ÿ"?filterfunction@TCursor@@RFCP7AEPFVTRelation@@@ZXZæ`¡"?setkey@TCursor@@RECXXZè`£"?setkey@TCursor@@RECXH@Zë`¥"?key@TCursor@@RFCHXZîZsþ`©"?next_match@TCursor@@RECEHPFDH@ZðZ`«"?is_first_match@TCursor@@RECEH@ZóL"Zàÿô`®"?set_filterfunction@TCursor@@RECXP7AEPFVTRelation@@@ZE@ZöZ÷`°"?has_filter@TCursor@@RFCEXZû`²"?save_status@TCursor@@RECXXZþ`´"?restore_status@TCursor@@RECXXZ· ´ sþ`º"??0TCursor@@REC@PEVTRelation@@PFDHPFVTRectype@@2@Z`¼"??1TCursor@@VEC@XZ +f:\p.due\INCLUDE\relation.hv P"?open_index@TCursor@@JECPEU_iobuf@@E@Z ]"?filter@TCursor@@JECXPFDPFVTRectype@@1@Z…_"?update_relation@TCursor@@JECEXZ _"ãøâø @e"??ZTCursor@@RECJJ@Z e"Ñ"nposÑ"c" ’@g"?first_item@TCursor@@VECPEVTObject@@XZ g"a"{" •@i"?succ_item@TCursor@@VECPEVTObject@@XZ i"c"{" ˜@k"?pred_item@TCursor@@VECPEVTObject@@XZ k"e"{" ›@m"?last_item@TCursor@@VECPEVTObject@@XZ m"s"a"{" ž@o"?objects@TCursor@@VECJXZ o"s" ¢@q"?pos@TCursor@@RECAEJXZ q"íø §@u"?size@TCursor@@RFCJXZ u"—"š «@w"?from@TCursor@@RFCAFVTString@@XZ w"çø ®@y"?to@TCursor@@RFCAFVTString@@XZ y"æø ²@{"?curr@TCursor@@RFCAEVTRectype@@H@Z {"ï"logïøï"ó µ@}"?curr@TCursor@@RFCAEVTRectype@@PFD@Z }"ò"tabïøò"å Š ·îÏÜ`"?read@TCursor@@RECJW4TIsamop@@W4TReclock@@AEVTDate@@@Z¹Ð`ƒ"?lock@TCursor@@RECHW4TReclock@@@Z¼@…"?unlock@TCursor@@RECHXZ …"΃" Â@‰"?filter@TCursor@@RFCPFDXZ ‰"èø Å@‹"?freeze@TCursor@@RECXE@Z ‹"#onäø# È@"?frozen@TCursor@@RFCEXZ "äø Ë@"?setfilter@TCursor@@RECXPFDE@Z "#filter_expr#update#]"ãø# Î@“"?setregion@TCursor@@RECXAFVTRectype@@0@Z “" +#from #to +# #]" Ò@•"?relation@TCursor@@RFCPEVTRelation@@XZ •"ïø Õ@—"?file@TCursor@@RFCAEVTLocalisamfile@@H@Z —"#lnumïø#ã Ø@™"?file@TCursor@@RFCAEVTLocalisamfile@@PFD@Z ™"#nameïø#å Û@›"?repos@TCursor@@RECHXZ ›"ïøÆ ß@"?expression@TCursor@@RFCPEVTExpression@@XZ "åø â@Ÿ"?filterfunction@TCursor@@RFCP7AEPFVTRelation@@@ZXZ Ÿ"áø æ@¡"?setkey@TCursor@@RECXXZ ¡"—"îø: ë@¥"?key@TCursor@@RFCHXZ ¥"îø î`©"?next_match@TCursor@@RECEHPFDH@Zô@®"?set_filterfunction@TCursor@@RECXP7AEPFVTRelation@@@ZE@Z ®"+#ff,#updateáø+#ëøâø,# ÷@°"?has_filter@TCursor@@RFCEXZ °"èø4áø û@²"?save_status@TCursor@@RECXXZ ²"ïø+! þ@´"?restore_status@TCursor@@RECXXZ ´"ïø-! `º"??0TCursor@@REC@PEVTRelation@@PFDHPFVTRectype@@2@Z·  +=#TSorted_cursor =# · ßø_order_expr³ Þø_sortZÝø_is_changed_expr ZÜø_is_valid_expr%Z ?#?check_expr@TSorted_cursor@@JECEAEVTString@@@Z'Z A#?is_upper@TSorted_cursor@@JECEAEVTString@@@Z)ÈÈ +C#?buildcursor@TSorted_cursor@@NECJJ@Z+È +F#?filtercursor@TSorted_cursor@@NECHHPEJ@Z-Z +H#?changed@TSorted_cursor@@NECEXZ2ÈÈ3`J#??4TSorted_cursor@@RECJJ@Z5`L#?change_order@TSorted_cursor@@RECXPFD@Z7=#´ sþ`S#??0TSorted_cursor@@REC@PEVTRelation@@PFD1HPFVTRectype@@2@Z9`U#??1TSorted_cursor@@VEC@XZ +f:\p.due\INCLUDE\relation.h3@J#??4TSorted_cursor@@RECJJ@Z J#c#nrc#a" 7`S#??0TSorted_cursor@@REC@PEVTRelation@@PFD1HPFVTRectype@@2@Z:=#Al#TFieldref l#F {HÛø_fileidJÚø_idLÙø_nameNØø_fromP×ø_toUŒ +n#?print_on@TFieldref@@NFCXAEVostream@@@ZZ{`p#?dup@TFieldref@@VFCPEVTObject@@XZ\`r#??0TFieldref@@REC@XZ^l#`u#??0TFieldref@@REC@AFVTString@@F@Zal#`w#??4TFieldref@@RECAEV0@AFVTString@@@ZdZe`y#?ok@TFieldref@@VFCEXZi`{#?file@TFieldref@@RFCHXZk`}#?set_file@TFieldref@@RECXH@Zno`#?name@TFieldref@@RFCAFVTString@@XZr`#?set_name@TFieldref@@RECXPFD@Zu`ƒ#?set_from@TFieldref@@RECXH@Zx`…#?set_to@TFieldref@@RECXH@Z|`‡#?from@TFieldref@@RFCHXZ`‰#?to@TFieldref@@RFCHXZ`‹#?len@TFieldref@@RFCHAEVTRectype@@@Zƒ´ `#?read@TFieldref@@RFCPFDPFVTRelation@@@Z…`#?read@TFieldref@@RFCPFDAFVTRectype@@@Z‡´ `’#?write@TFieldref@@RFCXPFDPEVTRelation@@@Z‰`•#?write@TFieldref@@RFCXPFDAEVTRectype@@@Z +f:\p.due\INCLUDE\relation.he@y#?ok@TFieldref@@VFCEXZ y#Ùø4 i@{#?file@TFieldref@@RFCHXZ {#Ûø o@#?name@TFieldref@@RFCAFVTString@@XZ #Ùø r@#?set_name@TFieldref@@RECXPFD@Z #®#nÙø®# u@ƒ#?set_from@TFieldref@@RECXH@Z ƒ#±#f±#±# ±# Øø±# x@…#?set_to@TFieldref@@RECXH@Z …#¶#t×ø¶# |@‡#?from@TFieldref@@RFCHXZ ‡#Øø @‰#?to@TFieldref@@RFCHXZ ‰#×ø Šl#Œ“¶ TRelation_description ¶ ˜ {š´ Öø_relœŒÕø_filesžFÔø_fields Óø_cur_file¢Òø_cur_field¤ZÑø_menu¦Ðø_cfile¨Ïø_cfield­ Â#?init_files_array@TRelation_description@@JECXXZ¯ Ä#?read_rel@TRelation_description@@JECXXZ´Zµ`Æ#?ok@TRelation_description@@VFCEXZºZ`È#?choose_file@TRelation_description@@RECEH@Z¼Z`Ê#?set_cur_file@TRelation_description@@RECEH@Z¿Z`Ì#?choose_field@TRelation_description@@RECEPFD@ZÂZ`Î#?build_menu@TRelation_description@@RECEPFD@ZÄZ`Ð#?remove_menu@TRelation_description@@RECEXZÇ`Ò#?file_num@TRelation_description@@RECHXZÉ`Ô#?file_desc@TRelation_description@@RECPFDXZË`Ö#?file_desc@TRelation_description@@RECXPFD@ZÍZ`Ù#?set_field_description@TRelation_description@@RECEPFD0@ZÏ`Û#?get_field_description@TRelation_description@@RECPFDPFD@ZÒ`Ý#?field_desc@TRelation_description@@RECPFDXZÔ`ß#?field_desc@TRelation_description@@RECXPFD@ZÖ`á#?field_name@TRelation_description@@RECPFDXZØ`ã#?field_len@TRelation_description@@RECHXZÚÙ`å#?field_type@TRelation_description@@REC?EW4TFieldtypes@@XZÝŒÞ`ç#?get_all_desc@TRelation_description@@RFCAFVTString_array@@XZà´ Œ`ê#?change_relation@TRelation_description@@RECXAEVTRelation@@AEVTString_array@@@ZãŒ`ì#?print_on@TRelation_description@@VFCXAEVostream@@@Zæ¶ `î#??0TRelation_description@@REC@AEVTRelation@@@Zè`ð#??1TRelation_description@@VEC@XZ +f:\p.due\INCLUDE\relation.hµ@Æ#?ok@TRelation_description@@VFCEXZ Æ#Õø^ º`È#?choose_file@TRelation_description@@RECEH@Z¼`Ê#?set_cur_file@TRelation_description@@RECEH@Z¿`Ì#?choose_field@TRelation_description@@RECEPFD@ZÂ`Î#?build_menu@TRelation_description@@RECEPFD@ZÞ@ç#?get_all_desc@TRelation_description@@RFCAFVTString_array@@XZ ç#Õø ë¶ +F:\XVT.403\WIN_X86\PTK\include\xvt.h +f:\p.due\INCLUDE\config.hF:\XVT.403\WIN_X86\PTK\include\xvt.h +  $ofstream$ÍøCONFIG_GENERALÌøCONFIG_STUDIOÉøCONFIG_USER# $TConfig $4 {7”Æø_data9ÒÅø_file;ZÄø_dirty=ZÃø_ispresent?Âø_paragraphDZ  $?_read_paragraph@TConfig@@JECEXZF$ $?_write_paragraph@TConfig@@JECXAEVofstream@@@ZH $?_write_file@TConfig@@JECXXZJ $?init@TConfig@@JECXPFD0@ZQsþ`$?get@TConfig@@RECAEVTString@@PFD0H0@ZUsþ`$?get_long@TConfig@@RECJPFD0HJ@ZYsþ`!$?get_char@TConfig@@RECDPFD0HD@Z]sþ`&$?get_int@TConfig@@RECHPFD0HH@ZaZsþZàÿ`+$?get_bool@TConfig@@RECEPFD0HE@ZeZsþZ`0$?get_color@TConfig@@RECKPFD0HK@ZhZsþZáÿ`6$?set@TConfig@@RECEPFD00EH@ZjZsþZáÿ`<$?set@TConfig@@RECEPFDJ0EH@ZmZ`?$?exist@TConfig@@RECEPFDH@ZpZq`A$?new_paragraph@TConfig@@RECEXZu[`D$?items@TConfig@@RECIPFD0@Zx`F$?set_paragraph@TConfig@@RECXPFD@Z{Œ`H$?list_paragraphs@TConfig@@RECHAEVTString_array@@@ZŒZàÿsþ`L$?list_variables@TConfig@@RECHAEVTString_array@@EPFD@Z… $Íø`O$??0TConfig@@REC@HPFD@Zˆ $`R$??0TConfig@@REC@PFD0@Z‹`T$??1TConfig@@VEC@XZ +f:\p.due\INCLUDE\config.hQ`$?get@TConfig@@RECAEVTString@@PFD0H0@ZU`$?get_long@TConfig@@RECJPFD0HJ@ZY`!$?get_char@TConfig@@RECDPFD0HD@Z]`&$?get_int@TConfig@@RECHPFD0HH@Za`+$?get_bool@TConfig@@RECEPFD0HE@Ze`0$?get_color@TConfig@@RECKPFD0HK@Zh`6$?set@TConfig@@RECEPFD00EH@Zj`<$?set@TConfig@@RECEPFDJ0EH@Zm`?$?exist@TConfig@@RECEPFDH@Zq@A$?new_paragraph@TConfig@@RECEXZ A$Ãø `L$?list_variables@TConfig@@RECHAEVTString_array@@EPFD@Z…`O$??0TConfig@@REC@HPFD@Zˆ`R$??0TConfig@@REC@PFD0@ZŒ $ +f:\p.due\INCLUDE\mask.hf:\p.due\INCLUDE\window.hf:\p.due\INCLUDE\xvtility.hF:\XVT.403\WIN_X86\PTK\include\xvt.h +f:\p.due\INCLUDE\keys.h »øK_ENTER ºøK_ESC +”XXZZX”X‡ X"”%X+X,Zàÿ0`À$?do_events@@ZAXXZ2Z3^~4X]5X^6X^8X9m;X<X=X>X?XZ@XZAZXBXXCXDXZEXZX]GZ]IZJÐKÖM`ÿ$CHARX`%CHARY + ŒZX %TPoint %@®øx@­øy!` %??0TPoint@@REC@JJ@Z# %$`%??0TPoint@@REC@Us_pnt@@@Z'`%?set@TPoint@@RECXJJ@Z)ä*`%?set@TPoint@@RECXUs_pnt@@@Z, %ä-`%??4TPoint@@RECAEU0@Us_pnt@@@Z/ % %0`%??4TPoint@@RECAEU0@U0@@Z2Z %3`%??8TPoint@@RECEAFU0@@Z5Z %6`%??9TPoint@@RECEAFU0@@Z +f:\p.due\INCLUDE\window.h @ %??0TPoint@@REC@JJ@Z %"%sx#%sy"%#% #@%??0TPoint@@REC@Us_pnt@@@Z %&%pnt&%Ùüÿ$&%Úü% '@%?set@TPoint@@RECXJJ@Z %)%sx*%sy®ø)%­ø*% *@%?set@TPoint@@RECXUs_pnt@@@Z %-%pnt®ø-%Ùüÿ$­ø-%Úü% -@%??4TPoint@@RECAEU0@Us_pnt@@@Z %0%pnt0%% 0@%??4TPoint@@RECAEU0@U0@@Z %3%pnt3%®ø3%­ø% 3@%??8TPoint@@RECEAFU0@@Z %6%p6%®ø®ø6%­ø­ø 6@%??9TPoint@@RECEAFU0@@Z %9%p9%®ø®ø9%­ø­ø 7 %B<%TImage <%E {I0 ¬ø_imageK«ø_srcMªø_dstRX`>%?set_palette@TImage@@RFCXJ@ZT`A%?set_pos@TImage@@RECXHH@ZXX`C%?draw@TImage@@RFCXJ@ZZX`G%?draw@TImage@@RFCXJHH@Z\X`J%?draw@TImage@@RFCXJAFUs_rct@@@Z^X`N%?draw@TImage@@RFCXJAFUs_rct@@0@Za0 0 `P%?set@TImage@@RECPEU_xvt_image@@PEU2@@Zc0 `R%?load@TImage@@RECPEU_xvt_image@@PFD@Ze0 `T%?load@TImage@@RECPEU_xvt_image@@F@ZhZisþ`V%?ok@TImage@@VFCEXZm`X%?width@TImage@@RFCFXZp`Z%?height@TImage@@RFCFXZrs`\%?rect@TImage@@RFCAFUs_rct@@XZv`^%?convert_to_default_colors@TImage@@RECXXZx]Z`a%?set_clut@TImage@@RECXEK@Z{`c%??0TImage@@REC@PFD@Z}`e%??0TImage@@REC@F@Z<%`i%??0TImage@@REC@AFV0@FF@Z‚`k%??1TImage@@VEC@XZ +f:\p.due\INCLUDE\window.hi@V%?ok@TImage@@VFCEXZ V%¬ø m@X%?width@TImage@@RFCFXZ X%«øÔü p@Z%?height@TImage@@RFCFXZ Z%«øÕü s@\%?rect@TImage@@RFCAFUs_rct@@XZ \%«ø ƒ<%‰…%TWindow …% †%TWindow_manager†%†%’¢‡%?_ct@TWindow@@0Us_drawct@@E”Zˆ%?_ctools_saved@TWindow@@0EE—X©ø_win™^¨ø_lastkeyZ Š%?save_ctools@TWindow@@BECEXZ Z Œ%?restore_ctools@TWindow@@BECEXZ¥Z§ø_open§Z¦ø_modal©Z¥ø_active«Z¤ø_running­Z£ø_pixmap°QÿX~"%?window_handler@TWindow@@LAJJPEUs_event@@@Z²X‰ý”X7ýsþX +™%?create@TWindow@@NECJFFFFPFDJW4e_win_type@@JH@ZµX¶ ›%?set_win@TWindow@@JECXJ@Z¹Zº %?set_modal@TWindow@@JECXE@Z½X Ÿ%?parent@TWindow@@JFCJXZÁ +¡%?update@TWindow@@NECXXZÃZ^Äáÿ +£%?on_key@TWindow@@NECEI@ZÇä +¦%?log2dev@TWindow@@NFC?EUs_pnt@@JJ@ZÉ %ä +¨%?dev2log@TWindow@@NFC?EUTPoint@@AFUs_pnt@@@ZÎ`ª%??0TWindow@@REC@XZÐ`¬%??1TWindow@@VEC@XZÓX~`¯%?handler@TWindow@@VECXJPEUs_event@@@ZÕ`±%?set_focus@TWindow@@VECXXZ×XØ`³%?win@TWindow@@VFCJXZÛZÜ`µ%?is_open@TWindow@@RFCEXZÞZß`·%?is_modal@TWindow@@RFCEXZáZâ`¹%?is_running@TWindow@@RFCEXZäZå`»%?active@TWindow@@RFCEXZè %`½%?size@TWindow@@RFC?EUTPoint@@XZë`¿%?rows@TWindow@@RFCFXZî`Á%?columns@TWindow@@RFCFXZò`Ã%?start_run@TWindow@@VECXXZôZ^`Å%?stop_run@TWindow@@VECEI@Zö`Ç%?force_update@TWindow@@RECXXZù`É%?open@TWindow@@VECXXZû`Ë%?close@TWindow@@VECXXZýZ`Í%?can_be_closed@TWindow@@VFCEXZÿ`Ï%?on_idle@TWindow@@VECXXZ`Ñ%?iconize@TWindow@@RFCXXZ`Ó%?maximize@TWindow@@RFCXXZZáÿ`Õ%?activate@TWindow@@VECXE@Z àÿ`×%?deactivate@TWindow@@RECXXZ `Ù%?open_modal@TWindow@@RECXXZ`Û%?close_modal@TWindow@@RECXXZ^`Ý%?run@TWindow@@RECIXZ^`ß%?last_key@TWindow@@RFCIXZ`á%?set_caption@TWindow@@VECXPFD@Z`ã%?get_caption@TWindow@@VFCPFDXZZ`å%?clear@TWindow@@RECXK@Z“`ç%?set_mode@TWindow@@RECXW4e_mode@@@Z"ZZ`ê%?set_color@TWindow@@RECXKK@Z%Z`ì%?set_opaque_text@TWindow@@RECXE@Z(ZÐÖ`ñ%?set_pen@TWindow@@RECXKHW4e_pat@@W4e_pen_style@@@Z*`ó%?hide_pen@TWindow@@RECXXZ,`õ%?hide_brush@TWindow@@RECXXZ.ZÐ`ø%?set_brush@TWindow@@RECXKW4e_pat@@@Z0Xý`ü%?set_font@TWindow@@RECXPFDHH@Z3`&?frame@TWindow@@RECXFFFFH@Z6`&?rect@TWindow@@RECXFFFF@Z8` &?bar@TWindow@@RECXFFFF@Z:`&?invert_bar@TWindow@@RECXFFFF@Z=`&?stringat@TWindow@@RECXFFPFD@Z?`&?printat@TWindow@@REAXFFPFDZZB`&?line@TWindow@@RECXFFFF@ZD`"&?icon@TWindow@@RECXFFH@ZGZŒ]Záÿ`&&?add_menu@TWindow@@RECEAEVTString_array@@FE@ZIZ]`(&?remove_menu@TWindow@@RECEF@Z +f:\p.due\INCLUDE\window.h²y +™%?create@TWindow@@NECJFFFFPFDJW4e_win_type@@JH@Z¶›%?set_win@TWindow@@JECXJ@Z ›%@&w©ø@& º%?set_modal@TWindow@@JECXE@Z %C&m¦øC& Á +¡%?update@TWindow@@NECXXZ ¡% Ä +£%?on_key@TWindow@@NECEI@Z £% Ø@³%?win@TWindow@@VFCJXZ ³%©ø Ü@µ%?is_open@TWindow@@RFCEXZ µ%§ø ß@·%?is_modal@TWindow@@RFCEXZ ·%¦ø â@¹%?is_running@TWindow@@RFCEXZ ¹%¤ø å@»%?active@TWindow@@RFCEXZ »%¥ø ë@¿%?rows@TWindow@@RFCFXZ ¿%½%­ø î@Á%?columns@TWindow@@RFCFXZ Á%½%®ø ò@Ã%?start_run@TWindow@@VECXXZ Ã% `Õ%?activate@TWindow@@VECXE@Z @×%?deactivate@TWindow@@RECXXZ ×%Õ% @ß%?last_key@TWindow@@RFCIXZ ß%¨ø (ÆÒ`ñ%?set_pen@TWindow@@RECXKHW4e_pat@@W4e_pen_style@@@Z.Æ`ø%?set_brush@TWindow@@RECXKW4e_pat@@@Z0`ü%?set_font@TWindow@@RECXPFDHH@ZD`"&?icon@TWindow@@RECXFFH@ZG`&&?add_menu@TWindow@@RECEAEVTString_array@@FE@ZJ…%Q~&TTemp_window ~&R …%X~&`€&??0TTemp_window@@REC@J@ZZ`‚&??1TTemp_window@@VEC@XZ c&TScroll_window &d …%j %¢ø_originl %¡ø_maxn ø_shiftqZŸø_autoscrollsZžø_has_hscrolluZø_has_vscrollzX‰ý”X7ýsþX +š&?create@TScroll_window@@NECJFFFFPFDJW4e_win_type@@JH@Z}ä +&?log2dev@TScroll_window@@NFC?EUs_pnt@@JJ@ZZ^ +Ÿ&?on_key@TScroll_window@@NECEI@Z„`¡&??0TScroll_window@@REC@XZ‡X~`¤&?handler@TScroll_window@@VECXJPEUs_event@@@ZŠ`§&?set_scroll_max@TScroll_window@@RECXJJ@ZŒ`ª&?update_thumb@TScroll_window@@RECXJJ@ZZ`¬&?autoscroll@TScroll_window@@RECXE@Z“Z”`®&?autoscrolling@TScroll_window@@RFCEXZ— %˜`°&?origin@TScroll_window@@RFCAFUTPoint@@XZš %›`²&?range@TScroll_window@@RFCAFUTPoint@@XZ +f:\p.due\INCLUDE\window.hzy +š&?create@TScroll_window@@NECJFFFFPFDJW4e_win_type@@JH@ZŒ`ª&?update_thumb@TScroll_window@@RECXJJ@Z@¬&?autoscroll@TScroll_window@@RECXE@Z ¬&Î&onŸøÎ& ”@®&?autoscrolling@TScroll_window@@RFCEXZ ®&Ÿø ˜@°&?origin@TScroll_window@@RFCAFUTPoint@@XZ °&¢ø ›@²&?range@TScroll_window@@RFCAFUTPoint@@XZ ²&¡ø œ& +f:\p.due\INCLUDE\maskfld.hf:\p.due\INCLUDE\scanner.hC:\VC\INCLUDE\fstream.hC:\VC\INCLUDE\iostream.h +Ú&filedesc Û&filebuf Û& ‹"BÜ&?openprot@filebuf@@2HF%BÝ&?sh_compat@filebuf@@2HF&BÞ&?sh_none@filebuf@@2HF'Bß&?sh_read@filebuf@@2HF(Bà&?sh_write@filebuf@@2HF,Bá&?binary@filebuf@@2HF-Bâ&?text@filebuf@@2HF/`ä&??0filebuf@@REC@XZ0Û&`æ&??0filebuf@@REC@H@Z1Û&Ú&`ê&??0filebuf@@REC@HPEDH@Z2`ì&??1filebuf@@VEC@XZ4Û&Ú&`î&?attach@filebuf@@RECPEV1@H@Z5Ú&ƒþ`ð&?fd@filebuf@@RFCHXZ6`ò&?is_open@filebuf@@RFCHXZ7Û&2ú`ö&?open@filebuf@@RECPEV1@PFDHH@Z8Û&`ø&?close@filebuf@@RECPEV1@XZ9`ú&?setmode@filebuf@@RECHH@Z;ƒþ`ü&?overflow@filebuf@@VECHH@Z<`þ&?underflow@filebuf@@VECHXZ>‹2ú`'?setbuf@filebuf@@VECPEVstreambuf@@PEDH@Z?Љœ`'?seekoff@filebuf@@VECJJW4seek_dir@ios@@H@ZA`'?sync@filebuf@@VECHXZDÚ&™øx_fdE˜øx_fOpened +C:\VC\INCLUDE\fstream.h5@ð&?fd@filebuf@@RFCHXZ ð&™ø™ø 6@ò&?is_open@filebuf@@RFCHXZ ò&™ø 7Ü&`ö&?open@filebuf@@RECPEV1@PFDHH@Z9â&`ú&?setmode@filebuf@@RECHH@Z;`ü&?overflow@filebuf@@VECHH@ZFÛ&H 'ifstream ' /J`"'??0ifstream@@REC@XZK '`&'??0ifstream@@REC@PFDHH@ZL '`('??0ifstream@@REC@H@ZM 'Ú&`,'??0ifstream@@REC@HPEDH@ZN`.'??1ifstream@@VEC@XZP‹2ú`1'?setbuf@ifstream@@RECPEVstreambuf@@PEDH@ZQÛ&`3'?rdbuf@ifstream@@RFCPEVfilebuf@@XZSÚ&`5'?attach@ifstream@@RECXH@ZTÚ&`7'?fd@ifstream@@RFCHXZV`9'?is_open@ifstream@@RFCHXZW2ú`='?open@ifstream@@RECXPFDHH@ZX`?'?close@ifstream@@RECXXZY`A'?setmode@ifstream@@RECHH@Z +C:\VC\INCLUDE\fstream.hK`&'??0ifstream@@REC@PFDHH@ZQ@3'?rdbuf@ifstream@@RFCPEVfilebuf@@XZ 3'Û&ã T@7'?fd@ifstream@@RFCHXZ 7'3'ð& V@9'?is_open@ifstream@@RFCHXZ 9'3'ò& WÜ&`='?open@ifstream@@RECXPFDHH@ZYâ&@A'?setmode@ifstream@@RECHH@Z A'b'mode3'b'ú& Z '\$ofstream $ Œ^`f'??0ofstream@@REC@XZ_$`j'??0ofstream@@REC@PFDHH@Z`$`l'??0ofstream@@REC@H@Za$Ú&`p'??0ofstream@@REC@HPEDH@Zb`r'??1ofstream@@VEC@XZd‹2ú`u'?setbuf@ofstream@@RECPEVstreambuf@@PEDH@ZeÛ&`w'?rdbuf@ofstream@@RFCPEVfilebuf@@XZgÚ&`y'?attach@ofstream@@RECXH@ZhÚ&`{'?fd@ofstream@@RFCHXZj`}'?is_open@ofstream@@RFCHXZk2ú`'?open@ofstream@@RECXPFDHH@Zl`ƒ'?close@ofstream@@RECXXZm`…'?setmode@ofstream@@RECHH@Z +C:\VC\INCLUDE\fstream.h_`j'??0ofstream@@REC@PFDHH@Ze@w'?rdbuf@ofstream@@RFCPEVfilebuf@@XZ w'Û&ã h@{'?fd@ofstream@@RFCHXZ {'w'ð& j@}'?is_open@ofstream@@RFCHXZ }'w'ò& kÜ&`'?open@ofstream@@RECXPFDHH@Zmâ&@…'?setmode@ofstream@@RECHH@Z …'¦'modew'¦'ú& n$p©'fstream ©' r`«'??0fstream@@REC@XZs©'`¯'??0fstream@@REC@PFDHH@Zt©'`±'??0fstream@@REC@H@Zu©'Ú&`µ'??0fstream@@REC@HPEDH@Zv`·'??1fstream@@VEC@XZx‹2ú`º'?setbuf@fstream@@RECPEVstreambuf@@PEDH@ZyÛ&`¼'?rdbuf@fstream@@RFCPEVfilebuf@@XZ{Ú&`¾'?attach@fstream@@RECXH@Z|Ú&`À'?fd@fstream@@RFCHXZ~`Â'?is_open@fstream@@RFCHXZ2ú`Æ'?open@fstream@@RECXPFDHH@Z€`È'?close@fstream@@RECXXZ`Ê'?setmode@fstream@@RECHH@Z +C:\VC\INCLUDE\fstream.hs`¯'??0fstream@@REC@PFDHH@Zy@¼'?rdbuf@fstream@@RFCPEVfilebuf@@XZ ¼'Û&ã |@À'?fd@fstream@@RFCHXZ À'¼'ð& ~@Â'?is_open@fstream@@RFCHXZ Â'¼'ò& Ü&`Æ'?open@fstream@@RECXPFDHH@Zâ&@Ê'?setmode@fstream@@RECHH@Z Ê'ì'mode¼'ì'ú& ‚©'…†@ð'?binary@@ZAAEVios@@AEV1@@Z ð'ï'_fstrmÛ&ï'ãá&ú&ï' ‡ˆ@ô'?text@@ZAAEVios@@AEV1@@Z ô'ó'_fstrmÛ&ó'ãâ&ú&ó' +F:\XVT.403\WIN_X86\PTK\include\xvt.h +÷'TScanner ÷' '—ø_token–ø_key•ø_buffer!Z”ø_pushed#[“ø_line(`ù'??0TScanner@@REC@PFD@Z+`û'??1TScanner@@VEC@XZ-`ý'?pop@TScanner@@RECAFVTString@@XZ/0`ÿ'?key@TScanner@@RFCAFVTString@@XZ23`(?popkey@TScanner@@RECAFVTString@@XZ5`(?string@TScanner@@RECAFVTString@@XZ7`(?line@TScanner@@RECAEVTString@@D@Z9:`(?equal@TScanner@@RECAFVTString@@XZ<` (?rectangle@TScanner@@RECXAEUs_rct@@@Z>` (?integer@TScanner@@RECHXZ@`(?number@TScanner@@RECNXZB`(?operand@TScanner@@RECAFVTString@@XZDZ`(?paragraph@TScanner@@RECEPFD@ZGZH`(?ok@TScanner@@RECEXZKsþ`(?push@TScanner@@RECXPFD@ZMN`(?token@TScanner@@RFCAFVTString@@XZP[Q`(?linenum@TScanner@@RECIXZ +f:\p.due\INCLUDE\scanner.h+@û'??1TScanner@@VEC@XZ û'.'—ø–ø•ø 0@ÿ'?key@TScanner@@RFCAFVTString@@XZ ÿ'–ø 3@(?popkey@TScanner@@RECAFVTString@@XZ (ý'ÿ' 7`(?line@TScanner@@RECAEVTString@@D@Z:@(?equal@TScanner@@RECAFVTString@@XZ (( H@(?ok@TScanner@@RECEXZ (Û K`(?push@TScanner@@RECXPFD@ZN@(?token@TScanner@@RFCAFVTString@@XZ (—ø Q@(?linenum@TScanner@@RECIXZ (“ø R÷' + A(TMask_fieldA(´ · l# B(TArray_sheetB(ZA(^E(CONTROL_HANDLER F(CheckType F(  +G(CHECK_NONE" +I(CHECK_REQUIRED$ ) K(CheckTime K(* +L(RUNNING_CHECK, 4A(TMask_field A(8 {: O(TMaskO(O(?O(’ø_maskA‘ø_helpCl#ø_fieldE¸ø_keysG¸Žø_groupsJø_userdataOP(?_x@TMask_field@@1HEQQ(?_y@TMask_field@@1HESR(?_width@TMask_field@@1HEU„S(?_prompt@TMask_field@@1VTString80@@EWE(Œø_handlerZ‹ø_size]XŠø_win_X‰ø_promptwinaˆø_dlgd‡ø_validate_funcfF†ø_validate_parmsh…ø_warningjF„ø_messagenT(TField_Flags T(oZ@ƒøautomagicpZ@‚ødirtyqZ@øenabledrZ@€øenable_defaultsZ@øfirmtZ@~øfocusdirtyuZ@}øghostvZ@|øpasswordwZ@{øpersistentxZ@zørightjustyZ@yøromanzZ@xøshown{Z@wøshow_default|]@vøtrim}Z@uøuppercase~Z@tøexchangeZ@søzerofilled€Z@røpipeallowedƒ`V(??0TField_Flags@TMask_field@@REC@XZ„`X(?update@TField_Flags@TMask_field@@RECDPFD@Z …qø_flagsˆ÷'X c(?construct@TMask_field@@JECXAEVTScanner@@J@ZŠX l(?construct@TMask_field@@JECXFPFDHHHJ0H@ZXŽ +n(?win@TMask_field@@NFCJXZ‘X”X u(?wincreate@TMask_field@@JECJW4e_win_type@@FFPFDJJ@Z“X y(?create_prompt@TMask_field@@JECHJHH@Z– {(?default_flags@TMask_field@@JFCJXZ™÷' +}(?parse_head@TMask_field@@NECXAEVTScanner@@@Z›Z÷' +(?parse_item@TMask_field@@NECEAEVTScanner@@@ZžX +(?create@TMask_field@@NECXJ@Z  +ƒ(?destroy@TMask_field@@NECXXZ¢ +…(?highlight@TMask_field@@NFCXXZ¤Z +‡(?set_back_color@TMask_field@@NFCXK@Z§ +‰(?get_window_data@TMask_field@@NFCPFDXZ© +‹(?set_window_data@TMask_field@@NECXPFD@Z« +(?set_field_data@TMask_field@@NECXPFD@Z­ +(?get_field_data@TMask_field@@NFCPFDXZ¯ZE° +’(?exchange@TMask_field@@NECXEAFVreal@@@Z³Z ”(?do_message@TMask_field@@JECEH@Z¸`–(?atodlg@TMask_field@@RFCFPFD@Z»X`˜(?parent@TMask_field@@RFCJXZ¿`š(?dlg@TMask_field@@RFCFXZÁZ`œ(?ok@TMask_field@@VFCEXZÄZÅ`ž(?dirty@TMask_field@@RFCEXZÇZÈ` (?focusdirty@TMask_field@@RFCEXZÊZáÿË`¢(?set_focusdirty@TMask_field@@RECXE@ZÍZáÿ`¤(?set_dirty@TMask_field@@RECXE@ZÐZÑ`¦(?set_trim@TMask_field@@RECXE@ZÔZÕ`¨(?set_justify@TMask_field@@RECXE@ZØZÙ`ª(?right_justified@TMask_field@@RFCEXZÜZÝ`¬(?pipe_allowed@TMask_field@@RFCEXZàZáÿá`®(?allow_pipe@TMask_field@@RECXE@Zä`°(?class_name@TMask_field@@VFCPFDXZæ[`²(?class_id@TMask_field@@VFCIXZê`´(?size@TMask_field@@RFCHXZíZî`¶(?roman@TMask_field@@RFCEXZðZñ`¸(?automagic@TMask_field@@RFCEXZóZô`º(?ghost@TMask_field@@RFCEXZöZ÷`¼(?exchangeable@TMask_field@@RFCEXZúZûàÿ`¾(?has_check@TMask_field@@VFCEXZýZþàÿ`À(?has_query@TMask_field@@VFCEXZZ`Â(?has_message@TMask_field@@VFCEXZF(`Ä(?check_type@TMask_field@@VFC?EW4CheckType@@XZZ`Æ(?required@TMask_field@@RFCEXZ +ZK( áÿ`È(?check@TMask_field@@VECEW4CheckTime@@@Z`Ê(?reset@TMask_field@@VECXXZZáÿ`Ì(?enable@TMask_field@@VECXE@Zàÿ`Î(?disable@TMask_field@@RECXXZZ`Ð(?enabled@TMask_field@@VFCEXZ`Ò(?enable_default@TMask_field@@RECXXZZ`Ô(?enabled_default@TMask_field@@RFCEXZZáÿ`Ö(?show@TMask_field@@VECXE@Z"àÿ`Ø(?hide@TMask_field@@RECXXZ$Z%`Ú(?shown@TMask_field@@RFCEXZ(`Ü(?show_default@TMask_field@@RECXXZ+Z`Þ(?active@TMask_field@@RFCEXZ.E(/`à(?set_handler@TMask_field@@RECXP7AEAEV1@I@Z@Z2Zàÿ`â(?is_edit@TMask_field@@VFCEXZ4Z^Zàÿ`å(?to_check@TMask_field@@RFCEIE@Z7Z`ç(?on_hit@TMask_field@@VECEXZ9Z^`é(?on_key@TMask_field@@VECEI@Z;Z`ë(?test_focus_change@TMask_field@@VECEXZ>`í(?set@TMask_field@@RECXPFD@Z@`ï(?get@TMask_field@@RFCAEVTString@@XZCD`ñ(?custom_data@TMask_field@@RECAEVTToken_string@@XZGZ`ô(?picture_data@TMask_field@@VFCPFDPFDE@ZJ`ö(?warning@TMask_field@@VFCPFDXZMZ´ sþ`ø(?autoload@TMask_field@@VECEPFVTRelation@@@ZOZ´ sþ`ú(?autosave@TMask_field@@VFCEPEVTRelation@@@ZR`ü(?undo@TMask_field@@RECXXZU`þ(?prompt@TMask_field@@RFCPFDXZW`)?set_prompt@TMask_field@@RECXPFD@ZZZ][`)?in_key@TMask_field@@RFCEE@Z]]^`)?set_key@TMask_field@@RECXE@Z`]`)?reset_key@TMask_field@@RECXE@Zb[`)?last_key@TMask_field@@RFCIXZeZ]f` +)?in_group@TMask_field@@RFCEE@Zh]i` )?set_group@TMask_field@@RECXE@Zll#m`)?field@TMask_field@@RFCPFVTFieldref@@XZo`)?set_field@TMask_field@@RECXAFVTString@@@Zr`)?set_focus@TMask_field@@RFCXXZt^`)?send_key@TMask_field@@RECXIF@ZxZ`)?message_box@TMask_field@@RFAEPFDZZzZ`)?warning_box@TMask_field@@RFAEPFDZZ|Z`)?error_box@TMask_field@@RFAEPFDZZ~Z`)?yesno_box@TMask_field@@RFAEPFDZZ€^`)?yesnocancel_box@TMask_field@@RFAIPFDZZƒO(„`!)?mask@TMask_field@@RFCAEVTMask@@XZ†A(`#)??0TMask_field@@REC@PEVTMask@@@Zˆ`%)??1TMask_field@@VEC@XZ +f:\p.due\INCLUDE\maskfld.hŠ l(?construct@TMask_field@@JECXFPFDHHHJ0H@ZŽ +n(?win@TMask_field@@NFCJXZ n(Šø “ y(?create_prompt@TMask_field@@JECHJHH@Z° +’(?exchange@TMask_field@@NECXEAFVreal@@@Z ’( ¿@š(?dlg@TMask_field@@RFCFXZ š(ˆø Å@ž(?dirty@TMask_field@@RFCEXZ ž(qø‚ø È@ (?focusdirty@TMask_field@@RFCEXZ  (qø~ø Ë@¢(?set_focusdirty@TMask_field@@RECXE@Z ¢(N)dqø~øN) Í`¤(?set_dirty@TMask_field@@RECXE@ZÑ@¦(?set_trim@TMask_field@@RECXE@Z ¦(R)tqøvøR) Õ@¨(?set_justify@TMask_field@@RECXE@Z ¨(U)rqøzøU) Ù@ª(?right_justified@TMask_field@@RFCEXZ ª(qøzø Ý@¬(?pipe_allowed@TMask_field@@RFCEXZ ¬(qørø á@®(?allow_pipe@TMask_field@@RECXE@Z ®(^)rqørø^) ê@´(?size@TMask_field@@RFCHXZ ´(‹ø î@¶(?roman@TMask_field@@RFCEXZ ¶(qøyø ñ@¸(?automagic@TMask_field@@RFCEXZ ¸(qøƒø ô@º(?ghost@TMask_field@@RFCEXZ º(qø}ø ÷@¼(?exchangeable@TMask_field@@RFCEXZ ¼(qøtø û@¾(?has_check@TMask_field@@VFCEXZ ¾( þ@À(?has_query@TMask_field@@VFCEXZ À( @Â(?has_message@TMask_field@@VFCEXZ Â(„ø^ @Ä(?check_type@TMask_field@@VFC?EW4CheckType@@XZ Ä(G( @Æ(?required@TMask_field@@RFCEXZ Æ(Ä(I(MM‡‡‡‡  L(@È(?check@TMask_field@@VECEW4CheckTime@@@Z È( `Ì(?enable@TMask_field@@VECXE@Z@Î(?disable@TMask_field@@RECXXZ Î(Ì( @Ð(?enabled@TMask_field@@VFCEXZ Ð(qøø @Ô(?enabled_default@TMask_field@@RFCEXZ Ô(qø€ø `Ö(?show@TMask_field@@VECXE@Z"@Ø(?hide@TMask_field@@RECXXZ Ø(Ö( %@Ú(?shown@TMask_field@@RFCEXZ Ú(qøxø /@à(?set_handler@TMask_field@@RECXP7AEAEV1@I@Z@Z à(•)handlerŒø•) 2@â(?is_edit@TMask_field@@VFCEXZ â( 4`å(?to_check@TMask_field@@RFCEIE@ZD@ñ(?custom_data@TMask_field@@RECAEVTToken_string@@XZ ñ(ø J@ö(?warning@TMask_field@@VFCPFDXZ ö(…ø M`ø(?autoload@TMask_field@@VECEPFVTRelation@@@ZO`ú(?autosave@TMask_field@@VFCEPEVTRelation@@@Z[@)?in_key@TMask_field@@RFCEE@Z )¥)keyø¥) ^@)?set_key@TMask_field@@RECXE@Z )¨)keyø¨)ÚøÚ f@ +)?in_group@TMask_field@@RFCEE@Z +)«)groupŽø«) i@ )?set_group@TMask_field@@RECXE@Z )®)groupŽø®)ÚŽøÚ m@)?field@TMask_field@@RFCPFVTFieldref@@XZ )ø „@!)?mask@TMask_field@@RFCAEVTMask@@XZ !)’ø ‰A(ª·)TEdit_field ·)¬ A(® ¸)TBrowse¸)¸)° ¹)TList_sheet¹)¹)² º)TBrowse_sheetº)º)·pø_str¹oø_picture»F(nø_check½Zmø_forced¿Zlø_check_enabledÁ¸)kø_browseù)jø_sheetÅXiø_buttonwinȸ)÷' ¼)?get_browse@TEdit_field@@JFCPFVTBrowse@@AEVTScanner@@@ZË[ +¾)?class_id@TEdit_field@@NFCIXZÍ÷' +À)?parse_head@TEdit_field@@NECXAEVTScanner@@@ZÏZ÷' +Â)?parse_item@TEdit_field@@NECEAEVTScanner@@@ZÑZ +Ä)?set_back_color@TEdit_field@@NFCXK@ZÓZáÿ +Æ)?is_edit@TEdit_field@@NFCEXZÖX +È)?create@TEdit_field@@NECXJ@ZØ +Ê)?destroy@TEdit_field@@NECXXZÛZ^ Ì)?validate@TEdit_field@@JECEI@ZÞ +Î)?set_window_data@TEdit_field@@NECXPFD@Zà +Ð)?set_field_data@TEdit_field@@NECXPFD@Zâ +Ò)?get_field_data@TEdit_field@@NFCPFDXZäZ Ô)?default_error_box@TEdit_field@@JFCEXZéZ`Ö)?on_hit@TEdit_field@@VECEXZëZ^`Ø)?on_key@TEdit_field@@VECEI@ZíZ`Ú)?has_check@TEdit_field@@VFCEXZïZð`Ü)?has_query@TEdit_field@@VFCEXZóZ`ß)?picture_data@TEdit_field@@VFCPFDPFDE@ZõZáÿ`á)?show@TEdit_field@@VECXE@Z÷Záÿ`ã)?enable@TEdit_field@@VECXE@ZùF(ú`å)?check_type@TEdit_field@@VFC?EW4CheckType@@XZüF(ý`ç)?check_type@TEdit_field@@RECXW4CheckType@@@ZZ`é)?forced@TEdit_field@@RFCEXZZK(`ë)?check@TEdit_field@@VECEW4CheckTime@@@Z¸)`í)?browse@TEdit_field@@RFCPEVTBrowse@@XZ¹) `ï)?sheet@TEdit_field@@RFCPEVTList_sheet@@XZ Záÿ`ñ)?enable_check@TEdit_field@@RECXE@ZZ`ó)?check_enabled@TEdit_field@@RFCEXZ`õ)?format@TEdit_field@@RFCPFDPFD@Z`÷)?picture@TEdit_field@@RFCPFDXZ·)`ù)??0TEdit_field@@REC@PEVTMask@@@Z`û)??1TEdit_field@@VEC@XZ +f:\p.due\INCLUDE\maskfld.hÓ +Æ)?is_edit@TEdit_field@@NFCEXZ Æ) ð@Ü)?has_query@TEdit_field@@VFCEXZ Ü)køjø õ`á)?show@TEdit_field@@VECXE@Z÷`ã)?enable@TEdit_field@@VECXE@Zú@å)?check_type@TEdit_field@@VFC?EW4CheckType@@XZ å)nø ý@ç)?check_type@TEdit_field@@RECXW4CheckType@@@Z ç)*cnø* @é)?forced@TEdit_field@@RFCEXZ é)mø L(`ë)?check@TEdit_field@@VECEW4CheckTime@@@Z@í)?browse@TEdit_field@@RFCPEVTBrowse@@XZ í)kø  @ï)?sheet@TEdit_field@@RFCPEVTList_sheet@@XZ ï)jø  `ñ)?enable_check@TEdit_field@@RECXE@Z@ó)?check_enabled@TEdit_field@@RFCEXZ ó)lø @÷)?picture@TEdit_field@@RFCPFDXZ ÷)oø ·)&¸)TBrowse ¸)*·)hø_fld,´ gø_relation.· fø_cursor0eø_insert2dø_filter4cø_rec6Zbø_secondary8Zaø_checked;`ø_head=_ø_items?^ø_inp_idA]ø_inp_fnC\ø_out_idE[ø_out_fnJK( )*?do_output@TBrowse@@JECXW4CheckTime@@@ZL +*?do_clear@TBrowse@@JECXXZNZ -*?do_insert@TBrowse@@JECEXZQA( /*?field@TBrowse@@JFCAEVTMask_field@@F@ZS 1*?create_siblings@TBrowse@@JECAEVTToken_string@@AEV2@@ZY`3*?inputs@TBrowse@@RECHXZ[Zàÿ`5*?do_input@TBrowse@@RECHE@Z^¸)·)`:*??0TBrowse@@REC@PEVTEdit_field@@PEVTRelation@@HPFD@Z`¸)·)`=*??0TBrowse@@REC@PEVTEdit_field@@PEVTCursor@@@Zb`?*??1TBrowse@@REC@XZe÷'`A*?parse_join@TBrowse@@RECXAEVTScanner@@@Zg÷'`C*?parse_input@TBrowse@@RECXAEVTScanner@@@Zi÷'`E*?parse_display@TBrowse@@RECXAEVTScanner@@@Zk÷'`G*?parse_output@TBrowse@@RECXAEVTScanner@@@Zm÷'`I*?parse_insert@TBrowse@@RECXAEVTScanner@@@ZoZ¸)`L*?parse_copy@TBrowse@@RECEAFVTString@@AFV1@@Zs`N*?set_insert@TBrowse@@RECXPFD@Zuv`P*?get_insert@TBrowse@@RFCAFVTString@@XZxy`R*?get_filter@TBrowse@@RFCAFVTString@@XZ|·)}`T*?field@TBrowse@@RFCAEVTEdit_field@@XZ€ZK(`V*?check@TBrowse@@RECEW4CheckTime@@@Z‚Z`X*?empty_check@TBrowse@@RECEXZ„…`Z*?head@TBrowse@@RFCAFVTToken_string@@XZ‡ˆ`\*?items@TBrowse@@RFCAFVTToken_string@@XZŠ· ‹`^*?cursor@TBrowse@@RFCPEVTCursor@@XZZŽ``*?checked@TBrowse@@RFCEXZZ‘`b*?secondary@TBrowse@@RFCEXZ”^`d*?run@TBrowse@@RECIXZ +f:\p.due\INCLUDE\maskfld.hJL( )*?do_output@TBrowse@@JECXW4CheckTime@@@Z[`5*?do_input@TBrowse@@RECHE@Z^`:*??0TBrowse@@REC@PEVTEdit_field@@PEVTRelation@@HPFD@Zs@N*?set_insert@TBrowse@@RECXPFD@Z N*w*seøw* v@P*?get_insert@TBrowse@@RFCAFVTString@@XZ P*eø y@R*?get_filter@TBrowse@@RFCAFVTString@@XZ R*dø }@T*?field@TBrowse@@RFCAEVTEdit_field@@XZ T*hø €L(`V*?check@TBrowse@@RECEW4CheckTime@@@Z…@Z*?head@TBrowse@@RFCAFVTToken_string@@XZ Z*`ø ˆ@\*?items@TBrowse@@RFCAFVTToken_string@@XZ \*_ø ‹@^*?cursor@TBrowse@@RFCPEVTCursor@@XZ ^*fø Ž@`*?checked@TBrowse@@RFCEXZ `*aø ‘@b*?secondary@TBrowse@@RFCEXZ b*bø •¸) ¹)TList_sheet ¹)¤·)Zø_fld¦B(Yø_sheet¨Xø_row«Wø_inp_id­Vø_out_id² ”*?do_input@TList_sheet@@JECHXZ´K( –*?do_output@TList_sheet@@JECXW4CheckTime@@@Z¶Z ˜*?do_insert@TList_sheet@@JECEXZ¸A( š*?field@TList_sheet@@JFCAEVTMask_field@@F@Z½¹)`ž*??0TList_sheet@@REC@PEVTEdit_field@@PFD1@Z¿` *??1TList_sheet@@REC@XZÂ÷'`¢*?parse_input@TList_sheet@@RECXAEVTScanner@@@ZÄ÷'`¤*?read_item@TList_sheet@@RECXAEVTScanner@@@ZÆ÷'`¦*?parse_output@TList_sheet@@RECXAEVTScanner@@@ZÈB(É`¨*?sheet@TList_sheet@@RECPEVTArray_sheet@@XZË·)Ì`ª*?field@TList_sheet@@RFCAEVTEdit_field@@XZÏZK(`¬*?check@TList_sheet@@RECEW4CheckTime@@@ZÒ^`®*?run@TList_sheet@@RECIXZ +f:\p.due\INCLUDE\maskfld.h´L( –*?do_output@TList_sheet@@JECXW4CheckTime@@@ZÉ@¨*?sheet@TList_sheet@@RECPEVTArray_sheet@@XZ ¨*Yø Ì@ª*?field@TList_sheet@@RFCAEVTEdit_field@@XZ ª*Zø ÏL(`¬*?check@TList_sheet@@RECEW4CheckTime@@@ZÓ¹)ÚÃ*TReal_field Ã*Ü ·)àUø_decimalså[ +Å*?class_id@TReal_field@@NFCIXZè +Ç*?get_window_data@TReal_field@@NFCPFDXZê +É*?set_window_data@TReal_field@@NECXPFD@Zì +Ë*?set_field_data@TReal_field@@NECXPFD@ZïZE +Î*?exchange@TReal_field@@NECXEAFVreal@@@ZñZ +Ñ*?picture_data@TReal_field@@NFCPFDPFDE@ZôX +Ó*?create@TReal_field@@NECXJ@Zö÷' +Õ*?parse_head@TReal_field@@NECXAEVTScanner@@@ZøZ÷' +×*?parse_item@TReal_field@@NECEAEVTScanner@@@ZúZ^ +Ù*?on_key@TReal_field@@NECEI@ZüZ´  +Û*?autoload@TReal_field@@NECEPFVTRelation@@@Z`Ý*?set_decimals@TReal_field@@RECXH@Z`ß*?decimals@TReal_field@@RFCHXZÃ*`á*??0TReal_field@@REC@PEVTMask@@@Z +f:\p.due\INCLUDE\maskfld.h@ß*?decimals@TReal_field@@RFCHXZ ß*Uø Ã*ô*TDate_field ô* ·)Zsþ ÷*?format_data@TDate_field@@JFCPFDPFDPEE@Z[ +ù*?class_id@TDate_field@@NFCIXZX +û*?create@TDate_field@@NECXJ@ZZ^ +ý*?on_key@TDate_field@@NECEI@Z Z ++?picture_data@TDate_field@@NFCPFDPFDE@Z" ++?get_window_data@TDate_field@@NFCPFDXZ$ ++?set_window_data@TDate_field@@NECXPFD@Z&Z´ sþ ++?autosave@TDate_field@@NFCEPEVTRelation@@@Z+÷'`+?parse_head@TDate_field@@VECXAEVTScanner@@@Z-ô*` ++??0TDate_field@@REC@PEVTMask@@@Z +f:\p.due\INCLUDE\maskfld.h ÷*?format_data@TDate_field@@JFCPFDPFDPEE@Z& ++?autosave@TDate_field@@NFCEPEVTRelation@@@Z.ô*5+TBoolean_field +8 A(<ZTø_on?[ ++?class_id@TBoolean_field@@NFCIXZBX +!+?create@TBoolean_field@@NECXJ@ZD +#+?get_window_data@TBoolean_field@@NFCPFDXZF +%+?set_window_data@TBoolean_field@@NECXPFD@ZHsþ +'+?set_field_data@TBoolean_field@@NECXPFD@ZJ +)+?get_field_data@TBoolean_field@@NFCPFDXZLZ÷' +++?parse_item@TBoolean_field@@NECEAEVTScanner@@@ZNZ +-+?enable@TBoolean_field@@NECXE@ZPZ +/+?set_back_color@TBoolean_field@@NFCXK@ZRZ +1+?on_hit@TBoolean_field@@NECEXZTZ^ +3+?on_key@TBoolean_field@@NECEI@ZY+`5+??0TBoolean_field@@REC@PEVTMask@@@Z +f:\p.due\INCLUDE\maskfld.hH +'+?set_field_data@TBoolean_field@@NECXPFD@ZZ+aF+TList_field F+c A(g H+?add_list@TList_field@@BECXXZlSø_valuesnRø_codespQø_strs[ +J+?class_id@TList_field@@NFCIXZv +L+?set_window_data@TList_field@@NECXPFD@Zx +N+?get_window_data@TList_field@@NFCPFDXZzsþ +P+?set_field_data@TList_field@@NECXPFD@Z| +R+?get_field_data@TList_field@@NFCPFDXZX +T+?create@TList_field@@NECXJ@Z‚ +V+?current@TList_field@@NECXH@Z„ +X+?current@TList_field@@NFCHXZ‡ Z+?str2curr@TList_field@@JECHPFD@Z‰Z +\+?on_hit@TList_field@@NECEXZ‹Z^ +^+?on_key@TList_field@@NECEI@Z÷' +`+?read_item@TList_field@@NECXAEVTScanner@@@ZZ +b+?set_back_color@TList_field@@NFCXK@Z’÷' +d+?parse_head@TList_field@@NECXAEVTScanner@@@Z”Z÷' +f+?parse_item@TList_field@@NECEAEVTScanner@@@Z™F+`h+??0TList_field@@REC@PEVTMask@@@Z›`k+?replace_items@TList_field@@VECXPFD0@Z`m+?add_item@TList_field@@VECXPFD@ZŸ`o+?delete_item@TList_field@@VECXPFD@Z¡`q+?items@TList_field@@RFCHXZ +f:\p.due\INCLUDE\maskfld.hz +P+?set_field_data@TList_field@@NECXPFD@Z¢F+©‚+TRadio_field ‚+« F+¯ +„+MAX_RADIO±Pø_nitems³Oø_active_itemµX„+Nø_radio_ctl_winº[ +†+?class_id@TRadio_field@@NFCIXZ¼X +ˆ+?create@TRadio_field@@NECXJ@Z¾ +Š+?destroy@TRadio_field@@NECXXZÀZ +Œ+?enable@TRadio_field@@NECXE@ZÂZ +Ž+?show@TRadio_field@@NECXE@ZÄZ ++?set_back_color@TRadio_field@@NFCXK@ZÇ +’+?current@TRadio_field@@NECXH@ZÉ +”+?current@TRadio_field@@NFCHXZËXÌ +–+?win@TRadio_field@@NFCJXZÑ‚+`˜+??0TRadio_field@@REC@PEVTMask@@@ZÔX`š+?check_radiobutton@TRadio_field@@RECXJ@ZÖZ`œ+?move_focus@TRadio_field@@RECEH@Z +f:\p.due\INCLUDE\maskfld.hÌ +–+?win@TRadio_field@@NFCJXZ –+NøOø ׂ+Þ¯+TButton_field ¯+á A(å^Mø_virtual_keyç^Lø_exit_keyì[ +±+?class_id@TButton_field@@NFCIXZîX +³+?create@TButton_field@@NECXJ@ZðZ +µ+?set_back_color@TButton_field@@NFCXK@Zó÷' +·+?parse_head@TButton_field@@NECXAEVTScanner@@@ZõZ÷' +¹+?parse_item@TButton_field@@NECEAEVTScanner@@@Z÷Z +»+?enable@TButton_field@@NECXE@ZùZ +½+?show@TButton_field@@NECXE@ZûZ^ +¿+?on_key@TButton_field@@NECEI@Zÿ¯+`Á+??0TButton_field@@REC@PEVTMask@@@Z^`Ã+?virtual_key@TButton_field@@RFCIXZ^`Å+?exit_key@TButton_field@@RFCIXZ +f:\p.due\INCLUDE\maskfld.h@Ã+?virtual_key@TButton_field@@RFCIXZ Ã+Mø @Å+?exit_key@TButton_field@@RFCIXZ Å+Lø ¯+Û+TGroup_field Û+ A(÷' +Ý+?parse_head@TGroup_field@@NECXAEVTScanner@@@ZX +ß+?create@TGroup_field@@NECXJ@Z +á+?set_window_data@TGroup_field@@NECXPFD@Z +ã+?set_field_data@TGroup_field@@NECXPFD@ZZ +å+?set_back_color@TGroup_field@@NFCXK@Z Û+`ç+??0TGroup_field@@REC@PEVTMask@@@Z (÷+TMemo_field ÷+* A(._Kø_te0Jø_data5[6ûù +ù+?class_id@TMemo_field@@NFCIXZ9 +û+?class_name@TMemo_field@@NFCPFDXZ;X +ý+?create@TMemo_field@@NECXJ@Z=÷' +ÿ+?parse_head@TMemo_field@@NECXAEVTScanner@@@Z@ +,?highlight@TMemo_field@@NFCXXZC +,?set_window_data@TMemo_field@@NECXPFD@ZE +,?get_window_data@TMemo_field@@NFCPFDXZGsþ +,?set_field_data@TMemo_field@@NECXPFD@ZI + ,?get_field_data@TMemo_field@@NFCPFDXZMZ + ,?enable@TMemo_field@@NECXE@ZOZ +,?show@TMemo_field@@NECXE@ZQZ^ +,?on_key@TMemo_field@@NECEI@ZV÷+`,??0TMemo_field@@REC@PEVTMask@@@ZX`,??1TMemo_field@@VEC@XZ +f:\p.due\INCLUDE\maskfld.h6 +ù+?class_id@TMemo_field@@NFCIXZ ù+ 9 +û+?class_name@TMemo_field@@NFCPFDXZ û+ G +,?set_field_data@TMemo_field@@NECXPFD@ZY÷+`),TZoom_field ),b ·)fIø_memoiXHø_buttonzoomo[púù ++,?class_id@TZoom_field@@NFCIXZs +-,?class_name@TZoom_field@@NFCPFDXZv +/,?set_window_data@TZoom_field@@NECXPFD@Zx +1,?get_window_data@TZoom_field@@NFCPFDXZz +3,?set_field_data@TZoom_field@@NECXPFD@Z| +5,?get_field_data@TZoom_field@@NFCPFDXZ~ 7,?set_first_line@TZoom_field@@JECXPFD@ZX +9,?create@TZoom_field@@NECXJ@Zƒ +;,?destroy@TZoom_field@@NECXXZ‰Záÿ`=,?show@TZoom_field@@VECXE@Z‹Záÿ`?,?enable@TZoom_field@@VECXE@Z`A,?get_first_line@TZoom_field@@RECPFDXZŽZ^`C,?on_key@TZoom_field@@VECEI@Z),`E,??0TZoom_field@@REC@PEVTMask@@@Z’`G,??1TZoom_field@@VEC@XZ +f:\p.due\INCLUDE\maskfld.hp ++,?class_id@TZoom_field@@NFCIXZ +, s +-,?class_name@TZoom_field@@NFCPFDXZ -, ‰`=,?show@TZoom_field@@VECXE@Z‹`?,?enable@TZoom_field@@VECXE@Z“), +  ^,TSheet_field^,ZO(^a,MASK_HANDLER b,TMaskmode b, +c,NO_MODE +d,MODE_INS +e,MODE_MOD +g,MODE_QUERY +h,MODE_QUERYINS %O(TMask O(& …%, +j,MAX_PAGES.Xj,MM‡‡‡‡Gø_pagewin0Xj,Fø_pagepag2Xj,Eø_pagetag5Dø_pages7Cø_page:¸Bø_enabled<Aø_mode>F@ø_fieldA?ø_first_focusC>ø_focusE=ø_next_fldH<ø_sheetsJ^,;ø_sheetMa,:ø_handlerPÒ9ø_source_fileRÒ8ø_workfileU7ø_lastposXE6ø_exchangeZZ5ø_should_check]4ø_total_time_3ø_build_timea2ø_init_timefXg +l,?win@TMask@@NFCJXZjX n,?find_field_win@TMask@@JFCHJ@Zm p,?set_mask_fields@TMask@@JFCXXZp r,?load_checks@TMask@@JFCXXZr +t,?start_run@TMask@@NECXXZtA(÷' +v,?parse_field@TMask@@NECPEVTMask_field@@AEVTScanner@@@Zw x,?init_mask@TMask@@JECXXZyX÷'Zàÿ {,?read_page@TMask@@JECJAEVTScanner@@E@Z{ ,?read_mask@TMask@@JECXPFDHH@Z~ ,?add_buttons@TMask@@JECXXZA( ƒ,?find_parent_page@TMask@@JFCHAFVTMask_field@@@ZƒX †,?find_first_field@TMask@@JFCHJH@Z… ‰,?find_active_field@TMask@@JFCHHH@Z‡Z ‹,?check_current_page@TMask@@JECEXZ‰ ,?next_page@TMask@@JECXH@ZŒ ,?curr_page@TMask@@JFCHXZZX7ýsþX ’,?test_focus_change@TMask@@JECEJ@Z‘~ ”,?control_handler@TMask@@JECXPEUs_event@@@Z“X~ +—,?handler@TMask@@NECXJPEUs_event@@@Z˜`›,??0TMask@@REC@PFDHH@Zš`¢,??0TMask@@REC@PFDHHHHH@Z`¤,??1TMask@@VEC@XZ Ò¡`¦,?source_file@TMask@@RFCAFVTFilename@@XZ¤X`­,?add_static@TMask@@RECJFHPFDHH0@Z¦X`¶,?add_string@TMask@@RECJFHPFDHHH0H@Z¨X`¿,?add_number@TMask@@RECJFHPFDHHH0H@ZªX`Æ,?add_date@TMask@@RECJFHPFDHH0@Z¬X`Ï,?add_button@TMask@@RECJFHPFDHHHH0@Z®X`Ö,?add_boolean@TMask@@RECJFHPFDHH0@Z°X`à,?add_radio@TMask@@RECJFHPFDHHH000@Z²X`é,?add_memo@TMask@@RECJFHPFDHHHH0@Z´X`ò,?add_zoom@TMask@@RECJFHPFDHHH0H@Z¶Xsþsþ`ü,?add_list@TMask@@RECJFHPFDHHH000@Zº`þ,?fields@TMask@@RFCHXZ½`-?sheets@TMask@@RFCHXZÁ`-?set_mode@TMask@@RECXH@ZÄ`-?mode@TMask@@RFCHXZÇZE`-?set_exchange@TMask@@RECXEAFVreal@@@ZÉEÊ` -?exchange@TMask@@RFCAFVreal@@XZÍZ` -?check_fields@TMask@@RECEXZÏ`-?get_mask_fields@TMask@@RECXXZÑZ^`-?stop_run@TMask@@VECEI@ZÓZ`-?can_be_closed@TMask@@VFCEXZÖ`-?open@TMask@@VECXXZØ`-?close@TMask@@VECXXZÚZáÿ`-?activate@TMask@@VECXE@ZÝ`-?id2pos@TMask@@RFCHF@Zà`-?next_fld@TMask@@RFCFXZâA(ã`-?fld@TMask@@RFCAEVTMask_field@@H@ZåA(`-?field@TMask@@RFCAEVTMask_field@@F@Zç·)`!-?efield@TMask@@RFCAEVTEdit_field@@F@ZêZàÿ`%-?set@TMask@@VECXFPFDE@ZìEZàÿ`)-?set@TMask@@RECXFAFVreal@@E@ZîöZàÿ`--?set@TMask@@RECXFAFVTDate@@E@ZðZàÿ`1-?set@TMask@@RECXFJE@Zò`3-?get@TMask@@VFCAFVTString@@F@Zô`5-?get_long@TMask@@RFCJF@Zø`7-?get_int@TMask@@RFCHF@ZúZ`9-?get_bool@TMask@@RFCEF@ZüE`;-?get_real@TMask@@RFC?EVreal@@F@Zþö`=-?get_date@TMask@@RFC?EVTDate@@F@Z`?-?first_focus@TMask@@RECHF@Z`A-?set_focus@TMask@@VECXXZ`C-?move_focus_field@TMask@@RECXH@ZXZ`F-?set_focus_win@TMask@@RECXJE@Z A( +`H-?focus_field@TMask@@RFCAEVTMask_field@@XZàÿ`J-?disable_starting_check@TMask@@RECXXZZ^`L-?on_key@TMask@@VECEI@Z`N-?on_idle@TMask@@VECXXZ`P-?on_firm_change@TMask@@VECXXZZáÿ`S-?enable@TMask@@VECXFE@Zàÿ`U-?disable@TMask@@RECXF@Z`W-?enable_default@TMask@@RECXF@Z `Y-?show_page@TMask@@RECXH@Z"]Záÿ`\-?enable_page@TMask@@RECXEE@Z$]%àÿ`^-?disable_page@TMask@@RECXE@Z'Z]``-?page_enabled@TMask@@RFCEE@Z*]`b-?num_keys@TMask@@RFCEXZ,]Záÿ`e-?enable_key@TMask@@RECXEE@Z.]/àÿ`g-?disable_key@TMask@@RECXE@Z1]Z`j-?get_key_field@TMask@@RFCFEE@Z4Z`l-?key_valid@TMask@@RFCEH@Z7Záÿ`o-?show@TMask@@VECXFE@Z:àÿ`q-?hide@TMask@@RECXF@Z<`s-?show_default@TMask@@RECXF@Z?`u-?reset@TMask@@RECXF@ZA`w-?undo@TMask@@RECXF@ZD´ `y-?autoload@TMask@@RECXPFVTRelation@@@ZF´ `{-?autosave@TMask@@RFCXPEVTRelation@@@ZI^A(sþ`-?send_key@TMask@@RECXIFPEVTMask_field@@@ZKE(`‚-?set_handler@TMask@@VECXFP7AEAEVTMask_field@@I@Z@ZMa,`„-?set_handler@TMask@@RECXP7AEAEV1@I@Z@ZP`†-?set_workfile@TMask@@RECXPFD@ZRZZàÿ`ˆ-?save@TMask@@RFCEE@ZTZZàÿ`Š-?load@TMask@@RECEE@ZW`Œ-?dirty@TMask@@RFCFXZZ^,[`Ž-?set_sheet@TMask@@RECXPEVTSheet_field@@@Z^^,_`-?get_sheet@TMask@@RECPEVTSheet_field@@XZbZcsþ`’-?is_sheetmask@TMask@@RFCEXZfZg`”-?no_mode@TMask@@RFCEXZiZj`–-?query_mode@TMask@@RFCEXZlZm`˜-?edit_mode@TMask@@RFCEXZoZp`š-?insert_mode@TMask@@RFCEXZs`œ-?get_caption@TMask@@VFCPFDXZu`ž-?set_caption@TMask@@VECXPFD@ZxZA(` -?on_dirty@TMask@@VECEAEVTMask_field@@@Z{X|`¢-?toolwin@TMask@@RFCJXZ +f:\p.due\INCLUDE\mask.hg +l,?win@TMask@@NFCJXZ l,CøGøGøCø y {,?read_page@TMask@@JECJAEVTScanner@@E@ZŒ,?curr_page@TMask@@JFCHXZ ,Cø  ’,?test_focus_change@TMask@@JECEJ@Z˜`›,??0TMask@@REC@PFDHH@Zš`¢,??0TMask@@REC@PFDHHHHH@Z¡@¦,?source_file@TMask@@RFCAFVTFilename@@XZ ¦,9ø ¤`­,?add_static@TMask@@RECJFHPFDHH0@Z¦`¶,?add_string@TMask@@RECJFHPFDHHH0H@Z¨`¿,?add_number@TMask@@RECJFHPFDHHH0H@Zª`Æ,?add_date@TMask@@RECJFHPFDHH0@Z¬`Ï,?add_button@TMask@@RECJFHPFDHHHH0@Z®`Ö,?add_boolean@TMask@@RECJFHPFDHH0@Z°`à,?add_radio@TMask@@RECJFHPFDHHH000@Z²`é,?add_memo@TMask@@RECJFHPFDHHHH0@Z´`ò,?add_zoom@TMask@@RECJFHPFDHHH0H@Z¶`ü,?add_list@TMask@@RECJFHPFDHHH000@Zº@þ,?fields@TMask@@RFCHXZ þ,@ø^ ½@-?sheets@TMask@@RFCHXZ -<ø Á@-?set_mode@TMask@@RECXH@Z -.mAø. Ä@-?mode@TMask@@RFCHXZ -Aø Ê@ -?exchange@TMask@@RFCAFVreal@@XZ -6ø Ú`-?activate@TMask@@VECXE@Zà@-?next_fld@TMask@@RFCFXZ -=ø ã@-?fld@TMask@@RFCAEVTMask_field@@H@Z -$.iA(@ø$. ê`%-?set@TMask@@VECXFPFDE@Zì`)-?set@TMask@@RECXFAFVreal@@E@Zî`--?set@TMask@@RECXFAFVTDate@@E@Zð`1-?set@TMask@@RECXFJE@Zø@7-?get_int@TMask@@RFCHF@Z 7-4.fld_id4.5-  +@H-?focus_field@TMask@@RFCAEVTMask_field@@XZ H->ø- @J-?disable_starting_check@TMask@@RECXXZ J-5ø `S-?enable@TMask@@VECXFE@Z@U-?disable@TMask@@RECXF@Z U-@.fld_id@.S- `W-?enable_default@TMask@@RECXF@Z"`\-?enable_page@TMask@@RECXEE@Z%@^-?disable_page@TMask@@RECXE@Z ^-F.pF.\- ,`e-?enable_key@TMask@@RECXEE@Z/@g-?disable_key@TMask@@RECXE@Z g-K.keyK.e- 7`o-?show@TMask@@VECXFE@Z:@q-?hide@TMask@@RECXF@Z q-P.fld_idP.o- <`s-?show_default@TMask@@RECXF@Z?`u-?reset@TMask@@RECXF@ZA`w-?undo@TMask@@RECXF@ZI`-?send_key@TMask@@RECXIFPEVTMask_field@@@ZP@†-?set_workfile@TMask@@RECXPFD@Z †-Y.workfile8øY.Ô7ø R`ˆ-?save@TMask@@RFCEE@ZT`Š-?load@TMask@@RECEE@Z[@Ž-?set_sheet@TMask@@RECXPEVTSheet_field@@@Z Ž-^.s;ø^. _@-?get_sheet@TMask@@RECPEVTSheet_field@@XZ -;ø c@’-?is_sheetmask@TMask@@RFCEXZ ’-;ø g@”-?no_mode@TMask@@RFCEXZ ”-Aøc,MM‡‡‡‡ j@–-?query_mode@TMask@@RFCEXZ –-Aøg,MM‡‡‡‡Aøh,MM‡‡‡‡ m@˜-?edit_mode@TMask@@RFCEXZ ˜-Aøe,MM‡‡‡‡ p@š-?insert_mode@TMask@@RFCEXZ š-Aøh,MM‡‡‡‡Aød,MM‡‡‡‡ |@¢-?toolwin@TMask@@RFCJXZ ¢-Gøj, O( +f:\p.due\INCLUDE\form.h  v.TPrinterv. + w.TPrintroww." x.pagetype x.# +y.odd_page$ +z.even_page& + }.bkg_mode }.. 0x.2 ƒ.TFormƒ.3A(4^,5 „.TForm_item„.6 ….TPrint_section….8†.MAXCOLUMNS?ƒ.TForm ƒ.C {E ‡.TForm_editor‡.‡.G ˆ.TForm_EC_editorˆ.ˆ.I….….N}.0ø_background_modeQ/ø_nameS.ø_codeU-ø_fontnameW,ø_fontsizeY+ø_section_mask[*ø_x])ø_y_(ø_char_to_posa'ø_ipxc&ø_ipye%ø_fpxgZ$ø_dirtyj´ #ø_relationl· "ø_cursorn¶ !ø_rel_descqF ø_headsFø_bodyuFø_footwFø_backzZø_lastpage}Zø_isnewZø_isbaseZø_arrangeƒø_editlevel…ø_desc‡ø_finkŠv."Š.?header_handler@TForm@@DAXAEVTPrinter@@@ZŒv."Œ.?footer_handler@TForm@@DAXAEVTPrinter@@@Z Ž.?get_fincatura@TForm@@BECPFDXZ’ .?set_fincatura@TForm@@BECXPFD@Z˜Z…. “.?ps_change_date_format@TForm@@JECEAEVTPrint_section@@PFD@ZšZ…. ˜.?ps_change_number_format@TForm@@JECEAEVTPrint_section@@HHPFD@Zœ….x.Zàÿ œ.?exist@TForm@@JECPEVTPrint_section@@DW4pagetype@@E@Zž ž.?init@TForm@@JECXXZ  £.?read@TForm@@JECXPFD0H0@Z£….x. ¦.?section@TForm@@JECAEVTPrint_section@@DW4pagetype@@@Z¦….[ ©.?section@TForm@@JECAEVTPrint_section@@DI@Z©[[ «.?height@TForm@@JECII@Z¬Œ ®.?print_section@TForm@@JFCXAEVostream@@D@Z®Œ +°.?print_on@TForm@@NFCXAEVostream@@@Z±Z÷' ².?parse_use@TForm@@JECEAEVTScanner@@@Z³Z÷' ´.?parse_join@TForm@@JECEAEVTScanner@@@Z¶Z÷' ¶.?parse_description@TForm@@JECEAEVTScanner@@@Z¸Œ ¸.?print_description@TForm@@JFCXAEVostream@@@Z»Z÷' º.?parse_general@TForm@@JECEAEVTScanner@@@Z½Œ ¼.?print_general@TForm@@JFCXAEVostream@@@Z¿÷'À +¾.?extended_parse_general@TForm@@NECXAEVTScanner@@@ZÄO(….Å +Á.?pre_edit_checks@TForm@@NECXAEVTMask@@PEVTPrint_section@@@ZÈZO(….Éàÿ +Ä.?post_edit_checks@TForm@@NECEAEVTMask@@PEVTPrint_section@@@ZÌZ Æ.?read_profile@TForm@@JECEXZÎZ È.?write_profile@TForm@@JECEXZÒ Ê.?set_compulsory_specials@TForm@@JECXXZÔ Ì.?get_compulsory_specials@TForm@@JECXXZ×[v. Î.?page@TForm@@JFCIAFVTPrinter@@@ZÙ Ð.?arrange_form@TForm@@JECXXZÜ +Ò.?records@TForm@@NFCJXZÞ[[Z +Õ.?set_background@TForm@@NECIIE@Zà[[Z +Ø.?set_header@TForm@@NECIIE@Zâ[[Z +Û.?set_body@TForm@@NECIIE@Zä[[Z +Þ.?set_footer@TForm@@NECIIE@ZêZx.`ã.?genera_fincatura@TForm@@RECEW4pagetype@@HHPFH@ZíZx.`æ.?genera_intestazioni@TForm@@RECEW4pagetype@@F@ZðZ`é.?print@TForm@@RECEJJ@ZóFô`ë.?body@TForm@@RECAEVTArray@@XZöF÷`í.?head@TForm@@RECAEVTArray@@XZùFú`ï.?foot@TForm@@RECAEVTArray@@XZüF`ñ.?back@TForm@@RECAEVTArray@@XZÿ`ó.?name@TForm@@RFCAFVTString@@XZ`õ.?code@TForm@@RFCAFVTString@@XZ`÷.?section_mask@TForm@@VECPFDXZ Z +`ù.?edit_level@TForm@@RFCEXZ`û.?set_edit_level@TForm@@RECXH@Z`ý.?set_description@TForm@@RECXPFD@Z´ `ÿ.?relation@TForm@@VFCPEVTRelation@@XZ· `/?cursor@TForm@@VFCPEVTCursor@@XZ¶ `/?rel_desc@TForm@@RFCAEVTRelation_description@@XZZ„.`/?validate@TForm@@VECEAEVTForm_item@@AEVTToken_string@@@Z„.x.` +/?find_field@TForm@@RFCAEVTForm_item@@DW4pagetype@@F@Z!` /?offset_x@TForm@@RECAEHXZ$`/?offset_y@TForm@@RECAEHXZ&'`/?fontname@TForm@@RECAEVTString@@XZ*`/?fontsize@TForm@@RECAEHXZ-`/?char_to_pos@TForm@@RECAEDXZ0`/?ipx@TForm@@RECAEHXZ3`/?ipy@TForm@@RECAEHXZ6`/?fpx@TForm@@RECAEHXZ8Z9`/?dirty@TForm@@RFCEXZ;Záÿ<`/?set_dirty@TForm@@RECXE@Z>Záÿ?` /?set_arrange@TForm@@RECXE@ZB`"/?change_date_format@TForm@@RECXPFD@ZD`&/?change_number_format@TForm@@VECXHHPFD@ZFZx.Zàÿ`*/?reread@TForm@@RECEDW4pagetype@@E@ZH‡.`,/?editor@TForm@@RFCAEVTForm_editor@@XZKZL`./?set_last_page@TForm@@RECXE@ZP}.`0/?set_mode@TForm@@RECXW4bkg_mode@@@ZR}.S`2/?mode@TForm@@REC?EW4bkg_mode@@XZV`4/??0TForm@@REC@XZY`9/??0TForm@@REC@PFD0H0@Z[`;/??1TForm@@VEC@XZ +f:\p.due\INCLUDE\form.hŽ.?get_fincatura@TForm@@BECPFDXZ Ž.ø œ œ.?exist@TForm@@JECPEVTPrint_section@@DW4pagetype@@E@Z  £.?read@TForm@@JECXPFD0H0@Z¦ ©.?section@TForm@@JECAEVTPrint_section@@DI@Z© «.?height@TForm@@JECII@ZÀ +¾.?extended_parse_general@TForm@@NECXAEVTScanner@@@Z ¾. Å +Á.?pre_edit_checks@TForm@@NECXAEVTMask@@PEVTPrint_section@@@Z Á. É +Ä.?post_edit_checks@TForm@@NECEAEVTMask@@PEVTPrint_section@@@Z Ä. ð`é.?print@TForm@@RECEJJ@Zô@ë.?body@TForm@@RECAEVTArray@@XZ ë.ø ÷@í.?head@TForm@@RECAEVTArray@@XZ í. ø ú@ï.?foot@TForm@@RECAEVTArray@@XZ ï.ø ü@ñ.?back@TForm@@RECAEVTArray@@XZ ñ.ø @ó.?name@TForm@@RFCAFVTString@@XZ ó./ø @õ.?code@TForm@@RFCAFVTString@@XZ õ..ø @÷.?section_mask@TForm@@VECPFDXZ ÷.  +@ù.?edit_level@TForm@@RFCEXZ ù.ø @û.?set_edit_level@TForm@@RECXH@Z û.|/nø|/ @ý.?set_description@TForm@@RECXPFD@Z ý./sø/ @ÿ.?relation@TForm@@VFCPEVTRelation@@XZ ÿ.#ø @/?cursor@TForm@@VFCPEVTCursor@@XZ /"ø !@ /?offset_x@TForm@@RECAEHXZ /*ø $@/?offset_y@TForm@@RECAEHXZ /)ø '@/?fontname@TForm@@RECAEVTString@@XZ /-ø *@/?fontsize@TForm@@RECAEHXZ /,ø -@/?char_to_pos@TForm@@RECAEDXZ /(ø 0@/?ipx@TForm@@RECAEHXZ /'ø 3@/?ipy@TForm@@RECAEHXZ /&ø 6@/?fpx@TForm@@RECAEHXZ /%ø 9@/?dirty@TForm@@RFCEXZ /$ø <@/?set_dirty@TForm@@RECXE@Z /£/d$ø£/ ?@ /?set_arrange@TForm@@RECXE@Z /¦/arngø¦/ F`*/?reread@TForm@@RECEDW4pagetype@@E@ZL@./?set_last_page@TForm@@RECXE@Z ./¬/lpø¬/ S@2/?mode@TForm@@REC?EW4bkg_mode@@XZ 2/0ø Y`9/??0TForm@@REC@PFD0H0@Z\ƒ.d¶/TForm_flags ¶/h {mZ@øautomagicoZ@øenabledqZ@øshownsZ@ødirtyuZ@øfinklwZ@øfinkryZ@ømemo~Œ +¸/?print_on@TForm_flags@@NFCXAEVostream@@@Zƒ`º/??0TForm_flags@@REC@XZ†Z‡`¼/?set_shown@TForm_flags@@RECXE@Z‰ZŠ`¾/?set_finkl@TForm_flags@@RECXE@ZŒZ`À/?set_finkr@TForm_flags@@RECXE@ZZ`Â/?set_memo@TForm_flags@@RECXE@Z’O(`Ä/?print_on@TForm_flags@@RECXAEVTMask@@@Z”O(`Æ/?read_from@TForm_flags@@RECXAFVTMask@@@Z—Z`È/?update@TForm_flags@@RECEPFD@Z +f:\p.due\INCLUDE\form.h‡@¼/?set_shown@TForm_flags@@RECXE@Z ¼/Ø/bøØ/ Š@¾/?set_finkl@TForm_flags@@RECXE@Z ¾/Û/bøÛ/ @À/?set_finkr@TForm_flags@@RECXE@Z À/Þ/bøÞ/ @Â/?set_memo@TForm_flags@@RECXE@Z Â/á/bøá/ ˜¶/Ÿ….TPrint_section ….¤ F¦O(ä/?_msk@TPrint_section@@0PEVTMask@@E©[ø_height«[ø_ofspc­[ ø_ofsvr¯[ ø_nfld±Z +ø_dirty³Z ø_columnwiseµZø_temp¸ƒ.ø_form»ø_sec_type½x.ø_page_type¿Zø_subsectionÂFø_itemÄø_repeat_countdž.ø_tabÊ….…. æ/?copy@TPrint_section@@BECAFV1@AFV1@@ZÏŒ +è/?print_on@TPrint_section@@NFCXAEVostream@@@ZÑ„. +ê/?parse_item@TPrint_section@@NECPEVTForm_item@@AFVTString@@@ZÓ„.÷' ì/?parse_item@TPrint_section@@JECPEVTForm_item@@AEVTScanner@@@ZÖZA(^"ï/?detail_field_handler@TPrint_section@@LAEAEVTMask_field@@I@ZØZA(^"ò/?special_field_handler@TPrint_section@@LAEAEVTMask_field@@I@ZÚZ^,^"ö/?detail_field_notify@TPrint_section@@LAEAEVTSheet_field@@HI@Zßw.`ø/?row@TPrint_section@@RECAEVTPrintrow@@H@Záƒ.â`ú/?form@TPrint_section@@RFCAEVTForm@@XZåFæ`ü/?field_array@TPrint_section@@RECAEVTArray@@XZè„.é`þ/?field@TPrint_section@@RFCAEVTForm_item@@H@Zë„.`0?find_field@TPrint_section@@RFCAEVTForm_item@@F@ZíZáÿî`0?destroy_field@TPrint_section@@RECXHE@Zñ`0?destroy_fields@TPrint_section@@RECXXZó„.`0?change_field@TPrint_section@@RECXHPEVTForm_item@@@Zõ„.` 0?insert_field@TPrint_section@@RECXHPEVTForm_item@@@Z÷„.`0?add_field@TPrint_section@@RECXPEVTForm_item@@@ZúZû`0?temp@TPrint_section@@VECAEEXZýZþ`0?temp@TPrint_section@@VFCEXZ[`0?fields@TPrint_section@@RFCIXZ[`0?columns@TPrint_section@@RECIXZ[`0?height@TPrint_section@@RFCIXZ +[ `0?ofspc@TPrint_section@@RFCIXZ[`0?ofsvr@TPrint_section@@RFCIXZ`0?offset@TPrint_section@@RECXAEH0@Z` 0?set_repeat_count@TPrint_section@@RECXH@ZZ`"0?ok@TPrint_section@@VFCEXZ`$0?reset@TPrint_section@@RECXXZZ`&0?update@TPrint_section@@VECEXZZ÷'`(0?parse@TPrint_section@@RECEAEVTScanner@@@Z!Z`*0?read_from@TPrint_section@@RECEAFVTRectype@@@Z#`,0?print_on@TPrint_section@@RECXAEVTRectype@@@Z&Z`.0?edit@TPrint_section@@RECEPFD@Z)`00?section_type@TPrint_section@@RFCDXZ+x.,`20?page_type@TPrint_section@@RFC?EW4pagetype@@XZ/Z0`40?dirty@TPrint_section@@RFCEXZ2Záÿ3`60?set_dirty@TPrint_section@@RECXE@Z5Z6`80?columnwise@TPrint_section@@RFCEXZ8`:0?tab@TPrint_section@@RECHH@Z:`<0?reset_tabs@TPrint_section@@RECXXZ=….….>`>0??4TPrint_section@@RECAFV0@AFV0@@Z@….ƒ.x.Z`C0??0TPrint_section@@REC@PEVTForm@@DW4pagetype@@E@ZB….C`E0??0TPrint_section@@REC@AFV0@@ZE`G0??1TPrint_section@@VEC@XZ +f:\p.due\INCLUDE\form.hâ@ú/?form@TPrint_section@@RFCAEVTForm@@XZ ú/ø æ@ü/?field_array@TPrint_section@@RECAEVTArray@@XZ ü/ø é@þ/?field@TPrint_section@@RFCAEVTForm_item@@H@Z þ/W0n„.øW0 î@0?destroy_field@TPrint_section@@RECXHE@Z 0[0n\0cø[0\0w ñ@0?destroy_fields@TPrint_section@@RECXXZ 0øw û@0?temp@TPrint_section@@VECAEEXZ 0ø þ@0?temp@TPrint_section@@VFCEXZ 0ø @0?fields@TPrint_section@@RFCIXZ 0ø^ @0?columns@TPrint_section@@RECIXZ 0:0 ø @0?height@TPrint_section@@RFCIXZ 0ø  @0?ofspc@TPrint_section@@RFCIXZ 0ø @0?ofsvr@TPrint_section@@RFCIXZ 0 ø @ 0?set_repeat_count@TPrint_section@@RECXH@Z 0w0xøw0 @"0?ok@TPrint_section@@VFCEXZ "000 )@00?section_type@TPrint_section@@RFCDXZ 00ø ,@20?page_type@TPrint_section@@RFC?EW4pagetype@@XZ 20ø 0@40?dirty@TPrint_section@@RFCEXZ 40 +ø 3@60?set_dirty@TPrint_section@@RECXE@Z 60†0d +ø†0 6@80?columnwise@TPrint_section@@RFCEXZ 80 ø >@>0??4TPrint_section@@RECAFV0@AFV0@@Z >0Œ0psŒ0æ/ @`C0??0TPrint_section@@REC@PEVTForm@@DW4pagetype@@E@ZC@E0??0TPrint_section@@REC@AFV0@@Z E0“0psLL“0æ/ F….N„.TForm_item „.S {U….….Z¶/ø_flag\¸ÿ÷_group^”þ÷_special`Zý÷_tempe….ü÷_sectiongû÷_idiú÷_xkù÷_ymø÷_widtho÷÷_heightqö÷_effective_heighttõ÷_ofsvô÷_promptxó÷_desczò÷_col_head|Œñ÷_messageŒ +—0?print_on@TForm_item@@NFCXAEVostream@@@ZŒ +™0?print_body@TForm_item@@NFCXAEVostream@@@Z„Z÷' +›0?parse_head@TForm_item@@NECEAEVTScanner@@@Z†Z÷' +0?parse_item@TForm_item@@NECEAEVTScanner@@@Z‰ Ÿ0?message@TForm_item@@JECAEVTToken_string@@H@Z‹„. ¢0?send_message@TForm_item@@JFCXAFVTString@@AEV1@@ZZ ¤0?do_message@TForm_item@@JECEH@Z ¨0?string_at@TForm_item@@JECXHHPFD@Z” «0?get_special_item@TForm_item@@JFCPFDPFDH@Zš„. +­0?make_new_item@TForm_item@@NFCPEV1@XZ¡„. ¯0?copy_to_form_item@TForm_item@@JFCPEV1@XZ¦{`±0?dup@TForm_item@@VFCPEVTObject@@XZ©`³0?id@TForm_item@@RFCFXZ¬`µ0?id@TForm_item@@VECAEFXZ¯`·0?width@TForm_item@@VFCHXZ²`¹0?width@TForm_item@@VECAEFXZµ`»0?height@TForm_item@@VFCHXZ¸`½0?height@TForm_item@@VECAEFXZ»`¿0?ofs@TForm_item@@VECAEFXZ¾`Á0?effective_height@TForm_item@@VFCHXZÁZÂ`Ã0?temp@TForm_item@@VECAEEXZÄZÅ`Å0?temp@TForm_item@@VFCEXZÇZÈ`Ç0?has_memo@TForm_item@@RFCEXZÎ`É0?set_x@TForm_item@@VECXF@ZÐ`Ë0?x@TForm_item@@VECFXZÓ`Í0?y@TForm_item@@VECAEFXZÖ`Ï0?y@TForm_item@@VFCFXZÙñùþÿÿÿ`Ñ0?get_column@TForm_item@@VECFXZÜñùþÿÿÿ`Ó0?set_column@TForm_item@@VECXF@Zß`Õ0?fields@TForm_item@@VEC?BHXZâZã`×0?shown@TForm_item@@RFCEXZåZæ`Ù0?hidden@TForm_item@@RFCEXZèZé`Û0?enabled@TForm_item@@RFCEXZëZì`Ý0?disabled@TForm_item@@RFCEXZîZï`ß0?automagic@TForm_item@@RFCEXZñZò`á0?finkl@TForm_item@@RFCEXZôZõ`ã0?finkr@TForm_item@@RFCEXZ÷Zø`å0?memo@TForm_item@@RFCEXZûZ÷'`ç0?parse@TForm_item@@VECEAEVTScanner@@@ZýZ`é0?update@TForm_item@@VECEXZO(`ë0?print_on@TForm_item@@VECXAEVTMask@@@Z`í0?print_on@TForm_item@@VECXAEVTRectype@@@Z`ï0?print_on_sheet_row@TForm_item@@VFCXAEVTToken_string@@@ZO(`ñ0?read_from@TForm_item@@VECXAFVTMask@@@Z Z`ó0?read_from@TForm_item@@VECEAFVTRectype@@@Z `õ0?read_from@TForm_item@@VECXAEVTToken_string@@@ZZO(`÷0?edit@TForm_item@@VECEAEVTMask@@@Z`ù0?get@TForm_item@@VFCPFDXZZáÿ`û0?set@TForm_item@@VECEPFD@Z`ý0?example@TForm_item@@VFCPFDXZñùþÿÿÿ`ÿ0?col_head@TForm_item@@RFCAFVTString@@XZ"ñùþÿÿÿ`1?set_col_head@TForm_item@@RECXPFD@Z%&`1?prompt@TForm_item@@RFCAFVTString@@XZ)`1?set_prompt@TForm_item@@RECXPFD@Z,`1?memo_info@TForm_item@@VECAEVTToken_string@@XZ.` 1?picture@TForm_item@@VFCAFVTString@@XZ0` 1?set_picture@TForm_item@@VECXPFD@Z3….4`1?section@TForm_item@@RFCAEVTPrint_section@@XZ6ƒ.7`1?form@TForm_item@@RFCAEVTForm@@XZ9„.`1?find_field@TForm_item@@RFCAEV1@AFVTString@@@Z<Záÿ=`1?set_finkl@TForm_item@@RECXE@Z?Záÿ@`1?set_finkr@TForm_item@@RECXE@ZBZáÿC`1?set_dirty@TForm_item@@RECXE@ZEZF`1?dirty@TForm_item@@RFCEXZIZ]J`1?in_group@TForm_item@@RFCEE@ZLM`1?key@TForm_item@@RFCAFVTString@@XZO`1?print_on@TForm_item@@VFCXAEVTToken_string@@@ZRZáÿS`!1?show@TForm_item@@VECXE@ZVàÿ`#1?hide@TForm_item@@RECXXZXZáÿ`%1?enable@TForm_item@@VECXE@Z[àÿ`'1?disable@TForm_item@@RECXXZ_`)1?special_items@TForm_item@@RFCHXZa”b`+1?specials@TForm_item@@RFCAEVTAssoc_array@@XZeŒ`-1?get_special_names@TForm_item@@RECHAEVTString_array@@@Zi`/1?get_special_value@TForm_item@@RFCPFDPFD@Zj`21?set_special_value@TForm_item@@RECXPFD0@Zn`41?get_special_type@TForm_item@@RFCPFDPFD@Zr`61?get_special_desc@TForm_item@@RFCPFDPFD@Zu„.`81??0TForm_item@@REC@PEVTPrint_section@@@Zx`:1??1TForm_item@@VEC@XZ +f:\p.due\INCLUDE\form.h‰ Ÿ0?message@TForm_item@@JECAEVTToken_string@@H@Z ¤0?do_message@TForm_item@@JECEH@Z©@³0?id@TForm_item@@RFCFXZ ³0û÷ ¬@µ0?id@TForm_item@@VECAEFXZ µ0û÷ ¯@·0?width@TForm_item@@VFCHXZ ·0ø÷ ²@¹0?width@TForm_item@@VECAEFXZ ¹0ø÷ µ@»0?height@TForm_item@@VFCHXZ »0÷÷ ¸@½0?height@TForm_item@@VECAEFXZ ½0÷÷ »@¿0?ofs@TForm_item@@VECAEFXZ ¿0õ÷ ¾@Á0?effective_height@TForm_item@@VFCHXZ Á0ö÷ Â@Ã0?temp@TForm_item@@VECAEEXZ Ã0ý÷ Å@Å0?temp@TForm_item@@VFCEXZ Å0ý÷ È@Ç0?has_memo@TForm_item@@RFCEXZ Ç0øø Î@É0?set_x@TForm_item@@VECXF@Z É0k1xú÷k1 Ó@Í0?y@TForm_item@@VECAEFXZ Í0ù÷ Ö@Ï0?y@TForm_item@@VFCFXZ Ï0ù÷ Ù@Ñ0?get_column@TForm_item@@VECFXZ Ñ0ü÷80rú÷ Ü@Ó0?set_column@TForm_item@@VECXF@Z Ó0{1cü÷80rú÷{1 ß@Õ0?fields@TForm_item@@VEC?BHXZ Õ0 ã@×0?shown@TForm_item@@RFCEXZ ×0øø æ@Ù0?hidden@TForm_item@@RFCEXZ Ù0øø é@Û0?enabled@TForm_item@@RFCEXZ Û0øø ì@Ý0?disabled@TForm_item@@RFCEXZ Ý0øø ï@ß0?automagic@TForm_item@@RFCEXZ ß0øø ò@á0?finkl@TForm_item@@RFCEXZ á0øø õ@ã0?finkr@TForm_item@@RFCEXZ ã0øø ø@å0?memo@TForm_item@@RFCEXZ å0øø @ù0?get@TForm_item@@VFCPFDXZ ù0ô÷ @û0?set@TForm_item@@VECEPFD@Z û0ž1sô÷ž1 @ý0?example@TForm_item@@VFCPFDXZ ý0 @ÿ0?col_head@TForm_item@@RFCAFVTString@@XZ ÿ0ü÷80rò÷ "@1?set_col_head@TForm_item@@RECXPFD@Z 1©1sü÷80rò÷©1 &@1?prompt@TForm_item@@RFCAFVTString@@XZ 1ô÷ )@1?set_prompt@TForm_item@@RECXPFD@Z 1±1sô÷±1 4@1?section@TForm_item@@RFCAEVTPrint_section@@XZ 1ü÷ 7@1?form@TForm_item@@RFCAEVTForm@@XZ 1ü÷ú/ =@1?set_finkl@TForm_item@@RECXE@Z 1º1døøº1 @@1?set_finkr@TForm_item@@RECXE@Z 1½1døø½1 C@1?set_dirty@TForm_item@@RECXE@Z 1À1døøÀ1 F@1?dirty@TForm_item@@RFCEXZ 1øø J@1?in_group@TForm_item@@RFCEE@Z 1Æ1gÆ1ÿ÷Æ1 M@1?key@TForm_item@@RFCAFVTString@@XZ 1ó÷ S@!1?show@TForm_item@@VECXE@Z !1Ì1onøøÌ1 V@#1?hide@TForm_item@@RECXXZ #1!1 X`%1?enable@TForm_item@@VECXE@Z[@'1?disable@TForm_item@@RECXXZ '1%1 _@)1?special_items@TForm_item@@RFCHXZ )1þ÷À b@+1?specials@TForm_item@@RFCAEVTAssoc_array@@XZ +1”þ÷ i@/1?get_special_value@TForm_item@@RFCPFDPFD@Z /1Ý1sÝ1«0 n@41?get_special_type@TForm_item@@RFCPFDPFD@Z 41à1sà1«0 r@61?get_special_desc@TForm_item@@RFCPFDPFD@Z 61ã1sã1«0 x@:1??1TForm_item@@VEC@XZ :1}øÿ÷Êþ÷ëô÷ó÷ò÷ñ÷¤ y„. +f:\p.due\INCLUDE\printer.hC:\VC\INCLUDE\stdio.h +f:\p.due\INCLUDE\text.hC:\VC\INCLUDE\stdio.h + é1direction é1 ! í1style í1"sý#rý$qý%ný&oý -TTextfile 1 {3 +ô1DEFAULT_PAGESIZE6Fî÷_page8¸í÷_dirty_lines:ì÷_page_start<ë÷_page_end>ê÷_page_size@é÷_linesBè÷_cur_lineDÒç÷_filenameFÒæ÷_indnameH^å÷_indexJ^ä÷_instrLé1ã÷_directionOâ÷_itemQá÷_lineSà÷_stylesUZß÷_tabbed_pieceXFÞ÷_hotspotsZFÝ÷_spots\ZÜ÷_dirty^ZÛ÷_isopen`ZÚ÷_istempbZÙ÷_acceptdZØ÷_interactiveg´ ×÷_relj ö1?_read_page@TTextfile@@BECXJ@ZlZm ø1?_in_page@TTextfile@@BECEJ@Zo ú1?_save_changes@TTextfile@@BECXXZtí1 ü1?_trans_style@TTextfile@@BEC?EW4style@@D@Zz`þ1?lines@TTextfile@@RECJXZ|Z}`2?changed@TTextfile@@RECEXZ`2?line@TTextfile@@RECPFDJJH@Z„`2?line_formatted@TTextfile@@RECPFDJ@Z‡Z`2?append@TTextfile@@RECEPFD@Z‹` +2?close@TTextfile@@RECXXZ` 2?print@TTextfile@@RECXXZàÿ`2?freeze@TTextfile@@RECXXZ’Z“`2?frozen@TTextfile@@RECEXZ–Záÿ`2?read_line@TTextfile@@RECXJJE@Z˜`2?piece@TTextfile@@RECPFDXZš`2?get_style@TTextfile@@RECHH@Zœ`2?get_background@TTextfile@@RECDH@Zž`2?get_foreground@TTextfile@@RECDH@Z `2?get_attribute@TTextfile@@RECJH@Z£`!2?word_at@TTextfile@@RECPFDJJ@Z§ % %¨`$2?section@TTextfile@@RECPEV1@AEUTPoint@@0@Z«`&2?name@TTextfile@@RECPFDXZ­Záÿ®`(2?interactive@TTextfile@@RECXE@Z±Z %sþ %sþ`,2?write@TTextfile@@RECEPFDPEUTPoint@@1@Z³`.2?destroy@TTextfile@@RECXXZ¶ZáÿZàÿ`42?search@TTextfile@@RECJPFDAEHJEE@Z¸`92?replace@TTextfile@@RECHJPFDHH@Z»`<2?set_hotspots@TTextfile@@RECXDD@Z½F¾`>2?hotspots@TTextfile@@RECAEVTArray@@XZô Ä`@2?set_relation@TTextfile@@RECXPEVTRelation@@@ZÇsþé1Z`E2??0TTextfile@@REC@PFDHW4direction@@E@ZÉ`G2??1TTextfile@@VEC@XZ +f:\p.due\INCLUDE\text.hmø1?_in_page@TTextfile@@BECEJ@Z ø1W2lW2ì÷W2ë÷ z@þ1?lines@TTextfile@@RECJXZ þ1é÷ }@2?changed@TTextfile@@RECEXZ 2Ü÷ `2?line@TTextfile@@RECPFDJJH@Z@2?freeze@TTextfile@@RECXXZ 2Ù÷ “@2?frozen@TTextfile@@RECEXZ 2Ù÷ –`2?read_line@TTextfile@@RECXJJE@Zš`2?get_style@TTextfile@@RECHH@Zœ`2?get_background@TTextfile@@RECDH@Zž`2?get_foreground@TTextfile@@RECDH@Z `2?get_attribute@TTextfile@@RECJH@Z¨@$2?section@TTextfile@@RECPEV1@AEUTPoint@@0@Z $2 «@&2?name@TTextfile@@RECPFDXZ &2ç÷ ®@(2?interactive@TTextfile@@RECXE@Z (2x2onØ÷x2 ±`,2?write@TTextfile@@RECEPFDPEUTPoint@@1@Z¶`42?search@TTextfile@@RECJPFDAEHJEE@Z¸`92?replace@TTextfile@@RECHJPFDHH@Z»`<2?set_hotspots@TTextfile@@RECXDD@Z¾@>2?hotspots@TTextfile@@RECAEVTArray@@XZ >2Ý÷ Ä@@2?set_relation@TTextfile@@RECXPEVTRelation@@@Z @2Œ2r×÷Œ2 Çô1`E2??0TTextfile@@REC@PFDHW4direction@@E@ZÊ + “2TPrintstyle “2   ˜2TPrtype ˜2" +š2fileprinter% +2screenvis( +Ÿ2export .  2TGraphic_shape  21 8w.TPrintrow w.= {? +¤2MAXSTRB«Ö÷_rowD¤2Õ÷_attrF¤2Ô÷_colsH¸Ó÷_tabK“2Ò÷_currentstyleMÑ÷_currentcolorOÐ÷_lastposT`¦2??0TPrintrow@@REC@XZVw.`¨2??0TPrintrow@@REC@AFV0@@ZY`ª2??1TPrintrow@@VEC@XZ][`¬2?class_id@TPrintrow@@VFCIXZ_`®2?class_name@TPrintrow@@VFCPFDXZa{`°2?dup@TPrintrow@@VFCPEVTObject@@XZe`²2?row@TPrintrow@@RFCPFDXZg`´2?row_codified@TPrintrow@@RFCPFDXZiw.`¶2?reset@TPrintrow@@RECAEV1@XZl“2m`¸2?get_style@TPrintrow@@RFC?EW4TPrintstyle@@H@Zo“2p`º2?get_style@TPrintrow@@RFC?EW4TPrintstyle@@XZs`¼2?get_color@TPrintrow@@RFCHH@Zv`¾2?get_color@TPrintrow@@RFCHXZxw.`Â2?put@TPrintrow@@RECAEV1@PFDHH@Zz“2{`Ä2?set_style@TPrintrow@@RECXW4TPrintstyle@@@Z~`Æ2?lastpos@TPrintrow@@RFCHXZ +f:\p.due\INCLUDE\printer.hY@ª2??1TPrintrow@@VEC@XZ ª2}Ö÷Ó÷Ê e@²2?row@TPrintrow@@RFCPFDXZ ²2Ö÷ m@¸2?get_style@TPrintrow@@RFC?EW4TPrintstyle@@H@Z ¸2Ø2position“2Õ÷Ø2 p@º2?get_style@TPrintrow@@RFC?EW4TPrintstyle@@XZ º2Ò÷ s@¼2?get_color@TPrintrow@@RFCHH@Z ¼2ß2position“2Ô÷ß2 v@¾2?get_color@TPrintrow@@RFCHXZ ¾2Ñ÷ x`Â2?put@TPrintrow@@RECAEV1@PFDHH@Z{@Ä2?set_style@TPrintrow@@RECXW4TPrintstyle@@@Z Ä2é2styleÒ÷é2 ~@Æ2?lastpos@TPrintrow@@RFCHXZ Æ2Ð÷ w.†ï2PrinterDef ï2Š {Œv.v.‘Ï÷_printername“Î÷_printertype•Í÷_filtername—Ì÷_devicename™Ë÷_atstr›ŒÊ÷_codesŒÉ÷_namesŸÈ÷_ffcode¡Ç÷_nlcode¦Z^`ò2?read@PrinterDef@@RECEPFDPEU_iobuf@@@Z¨Z`ô2?isdefault@PrinterDef@@RECEXZª[«sþ`ö2?get_codenames@PrinterDef@@RFCPFDI@Z­[®sþ`ø2?get_codes@PrinterDef@@RFCPFDI@Z±`ú2??0PrinterDef@@REC@XZ +f:\p.due\INCLUDE\printer.h«@ö2?get_codenames@PrinterDef@@RFCPFDI@Z ö2 +3i +3[É÷^É÷ +3 ®@ø2?get_codes@PrinterDef@@RFCPFDI@Z ø23i3[Ê÷^Ê÷3 °@ú2??0PrinterDef@@REC@XZ ú2±¢¢ ²ï2¹3BkDef 3¾ {Ã@Æ÷_idÅ@Å÷_father_idÇ@Ä÷_txtÉ@Ã÷_rowÍ`3??0BkDef@@REC@XZÐ`3??1BkDef@@VEC@XZ +f:\p.due\INCLUDE\printer.hÍ@3??0BkDef@@REC@XZ 3 Ð@3??1BkDef@@VEC@XZ 3}Ä÷ Ñ3Ôv.Õ 13TPrint_intersector13Ûv.33PRINTSECTIONHANDLERà63LINKHANDLERä 73TViswin73ëv.TPrinter v.ï {ñ^Â÷_cnfptró^Á÷_fpõ73À÷_vfø¿÷_txtúÒ¾÷_exportfileü½÷_headersizeþ¼÷_footersizeF»÷_headerFº÷_footerF¹÷_printers¸÷_curprn·÷_curcode +¶÷_formlen µ÷_formwidth´÷_currentrow„³÷_fontname²÷_ch_size[±÷_currentpage[°÷_frompage[¯÷_topageZ®÷_hwformfeed˜2­÷_printertype Z¬÷_isopen"ö«÷_date$Òª÷_printerfile&F©÷_linksdescr(F¨÷_bookmarks*Z§÷_multiple_link-¦÷_config0Œ¥÷_background2Œ¤÷_image_names5£÷_bg_desc7¢÷_printer_names9Z¡÷_isgraphics;Z ÷_frozen=Ÿ÷_ncopies?óž÷_print_rcdA÷_print_rcd_sizeCœ÷_lines_per_inchE›÷_vert_offsetGš÷_horz_offsetI™÷_l_offsetK˜÷_c_offsetM—÷_dots_per_lineP 93?_get_windows_printer_names@TPrinter@@BECXAEVTToken_string@@@ZRZ–÷_multiple_copiesTZ•÷_export_headerV”÷_export_header_lenY33“÷_headerhandler[33’÷_footerhandler]63‘÷_linkhandler`÷_finkc13÷_finkerj +;3?newline@TPrinter@@NECDXZlZw.sþ =3?printrow@TPrinter@@JECEPEVTPrintrow@@@ZnZ ?3?printformfeed@TPrinter@@JECEXZqZ A3?printheader@TPrinter@@JECEXZsZ C3?printfooter@TPrinter@@JECEXZv E3?save_configuration@TPrinter@@JECXXZx G3?print_txt@TPrinter@@JECXAEVTTextfile@@@Z~`I3??0TPrinter@@REC@XZ€`K3??1TPrinter@@VEC@XZƒ[ÿ×ÿ×ÿ[ÿ×ÿØÿ…âÿQÿbM3?start_winprint@TPrinter@@TAFJ@Z‰[Š`O3?set_from_page@TPrinter@@RECXI@ZŒ[`Q3?set_to_page@TPrinter@@RECXI@ZZ`S3?set_hwff@TPrinter@@RECXE@Z“F`V3?parse_background@TPrinter@@RECXPFDAEVTArray@@@Z—`X3?descriptions@TPrinter@@RECHXZ™ï2[š`Z3?get_description@TPrinter@@RFCAFVPrinterDef@@I@Z`\3?class_name@TPrinter@@VFCPFDXZŸ[`^3?class_id@TPrinter@@VFCIXZ£``3?formlen@TPrinter@@RFCHXZ¦`b3?formwidth@TPrinter@@RFCHXZ©[ª`d3?frompage@TPrinter@@RFCIXZ¬[­`f3?topage@TPrinter@@RFCIXZ°`h3?current_row@TPrinter@@RFCHXZ³`j3?headersize@TPrinter@@RFCHXZ¶`l3?footersize@TPrinter@@RFCHXZ¸w.`n3?getheaderline@TPrinter@@RECPEVTPrintrow@@H@Zºw.`p3?getfooterline@TPrinter@@RECPEVTPrintrow@@H@Z½`r3?formlen@TPrinter@@RECHH@ZÀ`t3?footerlen@TPrinter@@RECHH@ZÃ`v3?headerlen@TPrinter@@RECHH@ZÅ[[Æ`x3?frompage@TPrinter@@RECII@ZÈ[[É`z3?topage@TPrinter@@RECII@ZËw.`}3?setheaderline@TPrinter@@RECXHPEVTPrintrow@@@ZÍw.`€3?setheaderline@TPrinter@@RECXHAFVTPrintrow@@@ZÏw.`ƒ3?setfooterline@TPrinter@@RECXHPEVTPrintrow@@@ZÑw.`†3?setfooterline@TPrinter@@RECXHAFVTPrintrow@@@ZÓ`ˆ3?resetheader@TPrinter@@RECXXZÕ`Š3?resetfooter@TPrinter@@RECXXZ×`Œ3?setbackground@TPrinter@@RECXPFD@ZÙŒÚ`Ž3?image_names@TPrinter@@RECAEVTString_array@@XZÜŒÝ`3?getbgdesc@TPrinter@@RECAEVTString_array@@XZßFà`’3?get_bookmarks@TPrinter@@RECAEVTArray@@XZâZã`”3?frozen@TPrinter@@RECEXZåZáÿæ`–3?freeze@TPrinter@@RECXE@Zè`˜3?n_copies@TPrinter@@RECHXZêZáÿë`š3?enable_multiple_copies@TPrinter@@RECXE@Zî`œ3?getprinternames@TPrinter@@RECAEVTToken_string@@XZðñ`ž3?get_txt@TPrinter@@RECAEVTTextfile@@XZô33õ` 3?setheaderhandler@TPrinter@@RECXP7AXAEV1@@Z@Z÷33ø`¢3?setfooterhandler@TPrinter@@RECXP7AXAEV1@@Z@Zý63þ`¤3?setlinkhandler@TPrinter@@RECXP7AXHPFD@Z@Z63`¦3?getlinkhandler@TPrinter@@RECP7AXHPFD@ZXZF`¨3?links@TPrinter@@RECAEVTArray@@XZZ`ª3?setmultiplelink@TPrinter@@RECXE@Z Z +`¬3?ismultiplelink@TPrinter@@RECEXZ`®3?get_fincatura@TPrinter@@RECPFDXZ`°3?set_fincatura@TPrinter@@RECXPFD@Z`²3?f_topleft@TPrinter@@RFCDXZ`´3?f_topmiddle@TPrinter@@RFCDXZ`¶3?f_topright@TPrinter@@RFCDXZ`¸3?f_botleft@TPrinter@@RFCDXZ!`º3?f_botmiddle@TPrinter@@RFCDXZ$`¼3?f_botright@TPrinter@@RFCDXZ'`¾3?f_centerleft@TPrinter@@RFCDXZ*`À3?f_centermiddle@TPrinter@@RFCDXZ-`Â3?f_centerright@TPrinter@@RFCDXZ0`Ä3?f_horizontal@TPrinter@@RFCDXZ3`Æ3?f_vertical@TPrinter@@RFCDXZ7Z`È3?skip@TPrinter@@RECEH@Z9Z`Ê3?jump@TPrinter@@RECEH@Z<`Ì3?reset@TPrinter@@RECXXZ>Z`Î3?set@TPrinter@@VECEXZ@Z`Ð3?open@TPrinter@@RECEXZB`Ò3?close@TPrinter@@RECXXZDZ`Ô3?formfeed@TPrinter@@RECEXZFZw.`Ö3?print@TPrinter@@RECEAEVTPrintrow@@@ZHZI`Ø3?isopen@TPrinter@@RECEXZKöL`Ú3?setdate@TPrinter@@RECXAFVTDate@@@ZNöO`Ü3?getdate@TPrinter@@RFCAFVTDate@@XZQ˜2R`Þ3?printtype@TPrinter@@REC?EW4TPrtype@@XZT˜2U`à3?set_printtype@TPrinter@@RECXW4TPrtype@@@ZX`â3?set_printerfile@TPrinter@@RECXPFD@ZZ[[`ä3?getcurrentpage@TPrinter@@RFCIXZ][^`æ3?setcurrentpage@TPrinter@@RECXI@ZaZáÿb`ê3?set_export_file@TPrinter@@RECXPFDEH@ZdZáÿ`í3?merge_export_file@TPrinter@@RECXPFDE@Zf[g`ï3?rows@TPrinter@@RFCIXZi[`ñ3?rows_left@TPrinter@@RFCIXZk`ó3?set_printrcd@TPrinter@@RECXXZmósþ`õ3?get_printrcd@TPrinter@@RECPEUs_printrcd@@PEH@Zn[ÿ×ÿ×ÿ[ÿ×ÿØÿpX7ýsþX`ø3?set_win_formlen@TPrinter@@RECXJ@Zt`ú3?set_lines_per_inch@TPrinter@@RECXH@Zw`ü3?get_lines_per_inch@TPrinter@@RFCHXZz`þ3?get_vert_offset@TPrinter@@RFCHXZ}`4?get_horz_offset@TPrinter@@RFCHXZ€`4?get_line_offset@TPrinter@@RFCHXZƒ`4?get_column_offset@TPrinter@@RFCHXZ…`4?get_dots_per_line@TPrinter@@RFCHXZ‡Z`4?isgraphics@TPrinter@@RFCEXZ‰Z` +4?set_graphics@TPrinter@@RECXE@Z‹`4?set_offset@TPrinter@@RECXHH@Z`4?background_chars@TPrinter@@RFCPFDH@Z‘`4?get_char_size@TPrinter@@RFCHXZ”`4?fontname@TPrinter@@RFCPEDXZ˜`4?printername@TPrinter@@RFCPFDXZœ`4?set_char_size@TPrinter@@RECXH@ZŸ`4?set_fontname@TPrinter@@RECXPFD@Z¢sþ`4?read_configuration@TPrinter@@RECXPFD@Z¥`4?set_bookmark@TPrinter@@RECHPFDH@Z¨Z` 4?is_generic@TPrinter@@RECEXZ +f:\p.due\INCLUDE\printer.hj +;3?newline@TPrinter@@NECDXZ ;3 l =3?printrow@TPrinter@@JECEPEVTPrintrow@@@ZŠ@O3?set_from_page@TPrinter@@RECXI@Z O324from°÷24 @Q3?set_to_page@TPrinter@@RECXI@Z Q354to¯÷54 @S3?set_hwff@TPrinter@@RECXE@Z S384hwff®÷84 —@X3?descriptions@TPrinter@@RECHXZ X3¹÷^ š@Z3?get_description@TPrinter@@RFCAFVPrinterDef@@I@Z Z3>4iï2¹÷>4 £@`3?formlen@TPrinter@@RFCHXZ `3¶÷ ¦@b3?formwidth@TPrinter@@RFCHXZ b3µ÷ ª@d3?frompage@TPrinter@@RFCIXZ d3°÷ ­@f3?topage@TPrinter@@RFCIXZ f3¯÷ °@h3?current_row@TPrinter@@RFCHXZ h3´÷ ³@j3?headersize@TPrinter@@RFCHXZ j3½÷ ¶@l3?footersize@TPrinter@@RFCHXZ l3¼÷ ½@r3?formlen@TPrinter@@RECHH@Z r3W4fl¶÷W4 À@t3?footerlen@TPrinter@@RECHH@Z t3Z4fl¼÷Z4 Ã@v3?headerlen@TPrinter@@RECHH@Z v3]4hl½÷]4 Æ@x3?frompage@TPrinter@@RECII@Z x3`4fp°÷`4 É@z3?topage@TPrinter@@RECII@Z z3c4tp¯÷c4 Ú@Ž3?image_names@TPrinter@@RECAEVTString_array@@XZ Ž3¤÷ Ý@3?getbgdesc@TPrinter@@RECAEVTString_array@@XZ 3¥÷ à@’3?get_bookmarks@TPrinter@@RECAEVTArray@@XZ ’3¨÷ ã@”3?frozen@TPrinter@@RECEXZ ”3 ÷ æ@–3?freeze@TPrinter@@RECXE@Z –3r4b ÷r4 è@˜3?n_copies@TPrinter@@RECHXZ ˜3Ÿ÷ ë@š3?enable_multiple_copies@TPrinter@@RECXE@Z š3x4b–÷x4 ñ@ž3?get_txt@TPrinter@@RECAEVTTextfile@@XZ ž3¿÷ õ@ 3?setheaderhandler@TPrinter@@RECXP7AXAEV1@@Z@Z  34h“÷4 ø@¢3?setfooterhandler@TPrinter@@RECXP7AXAEV1@@Z@Z ¢3ƒ4h’÷ƒ4 þ@¤3?setlinkhandler@TPrinter@@RECXP7AXHPFD@Z@Z ¤3ˆ4h‘÷ˆ4 @¦3?getlinkhandler@TPrinter@@RECP7AXHPFD@ZXZ ¦3‘÷ @¨3?links@TPrinter@@RECAEVTArray@@XZ ¨3©÷ @ª3?setmultiplelink@TPrinter@@RECXE@Z ª3“4on§÷“4  +@¬3?ismultiplelink@TPrinter@@RECEXZ ¬3§÷ @®3?get_fincatura@TPrinter@@RECPFDXZ ®3÷ @°3?set_fincatura@TPrinter@@RECXPFD@Z °3œ4s÷œ4÷z @²3?f_topleft@TPrinter@@RFCDXZ ²3÷ @´3?f_topmiddle@TPrinter@@RFCDXZ ´3÷ @¶3?f_topright@TPrinter@@RFCDXZ ¶3÷ @¸3?f_botleft@TPrinter@@RFCDXZ ¸3÷ !@º3?f_botmiddle@TPrinter@@RFCDXZ º3÷ $@¼3?f_botright@TPrinter@@RFCDXZ ¼3÷ '@¾3?f_centerleft@TPrinter@@RFCDXZ ¾3÷ *@À3?f_centermiddle@TPrinter@@RFCDXZ À3÷ -@Â3?f_centerright@TPrinter@@RFCDXZ Â3÷ 0@Ä3?f_horizontal@TPrinter@@RFCDXZ Ä3÷ 3@Æ3?f_vertical@TPrinter@@RFCDXZ Æ3÷ I@Ø3?isopen@TPrinter@@RECEXZ Ø3¬÷ L@Ú3?setdate@TPrinter@@RECXAFVTDate@@@Z Ú3Ã4d«÷Ã4 O@Ü3?getdate@TPrinter@@RFCAFVTDate@@XZ Ü3«÷ R@Þ3?printtype@TPrinter@@REC?EW4TPrtype@@XZ Þ3­÷ U@à3?set_printtype@TPrinter@@RECXW4TPrtype@@@Z à3Ì4dest­÷Ì4 X@â3?set_printerfile@TPrinter@@RECXPFD@Z â3Ï4ffileª÷Ï4Ô [@ä3?getcurrentpage@TPrinter@@RFCIXZ ä3±÷ ^@æ3?setcurrentpage@TPrinter@@RECXI@Z æ3Õ4n±÷Õ4 b@ê3?set_export_file@TPrinter@@RECXPFDEH@Z ê3Ø4nÙ4headerÚ4len­÷Ÿ2¾÷Ø4Ô•÷Ù4”÷Ú4 d`í3?merge_export_file@TPrinter@@RECXPFDE@Zg@ï3?rows@TPrinter@@RFCIXZ ï3¶÷½÷¼÷ m`õ3?get_printrcd@TPrinter@@RECPEUs_printrcd@@PEH@Zp`ø3?set_win_formlen@TPrinter@@RECXJ@Zt@ú3?set_lines_per_inch@TPrinter@@RECXH@Z ú3ä4nœ÷ä4 w@ü3?get_lines_per_inch@TPrinter@@RFCHXZ ü3œ÷ z@þ3?get_vert_offset@TPrinter@@RFCHXZ þ3›÷ }@4?get_horz_offset@TPrinter@@RFCHXZ 4š÷ €@4?get_line_offset@TPrinter@@RFCHXZ 4™÷ ƒ@4?get_column_offset@TPrinter@@RFCHXZ 4˜÷ …@4?get_dots_per_line@TPrinter@@RFCHXZ 4—÷ ‡@4?isgraphics@TPrinter@@RFCEXZ 4¡÷ ‰@ +4?set_graphics@TPrinter@@RECXE@Z +4ü4g¡÷ü4 ‹@4?set_offset@TPrinter@@RECXHH@Z 4ÿ4a5b™÷ÿ4˜÷5 ‘@4?get_char_size@TPrinter@@RFCHXZ 4²÷ ”@4?fontname@TPrinter@@RFCPEDXZ 4³÷ ˜@4?printername@TPrinter@@RFCPFDXZ 4¸÷Z3Ì÷ œ@4?set_char_size@TPrinter@@RECXH@Z 45size²÷5 Ÿ@4?set_fontname@TPrinter@@RECXPFD@Z 45name³÷5† ¢`4?read_configuration@TPrinter@@RECXPFD@Z¥`4?set_bookmark@TPrinter@@RECHPFDH@Z¨@ 4?is_generic@TPrinter@@RECEXZ 4—÷ ©v.°5TFile_printer 5´ v.¶Ž÷_size¸÷_driveºŒ÷_volume¼‹÷_num_rec_volume¾Š÷_num_rec_testa_codaÀ‰÷_num_rec_inizioˆ÷_num_rec_fineć÷_len_recÆF†÷_recordÈZ…÷_nome_file_fissatoÊZ„÷_label_fissataÌZƒ÷_formatta΂÷_fileÐ÷_labelÒF€÷_tmp_filesÔ^÷_fdÜ`5?newline@TFile_printer@@VECDXZÞZß`5?set_file_fissato@TFile_printer@@RECXE@ZáZâ`!5?set_label_fissata@TFile_printer@@RECXE@Zå`#5?set_len_rec@TFile_printer@@RECXH@Zé`%5?set_file@TFile_printer@@RECXPFD@Zì`'5?set_label@TFile_printer@@RECXPFD@Zïw.ð`*5?set_record@TFile_printer@@RECXHPEVTPrintrow@@@Zów.ô`,5?get_record@TFile_printer@@RECPEVTPrintrow@@H@Z÷w.ø`.5?get_record_inizio_volume@TFile_printer@@RFCPEVTPrintrow@@XZúw.û`05?get_record_inizio_elenco@TFile_printer@@RFCPEVTPrintrow@@XZýw.þ`25?get_record_dettaglio@TFile_printer@@RFCPEVTPrintrow@@XZw.`45?get_record_fine_elenco@TFile_printer@@RFCPEVTPrintrow@@XZw.`65?get_record_fine_volume@TFile_printer@@RFCPEVTPrintrow@@XZw.`85?get_record_filler@TFile_printer@@RFCPEVTPrintrow@@XZ `:5?num_rec_volume@TFile_printer@@RECHXZ`<5?num_volumi@TFile_printer@@RECHXZ`>5?inc_volume@TFile_printer@@RECXXZÒ`@5?add_file@TFile_printer@@RECXVTFilename@@@Z`B5?open@TFile_printer@@RECXXZ`D5?close@TFile_printer@@RECXXZZ`F5?genera_dischetti@TFile_printer@@RECEXZ!Z`H5?set@TFile_printer@@VECEXZ,`O5??0TFile_printer@@REC@PFD0HHHH@Z.`Q5??1TFile_printer@@VEC@XZ +f:\p.due\INCLUDE\printer.hÜ@5?newline@TFile_printer@@VECDXZ 5 ß@5?set_file_fissato@TFile_printer@@RECXE@Z 5b5fissato…÷b5 â@!5?set_label_fissata@TFile_printer@@RECXE@Z !5e5fissata„÷e5 å@#5?set_len_rec@TFile_printer@@RECXH@Z #5h5len‡÷h5 é@%5?set_file@TFile_printer@@RECXPFD@Z %5k5ffile‚÷k5 ì@'5?set_label@TFile_printer@@RECXPFD@Z '5n5label÷n5 ð@*5?set_record@TFile_printer@@RECXHPEVTPrintrow@@@Z *5q5record_to_setr5line†÷r5q5z ô@,5?get_record@TFile_printer@@RECPEVTPrintrow@@H@Z ,5u5record_to_getw.†÷u5 ø@.5?get_record_inizio_volume@TFile_printer@@RFCPEVTPrintrow@@XZ .5w.†÷ û@05?get_record_inizio_elenco@TFile_printer@@RFCPEVTPrintrow@@XZ 05w.†÷ þ@25?get_record_dettaglio@TFile_printer@@RFCPEVTPrintrow@@XZ 25w.†÷ @45?get_record_fine_elenco@TFile_printer@@RFCPEVTPrintrow@@XZ 45w.†÷ @65?get_record_fine_volume@TFile_printer@@RFCPEVTPrintrow@@XZ 65w.†÷ @85?get_record_filler@TFile_printer@@RFCPEVTPrintrow@@XZ 85w.†÷  @:5?num_rec_volume@TFile_printer@@RECHXZ :5‹÷ @<5?num_volumi@TFile_printer@@RECHXZ <5Œ÷ @>5?inc_volume@TFile_printer@@RECXXZ >5Œ÷ @@5?add_file@TFile_printer@@RECXVTFilename@@@Z @5š5nomef€÷š5€ ,`O5??0TFile_printer@@REC@PFD0HHHH@Z/56v.`¤5?printer@@ZAAEVTPrinter@@XZ8 +f:\p.due\INCLUDE\progind.h§5TIndwin §5 …% +©5IND_CANCELLED +ª5IND_FINISHEDX}÷_text X|÷_cancel"X{÷_bar$]z÷_flags)y÷_max+x÷_status-[[ ­5?measure_text@TIndwin@@JFCIAEVTToken_string@@AEI@Z0X~ +°5?handler@TIndwin@@NECXJPEUs_event@@@Z2 +²5?update@TIndwin@@NECXXZ5 ´5?update_bar@TIndwin@@JECXXZ7^ ¶5?check_stop@TIndwin@@JECIXZ<Z=`¸5?iscancelled@TIndwin@@RFCEXZ?Z@`º5?isfinished@TIndwin@@RFCEXZC`¼5?status@TIndwin@@RFCJXZF`¾5?cancel@TIndwin@@RECXXZIZ`À5?can_be_closed@TIndwin@@VFCEXZL`Â5?set_text@TIndwin@@RECXPFD@ZO§5ZáÿZ`È5??0TIndwin@@REC@JPFDEEH@ZQ`Ê5??1TIndwin@@VEC@XZ +f:\p.due\INCLUDE\progind.h=@¸5?iscancelled@TIndwin@@RFCEXZ ¸5À$z÷©5 @@º5?isfinished@TIndwin@@RFCEXZ º5À$z÷ª5 C@¼5?status@TIndwin@@RFCJXZ ¼5À$x÷ F@¾5?cancel@TIndwin@@RECXXZ ¾5z÷©5À$¶5 O`È5??0TIndwin@@REC@JPFDEEH@ZR§5Yé5TProgind é5[ §5``ë5?setmax@TProgind@@RECXJ@Zc`í5?setstatus@TProgind@@RECXJ@Zf`ï5?addstatus@TProgind@@RECXJ@Zhé5sþZáÿZ`õ5??0TProgind@@REC@JPFDEEH@Zk`÷5??1TProgind@@VEC@XZ +f:\p.due\INCLUDE\progind.h`@ë5?setmax@TProgind@@RECXJ@Z ë56my÷6 c@í5?setstatus@TProgind@@RECXJ@Z í56lx÷6´5À$ f@ï5?addstatus@TProgind@@RECXJ@Z ï5 6lx÷ 6í5 h`õ5??0TProgind@@REC@JPFDEEH@Zk@÷5??1TProgind@@VEC@XZ ÷5Ê5 lé5t6TTimerind 6v §5zw÷_interval|6?_timer_id@TTimerind@@0JEX~ +6?handler@TTimerind@@NECXJPEUs_event@@@Z†6sþZáÿZ`!6??0TTimerind@@REC@JPFDEEHH@Zˆ`#6??1TTimerind@@VEC@XZ +f:\p.due\INCLUDE\progind.h†`!6??0TTimerind@@REC@JPFDEEHH@Z‰6’ZZ•Z–Z˜ZZšZ›Zœ +f:\p.due\INCLUDE\base.hv÷BSE_CODDITTAu÷BSE_CODDICt÷BSE_TIPOQUA[ +f:\p.due\INCLUDE\urldefid.hf:\p.due\INCLUDE\defmask.hd +âöBAR_ITEM[ÿ×ÿG +f:\p.due\INCLUDE\nditte.h«öNDT_RAGSOC0 +f:\p.due\INCLUDE\anagr.h}öANA_COFI +f:\nik\p.due\77\quadrod.hqöQUD_CODDITTApöQUD_TIPOA löQUD_TOTALE köQUD_SOMMEjöQUD_IMPONIBILEhöQUD_IMPORTOgöQUD_NETTO +f:\p.due\INCLUDE\quadrod1.h `öQD1_TOTALE _öQD1_QUOTAPRO^öQD1_SPESEANT]öQD1_IMPONIBILE[öQD1_IMPORTOZöQD1_NETTO +f:\nik\p.due\77\quadrogd.hYöQGD_CODDITTAXöQGD_TIPOAUöQGD_UTSPETTTöQGD_UTPAGSöQGD_ROPE RöQGD_ROPESPET + +f:\nik\p.due\77\77stqd.hPöF_CODDITTAOöF_RAGDITTANöF_ANNOMöF_TEXTLöF_MODULASER +f:\nik\p.due\77\77lib.hf:\p.due\INCLUDE\mask.h +f:\p.due\INCLUDE\real.h +f:\p.due\INCLUDE\sheet.hV6TSheet V6 &! +X6MAX_BUT# +Y6MAX_COL&ŒIö_page)]Hö_columns+]Y6Gö_size-]Y6Fö_type/Eö_curr1Dö_last_update4Cö_visible_rows7ZBö_checkable9ZAö_check_enabled;¸@ö_checked=¸?ö_disabled@XX6>ö_buttonB^X6=ö_keyD]<ö_buttonmaskIZJ [6?head_on@TSheet@@JFCEXZLZM7ýsþ ]6?buttons_on@TSheet@@JFCEXZP _6?visible_rows@TSheet@@JFCFXZR +a6?reserved_rows@TSheet@@NFCFXZT c6?build_page@TSheet@@JECXJ@ZXä +f6?log2dev@TSheet@@NFC?EUs_pnt@@JJ@ZZX~ +i6?handler@TSheet@@NECXJPEUs_event@@@Z\Z^ +k6?on_key@TSheet@@NECEI@Z^ +m6?update@TSheet@@NECXXZa o6?set_first@TSheet@@JECXJ@ZcZd q6?is_visible@TSheet@@JFCEJ@Zg s6?width@TSheet@@JFCHXZi u6?row_to_page@TSheet@@JFCHJ@Zk w6?row_to_win@TSheet@@JFCHJ@Zo y6?first@TSheet@@JFCJXZqZ {6?update_row@TSheet@@JECEJ@Zs }6?invert_row@TSheet@@JECXJ@Zv] €6?set_row@TSheet@@JECXAFVTToken_string@@E@Zy +‚6?repos_buttons@TSheet@@NFCXXZ|]÷ù +…6?page_build@TSheet@@NECXJE@Z ‡6?print@TSheet@@JECXXZ„V6]X7ýsþ`’6??0TSheet@@REC@FFFFPFD0EJJ@Z‡`”6?open@TSheet@@VECXXZŠ^ºø`˜6?add_button@TSheet@@RECXFPFDI@Z÷ù`š6?items@TSheet@@VFCJXZ`œ6?row@TSheet@@VECAEVTToken_string@@J@Z“`ž6?selected@TSheet@@RFCJXZ•` 6?select@TSheet@@RECXJ@Z˜]™`¢6?column_flag@TSheet@@RFCEH@Z›]œ`¤6?column_flag@TSheet@@RECAEEH@ZŸZ `¦6?checked@TSheet@@RFCEJ@Z¢Záÿ`©6?check@TSheet@@RECXJE@Z¥àÿ`«6?uncheck@TSheet@@RECXJ@Z¨Záÿ©`­6?enable_check@TSheet@@RECXE@Z¬àÿ`¯6?disable_check@TSheet@@RECXXZ¯Záÿ`²6?enable@TSheet@@RECXJE@Z²àÿ`´6?disable@TSheet@@RECXJ@Z´Zµ`¶6?enabled@TSheet@@RFCEJ@Z·Z¸`¸6?disabled@TSheet@@RFCEJ@Z»Z¼`º6?one_checked@TSheet@@RFCEXZ¿`¼6?checked@TSheet@@RFCJXZ +f:\p.due\INCLUDE\sheet.hJ[6?head_on@TSheet@@JFCEXZ [6Hö M]6?buttons_on@TSheet@@JFCEXZ ]6>öX P_6?visible_rows@TSheet@@JFCFXZ _6Cö T c6?build_page@TSheet@@JECXJ@Zdq6?is_visible@TSheet@@JFCEJ@Z q6×6n×6y6×6y6_6 oy6?first@TSheet@@JFCJXZ y6°&­ø „`’6??0TSheet@@REC@FFFFPFD0EJJ@ZŠ`˜6?add_button@TSheet@@RECXFPFDI@Z`œ6?row@TSheet@@VECAEVTToken_string@@J@Z“@ž6?selected@TSheet@@RFCJXZ ž6Eö ™@¢6?column_flag@TSheet@@RFCEH@Z ¢6í6cFöí6 œ@¤6?column_flag@TSheet@@RECAEEH@Z ¤6ð6cFöð6  @¦6?checked@TSheet@@RFCEJ@Z ¦6ó6n@öó6 ¢`©6?check@TSheet@@RECXJE@Z¥@«6?uncheck@TSheet@@RECXJ@Z «6ø6nø6©6 ©@­6?enable_check@TSheet@@RECXE@Z ­6û6ynAöû6 ¬@¯6?disable_check@TSheet@@RECXXZ ¯6­6 ¯`²6?enable@TSheet@@RECXJE@Z²@´6?disable@TSheet@@RECXJ@Z ´67n7²6 µ@¶6?enabled@TSheet@@RFCEJ@Z ¶67n?ö7 ¸@¸6?disabled@TSheet@@RFCEJ@Z ¸6 7n?ö 7 ¼@º6?one_checked@TSheet@@RFCEXZ º6@öÔ ¿@¼6?checked@TSheet@@RFCJXZ ¼6@öØ ÀV6ÈB(TArray_sheet B(Ì V6ÎŒ;ö_dataÓ] +7?page_build@TArray_sheet@@NECXJE@ZÕÖ 7?data@TArray_sheet@@JECAEVTToken_string@@J@ZÛB(]X7ýsþ` 7??0TArray_sheet@@REC@FFFFPFD0EJ@ZÞ`"7?items@TArray_sheet@@VFCJXZàŒá`$7?rows_array@TArray_sheet@@RECAEVTString_array@@XZã`&7?add@TArray_sheet@@RECJAFVTToken_string@@@Zå`(7?add@TArray_sheet@@RECJPEVTToken_string@@@Zç`+7?insert@TArray_sheet@@RECJAFVTToken_string@@J@Zéê`-7?row@TArray_sheet@@VECAEVTToken_string@@J@ZìZ`/7?destroy@TArray_sheet@@RECEH@Z +f:\p.due\INCLUDE\sheet.hÖ7?data@TArray_sheet@@JECAEVTToken_string@@J@Z 7?7n;ö?7Ž Û` 7??0TArray_sheet@@REC@FFFFPFD0EJ@ZÞ@"7?items@TArray_sheet@@VFCJXZ "7;ö^ á@$7?rows_array@TArray_sheet@@RECAEVTString_array@@XZ $7;ö ê@-7?row@TArray_sheet@@VECAEVTToken_string@@J@Z -7Q7sQ7ž67Q77 ì`/7?destroy@TArray_sheet@@RECEH@ZíB(öW7TCursor_sheet W7ú V6üF:ö_fieldsþ9ö_records· 8ö_cursor] +Z7?page_build@TCursor_sheet@@NECXJE@Z `\7?items@TCursor_sheet@@VFCJXZ^`^7?run@TCursor_sheet@@VECIXZ· ``7?cursor@TCursor_sheet@@RFCPEVTCursor@@XZW7· `f7??0TCursor_sheet@@REC@PEVTCursor@@PFD11E@Z`h7??1TCursor_sheet@@VEC@XZ +f:\p.due\INCLUDE\sheet.h @\7?items@TCursor_sheet@@VFCJXZ \79ö @`7?cursor@TCursor_sheet@@RFCPEVTCursor@@XZ `78ö `f7??0TCursor_sheet@@REC@PEVTCursor@@PFD11E@Z@h7??1TCursor_sheet@@VEC@XZ h7:öP W7$º)TBrowse_sheet º)( W7*·)7ö_field,6ö_sel1X~ +†7?handler@TBrowse_sheet@@NECXJPEUs_event@@@Z3 +ˆ7?reserved_rows@TBrowse_sheet@@NFCFXZ5 +Š7?repos_buttons@TBrowse_sheet@@NFCXXZ7Z^ +Œ7?on_key@TBrowse_sheet@@NECEI@Z9·): Ž7?field@TBrowse_sheet@@JECAEVTEdit_field@@XZ?º)· ]·)`–7??0TBrowse_sheet@@REC@PEVTCursor@@PFD11EPEVTEdit_field@@PEVTToken_string@@@ZB`˜7??1TBrowse_sheet@@VEC@XZD^`š7?run@TBrowse_sheet@@VECIXZ +f:\p.due\INCLUDE\sheet.h:Ž7?field@TBrowse_sheet@@JECAEVTEdit_field@@XZ Ž77ö ?`–7??0TBrowse_sheet@@REC@PEVTCursor@@PFD11EPEVTEdit_field@@PEVTToken_string@@@ZB@˜7??1TBrowse_sheet@@VEC@XZ ˜7h7 Eº) +f:\nik\p.due\77\770101.h +³7TSchedaPE ³7 ´  F4ö_pag3ö_ver2ö_old_pag1ö_old_verZ ·7?write_rec@TSchedaPE@@JECHEAFVTRectype@@AEVTLocalisamfile@@@Z »7?cancella@TSchedaPE@@JECHAEVTLocalisamfile@@HH@ZZZ ¾7?registra@TSchedaPE@@JECHEE@Z À7?read_scperc_rows@TSchedaPE@@JECHXZÍ`Â7?next@TSchedaPE@@VECHW4TReclock@@@ZÍ`Ä7?prev@TSchedaPE@@VECHW4TReclock@@@ZÍ`Æ7?first@TSchedaPE@@VECHW4TReclock@@@ZÍ`È7?last@TSchedaPE@@VECHW4TReclock@@@ZÈÍ`Ë7?skip@TSchedaPE@@VECHJW4TReclock@@@ZæÍöö`Ï7?read@TSchedaPE@@VECHW4TIsamop@@W4TReclock@@AEVTDate@@@ZZáÿöö`Ò7?write@TSchedaPE@@VECHEAEVTDate@@@ZZáÿöö`Õ7?rewrite@TSchedaPE@@VECHEAEVTDate@@@Zöö`×7?remove@TSchedaPE@@VECHAEVTDate@@@Z!`Ù7?pag@TSchedaPE@@RECAEVTRectype@@H@Z"`Û7?ver@TSchedaPE@@RECAEVTRectype@@H@Z$`Ý7?pag_items@TSchedaPE@@RFCHXZ%`ß7?ver_items@TSchedaPE@@RFCHXZ'Z`á7?empty_vers@TSchedaPE@@RECEAEVTRectype@@@Z)`ã7?destroy_rows@TSchedaPE@@RECXXZ+`å7??0TSchedaPE@@REC@XZ,`ç7??1TSchedaPE@@VEC@XZ +f:\nik\p.due\77\770101.hÏ@Â7?next@TSchedaPE@@VECHW4TReclock@@@Z Â7õ7lockopÁ õ7MDÀ7 Ï@Ä7?prev@TSchedaPE@@VECHW4TReclock@@@Z Ä7ø7lockopÁ ø7MHÀ7 Ï@Æ7?first@TSchedaPE@@VECHW4TReclock@@@Z Æ7û7lockopÁ û7@À7 Ï@È7?last@TSchedaPE@@VECHW4TReclock@@@Z È7þ7lockopÁ þ7BÀ7 Ï@Ë7?skip@TSchedaPE@@VECHJW4TReclock@@@Z Ë78nrec8lockopÁ 88TÀ7 îÏÜ`Ï7?read@TSchedaPE@@VECHW4TIsamop@@W4TReclock@@AEVTDate@@@ZÜ`Ò7?write@TSchedaPE@@VECHEAEVTDate@@@ZÜ`Õ7?rewrite@TSchedaPE@@VECHEAEVTDate@@@ZÜ`×7?remove@TSchedaPE@@VECHAEVTDate@@@Z$@Ý7?pag_items@TSchedaPE@@RFCHXZ Ý74ö^ %@ß7?ver_items@TSchedaPE@@RFCHXZ ß73ö^ ,@ç7??1TSchedaPE@@VEC@XZ ç7=!4öP3öP -³7 +  8TSchedaP8öù8COD_QUA_I_DICöù8ANNO_SELöù8DITTE_SELöù 8ST_MODULOöù"8ST_DATAöù$8ST_DOC öù&8DITTA_770#EE.Z0Z2Z4Z7Z8ö¡ùMMö¡ùMM9Z8ööB +D8estinto +E8normale +F8dichiaranteG8TipoDittaEZZàÿGZZàÿM`U8?conta_tipiper@@ZAHJAEVTString@@PEH1@ZPZSZ`Z8?sogg_dic@@ZAEJ@ZU`\8?sogg_estinto@@ZAJJ@ZX`^8?get_firm_770@@ZAJXZZ``8?set_firm_770@@ZAXJ@ZbZO(cZO(dZO(f`h8?cod_fis@@ZAPFDJ@Zmi8TNikArray_sheet i8n B(oF0ö_internop/ö_visible_itemsri8s]X7ýsþv`t8??0TNikArray_sheet@@REC@FFFFPFD0EJH@ZxZ`v8?destroy@TNikArray_sheet@@RECEH@Zy`x8?add@TNikArray_sheet@@RECJAEVTToken_string@@@Zz`z8?row@TNikArray_sheet@@RECAEVTToken_string@@H@Z +f:\nik\p.due\77\77lib.hu@t8??0TNikArray_sheet@@REC@FFFFPFD0EJH@Z t8Š8x‹8yŒ8dx8dyŽ8caption8head8buttons‘8parent’8visibleŠ8‹8Œ88Ž888‘8v’8 7L x`v8?destroy@TNikArray_sheet@@RECEH@Z{i8…–8SCHEDA_NON_ESISTENTEˆ8TSchedaP 8Š.ö_codditta‹-ö_tipoaŒ,ö_codanagr+ö_nprogŽE*ö_spese_doc)ö_compenso_docö(ö_data_doc’Z`˜8?read@TSchedaP@@RECEXZ“`š8?codditta@TSchedaP@@RFCJXZ”`œ8?tipoa@TSchedaP@@RFCDXZ•`ž8?codanagr@TSchedaP@@RFCJXZ–` 8?nprog@TSchedaP@@RFCHXZ˜E`¢8?compenso_doc@TSchedaP@@RFC?EVreal@@XZ™E`¤8?spese_doc@TSchedaP@@RFC?EVreal@@XZš`¦8?anno_doc@TSchedaP@@RFCHXZœZ8 `¨8??8TSchedaP@@RFCEAFV0@@Z¢Z8¦`ª8??9TSchedaP@@RFCEAFV0@@Z¨Z©`¬8?not_empty@TSchedaP@@RFCEXZªZ`®8?ok@TSchedaP@@RFCEXZ¯`³8?set@TSchedaP@@RECXJDJH@Z±`µ8?remove@TSchedaP@@RECHXZ³`º8??0TSchedaP@@REC@JDJH@Z´8`¼8??0TSchedaP@@REC@AEVTRectype@@@Zµ`¾8??1TSchedaP@@REC@XZ +f:\nik\p.due\77\77lib.h“@š8?codditta@TSchedaP@@RFCJXZ š8.ö ”@œ8?tipoa@TSchedaP@@RFCDXZ œ8-ö •@ž8?codanagr@TSchedaP@@RFCJXZ ž8,ö –@ 8?nprog@TSchedaP@@RFCHXZ  8+ö @¨8??8TSchedaP@@RFCEAFV0@@Z ¨8Ù8schž.öÙ8š8-öÙ8œ8Ÿ,öÙ8ž8+öÙ8 8 £@ª8??9TSchedaP@@RFCEAFV0@@Z ª8Ü8sch¤.öÜ8š8-öÜ8œ8¥,öÜ8ž8+öÜ8 8 ¨@¬8?not_empty@TSchedaP@@RFCEXZ ¬8.ö-ö©,ö+ö ª@®8?ok@TSchedaP@@RFCEXZ ®8¬8 ­@³8?set@TSchedaP@@RECXJDJH@Z ³8å8coddittaæ8tipoaç8codanagrè8nprog®.öå8-öæ8,öç8+öè8 ³`º8??0TSchedaP@@REC@JDJH@Z¶8¹ï8TPercipiente ï8»'ö_codditta¼&ö_tipoa½%ö_codanagrÀ`ñ8?codditta@TPercipiente@@RFCJXZÁ`ó8?tipoa@TPercipiente@@RFCDXZÂ`õ8?codanagr@TPercipiente@@RFCJXZÄZ`÷8?not_empty@TPercipiente@@RFCEXZÅZ`ù8?ok@TPercipiente@@RFCEXZÇZï8Ê`û8??8TPercipiente@@RFCEAFV0@@ZÌZï8Ï`ý8??9TPercipiente@@RFCEAFV0@@ZÔ`9?set@TPercipiente@@RECXDJ@Z×Z`9?esiste_scheda@TPercipiente@@RECEXZÙZ`9?elimina_schede@TPercipiente@@RECEXZÜ`9??0TPercipiente@@REC@JDJ@ZÞï8` +9??0TPercipiente@@REC@AFVTRectype@@@Z +f:\nik\p.due\77\77lib.hÀ@ñ8?codditta@TPercipiente@@RFCJXZ ñ8'ö Á@ó8?tipoa@TPercipiente@@RFCDXZ ó8&ö Â@õ8?codanagr@TPercipiente@@RFCJXZ õ8%ö Ä@÷8?not_empty@TPercipiente@@RFCEXZ ÷8&ö%ö Å@ù8?ok@TPercipiente@@RFCEXZ ù8÷8 È@û8??8TPercipiente@@RFCEAFV0@@Z û8$9schÉ&ö$9ó8%ö$9õ8 Í@ý8??9TPercipiente@@RFCEAFV0@@Z ý8'9schÎ&ö'9ó8%ö'9õ8 Ò@9?set@TPercipiente@@RECXDJ@Z 9*9tipoa+9codanagrÓ&ö*9%ö+9 Û@9??0TPercipiente@@REC@JDJ@Z 9.9codditta/9tipoa09codanagrÜ.9/909 ßï8â39TVersamento 39ä$ö_coddittaå#ö_tipoaæ"ö_codanagrç!ö_nprogè ö_nrigaéEö_importo_versatoì`59?codditta@TVersamento@@RFCJXZí`79?tipoa@TVersamento@@RFCDXZî`99?codanagr@TVersamento@@RFCJXZï`;9?nprog@TVersamento@@RFCHXZð`=9?nriga@TVersamento@@RFCHXZñE`?9?importo_versato@TVersamento@@RFC?EVreal@@XZóE`A9?set_importo_versato@TVersamento@@RECXAEVreal@@@Zõ3939ý`C9??4TVersamento@@VECAEV0@AFV0@@ZÿZ39`E9??8TVersamento@@RFCEAFV0@@ZZ39 `G9??9TVersamento@@RFCEAFV0@@ZE`N9?set@TVersamento@@VECXJDJHHAFVreal@@@Z`P9?set@TVersamento@@VECXAEVTToken_string@@@ZZ`R9?not_empty@TVersamento@@RFCEXZZ`T9?ok@TVersamento@@RFCEXZ39`[9??0TVersamento@@REC@JDJHHAFVreal@@@Z39`]9??0TVersamento@@REC@AEVTRectype@@@Z +f:\nik\p.due\77\77lib.hì@59?codditta@TVersamento@@RFCJXZ 59$ö í@79?tipoa@TVersamento@@RFCDXZ 79#ö î@99?codanagr@TVersamento@@RFCJXZ 99"ö ï@;9?nprog@TVersamento@@RFCHXZ ;9!ö ð@=9?nriga@TVersamento@@RFCHXZ =9 ö ñ@?9?importo_versato@TVersamento@@RFC?EVreal@@XZ ?9ö… ó@A9?set_importo_versato@TVersamento@@RECXAEVreal@@@Z A9€9impö€9 ö@C9??4TVersamento@@VECAEV0@AFV0@@Z C9ƒ9sch÷$öƒ959ø#öƒ979ù"öƒ999ú!öƒ9;9û öƒ9=9 @E9??8TVersamento@@RFCEAFV0@@Z E9†9sch$ö†959#ö†979"ö†999!ö†9;9 ö†9=9 @G9??9TVersamento@@RFCEAFV0@@Z G9‰9sch$ö‰959#ö‰979 "ö‰999!ö‰9;9 + ö‰9=9 2`N9?set@TVersamento@@VECXJDJHHAFVreal@@@Z@R9?not_empty@TVersamento@@RFCEXZ R9$ö#ö"ö!ö ö @T9?ok@TVersamento@@RFCEXZ T9R9 2@[9??0TVersamento@@REC@JDJHHAFVreal@@@Z [9˜9codditta™9tipoaš9codanagr›9nprogœ9nriga˜9™9š9›9œ9ƒ 39 9TVersamento_stampa  9 39!”ö_vers"Eö_importo_versato_residuo#Eö_importo_versato$ö_status%ö_num_pags&Zö_gia_letti_pag'ö_num_last_pag*E`§9?set@TVersamento_stampa@@VECXJDJHHAFVreal@@@Z+ 9 94`©9??4TVersamento_stampa@@VECAEV0@AFV0@@Z6sþ`«9?read_pags@TVersamento_stampa@@RECHPEVTLocalisamfile@@@Z7sþ`­9?num_pags@TVersamento_stampa@@RECHPEVTLocalisamfile@@@Z8Z`¯9?last_pag@TVersamento_stampa@@RFCEH@Z9E`±9?importo_versato@TVersamento_stampa@@RFC?EVreal@@XZ:E`³9?set_importo_versato@TVersamento_stampa@@RECXAFVreal@@@Z<39`µ9?add@TVersamento_stampa@@RECXAEVTVersamento@@@Z=Z39`·9?find@TVersamento_stampa@@RECEAEVTVersamento@@@Z?EEE`¼9?vers_stampa@TVersamento_stampa@@REC?EVreal@@PEVTLocalisamfile@@HAFV2@1@Z@E`¾9?importo_versato_residuo@TVersamento_stampa@@RFC?EVreal@@XZB 9`Å9??0TVersamento_stampa@@REC@JDJHHAFVreal@@@Z +f:\nik\p.due\77\77lib.h*2`§9?set@TVersamento_stampa@@VECXJDJHHAFVreal@@@Z,@©9??4TVersamento_stampa@@VECAEV0@AFV0@@Z ©9Û9sch-$öÛ959.#öÛ979/"öÛ9990!öÛ9;91 öÛ9=92öÛ9±9‹ 6`«9?read_pags@TVersamento_stampa@@RECHPEVTLocalisamfile@@@Z7`­9?num_pags@TVersamento_stampa@@RECHPEVTLocalisamfile@@@Z8@¯9?last_pag@TVersamento_stampa@@RFCEH@Z ¯9á9npagá9ö 9@±9?importo_versato@TVersamento_stampa@@RFC?EVreal@@XZ ±9ö… :@³9?set_importo_versato@TVersamento_stampa@@RECXAFVreal@@@Z ³9è9impöè9 @@¾9?importo_versato_residuo@TVersamento_stampa@@RFC?EVreal@@XZ ¾9ö… B`Å9??0TVersamento_stampa@@REC@JDJHHAFVreal@@@ZC 9Kü9TTipo_collNý9TLink770 ý9Oü9@ö_tipo_collP@ö_immissioneQ@ö_tipoR@ö_codanagrS@ö_numregT]@ö_numdocU]@ö_datadocVE@ö_speseWE@ö_compensoXE@ö_imposteYE@ö_ritenuteZE@ ö_totdoc\Z`ÿ9?read@TLink770@@RECEPFD@Z^`:??0TLink770@@REC@XZ +:HWND:@:hInstöù:MAX_LEN âÿ[:$öù]:__dep16_%öù„:__dep80†&öù":?form@@ZAPFDAEVTString@@@Z)öù:VK_STARTDOC*öù:VK_ENDDOC+öù!:VK_STARTPAGE !: , +':STARTDOC +(:STARTDITTA +):STARTPAGE +*:ENDDOC+:ModulaserKey/ öTOT_TOTALE0 +öTOT_SNSRIT1 öTOT_IMPON2öTOT_IMPOR3öTOT_NETTO4öH_COFI_DIC5öH_NUM_FOGLIO8öù,:QD_FORMLEN_PRIMA9öù-:QD_FORMLEN:öù.:POS_DITTA;öù/:QD_PAGINE<öù0:QD_RIGHE_PRIMA=öù1:QD_RIGHE_SECONDA>öù2:QD_RIGHE_TERZA?öù3:QD_RIGHE_QUARTA@öù4:HEADER_SECONDAAöù5:HEADER_TERZABöù6:HEADER_QUARTAG +8:PRIMA +9:SECONDA +::TERZA +;:QUARTA<:PagineQDPA:TDicForm A:Q ƒ.SEö_f_tot_totaleö_f_tot_snsritö_f_tot_imponö_f_tot_imporö_f_tot_nettoTEÿõ_nf_tot_totaleþõ_nf_tot_snsritýõ_nf_tot_imponüõ_nf_tot_imporûõ_nf_tot_nettoU C:?aggiorna_totali_C@TDicForm@@BECXD@ZV E:?aggiorna_totali_D@TDicForm@@BECXD@ZW G:?aggiorna_totali_D1@TDicForm@@BECXD@ZX I:?aggiorna_totali_E@TDicForm@@BECXD@ZY K:?aggiorna_totali_E1@TDicForm@@BECXD@Z[´ úõ_rel\· ùõ_cur]=#øõ_sorted_cur`÷õ_Itemsa<:öõ_PaginaCorrenteb<: M:?set_curr_page@TDicForm@@JECXW4PagineQD@@@Zc +O:?inc_curr_page@TDicForm@@NECXXZdv. +Q:?next_page@TDicForm@@NECXAEVTPrinter@@@ZeZõõ_modulaserfZôõ_posizionagG8óõ_tipo_dittahòõ_num_foglioiñõ_cofi_dicjZðõ_can_print_tot_fisïõ_can_print_tot_nofiskZîõ_finite_fisíõ_finite_nofisìõ_LastDittaëõ_EndPrintDittalZêõ_GiaStampatiFiséõ_GiaStampatiNoFisèõ_PaginaPosizionamentomZçõ_GiaPosizionatoæõ_GiaMessoStartDoc/:åõ_GiaMessoStartPagenäõ_CtrNoFisStampatiãõ_CtrFisStampatioâõ_coddittapáõ_RigaCorrq]àõ_quadror·  +S:?cursor@TDicForm@@NFCPEVTCursor@@XZs´  +U:?relation@TDicForm@@NFCPEVTRelation@@XZtv. W:?stampa_testata@TDicForm@@JECXAEVTPrinter@@@Zuv. +Y:?stampa_totali@TDicForm@@NECXAEVTPrinter@@@Zv +[:?aggiorna_totali@TDicForm@@NECXD@Zwv.Z +_:?set_body@TDicForm@@NECXAEVTPrinter@@DE@Zx<:Z d:?StampaPagina@TDicForm@@JECXW4PagineQD@@EJJ@Zy f:?posiziona@TDicForm@@JECXXZzv. i:?fill_page@TDicForm@@JECXAEVTPrinter@@H@Z{w.+: m:?put_modulaser@TDicForm@@JECXAEVTPrintrow@@W4ModulaserKey@@H@Z| o:?ClearFlagModulaser@TDicForm@@JECXXZ}Z q:?PaginaPosizionamento@TDicForm@@JFCEXZ~Z +s:?InitPrint@TDicForm@@NECEJ@ZZßõ_UsaProgindƒ`u:?filtra@TDicForm@@REC?BJJ@Z„Záÿ`w:?UsaSortedCursor@TDicForm@@VECEXZ†é5@Þõ_progˆé5Z`z:?set_progind@TDicForm@@RECXPEVTProgind@@E@Z‰`|:?codditta@TDicForm@@RFCJXZŠ`~:?set_codditta@TDicForm@@RECXJ@Z‹Zàÿ`€:?set_posiziona@TDicForm@@RECXE@ZŒZ`‚:?can_print_tot_fis@TDicForm@@RECXE@ZZ`„:?can_print_tot_nofis@TDicForm@@RECXE@ZŽZ`†:?set_last_ditta@TDicForm@@RECXE@ZZ`ˆ:?last_ditta@TDicForm@@RFCEXZZ`Š:?EndJob@TDicForm@@RFCEXZ‘Z`Œ:?ultima_fis@TDicForm@@RECEXZ’Z`Ž:?ultima_nofis@TDicForm@@RECEXZ“`:?cofi_dic@TDicForm@@RECAEVTString@@XZ”`’:?set_cofi_dic@TDicForm@@RECXPFD@Z•G8`”:?tipo_ditta@TDicForm@@RFC?EW4TipoDitta@@XZ–G8`–:?set_tipo_ditta@TDicForm@@RECXW4TipoDitta@@@Z—Z`˜:?modulaser@TDicForm@@RFCEXZ˜Z`š:?set_modulaser@TDicForm@@RECXE@Z™`œ:?set_num_foglio@TDicForm@@RECXH@Zš`ž:?num_foglio@TDicForm@@RFCHXZ›` :?azzera_totali@TDicForm@@RECXXZœ<:`¢:?curr_page@TDicForm@@RFC?EW4PagineQD@@XZ· `¤:?cur@TDicForm@@RECAEVTCursor@@XZžZ`¨:?print@TDicForm@@VECEJJJ@Z ´ · `«:?set_cur_rel@TDicForm@@VECXPEVTRelation@@PEVTCursor@@@Z¢é5`­:?progind@TDicForm@@RECPEVTProgind@@XZ£Z`¯:?usaprogind@TDicForm@@RFCEXZ¤`²:??0TDicForm@@REC@PFD0@Z¥`´:??1TDicForm@@VEC@XZ +f:\nik\p.due\77\77stq.cppb<:M:?set_curr_page@TDicForm@@JECXW4PagineQD@@@Z M:Â:paginaöõÂ: r +S:?cursor@TDicForm@@NFCPEVTCursor@@XZ S:ùõ s +U:?relation@TDicForm@@NFCPEVTRelation@@XZ U:úõ {+: m:?put_modulaser@TDicForm@@JECXAEVTPrintrow@@W4ModulaserKey@@H@Z„@w:?UsaSortedCursor@TDicForm@@VECEXZ w: ˆ@z:?set_progind@TDicForm@@RECXPEVTProgind@@E@Z z:Ñ:progÒ:usaprogindÞõÑ:ßõÒ: ‰@|:?codditta@TDicForm@@RFCJXZ |:âõ Š@~:?set_codditta@TDicForm@@RECXJ@Z ~:Ø:dittaâõØ: ‹@€:?set_posiziona@TDicForm@@RECXE@Z €:Û:posizôõÛ:çõ Œ@‚:?can_print_tot_fis@TDicForm@@RECXE@Z ‚:Þ:canprðõÞ: @„:?can_print_tot_nofis@TDicForm@@RECXE@Z „:á:canprïõá: Ž@†:?set_last_ditta@TDicForm@@RECXE@Z †:ä:lastìõä: @ˆ:?last_ditta@TDicForm@@RFCEXZ ˆ:ìõ @Š:?EndJob@TDicForm@@RFCEXZ Š:ìõëõ “@:?cofi_dic@TDicForm@@RECAEVTString@@XZ :ñõ ”@’:?set_cofi_dic@TDicForm@@RECXPFD@Z ’:ð:cofiñõð: •G8@”:?tipo_ditta@TDicForm@@RFC?EW4TipoDitta@@XZ ”:óõ –G8@–:?set_tipo_ditta@TDicForm@@RECXW4TipoDitta@@@Z –:ö:tipoóõö: —@˜:?modulaser@TDicForm@@RFCEXZ ˜:õõ ˜@š:?set_modulaser@TDicForm@@RECXE@Z š:ü:modulõõü: ™@œ:?set_num_foglio@TDicForm@@RECXH@Z œ:ÿ:foglioòõÿ: š@ž:?num_foglio@TDicForm@@RFCHXZ ž:òõ œ<:@¢:?curr_page@TDicForm@@RFC?EW4PagineQD@@XZ ¢:öõ ¢@­:?progind@TDicForm@@RECPEVTProgind@@XZ ­:Þõ £@¯:?usaprogind@TDicForm@@RFCEXZ ¯:ßõ ¦A:¨· ©@¤:?cur@TDicForm@@RECAEVTCursor@@XZ ¤:ªw:«øõ ­ùõ °´ · ±@«:?set_cur_rel@TDicForm@@VECXPEVTRelation@@PEVTCursor@@@Z «:;rel;cur²úõ;³w:´øõ=#; ¶ùõ; ¹@²:??0TDicForm@@REC@PFD0@Z ²:;form;quadro;;º9/9/ƒƒƒƒƒƒƒƒƒƒ__¼ðõïõàÿ½êõéõæõàÿ¾çõôõõõàÿ¿ìõëõèõàÿÀo: Ä@´:??1TDicForm@@VEC@XZ ´:Æ;/ö‹ö‹ö‹ö‹ö‹ÿõ‹þõ‹ýõ‹üõ‹ûõ‹ñõàõ É@u:?filtra@TDicForm@@REC?BJJ@Z u:!;coddittaÊ$;itemsË%;filtrÍ%;!;uÎw:Ðøõ%;áÿ"Ñ$;øõs" Õùõ%;áÿ"Ö$;ùõs" Ù$; ÝZÞ +s:?InitPrint@TDicForm@@NECEJ@Z s:*;coddittaßâõ*;àáõâv.-;pr¤5ã-;/ /4ä-;/4å-;/4çôõçõ-;Þ32MM‡‡‡‡è-;Þ3š2MM‡‡‡‡êf: í-;Þ32MM‡‡‡‡îtïàÿòZ 2;was_open-;Ø3ôàÿ./õáÿÕ.ö8:M:ø2;-;Ð3ùàÿ úÀ$÷õ*;u:÷õàÿ Þõsþßõ-;Þ32MM‡‡‡‡ßõ +6;msg 6;*;u Þõé5÷õ6;àÿáÿõ5 áÿ Z@¨:?print@TDicForm@@VECEJJJ@Z ¨::;codditta;;NumFis<;NumNoFis· ?;curw:øõùõZ@;StabilitaInesistenzaNoFisàÿZA;StabilitaInesistenzaFisàÿB;CtrFis;;C;CtrNoFis<;D;PtrFisE;PtrNoFisv.F;pr¤5ãõäõîõíõàÿêõéõàÿ ëõàÿ!ZG;LastRecordàÿ#öõ8:$ßõàÿ&:;s:'àÿ )ëõ+M;paginaM;/:M;F;Q:-F;-:r3/öõ8:MM‡‡‡‡1õõo: 3T;righeT;0:T;6T;8?;D;D;9F;W: <îõA;@D;A;BZ];TrovatoàÿD];Fb;ditta?;{"qö‰Gb;:;Ie;tipo?;{"pö…Je;LD;?;q"M];áÿ Q?; SA;]; VA;Y?;D;Zj;tipo?;{"pö…\j;`B;aB;îõáÿ bF;ßõ_:dG;?;q"÷õeëõG;fG;h?;iD;?;q"jG;?;q"÷õ nD;?;q" qöõ9:MM‡‡‡‡tôõèõèõàÿ uq;righeq;1:q;wq;xF;4:i: zîõA;}?;D;~y;tipo?;{"pö…€y;„B;…B;îõáÿ †F;ßõ_:‡G;?;q"÷õˆëõG;‰G;‹?;ŒD;?;q"G;?;q"÷õ ‘D;?;q" ”öõ::MM‡‡‡‡–;righe;2:;˜;šF;5:i:›ãõ žîõA;¡?;D;¢‡;tipo?;{"pö…¤‡;¨B;©B;îõáÿ ªF;ßõ_:«G;?;q"÷õ¬ëõG;­ãõ®G;°?;±D;?;q"²G;?;q"÷õ ¶D;?;q" ¹öõ;:MM‡‡‡‡»;righe;3:;½;¾äõ Á;ÂF;6:i: Äíõ@;ÈE;@;ÊZ—;TrovatoàÿËZ˜;eofàÿÌ?;D;D;Í—;˜;Ϙ;?;q"÷õÐ;ditta?;{"qö‰Ñ;:;ÓŸ;tipo?;{"pö…ÔŸ;ÖE;?;q"×—;áÿ Û?; Ý@;—; à@;ã?;E;ä£;tipo?;{"pö…æ£;êC;ëC;íõáÿ ìF;ßõ_:íG;?;q"÷õîëõG;ïäõðG;ò?;óE;?;q"ôG;?;q"÷õ øE;?;q" üßõÞõ ýáÿ o:?ClearFlagModulaser@TDicForm@@JECXXZ o:®;i®;/:®;åõ®;àÿ Z@Œ:?ultima_fis@TDicForm@@RECEXZ Œ: ðõîõêõ  Z@Ž:?ultima_nofis@TDicForm@@RECEXZ Ž:ïõíõéõ  +O:?inc_curr_page@TDicForm@@NECXXZ O:öõ8:MM‡‡‡‡öõ9: öõ9:MM‡‡‡‡öõ:: öõ::MM‡‡‡‡öõ;: öõ;:MM‡‡‡‡öõ8:  w.+:!m:?put_modulaser@TDicForm@@JECXAEVTPrintrow@@W4ModulaserKey@@H@Z m:Ã;rowÄ;CmdÅ;page"È;riga$Ä;&':'æõ*È;+È;:,æõáÿ /(:1Ñ;cofi2Ò;tmpùõ—"}ö±3Ñ;Ò;u4Õ;ragsoc5Õ;ùõrù—"«ö±6È;7È;Ñ;8È;9È;Õ; :<):=È;>È;Å;?åõÅ;áÿA*:BÈ;: GÈ;eHÈ;IÃ;È;Â2 J MZNq:?PaginaPosizionamento@TDicForm@@JFCEXZ q:O¢:8:MM‡‡‡‡èõ Tv.Ui:?fill_page@TDicForm@@JECXAEVTPrinter@@H@Z i:à;prá;righeVw.ä;row¦2W<:å;pagina¢:Zá;\Zç;PrimaPagina¢:8:MM‡‡‡‡]è;stopq:,:-:^é;iáõé;è;é;`é;aõõcåõå;dä;):å;m: gé;è;iõõŠ:¢:;:MM‡‡‡‡jä;*:m:l] ó;ditta_ó;âõmä;ó;.:Â2 oà;ä;Ö3 qáõrª2 uõ;iõ;á;õ;wõ;õõåõå;xä;):å;m: zä;¶2 {à;ä;Ö3|áõ ~ª2 €v. +Y:?stampa_totali@TDicForm@@NECXAEVTPrinter@@@Z Y:ü;pr‚<:ÿ;PagCorr¢:ƒ….ÿõY<?ûõZ<@ýõ[<Aþõ\<Büõ]< D‹‹‹‹‹ GG:?aggiorna_totali_D1@TDicForm@@BECXD@Z G:l=rr==0b==$0cw.?=head_row==>=ø/f· @=curS:gA=r@={"hA=…B=p33aiA=…D=p33bjA=…F=p35akA=…H=p35blA=…J=p36amA=…L=p36bpN=iN=N=r„.S=c2==N=0s„.T=c7==N=0tU=srcuN=xU={U=~U=U=„U= ˆS=B=U=6û0‰T=L=U=6û0 Œ_=RIGHE_P3`=START_P3_COL3a=c3‘N=N=_=N=“a=`=N=”„.f=c5a==a=0•f=D=N=6û0 ™g=START_P3_COL5a=šh=c5›N=N=_=N=h=g=N=ž„.m=c6a==h=0Ÿm=H=N=6û0 £n=START_P3_COL6h=¤o=c6¥N=N=_=N=§o=n=N=¨„.t=c6a==o=0©t=J=N=6û0 ¬==&0­u=sez_righe==0®N=N=u=N=°9===N=ø/Ö3±áõ ³:=´Þõï5 ¸Z¹@ÊNUMPER_QUARTAy>NUM_RIGHEz>gap>äõ>|>}Ý=>i: ~ ä=á=&0‚[>j>â=>„Ý=á=>ø/Ö3…áõ ‡á=$0 ‹v.Œ=?stampa_testata@TDistintaG@@BECXAEVTPrinter@@@Z =….>head©.Ž[>r>0w.>head_row>>ø/’„.>nf>ö0“>fstr>òõ”>>û0•òõ – ˜v.Z™£=?set_body@TDistintaG@@FECXAEVTPrinter@@DE@Z £=>pr>tipo>progindš….>bodyy.¦.›>$0œ>&0>™=ž>body_righe>0Ÿ>i>>>¡>>>ø/Ö3¢áõ ¤>¥Þõï5 ©Zª@©=?print@TDistintaG@@VECEJJJ@Z ©=">codditta#>NumFis$>NumNoFis«· '>curS:­Z(>StabilitaInesistenzaNoFisàÿ®Z)>StabilitaInesistenzaFisàÿ¯*>CtrFis#>°+>CtrNoFis$>±,>PtrFis->PtrNoFis²v..>pr¤5´ãõäõµîõíõàÿ¶êõéõàÿ·ëõàÿ¸Z/>LastRecordàÿ¹öõ8:»âõ">¼áõ¾0>items">u:ÃëõÅ5>pagina5>”=5>.>Ÿ=Ç.>“=r3Éöõ8:MM‡‡‡‡Ëõõo: Í<>righe<>–=<>Ð<>Ò'>,>,>Ó.>= Öîõ)>Ú,>)>ÜZE>TrovatoàÿÞE>àJ>ditta'>{"Yö‰áJ>">ãL>tipo'>{"Xö…äL>æ,>'>q"çE>áÿ ë'> í)>E> ð)>ó'>,>ôP>tipo'>{"Xö…öP>ú*>û*>îõáÿ ü.>ßõ£=þ/>'>q"0>ÿëõ/>/>'>,>'>q"/>'>q"0> ,>'>q"  öõ9:MM‡‡‡‡ôõèõèõàÿ W>righeW>1:W>W>äõ W>.>•=i: íõ(>->(>Za>TrovatoàÿZb>eofàÿ '>,>,>!a>b>#b>'>q"0>$g>ditta'>{"Yö‰%g>">'i>tipo'>{"Xö…(i>*->'>q"+a>áÿ /'> 1(>a> 4(>7'>->8m>tipo'>{"Xö…:m>>+>?+>íõáÿ @.>ßõ£=A/>'>q"0>Bëõ/>CäõD/>F'>G->'>q"H/>'>q"0> L->'>q" PßõÞõ Qáÿ gu>TStDicArray u>h {jFÓõ_storel`w>??ATStDicArray@@RECAEVTToken_string@@H@Zm`y>?curr_index@TStDicArray@@RFCHXZnG8oZàÿZàÿsþ`>?set@TStDicArray@@RECXHW4TipoDitta@@HHEEPFD@ZpG8`„>?set_tipo@TStDicArray@@RECXHW4TipoDitta@@@ZqZ`‡>?set_ultima_con_fis@TStDicArray@@RECXHE@ZrZ`Š>?set_ultima_con_nofis@TStDicArray@@RECXHE@ZsZZ`Ž>?set_flag_tipi@TStDicArray@@RECXHEE@Zt`’>?set_ctr_tipi@TStDicArray@@RECXHHH@ZuG8vZàÿZàÿsþ`š>?add@TStDicArray@@RECXJW4TipoDitta@@HHEEPFD@Zw`œ>?items@TStDicArray@@RFCHXZx`ž>?destroy@TStDicArray@@RECXXZ +f:\nik\p.due\77\77stq.cppm@y>?curr_index@TStDicArray@@RFCHXZ y>Óõj oG8E8`>?set@TStDicArray@@RECXHW4TipoDitta@@HHEEPFD@ZvG8E8`š>?add@TStDicArray@@RECXJW4TipoDitta@@HHEEPFD@Zw@œ>?items@TStDicArray@@RFCHXZ œ>Óõ^ x@ž>?destroy@TStDicArray@@RECXXZ ž>Óõw yu>|}@w>??ATStDicArray@@RECAEVTToken_string@@H@Z w>Ç>i~:ÓõÇ>ˆ: ‚Zƒ@‡>?set_ultima_con_fis@TStDicArray@@RECXHE@Z ‡>Ì>indexÍ>ultima_fis„ÓõÌ>Ñ>riga…Ñ>Í>0†ÓõÑ>Ì>€ ‰ZŠ@Š>?set_ultima_con_nofis@TStDicArray@@RECXHE@Z Š>Ò>indexÓ>ultima_nofis‹ÓõÒ>×>rigaŒ×>Ó>0Óõ×>Ò>€ ZZ‘@Ž>?set_flag_tipi@TStDicArray@@RECXHEE@Z Ž>Ø>indexÙ>ultima_fisÚ>ultima_nofis’ÓõØ>Þ>riga“Þ>Ù>0”Þ>Ú>0•ÓõØ>Þ> ™@’>?set_ctr_tipi@TStDicArray@@RECXHHH@Z ’>ß>indexà>num_fisá>num_nofisšÓõß>å>riga›å>à>0œå>á>0Óõß>å>  G8¡ZZ¢@>?set@TStDicArray@@RECXHW4TipoDitta@@HHEEPFD@Z >æ>indexç>tipoè>num_fisé>num_nofisê>ultima_con_fisë>ultima_con_nofisì>cofi_dic£Óõæ>ð>riga¤ð>ç>0¥ð>è>0¦ð>é>0§ð>ê>0¨ð>ë>0©ñ>codfisñ>ì>ì>ªð>ñ>'«Óõæ>ð> ¬ ®G8¯ZZ°@š>?add@TStDicArray@@RECXJW4TipoDitta@@HHEEPFD@Z š>ó>coddittaô>tipoõ>num_fisö>num_nofis÷>ultima_con_fisø>ultima_con_nofisù>cfdic±ü>key³ü>ó>ô>õ>ö>÷>ø>ù>ù>u´Óõü>€ µ ¿þ>TStampaQuadro þ>À ÑÂA:Òõ_formÃO(Ñõ_mÄ´ Ðõ_relÅ· Ïõ_curÆ=#Îõ_sorted_curÇ]Íõ_quadroÈ„Ìõ_titleÉËõ_livelloÊÊõ_coddittaËu>Éõ_ditteÌ $Èõ_cnfÍ]Çõ_sectionÎZÆõ_singola_dittaÏÅõ_anno_dicÑ +??build_form@TStampaQuadro@@NECXXZÒ·  +??build_cursor@TStampaQuadro@@NECPEVTCursor@@XZÔ +??on_config_change@TStampaQuadro@@NECXXZÕ +??fill_estinti@TStampaQuadro@@NECXJ@ZÖ +??print@TStampaQuadro@@NECXXZ×Z + +??create@TStampaQuadro@@NECEXZØZ + ??destroy@TStampaQuadro@@NECEXZÙZ] +??menu@TStampaQuadro@@NECEF@ZÚ +??mask@TStampaQuadro@@NECPFDPFD@ZÛZ +??print_quadro@TStampaQuadro@@NECEAEVTString@@H@ZÜZáÿ +??UsaSortedCursor@TStampaQuadro@@NFCEXZÝZáÿ +??ContaTipiPer@TStampaQuadro@@NFCEXZà=#`??sorted_cur@TStampaQuadro@@VFCPEVTSorted_cursor@@XZâ`??taitol@TStampaQuadro@@RECPFDXZã`???0TStampaQuadro@@REC@PFDD@Z +f:\nik\p.due\77\77stq.cppÛ +??print_quadro@TStampaQuadro@@NECEAEVTString@@H@ZÜ +??UsaSortedCursor@TStampaQuadro@@NFCEXZ ? Ý +??ContaTipiPer@TStampaQuadro@@NFCEXZ ? à@??sorted_cur@TStampaQuadro@@VFCPEVTSorted_cursor@@XZ ?Îõ â@??taitol@TStampaQuadro@@RECPFDXZ ?Ìõ äþ>ç +??on_config_change@TStampaQuadro@@NECXXZ ?è $ÆõÌøÉø??confO$O$éÅõ??8Çõ$ êT$ í@???0TStampaQuadro@@REC@PFDD@Z ?A?quadroB?liv:_†_îÍõA?_ïËõB?ðÆõËõñÌõ†òÌõÍõ õö:?form@@ZAPFDAEVTString@@@Z :F?quadro÷:_ø:F?ù: þ +??mask@TStampaQuadro@@NECPFDPFD@Z ? ·  +??build_cursor@TStampaQuadro@@NECPEVTCursor@@XZ ?ÍõÐõ´ >ù7!7!Ðõ>ù !Ðõrù! Ðõuùrù! +Ðõsùuù! Ðõnùsù! Ðõnùuù!Ðõuù>ù!Ðõ !Ðõsù!Ðõnù!Ðõnù!Îõ=#ÐõS# ÍõÐõ´ =ù7!7!Ðõ=ù !Ðõrù!Ðõuùrù!Ðõsùuù!Ðõnùsù!Ðõnùuù!Ðõuù=ù!Ðõ ! Ðõsù!!Ðõnù!"Ðõnù!#Îõ=#ÐõS# &Íõ(Ðõ´ <ù7!7!)Ðõ<ù !*Ðõrù!+Ðõuùrù!,Ðõsùuù!-Ðõnùsù!.Ðõnùuù!/Ðõuù<ù!0Ðõ !1Ðõsù!2Ðõnù!3Ðõnù!4Îõ=#ÐõS# 7Íõ9Ðõ´ ;ù7!7!:Ðõ;ù !;Ðõrù!<Ðõuùrù!=Ðõsùuù!>Ðõnùsù!?Ðõnùuù!@Ðõuù;ù!AÐõ !BÐõsù!CÐõnù!DÐõnù!EÎõ=#ÐõS# HÍõJÐõ´ :ù7!7!KÐõ:ù !LÐõrù!MÐõuùrù!NÐõsùuù!OÐõnùsù!PÐõnùuù!QÐõuù:ù!RÐõ !SÐõsù!TÐõnù!UÐõnù!VÎõ=#ÐõS# XÎõ \ +??build_form@TStampaQuadro@@NECXXZ ?]ÒõA:Íõ:Íõ²: `Za + +??create@TStampaQuadro@@NECEXZ +?bçc::1ý7ýsþý+ýXXý+ýe?fÇõagÇõwhÈõ $ÉøÇõO$iÑõO(Íõ?›,›,jÑõ?ž-lÆõnÊõ^8oÑõPöÊõM‡1- sÑõOöq-tÑõMöO‰%-uÑõMöo- x?yÎõ=#? {Ïõ? }âö~áÿ Z‚ + ??destroy@TStampaQuadro@@NECEXZ ?ƒÑõ„Ðõ…?†Îõ ˆÏõ ‰ÈõŠÒõ‹î ŽZ] +??menu@TStampaQuadro@@NECEF@Z ?^œ?k‘ÑõNöÅõM‡1-’œ?ÑõÝ%»ø“? ”àÿ ™Zš +??print_quadro@TStampaQuadro@@NECEAEVTString@@H@Z ?¢?OffsetDitta›¥?start¦?lastž¤5-:r3ŸZ§?ok¤5Ð3 Z¨?modulaserÑõLö9-¢ÒõÐõÎõ«:¤Òõ :¥Òõ¨?š:ªÒõáÿ€:¬¢?®¥?¢?¯¦?¢? ²¦?Éõœ> ´«?i¥?«?¦?«?¶°?CoFiDic·Éõ«?±?riga¸±?¹²?codditta±?6_ºG8³?tipoG8±?:»µ?fis±?<¼¶?nofis±?<½Z·?LastFisZ±?:¾Z¹?LastNoFisZ±?:³?E8MM‡‡‡‡³?F8MM‡‡‡‡ÃÒõ : ų?D8MM‡‡‡‡Æ°?±?6 È?ËZ¿?StampaTotaliFis³?E8MM‡‡‡‡Ì³?D8MM‡‡‡‡·?ÎZÀ?StampaTotaliNoFis³?E8MM‡‡‡‡Ï³?D8MM‡‡‡‡¹?ÒÒõ¿?‚:ÓÒõÀ?„: ×Òõ³?–:Û³?E8MM‡‡‡‡³?F8MM‡‡‡‡ÜÒõœ: ß³?D8MM‡‡‡‡àÒõ°?’: ã«?¦?äÒõáÿ†: æÒõ²?µ?¶?¨: çé¤5Ò3ê§? î +??fill_estinti@TStampaQuadro@@NECXJ@Z ?Å?CodDicïÈ?NumFisicheÉ?NumNoFisicheðÊ?CodFiDicóÊ?Å?h8õ?÷Å?ÍõÈ?É?U8øÉõÅ?F8È?É?š> ûÉõÅ?F8š> ýÍ?index_dichÉõy>þZÎ?gia_trovata_ultima_fisàÿÿZÏ?gia_trovata_ultima_nofisàÿÐ?indexÍ?WùÑ?base  Ñ?:Ñ?ÐÑ?u÷Å?‡M·Ñ?ŠÔ?depÑ Ñ?XÑ?ŒÑ?D Ñ?ŠÔ?Ú?tipoquaÑ?t÷±Ú?8Ý?DittaEstintaÑ?v÷¢?Ý?ÍõÈ?É?U8ÉõÝ?D8È?É?àÿàÿÊ?š> ÉõÝ?D8àÿàÿÊ?š> ? È?Î?"ÉõÐ?áÿ‡>#Î?áÿ &É?Ï?(ÉõÐ?áÿŠ>)Ï?áÿ ,Ð? /?2Î?3ÉõÐ?áÿ‡> 5Ï?6ÉõÐ?áÿŠ> 8Ó  ; +??print@TStampaQuadro@@NECXXZ ?<é?NumFisicheê?NumNoFisiche>Éõž>@ÆõBÊõ\8DÊõl IZî?dichÊõZ8Jî?KÊõ? NÊõÍõé?ê?U8OÉõÊõE8é?ê?š> Vò?codditta_prec^8Wó?coddittaXô?iYó?Èõ8Çõô?$[ó?\8_Z ú?dichó?Z8`ú?aó?? dó?Íõé?ê?U8eÉõó?E8é?ê?š> hò?`8 jÍõ? sý?TStampaQuadroG ý?t þ>v²<Äõ_form_gw—=Ãõ_form_gdxO(Âõ_my´ Áõ_rel_gÀõ_rel_gdz· ¿õ_cur_g¾õ_cur_gd{½õ_codditta|u>¼õ_ditte}Z»õ_singola_ditta +ÿ??print@TStampaQuadroG@@NECXXZ‚Z +@?create@TStampaQuadroG@@NECEXZƒZ +@?destroy@TStampaQuadroG@@NECEXZ„Z +@?print_quadro@TStampaQuadroG@@NECEAEVTString@@H@Z‡` @??0TStampaQuadroG@@REC@PFDD@Z +f:\nik\p.due\77\77stq.cpp„ +@?print_quadro@TStampaQuadroG@@NECEAEVTString@@H@Z‡@ @??0TStampaQuadroG@@REC@PFDD@Z @@quadro@livel@@? ˆý?ŠZ‹ +@?create@TStampaQuadroG@@NECEXZ @Œç::1ý7ýsþý+ýXXý+ýŽÄõ²<ÍõÐ<Ãõ—=Íõ¬=Çõa‘Çõw’Èõ $ÉøÇõO$“ÂõO(›,›,”Âõ?ž-–»õ˜½õ^8™ÂõPö½õM‡1- ÂõOöq-žÂõMöO‰%-ŸÂõMöo- ¢Áõ´ 5ù7!7!£Áõrù!¤Áõuùrù!¥Áõsùuù!¦Áõnùsù!§Áõnùuù!¨¿õ· Áõº"º"ªÀõ´ ù7!7!«Àõuùù!¬Àõ !­Àõsù!®Àõnù!¯Àõnù!°¾õ=#ÀõS#²âö³áÿ ¶Z· +@?destroy@TStampaQuadroG@@NECEXZ @¸Âõ¹ÁõºÀõ»¾õ¼¿õ½Èõ¾Äõ¿ÃõÀî ÅZÆ +@?print_quadro@TStampaQuadroG@@NECEAEVTString@@H@Z @N@OffsetDittaÇQ@startR@lastÈS@items_gT@items_gdÊS@T@ͤ5¯<r3ÎZU@ok¤5Ð3ÏZV@modulaserÂõLö9-ÑÄõÁõ¿õ«:ÒÃõÀõ¾õ«:ÔÄõV@š:ÕÃõV@š:×Ãõ :ÜÄõáÿ€:ÞN@àQ@N@áR@N@ äR@¼õœ> æY@iQ@Y@R@Y@è^@CoFiDicé¼õY@_@rigaê_@ë`@codditta_@6_ìG8a@tipoG8_@:íc@fis_@<îd@nofis_@<ïZe@LastFisZ_@:ðZg@LastNoFisZ_@:ôa@E8MM‡‡‡‡a@F8MM‡‡‡‡õÄõ : ÷a@D8MM‡‡‡‡ø^@_@6ûZ l@StampaTotaliFisa@E8MM‡‡‡‡üa@D8MM‡‡‡‡e@þZm@StampaTotaliNoFisa@E8MM‡‡‡‡ÿa@D8MM‡‡‡‡g@ Ãõl@‚: Ãõm@„: Äõa@–: + a@E8MM‡‡‡‡a@F8MM‡‡‡‡ Äõœ:  a@D8MM‡‡‡‡ Äõ^@’:  Y@R@ Ãõáÿ†:  S@Äõ`@u: T@Ãõ`@u: ÄõS@T@Í< Äõ`@c@d@Ê< ÃõÄõ­:Äõ¯:z: Ãõ`@c@d@©=  ! ¤5Ò3" U@ c  +ÿ??print@TStampaQuadroG@@NECXXZ ÿ?d u@NumFisichev@NumNoFisichef ¼õž>h »õj ½õ\8l ½õl q Zy@dich½õZ8r y@s ½õ? v ½õÍõu@v@U8w ¼õ½õE8u@v@š> ~ }@codditta_prec^8 ~@codditta€ @i ~@Èõ8Çõ@$ƒ ~@\8‡ Z …@dich~@Z8ˆ …@‰ ~@? Œ ~@Íõu@v@U8 ¼õ~@E8u@v@š>  }@`8 ’ Íõ@ œ öùˆ@QG1_FORMLEN öù‰@QG1_PAGINEŸ Š@TQuadroG1 Š@  A:¢ ºõ_items£ v.Z @?stampa_prospetto@TQuadroG1@@BECXAEVTPrinter@@E@Z¦ Zàÿ`@?UsaSortedCursor@TQuadroG1@@VECEXZ§ Z`‘@?print@TQuadroG1@@VECEJ@Z© `”@??0TQuadroG1@@REC@PFD0@Zª `–@??1TQuadroG1@@VEC@XZ +f:\nik\p.due\77\77stq.cpp¦ @@?UsaSortedCursor@TQuadroG1@@VECEXZ @ © @”@??0TQuadroG1@@REC@PFD0@Z ”@§@form¨@quadro§@¨@²: « Š@® @–@??1TQuadroG1@@VEC@XZ –@° ´: ² Z³ @‘@?print@TQuadroG1@@VECEJ@Z ‘@®@codditta´ · ±@curS:µ v.²@pr¤5¶ ßõàÿ¸ ®@s:¹ àÿ » ²@ˆ@r3½ õõo: ¿ ±@À ²@ßõ@ áÿ Å v.ZÆ @?stampa_prospetto@TQuadroG1@@BECXAEVTPrinter@@E@Z @µ@prÇ ….¹@head©.È [º@rr¹@0É w.»@head_row¹@º@ø/Ì ”:D8MM‡‡‡‡Î „.½@cfd¹@ö0Ï ½@ñõû0 Ò · ¾@curS:Ô ¿@r¾@{"Õ ¿@…À@p12Ö ¿@…Â@p13× ¿@…Ä@p14Ø ¿@…Æ@p15Ù ¿@…È@p16Ú ¿@…Ê@p17Ü Ì@START_PROSPÝ Í@RIGHE_COL356Þ Î@RIGHE_COL27ß Ï@COL_PROSPâ Ð@iÐ@Î@Ð@ä Õ@fc2Ì@Ð@å „.Ö@c2¹@Õ@0æ Ö@À@Ð@6û0è ×@fc7Õ@Î@é „.Ø@c7¹@×@0ê Ø@Ê@Ð@6û0 í Ù@START_COL3ï Ð@Ð@Í@Ð@ñ Þ@fc3Ù@Ð@ò „.ß@c3¹@Þ@0ó ß@Â@Ð@6û0õ à@fc5Þ@Í@ö „.á@c5¹@à@0÷ á@Æ@Ð@6û0ù â@fc6à@Í@ú „.ã@c6¹@â@0û ã@È@Ð@6û0  +ä@HEADER_PRIMA_NOPOS +¹@&0 +[å@jå@º@å@ +å@ +õõ +w.ì@r¹@å@ø/ +æõ + +ì@':m:  +ì@(:m: +ì@):m: +µ@ì@Ö3 +áõ +ì@¶2 +ä@  +q: +µ@ä@i:  +µ@¹@å@ø/Ö3 +áõ " +ð@TStampaQuadroG1 ð@# + þ>% +Š@¹õ_form& +´ ¸õ_rel' +· ·õ_cur* +Zàÿ +ò@?ContaTipiPer@TStampaQuadroG1@@NFCEXZ+ +Zàÿ +ô@?UsaSortedCursor@TStampaQuadroG1@@NFCEXZ, + +ö@?build_form@TStampaQuadroG1@@NECXXZ- +·  +ø@?build_cursor@TStampaQuadroG1@@NECPEVTCursor@@XZ/ +Z +ú@?destroy@TStampaQuadroG1@@NECEXZ1 + +ü@?print@TStampaQuadroG1@@NECXXZ3 +`ÿ@??0TStampaQuadroG1@@REC@PFDD@Z +f:\nik\p.due\77\77stq.cpp* + +ò@?ContaTipiPer@TStampaQuadroG1@@NFCEXZ ò@ + + +ô@?UsaSortedCursor@TStampaQuadroG1@@NFCEXZ ô@ 3 +@ÿ@??0TStampaQuadroG1@@REC@PFDD@Z ÿ@AquadroAlivelAA? 4 +ð@7 + +ö@?build_form@TStampaQuadroG1@@NECXXZ ö@8 +¹õŠ@Íõ”@ ; +· < + +ø@?build_cursor@TStampaQuadroG1@@NECPEVTCursor@@XZ ø@= +¸õ´ 4ù7!7!> +¸õrù!? +¸õuùrù!@ +¸õsùuù!A +¸õnùsù!B +¸õnùuù!C +·õ· ¸õº"º"D +·õ G +ZH + +ú@?destroy@TStampaQuadroG1@@NECEXZ ú@I +ÑõJ +¸õK +·õL +ÈõM +¹õO +î ½ + +ü@?print@TStampaQuadroG1@@NECXXZ ü@¾ +6ANumFisiche7ANumNoFisicheÀ +Éõž> +ÆõÄ +Êõ\8Æ +Êõl Ë +Z:AdichÊõZ8Ì +:AÍ +Êõ? Ï +ÉõÊõE8š> Õ +>Acodditta_prec^8Ö +?Acodditta× +@AiØ +?AÈõ8Çõ@A$Ú +?A\8Þ +Z FAdich?AZ8ß +FAà +?A? â +Éõ?AE8š> å +>A`8 ç +Íõ? ÷ +@KA?stampa_quadro@@ZAHHQEPED@Z KAIAargcJAargvø +IAú +JANAquadroû +OAlivelloJAý +NANANANAþ +NA þ>NAOARAapp? RAIAJARA?ú  NA ý?NAOAUAapp @ UAIAJAUA?ú  + NA ð@NAOAXAappÿ@ XAIAJAXA?ú    öùYAQF_FORMLEN öùZAQF_PAGINE [ATQuadroF [A A: ¶õ_items! v.Z ^A?stampa_prospetto_A@TQuadroF@@BECXAEVTPrinter@@E@Z$ Zàÿ``A?UsaSortedCursor@TQuadroF@@VECEXZ% Z`bA?print@TQuadroF@@VECEJ@Z' `eA??0TQuadroF@@REC@PFD0@Z( `gA??1TQuadroF@@VEC@XZ +f:\nik\p.due\77\77stq.cpp$ @`A?UsaSortedCursor@TQuadroF@@VECEXZ `A ' @eA??0TQuadroF@@REC@PFD0@Z eAxAformyAquadroxAyA²: ( @gA??1TQuadroF@@VEC@XZ gA´: ) [A+ Z, @bA?print@TQuadroF@@VECEJ@Z bAAcodditta- · ‚AcurS:. v.ƒApr¤5/ ßõàÿ1 As:2 àÿ 4 ƒAˆ@r36 õõo: 8 ‚A9 ƒAßõ^A; áÿ > v.Z? ^A?stampa_prospetto_A@TQuadroF@@BECXAEVTPrinter@@E@Z ^A†Apr@ ….ŠAhead©.A [‹ArrŠA0B w.ŒAhead_rowŠA‹Aø/E ”:D8MM‡‡‡‡G „.ŽAcfdŠAö0H ŽAñõû0 K · AcurS:M ArA{"N A…‘Ap12O A…’Ap13P A…“Ap14Q A…”Ap15R A…•Ap16S A…–Ap17U —ASTART_PROSPV ˜ARIGHE_COL356W ™ARIGHE_COL27X šACOL_PROSP[ ›Ai›A™A›A]  Afc2—A›A^ „.¡Ac2ŠA A0_ ¡A‘A›A6û0a ¢Afc7 A™Ab „.£Ac7ŠA¢A0c £A–A›A6û0 f ¤ASTART_COL3h ›A›A˜A›Aj ©Afc3¤A›Ak „.ªAc3ŠA©A0l ªA’A›A6û0n «Afc5©A˜Ao „.¬Ac5ŠA«A0p ¬A”A›A6û0r ­Afc6«A˜As „.®Ac6ŠA­A0t ®A•A›A6û0 y ¯AHEADER_PRIMA_NOPOSz ŠA&0{ [°Aj°A‹A°A} °A õõ w.·ArŠA°Aø/‚ æõƒ ·A':m: „ ·A(:m:… ·A):m:† †A·AÖ3‡ áõˆ ·A¶2‰ ¯A ‹ q:Œ †A¯Ai:  †AŠA°Aø/Ö3‘ áõ + \ No newline at end of file diff --git a/m770/77stqd.h b/m770/77stqd.h new file mode 100755 index 000000000..2f4dea188 --- /dev/null +++ b/m770/77stqd.h @@ -0,0 +1,8 @@ +// 77stqd.h - Stampa quadro D +#define F_CODDITTA 101 +#define F_RAGDITTA 102 +#define F_ANNO 103 +#define F_TEXT 104 +#define F_MODULASER 105 + + diff --git a/m770/77stqd.uml b/m770/77stqd.uml new file mode 100755 index 000000000..b4e0d5845 --- /dev/null +++ b/m770/77stqd.uml @@ -0,0 +1,64 @@ +// 77stqd.uml - Stampa quadro D +#include "77stqd.h" +PAGE "Stampa quadro D" -1 -1 60 9 + +GROUPBOX DLG_NULL 59 4 +BEGIN + PROMPT 1 0 "" +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 1 "Stampa " +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 8 1 "" + FLAGS "GRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGDITTA RAGSOC +END + +STRING F_TEXT 50 +BEGIN + PROMPT 8 2 "" + FLAGS "DG" +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 8 2 "" + FLAGS "D" +END + +NUMBER F_ANNO 4 +BEGIN + PROMPT 1 5 "Anno dichiarazione " + FLAGS "D" +END + +BOOLEAN F_MODULASER +BEGIN + PROMPT 40 5 " Modulaser " +END + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -1 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/77toolb.h b/m770/77toolb.h new file mode 100755 index 000000000..7e96138d3 --- /dev/null +++ b/m770/77toolb.h @@ -0,0 +1,39 @@ +BUTTON DLG_SAVEREC 8 2 +BEGIN +PROMPT -16 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_NEWREC 8 2 +BEGIN +PROMPT -26 -1 "~Nuovo" +MESSAGE EXIT,K_INS +FLAGS "D" +END + +BUTTON DLG_DELREC 8 2 +BEGIN +PROMPT -36 -1 "~Elimina" +MESSAGE EXIT,K_DEL +FLAGS "D" +END + +BUTTON DLG_FINDREC 8 2 +BEGIN +PROMPT -46 -1 "Ri~cerca" +MESSAGE EXIT,K_F9 +FLAGS "D" +END + +BUTTON DLG_CANCEL 8 2 +BEGIN +PROMPT -56 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 8 2 +BEGIN +PROMPT -66 -1 "" +MESSAGE EXIT,K_QUIT +END + diff --git a/m770/anadip.h b/m770/anadip.h new file mode 100755 index 000000000..c93dce472 --- /dev/null +++ b/m770/anadip.h @@ -0,0 +1,56 @@ +#ifndef _ANADIP_H +#define _ANADIP_H + +// Campi maschera manutenzione anagrafica dipendenti +#define ADF_CODDITTA 181 +#define F_RAGSOCIALE 102 +#define ADF_DIP_CODDIP 103 +#define F_DIP_CODFI 104 +#define F_DIP_COGNOME 105 +#define F_DIP_NOME 106 +#define F_DIP_SESSO 107 +#define F_DIP_DATANA 108 +#define F_DIP_COMUNENA 109 +#define F_DIP_PROVNA 110 +#define F_DIP_COMUNERE 111 +#define F_DIP_PROVRE 112 +#define F_DIP_INDRE 113 +#define F_DIP_QUALIFICA 114 +#define F_DIP_STATOCIV 115 +#define F_DIP_EREDE 116 +#define F_DIP_CODEREDE0 117 +#define F_DIP_CODEREDE1 118 +#define F_DIP_CODEREDE2 119 +#define F_DIP_CODEREDE3 120 +#define F_DIP_CODEREDE4 121 +#define F_DIP_CODEREDE5 122 +#define F_DIP_CODEREDE6 123 +#define F_DIP_CODEREDE7 124 +#define F_DIP_CODEREDE8 125 +#define F_DIP_CODEREDE9 126 +#define F_DIP_COGNEREDE0 127 +#define F_DIP_COGNEREDE1 128 +#define F_DIP_COGNEREDE2 129 +#define F_DIP_COGNEREDE3 130 +#define F_DIP_COGNEREDE4 131 +#define F_DIP_COGNEREDE5 132 +#define F_DIP_COGNEREDE6 133 +#define F_DIP_COGNEREDE7 134 +#define F_DIP_COGNEREDE8 135 +#define F_DIP_COGNEREDE9 136 +#define F_DIP_NOMEREDE0 137 +#define F_DIP_NOMEREDE1 138 +#define F_DIP_NOMEREDE2 139 +#define F_DIP_NOMEREDE3 140 +#define F_DIP_NOMEREDE4 141 +#define F_DIP_NOMEREDE5 142 +#define F_DIP_NOMEREDE6 143 +#define F_DIP_NOMEREDE7 144 +#define F_DIP_NOMEREDE8 145 +#define F_DIP_NOMEREDE9 146 + +// Aggiunte 96 +#define ADF_CODDIPDEC 147 +#define ADF_ASSFIS 148 + +#endif diff --git a/m770/ba3200.h b/m770/ba3200.h new file mode 100755 index 000000000..b9ce525e8 --- /dev/null +++ b/m770/ba3200.h @@ -0,0 +1,36 @@ +#ifndef __BA3200_H +#define __BA3200_H + +#define F_INIZIO0 100 +#define F_INIZIO1 101 +#define F_INIZIO2 102 +#define F_INIZIO3 103 +#define F_INIZIO4 104 +#define F_INIZIO5 105 +#define F_INIZIO6 106 +#define F_INIZIO7 107 +#define F_INIZIO8 108 +#define F_INIZIO9 109 +#define F_INIZIO10 110 +#define F_FINE1 201 +#define F_FINE2 202 +#define F_FINE3 203 +#define F_FINE4 204 +#define F_FINE5 205 +#define F_FINE6 206 +#define F_FINE7 207 +#define F_FINE8 208 +#define F_FINE9 209 +#define F_FINE10 210 + +#define F_CODDITTA 211 +#define F_RAGSOC 212 + +#define F_DATASTAMPA 213 + +#endif + + + + + diff --git a/m770/base.h b/m770/base.h new file mode 100755 index 000000000..bdfb2eaf9 --- /dev/null +++ b/m770/base.h @@ -0,0 +1,103 @@ +// Mod.770 - Archivio BASE + +#define BSE_CODDITTA "CODDITTA" +#define BSE_CODDIC "CODDIC" +#define BSE_TIPOQUA "TIPOQUA" +#define BSE_CODDATLAV "CODDATLAV" +#define BSE_ANNODIC "ANNODIC" +#define BSE_ER92C93 "ER92C93" +#define BSE_ER93C94 "ER93C94" +#define BSE_NATTVER "NATTVER" +#define BSE_EVNATTEC "EVNATTEC" +#define BSE_CODCAAF "CODCAAF" +#define BSE_CODPRO "CODPRO" +#define BSE_N73093ALL "N73093ALL" +#define BSE_SERIE "SERIE" +#define BSE_DATAVERS "DATAVERS" +#define BSE_NUMERO "NUMERO" +#define BSE_A0NFCOM "A0NFCOM" +#define BSE_A0NLDIP "A0NLDIP" +#define BSE_A0COBB "A0COBB" +#define BSE_A0CNET "A0CNET" +#define BSE_A0EPREV "A0EPREV" +#define BSE_A0IITRA "A0IITRA" +#define BSE_A0CTER "A0CTER" +#define BSE_A0TIMP "A0TIMP" +#define BSE_A0ILOR "A0ILOR" +#define BSE_A0TDET "A0TDET" +#define BSE_A0RTER "A0RTER" +#define BSE_A0RDAT "A0RDAT" +#define BSE_A0ERIT "A0ERIT" +#define BSE_A0CARR "A0CARR" +#define BSE_A0AARR "A0AARR" +#define BSE_A0DARR "A0DARR" +#define BSE_A0RARR "A0RARR" +#define BSE_A0RITSI "A0RITSI" +#define BSE_A0CINPS "A0CINPS" +#define BSE_A0RITOPEVA "A0RITOPEVA" +#define BSE_A0RITOPESA "A0RITOPESA" +#define BSE_A0CIIAUT "A0CIIAUT" +#define BSE_A0NADLAV "A0NADLAV" +#define BSE_A0NACAAF "A0NACAAF" +#define BSE_A0CRIMPRAS "A0CRIMPRAS" +#define BSE_A3NFCOM "A3NFCOM" +#define BSE_A3NUMPER "A3NUMPER" +#define BSE_A3REPT10 "A3REPT10" +#define BSE_A3REPT12 "A3REPT12" +#define BSE_B0NFCOM "B0NFCOM" +#define BSE_B0NLDIP "B0NLDIP" +#define BSE_B0TFR93 "B0TFR93" +#define BSE_B0AI "B0AI" +#define BSE_B0COLAV "B0COLAV" +#define BSE_B0TFR7492 "B0TFR7492" +#define BSE_B0AI7492 "B0AI7492" +#define BSE_B0RITSI "B0RITSI" +#define BSE_B0IMP "B0IMP" +#define BSE_B0TIMP "B0TIMP" +#define BSE_B0ROP "B0ROP" +#define BSE_B0AIINPS "B0AIINPS" +#define BSE_B0ROPESA "B0ROPESA" +#define BSE_B0CIIAUT "B0CIIAUT" +#define BSE_B1NFCOM "B1NFCOM" +#define BSE_B1NPER "B1NPER" +#define BSE_B1TIND "B1TIND" +#define BSE_B1TIRM "B1TIRM" +#define BSE_B1TICOM "B1TICOM" +#define BSE_C0NFCOM "C0NFCOM" +#define BSE_C0NLASS "C0NLASS" +#define BSE_C0ACTOT "C0ACTOT" +#define BSE_C0SNSRIT "C0SNSRIT" +#define BSE_C0ROPE "C0ROPE" +#define BSE_C0CIIAUT "C0CIIAUT" +#define BSE_D0NFCOM "D0NFCOM" +#define BSE_D0NLAUT "D0NLAUT" +#define BSE_D0ACTOT "D0ACTOT" +#define BSE_D0SNSRIT "D0SNSRIT" +#define BSE_D0ROPE "D0ROPE" +#define BSE_D0CIIAUT "D0CIIAUT" +#define BSE_D1NFCOM "D1NFCOM" +#define BSE_D1NPER "D1NPER" +#define BSE_D1TACOR "D1TACOR" +#define BSE_D1SNSRIT "D1SNSRIT" +#define BSE_D1ROPE "D1ROPE" +#define BSE_QCOMP "QCOMP" +#define BSE_QSUPPINV "QSUPPINV" +#define BSE_NSUPPM "NSUPPM" +#define BSE_LUOVERS "LUOVERS" +#define BSE_TIPOVERS "TIPOVERS" +#define BSE_RSS "RSS" +#define BSE_FLART4 "FLART4" +#define BSE_QSUPPRIC "QSUPPRIC" +#define BSE_DITTACAAF "DITTACAAF" + +#define I8_1 "B0NFCOM" +#define I8_2 "B0NLDIP" +#define I8_3 "B0TFR93" +#define I8_4 "B0AI" +#define I8_5 "B0COLAV" +#define I8_6 "B0TFR7492" +#define I9_7 "B0AI7492" +#define I9_8 "B0IMP" +#define I9_9 "B0TIMP" +#define I9_10 "B0ROP" + diff --git a/m770/basebis.h b/m770/basebis.h new file mode 100755 index 000000000..63e1c9326 --- /dev/null +++ b/m770/basebis.h @@ -0,0 +1,79 @@ +// Mod.770 - Archivio BASEBIS + +#ifndef __BASEBIS_H +#define __BASEBIS_H + +#define BSB_CODDITTA "CODDITTA" +#define BSB_E0NFCOM "E0NFCOM" +#define BSB_E0NPER "E0NPER" +#define BSB_E0AIMP "E0AIMP" +#define BSB_E0ROPE "E0ROPE" +#define BSB_E0SNSRIT "E0SNSRIT" +#define BSB_E1NFCOM "E1NFCOM" +#define BSB_E1NPER "E1NPER" +#define BSB_E1SCOR "E1SCOR" +#define BSB_E1BCOM "E1BCOM" +#define BSB_E1ROPE "E1ROPE" +#define BSB_E1ACOM "E1ACOM" +#define BSB_E1BCOM2 "E1BCOM2" +#define BSB_E1ROPE2 "E1ROPE2" +#define BSB_E2NFCOM "E2NFCOM" +#define BSB_E2NPER "E2NPER" +#define BSB_E2ROPE "E2ROPE" +#define BSB_E2SSRIT "E2SSRIT" +#define BSB_F0SRITA "F0SRITA" +#define BSB_F0ROPEA "F0ROPEA" +#define BSB_F0TACCA "F0TACCA" +#define BSB_F0EDACCA "F0EDACCA" +#define BSB_F0ERIMA "F0ERIMA" +#define BSB_F0SSRITBF "F0SSRITBF" +#define BSB_F0ROPEBF "F0ROPEBF" +#define BSB_F0SSVA "F0SSVA" +#define BSB_F0ROPEVA "F0ROPEVA" +#define BSB_F1TPLUA "F1TPLUA" +#define BSB_F1ROPEA "F1ROPEA" +#define BSB_F1SSRIT "F1SSRIT" +#define BSB_F1ROPE "F1ROPE" +#define BSB_F2SSRIT "F2SSRIT" +#define BSB_F2ROPE "F2ROPE" +#define BSB_G0NFCOM "G0NFCOM" +#define BSB_G0NAZI1 "G0NAZI1" +#define BSB_G0UDEN1 "G0UDEN1" +#define BSB_G0UNAT1 "G0UNAT1" +#define BSB_G0IUTI2 "G0IUTI2" +#define BSB_G0ROPE "G0ROPE" +#define BSB_G0USRIT3 "G0USRIT3" +#define BSB_G0RACC3 "G0RACC3" +#define BSB_G0RIMP3 "G0RIMP3" +#define BSB_G0UNSRIT3 "G0UNSRIT3" +#define BSB_G0USPE "G0USPE" +#define BSB_G0UPAG "G0UPAG" +#define BSB_G0NPER "G0NPER" +#define BSB_G1UCOR "G1UCOR" +#define BSB_G1USRIT "G1USRIT" +#define BSB_G1RACC "G1RACC" +#define BSB_G1RIMP "G1RIMP" +#define BSB_G1UNSRIT "G1UNSRIT" +#define BSB_H0CODLAV "H0CODLAV" +#define BSB_H0COLDIP "H0COLDIP" +#define BSB_H0NPVERH "H0NPVERH" +#define BSB_H0NQLAGG "H0NQLAGG" +#define BSB_L0CCONC1 "L0CCONC1" +#define BSB_L0CCONC2 "L0CCONC2" +#define BSB_L0CCONC3 "L0CCONC3" +#define BSB_L0CTES1 "L0CTES1" +#define BSB_L0CTES2 "L0CTES2" +#define BSB_L0CTES3 "L0CTES3" +#define BSB_CONSBASOCC "CONBASOCC" +#define BSB_LAVDIPCIN "LAVDIPCIN" +#define BSB_PIMPINI "PIMPINI" +#define BSB_PIMPFINE "PIMPFINE" +#define BSB_G0RITSPET "G0RITSPET" + +#define I11_1 "B1NFCOM" +#define I11_2 "B1NPER" +#define I11_3 "B1TIND" +#define I11_4 "B1TIRM" +#define I11_5 "B1TICOM" + +#endif diff --git a/m770/bastca7.uml b/m770/bastca7.uml new file mode 100755 index 000000000..bf5d6aa0d --- /dev/null +++ b/m770/bastca7.uml @@ -0,0 +1,47 @@ +#include "ba3200.h" + +PAGE "Stampa causali" -1 -1 60 6 + +/* +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 1 1 "Ditta " + HELP "Ditta di cui stampare i registri" + FLAGS "FRD" + USE LF_NDITTE KEY 1 + CHECKTYPE REQUIRED + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_CODDITTA CODDITTA + OUTPUT F_RAGSOC RAGSOC +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 1 2 "Ragione sociale " + FLAGS "D" +END +*/ + +DATE F_DATASTAMPA +BEGIN + PROMPT 2 1 "Data stampa " + HELP "Data da riportare sui fogli da stampare" + FLAGS "A" +END + +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -12 -1 "~Stampa" + MESSAGE EXIT,K_ENTER +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/batb%ent.h b/m770/batb%ent.h new file mode 100755 index 000000000..a157754dd --- /dev/null +++ b/m770/batb%ent.h @@ -0,0 +1,4 @@ +// batb%ent.h + +#define F_CODENTE 101 +#define F_DESCR 102 diff --git a/m770/batbca7.h b/m770/batbca7.h new file mode 100755 index 000000000..52b803030 --- /dev/null +++ b/m770/batbca7.h @@ -0,0 +1,27 @@ +// batbca7.h - Tabella causali 770 + +#define F_CODCAUS 100 +#define F_CODTRIB 101 +#define F_DESCR1 102 +#define F_QUADRAT 103 +#define F_QUADRCE2 104 +#define F_ASSRIT 105 +#define F_IC 106 +#define F_CT 107 +#define F_PERASS 108 +#define F_PERRIT 109 +#define F_ARTBIL 110 +#define F_DESCR2 111 +#define F_CODQUA 112 + +// Aggiunte 96 +#define TCF_CAUSD 113 +#define TCF_CAUSD1 114 +#define TCF_BINPS 115 +#define TCF_PERCINPS 116 +#define TCF_ASSIMPINPS 117 +#define TCF_COMMINPS 118 +#define TCF_PERCASSPREV 119 + + + diff --git a/m770/batbca7.uml b/m770/batbca7.uml new file mode 100755 index 000000000..3730c3d13 --- /dev/null +++ b/m770/batbca7.uml @@ -0,0 +1,366 @@ +#include "batbca7.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +#define INPS_GROUP 7 +#define GR_CAUDD1 8 +#define G_ICTS 9 + +PAGE "Tabella causali modello 770" -1 -1 78 18 + +GROUPBOX DLG_NULL 77 8 +BEGIN + PROMPT 0 0 "" +END + +NUMBER F_CODCAUS 2 +BEGIN + PROMPT 1 1 "Codice causale " + FIELD LF_TABCOM->CODTAB + HELP "Inserire il codice della causale" + USE %CA7 + INPUT CODTAB F_CODCAUS + DISPLAY "Codice causale " CODTAB + DISPLAY "Codice tributo " I0 + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice quadro " S1 + OUTPUT F_CODCAUS CODTAB + OUTPUT F_DESCR2 S0 + OUTPUT F_CODTRIB I0 + OUTPUT F_QUADRAT S1 + OUTPUT F_QUADRCE2 S1 + FLAGS "RZ" + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODTRIB 4 +BEGIN + PROMPT 1 2 "Codice tributo " + FIELD LF_TABCOM->I0 + HELP "Inserire il codice tributo" + WARNING "Manca il codice tributo" + CHECKTYPE REQUIRED +END + +NUMBER F_ARTBIL 2 +BEGIN + PROMPT 31 2 "Articolo di bilancio " + FIELD LF_TABCOM->I3 +END + +LIST F_QUADRCE2 2 +BEGIN + PROMPT 1 3 "Codice quadro " + HELP "Inserire il codice quadro" + ITEM "| " + MESSAGE DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "C|C" + MESSAGE ENABLE,F_CT|DISABLE,F_IC|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "D|D" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "D1|D1" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@||ENABLE,TCF_CAUSD1|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "E|E" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "E1|E1" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE COPY,F_CODQUA + WARNING "Manca il codice quadro" + FIELD LF_TABCOM->S1 +END + +LIST F_QUADRAT 2 +BEGIN + PROMPT 1 3 "Codice quadro " + HELP "Inserire il codice quadro" + ITEM "| " + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "A|A" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "A1|A1" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "A2|A2" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "A3|A3" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "B|B" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "B1|B1" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "C|C" + MESSAGE ENABLE,F_CT|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|ENABLE,F_IC|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "D|D" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD1|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "D1|D1" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,TCF_CAUSD|DISABLE,GR_CAUDD1@|ENABLE,TCF_CAUSD1|DISABLE,TCF_CAUSD|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "E|E" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "E1|E1" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "E2|E2" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2 + ITEM "F|F" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "F1|F1" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "F2|F2" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|HIDE,F_DESCR1|SHOW,F_DESCR2 + ITEM "G|G" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "G1|G1" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "N|N" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "P|P" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "Q|Q" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "R|R" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "S|S" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + ITEM "T|T" + MESSAGE RESET,G_ICTS@|DISABLE,G_ICTS@|RESET,GR_CAUDD1@|DISABLE,GR_CAUDD1@|SHOW,F_DESCR1|HIDE,F_DESCR2 + MESSAGE COPY,F_QUADRCE2 + MESSAGE COPY,F_CODQUA + WARNING "Manca il codice quadro" + FIELD LF_TABCOM->S1 +END + +LIST F_CODQUA +BEGIN + PROMPT 1 3 "" + ITEM "A|A" + ITEM "A1|A1" + ITEM "A2|A2" + ITEM "A3|A3" + ITEM "B|B" + ITEM "B1|B1" + ITEM "C|C" + ITEM "D|D" + ITEM "D1|D1" + ITEM "E|E" + ITEM "E1|E1" + ITEM "E2|E2" + ITEM "F|F" + ITEM "F1|F1" + ITEM "F2|F2" + ITEM "G|G" + ITEM "G1|G1" + ITEM "N|N" + ITEM "P|P" + ITEM "Q|Q" + ITEM "R|R" + ITEM "S|S" + ITEM "T|T" + FLAGS "H" + FIELD LF_TABCOM->S1 +END + +STRING F_DESCR1 35 +BEGIN + PROMPT 1 4 "Descrizione " + HELP "Inserire la descrizione della causale" + WARNING "Manca la descrizione" + FIELD LF_TABCOM->S0 + CHECKTYPE REQUIRED + MESSAGE COPY,F_DESCR2 +END + +STRING F_DESCR2 60 +BEGIN + PROMPT 1 4 "Descrizione " + FIELD LF_TABCOM->S0 + HELP "Inserire la descrizione della causale" + WARNING "Manca la descrizione" + CHECKTYPE REQUIRED + MESSAGE COPY,F_DESCR1,1,22 +END + +LISTBOX TCF_CAUSD 1 60 +BEGIN + PROMPT 1 5 "Causale D " + ITEM "|" + ITEM "A|A Prestazione di lavoro autonomo rientranti nell'esercizio di arte o professione abituale" + ITEM "B|B Per prestazioni rese da amministratori, sindaci e revisori di società, associazione ed altri enti con o senza personalità giuridica" + ITEM "C|C Per prestazioni rese da collaboratori a giornali, riviste, enciclopedie e simili" + ITEM "D|D Per prestazioni rese da partecipanti a collegi e commissioni" + ITEM "E|E Per prestazioni rese dagli sportivi con contratto di lavoro autonomo" + ITEM "F|F Per prestazioni rese nell'ambito di rapporti di collaborazione coordinata e continuativa diversi da quelli sopra elencati" + ITEM "G|G Per l'utilizzazione economica da parte dell'autore o dell'inventore, di opere dell'ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo industriale.." + ITEM "H|H A titolo di utili derivanti da contratti di associazione in partecipazione e da contratti di cointeresenza quando l'apporto è costituito esclusivamente dalla prestazione di lavoro" + ITEM "I|I A titolo di utili spettanti ai soci promotori ed ai soci fondatori delle società di capitali" + ITEM "L|L Per la levata di protesti cambiari da parte dei segretari comunali" + ITEM "M|M Per l'utilizzazione economica da parte di soggetto diverso dall'autore o dall'inventore di opere dell'ingegno, brevetti, formule .." + ITEM "N|N A titolo di indennità corrisposte per la cessazione di rapporti di collaborazione coordinata e continuativa, assoggettabili a tassazione separata" + ITEM "P|P A titolo di indennità corrisposte per la cessazione dei rapporti di agenzia delle persone fisiche" + ITEM "Q|Q A titolo di indennità corrisposte per la cessazione da funzioni notarili" + ITEM "R|R A titolo di indennità corrisposte per la cessazione di attività sportiva professionale" + ITEM "S|S A titolo di indennità di trasferta o di rimborso forfetario di spese spettanti a soggetti che svolgono attività sportiva dilettantistica di cui L.25.3.86 n.80" + ITEM "T|T Altro titolo diverso dai precedenti" + FIELD LF_TABCOM->S2 + FLAGS "D" + GROUP GR_CAUDD1 +END + +LISTBOX TCF_CAUSD1 1 60 +BEGIN + PROMPT 1 6 "Causale D1 " + ITEM "|" + ITEM "A|A Agente o rappresentante di commercio monomadatario" + ITEM "B|B Agente o rappresentate plurimandatario" + ITEM "C|C Commissionario" + ITEM "D|D Mediatore" + ITEM "E|E Procacciatore d'affari" + ITEM "F|F Per somme assoggettate a ritenuta a titolo d'imposta" + FIELD LF_TABCOM->S3 + FLAGS "D" + GROUP GR_CAUDD1 +END + +/* +STRING TCF_CAUSD 1 +BEGIN + PROMPT 1 5 "Causale quadro D " + SHEET "Codice|Descrizione@80" + INPUT TCF_CAUSD + ITEM "|" + ITEM "A|Prestazione di lavoro autonomo rientranti nell'esercizio di arte o professione abituale" + ITEM "B|Per prestazioni rese da amministratori, sindaci e revisori di società, associazione ed altri enti con o senza personalità giuridica" + ITEM "C|Per prestazioni rese da collaboratori a giornali, riviste, enciclopedie e simili" + ITEM "D|Per prestazioni rese da partecipanti a collegi e commissioni" + ITEM "E|Per prestazioni rese dagli sportivi con contratto di lavoro autonomo" + ITEM "F|Per prestazioni rese nell'ambito di rapporti di collaborazione coordinata e continuativa diversi da quelli sopra elencati" + ITEM "G|Per l'utilizzazione economica da parte dell'autore o dell'inventore, di opere dell'ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo industriale.." + ITEM "H|A titolo di utili derivanti da contratti di associazione in partecipazione e da contratti di cointeresenza quando l'apporto è costituito esclusivamente dalla prestazione di lavoro" + ITEM "I|A titolo di utili spettanti ai soci promotori ed ai soci fondatori delle società di capitali" + ITEM "L|Per la levata di protesti cambiari da parte dei segretari comunali" + ITEM "M|Per l'utilizzazione economica da parte di soggetto diverso dall'autore o dall'inventore di opere dell'ingegno, brevetti, formule .." + ITEM "N|A titolo di indennità corrisposte per la cessazione di rapporti di collaborazione coordinata e continuativa, se il diritto all'indennità risulta da atto di data certa anteriore .." + ITEM "P|A titolo di indennità corrisposte per la cessazione da funzioni notarili" + ITEM "R|A titolo di indennità corrisposte per la cessazione di attività sportiva professionale" + ITEM "S|A titolo di indennità di trasferta o di rimborso forfetario di spese spettanti a soggetti che svolgono attività sportiva dilettantistica di cui L.25.3.86 n.80" + FIELD LF_TABCOM->S2 + FLAGS "D" + GROUP GR_CAUDD1 + OUTPUT TCF_CAUSD +END + +STRING TCF_CAUSD1 1 +BEGIN + PROMPT 30 5 "Causale quadro D1" + SHEET "Codice|Descrizione@80" + INPUT TCF_CAUSD1 + ITEM "|" + ITEM "A|Agente o rappresentante di commercio monomadatario" + ITEM "B|Agente o rappresentate plurimandatario" + ITEM "C|Commissionario" + ITEM "D|Mediatore" + ITEM "E|Procacciatore d'affari" + ITEM "F|Per somme assoggettate a ritenuta a titolo d'imposta" + FIELD LF_TABCOM->S3 + FLAGS "D" + GROUP GR_CAUDD1 + OUTPUT TCF_CAUSD1 +END +*/ + +BOOLEAN F_ASSRIT +BEGIN + PROMPT 1 8 "Somme assoggettate a titolo di ritenute d'acconto" + FIELD LF_TABCOM->B0 +END + +BOOLEAN F_IC +BEGIN + PROMPT 58 8 "T.S. " + FIELD LF_TABCOM->B3 + GROUP G_ICTS +END + +BOOLEAN F_CT +BEGIN + PROMPT 66 8 "C.T. " + FIELD LF_TABCOM->B2 + GROUP G_ICTS +END + +NUMBER F_PERASS 6 +BEGIN + PROMPT 1 9 "Percentuale assoggettamento imponibile " + FIELD LF_TABCOM->R4 + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + WARNING "Percentuale assoggettamento imponibile non valida" +END + +NUMBER TCF_PERCASSPREV 6 +BEGIN + PROMPT 1 10 "Percentuale cassa previdenza " + FIELD LF_TABCOM->R5 + PICTURE ".2" + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + WARNING "Percentuale cassa previdenza non valida" +END + +NUMBER F_PERRIT 6 +BEGIN + PROMPT 1 11 "Percentuale ritenute d'acconto " + FIELD LF_TABCOM->R0 + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + PICTURE ".2" + WARNING "Percentuale della ritenuta d'acconto non valida" +END + +GROUPBOX DLG_NULL 77 4 +BEGIN + PROMPT 0 13 "Contributo INPS" +END + +BOOLEAN TCF_BINPS +BEGIN + PROMPT 1 14 "Contributo INPS " + FIELD LF_TABCOM->B4 + MESSAGE TRUE ENABLE,INPS_GROUP@ + MESSAGE FALSE DISABLE,INPS_GROUP@ +END + +NUMBER TCF_PERCINPS 6 +BEGIN + PROMPT 30 14 "Percentuale " + PICTURE ".2" + FIELD LF_TABCOM->R1 + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + FLAGS "D" + GROUP INPS_GROUP + WARNING "Percentuale contributo INPS non valida" +END + +NUMBER TCF_ASSIMPINPS 6 +BEGIN + PROMPT 1 15 "Percentuale ass.imp. " + PICTURE ".2" + FIELD LF_TABCOM->R2 + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + FLAGS "D" + GROUP INPS_GROUP + WARNING "Percentuale ass.imp. contributo INPS non valida" +END + +NUMBER TCF_COMMINPS 6 +BEGIN + PROMPT 30 15 "Quota a carico del committente " + PICTURE ".2" + FIELD LF_TABCOM->R3 + NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + FLAGS "D" + WARNING "Quota contributo INPS a carico del committente non valida" + GROUP INPS_GROUP +END + +ENDPAGE + +ENDMASK + diff --git a/m770/batbcaf.h b/m770/batbcaf.h new file mode 100755 index 000000000..55e0eacbc --- /dev/null +++ b/m770/batbcaf.h @@ -0,0 +1,6 @@ +// batbcaf.h +#define F_CODCAAF 101 +#define F_DENOM 102 +#define F_CODFISC 103 +#define F_ISCALBO 104 +#define F_STATO 105 diff --git a/m770/batbcaf.uml b/m770/batbcaf.uml new file mode 100755 index 000000000..799426758 --- /dev/null +++ b/m770/batbcaf.uml @@ -0,0 +1,51 @@ +#include "batbcaf.h" + +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "Tabella codici C.A.A.F." -1 -1 78 18 + +NUMBER F_CODCAAF 5 +BEGIN + PROMPT 4 1 "Codice CAAF " + FIELD LF_TABCOM->CODTAB + HELP "Inserire il codice CAAF" + USE %CAF + CHECKTYPE REQUIRED + INPUT CODTAB F_CODCAAF + DISPLAY "Codice CAAF " CODTAB + DISPLAY "Denominazione@50" S0 + OUTPUT F_CODCAAF CODTAB + KEY 1 +END + +STRING F_DENOM 50 +BEGIN + PROMPT 4 3 "Denominazione " + FIELD LF_TABCOM->S0 + CHECKTYPE REQUIRED +END + +STRING F_STATO 2 +BEGIN + PROMPT 18 4 "" + FLAGS "H" +END + +STRING F_CODFISC 11 +BEGIN + PROMPT 4 5 "Codice fiscale " + FIELD LF_TABCOM->S1 + VALIDATE PI_FUNC F_STATO +END + +NUMBER F_ISCALBO 5 +BEGIN + PROMPT 4 7 "Codice iscrizione albo " +// FIELD LF_TABCOM->S2 + FIELD LF_TABCOM->I1 +END + +ENDPAGE +ENDMASK diff --git a/m770/batbent.uml b/m770/batbent.uml new file mode 100755 index 000000000..1b6a40f5b --- /dev/null +++ b/m770/batbent.uml @@ -0,0 +1,37 @@ +#include "batb%ent.h" + +TOOLBAR "" 0 20 0 2 + +#include + +ENDPAGE + +PAGE "Tabella Enti Previdenziali Quadro H modulo 770" -1 -1 78 18 + +NUMBER F_CODENTE 2 +BEGIN + PROMPT 4 1 "Codice Ente " + FIELD LF_TABCOM->CODTAB + HELP "Inserire il codice dell' ente" + USE %ENT + CHECKTYPE REQUIRED + INPUT CODTAB F_CODENTE + DISPLAY "Codice Ente " CODTAB + DISPLAY "Descrizione@60 " S0 + OUTPUT F_CODENTE CODTAB + OUTPUT F_DESCR S0 + KEY 1 +END + +STRING F_DESCR 60 +BEGIN + PROMPT 4 3 "Descrizione " + FIELD LF_TABCOM->S0 + HELP "Inserire la descrizione dell' Ente" + WARNING "Manca la descrizione" + CHECKTYPE REQUIRED +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/m770/build.bat b/m770/build.bat new file mode 100755 index 000000000..e6dd04599 --- /dev/null +++ b/m770/build.bat @@ -0,0 +1,5 @@ +@echo off +set SP=f:\nik\p.due\77 +call f:\p.due\setdef %1 %2 +nmake /nologo /f makemask +nmake /k diff --git a/m770/build77.mak b/m770/build77.mak new file mode 100755 index 000000000..fff728b1b --- /dev/null +++ b/m770/build77.mak @@ -0,0 +1,116 @@ +if test -r /tmp/build_m7_$1 +then + echo Ci hanno pensato prima di te. + exit 255 +fi + +btouch + +touch /tmp/build_m7_$1 +trap "rm /tmp/build_m7_$1;echo ok, basta;exit" 2 +CCOMP=cc++ +RCOMP=rescomp +MCOMP=mskcomp +LINK=linkdue +IP=$SRC_HOME/include/ +if [ "$EXEHOME" = "" ] ; +then + EXEHOME=$P2HOME +fi +EP=$EXEHOME/campo/ +LIBC="$P2HOME/lib/libdue.a $P2HOME/lib/libuno.a $P2HOME/lib/libgfm.a" +LIBD1="$P2HOME/lib/libdued.a $P2HOME/lib/libuno.a $P2HOME/lib/libgfm.a" +LIBD2="$P2HOME/lib/libdued.a $P2HOME/lib/libunod.a $P2HOME/lib/libgfm.a" +LIBD3="$P2HOME/lib/libdued.a $P2HOME/lib/libunod.a $P2HOME/lib/libgfmd.a" +DIR=`pwd | grep -v $P2HOME` +if [ "$DIR" != "" ]; +then + LIBC= + LIBD1= + LIBD2= + LIBD3= + if [ -f $SRC_HOME/lib/libdue.a ]; + then + LIBC=$LIBC"$SRC_HOME" + else + LIBC=$LIBC"$P2HOME" + fi + if [ -f $SRC_HOME/lib/libdued.a ]; + then + LIBD1=$LIBD1"$SRC_HOME" + LIBD2=$LIBD2"$SRC_HOME" + LIBD3=$LIBD3"$SRC_HOME" + else + LIBD1=$LIBD1"$P2HOME" + LIBD2=$LIBD2"$P2HOME" + LIBD3=$LIBD3"$P2HOME" + fi + LIBC=$LIBC"/lib/libdue.a " + LIBD1=$LIBD1"/lib/libdued.a " + LIBD2=$LIBD2"/lib/libdued.a " + LIBD3=$LIBD3"/lib/libdued.a " + if [ -f $SRC_HOME/lib/libuno.a ]; + then + LIBC=$LIB"$SRC_HOME" + LIBD1=$LIBD1"$SRC_HOME" + else + LIBC=$LIB"$P2HOME" + LIBD1=$LIBD1"$P2HOME" + fi + if [ -f $SRC_HOME/lib/libunod.a ]; + then + LIBD2=$LIBD2"$SRC_HOME" + LIBD3=$LIBD3"$SRC_HOME" + else + LIBD2=$LIBD2"$P2HOME" + LIBD3=$LIBD3"$P2HOME" + fi + LIBC=$LIBC"/lib/libuno.a " + LIBD1=$LIBD1"/lib/libuno.a " + LIBD2=$LIBD2"/lib/libunod.a " + LIBD3=$LIBD3"/lib/libunod.a " + if [ -f $SRC_HOME/lib/libgfm.a ]; + then + LIBC=$LIBC"$SRC_HOME" + LIBD1=$LIBD1"$SRC_HOME" + LIBD2=$LIBD2"$SRC_HOME" + else + LIBC=$LIBC"$P2HOME" + LIBD1=$LIBD1"$P2HOME" + LIBD2=$LIBD2"$P2HOME" + fi + if [ -f $SRC_HOME/lib/libgfmd.a ]; + then + LIBD3=$LIBD3"$SRC_HOME" + else + LIBD3=$LIBD3"$P2HOME" + fi + LIBC=$LIBC"/lib/libgfm.a " + LIBD1=$LIBD1"/lib/libgfm.a " + LIBD3=$LIBD2"/lib/libgfm.a " + LIBD3=$LIBD3"/lib/libgfmd.a " +fi +CFLAGSC="-r -c " +CFLAGSD="-r -p " +LFLAGSC="-r " +LFLAGSD1="-r -d1 " +LFLAGSD2="-r -d2 " +LFLAGSD2="-r -d3 " +O=$SRC_HOME/objs +export CCOMP LINK IP EP LIB O CFLAGS LFLAGS RCOMP MCOMP LFLAGS2 +export CCOMP LINK IP EP LIBC LIBD1 LIBD2 LIBD3 O CFLAGSD LFLAGSC RCOMP MCOMP LFLAGSD1 LFLAGSD2 LFLAGSD3 CFLAGSC +FLAGS= +DASH=`echo $1 | cut -c1 ` +while [ "$DASH" = "-" ]; +do + FLAGS=$FLAGS" "$1 + shift + DASH=`echo $1 | cut -c1 ` +done +if [ "$1" = "" -o "$1" = "etc" ]; +then + gmake $FLAGS $1 +else + gmake $FLAGS $EP$1 +fi +rm /tmp/build_m7_$1 diff --git a/m770/ca7.h b/m770/ca7.h new file mode 100755 index 000000000..47a57e70e --- /dev/null +++ b/m770/ca7.h @@ -0,0 +1,12 @@ +// ca7.h +#define CA7_CODTAB "CODTAB" +#define CA7_CODQUA "S1" +#define CA7_ARTBIL "I0" +#define CA7_PERASS "I1" +#define CA7_DESCR "S0" +#define CA7_ALIQ "R0" +#define CA7_ASSRIT "B0" +#define CA7_IC "B1" +#define CA7_CT "B2" + + diff --git a/m770/cg6900.h b/m770/cg6900.h new file mode 100755 index 000000000..5aa7c939c --- /dev/null +++ b/m770/cg6900.h @@ -0,0 +1,170 @@ +// Invio contabilita' +#define STRICT +#include +#include + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "cg6901.h" +#include "cg6903.h" +#include "cglib04.h" + +class TInv_cont : public TApplication +{ + enum { BUFSIZE = 4096 }; + + TTransfer_file _tras_file; + TProgind* _prog; + TLocalisamfile* _caus; + TLocalisamfile* _rcaus; + TLocalisamfile* _clifo; + TLocalisamfile* _pcon; + TLocalisamfile* _mov; + TLocalisamfile* _rmov; + TLocalisamfile* _rmoviva; + TLocalisamfile* _occas; + TLocalisamfile* _part; + TIsamtempfile* _tcaus; + TIsamtempfile* _trcaus; + TIsamtempfile* _tclifo; + TIsamtempfile* _tpcon; + TIsamtempfile* _tmov; + TIsamtempfile* _trmov; + TIsamtempfile* _triva; + TIsamtempfile* _toccas; + TArchive _arc; + + char _scelta; + + TString _control_rec, _header, _trasf, _std, _stato, _marker, _nome_simbolico; + TString _files, _codcaus, _numdoc, _reg, _codpag, _tipodoc, _codcausm, _sigle; + TString _ocfpi, _ragsococc, _indocc, _capocc, _localocc, _provocc, _codvali; + bool _esiste_ditta, _esiste_record, _inviato, _flag_bollato; + long _ditta, _protiva, _uprotiva, _codcf, _numrec, _tot_rec; + long _dim_tot, _dim_disk,_dittaAS; + long _numrec_cau,_numrec_clifo,_numrec_pcon,_numrec_pn,_numrec_iva; + int _num,_annoes; + TDate _data, _datadoc, _data74ter,_datalimsk,_dataregiva,_datareg; + real _corrlire, _cambioi, _corrval; + +public: + TString _titolo; + + virtual bool create(); + virtual bool destroy(); + virtual bool menu(MENU_TAG m); + + bool main_loop(); + + bool esiste_tabella_studio(); + bool record_controllo(); + bool esegui_controlli(); + bool leggi_header(); + bool controlli(); + bool sub_controlli(); + bool tabella_ditta(); + bool controlla_stato_invio(); + bool numero_data(); + void leggi_record_controllo(); + void codifica_ditta (TMask& m); + void testata_mov_PN (); + void testata_trasfer(long nreg, int nrig, TString& record); + void sola_iva(TString& record); + bool testata_mov_IVA(long numreg); + void cerca_occasionale(); + void cerca_comune_occas(const TString& com); + + void apri_file_temp(); + void chiudi_file_temp(); + + void crea_marker(TMask& m); + void setta_parametri_record(TMask& m,const TString& flag); + void setta_tabella_studio(TMask& m, bool flag_ditta = TRUE); + void setta_tabella_ditta(TMask& m, const char* flag, bool comp = TRUE); + void crea_record_controllo(TMask& m); + + bool invio_tempfile(TMask& m); + void causali2tempfile(TString& key,TMask& m); + void cancella_righe_causali(TString& codcaus); + void scrivi_righe_causali(TString& codcaus, char uselab); + void clifo2tempfile(TString& key,TMask& m); + void pcon2tempfile(TString& key,TMask& m); + + void movPN2tempfile(TString& key,TMask& m); + void scrivi_righePN(long numreg); + void primanota_inviata(long numreg); + + void movIVA2tempfile(TString& key,TMask& m); + bool occasionali(const TString& ocfpi); + void iva_inviata(long numreg); + + bool invio_contabilita(); + bool invio_tab_cau(); + bool invio_clifo (); + bool invio_pcon (); + bool invio_mov_PN (); + bool invio_mov_IVA(); + + void aggiorna_header(TString& files); + void aggiorna_trasfer(TString& files); + + void negPC2negAS(TString& numero); + void dec2integer(real& val, long dec); + + void aggiorna_marker(TString& token, int pos); + void calcola_totale_record(); + void scrivi_telefono(TString& app); + + const char* cerca_provincia(const TString& comcf); + void cerca_dencom(TString& comcf,TString& dencom); + + static bool setta_maschera_hnd(TMask_field& f, KEY k); + static bool messaggio_hnd (TMask_field& f, KEY k); + + int calcola_numero_dischi(TMask& m); + FILE* chiedi_disco(const char* name, int disk, char floppy, bool lettura); + bool scrivi_disco(char floppy, int disk, const char* work, FILE* i, TProgind& w); + + bool invio_contabilita_PC(); + void invio_testata_causali(); + void invio_righe_causali(); + void invio_clienti_fornitori(); + void invio_piano_conti(); + void invio_testata_movimenti(); + void invio_righe_contabili(); + void invio_righe_IVA(); + void invio_occasionali(TString& record, TString& ocfpi); + void tipodocumento(long nreg,TString& tipodoc); + + TInv_cont(char mov); +}; + +HIDDEN TInv_cont& app() { return (TInv_cont &) main_app(); } + diff --git a/m770/dipend.h b/m770/dipend.h new file mode 100755 index 000000000..acf27490d --- /dev/null +++ b/m770/dipend.h @@ -0,0 +1,33 @@ +// Mod.770 - Anagrafica dei dipendenti + +#ifndef __DIPEND_H +#define __DIPEND_H + +#define DIP_CODDITTA "CODDITTA" +#define DIP_CODIP "CODIP" +#define DIP_COGNOME "COGNOME" +#define DIP_NOME "NOME" +#define DIP_CODFI "CODFI" +#define DIP_SESSO "SESSO" +#define DIP_DATANA "DATANA" +#define DIP_COMUNENA "COMUNENA" +#define DIP_PROVNA "PROVNA" +#define DIP_COMRES "COMRES" +#define DIP_PROVRES "PROVRES" +#define DIP_INDRES "INDRES" +#define DIP_QUALIFICA "QUALIFICA" +#define DIP_STATOCIV "STATOCIV" +#define DIP_CODDIPDEC "CODDIPDEC" +#define DIP_CODUNLOC "CODUNLOC" +#define DIP_CODEREDE0 "CODEREDE0" +#define DIP_CODEREDE1 "CODEREDE1" +#define DIP_CODEREDE2 "CODEREDE2" +#define DIP_CODEREDE3 "CODEREDE3" +#define DIP_CODEREDE4 "CODEREDE4" +#define DIP_CODEREDE5 "CODEREDE5" +#define DIP_CODEREDE6 "CODEREDE6" +#define DIP_CODEREDE7 "CODEREDE7" +#define DIP_CODEREDE8 "CODEREDE8" +#define DIP_CODEREDE9 "CODEREDE9" + +#endif diff --git a/m770/generic.cpp b/m770/generic.cpp new file mode 100755 index 000000000..1e077c9f7 --- /dev/null +++ b/m770/generic.cpp @@ -0,0 +1,528 @@ +// generic - relapp generica adattata per il 770 +// +// - Applicazioni - +// +// Anagrafica dipendenti, +// Prospetto quadro E1, +// Societa' trasformate +// +// Riempie automaticamente i campi della maschera con id uguali a CODDITTA77 e ANNODIC77 +// con la ditta e l'anno dichiarazione correnti del 770 +// +// Lista modifiche +// +// 10.5.96 Via il flag erede si fa il controllo su CODDIPDEC +// + +#include +#include +#include +#include +#include + +#include "dipend.h" +#include +#include "77lib.h" +#include "pe1.h" +#include "anadip.h" +#include "771100.h" +#include "771200.h" +#include "774200.h" + +#define CODDITTA77 181 +#define ANNODIC77 182 + +void socbbis_setta_ditta(TMask& m); + +class TGenericRel_application : public TRelation_application +{ + private: + static bool codditta77_handler (TMask_field& m, KEY k); + static bool check_handler (TMask_field& m, KEY k); + static bool PE1calcrit_handler (TMask_field& m, KEY k); + static bool ADabilita_coddipdec (TMask_field& m, KEY k); + static bool ADCodDipDec (TMask_field& m, KEY k); + static bool eredi_handler (TMask_field& m, KEY k); + static bool date_handler (TMask_field& m, KEY k); + long _codditta; + long _lCodDipDec; + const char* _maskname; + int _num; + TString16 _quadro; + TRiporti _rip; + TRelation* _rel; + TMask* _msk; + bool _alterna_field,_registra; + int _anno_dic; + bool _MaskConAnnoDic, _MaskConCodditta; + bool MaskConAnnoDic() const; + bool MaskConCodditta() const { return _MaskConCodditta; } + void LeggiMask(); + bool Dipendenti() const { return _num == LF_DIPEND; } + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual void on_config_change(); + virtual TMask* get_mask(int) { return _msk; } + virtual bool changing_mask(int) { return FALSE;} + virtual TRelation* get_relation() const { return _rel; } + virtual void init_insert_mode(TMask&); + virtual void init_modify_mode(TMask&); + virtual void init_query_mode(TMask&); + virtual void init_query_insert_mode(TMask&); + void init_mask(TMask&); + + public: + bool _ADCheckFallito; + TGenericRel_application(const char* name, const int num, const char* quadro); +}; + +TGenericRel_application& app() { return (TGenericRel_application&)main_app(); } + +TGenericRel_application::TGenericRel_application(const char* name, const int num, const char* quadro) +: _maskname(name), _num(num), + _MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE), + _msk(NULL), _rel(NULL), _quadro(quadro), _ADCheckFallito(FALSE) +{ +} + +void TGenericRel_application::LeggiMask() +{ + _MaskConAnnoDic = _msk->id2pos(ANNODIC77) > 0; + _MaskConCodditta = _msk->id2pos(CODDITTA77) > 0; +} + +bool TGenericRel_application::MaskConAnnoDic() const +{ + return _MaskConAnnoDic; +} + +void TGenericRel_application::on_config_change() +{ + if (MaskConAnnoDic()) + { + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); + } +} + +bool TGenericRel_application::user_create() +{ + _alterna_field = FALSE; + _msk = new TMask(_maskname); + _rel = new TRelation(_num); + +// Determina se la maschera contiene i campi CODDITTA e ANNODIC + LeggiMask(); + + if (MaskConCodditta()) + _msk->set_handler(CODDITTA77, codditta77_handler); + + if (_num == LF_PROSPE1) + { + _msk->set_handler(PE1F_CODCAUS, check_handler); + _msk->set_handler(PE1F_CODCAUS2, check_handler); + _msk->set_handler(PE1F_IMPONIBILE, PE1calcrit_handler); + } + + if (Dipendenti()) + { +// _msk->set_handler(F_DIP_EREDE, eredi_handler); + _msk->set_handler(ADF_CODDIPDEC, eredi_handler); + _msk->set_handler(F_DIP_QUALIFICA, ADabilita_coddipdec); + _msk->set_handler(ADF_CODDIPDEC, ADCodDipDec); + set_search_field(ADF_DIP_CODDIP); + } + + if (_num == LF_SOCTRASF) + { + char tipo; + + _msk->set_handler(F_SOC_DATAFINPI, date_handler); + + long codditta = get_firm_770(); + + TLocalisamfile ditta (LF_NDITTE); + + ditta.setkey(1); + ditta.zero(); + ditta.put(NDT_CODDITTA, codditta); + if (ditta.read() == NOERR) + tipo = ditta.get_char(NDT_TIPOA); + + if (tipo == 'F') + { + _msk->show(-1); + _msk->hide(-2); + } + else + if (tipo == 'G') + { + _msk->show(-2); + _msk->hide(-1); + } + } + + if (_num == LF_BASEBIS) + _msk->set_handler(F_BSE_DATAFINPI, date_handler); + + for (int i = 0; i < _msk->fields(); i++) + { + TMask_field& campo = _msk->fld(i); + + if (campo.in_group(8) || campo.in_group(9)) + { + _alterna_field = TRUE; + break; + } + } + _registra = FALSE; + return TRUE; +} + +bool TGenericRel_application::user_destroy() +{ + if (_quadro != "" && _quadro != "0") + if (_registra) + _rip.set(_quadro ,0); + delete _msk; + delete _rel; + return TRUE; +} + +int TGenericRel_application::rewrite(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->rewrite(); + _registra = TRUE; + return err; +} + +int TGenericRel_application::write(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->write(); + _registra = TRUE; + return err; +} + +bool TGenericRel_application::remove() +{ + _registra = TRUE; + return TRelation_application::remove(); +} + +void socbbis_setta_ditta(TMask& m) +{ + TString16 codditta; codditta << get_firm_770(); + if (codditta != "0") + { + m.set(CODDITTA77, codditta); + m.field(CODDITTA77).check(); + } +} + +void TGenericRel_application::init_mask(TMask& m) +{ + if (MaskConAnnoDic()) + _msk->set(ANNODIC77, _anno_dic); +} + +void TGenericRel_application::init_modify_mode(TMask& m) +{ + init_mask(m); + if (Dipendenti()) + _lCodDipDec = m.get_long(ADF_CODDIPDEC); +} + +void TGenericRel_application::init_insert_mode(TMask& m) +{ + init_mask(m); +} + +void TGenericRel_application::init_query_mode(TMask& m) +{ + if (_num == LF_SOCTRASF || _num == LF_BASEBIS) + { + socbbis_setta_ditta(m); + m.send_key(K_AUTO_ENTER,0); + } + + if (_num == LF_PROSPE1) + { + m.send_key(K_SHIFT+K_CTRL+'h', -9); // Nasconde ricerca su prospe1 + m.send_key(K_SHIFT+K_CTRL+'s', -8); // Show ricerca su ca7 + } +} + +void TGenericRel_application::init_query_insert_mode(TMask& m) +{ + if (Dipendenti()) + _ADCheckFallito = FALSE; + + if (_num == LF_PROSPE1) + { + m.send_key(K_SHIFT+K_CTRL+'h', -8); // Nasconde ricerca su ca7 + m.send_key(K_SHIFT+K_CTRL+'s', -9); // Show ricerca su prospe1 + } +} + +bool TGenericRel_application::codditta77_handler(TMask_field& f, KEY k) +{ + app()._codditta = get_firm_770(); + TString16 codditta; codditta << app()._codditta; + TMask& m = f.mask(); + if (codditta != "0") + { + m.set(CODDITTA77, codditta); + m.field(CODDITTA77).check(); + } + return TRUE; +} + +// Handler dell'imponibile +// Ricalcola ritenuta se: +// 1. cambia imponibile +// 2. la ritenuta e' ZERO +bool TGenericRel_application::PE1calcrit_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TMask& m = f.mask(); +// Leggi i dati.. + const double perc = atof(m.get(PE1F_HPERC)); + const real impo(f.get()); + const real rope_prec(m.get(PE1F_RITENUTA)); + +// Ricalcola sempre se e' cambiato + const bool forza = f.focusdirty(); + + if (rope_prec != ZERO && !forza) + return FALSE; + + const real rite_calc = (impo * perc) / 100; + m.set(PE1F_RITENUTA, rite_calc.string()); + } + return TRUE; +} + +bool TGenericRel_application::check_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB && f.to_check(k) && f.mask().is_running()) + { + TTable ca7 ("%CA7"); + + TString codice = f.get(); + + ca7.zero(); + ca7.put("CODTAB", codice); + if (ca7.read() == NOERR) + { + int artbil = ca7.get_int("I3"); + bool imp = ca7.get_bool("B0"); + TString codqua = ca7.get ("S1"); + + if (artbil == 1015 || codqua != "E1" || imp) + return f.warning_box("Codice causale non valido per Quadro E1"); + } + else + return f.warning_box("Valore non presente in tabella causali"); + } + + return TRUE; +} + +// A.Dip. se qualifica=11 (erede) abilita cod.dip.dec. +bool TGenericRel_application::ADabilita_coddipdec(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TMask& m = f.mask(); + TString qual(f.get()); + if (qual == "11") + m.enable(ADF_CODDIPDEC); + else + m.disable(ADF_CODDIPDEC); + } + return TRUE; +} + +bool TGenericRel_application::ADCodDipDec(TMask_field& f, KEY k) +{ + if (k == K_ENTER) + { + TMask& m = f.mask(); + TString sCodDec(f.get()); + long lDecedutoCorrente = 0L; + const long codditta = app()._codditta; + const long coddip = m.get_long(ADF_DIP_CODDIP); + + if (sCodDec.not_empty()) + { + lDecedutoCorrente = atol((const char*)sCodDec); + if (!esiste_dipendente(codditta,lDecedutoCorrente)) + return warning_box("Dipendente inesistente"); + } + const long lDecedutoOriginario = app()._lCodDipDec; + const bool bCambiatoDeceduto = //(lDecedutoCorrente != 0L) && + (lDecedutoOriginario != 0L) && + (lDecedutoCorrente != lDecedutoOriginario); + if (bCambiatoDeceduto) + { +// Cancella l'erede nel rec.del dec. precedente + if (!riscrivi_erede(codditta, lDecedutoOriginario,coddip,0L)) + return warning_box("Fallita cancellazione erede"); +// Scrive l'erede nel rec.del dec. attuale + if (lDecedutoCorrente != 0L) + if (!scrivi_erede(codditta, lDecedutoCorrente, coddip)) + return warning_box("Fallita scrittura codice erede su deceduto"); + } + else + if (lDecedutoCorrente != 0L) + { + if (!scrivi_erede(codditta, lDecedutoCorrente, coddip)) + return warning_box("Fallita scrittura codice erede su deceduto"); + app()._lCodDipDec = lDecedutoCorrente; + } + } + return TRUE; +} + +bool TGenericRel_application::eredi_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB || k == K_SPACE) + { + TString depdec(f.get()); + bool erede = depdec.not_empty(); + + if (erede) + { + f.mask().disable(F_DIP_CODEREDE0); + f.mask().disable(F_DIP_CODEREDE1); + f.mask().disable(F_DIP_CODEREDE2); + f.mask().disable(F_DIP_CODEREDE3); + f.mask().disable(F_DIP_CODEREDE4); + f.mask().disable(F_DIP_CODEREDE5); + f.mask().disable(F_DIP_CODEREDE6); + f.mask().disable(F_DIP_CODEREDE7); + f.mask().disable(F_DIP_CODEREDE8); + f.mask().disable(F_DIP_CODEREDE9); + } + else + { + f.mask().enable(F_DIP_CODEREDE0); + f.mask().enable(F_DIP_CODEREDE1); + f.mask().enable(F_DIP_CODEREDE2); + f.mask().enable(F_DIP_CODEREDE3); + f.mask().enable(F_DIP_CODEREDE4); + f.mask().enable(F_DIP_CODEREDE5); + f.mask().enable(F_DIP_CODEREDE6); + f.mask().enable(F_DIP_CODEREDE7); + f.mask().enable(F_DIP_CODEREDE8); + f.mask().enable(F_DIP_CODEREDE9); + } + } + return TRUE; +} + +bool TGenericRel_application::date_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TDate datainpi; + + TMask& m = f.mask(); + + TFilename name = m.source_file(); + + if (name == "771200i.msk") + datainpi = m.get_date(F_BSE_DATAINPI); + if (name == "771100h.msk") + datainpi = m.get_date(F_SOC_DATAINPI); + + TDate datafinpi (f.get()); + + if (datafinpi < datainpi) + return f.error_box("La data finale non puo' essere inferiore alla data iniziale"); + } + return TRUE; +} + +class TGeneric_application : public TApplication +{ + TFilename _maskname; + +protected: + bool create() { dispatch_e_menu(BAR_ITEM(1)); return TRUE; } + bool destroy() { return TRUE; } + bool menu(MENU_TAG); + +// static bool codditta77_handler(TMask_field& m, KEY k); + +public: + TGeneric_application(const char* name) : _maskname(name) {} +}; + + +bool TGeneric_application::menu(MENU_TAG) +{ + KEY k; + if (_maskname.empty()) + { + TMask m("Inserire il nome della maschera", 1, 42, 4); + m.add_string(101, 0, "", 1, 1, 40); + m.efield(101).check_type(CHECK_REQUIRED); + m.add_button(DLG_OK, 0, "", -12, -1, 10, 2); + m.add_button(DLG_CANCEL, 0, "", -22, -1, 10, 2); + k = m.run(); + if (k == K_ENTER) + _maskname = m.get(101); + else + return FALSE; + } + + TMask m(_maskname); + +// if (m.id2pos(F_CODDITTA) > 0) +// m.set_handler(F_CODDITTA, codditta77_handler); + + k = m.run(); + if (k == K_QUIT) stop_run(); + + return k != K_QUIT; +} + +/////////////////////////////////////////////////////////// +// 2 modi : +// RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml] +// oppure +// 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu] +/////////////////////////////////////////////////////////// +int generic(int argc, char* argv[]) +{ +// TApplication::check_parameters(argc, argv); + TFilename mask; + int num = 0; + if (argc > 1) + mask = argv[2]; + + if (argc < 6) + { + const char* title = argv[3]; + TGeneric_application a(mask); + a.run(argc, argv, title); + } + else + { + num = atoi(argv[3]); + const char* title = argv[4]; + const char* quadro = argv[5]; + TGenericRel_application a(mask, num, quadro); + a.run(argc, argv, title ? title : "Test Relation Application"); + } + return 0; +} + diff --git a/m770/makefile b/m770/makefile new file mode 100755 index 000000000..e7a7a5a79 --- /dev/null +++ b/m770/makefile @@ -0,0 +1,158 @@ +include f:/p.due/standard.mak + +.PRECIOUS: $(EXE) + +#EXE=$(EP)770.exe $(EP)771mod.exe $(EP)772mod.exe $(EP)773.exe $(EP)774.exe \ +# $(EP)775.exe $(EP)776mod.exe $(EP)7783.exe + +#EXE=$(EP)771mod.exe $(EP)776mod.exe $(EP)7783.exe +EXE=$(EP)770.exe + +main: $(EXE) + +# 770 + +$(O)770.obj: $(I)770.cpp + +$(EP)770.res: $(I)770.url $(U1) + +$(O)770100.obj: $(I)770100.cpp + +$(O)770101.obj: $(I)770101.cpp + +$(O)770102.obj: $(I)770102.cpp + +$(O)770200.obj: $(I)770200.cpp + +$(O)77lib01.obj: $(I)77lib01.cpp + +$(EP)770.exe: $(O)770.obj $(O)770100.obj $(O)770101.obj $(O)770102.obj \ + $(O)770200.obj $(O)77lib01.obj $(EP)770.res + $(LINK) $(LFLAGS) $@ 770+770100+770101+770102+770200+77lib01 + +# 771 + +$(EP)771mod.res: $(I)771mod.url $(U1) + +$(O)771.obj: $(I)771.cpp + +$(O)771100.obj: $(I)771100.cpp + +$(O)771230.obj: $(I)771230.cpp + +$(O)771290.obj: $(I)771290.cpp + +$(O)771295.obj: $(I)771295.cpp + +$(O)771300.obj: $(I)771300.cpp + +$(O)771310.obj: $(I)771310.cpp + +$(O)774100.obj: $(I)774100.cpp + +$(O)774200.obj: $(I)774200.cpp + +$(O)77lib01.obj: $(I)77lib01.cpp + +$(EP)771mod.exe: $(O)771.obj $(O)771100.obj $(O)771230.obj $(O)771290.obj $(O)771295.obj \ + $(O)771300.obj $(O)771310.obj $(O)774100.obj $(O)774200.obj $(O)77lib01.obj $(EP)771mod.res + $(LINK) $(LFLAGS) $@ 771+771100+771230+771290+771295+771300+771310+774100+774200+77lib01 + +# 772 + +$(EP)772mod.res: $(I)772mod.url $(U1) + +$(O)772.obj: $(I)772.cpp $(I)772.h + +$(O)772100.obj: $(I)772100.cpp $(I)772.h $(I)772100.h + +$(O)772200.obj: $(I)772200.cpp $(I)772.h $(I)772200.h + +$(O)772300.obj: $(I)772300.cpp $(I)772.h $(I)772300.h + +$(O)772400.obj: $(I)772400.cpp + +$(O)77lib01.obj: $(I)77lib01.cpp + +$(EP)772mod.exe: $(O)772.obj $(O)772100.obj $(O)772200.obj $(O)772300.obj \ + $(O)772400.obj $(O)77lib01.obj $(EP)772mod.res + $(LINK) $(LFLAGS) $@ 772+772100+772200+772300+772400+77lib01 + +# 773 + +$(O)773.obj: $(I)773.cpp $(I)773.h + +$(O)773100.obj: $(I)773100.cpp $(I)773.h $(I)773100.h + +$(O)773400.obj: $(I)773400.cpp $(I)773.h + +$(EP)773.res: $(I)773.url $(U1) + +$(EP)773.exe: $(O)773.obj $(O)773100.obj $(O)773400.obj $(EP)773.res + $(LINK) $(LFLAGS) $@ 773+773100+773400 + +#774 + +$(O)774.obj: $(I)774.cpp $(I)774.h + +$(O)774100.obj: $(I)774100.cpp $(I)774.h $(I)774100.h + +$(O)774200.obj: $(I)774200.cpp $(I)774.h $(I)774200.h + +$(EP)774.res: $(I)774.url $(U1) + +$(EP)774.exe: $(O)774.obj $(O)774100.obj $(O)774200.obj $(O)77lib01.obj \ + $(EP)774.res $(LIB2) + $(LINK) $(LFLAGS) $@ 774+774100+774200+77lib01 + +# 775 + +$(O)775.obj: $(I)775.cpp + +$(EP)775.res: $(I)775.url $(U1) + +$(O)775100.obj: $(I)775100.cpp $(I)775.h $(I)775100.h + +$(O)775200.obj: $(I)775200.cpp $(I)775.h $(I)775200.h + +$(EP)775.exe: $(O)775.obj $(EP)775.res $(O)775100.obj $(O)775200.obj $(LIB2) + $(LINK) $(LFLAGS) $@ 775+775100+775200 + + +# 776 + +$(O)776.obj: $(I)776.cpp $(I10) $(I33) + +$(EP)776mod.res: $(I)776mod.url $(U1) + +$(O)776100.obj: $(I)776100.cpp $(I34) $(I1) $(I33) $(I)776.h $(I)776100.h $(I15) + +$(O)776200.obj: $(I)776200.cpp $(I34) $(I1) $(I33) $(I)776.h $(I)776200.h $(I15) + +$(O)776300.obj: $(I)776300.cpp $(I34) $(I1) $(I33) $(I)776.h $(I)776300.h $(I15) + +$(O)776400.obj: $(I)776400.cpp + +$(O)776500.obj: $(I)776500.cpp + +$(O)776600.obj: $(I)776600.cpp + +$(O)77lib01.obj: $(I)77lib01.cpp $(I)77lib.h + +$(EP)776mod.exe: $(O)776.obj $(EP)776mod.res $(O)776100.obj $(O)776200.obj \ + $(O)776300.obj $(O)77lib01.obj $(O)776400.obj $(O)776500.obj \ + $(O)776600.obj + $(LINK) $(LFLAGS) $@ 776+776100+776200+776300+776400+776500+776600+77lib01 + +# 7783 + +$(EP)7783.res: $(I)7783.url $(U1) + +$(O)7783.obj: $(I)7783.cpp + +$(O)774200.obj: $(I)774200.cpp + +$(O)77lib01.obj: $(I)77lib01.cpp + +$(EP)7783.exe: $(O)7783.obj $(O)774200.obj $(O)77lib01.obj $(EP)771mod.res + $(LINK) $(LFLAGS) $@ 7783+774200+77lib01 diff --git a/m770/makemask b/m770/makemask new file mode 100755 index 000000000..ecff9f8c2 --- /dev/null +++ b/m770/makemask @@ -0,0 +1,150 @@ + +include f:/p.due/standard.mak + +MSK=\ +$(EP)770100a.msk \ +$(EP)770100b.msk \ +$(EP)770200a.msk \ +$(EP)771100a.msk \ +$(EP)771100b.msk \ +$(EP)771100c.msk \ +$(EP)771100d.msk \ +$(EP)771100e.msk \ +$(EP)771100f.msk \ +$(EP)771100g.msk \ +$(EP)771150a.msk \ +$(EP)771230a.msk \ +$(EP)771230b.msk \ +$(EP)771230c.msk \ +$(EP)771230d.msk \ +$(EP)771230e.msk \ +$(EP)771230f.msk \ +$(EP)771230g.msk \ +$(EP)771230h.msk \ +$(EP)771230i.msk \ +$(EP)771230l.msk \ +$(EP)771230m.msk \ +$(EP)771200a.msk \ +$(EP)771290a.msk \ +$(EP)771295a.msk \ +$(EP)771300a.msk \ +$(EP)771310a.msk \ +$(EP)771310b.msk \ +$(EP)771400a.msk \ +$(EP)772100a.msk \ +$(EP)772200a.msk \ +$(EP)772300a.msk \ +$(EP)772400a.msk \ +$(EP)773100a.msk \ +$(EP)775100a.msk \ +$(EP)776100a.msk \ +$(EP)776100b.msk \ +$(EP)776200a.msk \ +$(EP)776300a.msk \ +$(EP)776400a.msk \ +$(EP)776500a.msk \ +$(EP)776600a.msk \ +$(EP)bastca7.msk \ +$(EP)batbca7.msk \ +$(EP)batbcaf.msk \ +$(EP)batbent.msk \ + +main: $(MSK) + +$(EP)770100a.msk: $(I)770100a.uml + +$(EP)770100b.msk: $(I)770100b.uml + +$(EP)770100c.msk: $(I)770100c.uml + +$(EP)770100d.msk: $(I)770100d.uml + +$(EP)770200a.msk: $(I)770200a.uml + +$(EP)771100a.msk: $(I)771100a.uml + +$(EP)771100b.msk: $(I)771100b.uml + +$(EP)771100c.msk: $(I)771100c.uml + +$(EP)771100d.msk: $(I)771100d.uml + +$(EP)771100e.msk: $(I)771100e.uml + +$(EP)771100f.msk: $(I)771100f.uml + +$(EP)771100g.msk: $(I)771100g.uml + +$(EP)771150a.msk: $(I)771150a.uml + +$(EP)771200a.msk: $(I)771200a.uml + +$(EP)771230a.msk: $(I)771230a.uml + +$(EP)771230b.msk: $(I)771230b.uml + +$(EP)771230c.msk: $(I)771230c.uml + +$(EP)771230d.msk: $(I)771230d.uml + +$(EP)771230e.msk: $(I)771230e.uml + +$(EP)771230f.msk: $(I)771230f.uml + +$(EP)771230g.msk: $(I)771230g.uml + +$(EP)771230h.msk: $(I)771230h.uml + +$(EP)771230i.msk: $(I)771230i.uml + +$(EP)771230l.msk: $(I)771230l.uml + +$(EP)771230m.msk: $(I)771230m.uml + +$(EP)771290a.msk: $(I)771290a.uml + +$(EP)771295a.msk: $(I)771295a.uml + +$(EP)771300a.msk: $(I)771300a.uml + +$(EP)771310a.msk: $(I)771310a.uml + +$(EP)771310b.msk: $(I)771310b.uml + +$(EP)771400a.msk: $(I)771400a.uml + +$(EP)772100a.msk: $(I)772100a.uml + +$(EP)772200a.msk: $(I)772200a.uml + +$(EP)772300a.msk: $(I)772300a.uml + +$(EP)772400a.msk: $(I)772400a.uml + +$(EP)773100a.msk: $(I)773100a.uml + +$(EP)775100a.msk: $(I)775100a.uml + +$(EP)776100a.msk: $(I)776100a.uml + +$(EP)776100b.msk: $(I)776100b.uml + +$(EP)776200a.msk: $(I)776200a.uml + +$(EP)776300a.msk: $(I)776300a.uml + +$(EP)776400a.msk: $(I)776400a.uml + +$(EP)776500a.msk: $(I)776500a.uml + +$(EP)776600a.msk: $(I)776600a.uml + +$(EP)bastca7.msk: $(I)bastca7.uml + +$(EP)batbca7.msk: $(I)batbca7.uml + +$(EP)batbcaf.msk: $(I)batbcaf.uml + +$(EP)batbent.msk: $(I)batbent.uml + + diff --git a/m770/menu_st.h b/m770/menu_st.h new file mode 100755 index 000000000..7a24c4a01 --- /dev/null +++ b/m770/menu_st.h @@ -0,0 +1,56 @@ +#ifndef __MENUST_H +#define __MENUST_H + +#define F_ANNODIC 102 +#define B_SELDIC 182 + +#define T_BASE 104 +#define B_BASE 105 +#define T_LAGG 106 +#define B_LAGG 107 +#define T_NAGG 108 +#define B_NAGG 109 +#define T_ALLSOC 110 +#define B_ALLSOC 111 +#define T_ALLG 112 +#define B_ALLG 113 +#define T_BUST 114 +#define B_BUST 115 +#define T_A 116 +#define B_A 117 +#define T_A1 118 +#define B_A1 119 +#define T_A2 120 +#define B_A2 121 +#define T_A3 122 +#define B_A3 123 +#define T_B 124 +#define B_B 125 +#define T_B1 126 +#define B_B1 127 +#define T_C 128 +#define B_C 129 +#define T_D 130 +#define B_D 131 +#define T_D1 132 +#define B_D1 133 +#define T_E 134 +#define B_E 135 +#define T_E1 136 +#define B_E1 137 +#define T_E2 138 +#define B_E2 139 +#define T_F 140 +#define B_F 141 +#define T_F1 142 +#define B_F1 143 +#define T_F2 144 +#define B_F2 145 +#define T_G 146 +#define B_G 147 +#define T_G1 148 +#define B_G1 149 +#define T_H 150 +#define B_H 151 + +#endif diff --git a/m770/menu_st.uml b/m770/menu_st.uml new file mode 100755 index 000000000..3d4f38998 --- /dev/null +++ b/m770/menu_st.uml @@ -0,0 +1,434 @@ +// Menu' stampe quadri a livello di studio +#include "menu_st.h" +TOOLBAR "" 0 22 0 2 +ENDPAGE + +PAGE "Stampa quadri" -1 -1 78 21 + +TEXT DLG_NULL +BEGIN + PROMPT 5 3 "Seleziona dichiarazioni" + GROUP 1 +END + +// Il menu' viene richiamato nell'handler di questo bottone +BUTTON B_SELDIC 1 1 +BEGIN + PROMPT 1 3 "" + MESSAGE RUN,776MOD,-2 + PICTURE 123 + GROUP 1 +END + +#define COL1 5 +#define COL2 24 +#define COL3 5 +#define COL4 5 + +#define ROW1 7 +#define ROW2 8 +#define ROW3 9 +#define ROW4 10 +#define ROW5 11 +#define ROW6 12 + +// Prima colonna +TEXT T_BASE +BEGIN + PROMPT COL1 ROW1 "Quadro Base" + GROUP 1 + FLAGS "D" +END + +BUTTON B_BASE 1 1 +BEGIN + PROMPT 1 ROW1 "" + MESSAGE RUN,771MOD,-7,A|K_TAB,RILEGGI_QUADRI + PICTURE 123 + FLAGS "D" + GROUP 1 +END + +TEXT T_LAGG +BEGIN + PROMPT COL1 ROW2 "Quadro L agg." + GROUP 1 + FLAGS "D" +END + +BUTTON B_LAGG 1 1 +BEGIN + PROMPT 1 ROW2 "" + MESSAGE RUN,771MOD,-7,1|K_TAB,RILEGGI_QUADRI + PICTURE 123 + FLAGS "D" + GROUP 1 +END + +TEXT T_NAGG +BEGIN + PROMPT COL1 ROW3 "Quadro N agg." + GROUP 1 + FLAGS "D" +END + +BUTTON B_NAGG 1 1 +BEGIN + PROMPT 1 ROW3 "" +// MESSAGE RUN,771MOD,-7,2|K_TAB,RILEGGI_QUADRI + PICTURE 123 + FLAGS "D" + GROUP 1 +END + +TEXT T_ALLSOC +BEGIN + PROMPT COL1 ROW4 "Allegato Soci " + GROUP 1 + FLAGS "D" +END + +BUTTON B_ALLSOC 1 1 +BEGIN + PROMPT 1 ROW4 "" +// MESSAGE RUN,771MOD,-7,3|K_TAB,RILEGGI_QUADRI + PICTURE 123 + FLAGS "D" + GROUP 1 +END + +TEXT T_ALLG +BEGIN + PROMPT COL1 ROW5 "Allegato G " + FLAGS "D" + GROUP 1 +END + +BUTTON B_ALLG 1 1 +BEGIN + PROMPT 1 ROW5 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS "D" + GROUP 1 +END + +TEXT T_BUST +BEGIN + PROMPT COL1 ROW6 "Buste" + FLAGS "D" + GROUP 1 +END + +BUTTON B_BUST 1 1 +BEGIN + PROMPT 1 ROW6 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS "D" + GROUP 1 +END +// Fine prima colonna + + +// Seconda colonna +TEXT T_A +BEGIN + PROMPT 24 ROW1 "Quadro A " + FLAGS "D" + GROUP 1 +END + +BUTTON B_A 1 1 +BEGIN + PROMPT 20 ROW1 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,D|K_TAB,RILEGGI_QUADRI + FLAGS "D" + GROUP 1 +END + +TEXT T_A1 +BEGIN + PROMPT 24 ROW2 "Quadro A1 " + FLAGS "D" + GROUP 1 +END + +BUTTON B_A1 1 1 +BEGIN + PROMPT 20 ROW2 "" + PICTURE 123 + FLAGS "D" + MESSAGE RUN,771MOD,-5,1|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT T_A2 +BEGIN + PROMPT 24 ROW3 "Quadro A2 " + FLAGS "D" + GROUP 1 +END + +BUTTON B_A2 1 1 +BEGIN + PROMPT 20 ROW3 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,E|K_TAB,RILEGGI_QUADRI + FLAGS "D" + GROUP 1 +END + +TEXT T_A3 +BEGIN + PROMPT 24 ROW4 "Quadro A3 " + FLAGS "D" + GROUP 1 +END + +BUTTON B_A3 1 1 +BEGIN + PROMPT 20 ROW4 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,2|K_TAB,RILEGGI_QUADRI + FLAGS "D" + GROUP 1 +END + +TEXT T_B +BEGIN + PROMPT 24 ROW5 "Quadro B" + FLAGS "D" + GROUP 1 +END + +BUTTON B_B 1 1 +BEGIN + PROMPT 20 ROW5 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,3|K_TAB,RILEGGI_QUADRI + FLAGS "D" + GROUP 1 +END + +TEXT T_B1 +BEGIN + PROMPT 24 ROW6 "Quadro B1" +// FLAGS "D" + GROUP 1 +END + +BUTTON B_B1 1 1 +BEGIN + PROMPT 20 ROW6 "" + PICTURE 123 + MESSAGE RUN,771MOD,-6,0|K_TAB,RILEGGI_QUADRI + FLAGS "D" + GROUP 1 +END +// Fine seconda colonna + +// Terza colonna +TEXT T_C +BEGIN + PROMPT 43 ROW1 "Quadro C" + FLAGS "D" + GROUP 1 +END + +BUTTON B_C 1 1 +BEGIN + PROMPT 39 ROW1 "" + PICTURE 123 + MESSAGE RUN,771MOD,-6,2|K_TAB,RILEGGI_QUADRI + FLAGS "D" + GROUP 1 +END + +TEXT T_D +BEGIN + PROMPT 43 ROW2 "Quadro D" + GROUP 1 +END + +BUTTON B_D 1 1 +BEGIN + PROMPT 39 ROW2 "" + PICTURE 123 + MESSAGE RUN,772MOD,-4,D,S + GROUP 1 +END + +TEXT T_D1 +BEGIN + PROMPT 43 ROW3 "Quadro D1" + FLAGS "D" + GROUP 1 +END + +BUTTON B_D1 1 1 +BEGIN + PROMPT 39 ROW3 "" + PICTURE 123 + FLAGS "D" + MESSAGE RUN,771MOD,-6,5|K_TAB,RILEGGI_QUADRI + GROUP 1 +END + +TEXT T_E +BEGIN + PROMPT 43 ROW4 "Quadro E " + FLAGS "D" + GROUP 1 +END + +BUTTON B_E 1 1 +BEGIN + PROMPT 39 ROW4 "" + PICTURE 123 + MESSAGE RUN,771MOD,-1|K_TAB,RILEGGI_QUADRI + FLAGS "D" + GROUP 1 +END + +TEXT T_E1 +BEGIN + PROMPT 43 ROW5 "Quadro E1 " + FLAGS "D" + GROUP 1 +END + +BUTTON B_E1 1 1 +BEGIN + PROMPT 39 ROW5 "" + PICTURE 123 + MESSAGE RUN,771MOD,-2,I|K_TAB,RILEGGI_QUADRI + FLAGS "D" + GROUP 1 +END + +TEXT T_E2 +BEGIN + PROMPT 43 ROW6 "Quadro E2 " + FLAGS "D" + GROUP 1 +END + +BUTTON B_E2 1 1 +BEGIN + PROMPT 39 ROW6 "" + PICTURE 123 + MESSAGE RUN,771MOD,-3|K_TAB,RILEGGI_QUADRI + FLAGS "D" + GROUP 1 +END +// Fine terza colonna + +// QUARTA colonna +TEXT T_F +BEGIN + PROMPT 62 ROW1 "Quadro F" + FLAGS "D" + GROUP 1 +END + +BUTTON B_F 1 1 +BEGIN + PROMPT 58 ROW1 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS "D" + GROUP 1 +END + +TEXT T_F1 +BEGIN + PROMPT 62 ROW2 "Quadro F1" + FLAGS "D" + GROUP 1 +END + +BUTTON B_F1 1 1 +BEGIN + PROMPT 58 ROW2 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS "D" + GROUP 1 +END + +TEXT T_F2 +BEGIN + PROMPT 62 ROW3 "Quadro F2" + FLAGS "D" + GROUP 1 +END + +BUTTON B_F2 1 1 +BEGIN + PROMPT 58 ROW3 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS "D" + GROUP 1 +END + +TEXT T_G +BEGIN + PROMPT 62 ROW4 "Quadro G" + FLAGS "D" + GROUP 1 +END + +BUTTON B_G 1 1 +BEGIN + PROMPT 58 ROW4 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS "D" + GROUP 1 +END + +TEXT T_G1 +BEGIN + PROMPT 62 ROW5 "Quadro G1" + FLAGS "D" + GROUP 1 +END + +BUTTON B_G1 1 1 +BEGIN + PROMPT 58 ROW5 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS "D" + GROUP 1 +END + +TEXT T_H +BEGIN + PROMPT 62 ROW5 "Quadro H" + FLAGS "D" + GROUP 1 +END + +BUTTON B_H 1 1 +BEGIN + PROMPT 58 ROW5 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS "D" + GROUP 1 +END +// Fine QUARTA colonna + +BUTTON DLG_QUIT 20 2 +BEGIN + PROMTP -12 -1 "Fine" +END + +ENDPAGE + +ENDMASK + diff --git a/m770/menustq.h b/m770/menustq.h new file mode 100755 index 000000000..da1f1db1c --- /dev/null +++ b/m770/menustq.h @@ -0,0 +1,54 @@ +#ifndef __MENUST_H +#define __MENUST_H + +#define DLG_CANCEL_MENUSTQ 103 +#define T_BASE 104 +#define B_BASE 105 +#define T_LAGG 106 +#define B_LAGG 107 +#define T_NAGG 108 +#define B_NAGG 109 +#define T_ALLSOC 110 +#define B_ALLSOC 111 +#define T_ALLG 112 +#define B_ALLG 113 +#define T_BUST 114 +#define B_BUST 115 +#define T_A 116 +#define B_A 117 +#define T_A1 118 +#define B_A1 119 +#define T_A2 120 +#define B_A2 121 +#define T_A3 122 +#define B_A3 123 +#define T_B 124 +#define B_B 125 +#define T_B1 126 +#define B_B1 127 +#define T_C 128 +#define B_C 129 +#define T_D 130 +#define B_D 131 +#define T_D1 132 +#define B_D1 133 +#define T_E 134 +#define B_E 135 +#define T_E1 136 +#define B_E1 137 +#define T_E2 138 +#define B_E2 139 +#define T_F 140 +#define B_F 141 +#define T_F1 142 +#define B_F1 143 +#define T_F2 144 +#define B_F2 145 +#define T_G 146 +#define B_G 147 +#define T_G1 148 +#define B_G1 149 +#define T_H 150 +#define B_H 151 + +#endif diff --git a/m770/menustq.uml b/m770/menustq.uml new file mode 100755 index 000000000..9aa6826c0 --- /dev/null +++ b/m770/menustq.uml @@ -0,0 +1,404 @@ +// Menu' stampe quadri +#include "menustq.h" + +#define COL1 5 +#define COL2 24 +#define COL3 5 +#define COL4 5 + +#define ROW1 7 +#define ROW2 8 +#define ROW3 9 +#define ROW4 10 +#define ROW5 11 +#define ROW6 12 + +#define HIDDEN "H" +#define MYFLAGS "DH" +#define GRUPPO 5 + +// Prima colonna +TEXT T_BASE +BEGIN + PROMPT COL1 ROW1 "Quadro Base" + GROUP GRUPPO + FLAGS MYFLAGS +END + +BUTTON B_BASE 1 1 +BEGIN + PROMPT 1 ROW1 "" + MESSAGE RUN,771MOD,-7,A|K_TAB,RILEGGI_QUADRI + PICTURE 123 + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_LAGG +BEGIN + PROMPT COL1 ROW2 "Quadro L agg." + GROUP GRUPPO + FLAGS MYFLAGS +END + +BUTTON B_LAGG 1 1 +BEGIN + PROMPT 1 ROW2 "" + MESSAGE RUN,771MOD,-7,1|K_TAB,RILEGGI_QUADRI + PICTURE 123 + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_NAGG +BEGIN + PROMPT COL1 ROW3 "Quadro N agg." + GROUP GRUPPO + FLAGS MYFLAGS +END + +BUTTON B_NAGG 1 1 +BEGIN + PROMPT 1 ROW3 "" +// MESSAGE RUN,771MOD,-7,2|K_TAB,RILEGGI_QUADRI + PICTURE 123 + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_ALLSOC +BEGIN + PROMPT COL1 ROW4 "Allegato Soci " + GROUP GRUPPO + FLAGS MYFLAGS +END + +BUTTON B_ALLSOC 1 1 +BEGIN + PROMPT 1 ROW4 "" +// MESSAGE RUN,771MOD,-7,3|K_TAB,RILEGGI_QUADRI + PICTURE 123 + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_ALLG +BEGIN + PROMPT COL1 ROW5 "Allegato G " + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_ALLG 1 1 +BEGIN + PROMPT 1 ROW5 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS MYFLAGS + GROUP GRUPPO +END +// Fine prima colonna + + +// Seconda colonna +TEXT T_A +BEGIN + PROMPT 24 ROW1 "Quadro A " + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_A 1 1 +BEGIN + PROMPT 20 ROW1 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,D|K_TAB,RILEGGI_QUADRI + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_A1 +BEGIN + PROMPT 24 ROW2 "Quadro A1 " + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_A1 1 1 +BEGIN + PROMPT 20 ROW2 "" + PICTURE 123 + FLAGS MYFLAGS + MESSAGE RUN,771MOD,-5,1|K_TAB,RILEGGI_QUADRI + GROUP GRUPPO +END + +TEXT T_A2 +BEGIN + PROMPT 24 ROW3 "Quadro A2 " + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_A2 1 1 +BEGIN + PROMPT 20 ROW3 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,E|K_TAB,RILEGGI_QUADRI + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_A3 +BEGIN + PROMPT 24 ROW4 "Quadro A3 " + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_A3 1 1 +BEGIN + PROMPT 20 ROW4 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,2|K_TAB,RILEGGI_QUADRI + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_B +BEGIN + PROMPT 24 ROW5 "Quadro B" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_B 1 1 +BEGIN + PROMPT 20 ROW5 "" + PICTURE 123 + MESSAGE RUN,771MOD,-5,3|K_TAB,RILEGGI_QUADRI + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_B1 +BEGIN + PROMPT 24 ROW6 "Quadro B1" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_B1 1 1 +BEGIN + PROMPT 20 ROW6 "" + PICTURE 123 + MESSAGE RUN,771MOD,-6,0|K_TAB,RILEGGI_QUADRI + FLAGS MYFLAGS + GROUP GRUPPO +END +// Fine seconda colonna + +// Terza colonna +TEXT T_C +BEGIN + PROMPT 43 ROW1 "Quadro C" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_C 1 1 +BEGIN + PROMPT 39 ROW1 "" + PICTURE 123 + MESSAGE RUN,771MOD,-6,2|K_TAB,RILEGGI_QUADRI + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_D +BEGIN + PROMPT 43 ROW2 "Quadro D" + FLAGS HIDDEN + GROUP GRUPPO +END + +BUTTON B_D 1 1 +BEGIN + PROMPT 39 ROW2 "" + PICTURE 123 + MESSAGE RUN,772MOD,-4,D,D + FLAGS HIDDEN + GROUP GRUPPO +END + +TEXT T_D1 +BEGIN + PROMPT 43 ROW3 "Quadro D1" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_D1 1 1 +BEGIN + PROMPT 39 ROW3 "" + PICTURE 123 + FLAGS MYFLAGS + MESSAGE RUN,771MOD,-6,5|K_TAB,RILEGGI_QUADRI + GROUP GRUPPO +END + +TEXT T_E +BEGIN + PROMPT 43 ROW4 "Quadro E " + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_E 1 1 +BEGIN + PROMPT 39 ROW4 "" + PICTURE 123 + MESSAGE RUN,771MOD,-1|K_TAB,RILEGGI_QUADRI + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_E1 +BEGIN + PROMPT 43 ROW5 "Quadro E1 " + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_E1 1 1 +BEGIN + PROMPT 39 ROW5 "" + PICTURE 123 + MESSAGE RUN,771MOD,-2,I|K_TAB,RILEGGI_QUADRI + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_E2 +BEGIN + PROMPT 43 ROW6 "Quadro E2 " + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_E2 1 1 +BEGIN + PROMPT 39 ROW6 "" + PICTURE 123 + MESSAGE RUN,771MOD,-3|K_TAB,RILEGGI_QUADRI + FLAGS MYFLAGS + GROUP GRUPPO +END +// Fine terza colonna + +// QUARTA colonna +TEXT T_F +BEGIN + PROMPT 62 ROW1 "Quadro F" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_F 1 1 +BEGIN + PROMPT 58 ROW1 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_F1 +BEGIN + PROMPT 62 ROW2 "Quadro F1" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_F1 1 1 +BEGIN + PROMPT 58 ROW2 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_F2 +BEGIN + PROMPT 62 ROW3 "Quadro F2" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_F2 1 1 +BEGIN + PROMPT 58 ROW3 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_G +BEGIN + PROMPT 62 ROW4 "Quadro G" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_G 1 1 +BEGIN + PROMPT 58 ROW4 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_G1 +BEGIN + PROMPT 62 ROW5 "Quadro G1" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_G1 1 1 +BEGIN + PROMPT 58 ROW5 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS MYFLAGS + GROUP GRUPPO +END + +TEXT T_H +BEGIN + PROMPT 62 ROW5 "Quadro H" + FLAGS MYFLAGS + GROUP GRUPPO +END + +BUTTON B_H 1 1 +BEGIN + PROMPT 58 ROW5 "" + PICTURE 123 +// MESSAGE RUN,771MOD,-1 + FLAGS MYFLAGS + GROUP GRUPPO +END +// Fine QUARTA colonna + +BUTTON DLG_CANCEL_MENUSTQ 20 2 +BEGIN + PROMPT -22 -1 "Menu' precedente" + GROUP GRUPPO + FLAGS "H" + MESSAGE HIDE,GRUPPO@|SHOW,3@ +END + diff --git a/m770/pe1.h b/m770/pe1.h new file mode 100755 index 000000000..0ec7d6cd8 --- /dev/null +++ b/m770/pe1.h @@ -0,0 +1,18 @@ +#ifndef _PE1_H +#define _PE1_H + +//771230m.uml (prospetto E1) +#define PE1F_CODCAUS 113 +#define PE1F_IMPONIBILE 119 +#define PE1F_RITENUTA 160 +#define PE1F_COMPENSO 161 +#define PE1F_CODCAUS2 162 +#define F_CODANAGR2 170 +#define F_RAGSOC2 171 +#define PE1F_HPERC 172 +#define PE1F_CODDITTA 181 +#define PE1F_DESCRCAUS 184 +#define PE1F_RAGDITTA 185 + +#endif + diff --git a/m770/perc.h b/m770/perc.h new file mode 100755 index 000000000..cbe3c638c --- /dev/null +++ b/m770/perc.h @@ -0,0 +1,12 @@ +// Campi Archivio Dati Percipienti + +#ifndef __PERC_H +#define __PERC_H + +#define PRC_CODDITTA "CODDITTA" +#define PRC_TIPOA "TIPOA" +#define PRC_CODANAGR "CODANAGR" +#define PRC_FATTBIL "FATTBIL" +#define PRC_FLAGCT "FLAGCT" + +#endif diff --git a/m770/prospe1.h b/m770/prospe1.h new file mode 100755 index 000000000..6e59c2811 --- /dev/null +++ b/m770/prospe1.h @@ -0,0 +1,12 @@ +// Mod.770 - Prospetto del Quadro E1 + +#ifndef __PROSPE1_H +#define __PROSPE1_H + +#define PRE_CODDITTA "CODDITTA" +#define PRE_CODCAUS "CODCAUS" +#define PRE_COMPENSO "COMPENSO" +#define PRE_IMPONIBILE "IMPONIBILE" +#define PRE_RITENUTA "RITENUTA" + +#endif diff --git a/m770/prova.cpp b/m770/prova.cpp new file mode 100755 index 000000000..b44617e4b --- /dev/null +++ b/m770/prova.cpp @@ -0,0 +1,60 @@ + +#include +#include +#include +#include +#include +#include + +#include "../ba/batbreg.h" + +#define REG_JOURNAL 5 + +HIDDEN bool tiporeg_handler(TMask_field& f, KEY k); + +class m70000_app : public Tab_application +{ + private: + TMask* _msk; + TString _tabname; + long _oldditta; + int _oldanno; + bool _exist_journal; + + public: + bool user_create(); + bool exist_journal() {return _exist_journal;} + m70000_app() {} + virtual ~m70000_app() {} +}; + +HIDDEN inline m70000_app& app() { return (m70000_app&) main_app();} + +HIDDEN bool tiporeg_handler(TMask_field& f, KEY k) +{ + if ((k == K_TAB || k == K_ENTER) && app().exist_journal() && + (atoi(f.get()) == REG_JOURNAL) + ) + return error_box("Non e' possibile avere due registri giornale nello stesso anno"); + return TRUE; +} + + +bool m70000_app::user_create() +{ + Tab_application::user_create(); + _msk = get_mask(); + _tabname = get_tabname(); + if (_tabname == "REG") _msk->set_handler(F_TIPO, tiporeg_handler); + return TRUE; +} + +main(int argc, char* argv[]) +{ + m70000_app a; + + a.run(argc,argv, "Prova di tabapp"); + return 0; +} + + diff --git a/m770/prova.uml b/m770/prova.uml new file mode 100755 index 000000000..a08af7d2f --- /dev/null +++ b/m770/prova.uml @@ -0,0 +1,31 @@ +#include "m70100a.h" + +TOOLBAR "" 0 20 0 2 + +#include + +ENDPAGE + +#define F1 100 +#define F2 101 + + +PAGE "MODULO 770 - SCHEDA PERCIPIENTI" -1 -1 78 21 + +BOOLEAN F1 +BEGIN + PROMPT 1 4 "Flag 1 " +// USE LF_BASE + FIELD LF_BASE->NUMSER1[1,1] +END + +BOOLEAN F2 +BEGIN + PROMPT 1 6 "Flag 2 " +// USE LF_BASE + FIELD LF_BASE->NUMSER1[2,1] +END + +ENDPAGE + +ENDMASK diff --git a/m770/prova.url b/m770/prova.url new file mode 100755 index 000000000..779d30d66 --- /dev/null +++ b/m770/prova.url @@ -0,0 +1,6 @@ + +#include + +MENU TASK_MENUBAR + SUBMENU MENU_FILE "~File" + diff --git a/m770/prova770.uml b/m770/prova770.uml new file mode 100755 index 000000000..6eb02639b --- /dev/null +++ b/m770/prova770.uml @@ -0,0 +1,179 @@ +#include "771230a.h" + +TOOLBAR "" 0 18 0 4 + +BUTTON F_GENERA 21 2 +BEGIN + PROMPT -13 -3 "~Generazione" +END + +#include + +ENDPAGE + +PAGE "MODULO 770 - QUADRO D" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "FRD" + KEY 1 + CHECKTYPE REQUIRED + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_QUAD->CODDITTA +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 7 "@bDati percipiente" +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 8 "" + ITEM "F|Fisica" + ITEM "G|Giuridica" + FLAGS "P" + CHECKTYPE REQUIRED + KEY 1 + FIELD LF_QUAD->TIPOA +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 1 8 "" + FLAGS "H" + FIELD LF_QUAD->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGRPERC 5 +BEGIN + PROMPT 15 8 "" + USE LF_PERC KEY 1 SELECT (CODDITTA=#F_CODDITTA) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRPERC + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRPERC CODANAGR + OUTPUT F_RAGSOCPER LF_ANAG->RAGSOC + MESSAGE COPY, F_CODANAGR + FLAGS "P" + CHECKTYPE REQUIRED + KEY 1 +// ADD RUN 775 -0 + GROUP 2 +END + +/************ +NUMBER F_CODANAGRCOM 5 +BEGIN + PROMPT 15 8 "" + USE LF_ANAG KEY 1 + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGRCOM + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + MESSAGE COPY, F_CODANAGR +// ADD RUN BA4 -1 +// FLAGS "HP" +// GROUP 1 +END +*********************/ + +/***************+ +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 8 "" + FLAGS "H" +END + +STRING F_RAGSOCCOM 50 +BEGIN + PROMPT 25 8 "" + USE LF_ANAG KEY 2 + INPUT RAGSOC F_RAGSOCCOM + DISPLAY "Cognome - Nome o Ragione sociale@50" RAGSOC + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + OUTPUT F_RAGSOCCOM RAGSOC + OUTPUT F_CODANAGRCOM CODANAGR + OUTPUT F_TIPOA TIPOA + KEY 2 + FLAGS "P" + ADD RUN BA4 -1 + MESSAGE COPY, F_RAGSOC + GROUP 1 +END + +STRING F_RAGSOCPER 50 +BEGIN + PROMPT 25 8 "" + FLAGS "DP" + GROUP 2 + MESSAGE COPY, F_RAGSOC +END +*****************************/ + +NUMBER F_NPROG 4 +BEGIN + PROMPT 1 10 "@bNumero " + USE LF_QUAD +// JOIN LF_ANAG TO LF_QUAD KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR +// INPUT CODDITTA F_CODDITTA SELECT +// INPUT TIPOA F_TIPOA SELECT +// INPUT CODANAGR F_CODANAGR SELECT +// INPUT NPROG F_NPROG + + INPUT CODDITTA F_CODDITTA +/*********************** + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR + INPUT NPROG F_NPROG +**************/ + DISPLAY "Tipo" TIPOA + DISPLAY "Codice@10" CODANAGR +// DISPLAY "Ragione@50" LF_ANAG->RAGSOC + DISPLAY "N°" NPROG +/************************* + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_NPROG NPROG +******************************/ + FIELD LF_QUAD->NPROG + CHECKTYPE REQUIRED + KEY 1 +END + +ENDPAGE + +ENDMASK + diff --git a/m770/quabb1.cpp b/m770/quabb1.cpp new file mode 100755 index 000000000..e69de29bb diff --git a/m770/quadb_b1.cpp b/m770/quadb_b1.cpp new file mode 100755 index 000000000..b4caa6d80 --- /dev/null +++ b/m770/quadb_b1.cpp @@ -0,0 +1,514 @@ +// quadb_b1.cpp +#include +#include +#include +#include +#include "774200.h" +#include "77lib.h" +#include "quadrob.h" +#include "quadrob1.h" +#include "77qb.h" +#include "77qb1.h" + +#define CODDITTA77 181 +#define ANNODIC77 182 + +class TQuadriBB1_application : public TRelation_application +{ + static bool codditta77_handler (TMask_field& m, KEY k); + static bool PrimoNprogLibero (TMask& m, const long codditta, const long coddip); + static bool CodDipHandler (TMask_field& m, KEY k); + static bool NprogExitHandler (TMask_field& m, KEY k); + static bool QBTotRedImpHandler (TMask_field& f, KEY k); + static bool QBAmmRopeHandler (TMask_field& f, KEY k); + static bool QBTotIndennHandler (TMask_field& f, KEY k); + const char* _maskname; + int _num; + int _pos_quadro; // posizione nell'array dei quadri. Usato in set_comp + TString16 _quadro; + TRiporti _rip; + TRelation* _rel; + TMask* _msk[2]; + bool _registra; + int _anno_dic; + int _mode; + bool _MaskConAnnoDic, _MaskConCodditta; + bool MaskConAnnoDic() const; + bool MaskConCodditta() const { return _MaskConCodditta; } + bool EsisteUnRec(); + bool QuadroB() const { return _num == LF_QUAB; } + bool QuadroB1() const { return _num == LF_QUAB1; } + bool CheckImporti(const TMask& m); + bool EsisteGiaCodDip(const TMask& m); + bool EsisteGiaRecordDip(const TMask& m); + long _codditta; + void init_mask(TMask&); + + protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual void on_config_change(); + virtual TMask* get_mask(int); + virtual bool changing_mask(int); + TMask* load_mask(int n); + virtual TRelation* get_relation() const { return _rel; } + virtual void init_query_mode(TMask&); + virtual void init_query_insert_mode(TMask&); + virtual void init_insert_mode(TMask&); + virtual void init_modify_mode(TMask&); + + public: + TQuadriBB1_application(const char* name, const int num, const char* quadro); +}; + +TQuadriBB1_application::TQuadriBB1_application(const char* name, const int num, const char* quadro) +: _maskname(name), _num(num), _mode(0), + _MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE), + _rel(NULL), _quadro(quadro) +{ + memset(_msk, 0, sizeof(_msk)); + switch (_num) + { + case LF_QUAB: + _pos_quadro = B; + break; + case LF_QUAB1: + _pos_quadro = B1; + break; + } +} + +TQuadriBB1_application& app() { return (TQuadriBB1_application&)main_app(); } + +bool TQuadriBB1_application::changing_mask(int mode) +{ + if (mode == MODE_QUERY) + return _mode != MODE_QUERY; + else + return TRUE; +} + +TMask* TQuadriBB1_application::get_mask(int mode) +{ + const int m = (mode == MODE_QUERY) ? 0 : 1; + _mode = mode; + return load_mask(m); +} + +TMask* TQuadriBB1_application::load_mask(int n) +{ + if (_msk[n] != NULL) + return _msk[n]; + + TFilename name("77qb"); + + if (n == 0) + { + switch (_num) + { + case LF_QUAB: + name << 'a'; + break; + case LF_QUAB1: + name << "1a"; + break; + default: + break; + } + } + else + { + switch (_num) + { + case LF_QUAB: + name << 'b'; + break; + case LF_QUAB1: + name << "1b"; + break; + default: + break; + } + } + + TMask* m = new TMask(name); + m->set_handler(CODDITTA77, codditta77_handler); + if (QuadroB()) + m->set_handler(QBF_CODDIP, CodDipHandler); + else + m->set_handler(QB1F_CODDIP, CodDipHandler); + m->set_handler(QuadroB() ? QBF_NPROG : QB1F_NPROG, NprogExitHandler); + + switch (n) + { + case 0: + if (m) + {} + break; + case 1: + if (m) + if (QuadroB()) + { + m->set_handler(QBF_TOTIMP, QBTotRedImpHandler); + m->set_handler(QBF_ROPE, QBAmmRopeHandler); + m->set_handler(QBF_AMMNETTO, QBTotIndennHandler); + m->set_handler(QBF_AMMNETTO2, QBTotIndennHandler); + m->set_handler(QBF_CONTLAV, QBTotIndennHandler); + m->set_handler(QBF_TFR7494, QBTotIndennHandler); + m->set_handler(QBF_INDEN7494, QBTotIndennHandler); + set_search_field(QBF_QUAB_CODDIP); + } + else + set_search_field(QB1F_ANADIP_CODDIP); + break; + default: + break; + } + m->disable(DLG_FINDREC); + + return _msk[n] = m; +} + +bool TQuadriBB1_application::MaskConAnnoDic() const +{ + return _MaskConAnnoDic; +} + +void TQuadriBB1_application::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); +} + +bool TQuadriBB1_application::user_create() +{ + _registra = FALSE; + _rel = new TRelation(_num); + _codditta = get_firm_770(); + return TRUE; +} + +bool TQuadriBB1_application::EsisteUnRec() +{ + TLocalisamfile q(_num); + q.zero(); + q.put(QB_CODDITTA, (long)app()._codditta); + TRectype dep(q.curr()); + q.read(_isgteq); + if (q.curr() > dep || q.eof()) + return FALSE; + else + return TRUE; +} + +bool TQuadriBB1_application::user_destroy() +{ + if (_quadro != "") + if (_registra) + _rip.set(_quadro); + if (_msk[1] != NULL) delete _msk[1]; + if (_msk[0] != NULL) delete _msk[0]; + delete _rel; + return TRUE; +} + +// Q.B. Controlla che ci sia diverso da ZERO il tot.red.imp. +bool TQuadriBB1_application::CheckImporti(const TMask& m) +{ + real TotRedImp(m.get(QBF_TOTIMP)); + return TotRedImp != ZERO; +} + +// Controlla se esiste gia' un record con lo stesso cod.dip. +bool TQuadriBB1_application::EsisteGiaCodDip(const TMask& m) +{ + TLocalisamfile q(_num); + const long codip = m.get_long(QuadroB()? QBF_CODDIP : QB1F_CODDIP); + q.zero(); + q.put(QB_CODDITTA, _codditta); + q.put(QB_CODDIP, codip); + + TRectype dep(q.curr()); + q.read(_isgteq); + return q.curr() == dep; +} + +// Controlla se esiste gia' una chiave completa +bool TQuadriBB1_application::EsisteGiaRecordDip(const TMask& m) +{ + TLocalisamfile q(_num); + const long codip = m.get_long(QuadroB()? QBF_CODDIP : QB1F_CODDIP); + const long nprog = m.get_long(QuadroB()? QBF_NPROG : QB1F_NPROG); + q.zero(); + q.put(QB_CODDITTA, _codditta); + q.put(QB_CODDIP, codip); + q.put(QB_NPROG, nprog); + TRectype dep(q.curr()); + return q.read() == NOERR; +} + +int TQuadriBB1_application::rewrite(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->rewrite(); + _registra = err == NOERR; + return err; +} + +int TQuadriBB1_application::write(const TMask& m) +{ + m.autosave(_rel); + if (QuadroB1()) + if (EsisteGiaRecordDip(m)) + return warning_box("E' già presente un record per questo dipendente"); + const int err = _rel->write(); + _registra = err == NOERR; + return err; +} + +bool TQuadriBB1_application::remove() +{ + _registra = TRUE; + return TRelation_application::remove(); +} + +void TQuadriBB1_application::init_mask(TMask& m) +{ + if (QuadroB()) + { + const long codditta = m.get_long(QBF_CODDITTA); + const long codip = m.get_long(QBF_CODDIP); + if (codip==0L) + return; + if (is_erede(codditta,codip)) + { + m.disable(-GROUP_ALL); // Disabilita tutti i campi + m.enable(-GROUP_EREDE); // Abilita solo quelli giusti + } + else + { + m.enable(-GROUP_ALL); + if (is_deceduto(codditta,codip) || is_dipendente(codditta,codip)) + m.disable(-GROUP_DIPDEC); + else + m.enable(-GROUP_DIPDEC); + } + } +} + +void TQuadriBB1_application::init_modify_mode(TMask& m) +{ + init_mask(m); +} + +void TQuadriBB1_application::init_insert_mode(TMask& m) +{ + init_mask(m); +} + +void TQuadriBB1_application::init_query_mode(TMask& m) +{ + m.set(ANNODIC77, _anno_dic); +/* m.send_key(K_SHIFT+K_CTRL+'s', -RICERCA_QB); // Ricerca su quadro B + m.send_key(K_SHIFT+K_CTRL+'h', -RICERCA_DIP); // Ricerca su ANAGR.DIP. + init_mask(m);*/ +} + +void TQuadriBB1_application::init_query_insert_mode(TMask& m) +{ +/* + m.send_key(K_SHIFT+K_CTRL+'h', -RICERCA_QB); // Nasconde ricerca su quadro B + m.send_key(K_SHIFT+K_CTRL+'s', -RICERCA_DIP); // Ricerca su ANAGR.DIP. + init_mask(m); */ +} + +bool TQuadriBB1_application::codditta77_handler(TMask_field& f, KEY k) +{ + TString16 codditta; codditta << app()._codditta; + TMask& m = f.mask(); + if (codditta != "0") + { + m.set(CODDITTA77, codditta); + m.field(CODDITTA77).check(); + } + return TRUE; +} + + +/////////////////////////////////////////////////////////// +// 2 modi : +// RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml] +// oppure +// 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu] +// QUADRO N: +// 773,-2,77qn,72,"Quadro N","N" +/////////////////////////////////////////////////////////// +int quadriB_B1(int argc, char* argv[]) +{ + TFilename mask; + int num = 0; + if (argc > 1) + mask = argv[2]; + num = atoi(argv[3]); + const char* title = argv[4]; + const char* quadro = argv[5]; + TQuadriBB1_application a(mask, num, quadro); + a.run(argc, argv, title ? title : "Test Relation Application"); + return 0; +} + +// +// CodDipHandler +// +// 1 - Controlla che il codice dipendente esista +// 2 - Propone il primo progressivo disponibile per quel codice +// +bool TQuadriBB1_application::CodDipHandler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (!m.is_running()) return TRUE; +// if (k == K_TAB && ricerca(m)) + if (k == K_TAB) + { + const long codip = atol(f.get()); + if (codip==0L) + return TRUE; + if (!esiste_dipendente(app()._codditta, codip)) + return f.warning_box("Dipendente inesistente"); + PrimoNprogLibero(m, app()._codditta, codip); + } + return TRUE; +} + +bool TQuadriBB1_application::NprogExitHandler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (!m.is_running()) return TRUE; + +// if (k == K_TAB && ricerca(m)) + if (k == K_TAB) + { + TString nprog(f.get()); + if (nprog.not_empty()) + { + const int ID_CODDIP = app().QuadroB()? QBF_CODDIP : QB1F_CODDIP; +// Controlla che esista il dipendente + const long codip = m.get_long(ID_CODDIP); + const long codditta = app()._codditta; + + if (codip==0L) + return TRUE; + + if (!esiste_dipendente(codditta, codip)) + return f.warning_box("Dipendente inesistente"); + +// Nel B1 e nel B (per gli eredi) può esserci un solo record per dipendente + if (app().QuadroB1() || (app().QuadroB() && is_erede(codditta,codip)) ) + if (app().EsisteGiaCodDip(m) && !app().EsisteGiaRecordDip(m)) + return warning_box("Esiste già una riga per questo dipendente"); + + m.stop_run(K_AUTO_ENTER); + } + } + return TRUE; +} + +bool TQuadriBB1_application::PrimoNprogLibero(TMask& m, const long codditta, const long codip) +{ +// Propone il primo numero disponibile + if (codip != 0L) + { + long nprog = 0L; + const int id_nprog = app().QuadroB() ? QBF_NPROG : QB1F_NPROG; + const bool erede = is_erede(codditta,codip); + bool EsisteGiaDip = FALSE; + TLocalisamfile qb(app()._num); + qb.zero(); + qb.put(QB_CODDITTA, codditta); + qb.put(QB_CODDIP, codip); + TRectype dep(qb.curr()); + for (qb.read(_isgteq); !qb.eof(); qb.next()) + { + if (qb.curr() > dep) break; + EsisteGiaDip = TRUE; + nprog = qb.get_long(QB_NPROG); + } + +// Nel B se e' un erede si puo' solo andare in modifica +// Nel B1 è consentito un solo record per dipendente + if ( (nprog == 0) || (app().QuadroB1() && !EsisteGiaDip) || + (app().QuadroB() && !erede) ) + nprog++; + + TString16 nprog_str; nprog_str << nprog; + m.set(id_nprog, nprog_str); + } + return TRUE; +} + +/////////////////////////////////////////////////////////////////////////////////// +// QUADRO B +/////////////////////////////////////////////////////////////////////////////////// +bool TQuadriBB1_application::QBTotRedImpHandler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && !ricerca(m)) + { + const long codditta = m.get_long(QBF_CODDITTA); + const long codip = m.get_long(QBF_CODDIP); + if (!is_erede(codditta,codip)) + { + real totimp(f.get()); + if (totimp == ZERO) + return f.warning_box("Il totale reddito imponibile non può essere nullo"); + } + } + return TRUE; +} + +bool TQuadriBB1_application::QBAmmRopeHandler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && !ricerca(m)) + { + TMask& m = f.mask(); + const long codditta = m.get_long(QBF_CODDITTA); + const long codip = m.get_long(QBF_CODDIP); + if (!is_erede(codditta,codip)) + { + real totimp(m.get(QBF_TOTIMP)); + real rope(f.get()); + if (rope > totimp) + return f.warning_box("Il totale ritenute non può essere maggiore del totale reddito imponibile"); + } + } + return TRUE; +} + +// 23.5.96 Calcola totale indennità +bool TQuadriBB1_application::QBTotIndennHandler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + const bool ricalcola = f.focusdirty(); + if (ricalcola) + { + TMask& m = f.mask(); + real c20 = m.get_real(QBF_AMMNETTO); + real c24 = m.get_real(QBF_AMMNETTO2); + real c25 = m.get_real(QBF_CONTLAV); + real c26 = m.get_real(QBF_TFR7494); + real c27 = m.get_real(QBF_INDEN7494); + + real c28 = c20 + c24 - c25 + c26 + c27; + TString c28s(c28.string()); + m.set(QBF_TIND7494, c28s); + } + } + return TRUE; +} + + \ No newline at end of file diff --git a/m770/quadn_t.cpp b/m770/quadn_t.cpp new file mode 100755 index 000000000..07f461a1f --- /dev/null +++ b/m770/quadn_t.cpp @@ -0,0 +1,370 @@ +// quadn_t.cpp +#include +#include +#include +#include +#include "774200.h" +#include "77lib.h" +#include "quadron.h" +#include "77qn.h" +#include "77qq.h" +#include "77qp.h" + +#define CODDITTA77 181 +#define ANNODIC77 182 + +class TQuadriNT_application : public TRelation_application +{ + static bool codditta77_handler (TMask_field& m, KEY k); + static bool nprog_handler (TMask_field& m, KEY k); + static bool anno_handler (TMask_field& m, KEY k); + static bool mese_handler (TMask_field& f, KEY k); + static bool codreg_handler (TMask_field& f, KEY k); + static bool codtrib_handler (TMask_field& f, KEY k); + static bool tipo (TMask_field& f , KEY k); + static bool luogo (TMask_field& f , KEY k); + const char* _maskname; + int _num; + int _pos_quadro; // posizione nell'array dei quadri. Usato in set_comp + TString16 _quadro; + TRiporti _rip; + TRelation* _rel; + TMask* _msk; + bool _registra; + int _anno_dic; + bool _MaskConAnnoDic, _MaskConCodditta; + bool MaskConAnnoDic() const; + bool MaskConCodditta() const { return _MaskConCodditta; } + void LeggiMask(); + bool EsisteUnRec(); + bool QuadroNoR() const { return _num == LF_QUAN || _num == LF_QUAR; } + bool QuadroPoS() const { return _num == LF_QUAP || _num == LF_QUAS; } + bool QuadroQoT() const { return _num == LF_QUAQ || _num == LF_QUAT; } + bool CheckImporti(const TMask& m); + long _codditta; +protected: + virtual bool user_create(); + virtual bool user_destroy(); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual void on_config_change(); + virtual TMask* get_mask(int) { return _msk; } + virtual bool changing_mask(int) { return FALSE;} + virtual TRelation* get_relation() const { return _rel; } + virtual void init_mask(TMask&); + virtual void init_query_mode(TMask&); + virtual void init_insert_mode(TMask&); + virtual void init_query_insert_mode(TMask&); +public: + TQuadriNT_application(const char* name, const int num, const char* quadro); +}; + +TQuadriNT_application::TQuadriNT_application(const char* name, const int num, const char* quadro) +: _maskname(name), _num(num), + _MaskConCodditta(FALSE), _MaskConAnnoDic(FALSE), + _msk(NULL), _rel(NULL), _quadro(quadro) +{ + switch (_num) + { + case LF_QUAN: + _pos_quadro = N; + break; + case LF_QUAR: + _pos_quadro = R; + break; + case LF_QUAP: + _pos_quadro = P; + break; + case LF_QUAQ: + _pos_quadro = Q; + break; + case LF_QUAS: + _pos_quadro = S; + break; + case LF_QUAT: + _pos_quadro = T; + break; + } +} + +TQuadriNT_application& app() { return (TQuadriNT_application&)main_app(); } + +void TQuadriNT_application::LeggiMask() +{ + _MaskConAnnoDic = _msk->id2pos(ANNODIC77) > 0; + _MaskConCodditta = _msk->id2pos(CODDITTA77) > 0; +} + +bool TQuadriNT_application::MaskConAnnoDic() const +{ + return _MaskConAnnoDic; +} + +void TQuadriNT_application::on_config_change() +{ + TConfig conf(CONFIG_STUDIO); + _anno_dic = (int)conf.get_long(ANNO_SEL, NULL, -1, TDate(TODAY).year()); +} + +bool TQuadriNT_application::user_create() +{ + _msk = new TMask(_maskname); + _rel = new TRelation(_num); + + _codditta = get_firm_770(); + _msk->set_handler(CODDITTA77, codditta77_handler); + _msk->set_handler(QNF_NPROG, nprog_handler); + + if (QuadroNoR()) + { + _msk->set_handler(QNF_ANNORIF, anno_handler); + _msk->set_handler(QNF_MESERIF, mese_handler); + } + + if (QuadroQoT()) + { + _msk->set_handler(QNF_ANNORIF, anno_handler); + _msk->set_handler(QNF_MESERIF, mese_handler); + _msk->set_handler(QQF_CODREG, codreg_handler); + } + + if (QuadroPoS()) + _msk->set_handler(QPF_CODTRIB, codtrib_handler); + + _registra = FALSE; + set_search_field(QNF_NPROG); + + return TRUE; +} + +bool TQuadriNT_application::EsisteUnRec() +{ + TLocalisamfile qn(_num); + qn.zero(); + qn.put(QN_CODDITTA, (long)app()._codditta); + TRectype dep(qn.curr()); + qn.read(_isgteq); + if (qn.curr() > dep || qn.eof()) + return FALSE; + else + return TRUE; +} + +bool TQuadriNT_application::user_destroy() +{ + if (_quadro != "") + if (_registra) + _rip.set_compilato(_codditta, _pos_quadro, EsisteUnRec()); + delete _msk; + delete _rel; + return TRUE; +} + +// Controlla che ci siano o l'imposta o i compensi +// NB che siano uguali QNF_IMPOSTA anche nei corrispondenti campi dei +// quadri Q, R e T (107 e 106) +bool TQuadriNT_application::CheckImporti(const TMask& m) +{ + TString impost(m.get(QNF_IMPOSTA)); + TString compen(m.get(QNF_COMPENSI)); + return impost.not_empty() || compen.not_empty(); +} + +int TQuadriNT_application::rewrite(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->rewrite(); + _registra = err == NOERR; + return err; +} + +int TQuadriNT_application::write(const TMask& m) +{ + m.autosave(_rel); + const int err = _rel->write(); + _registra = err == NOERR; + return err; +} + +bool TQuadriNT_application::remove() +{ + _registra = TRUE; + return TRelation_application::remove(); +} + +void TQuadriNT_application::init_mask(TMask& m) +{ + m.set(ANNODIC77, _anno_dic); +} + +void TQuadriNT_application::init_query_mode(TMask& m) +{ + init_mask(m); +} + +void TQuadriNT_application::init_insert_mode(TMask& m) +{ + init_mask(m); +} + +void TQuadriNT_application::init_query_insert_mode(TMask& m) +{ + init_mask(m); +} + +bool TQuadriNT_application::codditta77_handler(TMask_field& f, KEY k) +{ + TString16 codditta; codditta << app()._codditta; + TMask& m = f.mask(); + if (codditta != "0") + { + m.set(CODDITTA77, codditta); + m.field(CODDITTA77).check(); + } + return TRUE; +} + + +/////////////////////////////////////////////////////////// +// 2 modi : +// RUN,773,-1,771230m,89,"Prospetto del Quadro E1","E1" [771230i.uml] +// oppure +// 773 -1 menu_st "Stampe dichiarazioni" [prassi.mnu] +// QUADRO N: +// 773,-2,77qn,72,"Quadro N","N" +/////////////////////////////////////////////////////////// +int quadriN_T(int argc, char* argv[]) +{ + TFilename mask; + int num = 0; + if (argc > 1) + mask = argv[2]; + num = atoi(argv[3]); + const char* title = argv[4]; + const char* quadro = argv[5]; + TQuadriNT_application a(mask, num, quadro); + a.run(argc, argv, title ? title : "Test Relation Application"); + return 0; +} + +bool TQuadriNT_application::anno_handler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && (modifica(m) || inserimento(m)) ) + { + TString dep(f.get()); + if (dep.empty()) + return f.warning_box("Manca l'anno"); + else + if (!app().CheckImporti(m)) + return f.warning_box("Manca almeno un importo"); + } + return TRUE; +} + +bool TQuadriNT_application::mese_handler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && (modifica(m) || inserimento(m)) ) + { + TString dep(f.get()); + if (dep.empty()) + return f.warning_box("Manca il mese"); + } + return TRUE; +} + +// Per i Quadri Q e T +bool TQuadriNT_application::codreg_handler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && (modifica(m) || inserimento(m)) ) + { + TString dep(f.get()); + if (dep.empty()) + return f.warning_box("Manca il codice regione"); + } + return TRUE; +} + +// Per i Quadri P e S. Codice tributo REQUIRED +bool TQuadriNT_application::codtrib_handler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (k == K_ENTER && (modifica(m) || inserimento(m)) ) + { + TString dep(f.get()); + if (dep.empty()) + return f.warning_box("Manca il codice tributo"); + } + return TRUE; +} + +bool TQuadriNT_application::nprog_handler(TMask_field& f, KEY k) +{ + if (k == K_TAB) + { + TMask& m = f.mask(); +// Propone il primo numero disponibile quando la maschera e' ancora "off" + if (!m.is_running()) + { + long nprog = 0L; + TLocalisamfile qnr(app()._num); + qnr.zero(); + qnr.put(QN_CODDITTA, (long)app()._codditta); + TRectype dep(qnr.curr()); + for (qnr.read(_isgteq); !qnr.eof(); qnr.next()) + { + if (qnr.curr() > dep) break; + nprog = qnr.get_long(QN_NPROG); + } + nprog++; + TString16 nprog_str; nprog_str << nprog; + f.mask().set(QNF_NPROG, nprog_str); + } +// Quando la maschera e' running, se c'e' NPROG la chiude + else + { + TString nprogstr(f.get()); + if (nprogstr.not_empty()) + m.stop_run(K_AUTO_ENTER); + } + } + return TRUE; +} + +bool TQuadriNT_application::tipo(TMask_field& f , KEY k) +{ +/* + if (k == K_SPACE) + { + char tipo = f.mask().get(F_QLTIPOVERS)[0]; + char luogo = f.mask().get(F_QLLUOVERS)[0]; + + if (tipo == 'D' && luogo == 'T') + f.mask().hide(F_QLSERIE); + else + f.mask().show(F_QLSERIE); + } +*/ + return TRUE; +} + +bool TQuadriNT_application::luogo(TMask_field& f , KEY k) +{ +/* + if (k == K_SPACE) + { + char tipo = f.mask().get(F_QLTIPOVERS)[0]; + char luogo = f.mask().get(F_QLLUOVERS)[0]; + + if (tipo == 'D' && luogo == 'T') + f.mask().hide(F_QLSERIE); + else + f.mask().show(F_QLSERIE); + } + */ + return TRUE; +} + diff --git a/m770/quadrif.h b/m770/quadrif.h new file mode 100755 index 000000000..d2fa29371 --- /dev/null +++ b/m770/quadrif.h @@ -0,0 +1,37 @@ +// quadrif.h +// righe f2 +#define RQF2_SOGRIT "SOGRIT" +#define RQF2_ROPE "ROPE" +// righe f1 +#define RQF1_SOGRIT "SOGRIT" +#define RQF1_ROPE "ROPE" +// f1 +#define QF1_A1 "F1_A1" +#define QF1_A2 "F1_A2" +// righe f +#define RQF0_SOGRIT "SOGRIT" +#define RQF0_ROPE "ROPE" +#define RQF0_TOTACC "ACCONTI" +// f +#define QF0_A1 "A1" +#define QF0_A2 "A2" +#define QF0_A3 "A3" +#define QF0_A4 "A4" +#define QF0_ESOGRIT "E_SOGRIT" +#define QF0_EROPE "E_ROPE" +#define QF0_FSOGRIT "F_SOGRIT" +#define QF0_FROPE "F_ROPE" + +#define QUF_CODDITTA "CODDITTA" +#define QUF_TIPOPRO "TIPOPRO" +#define QUF_CODCAUS "CODCAUS" +#define QUF_ALIQUOTA "ALIQUOTA" +#define QUF_SOGRIT "SOGRIT" +#define QUF_ROPE "ROPE" +#define QUF_ACCONTI "ACCONTI" +#define QUF_VERSECC "VERSECC" +#define QUF_VERSALDO "VERSALDO" +#define QUF_NPROG "NPROG" +#define QUF_FCAUS "F_CODCAUS" + + diff --git a/m770/quadroa.h b/m770/quadroa.h new file mode 100755 index 000000000..5870119c7 --- /dev/null +++ b/m770/quadroa.h @@ -0,0 +1,67 @@ +// Mod.770 - Quadro A + +#define QUA_CODDITTA "CODDITTA" +#define QUA_CODIP "CODIP" +#define QUA_NPROG "NPROG" +#define QUA_AREAATT "AREAATT" +#define QUA_TIPO "TIPO" +#define QUA_NUMGIO "NUMGIO" +#define QUA_DATAFR "DATAFR" +#define QUA_NUMGIODET "NUMGIODET" +#define QUA_CODFISDL "CFDLPREC" +#define QUA_CAUSA "CAUSA" + +#define QUA_DENARO "DENARO" +#define QUA_NATURA "NATURA" +#define QUA_COBBDIP "COBBDIP" +#define QUA_COMPNETTI "COMPNETTI" +#define QUA_AMMLORDO "AMMLORDO" +#define QUA_IACOBBCD "IACOBBCD" +#define QUA_NORIT "NORIT" +#define QUA_TOTIMP "TOTIMP" +#define QUA_AIENTIPREV "AIENTIPREV" +#define QUA_CCTAMMCONT "CCTAMMCONT" +#define QUA_TOTIMP2 "TOTIMP2" +#define QUA_ICTOTIMP "ICTOTIMP" +#define QUA_DETCC "DETCC" +#define QUA_DETFC "DETFC" +#define QUA_DETAF "DETAF" +#define QUA_DETLD "DETLD" +#define QUA_DETO "DETO" +#define QUA_TOTDET "TOTDET" +#define QUA_INCDETFC "INCDETFC" +#define QUA_AMRIOT "AMRIOT" +#define QUA_AMRIODL "AMRIODL" +#define QUA_ECCRITRIMB "ECCRITRIMB" +#define QUA_AMMRITDOV "AMMRITDOV" +#define QUA_ERSPSAN "ERSPSAN" +#define QUA_PRASSVI "PRASSVI" +#define QUA_CONPRECO "CONPRECO" +#define QUA_COBBDIP2 "COBBDIP2" +#define QUA_AMMIMP "AMMIMP" +#define QUA_DETIMPOS "DETIMPOS" +#define QUA_RITESEG "RITESEG" +#define QUA_SVNASSRI "SVNASSRI" +#define QUA_AIFCSSN "AIFCSSN" +#define QUA_CONEFF "CONEFF" +#define QUA_IMPVERS "IMPVERS" +#define QUA_INTERE "INTERE" +#define QUA_CSSN95CV "CSSN95CV" +#define QUA_INTERE2 "INTERE2" +#define QUA_CNEFF "CNEFF" +#define QUA_RETCON "RETCON" +#define QUA_IMPRIMB "IMPRIMB" +#define QUA_IMPVER "IMPVER" +#define QUA_INTIRPEF "INTIRPEF" +#define QUA_IMPVER2 "IMPVER2" +#define QUA_INTER "INTER" +#define QUA_STSIRPEF "STSIRPEF" +#define QUA_CONRIMB "CONRIMB" +#define QUA_CONVER "CONVER" +#define QUA_INTER2 "INTER2" +#define QUA_CONVER2 "CONVER2" +#define QUA_INTER3 "INTER3" +#define QUA_STSCSSN70 "STSCSSN70" +#define QUA_M730NLIQ "M730NLIQ" +#define QUA_CODCAAF "CODCAAF" + diff --git a/m770/quadroa3.h b/m770/quadroa3.h new file mode 100755 index 000000000..c6bb78925 --- /dev/null +++ b/m770/quadroa3.h @@ -0,0 +1,10 @@ +//Campi archivio A3 + +#define QA3_CODDITTA "CODDITTA" +#define QA3_NPROG "NPROG" +#define QA3_CODIP "CODIP" +#define QA3_DIRAPTI "DIRAPTI" +#define QA3_NGINC15 "NGINC15" +#define QA3_REDCOR16 "REDCOR16" +#define QA3_NGINC17 "NGINC17" +#define QA3_REDCOR18 "REDCOR18" diff --git a/m770/quadrob.h b/m770/quadrob.h new file mode 100755 index 000000000..30e84b0a7 --- /dev/null +++ b/m770/quadrob.h @@ -0,0 +1,52 @@ +// Quadrob.h +#define QB_CODDITTA "CODDITTA" +#define QB_CODDIP "CODDIP" +#define QB_NPROG "NPROG" +#define QB_DATAINI "DATAINI" +#define QB_DATAFIN "DATAFIN" +#define QB_ANNICOMM "ANNICOMM" +#define QB_MESICOMM "MESICOMM" +#define QB_ANNICONV "ANNICONV" +#define QB_MESICONV "MESICONV" +#define QB_ANNIPARZ "ANNIPARZ" +#define QB_MESIPARZ "MESIPARZ" +#define QB_PERCPARZ "PERCPARZ" +#define QB_QUOTAECC "QUOTAECC" +#define QB_MESEEROG "MESEEROG" +#define QB_TITEROG "TITEROG" +#define QB_PERCABB "PERCABB" +#define QB_AMMNETTO "AMMNETTO" +#define QB_MESEEROG2 "MESEEROG2" +#define QB_TITEROG2 "TITEROG2" +#define QB_PERCABB2 "PERCABB2" +#define QB_AMMNETTO2 "AMMNETTO2" +#define QB_CONTLAV "CONTLAV" +#define QB_TFR7494 "TFR7494" +#define QB_INDEN7494 "INDEN7494" +#define QB_TIND7494 "TIND7494" +#define QB_TRID "TRID" +#define QB_TFRIND "TFRIND" +#define QB_ALIQUOTA "ALIQUOTA" +#define QB_RETRMEDIA "RETRMEDIA" +#define QB_ALIQUOTA2 "ALIQUOTA2" +#define QB_IMPTFR "IMPTFR" +#define QB_IMPIND "IMPIND" +#define QB_IMPANNO "IMPANNO" +#define QB_TOTIMP "TOTIMP" +#define QB_ROPEACC "ROPEACC" +#define QB_IMPDOV "IMPDOV" +#define QB_RITECC "RITECC" +#define QB_QUOTASPET "QUOTASPET" +#define QB_INDSPETT "INDSPETT" +#define QB_ROPE "ROPE" +#define QB_IMPOCSSN "IMPOCSSN" + +#define QB_C20 "AMMNETTO" +#define QB_C24 "AMMNETTO2" +#define QB_C25 "CONTLAV" +#define QB_C26 "TFR7494" +#define QB_C27 "INDEN7494" +#define QB_C36 "IMPANNO" +#define QB_C37 "TOTIMP" +#define QB_C43 "ROPE" + diff --git a/m770/quadrob1.h b/m770/quadrob1.h new file mode 100755 index 000000000..0679a4add --- /dev/null +++ b/m770/quadrob1.h @@ -0,0 +1,18 @@ +// Quadrob1 +#define QB1_CODDITTA "CODDITTA" +#define QB1_CODDIP "CODDIP" +#define QB1_NPROG "NPROG" +#define QB1_INDEN "INDEN" +#define QB1_AMMIMP "AMMIMP" +#define QB1_IMP4 "IMP4" +#define QB1_IMP8 "IMP8" +#define QB1_IMP10 "IMP10" +#define QB1_IMP12 "IMP12" +#define QB1_IMP15 "IMP15" +#define QB1_IMPNETTO "IMPNETTO" +#define QB1_IMPO15 "IMPO15" +#define QB1_IMPO4 "IMPO4" + +#define QB1_C11 "INDEN" +#define QB1_C12 "AMMIMP" +#define QB1_C18 "IMPNETTO" diff --git a/m770/quadroc.h b/m770/quadroc.h new file mode 100755 index 000000000..af452dacc --- /dev/null +++ b/m770/quadroc.h @@ -0,0 +1,18 @@ +// Mod.770 - Quadro C + +#ifndef __QUADROC_H +#define __QUADROC_H + +#define QUC_CODDITTA "CODDITTA" +#define QUC_TIPOA "TIPOA" +#define QUC_CODANAGR "CODANAGR" +#define QUC_NPROG "NPROG" +#define QUC_CODCAUS "CODCAUS" +#define QUC_TOTALE "TOTALE" +#define QUC_SOMME "SOMME" +#define QUC_IMPONIBILE "IMPONIBILE" +#define QUC_PERC "PERC" +#define QUC_RITENUTE "RITENUTE" +#define QUC_NETTO "NETTO" + +#endif diff --git a/m770/quadrod.h b/m770/quadrod.h new file mode 100755 index 000000000..935a4c900 --- /dev/null +++ b/m770/quadrod.h @@ -0,0 +1,18 @@ +// Mod.770 - Quadro D + +#ifndef __QUADROD_H +#define __QUADROD_H + +#define QUD_CODDITTA "CODDITTA" +#define QUD_TIPOA "TIPOA" +#define QUD_CODANAGR "CODANAGR" +#define QUD_NPROG "NPROG" +#define QUD_CODCAUS "CODCAUS" +#define QUD_TOTALE "TOTALE" +#define QUD_SOMME "SOMME" +#define QUD_IMPONIBILE "IMPONIBILE" +#define QUD_PERC "PERC" +#define QUD_IMPORTO "IMPORTO" +#define QUD_NETTO "NETTO" + +#endif diff --git a/m770/quadrod1.h b/m770/quadrod1.h new file mode 100755 index 000000000..d9e5d1e9c --- /dev/null +++ b/m770/quadrod1.h @@ -0,0 +1,19 @@ +// Mod.770 - Quadro D1 + +#ifndef __QUADROD1_H +#define __QUADROD1_H + +#define QD1_CODDITTA "CODDITTA" +#define QD1_TIPOA "TIPOA" +#define QD1_CODANAGR "CODANAGR" +#define QD1_NPROG "NPROG" +#define QD1_CODCAUS "CODCAUS" +#define QD1_TOTALE "TOTALE" +#define QD1_QUOTAPRO "QUOTAPRO" +#define QD1_SPESEANT "SPESEANT" +#define QD1_IMPONIBILE "IMPONIBILE" +#define QD1_PERC "PERC" +#define QD1_IMPORTO "IMPORTO" +#define QD1_NETTO "NETTO" + +#endif diff --git a/m770/quadroe.h b/m770/quadroe.h new file mode 100755 index 000000000..ed859dd97 --- /dev/null +++ b/m770/quadroe.h @@ -0,0 +1,17 @@ +// Mod.770 - Quadro E + +#ifndef __QUADROE_H +#define __QUADROE_H + +#define QUE_CODDITTA "CODDITTA" +#define QUE_TIPOA "TIPOA" +#define QUE_CODANAGR "CODANAGR" +#define QUE_NPROG "NPROG" +#define QUE_CODCAUS "CODCAUS" +#define QUE_SOMME "SOMME" +#define QUE_IMPONIBILE "IMPONIBILE" +#define QUE_PERC "PERC" +#define QUE_IMPORTO "IMPORTO" +#define QUE_NETTO "NETTO" + +#endif diff --git a/m770/quadroe1.h b/m770/quadroe1.h new file mode 100755 index 000000000..10730ff8d --- /dev/null +++ b/m770/quadroe1.h @@ -0,0 +1,17 @@ +// Mod.770 - Quadro E1 + +#ifndef __QUADROE1_H +#define __QUADROE1_H + +#define QE1_CODDITTA "CODDITTA" +#define QE1_TIPOA "TIPOA" +#define QE1_CODANAGR "CODANAGR" +#define QE1_NPROG "NPROG" +#define QE1_CODCAUS "CODCAUS" +#define QE1_SOMME "SOMME" +#define QE1_AMMONTARE "AMMONTARE" +#define QE1_PERC "PERC" +#define QE1_IMPORTO "IMPORTO" +#define QE1_NETTO "NETTO" + +#endif diff --git a/m770/quadroe2.h b/m770/quadroe2.h new file mode 100755 index 000000000..851e0011e --- /dev/null +++ b/m770/quadroe2.h @@ -0,0 +1,11 @@ +// quadroe2.h +#define QE2_CODDITTA "CODDITTA" +#define QE2_TIPOA "TIPOA" +#define QE2_CODANAGR "CODANAGR" +#define QE2_NPROG "NPROG" +#define QE2_CODCAUS "CODCAUS" +#define QE2_SOGGRIT "SOGGRIT" +#define QE2_PERC "PERC" +#define QE2_ROPE "ROPE" + + diff --git a/m770/quadrog.h b/m770/quadrog.h new file mode 100755 index 000000000..3ecbd8a29 --- /dev/null +++ b/m770/quadrog.h @@ -0,0 +1,82 @@ +// quadrog.h +#define QG_CODDITTA "CODDITTA" +#define QG_P1DATAD1 "P1DATAD1" +#define QG_P1DATAD2 "P1DATAD2" +#define QG_P1DATAD3 "P1DATAD3" +#define QG_P1DATAD4 "P1DATAD4" +#define QG_P1TITOLO1 "P1TITOLO1" +#define QG_P1TITOLO2 "P1TITOLO2" +#define QG_P1TITOLO3 "P1TITOLO3" +#define QG_P1TITOLO4 "P1TITOLO4" +#define QG_P1DATAP1 "P1DATAP1" +#define QG_P1DATAP2 "P1DATAP2" +#define QG_P1DATAP3 "P1DATAP3" +#define QG_P1DATAP4 "P1DATAP4" +#define QG_P1AMMQ1 "P1AMMQ1" +#define QG_P1AMMQ2 "P1AMMQ2" +#define QG_P1AMMQ3 "P1AMMQ3" +#define QG_P1AMMQ4 "P1AMMQ4" +#define QG_P1NUMQ1 "P1NUMQ1" +#define QG_P1NUMQ2 "P1NUMQ2" +#define QG_P1NUMQ3 "P1NUMQ3" +#define QG_P1NUMQ4 "P1NUMQ4" +#define QG_P1AMM1 "P1AMM1" +#define QG_P1AMM2 "P1AMM2" +#define QG_P1AMM3 "P1AMM3" +#define QG_P1AMM4 "P1AMM4" +#define QG_P1NUMQT "P1NUMQT" +#define QG_P1AMMT "P1AMMT" +#define QG_P2DATADE "P2DATADE" +#define QG_P2DATADI "P2DATADI" +#define QG_P2DESC1 "P2DESC1" +#define QG_P2DESC2 "P2DESC2" +#define QG_P2DESC3 "P2DESC3" +#define QG_P2DATA1 "P2DATA1" +#define QG_P2DATA2 "P2DATA2" +#define QG_P2DATA3 "P2DATA3" +#define QG_P2VAL1 "P2VAL1" +#define QG_P2VAL2 "P2VAL2" +#define QG_P2VAL3 "P2VAL3" +#define QG_P2VALT "P2VALT" +#define QG_P2IMPQ "P2IMPQ" +#define QG_P22 "P22" +#define QG_P23 "P23" +#define QG_P24 "P24" +#define QG_P25 "P25" +#define QG_P26 "P26" +#define QG_P22TOT "P22TOT" +#define QG_P23TOT "P23TOT" +#define QG_P24TOT "P24TOT" +#define QG_P25TOT "P25TOT" +#define QG_P26TOT "P26TOT" +#define QG_P33A "P33A" +#define QG_P33B "P33B" +#define QG_P33TOT "P33TOT" +#define QG_P35A "P35A" +#define QG_P35B "P35B" +#define QG_P35TOT "P35TOT" +#define QG_P36A "P36A" +#define QG_P36B "P36B" +#define QG_P36TOT "P36TOT" +#define QG_P321 "P321" +#define QG_P322 "P322" +#define QG_P323 "P323" +#define QG_P324 "P324" +#define QG_P325 "P325" +#define QG_P32TOT "P32TOT" +#define QG_P371 "P371" +#define QG_P372 "P372" +#define QG_P373 "P373" +#define QG_P374 "P374" +#define QG_P375 "P375" +#define QG_P37TOT "P37TOT" +#define QG_P421 "P421" +#define QG_P422 "P422" +#define QG_P423 "P423" +#define QG_P424 "P424" +#define QG_P425 "P425" +#define QG_P426 "P426" +#define QG_P427 "P427" +#define QG_P428 "P428" +#define QG_P429 "P429" +#define QG_P42TOT "P42TOT" diff --git a/m770/quadrog1.h b/m770/quadrog1.h new file mode 100755 index 000000000..37a769fdd --- /dev/null +++ b/m770/quadrog1.h @@ -0,0 +1,14 @@ +// quadrog1.h +#define QG1_CODDITTA "CODDITTA" +#define QG1_P12 "P12" +#define QG1_P13 "P13" +#define QG1_P14 "P14" +#define QG1_P15 "P15" +#define QG1_P16 "P16" +#define QG1_P17 "P17" +#define QG1_P12TOT "P12TOT" +#define QG1_P13TOT "P13TOT" +#define QG1_P15TOT "P15TOT" +#define QG1_P16TOT "P16TOT" +#define QG1_P17TOT "P17TOT" + diff --git a/m770/quadrogd.h b/m770/quadrogd.h new file mode 100755 index 000000000..cee8b88e6 --- /dev/null +++ b/m770/quadrogd.h @@ -0,0 +1,11 @@ +// quadrogd.h +#define QGD_CODDITTA "CODDITTA" +#define QGD_TIPOA "TIPOA" +#define QGD_CODANAGR "CODANAGR" +#define QGD_NPROG "NPROG" +#define QGD_UTSPETT "UTSPETT" +#define QGD_UTPAG "UTPAG" +#define QGD_ROPE "ROPE" +#define QGD_ROPESPET "ROPESPET" +#define QGD_NUMQUOTE "NUMQUOTE" + diff --git a/m770/quadroh.h b/m770/quadroh.h new file mode 100755 index 000000000..f6424b6d0 --- /dev/null +++ b/m770/quadroh.h @@ -0,0 +1,12 @@ +// Mod.770 - Quadro H + +#ifndef __QUADROL_H +#define __QUADROL_H + +#define QUH_CODDITTA "CODDITTA" +#define QUH_H1ANNO "H1ANNO" +#define QUH_H1ENTE "H1ENTE" +#define QUH_H1DAT "H1DAT" +#define QUH_H1LAV "H1LAV" + +#endif diff --git a/m770/quadrol.h b/m770/quadrol.h new file mode 100755 index 000000000..eba390023 --- /dev/null +++ b/m770/quadrol.h @@ -0,0 +1,22 @@ +// Mod.770 - Quadro L + +#ifndef __QUADROL_H +#define __QUADROL_H + +#define QUL_CODDITTA "CODDITTA" +#define QUL_QLDV "QLDV" +#define QUL_QLMP "QLMP" +#define QUL_QLAP "QLAP" +#define QUL_QLLV "QLLV" +#define QUL_QLTV "QLTV" +#define QUL_QLCT "QLCT" +#define QUL_QLAB "QLAB" +#define QUL_QLSERIE "QLSERIE" +#define QUL_QLNUMERO "QLNUMERO" +#define QUL_QLCODQUA "QLCODQUA" +#define QUL_QLRITEFF "QLRITEFF" +#define QUL_QLRITVER "QLRITVER" +#define QUL_QLRSS "QLRSS" +#define QUL_QLNOTE "QLNOTE" + +#endif diff --git a/m770/quadron.h b/m770/quadron.h new file mode 100755 index 000000000..ed25d592a --- /dev/null +++ b/m770/quadron.h @@ -0,0 +1,7 @@ +// quadron.h +#define QN_CODDITTA "CODDITTA" +#define QN_NPROG "NPROG" +#define QN_MESERIF "MESERIF" +#define QN_ANNORIF "ANNORIF" +#define QN_IMPOSTA "IMPOSTA" +#define QN_COMPENSI "COMPENSI" diff --git a/m770/quadrop.h b/m770/quadrop.h new file mode 100755 index 000000000..699361020 --- /dev/null +++ b/m770/quadrop.h @@ -0,0 +1,10 @@ +// quadrop.h +#define QP_CODDITTA "CODDITTA" +#define QP_NPROG "NPROG" +#define QP_IMPOSTA "IMPOSTA" +#define QP_INTERDIP "INTERDIP" +#define QP_INTERDAT "INTERDAT" +#define QP_TIPOVERS "TIPOVERS" +#define QP_CODTRIB "CODTRIB" +#define QP_DATAVERS "DATAVERS" +#define QP_NUMVERS "NUMVERS" diff --git a/m770/quadroq.h b/m770/quadroq.h new file mode 100755 index 000000000..5530fbbb1 --- /dev/null +++ b/m770/quadroq.h @@ -0,0 +1,10 @@ +// quadroq.h + +#define QQ_CODDITTA "CODDITTA" +#define QQ_NPROG "NPROG" +#define MESEPAG "MESEPAG" +#define ANNOPAG "ANNOPAG" +#define CONTVERS "CONTVERS" +#define CONTRIMB "CONTRIMB" +#define INTERESSI "INTERESSI" +#define CODREG "CODREG" diff --git a/m770/quadror.h b/m770/quadror.h new file mode 100755 index 000000000..0d6a54c30 --- /dev/null +++ b/m770/quadror.h @@ -0,0 +1,7 @@ +// quadror.h +#define QR_CODDITTA "CODDITTA" +#define QR_NPROG "NPROG" +#define QR_MESERIF "MESERIF" +#define QR_ANNORIF "ANNORIF" +#define QR_IMPOSTA "IMPOSTA" +#define QR_COMPENSI "COMPENSI" diff --git a/m770/rpag.h b/m770/rpag.h new file mode 100755 index 000000000..5381be5dd --- /dev/null +++ b/m770/rpag.h @@ -0,0 +1,23 @@ +// Mod.770 - Scheda percipienti - Righe Pagamenti + +#ifndef __RPAG_H +#define __RPAG_H + +#define PAG_CODDITTA "CODDITTA" +#define PAG_TIPOA "TIPOA" +#define PAG_CODANAGR "CODANAGR" +#define PAG_NPROG "NPROG" +#define PAG_NRIGA "NRIGA" +#define PAG_DATAPAG "DATAPAG" +#define PAG_IMPONIBILE "IMPONIBILE" +#define PAG_PERC "PERC" +#define PAG_RITENUTA "RITENUTA" +#define PAG_COMPENSO "COMPENSO" +#define PAG_NETTO "NETTO" +#define PAG_NUMVERS "NUMVERS" +#define PAG_NUMPAG "NUMPAG" +#define PAG_SPESA "SPESA" +#define PAG_INPSPERC "CTSSNPERC" +#define PAG_INPSCOMP "CTSSNCOMP" + +#endif diff --git a/m770/rver.h b/m770/rver.h new file mode 100755 index 000000000..77f504b0e --- /dev/null +++ b/m770/rver.h @@ -0,0 +1,25 @@ +// Mod.770 - Scheda percipienti - Righe versamenti + +#ifndef __RVER_H +#define __RVER_H + +#define VER_CODDITTA "CODDITTA" +#define VER_TIPOA "TIPOA" +#define VER_CODANAGR "CODANAGR" +#define VER_NPROG "NPROG" +#define VER_NRIGA "NRIGA" +#define VER_VERS1015 "VERS1015" +#define VER_DATAVERS "DATAVERS" +#define VER_TIPOVERS "TIPOVERS" +//#define VER_IMPVERS "IMPVERS" +// La scheda percipienti scrive l'importo versato in RITENUTA +// puo' essere che IMPVERS sia inutile e vada tolto ? +#define VER_IMPVERS "RITENUTA" +#define VER_LUOVERS "LUOVERS" +#define VER_NUMERO "NUMERO" +#define VER_CODQUA "CODQUA" +#define VER_SERIE "SERIE" +#define VER_NUMVERS "NUMVERS" +#define VER_PROGBANC "PROGBANC" + +#endif diff --git a/m770/scperc.h b/m770/scperc.h new file mode 100755 index 000000000..2c2c53d27 --- /dev/null +++ b/m770/scperc.h @@ -0,0 +1,45 @@ +// Campi Archivio Scheda Percipienti + +#ifndef __SCPERC_H +#define __SCPERC_H + +#define SPR_CODDITTA "CODDITTA" +#define SPR_TIPOA "TIPOA" +#define SPR_CODANAGR "CODANAGR" +#define SPR_NPROG "NPROG" +#define SPR_CODTRIB "CODTRIB" +#define SPR_CODCAUS "CODCAUS" +#define SPR_DATADOC "DATADOC" +#define SPR_NUMDOC "NUMDOC" +#define SPR_COMPENSO "COMPENSO" +#define SPR_SPESE "SPESE" +#define SPR_IVA "IVA" +#define SPR_TOTALE "TOTALE" +#define SPR_ARRETR "ARRETR" +#define SPR_FLAGIC "FLAGIC" +#define SPR_TOTRIT "TOTRIT" +#define SPR_MESEC "MESEC" +#define SPR_ANNOC "ANNOC" +#define SPR_FORCED "FORZATURA" + +// Li definisco anche cosi' che e' piu' facile da ricordare +#define SCH_CODDITTA "CODDITTA" +#define SCH_TIPOA "TIPOA" +#define SCH_CODANAGR "CODANAGR" +#define SCH_NPROG "NPROG" +#define SCH_CODTRIB "CODTRIB" +#define SCH_CODCAUS "CODCAUS" +#define SCH_DATADOC "DATADOC" +#define SCH_NUMDOC "NUMDOC" +#define SCH_COMPENSO "COMPENSO" +#define SCH_SPESE "SPESE" +#define SCH_IVA "IVA" +#define SCH_TOTALE "TOTALE" +#define SCH_ARRETR "ARRETR" +#define SCH_FLAGIC "FLAGIC" +#define SCH_TOTRIT "TOTRIT" +#define SCH_MESEC "MESEC" +#define SCH_ANNOC "ANNOC" +#define SCH_FORCED "FORZATURA" + +#endif diff --git a/m770/soctrasf.h b/m770/soctrasf.h new file mode 100755 index 000000000..067d2890a --- /dev/null +++ b/m770/soctrasf.h @@ -0,0 +1,17 @@ +// Campi archivio societa' trasformate + +#define SOC_CODDITTA "CODDITTA" +#define SOC_CODFISC "CODFISC" +#define SOC_DENOMIN "DENOMIN" +#define SOC_NOME "NOME" +#define SOC_SESSO "SESSO" +#define SOC_DATANAS "DATANAS" +#define SOC_COMNAS "COMNAS" +#define SOC_PROVNAS "PROVNAS" +#define SOC_COMDOM "COMDOM" +#define SOC_PROVDOM "PROVDOM" +#define SOC_INDDOM "INDDOM" +#define SOC_CONSBOCC "CONSBOCC" +#define SOC_LAVDIPCIN "LAVDIPCIN" +#define SOC_DATAINPI "DATAINPI" +#define SOC_DATAFINPI "DATAFINPI" diff --git a/m770/test.uml b/m770/test.uml new file mode 100755 index 000000000..f2b9990a3 --- /dev/null +++ b/m770/test.uml @@ -0,0 +1,270 @@ +#include "770100a.h" + +TOOLBAR "" 0 20 0 2 + +// Spazio utilizzabile per mostrare lo stato di forzatura +//TOOLBAR "" 0 19 0 3 + +#include + +ENDPAGE + +PAGE "Scheda percipienti" -1 -1 78 20 +//PAGE "Scheda percipienti" -1 -1 78 19 + +NUMBER F_CODDITTA 5 +BEGIN + FLAGS "AH" + FIELD LF_SCPERC->CODDITTA + KEY 1 +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 3 0 "" + FIELD LF_SCPERC->TIPOA + ITEM "F|Fisica" + ITEM "G|Giuridica" + KEY 1 + FLAGS "D" +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 17 0 "" + FIELD LF_SCPERC->CODANAGR + KEY 1 + FLAGS "D" +END + +STRING F_RAGSOC 45 +BEGIN + PROMPT 24 0 "" + FLAGS "D" +END + +NUMBER F_NPROG 4 +BEGIN + PROMPT 71 0 "" + FIELD LF_SCPERC->NPROG + FLAGS "D" + KEY 1 +END + +STRING F_CODCAUS 2 +BEGIN + FIELD LF_SCPERC->CODCAUS + PROMPT 3 1 "" + USE %CA7 SELECT ((I0!="1015") && ((S1="C")||(S1="D")||(S1="D1")||(S1="E")||(S1="E1")||(S1="E2")) + CHECKTYPE REQUIRED + INPUT CODTAB F_CODCAUS + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione @60" S0 + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + DISPLAY "C.T." B2 + DISPLAY "I.C." B1 + DISPLAY "R.A." B0 + OUTPUT F_CODCAUS CODTAB + OUTPUT F_CODTRIB I0 + OUTPUT F_DESCRCAUS S0 + OUTPUT F_CODQUA S1 + OUTPUT F_ARTBIL I3 + OUTPUT F_IC B1 + OUTPUT F_CT B2 + OUTPUT F_RIT B0 + OUTPUT F_QUOTAIMP I1 + OUTPUT F_PERRIT R0 + FLAGS "Z" + WARNING "Manca la causale" + ADD RUN 773 -3 %CA7 +END + +STRING F_CODQUA 2 +BEGIN + PROMPT 9 1 "" + FLAGS "H" +END + +NUMBER F_CODTRIB 4 +BEGIN + PROMPT 9 1 "" + FLAGS "D" +END + +STRING F_DESCRCAUS 60 +BEGIN + PROMPT 15 1 "" + FLAGS "D" +END + +NUMBER F_ARTBIL 2 +BEGIN + PROMPT 1 2 "Art.bil." + FLAGS "D" +END + +BOOLEAN F_IC +BEGIN + PROMPT 15 2 "I.C." + FLAGS "D" +END + +BOOLEAN F_CT +BEGIN + PROMPT 23 2 "C.T." + FLAGS "D" +END + +BOOLEAN F_RIT +BEGIN + PROMPT 31 2 "Rit." + FLAGS "D" +END + +NUMBER F_QUOTAIMP 2 +BEGIN + PROMPT 1 1 "" + FLAGS "H" +END + +NUMBER F_PERRIT 5 +BEGIN + PROMPT 1 1 "" + FLAGS "H" +END + +TEXT DLG_NULL +BEGIN + PROMPT 40 2 "@bCompetenza " +END + +NUMBER F_MESECOMP 2 +BEGIN + PROMPT 53 2 "Mese " + FIELD LF_SCPERC->MESEC + NUM_EXPR {(#THIS>=0) && (#THIS<13)} + WARNING "Mese non valido" + HELP "Inserire il mese di competenza" + FLAGS "Z" +END + +NUMBER F_ANNOCOMP 4 +BEGIN + PROMPT 64 2 "Anno " + FIELD LF_SCPERC->ANNOC + NUM_EXPR {(#THIS==0)||((#THIS>1900)&&(#THIS<2100))} + WARNING "Anno non valido" + HELP "Inserire l'anno di competenza" +END + +STRING F_CODCAUS 2 +BEGIN + PROMPT 1 12 "" + FIELD LF_SCPERC->CODCAUS + FLAGS "H" +END + +DATE F_DATADOC +BEGIN + PROMPT 1 3 "Data " + FIELD LF_SCPERC->DATADOC + WARNING "Manca la data del documento" + HELP "Inserire la data del documento" + CHECKTYPE REQUIRED +END + +STRING F_NUMDOC 7 +BEGIN + PROMPT 1 4 "Numero " + FIELD LF_SCPERC->NUMDOC +END + + +NUMBER F_COMPENS 15 +BEGIN + PROMPT 22 3 "Compenso " + FIELD LF_SCPERC->COMPENSO + PICTURE "." + FLAGS "R" + MESSAGE K_TAB, F_TOTDOC +END + +NUMBER F_SPESE 15 +BEGIN + PROMPT 51 3 "Spese " + FIELD LF_SCPERC->SPESE + PICTURE "." + FLAGS "R" + MESSAGE K_TAB, F_TOTDOC +END + +NUMBER F_IVA 15 +BEGIN + PROMPT 22 4 "Iva " + FIELD LF_SCPERC->IVA + PICTURE "." + FLAGS "R" + MESSAGE K_TAB, F_TOTDOC +END + +NUMBER F_TOTDOC 15 +BEGIN + PROMPT 51 4 "Totale " + FIELD LF_SCPERC->TOTALE + PICTURE "." + FLAGS "R" + NUM_CALC {#F_COMPENS + #F_SPESE + #F_IVA} +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 5 "@bPagamenti" +END + +SPREADSHEET F_PAGAMENTI 0 6 +BEGIN + PROMPT 0 6 "" + ITEM "Data@10" + ITEM "Compenso@15" + ITEM "Spese@15" + ITEM "Imponibile@15" + ITEM "% R.a.@7" + ITEM "Ritenuta effettuata@15" + ITEM "Compenso netto@15" + ITEM "Num.Vers." + ITEM "Num.Pag." +END + + +TEXT DLG_NULL +BEGIN + PROMPT 1 12 "@bVersamenti" +END + +SPREADSHEET F_VERSAMENTI 0 5 +BEGIN + PROMPT 0 13 "" + ITEM "1015" + ITEM "Data@10" + ITEM "L" + ITEM "T" + ITEM "S-ABI@5" + ITEM "N-CAB@10" + ITEM "Ritenuta@30" + ITEM "Num.Vers." +END + +BOOLEAN F_FORCED +BEGIN + PROMPT 1 18 "Forzatura" + HELP "Attivare questo flag per forzare la registrazione anche di dati incongruenti" +END + +ENDPAGE + +ENDMASK + +#include "770100c.uml" +#include "770100d.uml" + diff --git a/m770/tmp.uml b/m770/tmp.uml new file mode 100755 index 000000000..5ed35b550 --- /dev/null +++ b/m770/tmp.uml @@ -0,0 +1,105 @@ +#include +#include +#include +#include + +#define FALSE 0 +#define TRUE 1 + + + + + + +#include "775100a.h" +TOOLBAR "" 0 20 0 2 +#include +ENDPAGE + +PAGE "Gestione percipienti" -1 -1 78 21 + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 0 "" +END + +NUMBER F_CODDITTA 5 +BEGIN + PROMPT 3 1 "Ditta " + FLAGS "RDG" + USE LF_NDITTE KEY 1 + INPUT CODDITTA F_CODDITTA + DISPLAY "Codice" CODDITTA + DISPLAY "Ragione sociale @50" RAGSOC + OUTPUT F_RAGDITTA RAGSOC + FIELD LF_PERC->CODDITTA + KEY 1 + CHECKTYPE REQUIRED +END + +STRING F_RAGDITTA 50 +BEGIN + PROMPT 17 1 "Ragione " + FLAGS "D" +END + +NUMBER F_ANNODIC 4 +BEGIN + PROMPT 52 4 "Anno dichiarazione " + FLAGS "DR" +END + +TEXT DLG_NULL +BEGIN + PROMPT 1 8 "@bDati percipiente" +END + +LIST F_TIPOA 1 12 +BEGIN + PROMPT 1 9 "" + FIELD LF_PERC->TIPOA + ITEM "F|Fisica" + ITEM "G|Giuridica" + CHECKTYPE REQUIRED + KEY 1 +END + +NUMBER F_CODANAGR 5 +BEGIN + PROMPT 15 9 "" + USE LF_PERC KEY 1 SELECT ((CODDITTA==#F_CODDITTA)&&(TIPOA==#F_TIPOA)) + JOIN LF_ANAG TO LF_PERC KEY 1 INTO TIPOA=TIPOA CODANAGR=CODANAGR + INPUT CODDITTA F_CODDITTA + INPUT TIPOA F_TIPOA + INPUT CODANAGR F_CODANAGR + DISPLAY "Tipo " TIPOA + DISPLAY "Codice " CODANAGR + DISPLAY "Cognome - Nome o Ragione sociale@50" LF_ANAG->RAGSOC + OUTPUT F_TIPOA TIPOA + OUTPUT F_CODANAGR CODANAGR + OUTPUT F_RAGSOC LF_ANAG->RAGSOC + FIELD LF_PERC->CODANAGR + CHECKTYPE REQUIRED + KEY 1 +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 25 9 "" + FLAGS "D" +END + +NUMBER F_FATTBIL 15 +BEGIN + PROMPT 1 14 "Fatture da ricevere " + PICTURE "." + FIELD LF_PERC->FATTBIL + FLAGS "R" +END + +ENDPAGE + +ENDMASK + + + diff --git a/m770/toolb_77.h b/m770/toolb_77.h new file mode 100755 index 000000000..7e96138d3 --- /dev/null +++ b/m770/toolb_77.h @@ -0,0 +1,39 @@ +BUTTON DLG_SAVEREC 8 2 +BEGIN +PROMPT -16 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_NEWREC 8 2 +BEGIN +PROMPT -26 -1 "~Nuovo" +MESSAGE EXIT,K_INS +FLAGS "D" +END + +BUTTON DLG_DELREC 8 2 +BEGIN +PROMPT -36 -1 "~Elimina" +MESSAGE EXIT,K_DEL +FLAGS "D" +END + +BUTTON DLG_FINDREC 8 2 +BEGIN +PROMPT -46 -1 "Ri~cerca" +MESSAGE EXIT,K_F9 +FLAGS "D" +END + +BUTTON DLG_CANCEL 8 2 +BEGIN +PROMPT -56 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 8 2 +BEGIN +PROMPT -66 -1 "" +MESSAGE EXIT,K_QUIT +END +