|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
Добрый день всем. У меня немного нубский вопрос: печатаю документ из PB в нескольких экземплярах и нужно на каждой копии указывать ее номер. То есть если перед печатью я указываю 3 копии, то на каждом документе должен быть соответствующий номер (1, 2, 3). Долго гуглил, пытаясь найти что-нибудь вроде функции page(), которую можно указать в вычисляемом поле, но не нашел. Подскажите, как можно это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 12:28 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
посылать не три копии на печать, а одну три раза... перед каждым разом гдето в отчете вручную проставлять нужную цифру ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 13:28 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
VanoRпосылать не три копии на печать, а одну три раза... перед каждым разом гдето в отчете вручную проставлять нужную цифру Смысл как раз в том, чтобы все было автоматически. Получается, что это невозможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 14:19 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
Можно попробовать перед отправкой на печать делать копии строк в это же DW. А потом их удалять. И всё это крутить в режиме SetRedraw(False) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 14:33 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
onyx2012VanoRпосылать не три копии на печать, а одну три раза... перед каждым разом гдето в отчете вручную проставлять нужную цифру Смысл как раз в том, чтобы все было автоматически. Получается, что это невозможно? Ну, так и автоматизируйте то, что вам предложили. Создайте функцию с входным параметром "количество копий"(N), в которой в цикле N раз будет запускаться процесс печати 1-ой копии. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 14:41 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
AISonyx2012пропущено... Смысл как раз в том, чтобы все было автоматически. Получается, что это невозможно? Ну, так и автоматизируйте то, что вам предложили. Создайте функцию с входным параметром "количество копий"(N), в которой в цикле N раз будет запускаться процесс печати 1-ой копии. Да, я понимаю. Тут загвостка в том, что нужно предоставлять пользователю привычное окно печати, в котором по умолчанию кол-во копий = 3 и при желании он смог бы его изменять. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 14:46 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
ну так предоставьте окно юзеру один раз, а печать вызывайте столько, сколько там выбрал пользователь... не пойму в чем проблема ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 15:23 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
Хорошо, сделал, как вы сказали (пускаю на печать через цикл). Остался последний вопрос: как в datawindow (там, где sql запрос) обратиться к функции и получить нужную переменную? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 15:42 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
1) Передавайте номер в качестве retrival argument`a и используйте его в селекте Код: plaintext 1. 2.
2) <DW Control Name>.Modify("<Textname>.Text = 'Номер'") 3) <DW Control Name>.Object.<Textname>.Text = 'Номер' 4) Если используете логирование печати - берите номер из таблицы с логом печати 5)... Вариантов много ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2011, 21:23 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
yaCooler3) <DW Control Name>.Object.<Textname>.Text = 'Номер' Пытаюсь делать по этому варианту. Пишу: data_w_nakl.copy_num.text = ll_copies (где ll_copies - число) но ругается Undefined variable: data_w_nakl Я неправильно обращаюсь к DataWindow? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 10:21 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
onyx2012Я неправильно обращаюсь к DataWindow? А что такое у Вас data_w_nakl ? Наверное dataobject, а не объект DataWindow на окне? Обращаться надо к объекту на окне. Примерно так: <ваш_datawindow> .Object. copy_num.text = ll_copies ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 11:59 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
Ikaronyx2012Я неправильно обращаюсь к DataWindow? А что такое у Вас data_w_nakl ? Наверное dataobject, а не объект DataWindow на окне? Обращаться надо к объекту на окне. Примерно так: <ваш_datawindow> .Object. copy_num.text = ll_copies Да-да, я опечатался data_w_nakl - это DataWindow, а обращаюсь я именно так: data_w_nakl.Object.copy_num.text = ll_copies Но появляется эта ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 12:04 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
Может все-таки string(ll_copies)? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 12:29 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
spas2001Может все-таки string(ll_copies)? Я дико извиняюсь, но с PB совершенно не дружу. Не могли бы вы более развернуто описать этот метод или причину, по которой компилятор ругается на обращение к DataWindow? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 12:36 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
onyx2012ll_copies (где ll_copies - число) А должно быть - строка ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 12:38 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
И еще data_w_nakl - это DataWindow, а как контрол в окне называется в котором выводится dw? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 12:39 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
spas2001И еще data_w_nakl - это DataWindow, а как контрол в окне называется в котором выводится dw? DataWindow data_w_nakl вызывается из Window w_nakl, если я правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 12:51 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
onyx2012 , диагноз такой - не указан номер строки, из которой в столбце берется(устанавливается?!) значение, поэтому делайте так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 14:02 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
AIS, Спасибо, но в DataWindow у меня нет столбцов, там только текстовые элементы. В один из них нужно запихнуть то самое число, которое не удается передать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 14:18 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
onyx2012 , тогда используйте такую конструкцию: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 14:29 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
AIS onyx2012 , тогда используйте такую конструкцию: Код: plaintext 1. 2. 3.
Пытаюсь, но компилятор всегда ругается Warning C0014: Undefined variable: data_w_nakl ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 14:33 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
Сделайте на вашем окне edit source правой кнопкой мыши в дереве, и выложите текст (с самого начала до слов type variables) сюда под спойлер. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 15:07 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
Я и говорю, что сама dw как объект - data_w_nakl, а в окне она вствлена в контрол dW и называется dw_1 к примеру ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 15:07 |
|
Номер экземпляра (копии) документа
|
|||
---|---|---|---|
#18+
spas2001, long ll_copies s_printjob lstr_print w_vivz_docum lw_sheet lw_sheet = This.of_get_sheet('w_vivz_docum') if IsValid(lw_sheet) then if ib_printsetup then OpenWithParm(etfc_w_print, ii_copies) if not IsValid(Message.PowerObjectParm) then if not ib_viewenable then Close(lw_sheet) end if Return end if lstr_print = Message.PowerObjectParm if lstr_print.b_collate then lw_sheet.dw_vivz_docum.Object.DataWindow.Print.Collate = "Yes" else lw_sheet.dw_vivz_docum.Object.DataWindow.Print.Collate = "No" end if lw_sheet.dw_vivz_docum.Object.DataWindow.Print.Copies = lstr_print.i_copies lw_sheet.dw_vivz_docum.Object.DataWindow.Print.Page.Range = lstr_print.s_range lw_sheet.dw_vivz_docum.Object.DataWindow.Print.Page.RangeInclude = lstr_print.i_include else lw_sheet.dw_vivz_docum.Object.DataWindow.Print.Copies = ii_copies end if //НАЧАЛО if lw_sheet.dw_vivz_docum.DataObject = 'data_w_nakl' then lw_sheet.dw_vivz_docum.Object.DataWindow.Print.Copies = 1 ll_copies = 1 do while ll_copies <= lstr_print.i_copies data_w_nakl.Modify("copy_num.text = ~'" + string(ll_copies) + "~'") lw_sheet.dw_vivz_docum.Print(True) ll_copies++ loop else lw_sheet.dw_vivz_docum.Print(True) end if //КОНЕЦ if ib_closereport then Close(lw_sheet) end if end if Отметил НАЧАЛО и КОНЕЦ в коде ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2011, 15:16 |
|
|
start [/forum/topic.php?fid=15&msg=37527183&tid=1335612]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 400ms |
0 / 0 |