Назначение данного репорта - вывести детализированный отчет по телефону (он формируется динамически по клику на телефоне в основном отчете).
Какой отчет будет сгенерен по клику
На что бы хотелось обратить внимание:
При двойном клике по ячейке с Notes откроется окно редактирования примечания:
` m4rb_notes('comment_for_m4rb.dbf',padl(phonek.phonenum,10,"0"),'<.....>','Edit notes for phone '+TRANSFORM(phonek.phonenum,"(999)-999-9999")) `
Назначение функции m4rb_notes - вывести редактируемое значение и самое главное - редактировать это значение по клику!
Данная функция вставляет в отчет редактируемое примечание. Т.е. без лишних затрат, разработок и т.д. Вы можете значительно расширить функциональность программы - значение как выводится, так и редактируется специальной формой редактирования.
Какие параметры передаются в функцию:
1 параметр - Имя таблицы, где хранятся примечания.
Если таблицы нет, она будет создана.
НЕ ДОПУСКАЕТСЯ применение таблиц с одинаковыми именами (в разных каталогах)
2 параметр - уникальный идентификатор примечания.
Идентификатор должен быть символьным, размер - не более 20 символов
Идентификатор отличает одно присечание от другого, в одной таблице не может быть двух одинаковых идентификаторов.
3 параметр - строка по умолчанию, если примечание не введено.
Данная строка никуда не вносится, она лишь отображается при пустом значении.
4 параметр - строка для помощи при вводе.
Отображается при редактировании в специальной форме.
При клике на тексте примечания (в данном случае <.....>) откроется окно
где можно ввести некое примечание (например - Notes for phone)
а уже после сохранения обновится и детализированный отчет.
За обновление отчета отвечает процедура Refresh (через контекстное меню Report/Refresh)
Текст процедуры -достаточно прост. Смысл ее - по заранее переданному идентификатору телефона (значение находится в локальной переменной zzz ) заново сформировать страницу:
lparameters zzz
wait window "Refresh report... Please wait" nowait
LOCAL s_
s_=SELECT()
select phone
SELECT * FROM phone WHERE id_=zzz INTO CURSOR phonek
do maple4_ru_rb with 1,'phone_user_detail.m4rb','','phonek','phone_detail.html','Detail'
SELECT (s_)
wait clear
Вопрос - а как туда этот идентификатор попал?
Отвечаю:
Если посмотреть на пример предыдущего репорта - phone_user.m4rb - в ячейке Phone Number - Edit/Cell/Click контекстного меню,
можно (и нужно) обратить внимание на запуск генерации отчета по клику
maple4_ru_rb(0,'phone_user_detail.m4rb','','phonek','phone_detail.html','Detail',.f.,`alltr(str(phonek.id_))`)
phonek.id_ - это и есть тот уникальный идентификатор, который передается в репорт phone_user_detail.m4rb
|