Newsgroup: it.comp.lang.vo-clipper
Titolo: :Setfilter(codblock) : Piu' incasinato di cosi non si può

 Comprendere certi orientamenti, che scaturiscono da elementi di per sè
facili da comprendere ma che nel contempo hanno risultati visivi non uguali
a quelli investigati fanno incazzare tremendamente ecco perchè affermo che
le cose e meglio farle con criterio e se non pretendo molto, con un buon
99,9% di risultato positivo altrimenti e meglio starsene a casa con il
caminetto acceso la mogliettina che ti prepara un buon pranzetto e la
figlioletta che fa dimenticare un pò tutto quello che ti ha fatto incazzare
cosi tanto VO 2.5 il grande erede del Vo1(il padre pazzo), perchè di buono
c'è solo un buon brandy dopo il pranzetto il Brandy Vo 2.0.
Certo le novità sono belle soprattutto se funzionano e soprattutto se non
incasinano quello che di buono già si ha.
Comunque, illuminatemi se potete ( le cose facili da comprendere) :
 A)             method SubMitFilter() AnaBrowse
                  //
                  local oObj   as AnaBrowse
                  local lSuccess as logic
                  //
                 oObj   := SELF
                 lSuccess:=FALSE
                 // lSuccess risulta TRUE
                 if (lsuccess := Self:XSubForm:SerVer:SetFilter({||
oObj:IsFilter() }, 'oObj:IsFilter()'))
                     Self:XSubForm:SerVer:GoTop()
                 endif
                 return( lsuccess )
                 //
                 method IsFilter() Class AnaBrowse
                 self:Caption := astring(Self:XSubForm:SerVer:RecNo)+'
'+Self:XSubForm:SerVer:Filter
                 return( TRUE )
                  Il filtro funziona solo nel momento in cui si Setta,
tant'è che il RecNo risulta essere sempre lo stesso negli spostamenti, devo
usare per forza maggiore il codeblock perchè devo leggere il field del
database che devono essere convalidati in altri server associati, con dei
seek etcc.....
                  Perchè non funziona??????????????????????
B) il debugger non si posiziona sulla riga e sul metodo o funzione o
procedura in cui si è verificato l'errore.
    Perchè?????????????????
C)Spesso devo resettare il sistema nonostante faccio attenzione a non
chiudere l'applicazione dal debugger, perchè, nonostante che non sia
visibile nei task è presente l'applicazione che sto testando.
Sono queste ed altre le cose che mi fanno incazzare, 820.000 +Iva, per
apportare migliorie (velocità, interfaccia, sicurezza sui dati)e si perdono
giorni senza concludere un granchè perchè magari il prodotto ha bisogno di
essere testato da chi lo usa, loro ci quadagnano ma noi per dire voi o gli
altri perdiamo in salute, perchè quando si lavora senza soddisfazione e
meglio ......
Scusaaaaaaaaateeeeeeeeeeeemiiiiiiiiiiiiiiii.
Se potete illuminatemi, altrimenti thank you .
Luigi De Palma

 Scusaaaaaaaaateeeeeeeeeeeemiiiiiiiiiiiiiiii.
IO PENSO CHE TU NON ABBIA TUTTI I TORTI, ANZI......HAI RAGIONE!........ MA
SAPPI CHE NON SUCCEDE SOLO IN QUESTO AMBIENTE, PENSA CHE COSA RILASCIA LA
MICROSOFT ........ HAI FORSE DIMENTICATO LA PRIMA USCITA DI WINDOWS 95? E
GLI ERRORI DI EXCEL E I SCARSI LIVELLI DI SICUREZZA CHE ESISTEVANO SU
WINDOWS NT E................?
IO HO CREATO UN APPLICAZIONE NUOVA SU CAVO25  E FUNZIONA A MERAVIGLIA, (PER
ORA). ANCHE SE, DEVO ESSERE SINCERO, NON HO ANCORA USATO NULLA DELLE NOVITA'
PRESENTI!
IO NON HO PIU' VOGLIA DI INCAZZARMI COME FAI TE SEMPLICEMENTE PERCHE'
L'UNICO A RIMETTERCI SEI PROPRIO TU, NON CREDI?
SALUTI
ROBERTO


NON LO SO!!!!!!!!!!!!!!!!!!!!!!
Sei sicuro che hai fatto tutto giusto e é tutto male VO?
Per esempio non si devono usare locals in codeblock!
Tu dici: >> Il filtro funziona solo nel momento in cui si Setta,
Logico, perché dove il codeblock puó trovare >> local oObj << dopo che la
method SubMitFilter é finita?
Stefan

oObj:IsFilter() }, 'oObj:IsFilter()'))
Hai provato  mettere questa riga cosě
                 if (lsuccess := ;
Self:XSubForm:SerVer:SetFilter({|oObj|oObj:IsFilter()};
		))
Ma ISFILTER  č una funzione che hai scritto tu? 
NB.Io utilizzo ancora VO2
Antonello.

per me e'piu' difficile comprendere perche' bisogna sempre cercare di
complicare le cose semplici. Forse per potersi incazzare e poi godersi
di piu' moglie e filgia?
Scherzi a parte, da quello che sembra, tu usi la setfilter solo per
visualizzare qualcosa nel capttion della finestra ogni volta che ti
sposti di record.
Allora, perche' non usare il metodo Notify che e' fatto appposta?
METHOD Notify(kNotifyName, kNotifyMessage) CLASS <finestra>
	Super:Notify(kNotifyName, kNotifyMessage)
	IF kNotifyName = NOTIFYGOTOP .OR.;
		kNotifyName = NOTIFYGOBOTTOM .OR.;
		kNotifyName = NOTIFYRECORDCHANGE
		self:Caption := <quello che devi visualizzare>
	ENDIF
Prova cosi'
Ciao
-----------------------------
Fabio Cresta
EDP Consultant & VO/Jasmine developer ITALY
President of Clipper/Visual Objects/Jasmine User Group Italy
e-mail: 
fcr...@tin.it
 
fcr...@windevs.com
web: 
http://www.windevs.com
------------------------------

Se mi consentite:
    ho un server chiamato , nominativi dove ci sono i field comuni (ma non
presenti negli altri)ad altri server ( clienti, fornitori, agenti,
vettori,banche etcc....), tipo Field
Ragione sociale , indirizzo, città etcc...
    ho necessità di usare il codeblock nel setfilter in quanto, visualizzo
le proprietà dei fields generali che risiedono nel server nominativi, che a
sua volta è condizionato dagli altri server associati e cioè:
     mi spiego
    Apro i server : oNominativi, oClienti, oFornitori
          method SubmitFilter() Class AnaBrowse
          //
          local oMethod as object
          local oFilter     as CodeBlock
          //
          oMethod := SELF
          oFilter     :=  {||oMethod:IsValidRecord}
          //
          // Non funziona Il filtro come Ovviare???????????????????
          //
          if   (lSuccess := oNominativi:SetFilter( oFilter ))
               oNominativi:GoTop()
               Self:oSubform:SerVer:Use( oNominativi)
          else
             self:EndWindow( TRUE )
          endif
          //
          return( lSuccess )
          //
          access  IsValidRecord  Class Anabrowse
          //
          local lValid  := FALSE as Logic
          //
          if   (self:nCodAgente > 0)
               oClienti:Seek( Self:nCodAgente )
               lValid  := (oClienti:Found .and. !oClienti:Deleted)
          endif
          return(lValid )
          Spero aver spiegato il motivo perchè devo usare un codeblock nel
filter in
cui ci sia una referenza dell'oggetto di appartenenza, una delle soluzioni
sarebbe quella di usare dei server temporanei per poi riempirli al momento
della richiesta, una soluzione sicuramente poco pratica e bella da vedere
perchè richiederebbe tempo in più man mano che il server nominativi si
riempie.
           Per quanto riquarda il debugger che non si posiziona sulla
funziona o method e sulla procline() di rifeirmento quando l'applicazione va
in errore il settaggio del debugger per il .aef .or. mef è true percui se
potete datemi un'altra spiegazione considerando che a voi funziona nel modo
in cui dovrebbe.
           Grazie di ogni Vs/buon suggerimento.
           A proposito vorrei conoscere qualche considerazione sul supporto
tecnico, quale Open Team o CAI, tanto richiamato in evidenzia dal buon Fabio
( mi sembra anche un pO' giusto)
           Comunque vada sarà un successo, speriamo.
           Hi..................

           // Non funziona Il filtro come Ovviare???????????????????
