cmMarkUnMark, cmSelectAll,cmUnSelectAll,cmInvertAll

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

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

Ответить
korvanakorvana
Местный житель
Сообщения: 429
Зарегистрирован: 24 сен 2008, 11:53

cmMarkUnMark, cmSelectAll,cmUnSelectAll,cmInvertAll

Сообщение korvanakorvana »

ребята привет ну хоть убейте не могу найти ошибку(((. Почему не помечаются склады karpodr ? :?

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

interface _kor_akt_otgruz 'Акт отгрузок с выбором' escclose;
show at(,,30,);

const
  xlColorBlack     = 0;
end;


table struct vivoddan
(
datotg:date,
nomer:string,
org:string,
summapol:double,
datopl:date,
datfactopl:date,
summoplach:double,
xxx:string
)
with index
(idx1=datotg+org+nomer);

Table struct tKatPodr
(
nrec:comp,
name:string[40]
)
with index
(idx1=nrec, idx2=name);


create view 
var
date1:date
date2:date
dat1:date
dat2:date
as select *
from 
sklorder
,katsopr
,basedoc
,katorg
,basefin
, tkatpodr _katpodr
, katpodr
, tkatpodr 

WHERE
((
katpodr.nrec==_katpodr.nrec
and 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
and KATSOPR.CSTEPDOC==STEPDOC.nrec
and Stepdoc.cbasedoc==BASEDOC.nrec 
and basedoc.nrec == basefin.cbasedoc
))
;
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
 if (isValid(#_katpodr), 'v', ''):[1],skip, {FONT = { Italic = IF( isvalid(tn_katpodr),True, false)}}, {FONT = { COLOR = IF( isvalid(tn_katpodr), 3, 0)}};
 katpodr.name 'Наименование склада':[30],protect, {FONT = { COLOR = IF( isvalid(tn_katpodr), 3, 0)}};                                                       
end;
end;



handleevent 
                
cmInit:
{
//getfirst katpodr;
date1:=date(1,month(cur_date),year(cur_date));   
date2:=Cur_Date;
//getfirst katpodr;
                                 
}
cmMarkUnMark: 
  	{     message ('cmMarkUnMark');
	if not isValid(#_katpodr)
		{
                insert in tkatpodr set 
				nrec:=katpodr.nrec,
			    	name:=katpodr.name;

                if getnext katpodr = tsOk {}
        	}
        else
               {
                delete from tkatpodr where ((katpodr.nrec==tkatpodr.nrec));
                if getnext katpodr = tsOk {}
               }
	RescanPanel (#katpodr);
	}

  cmSelectAll: //message ('cmSelectAll');
	{
	PushPos(tnkatpodr);
	_loop katpodr if not isValid(#_katpodr) insert in tkatpodr set tkatpodr.nrec:=katpodr.nrec,
			    name:=katpodr.name;
	PopPos(tnkatpodr);
        RescanPanel (#katpodr);
	}

  cmUnSelectAll:// message ('cmUnSelectAll');
  	{
	  PushPos(tnkatpodr);
// 	  _loop katpodr if isValid(#_katpodr) delete from _katpodr where ((katpodr.nrec==nrec));
	  delete all from tkatpodr;
	  PopPos(tnkatpodr);
          RescanPanel (#katpodr);
	}
  cmInvertAll: //message ('cmInvertAll');
	{ // Обработка клавиши "Gray *"
	  PushPos(tnkatpodr);
  	  _loop katpodr
	  if not isValid(#_katpodr)
               {
                 insert in tkatpodr set nrec:=katpodr.nrec,
			    name:=katpodr.name;
               }
          else
               {
                 delete from tkatpodr where ((katpodr.nrec==tkatpodr.nrec));
               }

	  PopPos(tnkatpodr);
          RescanPanel (#katpodr);
	};


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;
if getfirst tkatpodr<>tsOk then 
	{
	message('Препараты не выбраны');
	exit;
	}

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


var i:integer;
i:=3;
summ:=0;

delete all vivoddan;
xlSetCellStringValue('Акт расчетов между "Вектор-Медика"(Комитент) и ООО "Вектор-Фарм"(коммисионер) по договору-комиссии 2906/2012 на совершение сделок по продаже товара от 29.06.2012г. по состоянию на "__"______2012г.',1,1,1,1);
xlSetCellStringValue('№',2,1,2,1);
xlSetCellStringValue('Дата отгрузки',2,2,2,2);
xlSetCellStringValue('№ товарной накладной',2,3,2,3);
xlSetCellStringValue('Организация Покупатель',2,4,2,4);
xlSetCellStringValue('Сумма отгрузки с НДС',2,5,2,5);
xlSetCellStringValue('Дата оплаты по договору с Покупателем',2,6,2,6);
xlSetCellStringValue('Фактическая дата оплаты Покупателем',2,7,2,7);
xlSetCellStringValue('Фактическая сумма оплаты',2,8,2,8);
xlSetCellStringValue('Срок оплаты Комиссионера Комитенту',2,9,2,9);
xlSetCellStringValue('Фактическая сумма оплаты Комиссионера Комитенту',2,10,2,10);
xlSetCellStringValue('Дата фактической оплаты Комиссионера Комитенту',2,11,2,11);
xlSetCellStringValue('Остаток неоплаченной Комитенту задолжности',2,12,2,12);
xlSetCellStringValue('Сумма комиссионного вознаграждения Комиссионера',2,13,2,13);
xlSetCellStringValue('Сумма фактической оплаты комиссионного вознаграждения',2,14,2,14);
xlSetCellStringValue('Итого задолжность Комиссионера по договору комиссии',2,15,2,15);
//message('мы выбрали'+katpodr.name); 
_loop sklorder
{
 
if ((getfirst fastfirstrow KATSOPR)=0) { 
    if (KATSOPR.vidsopr=201) {

if GetFirst vivoddan where((sklorder.dord==vivoddan.datotg  and katorg.name==vivoddan.org and katsopr.nsopr==vivoddan.nomer))<>tsOk
then
{ 
insert in vivoddan set vivoddan.datotg:=sklorder.dord,
                       vivoddan.nomer:=katsopr.nsopr,
                       vivoddan.org:=katorg.name,
                       vivoddan.summapol:=katsopr.summa,
                       vivoddan.datopl:=Add_Day(basedoc.ddoc,BASEDOC.KOLDN),
                       vivoddan.summoplach:=0,
                       vivoddan.xxx:=basedoc.nodoc, 
                      vivoddan.datfactopl:=basefin.ddoc;
                       
_loop basefin update current vivoddan set 
                                             vivoddan.summoplach:=basefin.summa+vivoddan.summoplach,
                                             vivoddan.datfactopl:=if(vivoddan.datfactopl>basefin.ddoc,basefin.ddoc,vivoddan.datfactopl);                                  
}
else update current vivoddan set vivoddan.summapol:=vivoddan.summapol+katsopr.summa;


}
}
}
itogs:=0;
_loop vivoddan
{
xlSetCellFormula(i-1,i,1,i,1);
xlSetCellFormula(vivoddan.datotg,i,2,i,2);
xlSetCellFormula(vivoddan.nomer,i,3,i,3);
xlSetCellFormula(vivoddan.org,i,4,i,4);
xlSetCellFormula(DoubleToStr(vivoddan.summapol,'666666666,888'),i,5,i,5);
xlSetCellFormula(vivoddan.datopl,i,6,i,6);
xlSetCellFormula(if(vivoddan.datfactopl>0,vivoddan.datfactopl,''),i,7,i,7);
xlSetCellFormula(DoubleToStr(vivoddan.summoplach,'666666666,888'),i,8,i,8);
//xlSetCellFormula(vivoddan.xxx,i,8,i,8);
itogs:=vivoddan.summapol+itogs;
i:=i+1;
}
xlSetCellFormula('ИТОГО:',i,4,i,4);
xlSetCellFormula(DoubleToStr(itogs,'666666666,888'),i,5,i,5);
StopVisual('Опрерации завершена!',0);
//xlPageSetupOrientation({xlPortrait=1|xlLandscape=2});
xlSetActiveSheetByName('ОТГРУЗКА');

xlMergeCells(1,1,1,15);
xlSetColumnWidth(3,2,1,i,15);
xlSetColumnWidth(10,2,2,i,3);
xlSetColumnWidth(50,2,4,i,4);
xlSetColumnWidth(15,2,5,i,15);
xlWrapText(1,1,i,15);

 xlFrameCells ( xlBorderL, xlThin, xlLineStyleNone, xlColorBlack, 2, 1, i, 15 );
 xlFrameCells ( xlBorderR, xlThin, xlLineStyleNone, xlColorBlack, 2, 1, i, 15 );
 xlFrameCells ( xlBorderT, xlThin, xlLineStyleNone, xlColorBlack, 2, 1, i, 15 );
 xlFrameCells ( xlBorderB, xlThin, xlLineStyleNone, xlColorBlack, 2, 1, i, 15 );
 xlFrameCells ( xlInsideV, xlThin, xlLineStyleNone, xlColorBlack, 2, 1, i, 15 );
 xlFrameCells ( xlInsideH, xlThin, xlLineStyleNone, xlColorBlack, 2, 1, i, 15 );
 xlFreeze(3,1);
 XLSETBACKCOLOR (16370100, 2 , 1 , 2 , 15);


xlKillExcel;
}

end;

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

Re: cmMarkUnMark, cmSelectAll,cmUnSelectAll,cmInvertAll

Сообщение edward_K »

для начала помсотрите на статус строку - там есть Ins? Кто будет ее задавать?
например так
Browse brMain ('', , sci147EnInsTree);
- ключевое тут Ins, эта константа вообще то для дерева.
или у каждого поля после наименование столбца но перед ":"
('комментарии', ,sci147EnInsTree)
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: cmMarkUnMark, cmSelectAll,cmUnSelectAll,cmInvertAll

Сообщение RAJAH »

Уже писал как-то: GALNET.CCM и GALNET.CSC надо.
http://www.tyumbit.ru/gal_forum/viewtop ... 22&#p59022
korvanakorvana
Местный житель
Сообщения: 429
Зарегистрирован: 24 сен 2008, 11:53

Re: cmMarkUnMark, cmSelectAll,cmUnSelectAll,cmInvertAll

Сообщение korvanakorvana »

ОЙ точно))interface _kor_akt_otgruz 'Акт отгрузок с выбором' (,,sci178InsPM) escclose; этой строчки и не хватала)) дааа пятница тяжелый день) я чуть голову не сломала :-) Пасибо друзья) с прошедшими праздниками вас
Ответить