diff --git a/or/or1100.cpp b/or/or1100.cpp index 6d5ada9a4..713c6fbf4 100755 --- a/or/or1100.cpp +++ b/or/or1100.cpp @@ -71,7 +71,9 @@ protected: void filter_for_number(); void filter_for_clifo_agent(); void filter_for_articolo(); - void show_body_field(short id, bool on); // Attiva un campo del body (sole se esiste!) + + void show_body_field_for_clifo_agent(short id, bool on); + void show_body_field_for_articolo(short id, bool on); public: TStampa_ordini() {}; @@ -503,7 +505,7 @@ void TStampa_ordini::filter_for_number() ssec.printsection().find_field(BODY_COL_12 + id).show(_opz_giacenza); } -void TStampa_ordini::show_body_field(short id, bool on) +void TStampa_ordini::show_body_field_for_clifo_agent(short id, bool on) { TForm_item* i = _frm->exist_field('B', odd_page, id); if (i != NULL) @@ -803,15 +805,33 @@ void TStampa_ordini::filter_for_clifo_agent() } } // Abilitazione intestazioni di colonna - show_body_field(BODY_COL_5, _opz_valore); - show_body_field(BODY_COL_6, _opz_valore); - show_body_field(BODY_COL_10, _opz_prezzo); - show_body_field(BODY_COL_11, _opz_residuo); - show_body_field(BODY_COL_12, _opz_giacenza); + show_body_field_for_clifo_agent(BODY_COL_5, _opz_valore); + show_body_field_for_clifo_agent(BODY_COL_6, _opz_valore); + show_body_field_for_clifo_agent(BODY_COL_10, _opz_prezzo); + show_body_field_for_clifo_agent(BODY_COL_11, _opz_residuo); + show_body_field_for_clifo_agent(BODY_COL_12, _opz_giacenza); set_totvaluta_items(); } +void TStampa_ordini::show_body_field_for_articolo(short id, bool on) +{ + TForm_item* i = _frm->exist_field('B', odd_page, id); + if (i != NULL) + { + i->enable(on); + + i = _frm->exist_field('B', odd_page, id+400); + if (i != NULL) + i->enable(on); + + TForm_subsection& asec = (TForm_subsection&)_frm->find_field('B', odd_page, "TOTVAL1"); + i = asec.printsection().exist_field(id+500); + if (i != NULL) + i->enable(on); + } +} + void TStampa_ordini::filter_for_articolo() { CHECK(_frm, "Form non valido"); @@ -971,20 +991,12 @@ void TStampa_ordini::filter_for_articolo() _frm->find_field('B',odd_page,id).enable(); // Abilitazione intestazioni di colonna - show_body_field(BODY_COL_5,_opz_valore); - show_body_field(BODY_COL_6,_opz_valore); - show_body_field(BODY_COL_10,_opz_prezzo); - show_body_field(BODY_COL_11,_opz_residuo); - show_body_field(BODY_COL_12,_opz_giacenza); + show_body_field_for_articolo(BODY_COL_5,_opz_valore); + show_body_field_for_articolo(BODY_COL_6,_opz_valore); + show_body_field_for_articolo(BODY_COL_10,_opz_prezzo); + show_body_field_for_articolo(BODY_COL_11,_opz_residuo); + show_body_field_for_articolo(BODY_COL_12,_opz_giacenza); - // Abilitazione intestazioni di riga - TForm_subsection& asec = (TForm_subsection&)_frm->find_field('B', odd_page, "ARTMAIN"); // Sottosezione padre - asec.printsection().find_field(BODY_COL_5 + 400).show(_opz_valore); - asec.printsection().find_field(BODY_COL_6 + 400).show(_opz_valore); - asec.printsection().find_field(BODY_COL_10 + 400).show(_opz_prezzo); - asec.printsection().find_field(BODY_COL_11 + 400).show(_opz_residuo); - asec.printsection().find_field(BODY_COL_12 + 400).show(_opz_giacenza); - set_totvaluta_items(); } @@ -1065,18 +1077,10 @@ void TStampa_ordini::main_loop() switch (_tipo) { - case clifo: - form_name = "or1100b"; - break; - case agente: - form_name = "or1100c"; - break; - case articolo: - form_name = "or1100d"; - break; - default: - form_name = "or1100a"; - break; + case clifo: form_name = "or1100b"; break; + case agente: form_name = "or1100c"; break; + case articolo: form_name = "or1100d"; break; + default: form_name = "or1100a"; break; } _frm = new TOrdine_form(form_name); diff --git a/or/or1100d.frm b/or/or1100d.frm index 9605b5003..5fc315e1c 100755 --- a/or/or1100d.frm +++ b/or/or1100d.frm @@ -1,6 +1,7 @@ // Form per la stampa ordini per articolo #include "or1100a.h" // Cursor sorting on main file is set also in application +//USE LF_RIGHEDOC BY CODART LIVELLO CODMAG DATACONS USE LF_RIGHEDOC BY CODART LIVELLO CODMAG ANNO NDOC DATACONS JOIN LF_DOC INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC JOIN LF_ANAMAG INTO CODART==CODART @@ -10,11 +11,13 @@ DESCRIPTION BEGIN END + GENERAL BEGIN OFFSET 0 0 END + SECTION HEADER ODD 6 STRINGA 1 40 1 @@ -49,7 +52,7 @@ END //HEADER SECTION BODY ODD 4 COLUMNWISE -STRINGA 1 10 +STRINGA BODY_COL_1 20 BEGIN SPECIAL STRINGA INTESTAZIONE "Codice" "Codice" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -61,7 +64,7 @@ BEGIN MESSAGE RESET,508|RESET,509|RESET,511 END -STRING 2 40 +STRING BODY_COL_2 40 BEGIN SPECIAL STRINGA INTESTAZIONE "Descrizione" "Descrizione" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -69,9 +72,10 @@ BEGIN KEY "Descrizione art." PROMPT 2 1 "" FIELD LF_RIGHEDOC->DESCR + //MESSAGE _ORDINE,DESCRIZIONE END -STRINGA 3 4 +STRINGA BODY_COL_3 4 BEGIN SPECIAL STRINGA INTESTAZIONE "Val." "Val." SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -80,7 +84,7 @@ BEGIN PROMPT 3 1 "" END -DATA 4 10 +DATA BODY_COL_4 10 BEGIN SPECIAL STRINGA INTESTAZIONE "Data cons." "Data cons." SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -109,7 +113,7 @@ BEGIN PROMPT 6 1 "" END -STRINGA 7 4 +STRINGA BODY_COL_7 4 BEGIN SPECIAL STRINGA INTESTAZIONE "UM" "UM" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -119,7 +123,7 @@ BEGIN GROUP G_DETTAGLIO END -STRINGA 8 13 +STRINGA BODY_COL_8 15 BEGIN SPECIAL STRINGA INTESTAZIONE "Q.ta Ordinata" "Q.ta Ordinata" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -129,7 +133,7 @@ BEGIN GROUP G_DETTAGLIO END -STRINGA 9 13 +STRINGA BODY_COL_9 15 BEGIN SPECIAL STRINGA INTESTAZIONE "Q.ta Evasa" "Q.ta Evasa" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -139,6 +143,36 @@ BEGIN GROUP G_DETTAGLIO END +STRINGA BODY_COL_10 13 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CPr. scontato" "Prezzo un. scontato" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "Prezzo un. scontato" // Solo intestazione + PROMPT 10 1 "" + GROUP G_DETTAGLIO +END + +STRINGA BODY_COL_11 15 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CResiduo" "Residuo" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "Residuo" // Solo intestazione + PROMPT 11 1 "" + GROUP G_DETTAGLIO +END + +STRINGA BODY_COL_12 15 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CGiac. Att." "Giacenza attuale" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "Giacenza attuale" // Solo intestazione + PROMPT 12 1 "" + GROUP G_DETTAGLIO +END + // Raggruppamento righe documenti per lo stesso codice articolo SECTION ARTMAIN 2 1 1 FILE LF_RIGHEDOC GROUP CODART @@ -160,6 +194,7 @@ SECTION ARTICOLI 1 0 0 FILE LF_RIGHEDOC GROUP ANNO+NDOC+CODVAL+DATACONS BEGIN KEY "Descrizione" PROMPT 2 1 "" +// MESSAGE _ORDINE,DESCRIZIONE|COPY,402 MESSAGE _STREXPR,LF_DOC->CODNUM+"/"+LF_DOC->ANNO+"-"+LF_DOC->NDOC+" del "+LF_DOC->DATADOC|COPY,402 FLAGS "H" END @@ -206,14 +241,14 @@ SECTION ARTICOLI 1 0 0 FILE LF_RIGHEDOC GROUP ANNO+NDOC+CODVAL+DATACONS MESSAGE _ORDINE,SELECTUM|COPY,407 FLAGS "H" END - NUMBER 308 13 + NUMBER 308 15 BEGIN KEY "Q.ta Ordinata" PROMPT 8 1 "" MESSAGE _ORDINE,QTA|_ORDINE,CONVUM|ADD,408 FLAGS "H" END - NUMBER 309 13 + NUMBER 309 15 BEGIN KEY "Q.ta Evasa" PROMPT 9 1 "" @@ -245,7 +280,7 @@ SECTION ARTICOLI 1 0 0 FILE LF_RIGHEDOC GROUP ANNO+NDOC+CODVAL+DATACONS END // END SECTION ARTICOLI // Totalizers for previous section -NUMBER 401 10 +NUMBER 401 20 BEGIN PROMPT 1 1 "" FLAGS "D" @@ -296,20 +331,20 @@ STRINGA 407 4 MESSAGE COPY,507 GROUP G_TOTALEART END -NUMBER 408 13 +NUMBER 408 15 BEGIN KEY "Q.ta Ordinata" PROMPT 8 1 "" - PICTURE "#@,@@@" + PICTURE "########@,@@@@@" FLAGS "D" MESSAGE ADD,508 GROUP G_TOTALEART END -NUMBER 409 13 +NUMBER 409 15 BEGIN KEY "Q.ta Evasa" PROMPT 9 1 "" - PICTURE "#@,@@@" + PICTURE "########@,@@@@@" FLAGS "D" MESSAGE ADD,509 GROUP G_TOTALEART @@ -327,7 +362,7 @@ NUMBER 411 15 BEGIN KEY "Residuo" PROMPT 11 1 "" - PICTURE "########@,@@@" + PICTURE "########@,@@@@@" FLAGS "D" MESSAGE ADD,511 GROUP G_TOTALEART @@ -336,6 +371,10 @@ NUMBER 412 15 BEGIN KEY "Giac. attuale" PROMPT 12 1 "" +// PICTURE "########@,@@@@@" +// FLAGS "H" +// MESSAGE COPY,512 +// GROUP G_TOTALEART END END // SEZIONE ARTMAIN @@ -343,7 +382,7 @@ END // SEZIONE ARTMAIN SECTION TOTVAL1 3 0 1 GROUP FLAGS "D" - NUMBER 51 10 + NUMBER 51 20 BEGIN PROMPT 1 1 "" END @@ -384,18 +423,18 @@ FLAGS "D" PROMPT 7 1 "" END - NUMERO 508 13 3 + NUMERO 508 15 5 BEGIN KEY "Tot Q.ta ordinata" PROMPT 8 1 "" - PICTURE "########@,@@@" + PICTURE "########@,@@@@@" END - NUMERO 509 13 3 + NUMERO 509 15 5 BEGIN KEY "Tot Q.ta evasa" PROMPT 9 1 "" - PICTURE "########@,@@@" + PICTURE "########@,@@@@@" END VALUTA 510 13 @@ -408,14 +447,14 @@ FLAGS "D" BEGIN KEY "Tot Residuo" PROMPT 11 1 "" - PICTURE "########@,@@@" + PICTURE "########@,@@@@@" END NUMERO 512 15 5 BEGIN KEY "Tot Giacenza" PROMPT 12 1 "" - PICTURE "########@,@@@" + PICTURE "########@,@@@@@" END END // Fine sezione totale in valuta #1 @@ -423,7 +462,7 @@ END // Fine sezione totale in valuta #1 SECTION TOTVAL2 1 0 1 GROUP FLAGS "D" - NUMBER 61 10 + NUMBER 61 20 BEGIN PROMPT 1 1 "" END @@ -464,7 +503,7 @@ END // Fine sezione totale in valuta #2 SECTION TOTVAL3 1 0 1 GROUP FLAGS "D" - NUMBER 71 10 + NUMBER 71 20 BEGIN PROMPT 1 1 "" END @@ -504,7 +543,7 @@ END // Fine sezione totale in valuta #3 SECTION TOTVAL4 1 0 1 GROUP FLAGS "D" - NUMBER 81 10 + NUMBER 81 20 BEGIN PROMPT 1 1 "" END