Search  
Monday, August 21, 2017 ..:: 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  Visual FoxPro in general  Proiect atestat...
 Proiect atestat (2)
 
 3/20/2010 8:13:30 AM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Proiect atestat (2)
 (N/A) Modified By oviciandrus  on 3/20/2010 9:14:02 AM)
Gridul ii acela pe care scrie Grid1. Pe care l-ai pus tu cu manuta ta pe formular.
Astept sa vad o poza cu programul in executie care sa-mi sugereze ca ai o optiune de meniu Judete, ca ai facut click pe ea si ca a aparut formularul cu gridul si cele 4 butoane.

 3/20/2010 8:25:11 AM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Vechiul topic nu mai merge ?

Acum fac acel  form judete.  In  noaptea care tocmai a trecut m-am uitat pe topicul lu goody si am facut si eu ce a incercat el acolo. Vroiam sa te intreb, care e diferenta dintre ListBox, ComboBox, Grid. List box  am invatat sa fac , ca am urmat exemplul dat de Daniel Buduru si mi sa parut usor. M-a ajutat acel exemplu. am facut si pe proiectul meu o lista  in care imi afisa toate judetele.
La judete cred ca nu este nevoie de butonele modifica sau sterge , pt ca consider ca de modificat nu cred ca va modifica cineva denumirea judetului, iar de stergere nu se pune problema, ca nu cred ca va sta cineva sa caute judete si sa le stearga.  Insa voi pune un buton revocare care sa fie accesibil doar atunci  cand intentionez sa adaug un judet nou dar ma razgandesc si nu mai vreau.
 3/20/2010 8:42:09 AM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Proiect atestat (2)
 (N/A)
Bine..... mm .... dar chestia cu formularul JUDETE era pur didactica. Totusi exista posibilitatea de reorganizare administrativa a tarii si atunci trebuie stergere, nu? :). Adaugare unei inregistrari noi nu va avea loc pe acelasi formular. Pe formular numai se arata judetele existente in sistem. Cand vrem adaugare sau modificare apare alt formular apelat de primul.

Recapitulam. Pana acuma aplicatia ta are in meniul principal doua optiuni:
1. Fisiere
2. Despre - aceasta functioneaza si afiseaza niste informatii despre program

Optiunea 1 Fisiere are
1. Judete
2. Localitati
3. -------------
4. Iesire
Dupa localitati mai adauga Producatori si o linie ca sa fie asa
1. Judete
2. Localitati
3. ------------
4. Producatori
5. --------------
6. Iesire
La Producatori apeleaza un formular cu DO FORM "Producatori" si fa formularul producatori asa cum am zis despre judete.
 3/20/2010 8:51:50 AM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
:))  Ma bazez pe faptul ca nu vom ajunge pana la reorganizarea adminsitrativa desi e un aspect  care ar trebui luat in calcul in vremea de azi.

Deci eu am facut acel formular cu gridul, in care am luat date din tabela judete. Scriu aici cum am facut , ca sa ma  corectezi in cazu in care am gresit ceva.
Deci am selectat gridul din Form controls. La  Data envornment am  pus tabela judete. La  RecordSource am pus SELECT Judet, Id_judet FROM judete ORDER BY Judet INTO CURSOR crsList1. 
Am pus la record source type 4-sql statement..
ColumCount =2 , dar nu am stiut cum sa ascund coloana 2 , cea cu idjudet. La lista aveam proprietatea ColumnWIdths = 100, 0. Dar aici ?
 3/20/2010 8:52:52 AM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Si care e diferenta dintre Grid si Lista ? Nu faceam acelasi lucru si cu lista ?

 3/20/2010 9:05:00 AM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Proiect atestat (2)
 (N/A)
1. la grid da-i numele Judete (implicit are Grid1)
2. la butoane da-le numele cmdInsert, cmdUpdate, cmdDelete si cmdCancel
3. zici ca ai adaugat tabela Judete la DataEnvironment ... ok. Ce ai la DataSession-ul formularului?
4. Pe grid fa-l ReadOnly ca sa nu poti scrie din greseala in el.
5. select judet, id_judet from judete into cursor cJudete la Sursa de date si numarul de coloane = 1
 3/20/2010 9:19:59 AM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
la data session am pus private.
In juma de h voi fi gata cu o prezentare a meniurilor aplicatiei, ca sa stim exact pe ce fir mergem,  pt ca m-ai tot intrebat si eu nu eram gata sa-ti raspund , dar am mai citit si de pe topicul lui goody si mi-au mai venit idei.
 3/20/2010 9:51:02 AM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Proiect atestat (2)
 (N/A)
Nu uita ca astept sa vad formularele Judete si Producatori in executie. Sa vad gridul populat cu date si cele 4 butoane de care am vorbit.
 3/20/2010 10:13:03 AM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Program : SISTEM DE GESTIUNE E ACTIVITATII UNUI DEALER DE TELEFOANE.


Fisiere -> Judete
           -> Localitati
           -> Producatori
            -> Iesire -> VFP
                          -> Sistem

Telefoane -> Lista
               -> Preturi
               -> Functii
                -> Cauta telefon -> Dupa producator
                                          -> Dupa model

Clienti -> Lista
        -> Cauta client -> Dupa nume
                         -> Dupa CNP

Contracte -> Lista
                -> Cauta contract -> Dupa nr
                                            -> Dupa data
                                           -> Dupa nume client


Despre -> Program
            -> FoxPro
          

Fisiere :
  - judete = form care contine o lista/grid cu numele judetelor; Are ca butoane Adaugare | Modificare | Stergere | Revocare  


  - Localitati = form care contine o lista/grid cu numele localitatilor aferente judetelor din tabela judete; Are ca butoane Adaugare | Modificare | Stergere | Revocare    
 
  - Producatori = form care contine o lista/grid cu numele producatorilor; Are ca butoane Adaugare | Modificare | Stergere | Revocare



Telefoane :
    - lista = form care contine lista telefoanelor  ( Model producator ) ;  Alaturi se afla un textbox in care la selectarea unui telefon din lista va aparea  numele acelui model. Alaturi un buton detalii care face trimiterea la un raport care imi afiseaza absolut toate datele despre telefonul selectat. Undeva mai jos butoane pentru Adaugara | Modificare | Stergere | Revocare

    - preturi = form care contine 4 butoane  Gratis | <100 lei  | intre 100 si 300 | >300 toate 4 butoanele continand  cate un raport conditionat de pret. In afara de aceste butoane, daca se poate inca 1 butoan "Pasul 1 - Alege telefon "  care sa contina un form in care sa pot sa imi aleg telefonul dintre cele vazute si pe acest form inca 1 buton "Pasul 2- incheie contract " sau poate sa fie pe acelasi form pe care imi aleg telefonul, care sa ma trimita sa faca un nou contract. Asta nu prea stiu cum s-o fac. Sper ca ai inteles ce am vrut sa zic.


   -  functii = form exact la fel ca la preturi , insa acum va fi conditia pe clasa. Si tot asa cu buton alege telefon si incheie contract.

   - Cauta telefon = form in care sa pot cauta telefonu. Aici am doua posibilitati ori fac in Cauta telefon submeniu Dupa prod si Dupa model (cum am facut schema) , ori pe acelasi form includ ambele optiuni.



Clienti
    - lista   = form care contine lista clientilor  ( NUme prenume ) ;  Alaturi se afla un textbox in care la selectarea unuia dintre clientii  din lista va aparea  numele acelui client.  Alaturi un buton detalii care face trimiterea la un raport care imi afiseaza absolut toate datele despre clientul selectat. Undeva mai jos butoane pentru Adaugara | Modificare | Stergere | Revocare

    -  Cauta client = la fel ca la cauta telefon


Contracte

   - lista = form care contine lista contractelor  ( Toate detaliile ) . Sub aceasta lista, dispuse unu  dupa altu, butoane pentru Adaugara | Modificare | Stergere | Revocare.


NU am nevoie de buton pentru inapoi pe fiecare form nu ? se vor inchide din butonul de inchis X. ( close )



Ce parare ai ? Astept sugestii, observatii, completari.

Apoi incep efectiv. E mult de munca si deja sunt inebunit de Fox de 5 zile de cand stau numai cu ochii in el.      
 3/20/2010 11:19:04 AM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
De ce imi apare si a doua coloana daca eu am pus ColumnCOunt= 1
2c.JPGpot micsora gridul astfel incat sa nu mai apara a doua coloana, dar cum altfel ?
 3/20/2010 11:46:41 AM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Nu ai 2 coloane
Poti face sau coloana mai lata sau gridul mai ingust.
Pt. coloana trebuie sa ajungi la proprietatea column1.width si sa introduci latimea de la tastatura sau in properties clic pe column1 (sau cum so numi la tine) si sa tragi marginea din header cu mousul (cam ca la tabelele din word)

Uitate si la proprietatea ScrollBars a gridului si trage o concluzie
Daca citeai in help ce ti-am spus unele probleme iti erau clare
 3/20/2010 12:08:04 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
2d.JPG



Ptr producatori, si localitati copiez formul acesta si fac modificarile doar in data environment, la titluri si cam atat.
 3/20/2010 12:09:58 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Am citit in help, insa  mai rapid asa. Ca am stat toata noaptea m-am  mai uitat prin program.
 3/20/2010 12:11:30 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Stiu cum redimensionez coloana. Nu stiam de ce apar 2 coloane,  La prima am ales eu  backgroundul acela verde , dar nu stiam de ce apare si in dreapta  o coloana. ( cea cu alb, din poza cealalta, nu din ultima postata)
 3/20/2010 12:13:31 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
ce parere ai de  butoanele pe care le-as vrea in aplicatie ? te-ai uitat peste ele?
 3/20/2010 12:16:20 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
am scos si scrollbaru orizontal de la grid.
 3/20/2010 12:23:19 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
In tabela localitati am id-localit, localitate si id_judet. Ce pun in selectul din grid? toate trei campurile ? sau doar localitate si  id_localit
 3/20/2010 12:45:19 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
judete.JPG

localit.JPG

prod.JPG
 3/20/2010 1:01:53 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Proiect atestat (2)
 (N/A)
Da vaz ca nu te joci cu dimensiunile si culorile.

Aceste exemple le-am dat ca sa intelegi cum se combina datele din doua sau mai multe tabele

1) select NUME, PRENUME, CNP, LOCALITATE from CLIENTI left join LOCALITATI on CLIENTI.ID_LOCALIT = LOCALITATI.ID_LOCALIT order by CNP

sau

2) select NUME, PRENUME, CNP, LOCALITATE, JUDET from CLIENTI left join LOCALITATI LEFT JOIN JUDETE on LOCALITATI.ID_JUDET = JUDETE.ID_JUDET on CLIENTI.ID_LOCALIT = LOCALITATI.ID_LOCALIT where PERSOANA = 'Fizica' order by JUDET DESC

Pentru localitati incearca sa inventezi tu instructiunea SELECT, scriind-o in Command Window si vazand ceea ce se obtine. Dupa ce-ti convine ceea ce vezi mai pune "into cursor cLocalitati" si fa formularul "localitati"
 3/20/2010 1:14:50 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Am inteles cum se combina datele din 2 tabele legate cu o relatie persistenta. Pai la localitati ce instructiune sa inventez ? sa ma leg si de judet sau ce?  Am facut formularul localitati. Am pus si poza in postul anterior.  comanda  am pus-o SELECT localitate, id_localit, id_judet FROM localitati INTO CURSOR cLocalitati. Si  am dat formului sa afiseze numai 1 coloana adica  prima Localitate.

Sau trebuia sa scriu SELECT localitate, id_localit, judet FROM localitati LEFT JOIN judete ON localitati.id_judet = judete.id_judet   , dar nu  avea nici  un rost sa afisez si judet, ca l-am afisat  in formul judete.
Mai departe cum fac? Raman la optiunile pe care le-am zis intr-unul din posturile anterioare ? incep sa fac si celelate formuri si ramane apoi sa fac comenzile din butoane ? sau ce fac?
 3/20/2010 1:15:55 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
referitor la dimensiuni si culori  : e inestetic? poza aceea de pe fundalul meniului principal o sa o schimb. Am pus-o cand am incercat sa vad cum pun poza.
 3/20/2010 1:21:38 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Proiect atestat (2)
 (N/A)
Pai sa se vada fiecare localitate din ce judet este!
Ce-i drept cam izbitoare combinatiile de culori... da mai importanta ii functionalitatea
 3/20/2010 1:28:41 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
oricum de interfata ma mai ocup eu . culori. poze etc.. da sa il  vad functionabil.
Ok, fac sa apara si  judetul la localitate. Dar ce  fac mai departe ? spune-mi mai mult. Nu mi-ai zis de   structura aceea a meniului  la care m-am gandit. . Sa incep efectiv sa fac comenzile, ca stau prea mult  timp la astea.

 3/20/2010 2:02:29 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
M-am uitat peste formuri.
Daca asta e viziunea artistului .... asta e

Formurile nu sunt functionale, adica in afara de afisare cred ca celelalte butoane nu fac nimic daca faci click pe ele.
Dupa mine ar trebui sa rezolvi actiunea fiecarui buton
Daca la prezentarea atestatului te pune unu din comisie sa adaugi un judet? Ii spui ca nu e o operatie relevanta pt. proiect?
Daca inveti aici cum faci adaugare, modificare, stergere iti va fi mai usor la formurile complexe

Referitor la latimea coloanei din grid trebuie sa te gindesti ca exista judet Caras Severin sau localitati ca si Cimpulung Moldovenesc
 3/20/2010 2:14:26 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
<> Sa inteleg ca e de rau ? ok voi schimba latimea. Pai asa incercam si eu sa-l rog pe dl ovi. Am zis in mai multe posturi. Nu nu sunt functionale pentru ca nu am pus inca nici o comanda. Asta era si scopul, sa prezint ce vreau sa faca aplicatia mea ( si am zis pe 1 sau a 2-a pag de pe topicu asta ) sa incep sa construiesc interfata utilizator apoi sa pun comenzile pe acele butoane. Dar asta e problema ca nu pot singur. Am nevoie de ajutor, de asta am apelat la voi. M-am complicat prea mult cred, cu foarte multe tabele, si multe campuri de completat, de actualizat.... cu multe legaturi intre tabele. Pe cele numai cu un camp e simplu de facut aceste modificari, dar cele in care tre sa caut id de la alta tabela sa scriu date intr-o tabela, in alta.... etc. Am stat deja mult timp la acest proiect si vad ca nu prea il scot la capat. Sapt asta am stat numai de atestat si n-am facut nici un sfert din el :(. Cred ca daca nu reusesc sa il fac voi incepe la unul mult mai simplu, ca nu pot sta atat de mult numai la atestat. Am de invatat foarte mult pentru BAC. :(
 3/20/2010 2:35:07 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Cred ca e important si ce vei face dupa terminarea liceului. Daca vei merge tot pe info experienta castigata cu acest proiect iti va folosi. Daca vrei sa te faci medic (nu am nimic cu ei) atunci ...
Timpul tu trebuie sa ti-l imparti intre atestat si alte materii.
Daca nu faci altceva hai sa ne imaginam cum s-ar face modificarea unui judet (localitate, producator sau ce vrei tu)
Sa povestim pasii.
Daca faci altceva (formul cu judete, localitati) termina-l pe acela mai intai
 3/20/2010 2:49:37 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Dupa liceu merg la Politehinca la automatica sau telecomunicatii , electronica.... Desi mi-ar folosi. Tocmai asta e problema ca ultima saptamana mi-am impartit timpul numai la atestat.Nu am facut nimic pentru bac sapt care tocmai a trecut. Am invatat multe chestii, dar ce urmeaza este mult mai complicat. Daca ma puteti ajuta cu siguranta il voi face pe acesta. Dar singur nu pot. sunt mult prea multe noutati. pai daca ma puteti ajuta acum, vreau sa incerc sa fac comenzile de pe formul judete sa zice. Adaugarea: tre sa verific intai daca orasul pe care vreau sa-l introduc este deja in sistem. apoi daca nu este il voi adauga altfel revoc adaugarea. Cum fac adaugarea? Cum compar un judet din sistem , cu unul pe care il introduc de la tastatura? Pun un textbox alaturi unde voi scrie judetul nou , apoi facand click pe adaugare imi va adauga orasul, sau daca este deja un mesaj.
 3/20/2010 2:55:55 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Ideea cu textboxul e buna. Eu il pun de obicei exact sub grid de aceeasi latime cu coloana din grid (pt. estetica)
Problema e ce faci cu butoanele dupa ce faci clic pe adaugare (modificare, stergere). Daca mai faci dupa aceea clic pe alt buton?
Ar trebui sa le dezactivezi sau sa le ascunzi (vezi proprietatile visible, enabled)
Dupa terminarea operatiei trebie sa le arati/validezi din nou
 3/20/2010 3:01:42 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Ma poti ajuta cu un exemplu? deci sa luam formul judete. Am 4 butoane pe form. adauga, modifica, sterge, revocare. Revocare va fi mereu disabled, cu exceptia momentului cand fac click pe adauga. Cum fac asta. Proprietatea enabled am gasit-o, dar cum stabilesc cand il vreau enabled, cand nu. ? Apoi ajuta-ma sa creez comanda la adaugare. nu prea stiu cum
 3/20/2010 3:11:35 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Tinand cont ca actiunea de blocare/deblocare se va face pt. fiecare din butoanele adauga/modifica/sterge e bine sa adaugi o metoda in form care in functie de parametrul pe care il transmiti .T. sau .F. iti arata ascunde butoanele.
Pt. asta in meniul fox la Form ai New Method. Ii dai un nume (Validare de exeplu), o descriere (daca vrei) cu ce face metoda (e bine pt. mai tarziu cand uiti ce face metoda) Dai Add si apoi Close pt. a iesi din adaugare metoda.
Acu nu stiu ce stii despre functii si proceduri (in celalalt post pe la inceput s-a explicat ce sunt acestea)
 3/20/2010 3:23:51 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Cam asta ar trebui sa incerc si eu sa fac banueisc . Am copiat postul de pe topicul lui goody Atestat 2010. UNdeva inainte de postul asta a spus si ce e cu Interactive Change. Dar el avea acolo listbox nu grid. Nu stiu daca pot adapta toate astea la mine. Continuam pe varianta cu adaugare, modificare, stergere pe acelasi form. Modificam codul din List1.InteractiveChange ca sa arate astfel : STORE (this.Value) TO (This.ControlSource) thisform.OnListChange Comanda STORE (this.Value) TO (This.ControlSource) pune valoarea lin List1.value in variabila sau campul specificat in list1.ControlSource, astfel incat sa compenseze decalajul intre declansarea evenimentului InteractiveChange si transferarea valorii in ControlSource Adaugam formului niste metode, pentru modificare, stergere, salvare, revocare Astfel adaugam metodele : OkToSave OnEdit Ondelete OnSave OnRevert Apoi adaugam doua proprietati: lEdit=.F. lAdd=.F. Facem setarile de context in metoda Load a formului: SET DELETED ON SET MULTI ON SET ANSI ON SET EXACT OFF SET DATE DMY SET CENTURY ON SET HOURS TO 24 SET TALK OFF SET NOTIFY OFF Apoi punem pe form un buton (commandbutton) Il plasam in partea dreapta, sus, la 2-3 mm de la marginea din dreapta a formului Click dreapta pe buton, properties Caption: Adaugare Name: cmdAdd Adaugam cod in metodele acestui buton: -in metoda Click: Thisform.OnEdit(.t.) -in Refresh THIS.Enabled= Not Thisform.lEdit Adaugam un alt buton, imediat sub el, aliniat pe verticala Caption: Modificare Name: cmdEdit - in Click: Thisform.OnEdit - in Refresh This.Enabled= Not Thisform.lEdit Urmatorul buton, sub cmdEdit Caption: Stergere Name: cmdDelete in Click: Thisform.OnDelete in Refresh: This.Enabled= Not Thisform.lEdit Urmatorul buton, sub cmdDelete Caption: Salvare Name: cmdSave in Click: Thisform.OnSave in Refresh: This.Enabled= Thisform.lEdit Urmatorul buton, sub cmdSave Caption: Revocare Name: cmdRevert in Click: Thisform.OnRevert in Refresh: This.Enabled= Thisform.lEdit Ultimul buton: Caption: Iesire Name: cmdExit in Click: Thisform.release in Refresh: This.Enabled= Not Thisform.lEdit Formul ar trebui sa aiba in stanga lista, in dreapta butoanele, iar intre ele textboxul. Nu mai stiu daca am pus si un label. Daca nu, punem un label la stanga textbox-ului Caption: Autor: Backstyle: 0 - Transparent Punem cod in metoda Refresh a listei: THIS.Enabled=NOT thisform.lEdit Punem cod si in metoda Refresh a textbox-ului This.Enabled=Thisform.lEdit Punem cod in metodele formului: Incepem cu metoda OnEdit, apelata atat la adaugare cat si la modificare. Cand am apelat-o din butonul cmdAdd, am apelat-o cu un parametru - thisform.DoEdit(.T.) In consecinta, pe prima linie va fi PARAMETERS sal LPARAMETERS (parametri vizibili local) Deci LPARAMETERS tlAdd &&tlAdd =.T. spune ca s-a cerut o adaugare *Generam cursorul pe care vom face modificarea sau adaugarea SELECT * FROM autori WHERE idautor=(thisform.ListValue) INTO CURSOR crsAutor READWRITE *Clauza READWRITE permitea crearea unui cursor actualizabil. Altfel, cursorul obtinut cu select sql este readonly *Daca tabela autori nu are nici o inregistrare, sau filtrul nu returneaza nici o inregistrare (asta n-ar trebui sa se intample), cursorul creat nu are inregistrari si trebuie sa-i adaugam una IF RECC('crsAutor')=0 APPEND BLANK IN crsAutor ENDIF *Daca s-a cerut adaugare, ne trebuie o inregistrare goala. IF NOT EMPTY(tlAdd) BLANK IN crsAutor Thisform.lAdd=.T. &&Semnalam ca facem o adaugare, nu o modificare. Vom avea nevoie de aceasta informatie la salvare. ENDIF *Semnalam ca se trece in starea de editare. Obiectele vor trece in starea enabled sau disabled in functie de codul din refresh. Thisform.lEdit=.T. Thisform.refresh Vom mai pune cod in metoda OnRevert a formului: Thisform.lEdit=.F. Thisform.lAdd=.F. Thisform.OnListChange Trecem acum la verificarea inainte de salvare. Screim codul in metoda OktoSave a formului. LOCAL llRetval &&llRetval este o variabila locala in acre tinem valoarea pe care o va returna aceasta metoda *Mai intai verificam daca nu cumva inregistrarea este goala. IF EMPTY(crsAutor.Nume) MESSAGEBOX('Completati autorul sau revocati',16,thisform.Caption) &&Atentionam utilizatorul RETURN .f. &&Nu continuam, nu avem ce verifica ENDIF *Verificam daca autorul exista in tabela. *Construim comanda select LOCAL lcSQL, lcWhere, lcCuvant, lcText, lcSeparator, lnArea lnArea=SELECT() &&Memoram zona selectata, intrucat comanda SELECT SQL selecteaza cursorul creat lcSeparator=[,.- ] lctext=crsAutor.Nume lcWhere='' FOR lni=1 TOGETWORDCOUNT(lcText,lcSeparator ) lcCuvant=GETWORDNUM(lctext, lni, lcSeparator ) lcWhere=lcWhere+"UPPER("+lcCuvant+")$UPPER(nume) " *** Aici trebuie sa punem AND, dar numai daca nu este ultimul cuvant din sir IF lni< lnCuvinte lcWhere=lcWhere+" AND " ENDIF ENDFOR lcWhere=IIF(EMPTY(lcWhere),'', ' WHERE ')+lcWhere lcSQL="SELECT * FROM autor "+lcWhere+" INTO CURSOR crsFind" &lcSQL IF RECC('crsFind')=0 llRetval=.T. &&Daca nu s-au gasit inregistrari, numele e unic si se poate trece la salvare ELSE *Daca s-au gasit inregistrari si suntem in adaugare numele e duplicat *Daca suntem in modificare, iar idautor gasit e diferit de idautor modificat, inregistrrea e duplicata IF Thisform.lAdd OR crsAutor.IDAutor<>crsFind.IDAutor MESSAGEBOX("Inregistrare duplicata",16,thisform.Caption) llRetval=.F. ELSE llRetval=.T. ENDIF ENDIF SELECT(lnArea) &&Restabilim zona care era selectata la intrarea in metoda Return llRetval Acum codul din metoda OnSave *Incepem cu verificarea validitatii numelui. IF NOT Thisform.OkToSave() Return .F. ENDIF *Acm, daca suntem in adaugare, vom face o inserare in tabela autori LOCAL lnIDAutor IF thisform.lAdd INSERT INTO autori (nume) VALUES (PROPER(crsAutor.Nume)) &&Functia Proper pune majuscula la inceputul cuvantului, iar in rest litere mici *Trebuie sa preluam noul idautor, ca sa pozitionam lista pe noua inregistrare lnIDAutor=GETAUTOINC(Thisform.DatsessionID) ELSE lnIDAutor=crsAutor.IDAutor UPDATE Autori SET nume=PROPER(crsAutor.nume) WHERE IDAutor=lnIDAutor ENDIF Thisform.lAdd=.F. Thisform.lEdit=.F. &&Am incheiat cu adaugarea/modificarea Thisform.List1.Requery() &&Lista isi reciteste sursa Thisform.List1.Value=lnIDAutor Thsiform.Refresh Metoda OnDelete *O inregistrare poate fi eliminata din tabela autori numai daca nu exista carti de acest autor in tabela carti. *Verificam existenta idautor in carti LOCAL lnArea, lnIDAutor, lnIndex lnIDAutor=CAST(Thisform.ListValue as int) lnArea=SELECT() SELECT * FROM carti WHERE idautor=lnIDautor INTO CURSOR crsFind SELECT (lnArea) IF RECC('crsFind')>0 MESSAGEBOX('Inregistrarea nu poate fi eliminata',16,thisform.caption+' Stergere') Return .F. ENDIF DELETE FROM autori WHERE idautor=lnIDautor lnIndex=Thisform.list1.listIndex &&Memoram linia din lista pentru a reveni in aceeasi pozitie Thisform.list1.Requery() Thisform.List1.ListIndex=MAX(Thisform.:ist1.ListIndex,lnIndex) Thisform.refresh Sper sa nu fie prea multe erori prin cod. Daca sunt, e o ocazie sa folosesti debugger-ul.
 3/20/2010 3:28:42 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
Sunt foarte stresat. Nu stiu ce sa fac. Mi-a luat foarte mult timp tot ce am facut pana aici . Daca se poate sa vina cineva cu explicatii ceva in genul lui Daniel Buduru, sa inteleg si eu ceva cap-coada ar fi perfect. Pana atunci insa voi incerca sa fac eu ceva.
 3/20/2010 3:47:27 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Proiect atestat (2)
 (N/A)
Gldesign propun ca adaugare/modificarea sa se faca cu un formular nou astfel incat

Parerea mea ii ca la metoda Click a butonului adaugare sa apelezi DO FORM 'AddModJudet' WITH 0 iar la metoda Click a butonului modificare sa apelezi DO FORM 'AddModJudet' WITH cJudete.ID_JUDET
Ii clar ca trebe sa mai faci un formular de adaugare/modificare numit AddModJudet
Pe acest buton bagi un textbox numit txtJudete si doua butoane unul cmdSave si unul cmdCancel
Apropo pe butoanele cmdCancel la click trebuie sa apelezi metoda thisfom.Release()
 3/20/2010 3:50:21 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
deci ma puteti ajuta si pe mine sa duc acest proiect pana la capat ? sunt foarte suparat ca nu reusesc.
 3/20/2010 3:54:55 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
deci la butonul adugare scriu DO FORM 'AddModJudet' WITH 0. iar la modificare DO FORM 'AddModJudet' WITH cJudete.ID_JUDET. Si ce sa contina acest formular de adaugare? Cum vine asta? <>?
 3/20/2010 3:58:05 PM
User is offlinegldesign
405 posts
2nd


Re: Author:
 (N/A)
Nu rezolvi nimic daca esti stresat
Ai citit postul meu cu metoda validare?
Ai facut metoda?
Dute la proprietatile formului si in categoria Metode jos de tot trebuie sa gasesti metoda validare (sau cum i-ai zis)
Fa dublu click pe ea
Se deschide o fereastra unde trebuie sa introduci comenzi
Scrii asa
parameter op1
thisform.cmdad.enabled=op1 && butonul adauga
thisform.cmded.enabled=op1 && butonul modifica
thisform.cmddel.enabled=op1 && sterge
thisform.cmdren.enabled=not op1 && renunta

In metoda Init a formului scrie
thisform.validare(.T.)

In evenimentul Click al butoanelor Adauga/Modififa/Sterge pune
thisform.validare(.T.)

In evenimentul Click al butonului Renunta pune
thisform.validare(.F.)

Vezi ce se intapla si apoi continuam


 3/20/2010 4:00:23 PM
User is offlinegldesign
405 posts
2nd


Re: Author:
 (N/A)
Nu vreau un formular nou
Fiind un singur camp de adaugat/modificat l-as face in acest form
 3/20/2010 4:00:50 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
<< Pe acest buton bagi un textbox numit txtJudete si doua butoane unul cmdSave si unul cmdCancel >> . cum fac asta?
 3/20/2010 4:03:06 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Proiect atestat (2)
 (N/A)
 florin2005840 wrote
deci ma puteti ajuta si pe mine sa duc acest proiect pana la capat ? sunt foarte suparat ca nu reusesc.


Florine...poate esti de acord sa-l facem noi si sa ti-l trimitem gata facut? Nu se poate aşa... Sa facem dictare... Eu am crezut ca noi iti dam indicii de la care sa porneşti şi tu cu energia varstei de 18-19 ani sapi la greu si descoperi diverse chestii... si noi eventual mai raspundem la intrebari de genul "Oare cum vine facut asta..." nu la intrebari de genul "Si acuma mai departe..."
 3/20/2010 4:03:16 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Hai sa ne hotaram daca mai facem un form sau facem totul in acelasi form (cel pe care il ai deja)
 3/20/2010 4:04:27 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
facem in acelasi form, fac ce ai zis tu .
 3/20/2010 4:05:57 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Proiect atestat (2)
 (N/A)
 florin2005840 wrote
<< Pe acest buton bagi un textbox numit txtJudete si doua butoane unul cmdSave si unul cmdCancel >> . cum fac asta?


Am gresit. Trebuia sa zic pe acest form.

OK.... fara formular nou.... da la alea mai complexe merge cu formular nou?
 3/20/2010 4:07:00 PM
User is offlineflorin2005840
557 posts
1st


Re: Author:
 (N/A)
daca eu am denumit butoanele cmdInsert , cmdCancel, , cmdUpdate si cmdDelete., asa voi scrie parameter op1 thisform.cmdInsert.enabled=op1 thisform.cmdUpdate.enabled=op1 thisform.cmdDelete.enabled=op1 thisform.cmdCancel.enabled=not op1
 3/20/2010 4:10:31 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
La cele mai complexe sigur cu formular nou
 3/20/2010 4:12:56 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
am facut acei pasi. acum revocare nu mai e activat. la celelalte nu se intampla nimic daca apas pe ele
 3/20/2010 4:13:12 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
ce fac mai departe ?
 3/20/2010 4:14:43 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
nu-ti dai seama unde am gresit?
Ce parametru trebuie sa transmit la clic pe adauga (ce trebuie sa se intample cu butoanele)?
 3/20/2010 4:18:24 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
nu prea pot sa ma gandesc in momentu asta. v-am zis ca sunt cam suparat. asa se intampla cand muncesti mult si vezi ca nu faci progrese si singur nu te descurci. Daca vad un buton macar sa mearga poate imi mai revin.
 3/20/2010 4:22:47 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Poate ar trebui sa iei o pauza si sa te linistesti
La apelarea acelei metode ai vazut ca transmit un parametru care e .T. sau .F.
In metoda iau acel parametru si il atribui proprietatii enabled a butoanelor
Deci daca trebuie sa fac disabled la buton ce valoare trebuie sa aiba enabled?
 3/20/2010 4:24:57 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
.F.
 3/20/2010 4:28:13 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Si atunci ce valoare trebuie sa transmit metodei cand fac click pe adauga astfel incat sa dezactiveaz butonul si sa nu mai pot face click pe el?
 3/20/2010 4:29:41 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
thisform.validare(.F.) ??
 3/20/2010 4:33:01 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Corecteaza pe toate butoanele si vezi daca merge.
Acu ce facem cu textboxul de sub form (nu stiu ce nume i-ai dat)
Nu ar fi bine sa fie vizibil numai cand facem clik pe Adauga/Modifica/Sterge si in rest sa nu se vada?

Incerca sa faci asta tot in metoda validare
 3/20/2010 4:33:47 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
iar daca la adauha pun asa, va trbui sa completez si la revocare, dar nu stiu in ce metoda, sa il fac enable, nu?
 3/20/2010 4:34:29 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
scuze
De sub grid
 3/20/2010 4:36:18 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
De ce la revocare sa-ti trebuiasca alta metoda?
Asta nu-ti rezolva problema?
Depinde ce parametru transmiti metodei asa cum am mai zis
 3/20/2010 4:36:22 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
merge cu butoanele
 3/20/2010 4:38:28 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
am inteles cum trebuie facut si cu acel text box. dar nu cred ca e nevoie sa nu se vada, deoarece ma voi folosi de el inainte sa apas pe adauga. Adica scriu cuv in textbox si apoi apas pe adauga nu ? si daca nu este in lista, il va adauga, daca nu va afisa un mesaj.
 3/20/2010 4:39:55 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Proiect atestat (2)
 (N/A)
Ma bag si eu.... cred ca undeva mai trebuie un buton Save
 3/20/2010 4:41:34 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
bun, acum cum fac comanda de adugat ?
 3/20/2010 4:41:42 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Si la modificare si stergere cum te-ai gandit sa faci?
Sa hotaram acuma ca sa vedem cum facem cu textboxul
 3/20/2010 4:42:45 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
deci pun si save? dar daca am comanda de adauga , mai are nevoie de save, nu se aduga datele in tabela?
 3/20/2010 4:42:46 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Ai dreptate cu Save
Exact asta urma sa-l intreb
 3/20/2010 4:45:27 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Hai sa-ti explic cum am gandit eu adaugarea
Apas pe adauga
Apare textboxul
Introduc judetul
Dau Salvare (care inca nu e)
Verific daca mai exista in tabela
Daca nu adaug si valideaz butoanele
Daca da il las sa corecteze sau sa faca click pe Renunta si validez butoanele
 3/20/2010 4:46:04 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
bun deci pun si save. in metoda validare a formului scriu thisform.cmdSave.enabled=not op1 apoi in metoda init a butonului pun thisform.validare(.F.) iar la click tot thisform.validare(.F.)
 3/20/2010 4:46:35 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
da asa il fac.
 3/20/2010 4:48:33 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
asta inseamna ca in metoda validare scriu si thisform.Text1.visible= not op1 .
 3/20/2010 4:49:29 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
 florin2005840 wrote
bun deci pun si save. in metoda validare a formului scriu thisform.cmdSave.enabled=not op1 apoi in metoda init a butonului pun thisform.validare(.F.) iar la click tot thisform.validare(.F.)



Ce treaba ai cu metoda init a butonului Salvare
Sper ca la celelalte nu ai pus nimic in Init
 3/20/2010 4:55:06 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
pai am pus asa: la form - in validare : parameter op1 thisform.cmdInsert.enabled=op1 thisform.cmdUpdate.enabled=op1 thisform.cmdDelete.enabled=op1 thisform.cmdCancel.enabled=not op1 - in init : thisform.validare(.T.) si la cmdInsert, cmdUpdate, cmdDelete, cmdCancel in click : thisform.validare(.F.) e bine ?
 3/20/2010 5:00:34 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
E bine daca face ceea ce trebuie adica sa valideze/devalideze butoanele
Pune si la butonul Salvare ce sa se intample cu butoanele cand faci click pe el (deocamdata atat, urmeaza sa adaugam restul codului)
Verifica daca functioneaza validarea/devalidarea la click pe fiecare buton

Apropo eu de obicei fac visibile/invizibile butoanele, dar aici le poti lasa asa (totusi Salvarea as face-o vizibila/invizibila)
 3/20/2010 5:04:39 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
ok o sa fac vizibila /invizibila salvarea. Deci e bine asa? initial adauga, modifica si sterge sunt accesibile. Daca fac click pe oricare din cele 3 ( adauga, modifica, sterge) devin inactive toate, si devine activ revocare.. Asa trebuie sa se intample?
 3/20/2010 5:07:07 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
 florin2005840 wrote
ok o sa fac vizibila /invizibila salvarea. Deci e bine asa? initial adauga, modifica si sterge sunt accesibile. Daca fac click pe oricare din cele 3 ( adauga, modifica, sterge) devin inactive toate, si devine activ revocare.. Asa trebuie sa se intample?


Si daca dai click pe revocare ce se intampla?
 3/20/2010 5:12:52 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
pai nu am cum sa dau click pe revocare pentru ca initial sunt active doar adauga, modifica , sterge. daca fac click pe unul dintre acestea devin toate inactive si devine activ revocare. Acum pot face click pe revocare dar nu se intampla nimic.
 3/20/2010 5:14:50 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
 florin2005840 wrote
pai nu am cum sa dau click pe revocare pentru ca initial sunt active doar adauga, modifica , sterge. daca fac click pe unul dintre acestea devin toate inactive si devine activ revocare. Acum pot face click pe revocare dar nu se intampla nimic.


Si unde ai gresit daca nu se intampla nimic?
 3/20/2010 5:16:54 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
am o rugaminte. poti sa imi scrii cum arata validare ( cu visible, invisible) si sa imi spui ce tre sa apara la fiecare la click . incep eu. Corecteaza-ma: in validare la Form am : parameter op1 thisform.cmdInsert.visible=op1 thisform.cmdUpdate.visible=op1 thisform.cmdDelete.visible=op1 thisform.cmdCancel.visible=not op1 thisform.cmdSave.Visible=not op1 la init la form am thisform.validare(.T.) apoi ce vine la fiecare buton la click ?
 3/20/2010 5:18:50 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
am reusit .
 3/20/2010 5:21:22 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Nu-ti spun
Hai sa recapitulam
Metoda validare primeste un parametru .T. sau .F. in functie de cum vrei sa validezi/devalidezi butoanele
La click pe cele 3 butoane trebuie sa devalidezi butoanele pt. a nu mai putea face click pe ele
La click pe salvare si revocare trebuie sa validezi cele 3 butoane si sa devalidezi acestea doua

Nu inteleg unde e greutatea. Cred ca esti obosit+stresat
 3/20/2010 5:23:51 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
asa am facut
 3/20/2010 5:24:20 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
ce fac acum ? cum fac comanda de adaugat?
 3/20/2010 5:25:24 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
 florin2005840 wrote
am reusit .


Acuma daca as vrea sa-ti provoc o criza de nervi as spune ca deoarece acelasi lucru se aplica si la celelalte formuri (produse, localitati..) ar trebui sa facem o clasa dar te iert si mergem asa fara clasa

Acu sa ne ocupam de verificarea judetului si salvare daca e bine
Citeste dincolo cum se verifica daca Creanga este introdus la autori (indiferent daca e I. Creanga sau Creanga I sau totul cu majuscule) si vin-o cu propunerea de verificare si salvare
 3/20/2010 5:45:49 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
IcText="oras de cautat" lcWhere='WHERE ' lnCuvinte=GETWORDCOUNT(lctext) &&( inCuvinte e nr de cuv din nume) FOR lni=1 TO lnCuvinte && de la 1 la cate cuv sunt - le ia pe rand, intai pt Ini=1) lcCuvant=GETWORDNUM(lctext,lni) && IcCuvant=primul cuv - in cazu de fata oras lcWhere=lcWhere+"UPPER("+lcWord+")$UPPER (nume) " && aici nu am inteles. ce face aici ? *** Aici trebuie sa punem AND, dar numai daca nu este ultimul cuvant din sir IF lni< lnCuvinte lcWhere=lcWhere+" AND " ENDIF ENDFOR ? lcWhere lcSQL="SELECT * FROM autori "+lcWhere ? lcSQL &lcSQL SELECT IDautor FROM autori WHERE UPPER(lctext)$UPPER(nume) INTO CURSOR crsCarte && aici afla id autor din autori unde Ictext e inclus in nume ) IF crsCarte = 1 &&daca il gaseste afiseaza acest mesaj ?('Autorul exista in baza de date') ENDIF
 3/20/2010 5:46:51 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Sigur iti e greu sa gasesti

E asa


SELECT IDautor FROM autori WHERE lcAutor$UPPER(Nume) &&Operatorul $ folosit aici inseamna "lcAutor este inclus in UPPER(Nume)"
 3/20/2010 5:48:28 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
aaaa. am inteles aceasta comanda si cum ma folsesc de ea?
 3/20/2010 5:51:00 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
 florin2005840 wrote
aaaa. am inteles aceasta comanda si cum ma folsesc de ea?


Daca iti intoarce 0 inregistrari nu ai judetul
Daca iti intoarce mai mult de 0 inregistrari ai judetul cel putin o data
Citeste despre comanda _tally (cu underscore in fata)
 3/20/2010 5:56:03 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)

IcJudet='judet de cautat'
SELECT  COUNT(*) as Judete  FROM judete  WHERE id_judet IN( Select id_judet from judete where WHERE Upper(IcJudet)$UPPER(Nume))  into cursor crsJudet
if crsJudet =1 messagebox('judetul  figureza in baza de date')
else INSERT INTO judete values ('judet de cautat')
 3/20/2010 5:57:23 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
nu o sa gaseasca niciodata mai mult de 2 inreg pt ca nu va fi un judet trecut de 2 ori )
 3/20/2010 6:01:26 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
 florin2005840 wrote

IcJudet='judet de cautat'
SELECT  COUNT(*) as Judete  FROM judete  WHERE id_judet IN( Select id_judet from judete where WHERE Upper(IcJudet)$UPPER(Nume))  into cursor crsJudet
if crsJudet =1 messagebox('judetul  figureza in baza de date')
else INSERT INTO judete values ('judet de cautat')


Ma indoiesc ca ceea ce ai scris tu rezolva problema
De ce ai nevoie de acest select asa complicat
Ti-am scris ce comanda trebuie folosita si sa citesti despre _tally

Apropo ce e aia if crsJudet=1 atata timp cit crsJudet e un cursor (adica verifici daca cursorul care e toto o tabela este=1 !!!)
 3/20/2010 6:02:18 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
deci functia asta tally inregistreaza dupa ce parcurge datele din tabel, de cate ori a dat de o inregistrare. Si daca gasim tally >1 rezulta ca e in tabela. daca nu il adaugam
 3/20/2010 6:04:20 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
cred ca m-ai ajuta mai mult daca imi dai un exemplu
 3/20/2010 6:05:41 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Traducerea ta e aproxamativa

"Contains the number of records processed by the most recently executed table command"

In cazul tau iti arata cate inregistrari a gasit selectul
 3/20/2010 6:10:01 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Deci cand faci click pe salvare
Adaptezi comanta cu autorii la tabela judete
Daca _tally>0
Ai judetul
else
Adaugi judetul
endif
 3/20/2010 6:14:37 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
dar cum stiu ce oras caut? cum scriu ? thisform.Text1.value=Icjudet
SELECT id_judet  FROM judete WHERE Upper(lcJudet)$UPPER(Judet)
if _tally>0 messagebox('Judetul figureaza deja in baza de date')
else insert into judete values (IcJudet) .



am scris o prostie mare ?
 3/20/2010 6:14:53 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
end if

 3/20/2010 6:19:16 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
 florin2005840 wrote
dar cum stiu ce oras caut? cum scriu ? thisform.Text1.value=Icjudet
SELECT id_judet  FROM judete WHERE Upper(lcJudet)$UPPER(Judet)
if _tally>0 messagebox('Judetul figureaza deja in baza de date')
else insert into judete values (IcJudet) .



am scris o prostie mare ?


Icjudet= thisform.Text1.value
dar nu-ti trebuie
pune direct in where(thisform.Text1.value)$...
 3/20/2010 6:25:11 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
daca pun codu asa, tastez  in text1 un  judet ii sau salveaza si se  deschide asa :
3a.JPG
 3/20/2010 6:26:23 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Mai e o problema care sigur nu o stii
thisform.Text1.value contine si spatii goale la sfirsit
Ce te faci daca din greseala introduci un spatiu inainte de numele judetului?
Pentru a rezolva aceste probleme comanda corecta este
SELECT id_judet FROM judete WHERE Upper(alltr(thisform.Text1.value))$UPPER(Judet)

citeste despre ALLTRIM
 3/20/2010 6:28:20 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
alltrim elimina spatiile de la inceputul si sfarsitul cuv
 3/20/2010 6:31:16 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
Pune aici toate instructiunile din Salvare.Click
La sfarsit pune si thisform.refresh()
 3/20/2010 6:32:23 PM
User is offlinegldesign
405 posts
2nd


Re: Proiect atestat (2)
 (N/A)
daca deschizi tabela judete ai judetul adaugat?
 3/20/2010 6:34:09 PM
User is offlineflorin2005840
557 posts
1st


Re: Proiect atestat (2)
 (N/A)
thisform.validare(.T.)
SELECT id_judet FROM judete WHERE Upper(alltrim(thisform.Text1.value))$UPPER(Judet)

if _tally>0
messagebox('Judetul figureaza deja in baza de date')
else insert into judete values (thisform.Text1.value)
ENDIF
thisform.Refresh()
  Visual FoxPro  Visual FoxPro in general  Proiect atestat...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2013 Profox   Terms Of Use  Privacy Statement