Собственная программа в бланке документа.

Собственная программа в бланке документа.

Сообщение dmitry » Чт дек 04, 2014 2:17 pm

Начиная с версии 4.2.26 в конструкторе бланков можно добавить логику, написать программу.
Например:
1. Чтобы в накладной печатался текст о задолженности покупателя.
2. Чтобы была ссылка на связанный документ ("По счету №...").
3. Чтобы при связи с оплатой был текст о сумме аванса.

Общие действия:
- В бланке добавить пустую рамку для текста, присвоить ей имя "Note".
- Нажать "Программа" и вставить текст, выбранный ниже.
- Закрыть (сохранив изменения) и снова нажать "Печать".

2.png
2.png (21.04 КБ) Просмотров: 4836

Варианты:

1. Долг покупателя:

Note.Text = ""
Dim Op As Predpr.Doc = Frm.Op
Dim Pokup As Predpr.Person = Op.DocPerson
If Pokup Is Nothing Then Exit Sub
Dim Sum as Decimal
Sum = Pokup.GetDebt("Db", Op)
If Sum>0 Then Note.Text = "Ваш долг без учета этой накладной: " & Sum.ToString("0.00")


2. Ссылка "По счету №...":

Note.Text = ""
Dim Op As Predpr.Doc = Frm.Op
Dim LinkOp as Predpr.Doc = Op.GetLinkDoc(3)
If LinkOp is nothing Then Exit Sub
Note.Text="За рахунком № " & LinkOp.DocNum & " вiд " & LinkOp.DocDate
'Note.Text="По счету № " & LinkOp.DocNum & " от " & LinkOp.DocDate


3. Про аванс или полную оплату:

Note.Text = ""
Dim Op As Predpr.Doc = Frm.Op
Dim LinkOp as Predpr.Doc
LinkOp = Op.GetLinkDoc(6)'Касса
'LinkOp = Op.GetLinkDoc(4)'Банк
If LinkOp is nothing Then Exit Sub
If LinkOp.DocSum < Op.DocSum Then
Note.Text = "Получен аванс " & LinkOp.DocSum.ToString("0.00")
end if
If LinkOp.DocSum >= Op.DocSum Then
Note.Text = "Оплачено " & LinkOp.DocSum.ToString("0.00")
end if



P.S. Если в тексте будет ошибка, то при нажатии "Печать" появится ее описание, и строка, вызвавшая сбой, будет отмечена красным. Можно ее просто закомментировать (апостроф в начале строки), сохранить и снова нажать "Печать".
dmitry
Разработчик
 
Сообщения: 3922
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Вернуться в Использование программы

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

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

cron