Текущее время: Пн, июл 28 2025, 11:58

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Помогите, плиз, вроде разобрался, но что-то опять не пашет.
СообщениеДобавлено: Чт, апр 14 2005, 20:37 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Моя нарисованная таблица имеет имена полей name и namber.
Насколько я понял, через внутреннюю таблицу p_result ,
должно происходить заполнение экранной таблицы подходящими полями name_id .
Но этого не происходит, почему?
Вот код, если кто ответит, буду очень благодарен.
Цитата:
TYPES: begin of nameid,
name(20),
number type i,
end of nameid.
DATA name_id TYPE nameid.

DATA p_result LIKE name_id OCCURS 100 WITH HEADER LINE.

CONTROLS: PAY_RESULT TYPE TABLEVIEW USING SCREEN 0200.
*........

PROCESS BEFORE OUTPUT.
MODULE init_pay_result.
LOOP AT p_result WITH CONTROL PAY_RESULT
CURSOR PAY_RESULT-CURRENT_LINE.
MODULE fill_p_result.
ENDLOOP.

MODULE fill_p_result OUTPUT.
name_id-name = 'VERSION'.
ENDMODULE.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, апр 14 2005, 21:32 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Если кого-то не затруднит, может сюда скинуть пример того
как созданную экранную таблицу заполнить своими данными,
под вечер уже просто НИЧЕГО не получается:(
Заранее спасибо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 08:12 
Специалист
Специалист

Зарегистрирован:
Ср, сен 08 2004, 16:04
Сообщения: 112
Откуда: Ukraine
Пол: Мужской
Я как правило, заполняю таблицу до вызова экрана
или до цикла в PROCESS BEFORE OUTPUT.
А в цикле данные сами выбираются и подставляются и не нужно пихать своё значение в
MODULE fill_p_result OUTPUT.

Лучше всего вам посмотреть пример программы
DEMO_DYNPRO_TABCONT_LOOP_AT.
Там ве просто и без наворотов.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 09:01 
Гость
******* описание данных************

DATA: BEGIN OF ZPD OCCURS 0,
SL(1),
DT TYPE D,
DW(15),
IND(1),
END OF ZPD.

CONTROLS: EZPD TYPE TABLEVIEW USING SCREEN 0150.

*****************************

*логика экрана:

PROCESS BEFORE OUTPUT.

MODULE STATUS_0150.
module EZPD_change_tc_attr.
loop at ZPD
with control EZPD
cursor EZPD-current_line.
endloop.



*
PROCESS AFTER INPUT.
loop at ZPD.
chain.
field ZPD-DT.
module EZPD_modify on chain-request.
endchain.
field ZPD-SL
module EZPD_mark on request.
endloop.

MODULE EX_EX AT EXIT-COMMAND.
MODULE USER_COMMAND_0150.



************* Модули *****************
MODULE STATUS_0150 OUTPUT.
SET PF-STATUS 'Z11'.
SET TITLEBAR '1'.
CLEAR ZPD.
REFRESH ZPD.
DT = SY-DATUM.
DO 21 TIMES.
ZPD-DT = DT.
DT = DT + 1.
APPEND ZPD.
ENDDO.
LOOP AT ZPD.
CLEAR ZGARA_ZAK.
CALL FUNCTION 'DAY_IN_WEEK'
EXPORTING
DATUM = ZPD-DT
IMPORTING
WOTNR = DN.
CASE DN.
WHEN 1. ZPD-DW = 'Понедельник'.
WHEN 2. ZPD-DW = 'Вторник'.
WHEN 3. ZPD-DW = 'Среда'.
WHEN 4. ZPD-DW = 'Четверг'.
WHEN 5. ZPD-DW = 'Пятница'.
WHEN 6. ZPD-DW = 'Суббота'.
WHEN 7. ZPD-DW = 'Воскресенье'.

ENDCASE.

MODIFY ZPD.
ENDLOOP.


ENDMODULE.
************************
MODULE EZPD_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE ZPD LINES EZPD-LINES.
ENDMODULE. "EZPD_change_tc_attr OUTPUT
*********************************
MODULE EZPD_MODIFY INPUT.
MODIFY ZPD
INDEX EZPD-CURRENT_LINE.
ENDMODULE. "EZPD_modify INPUT
********************************
MODULE EZPD_MARK INPUT.
DATA: G_EZPD_WA2 LIKE LINE OF ZPD.
IF EZPD-LINE_SEL_MODE = 1.
LOOP AT ZPD INTO G_EZPD_WA2
WHERE SL = 'X'.
G_EZPD_WA2-SL = ''.
MODIFY ZPD
FROM G_EZPD_WA2
TRANSPORTING SL.
ENDLOOP.
ENDIF.
MODIFY ZPD
INDEX EZPD-CURRENT_LINE
TRANSPORTING SL.
ENDMODULE.
*****************************
MODULE USER_COMMAND_0150 INPUT.
CLEAR: F, L, O.
GET CURSOR FIELD F LINE L OFFSET O.
CLEAR DT.
IF L > 0 AND L <= 21.
READ TABLE ZPD INDEX L.
DT = ZPD-DT.
DWEEK = ZPD-DW.
ENDIF.
IF NOT DT IS INITIAL AND OK = 'VB'.
CLEAR OK.
PERFORM FROMTAB.
LEAVE TO SCREEN 0100.
ENDIF.
IF OK = 'CLE'.
CLEAR: OK, DT.
DT = SY-DATUM - 3.
CALL SCREEN 500 STARTING AT 5 5.
ENDIF.

ENDMODULE.
*************
MODULE EX_EX INPUT.
LEAVE PROGRAM.
ENDMODULE.
**********


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 10:22 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Повторил, BH, что ты написал для своих данных.
Именно:
Цитата:
DATA: BEGIN OF name_id OCCURS 0,
name(10) type c,
number type i,
END OF name_id.
CONTROLS: PAY_RESULT TYPE TABLEVIEW USING SCREEN 0200.

MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'MY_STATUS'.
SET TITLEBAR 'Payroll of one period'.
CLEAR name_id.
REFRESH name_id.

DO 7 TIMES.
name_id-name = 'SALAS'.
name_id-number = 24.
APPEND name_id.
ENDDO.
ENDMODULE.
MODULE change_attr OUTPUT.
DESCRIBE TABLE name_id LINES PAY_RESULT-LINES.
ENDMODULE.


Экранный код такой:

Цитата:
ROCESS BEFORE OUTPUT.

MODULE STATUS_0200.
MODULE change_attr.

LOOP AT name_id WITH CONTROL PAY_RESULT
CURSOR PAY_RESULT-CURRENT_LINE.
ENDLOOP.

PROCESS AFTER INPUT.

MODULE USER_COMMAND_0200.
LOOP AT name_id.
ENDLOOP.


На экранной таблице поля NAME и NUMBER не заполняются SALAS и 24.
Из-за чего такое происходит?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 10:35 
Гость
1. посмотри в экранном редакторе
присвоены ли ИМЕНА полей внутри экранной таблицы

2. не забывай ВСЁ активировать


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 10:52 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Все активировал раз по 10 :)
На экранной таблице параметры:

ТипЭлемен Экранная таблица: PAY_RESULT
И в атрибутах разделители выставлены
остальное по умолчанию.

В самой таблице
ТипЭлемен Поле текста
ИМЯ - NAME
ТЕКСТ - Имя
у второго поля
ИМЯ - NUMBER
ТЕКСТ - Число

В полях:
ТипЭлемен Поле ввода/вывода
Имя - NAME и NUMBER -соответственно
длина поля NAME - 10
поле NUMBER
имеет формат INT4.

Всё...

Возможно, что нужно, какие-то еще галочки поставить?

Если есть идеи, предложите, плиз.
Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 10:55 
Гость
вместо NAME и NUMBER

нужно соответственно name_id-NAME и name_id-NUMBER


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 11:14 
Специалист
Специалист

Зарегистрирован:
Пт, мар 25 2005, 13:58
Сообщения: 216
Ура!!!
Спасибо! Буду знать.
5 часов впустую убил!
Сейчас от счастья чуть с ума не сошел!

Всем счастья!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 15 2005, 11:34 
Гость
Salas написал(а):
Ура!!!
Спасибо! Буду знать.
5 часов впустую убил!
Сейчас от счастья чуть с ума не сошел!

Всем счастья!

:wink:


Принять этот ответ
Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB