FWPPC - Puntatore del record - valid - lostfocus

Moderator: Enrico Maria Giordano

FWPPC - Puntatore del record - valid - lostfocus

Postby franz_matrix » Mon Apr 07, 2008 4:10 pm

Ho un piccolo problema , spero che qualcuno possa darmi una mano

ho scritto un piccolo programmino con fwppc, premetto che lo uso da poco , inoltre uso Alaska e non uso harbour , per cui abbiate pazienza. :-)

Il dilemma è questo ho due Get

la prima serve per inserire un codice, all'interno della valid faccio una seek su un archivio aperto prima per stabilire se il codice esiste

dopo con lostfocus , cerco di assegnare alla seconda Get il valore della descrizione del record a cui sto puntando, stranamente però il puntatore è tornato all'inizio dell'archivio.

Come mai ? cos'è che ingnoro, forse il codeblock lostfocus è un thread è gestisce si gli archivi aperti , ma i puntatori ripartano da capo, se provo a rifare la seek nel blocco, non funziona più la valid

Posto un pezzettino del mio "bruttissimo" prg :-)

use magazi new

@ 1, 1 GET oVARGET[1] VAR mtMATRICE[1,1] SIZE 65,15 PICTURE "XXXXXXXXXX"; // ,oDESCRI:REFRESH()
VALID IF( MAGAZI->(DBSEEK(mtMATRICE[1,1])),(.t. ),( msgINFO("NON TROVATO"),.f.)) OF oScroll PIXEL RIGHT //

oVarGet[1]:bLostFocus = { ||oDescri:varput(magazi->descri),oDescri:REFRESH() }

@ 1, 70 GET oDESCRI VAR cDESCRI1 PIXEL OF oScroll SIZE 120,15

Grazie in anticipo per l'aiuto
franz_matrix
 
Posts: 18
Joined: Wed Feb 20, 2008 2:51 pm

lostfocus

Postby franz_matrix » Mon Apr 07, 2008 6:17 pm

aggiungo

partendo dal presupposto che Lostfocus è eseguito dopo la valid, come mai nel blocco il valore oVARGET:value() è quello originale , iniziale e non quello digitato dall'utente ?

Grazie
franz_matrix
 
Posts: 18
Joined: Wed Feb 20, 2008 2:51 pm

Re: lostfocus

Postby Enrico Maria Giordano » Tue Apr 08, 2008 6:39 am

Prova a mettere oVARGET[1]:Assign() come prima chiamata nella VALID.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8696
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Maurizio » Tue Apr 08, 2008 7:02 am

Prova Questo

Maurizio

www.nipeservice.com


//----------------------------------------------------------------------------//

function Main()

local oWnd, oFont
local cName1 := space(10)
local cName2 := space(30)
Local oGet1,oGet2


use
USE ( CurDir() + "\Customer" ) NEW
index ON field->FIRST to "FIRST"

DEFINE WINDOW oWnd TITLE "Test"


@ 6, 2 GET oGet1 VAR cName1 SIZE 50, 20 ;
VALID iif(dbseek(cName1,.T.), (cName2 := field->LAST,oGet2:Refresh(),.T.) , (MSGINFO("Non Trovato") , .F. ) )
@ 8, 2 GET oGet2 VAR cNAme2 SIZE 120, 20

@ 12, 2 BUTTON "&End" SIZE 60, 30 ACTION oWnd:End()

ACTIVATE WINDOW oWnd

USE

return nil
User avatar
Maurizio
 
Posts: 823
Joined: Mon Oct 10, 2005 1:29 pm

grazie

Postby franz_matrix » Tue Apr 08, 2008 10:00 am

Vi ringrazio della gentilezza, provo subito le vostre soluzioni e faccio sapere l'esito
franz_matrix
 
Posts: 18
Joined: Wed Feb 20, 2008 2:51 pm

GRAZIE

Postby franz_matrix » Tue Apr 08, 2008 10:43 am

Grazie ai vostri consigli funziona sia la soluzione di Maurizio sia quella di Emg.

Siete Super

quando potete mi togliete qualche altro dubbio ?

io credevo di poter mettere le istruzioni di chiusura archivi dopo
ACTIVATE WINDOW, poi mi sono accorto mettendo un MSGINFO che vengono eseguite sin dall'inizio anche quelle, per esser certo che gli archivi vengano chiusi quando l'utente esce della funzione dovrei bloccare l'uscita forzata di chiusura finestra ed obbligare a chiudere con dei bottoni in modo da poter pilotare la corretta chiusura della funzione e degli archivi. Giusto ??? Devo togliere i pulsanti chisura ed iconizza ??
ho osservato che l'esempio di Maurizio ha la USE dopo ACTIVATE WINDOW e pensavo che il bottone obbligasse ad eseguirla alla chiusura dell'oggetto, ma a me ha chiuso l'archivio e quindi è andato in errore, mi manca sicuramente qualche concetto.

Xbase infatti non esegue le istruzioni dopo la creazione dell'oggetto, se non dopo la sua distruzione.

fwppc ha problemi con l'uso di dbselectarea() e ordlistadd() ??? Io le sto usando ed apparente è ok ma vorrei una conferma, sapete sto cercando comunque di recuperare il codice scritto con Alaska Xase

Grazie ancora a tutti e due per il vostro tempo

Franz
franz_matrix
 
Posts: 18
Joined: Wed Feb 20, 2008 2:51 pm

Re: GRAZIE

Postby Enrico Maria Giordano » Tue Apr 08, 2008 4:46 pm

franz_matrix wrote:io credevo di poter mettere le istruzioni di chiusura archivi dopo ACTIVATE WINDOW, poi mi sono accorto mettendo un MSGINFO che vengono eseguite sin dall'inizio anche quelle


Sì, a parte la main window che è modale, tutte le altre window sono non modali. Anche le dialog sono modali tranne quando specifichi la clausola NOMODAL. Per le finestre non modali devi mettere quindi il codice che vuoi eseguire alla chiusura non dopo la ACTIVATE ma nella clausola VALID.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8696
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: GRAZIE

Postby Enrico Maria Giordano » Tue Apr 08, 2008 4:47 pm

Ops, dimenticavo che stiamo parlando di FWPPC. La cosa potrebbe essere leggermente diversa ma dovrebbe restare valido il suggerimento della clausola VALID.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8696
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: GRAZIE

Postby Enrico Maria Giordano » Tue Apr 08, 2008 4:48 pm

franz_matrix wrote:fwppc ha problemi con l'uso di dbselectarea() e ordlistadd() ???


Non mi risulta.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8696
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

grazie

Postby franz_matrix » Tue Apr 08, 2008 11:57 pm

EMG ti ringrazio ancora delle informazioni

mi dispiace di non poter contracambiare per ora, spero di diventare + bravo :-)

per ora ho reso funzionante , anzi abbiamo reso :-) ...


FOR K = 1 TO 10
cVARCODICE:="mtMATRICE[" + ALLTRIM(STR(K)) + ",1]"
cVARDESCRI:="mtMATRICE[" + ALLTRIM(STR(K)) + ",2]"
cVARQUANTI:="mtMATRICE[" + ALLTRIM(STR(K)) + ",3]"
cBLOCCO:="{|| ESISTE_ARTICOLO2('" + RTRIM(mtMATRICE[K,1]) + "'," + ALLTRIM(STR(K)) + ",oGET)}"
@ nRIGA, 1 GET oVARGET[K] VAR &cVARCODICE SIZE 40,15 PICTURE "XXXXXXXXXX" OF oScroll PIXEL RIGHT ;
VALID EVAL(&cBLOCCO)

@ nRIGA, 40 GET oGET[K] VAR &cVARDESCRI PIXEL OF oScroll SIZE 110,15

@ nRIGA,150 GET &cVARQUANTI SIZE 50, 15 PICTURE "@E 9999" OF oScroll PIXEL RIGHT
nRIGA+=16
NEXT

purtroppo ho un'altra domanda FWPPC come si complorta con le stampe

io dovrei stampare dal palmare su una stampante condivisa in rete, c'è una classe per le stampe, si puo' procedere con le semplici istruzioni di Clipper ....
non mi dire che posso fare SET DEVICE TO PRINT
ho letto nel forum un certo CREATEFILE() ma non ho trovato informazioni nell'help.

Spero che con FWPPC non si debba stampare solo su stampanti bluetooth

grazie ancora
franz_matrix
 
Posts: 18
Joined: Wed Feb 20, 2008 2:51 pm

Postby Maurizio » Wed Apr 09, 2008 6:26 am

Per la stampa diretta puoi usare bluetooth , altrimenti puoi inviando dei file ad un PC ( con un programma che sta sempre in attesa ) che li elabora e li stampa .
Oppure c'è una libreria ( abbastanza costosa ) che ti permette di creare ed eseguire delle stampe direttamente da palmare

Maurizio
www.nipeservice.com
User avatar
Maurizio
 
Posts: 823
Joined: Mon Oct 10, 2005 1:29 pm

stampa

Postby franz_matrix » Wed Apr 09, 2008 11:53 am

grazie maurizio

per la stampa tramite bluetooth , qual'è la classe di stampa o le istruzioni messe a disposizione da FWPPC

franz
franz_matrix
 
Posts: 18
Joined: Wed Feb 20, 2008 2:51 pm

Postby Maurizio » Wed Apr 09, 2008 12:49 pm

Non è una classe

vedi il file di esempio BLUETOTH.PRG

Maurizio
www.nipeservice.com
User avatar
Maurizio
 
Posts: 823
Joined: Mon Oct 10, 2005 1:29 pm


Return to All products support

Who is online

Users browsing this forum: No registered users and 3 guests