| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Уважаемые, я все перерыл, все (ВРОДЕ БЫ) делаю правильно... 
		
		
		
		
		
		
		
		
			
 X++: public void run() { Query q; QueryRun qr; RAssetTable _table; RAssetLending _lending; ; q = this.query(); qr = new QueryRun(q); while (qr.next()) { _table = qr.get(tablename2id("RAssetTable")); _lending = qr.get(tablename2id("RAssetLending")); _tmp.AssetGroup = _table.AssetGroup; _tmp.AssetId = _lending.assetId; _tmp.AssetLendDate = _lending.AssetLendDate; _tmp.AssetLocation = _lending.AssetLocationId; _tmp.ContractACcount = _lending.ContractACcount; _tmp.LendEmployee = _lending.AssetLendEmployee; _tmp.insert(); } super(); } 5. Далее в методе Init добавляю X++: TmpMyTableDS.setTmpData(_tmp); X++: public boolean prompt(boolean _enableCopy=TRUE, boolean _enablePages=TRUE, boolean _enableDevice=TRUE, boolean _enableProperties=TRUE, boolean _enablePrintTo=TRUE) { boolean ret; ret = super(_enableCopy, _enablePages, _enableDevice, _enableProperties, _enablePrintTo); this.queryRun().setCursor(_tmp); return ret; } Ошибка времени выполнения. : Неправильный тип аргумента функции. Трассировка стека: (C) \Classes\QueryRun\setCursor Уже полдня и так- и сяк пробую - ничего не выходит ( Последний раз редактировалось ek_Pendulum; 04.05.2007 в 14:49.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А если убрать код из prompt() и добавть код в fetch: 
		
		
		
		
		
		
			
		
		
		
		
	X++: public boolean fetch() { boolean ret; ; this.queryRun().setRecord(_tmp); ret = super(); return ret; }  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			kashperuk, сделал так и снова : 
		
		
		
		
		
		
		
		
			Ошибка времени выполнения. : <пустой класс> Объект не инициализирован. Трассировка стека : (C) \Classes\<unknown>\setRecord (C) \Reports\Report1\Methods\fetch - line 5 (C) \Classes\ReportRun\run (C) \Reports\Report1\Methods\run - line 25 (C) \Classes\SysReportRun\run - line 16 (C) \Classes\RunBaseReport\run - line 32 (C) \Classes\MyReportDialog\main - line 7 Последний раз редактировалось ek_Pendulum; 04.05.2007 в 15:12.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			 Попробуйте так: 
		
		
		
		
		
		
			1. в классе создайте метод TmpMyTable generateTmpMyTable(), который заполняет и возвращает таблицу. 2. перепишите init отчета: X++: public void init() { MyReportDialog caller; ; super(); caller = element.args().caller(); if (!caller) { throw error(Error::missingRecord(funcName())); } this.queryRun().setRecord(caller.generateTmpMyTable()); } 4. датасорсу можно вернуть нормальное имя TmpMyTable 5. Перестаньте ставить занак "_" перед именем переменных.    Этот знак используется чтобы отличать параметры метода. К примеру:X++: static CustTable find(CustAccount _custAccount, boolean _forUpdate = false) 
				__________________ 
		
		
		
		
	Isn't it nice when things just work?  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Пишите сразу в TmpMyTableDS. Зачем городить огород?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			2 macklakov сделал все по вашему совету - итог один (но вылетает уже в дебаггере): 
		
		
		
		
		
		
		
	Ошибка времени выполнения. : <пустой класс> Объект не инициализирован. Трассировка стека : (C) \Classes\<unknown>\setRecord (C) \Reports\Report1\Methods\Init - line 15 (C) \Classes\ReportRun\run (C) \Reports\Report1\Methods\run - line 26 (C) \Classes\SysReportRun\run - line 16 (C) \Classes\RunBaseReport\run - line 32 (C) \Classes\MyReportDialog\main - line 7  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			по тем сообщениям об ошибках, которые вы получаете, вывод можно сделать только один. 
		
		
		
		
		
		
			
		
		
		
		
	У вас нет запроса. Соответственно не формируется queryRun А вы в первом посте написали, что запрос есть (источник добавлен в узел DataSources отчета) Соответственно, ищите где вы ошиблись  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну да...в источнике отчета лежит временная таблица, которую я пытаюсь заполнять (и она вроде как заполняется , так как в дебагере я вижу сменяющиеся RecId'ы этой таблицы). если в коде ошибок нет, то у меня руки опускаются (( 
		
		
		
		
		
		
		
		
			Вот заполнение временной таблицы как советовал macklakov (уже в классе): X++: TmpMyTable generateTmpTable()
{
    Query               q;
    QueryRun            qr;
    RAssetTable         _table;
    RAssetLending       _lending;
    TmpMyTable        tmpTable;
    ;
    q = this.initQuery();
    qr = new QueryRun(q);
    while (qr.next())
    {
        _table = qr.get(tablename2id("RAssetTable"));
        _lending = qr.get(tablename2id("RAssetLending"));
        tmpTable.AssetGroup = _table.AssetGroup;
        tmpTable.AssetId = _lending.assetId;
        tmpTable.AssetLendDate = _lending.AssetLendDate;
        tmpTable.AssetLocation = _lending.AssetLocationId;
        tmpTable.ContractACcount = _lending.ContractACcount;
        tmpTable.LendEmployee = _lending.AssetLendEmployee;
        tmpTable.insert();
    }
    Return tmpTable;
}X++: protected Query initQuery() { Query query; QueryBuildDataSource qAssetLending; QueryBuildDataSource qAssetTable; ; query = new Query(); // qAssetLending=query.addDataSource(TableNum(RAssetLending), "RAssetLending"); qAssetLending.addSelectionField(FieldNum(RAssetLending, AssetLendEmployee)); qAssetLending.addSelectionField(FieldNum(RAssetLending, ContractCode)); qAssetLending.addSelectionField(FieldNum(RAssetLending, ContractACcount)); qAssetLending.addSelectionField(FieldNum(RAssetLending, AssetId)); qAssetLending.addSelectionField(FieldNum(RAssetLending, AssetLendDate)); qAssetLending.addSelectionField(FieldNum(RAssetLending, AssetLocationId)); qAssetLending.addSelectionField(FieldNum(RAssetLending, PropertyPart)); qAssetLending.addSortField(FieldNum(RAssetLending, AssetLendEmployee)); qAssetTable=qAssetLending.addDataSource(TableNum(RAssetTable), "RAssetTable"); qAssetTable.addSelectionField(FieldNum(RAssetTable, Name)); qAssetTable.addSelectionField(FieldNum(RAssetTable, AssetGroup)); qAssetTable.joinMode(JoinMode::InnerJoin); qAssetTable.fetchMode(0); qAssetTable.addLink(FieldNum(RAssetLending, AssetId), FieldNum(RAssetTable, AccountNum)); return query; } Последний раз редактировалось ek_Pendulum; 04.05.2007 в 15:57.  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 SAP 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			если в коде ошибок нет, то у меня руки опускаются ((
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 Цитата: 
	
Цитата: 
	
 
		 | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Значит где-то что-то сломано. "Чистый" наследник от RunBaseReport и "чистый" отчет должны отрабатывать. Как у вас вызывается отчет? Должен вызываться автоматически, через lastValueElementName
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Isn't it nice when things just work?  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Так и вызывается 
		
		
		
		
		
		
		
	X++: identifiername lastValueElementName()
{
    return reportStr(Report1);
} | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Злыдни 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Первым делом залезьте в использование данных. Удалите настройки класса, которым пользуетесь. Попробуйте вызвать вновь. Половина ошибок с трассировкой возникает из-за того, что в SysLastValue прописывается чушь
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 Цитата: 
	
 
		 | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Остается проект выкладывать на всеобщее ковыряние
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Isn't it nice when things just work?  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Пожалуйста ...
		 
		
		
		
			Последний раз редактировалось ek_Pendulum; 04.05.2007 в 16:45.  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 SAP 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не знаю у меня получилось передать курсор вот таким макаром. 
		
		
		
			X++: public boolean fetch() { boolean ret; TmpInventTableModule tmpInventTableModuleLocal; Counter i; QueryRun queryRuner = new QueryRun(element.query()); ; for (i = 0; i < 10; i++) { tmpInventTableModuleLocal.ItemId = int2str(i); tmpInventTableModuleLocal.insert(); } queryRuner.setCursor(tmpInventTableModuleLocal); while (queryRuner.next()) { tmpInventTableModuleLocal = queryRuner.get(tablenum(TmpInventTableModule)); info(tmpInventTableModuleLocal.ItemId); element.send(tmpInventTableModuleLocal); } return ret; }  | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вам в школе не говорили, что copy/paste это очень-очень плохо?  
		
		
		
		
		
		
			  У вас отчет вовсе не по TmpAssetLending_RU и фильтры в классе на другие таблицы накладываются  
		
				__________________ 
		
		
		
		
	Isn't it nice when things just work?  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 Цитата: 
	
  там два отчета..тот что не Copy.. - он используется, но где вы увидели,что он не по временной таблице...а фильтры накладываются на запрос вроде...что мне делать, я щас свихнусь ![]() Дополню : во временную таблицу я складываю уже отобранные фильтром записи, дабы потом группировку сделать необходимую Последний раз редактировалось ek_Pendulum; 04.05.2007 в 17:12.  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 NavAx 
		
			
	 | 
	
	
	
		
		
		
		 
			
			1. читать документацию 
		
		
		
		
		
		
			2. переписать все вручную и вдумчиво 
				__________________ 
		
		
		
		
	Isn't it nice when things just work?  | 
| 
	
 | 
| 
	
	 | 
	
		
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| И снова Query и временные таблицы | 19 | |||
| Временные таблицы в отчете | 25 | |||
| Временные таблицы | 6 | |||
| Временные таблицы | 3 | |||
| Временные таблицы в запросе | 4 | |||
		
  |