From 623bb0d2146498a172409229239fbc690cf8afd7 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 5 May 2000 14:32:44 +0000 Subject: [PATCH] Patch level : xx.811 Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 1.5 fino alla patch 811 git-svn-id: svn://10.65.10.50/trunk@8982 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- or/or1100.cpp | 42 ++++-- or/or1100a.frm | 382 +++++++++++++++++++++++++++++++++++++++++-------- or/or1100a.uml | 6 +- or/or1100b.frm | 165 +++++++++++++++------ or/or1100c.frm | 154 +++++++++++++++----- or/or1100d.frm | 162 +++++++++++++++++---- or/or1200.cpp | 263 +++++++++++++++++++++++++++++++++- or/or1200a.uml | 19 +-- or/orlib01.cpp | 17 ++- 9 files changed, 1015 insertions(+), 195 deletions(-) diff --git a/or/or1100.cpp b/or/or1100.cpp index cbd5c855f..ec0f5823c 100755 --- a/or/or1100.cpp +++ b/or/or1100.cpp @@ -381,7 +381,8 @@ void TStampa_ordini::filter_for_number() f.put(DOC_DATADOC, _from_date); t.put(DOC_DATADOC, _to_date); filter_expr << " && (PROVV==\"" << _provv << "\")"; - filter_expr << " && (ANNO==\"" << _anno << "\")"; + if (_anno != 0) + filter_expr << " && (ANNO==\"" << _anno << "\")"; filter_expr << " && (CODNUM==\"" << _codnum << "\")"; } cur->setregion(f,t); @@ -525,9 +526,18 @@ void TStampa_ordini::filter_for_clifo_agent() TRectype f(LF_RIGHEDOC), t(LF_RIGHEDOC); TString filter_expr; - f.put(DOC_PROVV, _provv); - f.put(DOC_ANNO, _anno); f.put(DOC_CODNUM, _codnum); + if (_anno != 0) + { + f.put(DOC_PROVV, _provv); + f.put(DOC_ANNO, _anno); + } + else + { + s.format("(PROVV==\"%c\")&&", _provv); + filter_expr << s; + } + t = f; cur->setregion(f,t); // This is the region... @@ -577,7 +587,7 @@ void TStampa_ordini::filter_for_clifo_agent() s.format("&&(ANSI(%d->DATADOC)<=\"%s\")", LF_DOC, (const char*)_to_date.string(ANSI)); filter_expr << s; - } + } // Filtro sulla data consegna... if (_from_cons.ok()) @@ -691,6 +701,12 @@ void TStampa_ordini::filter_for_clifo_agent() ssec.printsection().find_field(id).enable(); } } + + // In qualsiasi caso va fatta questa abilitazione + bool is_art = _detail_rows && !_detail_doc; + + ((TForm_subsection&) _frm->find_field('B', odd_page, "DOCUMENTI")).printsection().find_field(BODY_COL_5 + 100).enable(_opz_valore && !is_art); + ((TForm_subsection&) _frm->find_field('B', odd_page, "DOCUMENTI")).printsection().find_field(BODY_COL_6 + 100).enable(_opz_valore && !is_art); if (_detail_rows) // Stampa dettaglio righe... { @@ -768,9 +784,19 @@ void TStampa_ordini::filter_for_articolo() TRectype f(LF_RIGHEDOC), t(LF_RIGHEDOC); TString filter_expr; - f.put(DOC_PROVV, _provv); - f.put(DOC_ANNO, _anno); f.put(DOC_CODNUM, _codnum); + f.put(RDOC_CODART, _from_art); + if (_anno != 0) + { + f.put(DOC_PROVV, _provv); + f.put(DOC_ANNO, _anno); + } + else + { + s.format("(PROVV==\"%c\") &&", _provv); + filter_expr << s; + } + t = f; cur->setregion(f,t); // This is the region... @@ -791,7 +817,7 @@ void TStampa_ordini::filter_for_articolo() } // Filtro sulla data ordine... if (_from_date.ok()) - { + { s.format("&&(ANSI(%d->DATADOC)>=\"%s\")", LF_DOC, (const char*)_from_date.string(ANSI)); filter_expr << s; @@ -801,7 +827,7 @@ void TStampa_ordini::filter_for_articolo() s.format("&&(ANSI(%d->DATADOC)<=\"%s\")", LF_DOC, (const char*)_to_date.string(ANSI)); filter_expr << s; - } + } // Filtro sulla data consegna... if (_from_cons.ok()) diff --git a/or/or1100a.frm b/or/or1100a.frm index 15da17b5f..a597ebe33 100755 --- a/or/or1100a.frm +++ b/or/or1100a.frm @@ -15,8 +15,6 @@ END GENERAL BEGIN OFFSET 0 0 - FONT "Courier New" - SIZE 10 END @@ -54,7 +52,7 @@ END //HEADER SECTION BODY ODD 2 COLUMNWISE -STRING 1 22 +STRING BODY_COL_1 22 BEGIN SPECIAL STRINGA INTESTAZIONE "Documento" "Documento" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" @@ -64,83 +62,127 @@ BEGIN MESSAGE _STREXPR,CODNUM+"/"+NDOC+" del "+DATADOC END -STRING 2 50 +STRING BODY_COL_2 40 BEGIN SPECIAL STRINGA INTESTAZIONE "Cod./Descrizione" "Cod./Descrizione" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Cod./Descrizione" PROMPT 2 1 "" - MESSAGE _STREXPR,CODCF+" "+LF_CLIFO->RAGSOC - //MESSAGE _CLIENTE, !RAGSOC da implementare a causa degli occasionali... + MESSAGE _ORDINE,RAGSOC,1 END +STRINGA BODY_COL_3 4 +BEGIN + SPECIAL STRINGA INTESTAZIONE "Val." "Val." + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "Codice Valuta" + PROMPT 3 1 "" + FIELD CODVAL +END -DATA 3 10 +DATA BODY_COL_4 10 BEGIN SPECIAL STRINGA INTESTAZIONE "Data cons." "Data cons." SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Data consegna documento" - PROMPT 3 1 "" + PROMPT 4 1 "" FIELD DATACONS END -NUMBER 4 15 +VALUTA BODY_COL_5 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CValore" "Valore" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Valore" - PROMPT 4 1 "" + PROMPT 5 1 "" FIELD TOTVALORE - PICTURE "." + DRIVENBY BODY_COL_3 +// PICTURE "." END -NUMBER 5 11 +VALUTA BODY_COL_6 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CVal.Residuo" "Val.Residuo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Valore Residuo" - PROMPT 5 1 "" + PROMPT 6 1 "" FIELD TOTVALRES - PICTURE "." + DRIVENBY BODY_COL_3 +// PICTURE "." END -STRINGA 6 4 +STRINGA BODY_COL_7 4 BEGIN SPECIAL STRINGA INTESTAZIONE "UM" "UM" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Unita' di misura" // Solo intestazione FLAGS "H" - PROMPT 6 1 "" + PROMPT 7 1 "" GROUP G_DETTAGLIO END -STRINGA 7 13 +STRINGA BODY_COL_8 15 BEGIN SPECIAL STRINGA INTESTAZIONE "Q.ta Ordinata" "Q.ta Ordinata" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Q.ta Ordinata" // Solo intestazione FLAGS "H" - PROMPT 7 1 "" + PROMPT 8 1 "" GROUP G_DETTAGLIO END -STRINGA 8 13 +STRINGA BODY_COL_9 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CQ.ta Evasa" "Q.ta Evasa" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Q.ta Evasa" // Solo intestazione FLAGS "H" - PROMPT 8 1 "" + PROMPT 9 1 "" 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 + FLAGS "H" + 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 + FLAGS "H" + 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 + FLAGS "H" + PROMPT 12 1 "" + GROUP G_DETTAGLIO +END + + // Sezione di dettaglio righe / raggruppamento articoli per ordine corrente SECTION DET 2 0 0 FILE LF_RIGHEDOC @@ -148,92 +190,318 @@ SECTION DET 2 0 0 FILE LF_RIGHEDOC SECTION RIGHE 1 1 1 GROUP // Viene cambiata in STREXPR da programma - STRINGA 100 22 + STRINGA 101 22 BEGIN PROMPT 1 1 "" END - STRINGA 101 50 + STRINGA 102 40 BEGIN PROMPT 2 1 "" MESSAGE _STREXPR, LF_RIGHEDOC->CODART+" "+LF_RIGHEDOC->DESCR END - DATA 102 10 + STRING 103 4 + BEGIN + KEY "Codice Valuta" + PROMPT 3 1 "" + END + + DATA 104 10 BEGIN - PROMPT 3 1 "" + PROMPT 4 1 "" FIELD LF_RIGHEDOC->DATACONS END - - NUMBER 103 15 + + VALUTA 105 15 BEGIN - PROMPT 4 1 "" // valore + PROMPT 5 1 "" // valore FIELD LF_RIGHEDOC->RIGAVALORE - MESSAGE ADD, FL->203 - PICTURE "." + MESSAGE ADD, FL->205 + DRIVENBY 103 +// PICTURE "." END - NUMBER 104 11 + VALUTA 106 15 BEGIN - PROMPT 5 1 "" // Val residuo riga + PROMPT 6 1 "" // Val residuo riga FIELD LF_RIGHEDOC->RIGAVALRES - MESSAGE ADD, FL->204 - PICTURE "." + MESSAGE ADD, FL->206 + DRIVENBY 103 +// PICTURE "." END - STRINGA 105 4 + STRINGA 107 4 BEGIN - PROMPT 6 1 "" // Unita' di misura + PROMPT 7 1 "" // Unita' di misura FIELD LF_RIGHEDOC->UMQTA END - NUMBER 106 13 + NUMBER 108 15 BEGIN - PROMPT 7 1 "" // Q.ta Ordinata + PROMPT 8 1 "" // Q.ta Ordinata FIELD LF_RIGHEDOC->QTA - PICTURE "#@,@@@" - END - - NUMBER 107 13 - BEGIN - PROMPT 8 1 "" // Q.ta Evasa - FIELD LF_RIGHEDOC->QTAEVASA - PICTURE "#@,@@@" + PICTURE "########@,@@@@@" END - + + NUMBER 109 15 + BEGIN + PROMPT 9 1 "" // Q.ta Evasa + FIELD LF_RIGHEDOC->QTAEVASA + PICTURE "########@,@@@@@" + END + + VALUTA 110 13 + BEGIN + KEY "Prezzo un scontato" + PROMPT 10 1 "" + MESSAGE _ORDINE,PREZZONS +// PICTURE "." + FLAGS "U" + DRIVENBY 103 + END + + NUMBER 111 15 + BEGIN + KEY "Residuo" + PROMPT 11 1 "" + PICTURE "########@,@@@@@" + MESSAGE _ORDINE,RESIDUO + END + + NUMBER 112 15 + BEGIN + KEY "Giacenza attuale" + PROMPT 12 1 "" + PICTURE "########@,@@@@@" + MESSAGE _ORDINE,GIACENZA + END + + SECTION RIGHEART 1 0 0 FILE LF_RIGHEDOC GROUP CODART+DATACONS + FLAGS "D" + NUMBER 301 22 + BEGIN + PROMPT 1 1 "" + FLAGS "H" + END + STRING 302 40 2 + BEGIN + KEY "Descrizione" + PROMPT 2 1 "" + MESSAGE _ORDINE,DESCRIZIONE|COPY,402 + FLAGS "H" + END + STRING 303 4 + BEGIN + KEY "Codice Valuta" + PROMPT 3 1 "" + FLAGS "H" + END + DATA 304 10 + BEGIN + KEY "Data consegna articolo" + PROMPT 4 1 "" + FIELD LF_RIGHEDOC->DATACONS + MESSAGE COPY,404 + FLAGS "H" + END + VALUTA 305 15 + BEGIN + KEY "Valore Ordinato" + PROMPT 5 1 "" + FIELD LF_RIGHEDOC->RIGAVALORE +// PICTURE "." + DRIVENBY 303 + FLAGS "H" + END + VALUTA 306 15 + BEGIN + KEY "Valore Residuo" + PROMPT 6 1 "" + FIELD LF_RIGHEDOC->RIGAVALRES +// PICTURE "." + DRIVENBY 303 + FLAGS "H" + END + STRINGA 307 4 + BEGIN + KEY "Unita' di misura" + PROMPT 7 1 "" + FIELD LF_RIGHEDOC->UMQTA + MESSAGE _ORDINE,SELECTUM|COPY,407 + FLAGS "H" + END + NUMBER 308 15 + BEGIN + KEY "Q.ta Ordinata" + PROMPT 8 1 "" + FIELD LF_RIGHEDOC->QTA + MESSAGE _ORDINE,CONVUM|ADD,408 + FLAGS "H" + END + NUMBER 309 15 + BEGIN + KEY "Q.ta Evasa" + PROMPT 9 1 "" + FIELD LF_RIGHEDOC->QTAEVASA + MESSAGE _ORDINE,CONVUM|ADD,409 + FLAGS "H" + END + VALUTA 310 13 + BEGIN + KEY "Prezzo non scontato" + PROMPT 10 1 "" + MESSAGE _ORDINE,PREZZONS|COPY,410 + DRIVENBY 303 + FLAGS "HU" + END + NUMBER 311 15 + BEGIN + KEY " Residuo" + PROMPT 11 1 "" + MESSAGE _ORDINE,RESIDUO|_ORDINE,CONVUM|ADD,411 + FLAGS "H" + END + NUMBER 312 15 + BEGIN + KEY "Giacenza attuale" + PROMPT 12 1 "" + MESSAGE _ORDINE,GIACENZA|COPY,412 + FLAGS "H" + END + END // END SECTION RIGHEART + END //SECTION RIGHE + // Totalizers for section RIGHEART + NUMBER 401 22 + BEGIN + PROMPT 1 1 "" + FLAGS "D" + END + STRING 402 40 2 + BEGIN + KEY "Descrizione" + PROMPT 2 1 "" + FLAGS "D" + END + STRING 403 4 + BEGIN + KEY "Codice Valuta" + PROMPT 3 1 "" + FLAGS "D" + END + DATA 404 10 + BEGIN + KEY "Data consegna articolo" + PROMPT 4 1 "" + FLAGS "D" + END + VALUTA 405 15 + BEGIN + KEY "Valore Ordinato" + PROMPT 5 1 "" +// PICTURE "." + FLAGS "D" + DRIVENBY 403 + GROUP G_TOTALEART + END + VALUTA 406 15 + BEGIN + KEY "Valore Residuo" + PROMPT 6 1 "" +// PICTURE "." + FLAGS "D" + DRIVENBY 403 + GROUP G_TOTALEART + END + STRINGA 407 4 + BEGIN + KEY "Unita' di misura" + PROMPT 7 1 "" + FLAGS "D" + GROUP G_TOTALEART + END + NUMBER 408 15 + BEGIN + KEY "Q.ta Ordinata" + PROMPT 8 1 "" + PICTURE "########@,@@@@@" + FLAGS "D" + GROUP G_TOTALEART + END + NUMBER 409 15 + BEGIN + KEY "Q.ta Evasa" + PROMPT 9 1 "" + PICTURE "########@,@@@@@" + FLAGS "D" + GROUP G_TOTALEART + END + VALUTA 410 13 + BEGIN + KEY "Pr. non scontato" + PROMPT 10 1 "" +// PICTURE "." + FLAGS "DU" + DRIVENBY 403 + GROUP G_TOTALEART + END + NUMBER 411 15 + BEGIN + KEY "Residuo" + PROMPT 11 1 "" + PICTURE "########@,@@@@@" + FLAGS "D" + GROUP G_TOTALEART + END + NUMBER 412 15 + BEGIN + KEY "Giac. attuale" + PROMPT 12 1 "" + PICTURE "########@,@@@@@" + FLAGS "D" + GROUP G_TOTALEART + END + END // SECTION DET -END //BODY +END //BODY SECTION FOOTER LAST 5 COLUMNWISE - STRINGA 200 22 + STRINGA 201 22 BEGIN PROMPT 1 1 "" END - STRINGA 201 50 + STRINGA 202 40 BEGIN PROMPT 2 1 "@BTotale:" END - DATA 202 10 + STRINGA 203 4 BEGIN PROMPT 3 1 "" END - - NUMBER 203 15 + + DATA 204 10 BEGIN - PROMPT 4 1 "" // valore - PICTURE "." + PROMPT 4 1 "" END - NUMBER 204 11 + VALUTA 205 15 BEGIN - PROMPT 5 1 "" // Val residuo riga - PICTURE "." + PROMPT 5 1 "" // valore + DRIVENBY 203 +// PICTURE "." + END + + VALUTA 206 15 + BEGIN + PROMPT 6 1 "" // Val residuo + DRIVENBY 203 +// PICTURE "." END END //FOOTER diff --git a/or/or1100a.uml b/or/or1100a.uml index 365e6c006..8229a687a 100755 --- a/or/or1100a.uml +++ b/or/or1100a.uml @@ -49,7 +49,7 @@ END NUMBER F_ANNO 4 BEGIN PROMPT 65 2 "Anno " - CHECKTYPE REQUIRED +// CHECKTYPE REQUIRED END LIST F_PROVV 12 @@ -63,9 +63,9 @@ LISTBOX F_DATA_O_NUM 20 BEGIN PROMPT 36 4 "Selezione su " ITEM "N|Numero documento" - MESSAGE HIDE,GR_DATA@|SHOW,GR_NDOC@ + MESSAGE HIDE,GR_DATA@|SHOW,GR_NDOC@|REQUIRED,F_ANNO ITEM "D|Data documento" - MESSAGE SHOW,GR_DATA@|HIDE,GR_NDOC@ + MESSAGE SHOW,GR_DATA@|HIDE,GR_NDOC@|NORMAL,F_ANNO END NUMBER F_NDOCFROM 7 diff --git a/or/or1100b.frm b/or/or1100b.frm index d445c0272..f8d68df88 100755 --- a/or/or1100b.frm +++ b/or/or1100b.frm @@ -1,7 +1,7 @@ // Form per la stampa ordini per cliente/fornitore #include "or1100a.h" // Cursor sorting on main file is set also in application -USE LF_RIGHEDOC BY LF_DOC->TIPOCF LF_DOC->CODCF CODNUM NDOC CODART DATACONS +USE LF_RIGHEDOC BY LF_DOC->TIPOCF LF_DOC->CODCF LF_DOC->OCFPI ANNO CODNUM NDOC CODART DATACONS JOIN LF_DOC INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC JOIN LF_ANAMAG INTO CODART==CODART JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF @@ -94,21 +94,23 @@ BEGIN PROMPT 4 1 "" END -NUMBER 5 15 +VALUTA BODY_COL_5 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CValore" "Valore" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Valore" + DRIVENBY BODY_COL_3 PROMPT 5 1 "" END -NUMBER 6 15 +VALUTA BODY_COL_6 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CVal.Residuo" "Val.Residuo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Valore Residuo" + DRIVENBY BODY_COL_3 PROMPT 6 1 "" END @@ -149,6 +151,21 @@ END // Raggruppamento righe documenti per lo stesso cli/fo SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF +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 + FLAGS "H" + PROMPT 12 1 "" + GROUP G_DETTAGLIO +END + + +// Raggruppamento righe documenti per lo stesso cli/fo +SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF+LF_DOC->OCFPI + NUMBER 101 10 BEGIN PROMPT 1 1 "" @@ -160,7 +177,7 @@ SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF BEGIN KEY "Descrizione documento" PROMPT 2 1 "" - MESSAGE _STREXPR,"*Doc. "+LF_DOC->CODNUM+"/"+LF_DOC->NDOC+" del "+LF_DOC->DATADOC + MESSAGE _STREXPR,"*Doc. "+LF_DOC->CODNUM+"/"+LF_DOC->ANNO+"-"+LF_DOC->NDOC+" del "+LF_DOC->DATADOC FLAGS "D" END @@ -176,32 +193,32 @@ SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF BEGIN KEY "Data consegna documento" PROMPT 4 1 "" - FIELD LF_DOC->DATACONS FLAGS "D" + FIELD LF_DOC->DATACONS END - NUMBER 105 15 + VALUTA 105 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" FIELD LF_DOC->TOTVALORE + DRIVENBY 103 MESSAGE _ORDINE,VALTABLE,VALORD - PICTURE "." FLAGS "D" END - NUMBER 106 15 + VALUTA 106 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" FIELD LF_DOC->TOTVALRES + DRIVENBY 103 MESSAGE _ORDINE,VALTABLE,VALRES - PICTURE "." FLAGS "D" END - SECTION RIGHEDOC 2 1 1 FILE LF_RIGHEDOC GROUP NDOC // changes into CODART grouping + SECTION RIGHEDOC 2 1 1 FILE LF_RIGHEDOC GROUP NDOC // changes into CODART grouping FLAGS "D" // Da abilitare solo su dettaglio righe NUMBER 201 10 @@ -225,19 +242,19 @@ SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF PROMPT 4 1 "" FIELD LF_RIGHEDOC->DATACONS END - NUMBER 205 15 + VALUTA 205 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" FIELD LF_RIGHEDOC->RIGAVALORE - PICTURE "." + DRIVENBY 203 END - NUMBER 206 15 + VALUTA 206 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" FIELD LF_RIGHEDOC->RIGAVALRES - PICTURE "." + DRIVENBY 203 END STRINGA 207 4 BEGIN @@ -257,7 +274,27 @@ SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF KEY "Q.ta Evasa" PROMPT 9 1 "" FIELD LF_RIGHEDOC->QTAEVASA - PICTURE "#@,@@@" + PICTURE "########@,@@@@@" + END + VALUTA 210 13 + BEGIN + KEY "Pr. Scontato" + PROMPT 10 1 "" + MESSAGE _ORDINE,PREZZONS + DRIVENBY 203 + FLAGS "U" + END + NUMBER 211 15 + BEGIN + PROMPT 11 1 "" // Residuo + PICTURE "########@,@@@@@" + MESSAGE _ORDINE,RESIDUO + END + NUMBER 212 15 + BEGIN + PROMPT 12 1 "" // Giacenza attuale + PICTURE "########@,@@@@@" + MESSAGE _ORDINE,GIACENZA END END // END SECTION RIGHEDOC @@ -293,21 +330,21 @@ SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF MESSAGE COPY,404 FLAGS "H" END - NUMBER 305 15 + VALUTA 305 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" FIELD LF_RIGHEDOC->RIGAVALORE MESSAGE _ORDINE,VALTABLE,VALORD|ADD,405 - PICTURE "." + DRIVENBY 303 FLAGS "H" END - NUMBER 306 15 + VALUTA 306 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" FIELD LF_RIGHEDOC->RIGAVALRES - PICTURE "." + DRIVENBY 303 FLAGS "H" MESSAGE _ORDINE,VALTABLE,VALRES|ADD,406 END @@ -335,6 +372,28 @@ SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF MESSAGE _ORDINE,CONVUM|ADD,409 FLAGS "H" END + VALUTA 310 13 + BEGIN + KEY "Prezzo non scontato" + PROMPT 10 1 "" + MESSAGE _ORDINE,PREZZONS|COPY,410 + DRIVENBY 303 + FLAGS "HU" + END + NUMBER 311 15 + BEGIN + KEY " Residuo" + PROMPT 11 1 "" + MESSAGE _ORDINE,RESIDUO|_ORDINE,CONVUM|ADD,411 + FLAGS "H" + END + NUMBER 312 15 + BEGIN + KEY "Giacenza attuale" + PROMPT 12 1 "" + MESSAGE _ORDINE,GIACENZA|COPY,412 + FLAGS "H" + END END // END SECTION RIGHEART // Totalizers for previous section @@ -361,22 +420,20 @@ SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF PROMPT 4 1 "" FLAGS "D" END - NUMBER 405 15 + VALUTA 405 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" - PICTURE "." FLAGS "D" - //MESSAGE _ORDINE,VALTABLE,VALORD + DRIVENBY 403 GROUP G_TOTALEART END - NUMBER 406 15 + VALUTA 406 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" - PICTURE "." FLAGS "D" - //MESSAGE _ORDINE,VALTABLE,VALRES + DRIVENBY 403 GROUP G_TOTALEART END STRINGA 407 4 @@ -398,7 +455,31 @@ SECTION DOCUMENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_CLIFO->TIPOCF+LF_CLIFO->CODCF BEGIN KEY "Q.ta Evasa" PROMPT 9 1 "" - PICTURE "#@,@@@" + PICTURE "########@,@@@@@" + FLAGS "D" + GROUP G_TOTALEART + END + VALUTA 410 13 + BEGIN + KEY "Pr. non scontato" + PROMPT 10 1 "" + DRIVENBY 403 + FLAGS "DU" + GROUP G_TOTALEART + END + NUMBER 411 15 + BEGIN + KEY "Residuo" + PROMPT 11 1 "" + PICTURE "########@,@@@@@" + FLAGS "D" + GROUP G_TOTALEART + END + NUMBER 412 15 + BEGIN + KEY "Giac. attuale" + PROMPT 12 1 "" + PICTURE "########@,@@@@@" FLAGS "D" GROUP G_TOTALEART END @@ -430,18 +511,18 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 55 15 + VALUTA 55 15 BEGIN KEY "Tot Valore Ordinato per cli/fo" PROMPT 5 1 "" - PICTURE "." + DRIVENBY 53 END - NUMBER 56 15 + VALUTA 56 15 BEGIN KEY "Tot Valore Residuo per cli/fo" PROMPT 6 1 "" - PICTURE "." + DRIVENBY 53 END END // Fine sezione totale in valuta #1 @@ -469,18 +550,18 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 65 15 + VALUTA 65 15 BEGIN KEY "Tot Valore Ordinato per cli/fo" PROMPT 5 1 "" - PICTURE "." + DRIVENBY 63 END - NUMBER 66 15 + VALUTA 66 15 BEGIN KEY "Tot Valore Residuo per cli/fo" PROMPT 6 1 "" - PICTURE "." + DRIVENBY 63 END END // Fine sezione totale in valuta #2 @@ -508,18 +589,18 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 75 15 + VALUTA 75 15 BEGIN KEY "Tot Valore Ordinato per cli/fo" PROMPT 5 1 "" - PICTURE "." + DRIVENBY 73 END - NUMBER 76 15 + VALUTA 76 15 BEGIN KEY "Tot Valore Residuo per cli/fo" PROMPT 6 1 "" - PICTURE "." + DRIVENBY 73 END END // Fine sezione totale in valuta #3 @@ -546,18 +627,18 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 85 15 + VALUTA 85 15 BEGIN KEY "Tot Valore Ordinato per cli/fo" PROMPT 5 1 "" - PICTURE "." + DRIVENBY 83 END - NUMBER 86 15 + VALUTA 86 15 BEGIN KEY "Tot Valore Residuo per cli/fo" PROMPT 6 1 "" - PICTURE "." + DRIVENBY 83 END END // Fine sezione totale in valuta #4 diff --git a/or/or1100c.frm b/or/or1100c.frm index cccbd508d..647d0c5f5 100755 --- a/or/or1100c.frm +++ b/or/or1100c.frm @@ -1,7 +1,7 @@ // Form per la stampa ordini per agente #include "or1100a.h" // Cursor sorting on main file is set also in application -USE LF_RIGHEDOC BY LF_DOC->CODAG LF_DOC->TIPOCF LF_DOC->CODCF CODNUM NDOC CODART DATACONS +USE LF_RIGHEDOC BY LF_DOC->CODAG LF_DOC->TIPOCF LF_DOC->CODCF LF_DOC->OCFPI ANNO CODNUM NDOC CODART DATACONS JOIN LF_DOC INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC JOIN LF_AGENTI TO LF_DOC INTO CODAGE==CODAG JOIN LF_ANAMAG INTO CODART==CODART @@ -95,21 +95,23 @@ BEGIN PROMPT 4 1 "" END -NUMBER 5 15 +VALUTA BODY_COL_5 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CValore" "Valore" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Valore" + DRIVENBY BODY_COL_3 PROMPT 5 1 "" END -NUMBER 6 15 +VALUTA BODY_COL_6 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CVal.Residuo" "Val.Residuo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Valore Residuo" + DRIVENBY BODY_COL_3 PROMPT 6 1 "" END @@ -183,7 +185,7 @@ SECTION AGENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_DOC->CODAG BEGIN KEY "Descrizione documento" PROMPT 2 1 "" - MESSAGE _STREXPR,"*Doc. "+LF_DOC->CODNUM+"/"+LF_DOC->NDOC+" del "+LF_DOC->DATADOC + MESSAGE _STREXPR,"*Doc. "+LF_DOC->CODNUM+"/"+LF_DOC->ANNO+"-"+LF_DOC->NDOC+" del "+LF_DOC->DATADOC END STRING 103 4 @@ -200,22 +202,22 @@ SECTION AGENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_DOC->CODAG FIELD LF_DOC->DATACONS END - NUMBER 105 15 + VALUTA 105 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" FIELD LF_DOC->TOTVALORE + DRIVENBY 103 MESSAGE _ORDINE,VALTABLE,VALORD - PICTURE "." END - NUMBER 106 15 + VALUTA 106 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" FIELD LF_DOC->TOTVALRES + DRIVENBY 103 MESSAGE _ORDINE,VALTABLE,VALRES - PICTURE "." END // Raggruppamento righe stesso documento @@ -242,19 +244,21 @@ SECTION AGENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_DOC->CODAG PROMPT 4 1 "" FIELD LF_RIGHEDOC->DATACONS END - NUMBER 205 15 + VALUTA 205 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" FIELD LF_RIGHEDOC->RIGAVALORE - PICTURE "." + DRIVENBY 203 +// PICTURE "." END - NUMBER 206 15 + VALUTA 206 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" FIELD LF_RIGHEDOC->RIGAVALRES - PICTURE "." + DRIVENBY 203 +// PICTURE "." END STRINGA 207 4 BEGIN @@ -274,7 +278,28 @@ SECTION AGENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_DOC->CODAG KEY "Q.ta Evasa" PROMPT 9 1 "" FIELD LF_RIGHEDOC->QTAEVASA - PICTURE "#@,@@@" + PICTURE "########@,@@@@@" + END + VALUTA 210 13 + BEGIN + KEY "Pr. Scontato" + PROMPT 10 1 "" + MESSAGE _ORDINE,PREZZONS +// PICTURE "." + DRIVENBY 203 + FLAGS "U" + END + NUMBER 211 15 + BEGIN + PROMPT 11 1 "" // Residuo + PICTURE "########@,@@@@@" + MESSAGE _ORDINE,RESIDUO + END + NUMBER 212 15 + BEGIN + PROMPT 12 1 "" // Giacenza attuale + PICTURE "########@,@@@@@" + MESSAGE _ORDINE,GIACENZA END END // END SECTION RIGHEDOC END // END SECTION DOCUMENTI @@ -288,7 +313,7 @@ SECTION AGENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_DOC->CODAG FLAGS "D" // Sezione abilitata se non si stampa per documenti SECTION RIGHEART 1 0 0 FILE LF_RIGHEDOC GROUP CODVAL+CODART+DATACONS - //FLAGS "D" +// FLAGS "D" NUMBER 301 10 BEGIN PROMPT 1 1 "" @@ -317,21 +342,21 @@ SECTION AGENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_DOC->CODAG MESSAGE COPY,404 FLAGS "H" END - NUMBER 305 15 + VALUTA 305 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" FIELD LF_RIGHEDOC->RIGAVALORE MESSAGE _ORDINE,VALTABLE,VALORD|ADD,405 - PICTURE "." + DRIVENBY 303 FLAGS "H" END - NUMBER 306 15 + VALUTA 306 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" FIELD LF_RIGHEDOC->RIGAVALRES - PICTURE "." + DRIVENBY 303 FLAGS "H" MESSAGE _ORDINE,VALTABLE,VALRES|ADD,406 END @@ -359,6 +384,28 @@ SECTION AGENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_DOC->CODAG MESSAGE _ORDINE,CONVUM|ADD,409 FLAGS "H" END + VALUTA 310 13 + BEGIN + KEY "Prezzo non scontato" + PROMPT 10 1 "" + MESSAGE _ORDINE,PREZZONS|COPY,410 + DRIVENBY 303 + FLAGS "HU" + END + NUMBER 311 15 + BEGIN + KEY "Residuo" + PROMPT 11 1 "" + MESSAGE _ORDINE,RESIDUO|_ORDINE,CONVUM|ADD,411 + FLAGS "H" + END + NUMBER 312 15 + BEGIN + KEY "Giacenza attuale" + PROMPT 12 1 "" + MESSAGE _ORDINE,GIACENZA|COPY,412 + FLAGS "H" + END END // END SECTION RIGHEART // Totalizers for previous section @@ -385,20 +432,22 @@ SECTION AGENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_DOC->CODAG PROMPT 4 1 "" //FLAGS "D" END - NUMBER 405 15 + VALUTA 405 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" - PICTURE "." +// PICTURE "." //FLAGS "D" + DRIVENBY 403 GROUP G_TOTALEART END - NUMBER 406 15 + VALUTA 406 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" - PICTURE "." +// PICTURE "." //FLAGS "D" + DRIVENBY 403 GROUP G_TOTALEART END STRINGA 407 4 @@ -424,6 +473,29 @@ SECTION AGENTI 2 1 1 FILE LF_RIGHEDOC GROUP LF_DOC->CODAG //FLAGS "D" GROUP G_TOTALEART END + VALUTA 410 13 + BEGIN + KEY "Pr. non scontato" + PROMPT 10 1 "" +// PICTURE "." + DRIVENBY 403 + FLAGS "U" + GROUP G_TOTALEART + END + NUMBER 411 15 + BEGIN + KEY "Residuo" + PROMPT 11 1 "" + PICTURE "########@,@@@@@" + GROUP G_TOTALEART + END + NUMBER 412 15 + BEGIN + KEY "Giac. attuale" + PROMPT 12 1 "" + PICTURE "########@,@@@@@" + GROUP G_TOTALEART + END END // END SECTION ARTCLI @@ -454,18 +526,20 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 55 15 + VALUTA 55 15 BEGIN KEY "Tot Valore Ordinato per agente" PROMPT 5 1 "" - PICTURE "." +// PICTURE "." + DRIVENBY 53 END - NUMBER 56 15 + VALUTA 56 15 BEGIN KEY "Tot Valore Residuo per agente" PROMPT 6 1 "" - PICTURE "." +// PICTURE "." + DRIVENBY 53 END END // Fine sezione totale in valuta #1 @@ -493,18 +567,20 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 65 15 + VALUTA 65 15 BEGIN KEY "Tot Valore Ordinato per agente" PROMPT 5 1 "" - PICTURE "." +// PICTURE "." + DRIVENBY 63 END - NUMBER 66 15 + VALUTA 66 15 BEGIN KEY "Tot Valore Residuo per agente" PROMPT 6 1 "" - PICTURE "." +// PICTURE "." + DRIVENBY 63 END END // Fine sezione totale in valuta #2 @@ -532,18 +608,20 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 75 15 + VALUTA 75 15 BEGIN KEY "Tot Valore Ordinato per agente" PROMPT 5 1 "" - PICTURE "." +// PICTURE "." + DRIVENBY 73 END - NUMBER 76 15 + VALUTA 76 15 BEGIN KEY "Tot Valore Residuo per agente" PROMPT 6 1 "" - PICTURE "." +// PICTURE "." + DRIVENBY 73 END END // Fine sezione totale in valuta #3 @@ -570,18 +648,18 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 85 15 + VALUTA 85 15 BEGIN KEY "Tot Valore Ordinato per agente" PROMPT 5 1 "" - PICTURE "." + DRIVENBY 83 END - NUMBER 86 15 + VALUTA 86 15 BEGIN KEY "Tot Valore Residuo per agente" PROMPT 6 1 "" - PICTURE "." + DRIVENBY 83 END END // Fine sezione totale in valuta #4 diff --git a/or/or1100d.frm b/or/or1100d.frm index 85d42040a..fc3bf3687 100755 --- a/or/or1100d.frm +++ b/or/or1100d.frm @@ -61,8 +61,8 @@ BEGIN KEY "Codice" PROMPT 1 1 "@B" FIELD LF_RIGHEDOC->CODART - MESSAGE _ORDINE,VALTABLE,RESET - PICTURE "########" + MESSAGE RESET,G_TOTALEART@|_ORDINE,VALTABLE,RESET + MESSAGE RESET,508|RESET,509|RESET,511 END STRING 2 40 @@ -72,7 +72,7 @@ BEGIN SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra" KEY "Descrizione art." PROMPT 2 1 "" - FIELD LF_ANAMAG->DESCR + FIELD LF_RIGHEDOC->DESCR END STRINGA 3 4 @@ -93,21 +93,23 @@ BEGIN PROMPT 4 1 "" END -NUMBER 5 15 +VALUTA BODY_COL_5 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CValore" "Valore" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Valore" + DRIVENBY BODY_COL_3 PROMPT 5 1 "" END -NUMBER 6 15 +VALUTA BODY_COL_6 15 BEGIN SPECIAL STRINGA INTESTAZIONE "@CVal.Residuo" "Val.Residuo" SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "Valore Residuo" + DRIVENBY BODY_COL_3 PROMPT 6 1 "" END @@ -155,7 +157,7 @@ SECTION ARTICOLI 1 0 0 FILE LF_RIGHEDOC GROUP 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 STRING 303 4 @@ -171,24 +173,27 @@ SECTION ARTICOLI 1 0 0 FILE LF_RIGHEDOC GROUP CODVAL+DATACONS KEY "Data consegna articolo" PROMPT 4 1 "" FIELD LF_RIGHEDOC->DATACONS + FIELD LF_DOC->DATACONS MESSAGE COPY,404 FLAGS "H" END - NUMBER 305 15 + VALUTA 305 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" FIELD LF_RIGHEDOC->RIGAVALORE MESSAGE _ORDINE,VALTABLE,VALORD|ADD,405 - PICTURE "." + DRIVENBY 303 +// PICTURE "." FLAGS "H" END - NUMBER 306 15 + VALUTA 306 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" FIELD LF_RIGHEDOC->RIGAVALRES - PICTURE "." +// PICTURE "." + DRIVENBY 303 FLAGS "H" MESSAGE _ORDINE,VALTABLE,VALRES|ADD,406 END @@ -216,6 +221,28 @@ SECTION ARTICOLI 1 0 0 FILE LF_RIGHEDOC GROUP CODVAL+DATACONS MESSAGE _ORDINE,CONVUM|ADD,409 FLAGS "H" END + VALUTA 310 13 + BEGIN + KEY "Prezzo non scontato" + PROMPT 10 1 "" + MESSAGE _ORDINE,PREZZONS|COPY,410 + DRIVENBY 303 + FLAGS "HU" + END + NUMBER 311 15 + BEGIN + KEY "Residuo" + PROMPT 11 1 "" + MESSAGE _ORDINE,RESIDUO|_ORDINE,CONVUM|ADD,411 + FLAGS "H" + END + NUMBER 312 15 + BEGIN + KEY "Giacenza attuale" + PROMPT 12 1 "" + MESSAGE _ORDINE,GIACENZA|COPY,512 + FLAGS "H" + END END // END SECTION ARTICOLI // Totalizers for previous section @@ -242,22 +269,24 @@ DATA 404 10 PROMPT 4 1 "" FLAGS "D" END -NUMBER 405 15 +VALUTA 405 15 BEGIN KEY "Valore Ordinato" PROMPT 5 1 "" - PICTURE "." +// PICTURE "." FLAGS "D" //MESSAGE _ORDINE,VALTABLE,VALORD + DRIVENBY 403 GROUP G_TOTALEART END -NUMBER 406 15 +VALUTA 406 15 BEGIN KEY "Valore Residuo" PROMPT 6 1 "" - PICTURE "." +// PICTURE "." FLAGS "D" //MESSAGE _ORDINE,VALTABLE,VALRES + DRIVENBY 403 GROUP G_TOTALEART END STRINGA 407 4 @@ -265,6 +294,7 @@ STRINGA 407 4 KEY "Unita' di misura" PROMPT 7 1 "" FLAGS "D" + MESSAGE COPY,507 GROUP G_TOTALEART END NUMBER 408 13 @@ -273,6 +303,7 @@ NUMBER 408 13 PROMPT 8 1 "" PICTURE "#@,@@@" FLAGS "D" + MESSAGE ADD,508 GROUP G_TOTALEART END NUMBER 409 13 @@ -281,8 +312,32 @@ NUMBER 409 13 PROMPT 9 1 "" PICTURE "#@,@@@" FLAGS "D" + MESSAGE ADD,509 GROUP G_TOTALEART END +VALUTA 410 13 + BEGIN + KEY "Pr. non scontato" + PROMPT 10 1 "" +// PICTURE "." + DRIVENBY 403 + FLAGS "D" + GROUP G_TOTALEART + END +NUMBER 411 15 + BEGIN + KEY "Residuo" + PROMPT 11 1 "" + PICTURE "########@,@@@@@" + FLAGS "D" + MESSAGE ADD,511 + GROUP G_TOTALEART + END +NUMBER 412 15 + BEGIN + KEY "Giac. attuale" + PROMPT 12 1 "" + END END // SEZIONE ARTMAIN // Sezioni di totalizzazione per Valuta (4, shown & hidden at runtime by VALTABLE messages in application code) @@ -310,19 +365,60 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 55 15 + VALUTA 55 15 BEGIN KEY "Tot Valore Ordinato per cli/fo" PROMPT 5 1 "" - PICTURE "." + DRIVENBY 53 END - NUMBER 56 15 + VALUTA 56 15 BEGIN KEY "Tot Valore Residuo per cli/fo" PROMPT 6 1 "" - PICTURE "." + DRIVENBY 53 END + + STRINGA 507 4 + BEGIN + KEY "Unitá di misura" + PROMPT 7 1 "" + END + + NUMERO 508 15 5 + BEGIN + KEY "Tot Q.ta ordinata" + PROMPT 8 1 "" + PICTURE "########@,@@@@@" + END + + NUMERO 509 15 5 + BEGIN + KEY "Tot Q.ta evasa" + PROMPT 9 1 "" + PICTURE "########@,@@@@@" + END + + VALUTA 510 13 + BEGIN + KEY "Pr. Scontato" + PROMPT 10 1 "" + END + + NUMERO 511 15 5 + BEGIN + KEY "Tot Residuo" + PROMPT 11 1 "" + PICTURE "########@,@@@@@" + END + + NUMERO 512 15 5 + BEGIN + KEY "Tot Giacenza" + PROMPT 12 1 "" + PICTURE "########@,@@@@@" + END + END // Fine sezione totale in valuta #1 @@ -349,18 +445,20 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 65 15 + VALUTA 65 15 BEGIN KEY "Tot Valore Ordinato per cli/fo" PROMPT 5 1 "" - PICTURE "." + DRIVENBY 63 +// PICTURE "." END - NUMBER 66 15 + VALUTA 66 15 BEGIN KEY "Tot Valore Residuo per cli/fo" PROMPT 6 1 "" - PICTURE "." + DRIVENBY 63 +// PICTURE "." END END // Fine sezione totale in valuta #2 @@ -388,18 +486,20 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 75 15 + VALUTA 75 15 BEGIN KEY "Tot Valore Ordinato per cli/fo" PROMPT 5 1 "" - PICTURE "." + DRIVENBY 73 +// PICTURE "." END - NUMBER 76 15 + VALUTA 76 15 BEGIN KEY "Tot Valore Residuo per cli/fo" PROMPT 6 1 "" - PICTURE "." + DRIVENBY 73 +// PICTURE "." END END // Fine sezione totale in valuta #3 @@ -426,18 +526,20 @@ FLAGS "D" PROMPT 4 1 "" END - NUMBER 85 15 + VALUTA 85 15 BEGIN KEY "Tot Valore Ordinato per cli/fo" PROMPT 5 1 "" - PICTURE "." + DRIVENBY 83 +// PICTURE "." END - NUMBER 86 15 + VALUTA 86 15 BEGIN KEY "Tot Valore Residuo per cli/fo" PROMPT 6 1 "" - PICTURE "." + DRIVENBY 83 +// PICTURE "." END END // Fine sezione totale in valuta #4 diff --git a/or/or1200.cpp b/or/or1200.cpp index 9bfd86d6b..6dbb9f1dc 100755 --- a/or/or1200.cpp +++ b/or/or1200.cpp @@ -3,7 +3,29 @@ class TStampa_dettaglio_articoli : public TSkeleton_application { - + TMask *_m; + TOrdine_form + *_frm; + TCodgiac_livelli + *_codgiac; + TTable *_fcg; + TString _fromcodnum, _tocodnum; // Range calcolati automaticamente all'inizio del prg + int _anno; + char _provv; + bool _da_ordinare, // Se TRUE solo gli articoli da ordinare, FALSE tutti. + _detail_mag, _detail_dep, + _giac_eff, _val_comp; + TDate _data_oss; // Data di osservazione + TDate _data_inizio; + TArray _date_array; // Array di date di suddivisione periodi di osservazione + TArray _file; // Array di files da aprire per i malditos TRecord_array + int _periods, + _detail_level; //0..4 0 = Articoli 4 = FCG #4 Maximum detail level + TString _from_art, //ranges + _to_art, + _from_mag, _to_mag, + _from_dep, _to_dep; + TString_array _from_giac, _to_giac; protected: virtual bool create(); virtual bool destroy(); @@ -15,6 +37,39 @@ public: bool TStampa_dettaglio_articoli::create() { + open_files(LF_UMART, LF_OCCAS, LF_CLIFO, LF_INDSP, LF_CFVEN, LF_TABCOM, LF_MAG, 0); + _m = new TMask("or1200a"); + // Reperisce i flags per vedere se e' abilitata la gestione depositi e la gestione livelli di giacenza + // Abilita quindi i campi relativi per la selezione dettaglio deposito/livello di giacenza + TConfig conf(CONFIG_DITTA,"mg"); + bool geslivgiac = conf.get_bool("GESLIVGIAC"); + bool gesdepositi = conf.get_bool("GESDEPOSITI"); + _m->enable(-GR_DEP, gesdepositi); + _m->enable(-GR_GIAC, geslivgiac); + _fcg = new TTable("FCG"); + _codgiac = new TCodgiac_livelli; + if (geslivgiac) // Completa i campi per i livelli di giacenza al fine di poter effettuare le ricerche + { + short id = F_GIAC1; + for (_fcg->first(); _fcg->good(); _fcg->next(), id+=4) + _m->set(id, _fcg->get("CODTAB")); + } + + // Trova gli estremi codice numerazione per tutti i documenti ordine + TTable tip("%TIP"); + TString cod; + for (tip.first(); tip.good(); tip.next()) + { + if (tip.get_int("I1") == 3) // Trattasi di ordine ?? + { + cod = tip.get("CODTAB"); + if (_fromcodnum.empty() || cod < _fromcodnum) + _fromcodnum = cod; + if (cod > _tocodnum) + _tocodnum = cod; + } + } + return TSkeleton_application::create(); } @@ -23,9 +78,213 @@ bool TStampa_dettaglio_articoli::destroy() return TSkeleton_application::destroy(); } +void TStampa_dettaglio_articoli::set_date_array() +{ + TDate dday; + + _date_array.destroy(); + const long ndays = _data_oss - _data_inizio; + const long daysperiod = ndays / _periods; + + dday = _data_inizio; + + for (int i = 0; i < _periods; i++) + { + dday += daysperiod; + if (i == _periods -1) + dday = _data_oss; + _date_array.add(dday); + } +} + +void TStampa_dettaglio_articoli::set_form() +{ + + CHECK(_frm,"Invalid form"); + _frm->set_options(_detail_level, _detail_mag, _detail_dep, _giac_eff, _val_comp, &_date_array); + + // Setta il filtro e l'ordinamento per il cursore del form... + TString lev_str, mag_str, s, filter_expr; + TSorted_cursor* cur = (TSorted_cursor*)_frm->cursor(); + + TDocumento *doc = new TDocumento; // Don't delete it + cur->file().set_curr(doc); + cur->file(LF_RIGHEDOC).set_curr(new TRiga_documento(doc)); + + if (_detail_level > 0) + lev_str.format("LIVELLO[1,%d]",_codgiac->packed_length(_detail_level)); + if (_detail_mag) + mag_str.format("CODMAG[1,3]"); + if (_detail_dep) + mag_str.format("CODMAG"); + s = "CODART|"; + + if (lev_str.not_empty()) + s << lev_str << "|"; + if (mag_str.not_empty()) + s << mag_str << "|"; + s << "CODNUM|ANNO|PROVV|NDOC"; + cur->change_order(s); // Cursor order expression + + TRectype f(LF_RIGHEDOC), t(LF_RIGHEDOC); + if (_anno != 0) + { + f.put(DOC_PROVV, _provv); + f.put(DOC_ANNO, _anno); + } + else + { + s.format("(PROVV==\"%c\") &&", _provv); + filter_expr << s; + } + f.put(DOC_CODNUM, _fromcodnum); + t = f; + t.put(DOC_CODNUM, _tocodnum); + cur->setregion(f,t); // Cursor region + +// TDate oggi(TODAY); + + // Considera solo i documenti con data consegna compresa tra oggi e la data di osservazione + s.format("(ANSI(%d->DATACONS)>=\"%s\")", LF_RIGHEDOC, + (const char*)_data_inizio.string(ANSI)); + filter_expr << s; + s.format("&& (ANSI(%d->DATACONS)<=\"%s\")", LF_RIGHEDOC, + (const char*)_data_oss.string(ANSI)); + filter_expr << s; + + // Setta i range per il codice articolo + if (_from_art.not_empty()) + { + s.format("&&(%d->CODART>=\"%s\")", + LF_RIGHEDOC, (const char*)_from_art); + filter_expr << s; + } + if (_to_art.not_empty()) + { + filter_expr << "&&"; + s.format("(%d->CODART<=\"%s\")", + LF_RIGHEDOC, (const char*)_to_art); + filter_expr << s; + } + // Setta i range per i livelli di giacenza (da 1 a 4) + if (_detail_level > 0) + for (int lev=1, index=0; lev <= _detail_level; lev++) + { + if (!_codgiac->enabled(lev)) + continue; + TString& from = (TString&) _from_giac[index]; + TString& to = (TString&) _to_giac[index++]; + const int starts = _codgiac->code_start(lev); + const int ends = starts+_codgiac->code_length(lev); + if (from.not_empty()) + { + s.format("&&(%d->LIVELLO[%d,%d]>=\"%s\")", + LF_RIGHEDOC,starts,ends,(const char*)from); + filter_expr << s; + } + if (to.not_empty()) + { + s.format("&&(%d->LIVELLO[%d,%d]<=\"%s\")", + LF_RIGHEDOC,starts,ends,(const char*)to); + filter_expr << s; + } + } + // Setta i range per il codice magazzino (deposito incluso) + if (_from_mag.not_empty()) + { + s.format("&&(%d->CODMAG>=\"%s\")", + LF_RIGHEDOC, (const char*)_from_mag); + filter_expr << s; + } + if (_to_mag.not_empty()) + { + s.format("&&(%d->CODMAG<=\"%s\")", + LF_RIGHEDOC, (const char*)_to_mag); + filter_expr << s; + } + if (_da_ordinare) + { + s.format("&&(%d->RIGAEVASA!=\"X\")", LF_RIGHEDOC); + filter_expr << s; + } + + cur->setfilter(filter_expr,TRUE); // Cursor filter expression + + // Una volta settato il cursore del form, pensiamo ai campi del form + // ed alle espressioni delle sottosezioni, le colonne da abilitare etc. etc... + + // Disabilita le colonne in base al numero di periodi da suddividere + for (short id = 4+_periods*2; id <= 15; id++) + { + _frm->find_field('B',odd_page,id).disable(); + _frm->find_field('B',odd_page,id+50).disable(); + } + + + // Fincature & altro + const int hh = 7; + const int fl = printer().formlen(); + + int rows[5]; // Righe orizzontali + rows[0] = hh-4; + rows[1] = hh-2; + rows[2] = hh; + rows[3] = fl-1; + rows[4] = 0; + _frm->genera_intestazioni(odd_page, hh-1); + _frm->genera_intestazione_supplementare(odd_page, hh-3); + _frm->genera_fincatura(odd_page, hh-4, fl-1, rows); +} + void TStampa_dettaglio_articoli::main_loop() { - sorry_box("Programma non ancora implementato."); + while (_m->run()!=K_QUIT) + { + _provv = _m->get(F_PROVV)[0]; + _anno = _m->get_int(F_ANNO); + _data_inizio = _m->get_date(F_DATE_H); + _data_oss = _m->get_date(F_DATAOSS); + _from_mag = _m->get(F_MAGFROM); + _to_mag = _m->get(F_MAGTO); + _from_dep = _m->get(F_DEPFROM); + _to_dep = _m->get(F_DEPTO); + if (_from_mag.not_empty()) + _from_mag.left_just(3); + if (_to_mag.not_empty()) + _to_mag.left_just(3); + _from_mag << _from_dep; + _to_mag << _to_dep; + _from_art = _m->get(F_ARTFROM); + _to_art = _m->get(F_ARTTO); + _from_giac.destroy(); + _to_giac.destroy(); + _from_giac.add(_m->get(F_GIAC1_FROM),0); + _to_giac.add(_m->get(F_GIAC1_TO),0); + _from_giac.add(_m->get(F_GIAC2_FROM),1); + _to_giac.add(_m->get(F_GIAC2_TO),1); + _from_giac.add(_m->get(F_GIAC3_FROM),2); + _to_giac.add(_m->get(F_GIAC3_TO),2); + _from_giac.add(_m->get(F_GIAC4_FROM),3); + _to_giac.add(_m->get(F_GIAC4_TO),3); + _detail_mag = _m->get_bool(F_DETAIL_MAG); + _detail_dep = _m->get_bool(F_DETAIL_DEP); + _detail_level = _m->get_int(F_DETAIL_LEV); + _periods = _m->get_int(F_PERIODS); + _da_ordinare = _m->get(F_RIGHETUTTE) == "O"; + _giac_eff = _m->get_bool(F_GIACEFF); + _val_comp = _m->get_bool(F_VALCOMP); + + set_date_array(); + _frm = new TOrdine_form("or1200a"); + set_form(); + + if (_frm->cursor()->items() > 0) + _frm->print(); + + // Reset mask + _m->reset(); + delete _frm; + } } int or1200(int argc, char** argv) diff --git a/or/or1200a.uml b/or/or1200a.uml index 2ba540c32..8b12569b6 100755 --- a/or/or1200a.uml +++ b/or/or1200a.uml @@ -16,7 +16,7 @@ ENDPAGE PAGE "Disponibilita' articoli" -1 -1 70 16 -GROUPBOX DLG_NULL 40 5 +GROUPBOX DLG_NULL 40 7 BEGIN PROMPT 1 1 "Ordine" END @@ -38,7 +38,7 @@ END NUMBER F_ANNO 4 BEGIN PROMPT 2 2 "Anno " - CHECKTYPE REQUIRED +// CHECKTYPE REQUIRED END LIST F_PROVV 12 @@ -50,15 +50,16 @@ END DATE F_DATE_H BEGIN - FLAGS "AH" - PROMTP 2 4 "" + FLAGS "A" + PROMTP 2 4 "Data iniziale " + CHECKTYPE REQUIRED END DATE F_DATAOSS BEGIN - PROMPT 2 4 "Data osservazione " + PROMPT 2 6 "Data osservazione " VALIDATE DATE_CMP_FUNC >= F_DATE_H - WARNING "La data osservazione deve essere minore della data attuale" + WARNING "La data osservazione deve essere maggiore della data iniziale" END NUMBER F_DETAIL_LEV 1 @@ -86,7 +87,7 @@ END LISTBOX F_PERIODS 1 BEGIN - PROMPT 2 7 "Numero periodi " + PROMPT 2 8 "Numero periodi " ITEM "1|1" ITEM "2|2" ITEM "3|3" @@ -97,9 +98,9 @@ END LIST F_RIGHETUTTE 12 BEGIN - PROMPT 2 8 "Tipo righe ordine " + PROMPT 2 9 "Tipo righe ordine " ITEM "T|Tutte" - ITEM "O|Da ordinare" + ITEM "O|Non evase" END GROUPBOX DLG_NULL 30 4 diff --git a/or/orlib01.cpp b/or/orlib01.cpp index baedabcb9..e0c7f053b 100755 --- a/or/orlib01.cpp +++ b/or/orlib01.cpp @@ -375,12 +375,17 @@ bool TOrdine_form::validate(TForm_item &cf, TToken_string &s) } else if (action == "GIACENZA") - { - TString16 annoes; - annoes << _esercizi->date2esc(doc.get_date(DOC_DATADOC)); - const TString16 codmag(rdoc.get("CODMAG")); // Riferito al magazzino indicato sulla riga... - const TString16 livello(_level > 0 ? rdoc.get(RDOC_LIVELLO) : ""); - const real g = _art_giac->read(rdoc.get(RDOC_CODART)) == NOERR ? _art_giac->disponibilita(annoes, codmag, livello) : ZERO;// Giacenza attuale + { + real g = ZERO; + const TString& codart = rdoc.get(RDOC_CODARTMAG); + if (codart.not_empty() && _art_giac->read(codart) == NOERR) + { + const TDate oggi(TODAY); + TString16 annoes; annoes.format("%04d", _esercizi->date2esc(oggi)); + const TString16 codmag(rdoc.get("CODMAG")); // Riferito al magazzino indicato sulla riga... + const TString16 livello(_level > 0 ? rdoc.get(RDOC_LIVELLO) : ""); + g = _art_giac->disponibilita(annoes, codmag, livello, TRUE); // Giacenza attuale + } cf.set(g.string()); } //Ignore any other command