Search  
Monday, October 26, 2020 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Tema pentru acasa  Ajutor...
 Ajutor
 
 10/26/2011 6:23:00 PM
User is offlineDj
37 posts


Ajutor
 (N/A)
Sall,am o problema cu o verificare daca poate cineva sa ma ajute:am un textbox unde bag niste date de tip caracter,vreau sami zica cineva cum as putea sa-mi verifice daca in texbox ii caracter sa mearga mai departe daca ii cifra sami daie eroare.Inca ceva la afisare afisez intr-un MESSAGEBOX() toate campurile numa ca nu pot ca urmatoarea linie sa o ea de la capat sa le puie intro ordine placuta la vedere,mie imi pune cu spatiu intre ele si daca scriu un sir mai lung arata ca "sarpele".Am incercat ceva de genu:MESSAGEBOX("Nume: "+(thisform.txt1.Value)+SPACE(100)+"Prenume: "+(thisform.txt2.Value)),SPACE ma ajuta da putin tare ca sa fac o ordine pe acolo dar cand bag un sir mai mare se duce aiurea si nu ii placut si afiseaza in messagebox ceva de genu Nume:Ionescu si spatiu spatiu spatiu,dupa care urmeaza celalt id.Am incercat cu /n sau \n sau / nu merge in contextul messagebox(("Nume: "+(thisform.txt1.Value)+\n+ sau fara + numa \n sau / "Prenume: "+(thisform.txt2.Value))nu merge. Ma puteti ajuta...
 10/26/2011 8:13:52 PM
User is offlinemgabi
1094 posts
1st


Re: Ajutor
 (N/A)
1.Daca ai doar doar litere,poti sa folosesti InputMask , "AAAAAA" inseamna 6 caractere(doar litere), sau proprietatea Format unde treci "A", adica accepta numai caractere.
Daca si si spatii sau altele, poti folosi metoda InteractiveChange si acolo sa testezi de ex. cu isdigit() sau in metoda Valid, tot cu isdigit() (trebuie verificata intr-un ciclu fiecare pozitie din sirul de caractere) .
De ex:
nNrcifre=0
for i=1 to len(this.value)
   nNrcifre=nNrcifre+IIF(ISDIGIT(SUBSTR(this.value,i,1)),1,0)
endfor

.... nNrcifre iti va returna nr-ul de cifre gasite

sau altfel:

lcorect=.t.
for i=1 to len(this.value)
   lcorect=lcorect and  !ISDIGIT(SUBSTR(this.value,i,1))
endfor
......... la sfarsit lcorect este true daca ai doar caractere in sirul respectiv

2. La linie noua in messagebox treci cu chr(13) sau chr(13)+chr(10)  ... adica CR+LF



 10/26/2011 9:01:47 PM
User is offlineDj
37 posts


Re: Ajutor
 (N/A)
1.Am incercat codu scris de tine la valid si interactivechange nu merge si am pus un messagebox() nu trece mai departe la urmatorul textbox imi arata acelasi mesaj "eror". Am pus in InteractiveChange: lcorect=.t. for i=1 to len(this.value) lcorect=lcorect and !ISDIGIT(SUBSTR(this.value,i,1)) endfor Messagebox("eror") Ce nu fac bn,is incepator... Iar cu chr(13) a mers,ms pentru inca un lucru invatat.Sper sa ma ajutati.Alin,Suceava
 10/26/2011 9:15:14 PM
User is offlinemgabi
1094 posts
1st


Re: Ajutor
 (N/A)
Asta trebuie sa pui in Valid, daca vrei sa nu te lase sa treci la urmatorul camp.

lcorect=.t.
for i=1 to len(this.value)
   lcorect=lcorect and  !ISDIGIT(SUBSTR(this.value,i,1))
ENDFOR
IF !lcorect
    MESSAGEBOX('Ai cifre in text')
    RETURN 0
ELSE
    RETURN .t.
ENDIF

In acest caz nu prea mai este necesar in InteractivChange testul , mai bine il anunti doar la sfarsit ca este si o cifra pe undeva si nu-l lasi sa treaca mai departe.
Asta ca sa nu "munceasca" la fiecare apasare de tasta
 10/26/2011 9:28:04 PM
User is offlineDj
37 posts


Re: Ajutor
 (N/A)
Multumesc frumos de acuma pot sa trec mai departe ma gandeam la un if da nu stiam cum sal fac,ms.
 10/27/2011 3:50:58 AM
User is offlineDj
37 posts


Ajutor
 (N/A)
Imi poate zice cineva de ce la messagebox buttonul cancel din proprie lui stare nu functioneaza adica am facuta asa:Messagebox("Nume:"+(thisform.txtnume.value),1) cand dau camcel imi baga in tabel ar trebuii sa numi bage am incercat si asa: #DEFINE IDYES 6 #DEFINE MBOKCancel 1 #DEFINE WARNING 48 SET DELETED ON SET TALK OFF IF IDYES = Messagebox("Eşti sigur?", MBOKCancel+WARNING, "Date") THEN insert into (nume)values(thisform.txtnume.value) thisform.Refresh() ENDIF si tot imi baga.Help please....
 10/27/2011 4:22:42 AM
User is offlineDj
37 posts


Re: Ajutor
 (N/A)
 Dj wrote
Imi poate zice cineva de ce la messagebox buttonul cancel din proprie lui stare nu functioneaza adica am facuta asa:Messagebox("Nume:"+(thisform.txtnume.value),1) cand dau camcel imi baga in tabel ar trebuii sa numi bage am incercat si asa: #DEFINE IDYES 6 #DEFINE MBOKCancel 1 #DEFINE WARNING 48 SET DELETED ON SET TALK OFF IF IDYES = Messagebox("Eşti sigur?", MBOKCancel+WARNING, "Date") THEN insert into (nume)values(thisform.txtnume.value) thisform.Refresh() ENDIF si asa numi baga da nu ii bun ca eu vreau sami bage cand dau ok si dau cacenl nu.Help please....
 10/27/2011 9:57:32 AM
User is offlinemmarius28
327 posts
3rd


Re: Ajutor
 (N/A)
Butonul OK intoarce valoarea 1, nu 6 (IDYES).
Butonul YES intoarce valoarea 6.


Ar trebui sa fie:
IDYES = 6
MBYESNO = 4
WARNING = 48


if IDYES = Messagebox("Eşti sigur?", MBYESNO+WARNING, "Date")
...
endif
 10/27/2011 11:10:45 PM
User is offlineDj
37 posts


Ajutor
 (N/A)
Am incercat codu si imi spune missing operand si daca nu pun egal la cele trei numi mai da eroarea da in schimb numi face nimik adica cand dau ok numi imi baga in tabel sau invers,care ar fi problema..nu vrea sa mearga!
 10/28/2011 1:28:04 AM
User is offlineDj
37 posts


Re: Ajutor
 (N/A)
HELP?...
 10/28/2011 3:39:29 PM
User is offlineDj
37 posts


Re: Ajutor
 (N/A)
ma poate ajuta cineva in legatura cu problema mea .........
 10/28/2011 4:48:03 PM
User is offlinemmarius28
327 posts
3rd


Re: Ajutor
 (N/A)
 Dj wrote
ma poate ajuta cineva in legatura cu problema mea .........

Posteaza codul care iti da eroare.
 10/28/2011 4:48:13 PM
User is offlineGrigore Dolghin
4001 posts
www.class-software.ro
1st






Re: Ajutor
 (N/A)
Ia pune tu codul aici, sa-l vedem. Inainte sa-l pui, selectezi bifa "Rich text editor" si-i dai paste acolo, ca sa fie formatat. "Basic text box" ti-l face varza - pune liniile una langa alta.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 10/28/2011 4:48:40 PM
User is offlineGrigore Dolghin
4001 posts
www.class-software.ro
1st






Re: Ajutor
 (N/A)
 mmarius28 wrote
 Dj wrote
ma poate ajuta cineva in legatura cu problema mea .........

Posteaza codul care iti da eroare.


Hehe :) am scris in acelasi timp. ;)

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 10/28/2011 6:22:01 PM
User is offlineDj
37 posts


Re: Ajutor
 (N/A)
#DEFINE IDYES =6 #DEFINE MBYESNO =4 #DEFINE WARNING =48 IF IDYES = MESSAGEBOX("Nume: "+(thisform.Txt1.Value )+CHR(13)+"Nume: "+(thisform.Txt1.Value ) ,MBYESNO+WARNING,"Date") ELSE insert into tabel1(....)values(....) ENDIF Eu vreau ca cand dau "nu" sa nu imi bage in tabel si cand dau "da" sami bage.
 10/28/2011 6:24:15 PM
User is offlineDj
37 posts


Re: Ajutor
 (N/A)
#DEFINE IDYES =6
#DEFINE MBYESNO =4
#DEFINE WARNING =48
IF IDYES = MESSAGEBOX("Nume: "+(thisform.Txt1.Value )+CHR(13)+"Nume: "+(thisform.Txt1.Value ) ,MBYESNO+WARNING,"Date")
ELSE
insert into table()values()
ENDIF
 10/28/2011 6:37:09 PM
User is offlineDj
37 posts


Re: Ajutor
 (N/A)
 Dj wrote
#DEFINE IDYES =6
#DEFINE MBYESNO =4
#DEFINE WARNING =48
IF IDYES = MESSAGEBOX("Nume: "+(thisform.Txt1.Value )+CHR(13)+"Nume: "+(thisform.Txt1.Value ) ,MBYESNO+WARNING,"Date")
ELSE
insert into table()values()
ENDIF
 10/28/2011 7:12:57 PM
User is offlineGrigore Dolghin
4001 posts
www.class-software.ro
1st






Re: Ajutor
 (N/A)
 Dj wrote
#DEFINE IDYES =6
#DEFINE MBYESNO =4
#DEFINE WARNING =48
IF IDYES = MESSAGEBOX("Nume: "+(thisform.Txt1.Value )+CHR(13)+"Nume: "+(thisform.Txt1.Value ) ,MBYESNO+WARNING,"Date")
ELSE
insert into table()values()
ENDIF


Termina cu prostiile alea de #DEFINE. Alea-s valori numerice. Messagebox returneaza o valoare numerica functie de butonul apasat.

If MessageBox("Nume: "+(thisform.Txt1.Value )+CHR(13)+"Nume: "+(thisform.Txt1.Value), 52, "Date") = 6
   Insert Into Table () Values ()
EndIf

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
  Visual FoxPro  Tema pentru acasa  Ajutor...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2013 Profox   Terms Of Use  Privacy Statement