| Site-ul consultantilor SAP din Romania http://www.sap-consulting.ro/phpbb/ |
|
| Problema intr-un form in SE71 http://www.sap-consulting.ro/phpbb/viewtopic.php?f=1&t=159 |
Pagina 1 din 1 |
| Autor: | dorin [ Mar, 02-Noi-2004 16:39 ] |
| Subiectul mesajului: | Problema intr-un form in SE71 |
Dragi ABAP-isti, Am o problema si sper sa ma puteti ajuta cu un sfat. Am un form in SE71 cu un paragraf in care am pus o conditie cu IF. Acesta este: ADDRESS PARAGRAPH AS &kna1-name1& IF &ADRC-ADDRNUMBER& > '0'. &adrc-street& &adrc-house_num1& "contact person address ELSE. &KNA1-STRAS& "customer address" ENDIF. ENDADDRESS Datele sunt luate dintr-un raport care apeleaza formul si care contine urmatoarele linii de cod pentru selectia datelor pt. form: . . GET kna1. select single * from knvk where kunnr = kna1-kunnr. if sy-subrc = 0. select single * from adrc where addrnumber = knvk-adrnd. if sy-subrc = 0. adnr = adrc-addrnumber. else. adnr = '0'. endif. . . . Programul ruleaza bine NUMAI daca folosesc customer with contact person address (care au inregistrari in tabela ADRC) SAU NUMAI fara contact person address (clienti care nu au inregistrari in tabela ANRC care contine adresele persoanelor din KNVK). Problema apare cand rulez pt. 2 customers (1 cu contact person address si 1 fara ) iar la afisare imi arata corect (pe rand) numele clientului dar la adresa ramane adresa pers. de contact de la primul client, in loc sa-mi arate adresa clientului 2. Mentionez ca IF-ul functioneaza bine daca rulez separat cele doua tipuri de clienti (cu sau fara persoane de contact) Ma puteti ajuta cu un sfat? Am facut ceva gresit in cod sau am uitat ceva? Cu multumiri, Dorin |
|
| Autor: | Costin Albu [ Mar, 02-Noi-2004 17:44 ] |
| Subiectul mesajului: | |
Incearca: GET kna1. CLEAR adrc. select single * from knvk where kunnr = kna1-kunnr. if sy-subrc = 0. select single * from adrc where addrnumber = knvk-adrnd. if sy-subrc = 0. adnr = adrc-addrnumber. else. adnr = '0'. endif. endif. |
|
| Autor: | dorin [ Mar, 02-Noi-2004 18:04 ] |
| Subiectul mesajului: | |
Multumesc pt. sfat, dar din pacate tot nu rezolva problema. Se comporta la fel. Daca cumva mai ai vreo ideea as fi bucuros sa o testez. O zi buna in continuare! Dorin |
|
| Autor: | bogdancioc [ Mie, 03-Noi-2004 11:36 ] |
| Subiectul mesajului: | |
Dorin, eu as face ceva in genul: ADDRESS PARAGRAPH AS &kna1-name1& &adresa& ENDADDRESS Si in raport: data adresa(50). GET kna1. select single * from knvk where kunnr = kna1-kunnr. if sy-subrc = 0. select single * from adrc where addrnumber = knvk-adrnd. if sy-subrc = 0. concatenate adrc-street adrc-house_num into adresa separated by space. else. adresa = kna1-stras. endif. else. adresa = kna1-stras. endif. Prefer sa nu fac prea multe operatii (comparare etc) in SapScript pentru ca aici se lucreaza exclusiv cu caractere si, dupa cum ai observat, rezultatele sunt imprevizibile. |
|
| Autor: | dorin [ Mie, 03-Noi-2004 12:40 ] |
| Subiectul mesajului: | |
Am incercat si asa. Codul ce l-am folosit este urmatorul: ... get kna1. adr1 = ' '. adr2 = ' '. select single * from knvk where kunnr = kna1-kunnr. if sy-subrc = 0. select single * from adrc where addrnumber = knvk-adrnd. if sy-subrc = 0. concatenate adrc-street ' ' adrc-house_num1 ', ' adrc-city1 into adr1. concatenate adrc-post_code1 adrc-city2 ', ' adrc-country into adr2. else. adr1 = kna1-stras. concatenate kna1-land1 '-' kna1-pstlz ' ' kna1-ort01 into adr2. endif. else. adr1 = kna1-stras. concatenate kna1-land1 '-' kna1-pstlz ' ' kna1-ort01 into adr2. endif. get knb1 ... iar in SAPScript am pus: ADDRESS PARAGRAPH AS &kna1-name1& &adr1& &adr2& ENDADDRESS In acest fel, la rulare imi afiseaza bine doar &kna1-name1& iar variabilele sunt tot timpul cu adresa ultimului client din lista. Nu stiu ce sa mai caut. M-am uitat si in SAP documentation si nu prea imi dau seama ce nu fac bine. Am incercat si sa fac doua formuri, cate unul pentru fiecare tip de adresa si in functie de conditie (daca are sau nu pers. de contact cu adresa) sa-mi afiseze formul dorit dar degeaba, programul afisa tot timpul formul corespunzator pt. ultimul client din lista. Orice sugestie si ideea e binevenita. Cu multumiri, Dorin |
|
| Autor: | bogdancioc [ Mie, 03-Noi-2004 13:36 ] |
| Subiectul mesajului: | |
No offence (eu am facut greseala asta si aproape mi-am iesit din minti tot facand modificari Daca ai mai multe versiuni, verifica daca versiunea folosita de program e aceeasi cu cea pe care tu o modifici. |
|
| Autor: | dorin [ Mie, 03-Noi-2004 14:50 ] |
| Subiectul mesajului: | |
Da. Am doar un singur formular. Am facut doua dar tot nu a mers si am ramas doar la unul in care am operat modificarile sugerate de tine. Am verificat si versiunea progr. si e ok. Dorin |
|
| Autor: | Costin Albu [ Mie, 03-Noi-2004 15:00 ] |
| Subiectul mesajului: | |
Vezi ca poti sa pui in SapScript un PERFORM ... IN PROGRAM. Pune-l inainte de IF &ADRC-ADDRNUMBER& > '0'. In formul respectiv reinitializeaza ADRC prin KNVK cu codul tau vechi: Cod: select single * from knvk where kunnr = kna1-kunnr.
if sy-subrc = 0. select single * from adrc ... ... |
|
| Autor: | dorin [ Mie, 03-Noi-2004 18:03 ] |
| Subiectul mesajului: | |
Am introdus urmatoarea comanda in form: PERFORM &NUME_SIMBOL& IN PROGRAM NUMEPROGRAM. Te rog sa-mi spui daca e corect dupa parerea ta fiindca in form nu mi-a dat eroare iar la rulare e acelasi comportament. Imi afiseaza ultima adresa. Cu multumiri, Dorin |
|
| Autor: | Costin Albu [ Mie, 03-Noi-2004 19:00 ] |
| Subiectul mesajului: | |
PERFORM &NUME_SIMBOL& IN PROGRAM NUMEPROGRAM. ? Nu e bine. PERFORM get_adrc IN PROGRAM zmyforms. si pui codul in ZMYFORMS, rutina get_adrc. |
|
| Autor: | Costin Albu [ Mie, 03-Noi-2004 19:17 ] |
| Subiectul mesajului: | |
vezi ca trebuie si un ENDPERFORM Detalii la: http://help.sap.com/saphelp_erp2004/helpdata/en/d1/803279454211d189710000e8322d00/frameset.htm |
|
| Autor: | dorin [ Joi, 04-Noi-2004 10:21 ] |
| Subiectul mesajului: | |
Va multumesc tuturor pentru ajutorul dat si pentru promtitudinea raspunsurilor. In sfarsit, datorita sfaturilor voastre, am reusit sa rezolv problema. Dorin |
|
| Autor: | bogdancioc [ Joi, 04-Noi-2004 10:33 ] |
| Subiectul mesajului: | |
Dorin, Incearca sa faci debug pe acel SapScript, sa vezi concret ce valori au simbolurile text la momentele cand faci WRITE_FORM. Poate astfel devine mai clar modul in care se paseaza aceste valori intre raportul ABAP si form-ul SapScript, si poate asta te ajuta. |
|
| Pagina 1 din 1 | Ora este UTC + 2 [ DST ] |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|