Acum este Mar, 30-Apr-2024 11:20

Ora este UTC + 2 [ DST ]




Scrie un subiect nou Răspunde la subiect  [ 13 mesaje ] 
Autor Mesaj
 Subiectul mesajului: Problema intr-un form in SE71
MesajScris: Mar, 02-Noi-2004 16:39 
Neconectat

Membru din: Joi, 21-Oct-2004 09:46
Mesaje: 8
Locaţie: Cluj-Napoca
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


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mar, 02-Noi-2004 17:44 
Neconectat
Site Admin

Membru din: Lun, 19-Mai-2003 12:03
Mesaje: 324
Locaţie: Bucuresti
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.


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mar, 02-Noi-2004 18:04 
Neconectat

Membru din: Joi, 21-Oct-2004 09:46
Mesaje: 8
Locaţie: Cluj-Napoca
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


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mie, 03-Noi-2004 11:36 
Neconectat

Membru din: Lun, 20-Oct-2003 08:41
Mesaje: 84
Locaţie: Bucuresti
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.

_________________
Bogdan CIOC


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mie, 03-Noi-2004 12:40 
Neconectat

Membru din: Joi, 21-Oct-2004 09:46
Mesaje: 8
Locaţie: Cluj-Napoca
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


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mie, 03-Noi-2004 13:36 
Neconectat

Membru din: Lun, 20-Oct-2003 08:41
Mesaje: 84
Locaţie: Bucuresti
No offence (eu am facut greseala asta si aproape mi-am iesit din minti tot facand modificari :)) ) dar esti sigur ca raportul foloseste fix formularul in care tu faci acele modificari?
Daca ai mai multe versiuni, verifica daca versiunea folosita de program e aceeasi cu cea pe care tu o modifici.

_________________
Bogdan CIOC


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mie, 03-Noi-2004 14:50 
Neconectat

Membru din: Joi, 21-Oct-2004 09:46
Mesaje: 8
Locaţie: Cluj-Napoca
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


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mie, 03-Noi-2004 15:00 
Neconectat
Site Admin

Membru din: Lun, 19-Mai-2003 12:03
Mesaje: 324
Locaţie: Bucuresti
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
   ...
   ...


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mie, 03-Noi-2004 18:03 
Neconectat

Membru din: Joi, 21-Oct-2004 09:46
Mesaje: 8
Locaţie: Cluj-Napoca
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


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mie, 03-Noi-2004 19:00 
Neconectat
Site Admin

Membru din: Lun, 19-Mai-2003 12:03
Mesaje: 324
Locaţie: Bucuresti
PERFORM &NUME_SIMBOL& IN PROGRAM NUMEPROGRAM. ?

Nu e bine.

PERFORM get_adrc IN PROGRAM zmyforms.

si pui codul in ZMYFORMS, rutina get_adrc.


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Mie, 03-Noi-2004 19:17 
Neconectat
Site Admin

Membru din: Lun, 19-Mai-2003 12:03
Mesaje: 324
Locaţie: Bucuresti
vezi ca trebuie si un ENDPERFORM

Detalii la:
http://help.sap.com/saphelp_erp2004/helpdata/en/d1/803279454211d189710000e8322d00/frameset.htm


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Joi, 04-Noi-2004 10:21 
Neconectat

Membru din: Joi, 21-Oct-2004 09:46
Mesaje: 8
Locaţie: Cluj-Napoca
Va multumesc tuturor pentru ajutorul dat si pentru promtitudinea raspunsurilor. In sfarsit, datorita sfaturilor voastre, am reusit sa rezolv problema.
Dorin


Sus
 Profil  
Răspuns cu citat  
 Subiectul mesajului:
MesajScris: Joi, 04-Noi-2004 10:33 
Neconectat

Membru din: Lun, 20-Oct-2003 08:41
Mesaje: 84
Locaţie: Bucuresti
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.

_________________
Bogdan CIOC


Sus
 Profil  
Răspuns cu citat  
Afişează mesajele de la anteriorul:  Sortează după  
Scrie un subiect nou Răspunde la subiect  [ 13 mesaje ] 

Ora este UTC + 2 [ DST ]


Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 3 vizitatori


Nu puteţi scrie subiecte noi în acest forum
Nu puteţi răspunde subiectelor din acest forum
Nu puteţi modifica mesajele dumneavoastră în acest forum
Nu puteţi şterge mesajele dumneavoastră în acest forum
Nu puteţi publica ataşamente în acest forum

Căutare după:
Mergi la:  
cron
POWERED_BY
Translation/Traducere: phpBB România