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

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

Добавлено: 20 июл 2005, 18:51
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

Добавлено: 21 июл 2005, 05:07
edward_K
такое ощущение что вы сильно отступили от формы прототипа
все циклы должны быть на старых местах.
после стандартных циклов дожен идти тока цикл по вашей табле, в котором вы можете организовать свои циклы используя
.{while
.{horizontal while
.{table
.{horizontal table
.{?internal;
и не в коем случае циклы из формы прототипа

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

Добавлено: 03 июл 2015, 11:41
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

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

Добавлено: 08 июл 2015, 10:40
Nadusha
И тишина... и мертвые с косами стоят(((...

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

Добавлено: 08 июл 2015, 20:29
edward_K
1. Влом. Работы и так хватает.
2. Поля лучше раскидывать по местам - тяжко так понять где чего не так.
3. а в стандартной форме то выводится?
4. Это SLK или EXCEL? В SLK может быть проблема со скобками. 100 лет не делал, но наскока помню {} должны быть в разных ячейках
Я предпочитаю именно Excel и вывод делать с помощью функции в fields где сдвигать столбец.
5. По правилам форумов не стоит мешать все в одну кучу - удалю ведь без предупреждения 8) . Потому никто и не читает.

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

Добавлено: 09 июл 2015, 17:00
Nadusha
форма slk... бяки!!! за эти данные отвечает таблица plpor и поле sumplatv (столбик сумма ^)!!!
как же тяжело новичкам с галактикой :(

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

Добавлено: 09 июл 2015, 18:41
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 {} - тока так.

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

Добавлено: 10 июл 2015, 13:28
Nadusha
спасибки за наставления... :grin:

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

Добавлено: 04 апр 2016, 19:06
Иван
Коллеги, подскажите пожалуйста как примерно в таком же отчете создать временную таблицу с данными из прямого 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
  );

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

Добавлено: 04 апр 2016, 19:33
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 все равно надо, а таблицу тоже можно запихнуть в проект.

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

Добавлено: 04 апр 2016, 19:57
savov

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

Добавлено: 05 апр 2016, 08:13
RAJAH
Иван
Про sqlCreateTmpTable читали?

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

Добавлено: 05 апр 2016, 12:19
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 проще в конечном счете.