BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Главная  / Поддержка  / Форум  / Публичные форумы  / Программирование отчетов  / Пытаюсь освоить Дизайнер отчетов

Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: Пред. 1 ... 5 6 7 8 9 ... 12 След.
RSS
Пытаюсь освоить Дизайнер отчетов
 
Цитата

Сергей Введенский пишет:
...Пример инициализации объекта DBList можно посмотреть в отчете "Транспортная
накладная (прил.4)". Там этот объект используется для выбора уполномоченного
лица грузоотправителя. Для этого объекта в свойстве ListSource надо указать
источник данных, который будет использоваться для отображения справочника, в
свойстве GridFieldLists задать поля, которые будут отображаться при вызове
справочника, в свойстве ListField указать поле, которое при выборе значения
будет переносится из справочника в текстовое поле.
Вроде как начинеает получаться,то что хочу.
Правда, сейчас в окне ввода у меня предоставляются значение нужного поля , но всех партнеров, а лучше бы если это было значение только одного пратнера, с чьим докуметом я работаю.
Изменено: Новосибирск ОАО "Электропромпроект" - 05.02.2013 10:51:44
 
В этой же типовой "Транспортная
накладная (прил.4)" в шаблоне в поле Грузоотправитель есть такой скрипт, самое его начало:
if lFlagGOTSelf = true then cGOTFIO := dbPeople1.text else cGOTFIO := pGOT_FIO.text;
cGOTFIO:= cGOTFIO+if(LENGTH(TRIM([pGOT_tel.text]))>0,', '+[pGOT_tel.text],'');
lFlagGOTSelf - что за переменная? Значение которой устанвливается в OnActivate стр1

И что там за команда dPeople1.open? Она встречается как одиночная, только open.

А вот встречается в паре:

GOT_kont.close; GOT_kont.params['код_партнера'] := [DialogForm.Shapka."КОД_ГРУЗООТПРАВИТЕЛЬ"]; GOT_kont.open;

и почему-то вперед close , а потом open?


Что в командах:

Label_Adress1.Enabled := (nAddr1=2)

List_Adress1.Enabled := (nAddr1=2)

означает парметр nAddr1=2 и какие он еще может принимать значения?
Изменено: Новосибирск ОАО "Электропромпроект" - 05.02.2013 13:20:34
 
Почему во второй Карточке запроса Счет-фактуры по накладной :
1) в окне Продавец. Адрес для выбора предоставляются два адреса (похоже это фактический адрес)? Как задается что два адреса и какие адреса и где заданы какие именно адреса?
2) в окне Грузоотправитель. Адрес для выбора предоставляются так же два адреса (похоже это фактический адрес)? Как задается что два адреса и какие адреса?
3) в окне Покупатель. Адрес для выбора предоставляются так же два адреса (но похоже это юридический и фактический адрес - у одного из партнеров они разные потому и обратил Внимание )? Как задается что два адреса и какие адреса и как они задаются?
Изменено: Новосибирск ОАО "Электропромпроект" - 05.02.2013 13:25:27
 
Цитата
Сергей Введенский пишет:
Пример инициализации объекта DBList можно посмотреть в отчете "Транспортная
накладная (прил.4)". Там этот объект используется для выбора уполномоченного
лица грузоотправителя. Для этого объекта в свойстве ListSource надо указать
источник данных, который будет использоваться для отображения справочника, в
свойстве GridFieldLists задать поля, которые будут отображаться при вызове
справочника, в свойстве ListField указать поле, которое при выборе значения
будет переносится из справочника в текстовое поле.
А как производится инициализации объекта Edit в подобном случае? Что бы в его окне было значение из БД, которое можно было бы менять по необходимости?
 
Например, на форме, в событие OnActive
пишем примерно так:
Dialogform.PostWho.SaveUserParam := False;
DialogForm.PostWho.Text:=[DialogForm.Partner."ПОЛНОЕ_НАИМЕНОВАНИЕ"];

//Dialogform.PostWho - это объект TfrEditControl
//DialogForm.Partner - это какой-нибудь источник
 
Цитата
Сергей Джулай пишет:
Dialogform.PostWho.SaveUserParam := False; DialogForm.PostWho.Text:=[DialogForm.Partner."ПОЛНОЕ_НАИМЕНОВАНИЕ"];


Не получается.
DialogForm.PostWho.Text:=[DialogForm.Partner."ПОЛНОЕ_НАИМЕНОВАНИЕ"];

это верно???
...
Да, без подчеркнутого. Но все равно не получается. У меня в окне выводится значения первого партнера из Спрвочника партнеров.

Выше я писал, когда для выбора мне предоставляются значения этого поля всех партнеров (всего справочника), а тут первого! Как отановится на нужном, одном!?
Изменено: Новосибирск ОАО "Электропромпроект" - 05.02.2013 14:28:43
 
Цитата
Новосибирск ОАО "Электропромпроект" пишет:
В этой же типовой "Транспортная
накладная (прил.4)" в шаблоне в поле Грузоотправитель есть такой скрипт, самое его начало:
if lFlagGOTSelf = true then cGOTFIO := dbPeople1.text else cGOTFIO := pGOT_FIO.text;
cGOTFIO:= cGOTFIO+if(LENGTH(TRIM([pGOT_tel.text]))>0,', '+[pGOT_tel.text],'');
lFlagGOTSelf - что за переменная? Значение которой устанвливается в OnActivate стр1

И что там за команда dPeople1. open ? Она встречается как одиночная, только open.

А вот встречается в паре:

GOT_kont. close ; GOT_kont.params['код_партнера'] := [DialogForm.Shapka."КОД_ГРУЗООТПРАВИТЕЛЬ"]; GOT_kont. open ;

и почему-то вперед close , а потом open?


Что в командах:

Label_Adress1.Enabled := (nAddr1=2)

List_Adress1.Enabled := (nAddr1=2)

означает парметр nAddr1=2 и какие он еще может принимать значения?
В OnActivate на стр.1 есть комментарии перед оператором установки lFlagGOTSelf := true;
//Установить для ответственного лица справочник сотрудников, если поставщик и грузоотправитель одинаковы
if [DialogForm.Shapka."КОД_СОБСТВЕННОГО_ПРЕДПРИЯТИЯ"]=[DialogForm.Shapka."КОД_ГРУЗООТПРАВИТЕЛЯ"] then begin
dPeople1.open;
dbPeople1.visible := true;
pGOT_FIO.visible := false;
lFlagGOTSelf := true;
end;
Фактически lFlagGOTSelf - это признак того из какого справочника берется грузоотправитель: из сотрудников или из партнеров.
dPeople1.open - это команда открытия источника данных dPeople1
GOT_kont. close ; GOT_kont.params['код_партнера'] := [DialogForm.Shapka."КОД_ГРУЗООТПРАВИТЕЛЬ"]; GOT_kont. open ;
- эти три оператора переоткрывают источник GOT_kont с новым значением параметра 'код_партнера'. Для того, чтобы открытый
источник данных отработал с новым значением параметра, этот источник надо сначала закрыть, потом передать туда параметр,
а потом снова открыть.
Label_Adress1.Enabled := (nAddr1=2) - это видимо уже из другого отчета "Товарная накладная ТОРГ-12". Переменные nAddr1, nAddr2 и т.д. в этом шаблоне определены в скрипте у кнопки "Выполнить" на стр.1
 
Цитата
Новосибирск ОАО "Электропромпроект" пишет:
Не получается.
DialogForm .PostWho.Text:=[DialogForm.Partner."ПОЛНОЕ_НАИМЕНОВАНИЕ"];

это верно???

конечно верно, это ведь пример.
Вы ведь спрашивали о том как

Цитата
Новосибирск ОАО "Электропромпроект" пишет:
А как производится инициализации объекта Edit
 
Цитата
Новосибирск ОАО "Электропромпроект" пишет:
Почему во второй Карточке запроса Счет-фактуры по накладной :
1) в окне Продавец. Адрес для выбора предоставляются два адреса (похоже это фактический адрес)? Как задается что два адреса и какие адреса и где заданы какие именно адреса?
2) в окне Грузоотправитель. Адрес для выбора предоставляются так же два адреса (похоже это фактический адрес)? Как задается что два адреса и какие адреса?
3) в окне Покупатель. Адрес для выбора предоставляются так же два адреса (но похоже это юридический и фактический адрес - у одного из партнеров они разные потому и обратил Внимание )? Как задается что два адреса и какие адреса и как они задаются?
Адресов для выбора предлагается столько столько их введено в справочнике партнеров для данного партнера. Источник данных, который используется для показа справочника адресов выбирает все адреса по данному партнеру.
 
ТАк как мне стать в окне запроса на нужного партнера, а не на первого в справочнике?

Цитата
Сергей Введенский пишет:
GOT_kont. close ; GOT_kont.params['код_партнера'] :=
[DialogForm.Shapka."КОД_ГРУЗООТПРАВИТЕЛЬ"]; GOT_kont. open ;
- эти три
оператора переоткрывают источник GOT_kont с новым значением параметра
'код_партнера'. Для того, чтобы открытый
источник данных отработал с новым
значением параметра, этот источник надо сначала закрыть, потом передать туда
параметр,
а потом снова открыть.



Как я понимаю, это и есть то,что мне нужно?
Какие праметры надо передавать чтобы попасть на нужную запись источника? Как определить?

В Счет-фактуре по накладной есть такой фрагмент
GOTPR.CLOSE;
GOTPR.params['Код_арма']:=[DialogForm.task."Код_арма"];
GOTPR.Params['Тип _базы ']:=cTypeBase;
GOTPR. OPEN;

Сделал по аналогии - не получилось.

Изменено: Новосибирск ОАО "Электропромпроект" - 06.02.2013 13:53:00
 
Цитата
Сергей Введенский пишет:
Label_Adress1.Enabled := (nAddr1=2) - это видимо уже из другого отчета
"Товарная накладная ТОРГ-12". Переменные nAddr1, nAddr2 и т.д. в этом шаблоне
определены в скрипте у кнопки "Выполнить" на стр.1

почему именно 2, а не иное значение? Какое еще можно ставит значение 0,1....,?
 
Цитата


Новосибирск ОАО "Электропромпроект" пишет:
ТАк как мне стать в окне запроса на нужного партнера, а не на первого в справочнике?





Цитата


Сергей Введенский пишет:
GOT_kont. close ; GOT_kont.params['код_партнера'] :=
[DialogForm.Shapka."КОД_ГРУЗООТПРАВИТЕЛЬ"]; GOT_kont. open ;
- эти три
оператора переоткрывают источник GOT_kont с новым значением параметра
'код_партнера'. Для того, чтобы открытый
источник данных отработал с новым
значением параметра, этот источник надо сначала закрыть, потом передать туда
параметр,
а потом снова открыть.



Как я понимаю, это и есть то,что мне нужно?
Какие праметры надо передавать чтобы попасть на нужную запись источника? Как определить?

В Счет-фактуре по накладной есть такой фрагмент
GOTPR.CLOSE;
GOTPR.params['Код_арма']:=[DialogForm.task."Код_арма"];
GOTPR.Params['Тип _базы ']:=cTypeBase;
GOTPR. OPEN;

Сделал по аналогии - не получилось.






В каком шаблоне отчета и в каком конкретно источнике Вам требуется попасть на нужную запись источника ? И чем (каким значением какого поля) эта нужная запись определяется? Далеко не у каждого источника есть параметры, позволяющие выбрать конкретную запись. Возможно придётся перебирать все записи источника в цикле, чтобы найти подходящую:
Istochnik.Open; // или Istochnik.First; - если он уже открыт
while not Istochnik.Eof do begin
if <условие_отбора_записи> then begin
...Действия_с_отобранной_записью...
Break;
end;
Istochnik.Next;
end;
 

Цитата
Сергей Введенский пишет:
Возможно придётся перебирать все записи источника в цикле, чтобы найти
подходящую





Если взять за пример отчет Счет-фактура по накладной.
Там во втором окне запроса вводятся адреса Покупателя и Грузополучателя.
Эти адреса соответвуют истинным, т.е. в Карточке запроса данные взяты с нужной записи источника.
Там как это сделано? Тоже перебором? Что-то я там не обнаружил подобного.

У этих окон Карточки запроса указаны Источники данных Addr3 и Addr4 , среди полей которых нет нужного мне, что бы можно было сделать подстановку и посмотреть

Кстати, в этом шаблоне не найду где опредляется значение переменной Text6a .
Поиск указывает на стр1 Выполнить. Но там есть только начальная установка значения Text6a:=' '.
Явно где-то в другом месте. Только где???
Изменено: Новосибирск ОАО "Электропромпроект" - 07.02.2013 10:24:19
 
Цитата
Новосибирск ОАО "Электропромпроект" пишет:

Если взять за пример отчет Счет-фактура по накладной.
Там во втором окне запроса вводятся адреса Покупателя и Грузополучателя.
Эти адреса соответвуют истинным, т.е. в Карточке запроса данные взяты с нужной записи источника.
Там как это сделано? Тоже перебором? Что-то я там не обнаружил подобного.

У этих окон Карточки запроса указаны Источники данных Addr3 и Addr4 , среди полей которых нет нужного мне, что бы можно было сделать подстановку и посмотреть

Кстати, в этом шаблоне не найду где опредляется значение переменной Text6a .
Поиск указывает на стр1 Выполнить. Но там есть только начальная установка значения Text6a:=' '.
Явно где-то в другом месте. Только где ???



Источники данных, которые используются для получения адресов могут принимать параметры кода партнёра и типа адреса. Задание этих параметров делается в скрипте на кнопке "Выполнить" стр.1 (перебор здесь не нужен):
Addr3.Params['вн_код_партнера'] := [DialogForm.CAP."ВН_КОД_ПАРТНЕРА"];
Addr3.Params['тип_адреса'] :=2; //юридический
Addr3.Open;
if length(trim([DialogForm.Addr3."АДРЕС"]))>0 then Adress3:=[DialogForm.Addr3."АДРЕС"];
Addr3.Close;
Addr3.Params['вн_код_партнера'] := [DialogForm.CAP."ВН_КОД_ПАРТНЕРА"];
Addr3.Params['тип_адреса'] :=0;
Addr3.Open;
Какое поле Вам нужно и куда хотите его подставлять?
Значение переменной Text6a задается в событии OnBeforePrint самого отчета:
If (nAddr3 > 0) and ([LENGTH(DialogForm.Addr3."АДРЕС")]>0) Then Text6a := list_adress3.text;
 
м
Цитата
Сергей Введенский пишет:
Какое поле Вам нужно и куда хотите его подставлять?





Мне нужно модифицировать отчет Акт на работы (услуги), а именно вставить в поле Представитель заказчика нужную фамилию. Эта фамилия занесена в одно из свободных полей Справочника ПАРТНЕРЫ ПРЕДПРИЯТИЯ . Для упрощения примера возьмем поле СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ.
Я беру существующий шаблон отчета Акт на работы (услуги) и модифицирую его по следующей схеме.

1. Как мы говорили раньше Справочник партнеров это bdf.sprav.sprav_partner
В данном отчете такого источника нет.
Поэтому я ввожу дополнительный Источник БЭСТ в Карточке запроса стр.2., в котором устанавливаю:

DSName = bdf.sprav.sprav_partner

Name = partner1.

Params = [DialogForm.Shapka." СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "]

2. В Карточке запроса на стр.2 во втором окне запроса Представитель «Заказчика» меняю элемент управления в Edit на DBList (для выбора значения из таблицы-справочника) и
устанавливаю его свойства:

ListSource = partner1
ListField = СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ
GridFieldLists - в перечне полей пометил галочкой СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ
KeyField = СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ
Name = PrZak

3. В скрипте OnActivate пишу в конце алгоритма примерно так:

PrZak.SaveUserParam := false;
PrZak.Text:= [DialogForm.partner1" СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "]


4. На стр.1 в шаблоне в поле Представитель Заказчика ставлю переменную mmm и в скрипте пишу


mmm:=[PrZak.TEXT];
if mmm='' then mmm :=[DialogForm. partner1" СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "]

ВСЕ.

При выполнении такого отчета в Карточке запроса в окне Представитель заказчика
будет стоять значение из первой записи справочника ПАРТНЕРЫ ПРЕДПРИЯТИЯ (т.е.первого партнера). И для выбора будут представлены значения этого поля всех партнеров.

Мне же хотелось бы, что бы в окне Представитель заказчика
стояло значение из той записи справочника ПАРТНЕРЫ ПРЕДПРИЯТИЯ , отчет которого я формирую. И для выбора больше ничего не представлялось (ну или, на худой конец, значения этого поля всех партнеров).

Далее, я либо оставляю то значение, что стоит в окне, либо набираю с клавиатуры нужное мне (либо выбираю, если есть выбор)

Всё.


PS. Да, что интересно. Если я вместо поля " СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ " в этом
примере буду использовать поле " ПОЛНОЕ_НАИМЕНОВАНИЕ ", то
в окне Представитель заказчика для выбора будут представлены не значения этого поля всех партнеров. а текст {MEMO}
См файл.

Если использую другое поле, такого не происходит.
Изменено: Новосибирск ОАО "Электропромпроект" - 08.02.2013 12:34:29
 
Поясните, пожалуйста смысл команд:

1.Addr3.Params['вн_код_партнера'] := [DialogForm.CAP."ВН_КОД_ПАРТНЕРА"];

Ведь Addr3 и CAP - это Источники данных с одинаковыми справочниками bdf.form_sclad.form_sclad_partner в DSName
Что чему присваивается - поля одноименные, источники одинаковые...?
И это команда так сказать необходимая для какой-то связки , т.е. она всегда будет с этими полями 'вн_код_партнера', только с источниками надо разобраться. Правильно я понимаю?

2. А вот эти команды

Addr3.Params['тип_адреса'] :=2; //юридический
....
Addr3.Params['тип_адреса'] :=0;


как я понимаю не общие, издесь для конкретного случая коль выводятся адреса и в них своя особенность их два и тд и тп
Т.е в других случаях этих команд не будет.
Так?

Т.е. обязательно должны быть аналоги вот этих команд:

Addr3.Params['вн_код_партнера'] := [DialogForm.CAP."ВН_КОД_ПАРТНЕРА"];
Addr3.Params['тип_адреса'] :=2; //юридический
Addr3.Open;
if length(trim([DialogForm.Addr3."АДРЕС"]))>0 then Adress3:=[DialogForm.Addr3."АДРЕС"];
Addr3.Close;
Addr3.Params['вн_код_партнера'] := [DialogForm.CAP."ВН_КОД_ПАРТНЕРА"];
Addr3.Params['тип_адреса'] :=0;
Addr3.Open;

Так? Нет?


Правда я в свой отчет вышеописанный влепил их

Partner1.Params[''вн_код_партнера''] := [DialogForm.Partner."ВН_КОД_ПАРТНЕРА"];
Partner1.Open;
if length(trim([DialogForm.partner1."СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "]))>0 then Partner1:=[DialogForm.partner1."СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "];

Partner1.Close;
Partner1.Params[''вн_код_партнера''] := [DialogForm.Partner."ВН_КОД_ПАРТНЕРА"];
Partner1.Open;
,
но ничего не изменилось...
Изменено: Новосибирск ОАО "Электропромпроект" - 08.02.2013 14:01:33
 
Цитата
Новосибирск ОАО "Электропромпроект" пишет:

Мне нужно модифицировать отчет Акт на работы (услуги), а именно вставить в поле Представитель заказчика нужную фамилию. Эта фамилия занесена в одно из свободных полей Справочника ПАРТНЕРЫ ПРЕДПРИЯТИЯ . Для упрощения примера возьмем поле СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ.
Я беру существующий шаблон отчета Акт на работы (услуги) и модифицирую его по следующей схеме.

1. Как мы говорили раньше Справочник партнеров это bdf.sprav.sprav_partner
В данном отчете такого источника нет.
Поэтому я ввожу дополнительный Источник БЭСТ в Карточке запроса стр.2., в котором устанавливаю:

DSName = bdf.sprav.sprav_partner
Name = partner1.
Params = [DialogForm.Shapka." СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "]

2. В Карточке запроса на стр.2 во втором окне запроса Представитель «Заказчика» меняю элемент управления в Edit на DBList (для выбора значения из таблицы-справочника) и устанавливаю его свойства:

ListSource = partner1
ListField = СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ
GridFieldLists - в перечне полей пометил галочкой СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ
KeyField = СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ
Name = PrZak

3. В скрипте OnActivate пишу в конце алгоритма примерно так:

PrZak.SaveUserParam := false;
PrZak.Text:= [DialogForm.partner1" СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "]


4. На стр.1 в шаблоне в поле Представитель Заказчика ставлю переменную mmm и в скрипте пишу


mmm:=[PrZak.TEXT];
if mmm='' then mmm :=[DialogForm. partner1" СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "]

ВСЕ.

При выполнении такого отчета в Карточке запроса в окне Представитель заказчика
будет стоять значение из первой записи справочника ПАРТНЕРЫ ПРЕДПРИЯТИЯ (т.е.первого партнера). И для выбора будут представлены значения этого поля всех партнеров.

Мне же хотелось бы, что бы в окне Представитель заказчика
стояло значение из той записи справочника ПАРТНЕРЫ ПРЕДПРИЯТИЯ , отчет которого я формирую. И для выбора больше ничего не представлялось (ну или, на худой конец, значения этого поля всех партнеров).

Далее, я либо оставляю то значение, что стоит в окне, либо набираю с клавиатуры нужное мне (либо выбираю, если есть выбор)

Всё.


PS. Да, что интересно. Если я вместо поля " СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ " в этом
примере буду использовать поле " ПОЛНОЕ_НАИМЕНОВАНИЕ ", то
в окне Представитель заказчика для выбора будут представлены не значения этого поля всех партнеров. а текст {MEMO}
См файл.
Если использую другое поле, такого не происходит.
Ваша основная ошибка заключается в том, что пытаетесь на событии OnActivate использовать значения полей источника Shapka (для задания параметров источника partner1), а источник Shapka открывается только при нажатии кнопки "Выполнить". Перенесите часть скрипта, касающуюся источника Shapka из кнопки "Выполнить" на событие OnActivate формы. В данном случае это можно сделать потому что для задания параметров источника Shapka поля из карточки запроса не используются.
И ещё в список полей источника Shapka добавте поля "ПАРТНЕР_КОД" и "ПАРТНЕР_НАИМЕНОВАНИЕ" (или совсем очистите этот список).
Скрипт OnActivate должен выглядеть примерно так:
cTypeBase:=[FIRM('lbl_type')];
{передача параметров в шапку документа}
Shapka.Close;
Shapka.Params['Код_Арма']:=[DialogForm.task."Код арма"];
Shapka.Params[' Направление _Движения']:=[DialogForm.task." Направление движения"];
Shapka.Params['Вид_Движения']:=[DialogForm.task."Вид движения"];
Shapka.Params['Склад']:=[DialogForm.task."Склад"];
Shapka.Params['Код_Документа']:=[DialogForm.task."Код документа"];
Shapka.Params['Номер_Документа']:=[DialogForm.task."Номер документа"];
Shapka.Params['Шапка']:=1;
Shapka.Params['Тип_базы']:=cTypeBase;
Shapka.Params['Код_реестра']:=[DialogForm.task."Код реестра"];
Shapka.Params['Дата_документа']:=[DialogForm.task."Дата документа"];
Shapka.Open;

Partner1.Close;
Partner1.Params['Код_партнера'] := [DialogForm.SHAPKA."КОД_КОНТРАГЕНТА"];
Partner1.Open;
PrZak.SaveUserParam := false;
PrZak.Text := [DialogForm.Partner1."СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ"];
// или можно писать напрямую без источника Partner1
PrZak.Text := [DialogForm.SHAPKA."ПАРТНЕР_НАИМЕНОВАНИЕ"];

Поля длиной более 254 символов (такие как "ПОЛНОЕ_НАИМЕНОВАНИЕ") не предназначены для использования в справочниках. Они настолько длинные, что при полностью текст из этих полей не будет виден. Используйте "СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ".
 
Цитата
Новосибирск ОАО "Электропромпроект" пишет:
Поясните, пожалуйста смысл команд:

1.Addr3.Params['вн_код_партнера'] := [DialogForm.CAP."ВН_КОД_ПАРТНЕРА"];

Ведь Addr3 и CAP - это Источники данных с одинаковыми справочниками bdf.form_sclad.form_sclad_partner в DSName
Что чему присваивается - поля одноименные, источники одинаковые...?
И это команда так сказать необходимая для какой-то связки , т.е. она всегда будет с этими полями 'вн_код_партнера', только с источниками надо разобраться. Правильно я понимаю?

2. А вот эти команды

Addr3.Params['тип_адреса'] :=2; //юридический
....
Addr3.Params['тип_адреса'] :=0;

как я понимаю не общие, издесь для конкретного случая коль выводятся адреса и в них своя особенность их два и тд и тп
Т.е в других случаях этих команд не будет.
Так?

Т.е. обязательно должны быть аналоги вот этих команд:

Addr3.Params['вн_код_партнера'] := [DialogForm.CAP."ВН_КОД_ПАРТНЕРА"];
Addr3.Params['тип_адреса'] :=2; //юридический
Addr3.Open;
if length(trim([DialogForm.Addr3."АДРЕС"]))>0 then Adress3:=[DialogForm.Addr3."АДРЕС"];
Addr3.Close;
Addr3.Params['вн_код_партнера'] := [DialogForm.CAP."ВН_КОД_ПАРТНЕРА"];
Addr3.Params['тип_адреса'] :=0;
Addr3.Open;

Так? Нет?


Правда я в свой отчет вышеописанный влепил их

Partner1.Params[''вн_код_партнера''] := [DialogForm.Partner."ВН_КОД_ПАРТНЕРА"];
Partner1.Open;
if length(trim([DialogForm.partner1." СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "]))>0 then Partner1:=[DialogForm.partner1." СОКРАЩЕННОЕ_НАИМЕНОВАНИЕ "];

Partner1.Close;
Partner1.Params[''вн_код_партнера''] := [DialogForm.Partner."ВН_КОД_ПАРТНЕРА"];
Partner1.Open;
,
но ничего не изменилось...
1. Источник bdf.form_sclad.form_sclad_partner в обоих случаях один, а параметры разные. Соответственно и работает по-разному. CAP возвращает данные по самому партнёру, а Addr3 - адреса партнёра. Эта команда передеает в источник для адресов идентификатор партнёра из ранее открытого источника.
2. У партнёра могут быть разные типы адресов: юридичечкий, фактический и т.д. Исчточник данных для получения адресов позволяет задать конкретный тип адреса или получить все адреса данного партнёра:
Addr3.Params['тип_адреса'] :=2; //получаем юридический адрес
Addr3.Params['тип_адреса'] :=0; //получаем все адреса, введенные для данного партнёра в справочнике партнеров.
У каждого источника свои параметры и своя логика работы. Поэтому обязательность тех или иных действий может рассматриваться только применительно
к конкретному источнику и для конкретной цели. Действия, выполняемые с источником bdf.form_sclad.form_sclad_partner переносить на исочник bdf.sprav.sprav_partner в общем случае нельзя. Оператором
Partner1.Params[''вн_код_партнера''] := [DialogForm.Partner."ВН_КОД_ПАРТНЕРА"];
Вы передаете идентификатор собственного предприятия и источник Partner1, а это НЕ тот код контрагента, который нужен.
 
Спасибо! То что надо!

Счет-фактура по накладной (№ 1137 от 26.12.2011)
Как в отчете убрать безболезнено стр1 (Карточка запроса адресов) и стр.2 (С/ф ландшафт)
Простое удаление страниц без каких-либо соответствующих корректировок приводит к ошибке:
Индекс списка вышел за границы (3)
Изменено: Новосибирск ОАО "Электропромпроект" - 11.02.2013 14:24:14
 
Цитата
Новосибирск ОАО "Электропромпроект" пишет:
Спасибо! То что надо!

Счет-фактура по накладной (№ 1137 от 26.12.2011)
Как в отчете убрать безболезнено стр1 (Карточка запроса адресов) и стр.2 (С/ф ландшафт)
Простое удаление страниц без каких-либо соответствующих корректировок приводит к ошибке:
Индекс списка вышел за границы (3)
Убрать совсем - это довольно непростая задача. Придется во всех скриптах по всему отчету удалять или изменять (смотря по логике) все операторы, которые ссылаются на объекты на удаляемых страницах, или на сами эти страницы для того, чтобы не осталось ссылок на удалённые объекты. И надо ещё учесть в скриптах, что после такого удаления Page4 станет Page2.
Проще сделать, чтобы эти страницы никогда не отображались.
В скрипте на кнопке "Выполнить" (Стр.1) оператор
if (nAddr1=1) or (nAddr2=1) or (nAddr3=1) or (nAddr4=1) or (nGruzOtp=1) then page2.Visible:=True;
надо закомментировать.
А следующий оператор:
if cbFormat.itemIndex = 0 then page4.visible := true else page3.visible := true;
заменить на
page4.visible := true;
 
Здравствуйте!
Есть необходимость сформировать список сотрудников и их оклады, а точнее:

Код
№п\п          ФИО         Должность           Оклад / Тариф ставка

Все данные из Карточки работника.
Какой отчет можно взять за пример, что бы посмотреть какой справочник нужно задействовать?

...

Сформировал на базе Расчетной ведомости Т-51
Изменено: Новосибирск ОАО "Электропромпроект" - 26.03.2013 16:10:49
 
Цитата
Новосибирск ОАО "Электропромпроект" пишет:
Все данные из Карточки работника.
Какой отчет можно взять за пример, что бы посмотреть какой справочник нужно задействовать?
А зачем? Создайте свой источник, отчет вроде не из сложных! Вся необходимая информация в таблице SALARY\CARDSPRI.dbf
 
Действительно, в данном случае проще написать свой источник. В БЭСТ-е таких простых отчетов кажется и нет. За основу можно взять источник для выдачи основных данных по карточке персонального учета: bdf.form_salary.form_salary_osn. Только он расчитан на выдачу данных только по одному сотруднику. Поэтому условие отбора записей придётся изменить.
 
Коллеги, спасибо!
Создать свой источник для меня пока сложно, как и изменить условие отбора записей . А заняться этим нет времени. Оставим это до лучших времен.
Ну, как я писал вчера, я создал сей документ в Приложении Зарплата на базе Расчетной ведомости. Благо там первые графы ведомости именно то что мне нужно было.
Потому проблем особых не было.
Это было вчера. А сегодня вот захотелось (аппетиты растут :)) ), чтобы этот документ был более доступен пользователям, т.е что бы был в Приложении Главная книга во Внешнеой отчетности.
Сей отчет из Приложения Зарплата сюда перенести сложно? Не будет работать, так?
А можно ли что-то подобное ссоздать во Внешних отчетах? Там же есть набор команд из Приложения Зарплата?
С написанием алгоритма возможно еще и справился бы, а вот как в шаблоне реализовать отображеия списка сотрудников?
И образца во Внешних отчетах не нашел.
Изменено: Новосибирск ОАО "Электропромпроект" - 27.03.2013 07:05:28
 
А почему обязательно надо этот отчет помещать во внешнюю отчетность?
Может можно его в Главной книге в Общесистемной отченности привязать?
Страницы: Пред. 1 ... 5 6 7 8 9 ... 12 След.
Читают тему (гостей: 2)