From e0db1da9f1e716dfa661a28775472ec824808c5b Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 9 Jun 2011 14:02:40 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@22248 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ps/ps0430300.cpp | 19 ++++++++++++++---- ps/ps1002100.cpp | 29 +++++++++++++++++++++------ ps/ps1002100a.h | 12 +++++++----- ps/ps1002100a.uml | 50 +++++++++++++++++++++++++++++++++++------------ 4 files changed, 82 insertions(+), 28 deletions(-) diff --git a/ps/ps0430300.cpp b/ps/ps0430300.cpp index c79c1af83..c80aa65cc 100755 --- a/ps/ps0430300.cpp +++ b/ps/ps0430300.cpp @@ -509,6 +509,8 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon if (e == fe_modify) { int found = -1; + bool non_esiste = true; + const TString& selected_codart = o.get(); //ricerca sui codici articolo in anagrafica possibili (sono quelli sullo sheet) TSheet_field& sf_righe = sfield(F_ARTICLES); @@ -521,6 +523,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon break; } } + //se non lo pesca in anagrafica tenta con i codici articolo fornitore (CODCORR_CODARTALT) if (found < 0) { FOR_EACH_SHEET_ROW(sf_righe, r, row) @@ -535,6 +538,7 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon recset.set_var("#CODARTALT", selected_codart); recset.set_var("#CODART", riga_codart); const int items = recset.items(); + //usando la chiave 1 -> items puo' essere 1 o 0 per ogni riga dello sheet if (items == 1) { if (found < 0) @@ -544,19 +548,26 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon error_box(FR("Il codice %s puo' riferirsi alle righe %d e %d!\nRisolvere l'ambiguita' in anagrafica articoli."), (const char*)selected_codart, found + 1, r + 1); found = -1; + non_esiste = false; break; } - } - } - } + } //if(items==1... + } //FOR_EACH_SHEET_ROW(sf_righe,... + } //if(found<0... + //ha trovato l'articolo nello sheet e si posiziona sulla sua riga if (found >= 0) { - //quando trova la riga con l'articolo corrispondente -> si posiziona sulla qta + //si posiziona sulla qta const int column = sf_righe.cid2index(F_QTA); sf_righe.select(found, column, true); sf_righe.set_focus(); } + else //se non l'ha trovato -> segnala che l'articolo selezionato non esiste nello sheet + { + if (non_esiste) + error_box(TR("L'articolo %s selezionato non esiste nella lista"), (const char*)selected_codart); + } } break; diff --git a/ps/ps1002100.cpp b/ps/ps1002100.cpp index e6bd5c055..3122bad38 100755 --- a/ps/ps1002100.cpp +++ b/ps/ps1002100.cpp @@ -95,8 +95,8 @@ TDoc_cache::TDoc_cache(const char* codnum, const char* tipodoc, const TDate& dat class TEdit_rdocs_mask : public TAutomask { int _pos_art, _pos_desc, _pos_um, _pos_qta, _pos_qtaev, _pos_prz, _pos_iva, _pos_lav, _pos_col, - _pos_dtprd_lav, _pos_qtaprd_lav, _pos_dtprd_col, _pos_qtaprd_col, _pos_num, _pos_anno, - _pos_provv, _pos_ndoc, _pos_nrig, _pos_desiva, _pos_deslav, _pos_descol; + _pos_dtprd_lav, _pos_qtaprd_lav, _pos_dtprd_col_1, _pos_qtaprd_col_1, _pos_dtprd_col_2, _pos_qtaprd_col_2, + _pos_num, _pos_anno, _pos_provv, _pos_ndoc, _pos_nrig, _pos_desiva, _pos_deslav, _pos_descol; protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); @@ -126,8 +126,10 @@ TEdit_rdocs_mask::TEdit_rdocs_mask() : TAutomask ("ps1002100a") _pos_dtprd_lav = sf_righe.cid2index(S_DATAPROD_LAV); _pos_qtaprd_lav = sf_righe.cid2index(S_QTAPROD_LAV); _pos_col = sf_righe.cid2index(S_COLORE); - _pos_dtprd_col = sf_righe.cid2index(S_DATAPROD_COL); - _pos_qtaprd_col = sf_righe.cid2index(S_QTAPROD_COL); + _pos_dtprd_col_1 = sf_righe.cid2index(S_DATAPROD_COL_1); + _pos_qtaprd_col_1 = sf_righe.cid2index(S_QTAPROD_COL_1); + _pos_dtprd_col_2 = sf_righe.cid2index(S_DATAPROD_COL_2); + _pos_qtaprd_col_2 = sf_righe.cid2index(S_QTAPROD_COL_2); _pos_num = sf_righe.cid2index(S_CODNUM); _pos_anno = sf_righe.cid2index(S_ANNO); _pos_provv = sf_righe.cid2index(S_PROVV); @@ -188,11 +190,11 @@ bool TEdit_rdocs_mask::on_field_event(TOperable_field& o, TField_event e, long j o.mask().set(S_QTAPROD_LAV, qta); } break; - case S_DATAPROD_COL: + case S_DATAPROD_COL_1: if (e == fe_modify) { const real qta = o.mask().get(S_QTA); - o.mask().set(S_QTAPROD_COL, qta); + o.mask().set(S_QTAPROD_COL_1, qta); } break; @@ -224,6 +226,21 @@ bool TEdit_rdocs_mask::on_field_event(TOperable_field& o, TField_event e, long j fill_sheet(); } break; + case DLG_USER: + if (e == fe_button) + { + TSheet_field& sf_righe = sfield(F_RIGHE); + TMask& mask_riga = sf_righe.sheet_row_mask(jolly); + + TRectype doc(LF_DOC); + doc.put(DOC_PROVV, 'D'); + doc.put(DOC_ANNO, mask_riga.get_int(S_ANNO)); + doc.put(DOC_CODNUM, mask_riga.get(S_CODNUM)); + doc.put(DOC_NDOC, mask_riga.get_long(S_NDOC)); + + doc.edit(); + } + break; default: break; } diff --git a/ps/ps1002100a.h b/ps/ps1002100a.h index 521ffce7f..e5799690b 100755 --- a/ps/ps1002100a.h +++ b/ps/ps1002100a.h @@ -31,11 +31,13 @@ #define S_DATAPROD_LAV 112 #define S_QTAPROD_LAV 113 #define S_COLORE 114 -#define S_DATAPROD_COL 115 -#define S_QTAPROD_COL 116 -#define S_CODNUM 117 -#define S_ANNO 118 -#define S_PROVV 119 +#define S_DATAPROD_COL_1 115 +#define S_QTAPROD_COL_1 116 +#define S_DATAPROD_COL_2 117 +#define S_QTAPROD_COL_2 118 +#define S_CODNUM 119 +#define S_ANNO 120 +#define S_PROVV 121 #define S_DESMAG 133 #define S_DESIVA 140 diff --git a/ps/ps1002100a.uml b/ps/ps1002100a.uml index 07241f0c0..39c652335 100755 --- a/ps/ps1002100a.uml +++ b/ps/ps1002100a.uml @@ -240,17 +240,23 @@ TOOLBAR "topbar" 0 -3 0 3 BUTTON DLG_OK 10 2 BEGIN - PROMPT -13 -11 "" + PROMPT -14 -11 "" END BUTTON DLG_DELREC 10 2 BEGIN - PROMPT -23 -11 "" + PROMPT -24 -11 "" END BUTTON DLG_CANCEL 10 2 BEGIN - PROMPT -33 -11 "" + PROMPT -34 -11 "" +END + +BUTTON DLG_USER 10 2 + BEGIN + PROMPT -44 -11 "Collega" + PICTURE BMP_LINK END ENDPAGE @@ -400,6 +406,8 @@ END NUMBER S_QTAPROD_LAV 13 5 BEGIN PROMPT 1 9 "Qta prod. Lav. " + VALIDATE 14 1 IF(#S_DATAPROD_LAV=0,0,IF(S_QTAPROD_LAV=0,#S_QTA,#S_QTAPROD_LAV)) + DRIVENBY S_DATAPROD_LAV FIELD QTAGG2 END @@ -427,54 +435,70 @@ BEGIN COPY OUTPUT S_COLORE END -DATA S_DATAPROD_COL +DATA S_DATAPROD_COL_1 BEGIN - PROMPT 1 11 "Data prod. Col. " + PROMPT 1 11 "Data prod. Col.1" FIELD DATACONS END -NUMBER S_QTAPROD_COL 13 5 +NUMBER S_QTAPROD_COL_1 13 5 BEGIN - PROMPT 1 12 "Qta prod. Col. " + PROMPT 1 12 "Qta prod. Col.1 " + VALIDATE 14 1 IF(#S_DATAPROD_COL_1=0,0,IF(#S_QTAPROD_COL_1=0,#S_QTA,#S_QTAPROD_COL_1)) + DRIVENBY S_DATAPROD_COL_1 FIELD QTAGG1 END +DATA S_DATAPROD_COL_2 +BEGIN + PROMPT 1 13 "Data prod. Col.2" + FIELD CODAGG1 +END + +NUMBER S_QTAPROD_COL_2 13 5 +BEGIN + PROMPT 1 14 "Qta prod. Col.2 " + VALIDATE 14 1 IF(#S_DATAPROD_COL_2=0,0,IF(#S_QTAPROD_COL_2=0,(#S_QTA-#S_QTAPROD_COL_1),#S_QTAPROD_COL_2)) + DRIVENBY S_DATAPROD_COL_2 + FIELD QTAGG3 +END + GROUPBOX DLG_NULL 76 3 BEGIN - PROMPT 1 13 "@bChiave riga" + PROMPT 1 15 "@bChiave riga" END STRING S_CODNUM 4 BEGIN - PROMPT 2 14 "Num. " + PROMPT 2 16 "Num. " FLAGS "D" FIELD CODNUM END NUMBER S_ANNO 4 BEGIN - PROMPT 13 14 "Anno " + PROMPT 13 16 "Anno " FLAGS "D" FIELD ANNO END STRING S_PROVV 1 BEGIN - PROMPT 24 14 "P " + PROMPT 24 16 "P " FLAGS "D" FIELD PROVV END NUMBER S_NDOC 7 BEGIN - PROMPT 29 14 "N.doc. " + PROMPT 29 16 "N.doc. " FLAGS "D" FIELD NDOC END NUMBER S_NRIGA 3 BEGIN - PROMPT 46 14 "N.Riga " + PROMPT 46 16 "N.Riga " FLAGS "D" FIELD NRIGA END