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

Добавлено: 15 фев 2010, 15:41
KATZ
Если ТТИ к накладной, то

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

...
coKATSOPR==TTNDOC.wtable and KATSOPR.nrec==TTNDOC.cdoc
...
А вообще, если хотите узнать, как "Галактика" таблицы использует, включите журнализацию и введите документ, а потом в журнале посмотрите, где что изменилось. Много раз уже обсуждалось...

Добавлено: 16 фев 2010, 10:43
korvanakorvana

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

create view 
var
date1:date
date2:date
dat1:date
dat2:date
as select * 
from 
sklorder
,katpodr
,katsopr
,schfact
,basedoc
,katorg orgpol
,katorg orgGrPol
,katcity         //ърЄрыюу уюЁюфют
WHERE
((
0==SKLORDER.sp
and 1==SKLORDER.vidorder
and KATPODR.nrec==SKLORDER.cpodr
and dat1<<=SKLORDER.dord
and dat2>>=SKLORDER.dord
and SKLORDER.csopr==KATSOPR.nrec
//and KATSOPR.vidsopr==201

//and coKATSOPR==TTNDOC.wtable
//and KATSOPR.nrec==TTNDOC.cdoc
//and dat1<<=ttndoc.dpunrbeg(noindex)
//and dat2>>=ttndoc.dpunrbeg(noindex)

and KATSOPR.CSTEPDOC==basedoc.nrec
and basedoc.corg==orgPol.nrec
and orgGrPol.ccity==katcity.nrec
))
;


а как теперь достать нужную мне инфу :? ??
по каким таблицам пробежаться ...я в ступоре
xlSetCellFormula(basedoc.nodoc,i,5,i,5);

Добавлено: 16 фев 2010, 13:38
KATZ
Что-то вы слишком всё усложняете. Зачем BASEDOC, зачем два синонима KATORG-а? И связано это всё как-то криво... Может, стоит-таки почитать документацию?

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

. . .
(( 
0==SKLORDER.sp 
and 1==SKLORDER.vidorder 
and KATPODR.nrec==SKLORDER.cpodr 
and dat1<<=SKLORDER.dord 
and dat2>>=SKLORDER.dord 
and SKLORDER.csopr==KATSOPR.nrec 
and KATSOPR.corg==KATORG.nrec
)) 
; 
. . .
_loop SKLORDER {
  if ((getfirst fastfirstrow KATSOPR)=0) {
    if (KATSOPR.vidsopr=201) {
      // Организация - KATORG.name
      // Адрес - KATORG.addr
      // Дата отгрузки - SKLORDER.dord или KATSOPR.dopr
      // Номер сч/ф - KATSOPR.nsopr или можно SCHFACT подтянуть
      // Сумма - KATSOPR.summa
    }
  }
}
. . .

Добавлено: 18 фев 2010, 08:30
korvanakorvana
Всем спасибо выкладываю сделанную с помощью добрых людей форму , вдруг кому пригодится из таких начинающих как я :???:

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

interface _kor_otgruzvibor 'Отчёт отгрузок с выбором' escclose;
show at(,,30,);

const
  xlColorBlack     = 0;
end;


table struct vivoddan
(
org:string,
adr:string,
datotg:string,
nomer:string,
summapol:double
)
with index
(idx1=org+nomer);


create view 
var
date1:date
date2:date
dat1:date
dat2:date
as select *
from 
sklorder
,katpodr
,katsopr
,katorg
WHERE
((
0==SKLORDER.sp 
and 1==SKLORDER.vidorder 
and KATPODR.nrec==SKLORDER.cpodr 
and dat1<<=SKLORDER.dord 
and dat2>>=SKLORDER.dord 
and SKLORDER.csopr==KATSOPR.nrec 
and KATSOPR.corg==KATORG.nrec
))
;
screen srcsclad show at(,,,3);
fields date1:,noprotect;
       date2:,noprotect;
buttons
cmOk, default;
cmCancel;
<<
  .@@@@@@@@@    .@@@@@@@@@
<.    ОК    .> <.   Выход   .>
>>
end;

panel psclad show at(,4,,);
browse brsclad
table katpodr;
fields
katpodr.name 'Склад':[30],protect;
end;
end;



handleevent 

cmInit:
{
//getfirst katpodr;
date1:=date(1,month(cur_date),year(cur_date));   
date2:=Cur_Date;                 
}


cmOk:
{
var
filename:string;
var itogs:double;
filename:=GetStringParameter('Files','OutputFilesDirectory',0)+'отгрузки'+DatetoStr(cur_Date,'DDMMYYYY')+'.xls';
xlCreateExcel(filename,true);


dat1:=date1;
dat2:=date2;
var summ:double;

StartNewVisual(vtRotateVisual, vfTimer+vfBreak+vfConfirm,'Идет расчет реальных отгрузок...', RecordsInTable(#sklorder));


var i:integer;
i:=2;
summ:=0;
delete all vivoddan;
xlSetCellFormula('№',1,1,1,1);
xlSetCellFormula('Организация',1,2,1,2);
xlSetCellFormula('Адрес',1,3,1,3);
xlSetCellFormula('Дата отгрузки',1,4,1,4);
xlSetCellFormula('Номер сч/ф',1,5,1,5);
xlSetCellFormula('Сумма',1,6,1,6);
xlSetCellFormula('Получено',1,7,1,7);
//message('мы выбрали'+katpodr.name); 
_loop sklorder
{

if ((getfirst fastfirstrow KATSOPR)=0) { 
    if (KATSOPR.vidsopr=201) {

if GetFirst vivoddan where((katorg.name==vivoddan.org and katsopr.nsopr==vivoddan.nomer))<>tsOk
then
{ 
insert in vivoddan set vivoddan.org:=katorg.name,
                    vivoddan.adr:=katorg.addr,
                    vivoddan.datotg:=sklorder.dord,
                    vivoddan.nomer:=katsopr.nsopr,
                    vivoddan.summapol:=katsopr.summa;
                   
}
else update current vivoddan set vivoddan.summapol:=vivoddan.summapol+katsopr.summa;
                                  
}
}
}
_loop vivoddan
{
xlSetCellFormula(i-1,i,1,i,1);
xlSetCellFormula(vivoddan.org,i,2,i,2);
xlSetCellFormula(vivoddan.adr,i,3,i,3);
xlSetCellFormula(vivoddan.datotg,i,4,i,4);
xlSetCellFormula(vivoddan.nomer,i,5,i,5);
xlSetCellFormula(DoubleToStr(vivoddan.summapol,'666666666,888'),i,6,i,6);
itogs:=vivoddan.summapol+itogs;
i:=i+1;
}
xlSetCellFormula('ИТОГО:',i,5,i,5);
xlSetCellFormula(DoubleToStr(itogs,'666666666,888'),i,6,i,6);
StopVisual('Опрерации завершена!',0);
//xlPageSetupOrientation({xlPortrait=1|xlLandscape=2});
xlSetActiveSheetByName('ОТГРУЗКА');
xlAutoFit(1,1,i,7);//устанавливаем ширину колонок 

 xlFrameCells ( xlBorderL, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
 xlFrameCells ( xlBorderR, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
 xlFrameCells ( xlBorderT, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
 xlFrameCells ( xlBorderB, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
 xlFrameCells ( xlInsideV, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
 xlFrameCells ( xlInsideH, xlThin, xlLineStyleNone, xlColorBlack, 1, 1, i, 7 );
 xlFreeze(2,1);



xlKillExcel;
}

end;

end.