Текущее время: Сб, июн 21 2025, 17:36

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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