Страница 1 из 2

Формы отчётов из L_SKLAD.res

Добавлено: 28 май 2010, 11:38
BlazeBio
Я, наверное, лезу в дебри Амазонки. Но у меня такие вопросы по ресурсу L_Sklad.res.(наверное они касаются всех стандартных галактических ресурсов).
Можно ли из ресурса L_SKLAD извлечь каким-то образом формы отчётов по приходным и расходным ордерам?
Если нельзя, то может как-то можно подменить существующие поля?
Или только можно добавлять свои отчёты?

Добавлено: 28 май 2010, 11:44
Алексей
а что значит извлечь? :) с патчами идут архивы ФРМок. ну и имея лицензию на фком - включив параметр forms.fcenv=on можно стоя на форме переключить закладку, нажать ф4 и вы получите исходник искомой формы.

Добавлено: 28 май 2010, 11:46
BlazeBio
Что за архив ФРМок?. Можно поподробнее и где включается параметр forms.fcenv=on ?

Добавлено: 28 май 2010, 11:50
Алексей
ехе\frm\*.rar - там то, что дают от исходников

параметр включается в конфигураторе. можно сразу в галнет.кфг его прописать.

Добавлено: 28 май 2010, 12:02
BlazeBio
Спасибо нашёл! Буду ковыряться. :grin:

Добавлено: 28 май 2010, 13:34
Masygreen
это называется присоединенные формы. LinkForm по ним и поиск в форуме

Добавлено: 31 май 2010, 16:45
BlazeBio
А prototype 'skorder' можно как-то подредактировать? А то в архиве с исходниками ....exe/frm/L_Sklad.rar обновление архива не поддерживается. :(

Добавлено: 31 май 2010, 16:57
Vik
BlazeBio писал(а):А prototype 'skorder' можно как-то подредактировать? А то в архиве с исходниками ....exe/frm/L_Sklad.rar обновление архива не поддерживается. :(
Прототипы трогать вообще нельзя. Зачем понадобилось что-то в нем редактировать? Редактируйте линк-форму. Да и обновление прототипов в архиве погоды не сделает, они скомпилированы в ресурсы, а в архивах просто исходники их.

Добавлено: 31 май 2010, 17:09
BlazeBio
Хорошо в linkform я добавляю свою поле osum, то компилятор в Галактике ругается, что нет такого метода и поля и поля, хотя в alter interface оно есть. Может я что-то должен дописать в linkform ? Я мало работал с linkform.

Добавлено: 31 май 2010, 17:48
Vik
На форуме очень много тем, которые вам помогут. Поищите, как Masygreen советовал. Alter interface не имеет никакого отношения к link-формам. Или вы в альтер интерфейсе пытаетесь изменить формирование потока данных для линкформы?

Добавлено: 31 май 2010, 17:56
BlazeBio
Поискал по форуму и нашёл, что поле можно добавить через view. Только почему-то поле постоянно в отчётах выводит нулевое значение.
Вот код :

Код: Выделить всё

.Group 'Складской ордер'
.NameInList 'СТАНДАРТНЫЙ СКЛАДСКОЙ ОРДЕР'
.var
  Sender:String
  senderpost:String
  Recipient:String
  RecipientPost:String
.endvar
.Create    view localSklOrder
from
  SklOrder;
.Create   view v1 (osum) as select sporder.kol*sporder.rsrprice from spsopr;
.fields
  CommonFormHeader
  OrdName
  nOrder
  dOrder
  Osnov
  Sklad
  'в '+RublSimv
  'в '+RublSimv
  NNomer
  MC
  ED
  Kol
  Price
  v1.osum
  Itogo
  Senderpost
  Sender
  RecipientPost
  Recipient
.endfields                    
Не знаете почему?

Добавлено: 31 май 2010, 18:10
edward_K
добавить в create view
where (( ??????? == spsopr.nrec ))
вместо ??????? подставить значение
перед выводом
if v1.getfirst spsopr=0 {}
обычно в прототипе есть nrec документов и их спецификаций
здесь может быть есть только на ордер
where (( ??????? == sporder.nrec and sporder.cspsopr == spsopr.nrec ))
...
if v1.getfirst sporder=0 {}
if v1.getfirst spsopr=0 {}

Добавлено: 31 май 2010, 18:33
BlazeBio
Чего-то не пойму :-o if на проверку по нулям? мне нужно вывести не нулевые значения. Я сделал такое view

Код: Выделить всё

.Create      view v1 (osum) as select sporder.kol*sporder.rsrprice from spsopr
where ((SpOrderRec== sporder.nrec and sporder.cspsopr == spsopr.nrec )) ;    
и все равно выводится 0. Что-то опять делаю не так ?

Добавлено: 31 май 2010, 19:24
Yuri
Может быть достаточно так ?
.Create view v1 (osum) as select sporder.kol*sporder.rsrprice from sporder where ((SpOrderRec== sporder.nrec)) ;

Добавлено: 31 май 2010, 19:31
edward_K
да. не узрел что поля то по ордеру выводите.
В формах автопозиционирование не пашет - для этого if getfirst ... в программном блоке.
.begin
if v1.getfirst sporder=0 {}

end.