Народ помогите новичку с временной таблицей справиться

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
slotart
Сообщения: 6
Зарегистрирован: 07 июл 2005, 16:06

Народ помогите новичку с временной таблицей справиться

Сообщение slotart »

Подскажите что еще наддо написать чтобы все нормально выгрузилось в мою таблицу.

.LinkForm 'REEPLATDOCS2_0_NEW' Prototype is 'ReePlatDocs'
.Group 'Реестр оплаченных валютных документов'
.DEFO LANDSCAPE
.Create view tPlat as select plpor.npassport where ((PlPorNrec == Plpor.nrec));
.fields
CommonFormHeader
header
datebeg
dateend
ourbankInfo
VidDoc
strFilters
FilterPlDoc1
FilterName
ndesimv
plpor.npassport
nodok
datob1
nameall
sumplat
simvolv
SummaByAll
.endfields
.Create View vmy As Select * from myTmp;
.fields
vMy.myTmp.Field1
vMy.myTmp.Field2
vMy.myTmp.Field3
vMy.myTmp.Field4
vMy.myTmp.Field5
vMy.myTmp.Field6
vMy.myTmp.Field7
vMy.myTmp.Field8
vMy.myTmp.Field9
vMy.myTmp.Field10
vMy.myTmp.Field11
vMy.myTmp.Field12
vMy.myTmp.Field13
vMy.myTmp.Field14
vMy.myTmp.Field15
vMy.myTmp.Field16
vMy.myTmp.Field17
.endfields
.{
.{
.{
insert current myTmpTable Set
myTmp.Field1:=CommonFormHeader,
myTmp.Field2:=header,
myTmp.Field3:=datebeg,
myTmp.Field4:=dateend,
myTmp.Field5:=ourbankInfo,
myTmp.Field6:=VidDoc,
myTmp.Field7:=strFilters,
myTmp.Field8:=FilterPlDoc1,
myTmp.Field9:=FilterName,
myTmp.Field10:=ndesimv,
myTmp.Field11:=plpor.npassport,
myTmp.Field12:=nodok,
myTmp.Field13:=datob1,
myTmp.Field14:=nameall,
myTmp.Field15:=sumplat,
myTmp.Field16:=simvolv,
myTmp.Field17:=SummaByAll;
}
}
}

^
@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
с @@@@@@@@@@ г. по @@@@@@@@@@ г.
^
^
^
.{CheckEnter FILTERPLDOC
^
.{CheckEnter FILTERPLDOCNAME
^
.}
.}
Паспорт │ Номер │ Дата │ Наименование │ Сумма │Валюта│
сделки док-та платежа │
.{table 'vMyView.myTmpTable'
.{
.{
@@@@@ @@@@@ @@@@@ @@@@@@@@@ @@@@@@ @@@@@@ .}
.{.?BANKFOOTER1;;false; .}
.}
.{.?ORGFOOTER1;false .}
.{.?ORGFOOTER2;false .}
.}
ИТОГО : .{.?FOOTER2;&'&&&&&&&&&&&&&&&&&.}
.endform
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5185
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

такое ощущение что вы сильно отступили от формы прототипа
все циклы должны быть на старых местах.
после стандартных циклов дожен идти тока цикл по вашей табле, в котором вы можете организовать свои циклы используя
.{while
.{horizontal while
.{table
.{horizontal table
.{?internal;
и не в коем случае циклы из формы прототипа
Nadusha
Сообщения: 12
Зарегистрирован: 18 сен 2014, 16:17

Re: Народ помогите новичку с временной таблицей справиться

Сообщение Nadusha »

Создаю форму по валютным п/п... В excel-кой форме не подбрасывается сумма валюты!!! Подскажите что не так написано???
.LinkForm 'pev2_REEPLATDOCS11' Prototype is 'REEPLATDOCS'
.Group 'Реестр оплаченных валютных документов'
.Nameinlist 'Журнал валютных платежных документов (ПК, собственные п/п)'
.DEFO LANDSCAPE
.var
ab,nd:string;
dd:date;
.endvar
.create view tabl;
as select fpstbud.abbr
from plpor,fpoborot,fpstbud
where
((
comp(plpornrec)==fpoborot.csoprdoc(noindex)
and fpoborot.cstbud==fpstbud.nrec
))
;
.fields
MyOrgName
CommonFormHeader
header
datebeg
dateend
ourbankInfo
VidDoc
strFilters
FilterPlDoc1
FilterName
ndesimv
ab
nodok
datvip1
sumplat
sumplat дело в этой таблице, а как прописать её "голову сломала"; проблема со столбиком ''Сумма ^ ''
simvolv
PolName
NAMEPL1
NAMEPL2
NAMEPL3
NAMEPL3
NAMEPL3
PlatBankName
summaall
if(Подписант_Роль <> '', Подписант_Роль, Подписант_должность)
Подписант_ФИО
.endfields
^
^
^ с ^ по ^

^
^
^
.{CheckEnter FILTERPLDOC
^
.{CheckEnter FILTERPLDOCNAME
^
.}
.}
.{.?SHAPKA1; .}
.{.?SHAPKA2; .}
.{.?SHAPKA3; .}
.{.?SHAPKA4; .}
Столбики:
Аббр.ст. ПК Номер Дата выписки Сумма оплаты в рублях Сумма ^ Вид валюты Получатель Назначение платежа Банк плательщика

.{
.{
.{
.begin
if tabl.getfirst=0 then ab:=tabl.fpstbud.abbr else ab:=' ';
end.

Столбики для таблицы excel:
^ ^ ^ ^ ^ ^ ^ ^^^^ ^ .{.?SUMMA1; ^ .}

.}
.{.?BANKFOOTER1;;false; .}
.}
.{.?ORGFOOTER1;false .}
.{.?ORGFOOTER2;false .}
.}
.{.?FOOTER1; .}
ИТОГО : .{.?FOOTER2; ^ .}

.if EXISTFEESIGNERS_REEPLATDOCS
.{CheckEnter FEESIGNERSCYCLE_REEPLATDOCS
^ ^
.}
.else
.end
.endform
Nadusha
Сообщения: 12
Зарегистрирован: 18 сен 2014, 16:17

Re: Народ помогите новичку с временной таблицей справиться

Сообщение Nadusha »

И тишина... и мертвые с косами стоят(((...
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5185
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Народ помогите новичку с временной таблицей справиться

Сообщение edward_K »

1. Влом. Работы и так хватает.
2. Поля лучше раскидывать по местам - тяжко так понять где чего не так.
3. а в стандартной форме то выводится?
4. Это SLK или EXCEL? В SLK может быть проблема со скобками. 100 лет не делал, но наскока помню {} должны быть в разных ячейках
Я предпочитаю именно Excel и вывод делать с помощью функции в fields где сдвигать столбец.
5. По правилам форумов не стоит мешать все в одну кучу - удалю ведь без предупреждения 8) . Потому никто и не читает.
Nadusha
Сообщения: 12
Зарегистрирован: 18 сен 2014, 16:17

Re: Народ помогите новичку с временной таблицей справиться

Сообщение Nadusha »

форма slk... бяки!!! за эти данные отвечает таблица plpor и поле sumplatv (столбик сумма ^)!!!
как же тяжело новичкам с галактикой :(
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5185
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Народ помогите новичку с временной таблицей справиться

Сообщение edward_K »

Вы просто не умеете ее готовить. Или беретесь сразу за большое, не понимая сути.
1. Заведите новую тему. Обзовите "Как вывести данные из таблицы в отчет"
2. Из вашей формы вырежьте все лишние - но чтобы форма собиралась. Ну или хотя бы раскидайте.
3. Сие вставить в "Code - видите чуть выше кнопочку.
Ответов будет больше - скорей всего будете посланы в поиск по форму- там чего то есть, но местами ссылки битые
4. А так начните с текстовой -что вы сразу в SLK c горизонтальным циклом? Я и то вроде час промучался чтобы подобрать комбинацию.
должно быть типа |.{^|.}| или наоборот. Если текст заработает, тогда уж делайте SLK. Мож там у вас галочки не стоит что сумма в валюте.
5. SLK отстой. И там вагон проблем может быть при компиляции. Посмотрите Excel_lib.Pdf и сноски на форуме. Лучше тогда RTF.
6. Слушайтесь модератора. А то он бывает злой 8) .

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

.create view tabl;
as select fpstbud.abbr
from plpor,fpoborot,fpstbud
where
((
comp(plpornrec)==fpoborot.csoprdoc(noindex)
and fpoborot.cstbud==fpstbud.nrec
)) 
надо бы переписать

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

.create view tabl;
as select fpstbud.abbr
from plpor,fpoborot,fpstbud
where
((
comp(plpornrec)==fpoborot.csoprdoc(noindex)
and fpoborot.cstbud==fpstbud.nrec
[i]and comp(plpornrec) == plpor.nrec[/i]
)) 
ко всем полям лучше обращаться с указанием view и таблицы - tabl.plpor.sumplatv.
позиционирование лучше тоже делать по каждой табле в отдельности. Иначе все нужные поля нужно прописать в as select.
if tbal.getfirst plpor=0 {} - тока так.
Nadusha
Сообщения: 12
Зарегистрирован: 18 сен 2014, 16:17

Re: Народ помогите новичку с временной таблицей справиться

Сообщение Nadusha »

спасибки за наставления... :grin:
Иван
Местный житель
Сообщения: 200
Зарегистрирован: 28 апр 2009, 13:19
Откуда: Новороссийск

Re: Народ помогите новичку с временной таблицей справиться

Сообщение Иван »

Коллеги, подскажите пожалуйста как примерно в таком же отчете создать временную таблицу с данными из прямого SQL ?
можно просто пример?
я делаю примерно так, но на строке sqlFetchInto(stmt, tnOb02); компилятор говорит, что не знает, что это за таблица

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

#include FeeSigners.frn 
.linkform 'AmortSee03_Excel_new2' prototype is 'AmortSee'
.nameinlist 'Реестр разниц данных по амортизации по методам учета в формате Excel 3'
.group 'Реестр разниц данных по амортизации'
.var
  MrkKatOS : longint;
  IndNo    : longint;
  stmt : longInt;
  str: longint;
.endvar
table struct Ob02
  (
    inv : string,
    Sum : double
  )
  with index
  (
    ob02_idx = inv
  );
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Народ помогите новичку с временной таблицей справиться

Сообщение savov »

Коллеги, подскажите пожалуйста как примерно в таком же отчете создать временную таблицу с данными из прямого SQL ?
можно просто пример?
я делаю примерно так, но на строке sqlFetchInto(stmt, tnOb02); компилятор говорит, что не знает, что это за таблица
Я делал через vip

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

create View as Select * 
from tblsalesNota...
;


stmt := sqlAllocStmt;
sqlAddStr(StmtString,'         SELECT t2.daten, t2.usl, t2.name, Sum(sale), Sum(sebest), Sum(kolvo), t2.cpodr, t2.invero, t2.country ');
.... тут формируются остальные строки запроса

          sqlPrepare ( stmt, StmtString );
          sqlExecute ( stmt );
          sqlFetchInto(stmt, tntblsalesNota);
          sqlFreeStmt(stmt);

Сама tblsalesNota описана в проекте.

У Вас присоединенка, но объявить таблицу через .Create view все равно надо, а таблицу тоже можно запихнуть в проект.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Re: Народ помогите новичку с временной таблицей справиться

Сообщение savov »

RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Народ помогите новичку с временной таблицей справиться

Сообщение RAJAH »

Иван
Про sqlCreateTmpTable читали?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5185
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Народ помогите новичку с временной таблицей справиться

Сообщение edward_K »

1. Для форм временные таблицы нужно объявлять в проекте (лучше include ?????.tbl)
Если у вас FCOM то сие вам использовать не получиться.
Учтите, что после этого они становятся глобальными - не забывайте чистить перед использованием.
2. Далее везде в Fcom нужно их включать в .create view имя [as select ...] From ваша_таблица
3. Всегда лучше обращяться к ним как имя_вью.таблица.поле или имя_вью.tnтаблица если нужен индетификатор или имя_вью.getfirst таблица
4. Для DSQL есть еще sqlFetchIntoMT - получите структуру с вариантным массивом, по которой можно также бегать. Будет падать - значит ссылку на структуру не освободили. Можно просто в 0 ее приравнять.
5. Ну и совсем экзотика - многомерные массивы и т.п.
6. Ну и SqlBindCol + SqlFetch также можно использовать, но с MT проще в конечном счете.
Ответить