Проблема с интерфейсом GetPers

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

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

Ответить
katerpillar
Сообщения: 11
Зарегистрирован: 13 июл 2009, 11:08

Проблема с интерфейсом GetPers

Сообщение katerpillar »

Народ, помогите... Вот на этой вьюхе зависает отчет...

Что не так делаю? Мне надо пользователю дать выбрать сотрудника, чтобы по нему отсортировать договоры...
...
.var
da1,da2:date;
.endvar
...
.CREATE VIEW d1 AS
SELECT attrdog.cdogovor, persons.fio
FROM AttrDog, Pick, Persons
WHERE ((
word(48 ) == Pick.wList AND
AttrDog.cotv_my /== Pick.crec AND
Persons.nrec /== Pick.crec))
;

.CREATE VIEW d2 AS
SELECT Dogovor.ddoc, Dogovor.nodoc, Dogovor.corg, Dogovor.cplat, Dogovor.summa
FROM Dogovor
WHERE Dogovor.nrec = dogovornrec AND Dogovor.ddoc>=dat1 AND Dogovor.ddoc<=dat2
;

...
...
.begin
RunInterface ('F_PODOT::GETPERS');
RunDialog('c_common::GetInterval',da1,da2);
end.

.{table d1
...

Или помогите с другим каким-нить фейсом... Кроме GetPers, а то я не нашёл.

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

Сообщение edward_K »

мультиплай persons*attrdog
хотя бы так
word(48 ) == Pick.wList AND
AttrDog.cotv_my /== Pick.crec AND
AttrDog.cotv_my == Persons.nrec
да и вторая вьюха не блещет оптимизацией.
(( dogovornrec == Dogovor.nrec
))
вполне хватит.
katerpillar
Сообщения: 11
Зарегистрирован: 13 июл 2009, 11:08

Сообщение katerpillar »

Это куски кастрированных вьюх на самом деле... Поэтому там не до оптимизации. Они у меня изначально в одной вьюхе были - это я разобрал их, чтобы выяснить кто из них горбатый...

Все равно повис...

Ладно, щас попробую по-вашему :), спасибо.
katerpillar
Сообщения: 11
Зарегистрирован: 13 июл 2009, 11:08

Сообщение katerpillar »

Хелп... Вот эта вьюха пустая.

.CREATE VIEW d0 AS
SELECT persons.fio, persons.nrec
FROM persons
WHERE ((
word(48 ) == Pick.wlist AND
Pick.crec /== persons.nrec
))
;


.begin
RunInterface ('F_PODOT::GETPERS');
end.

Мои предположения такие:
- word(48 ) - это не к GetPers параметр;
- GetPers вообще не через Pick работает;
- что-то еще...
mwoland

Сообщение mwoland »

я бы Вам посоветовал не заморачиваться на F_PODOT::GETPERS, а использовать стандартный функционал iGetKAU (смотрите GetKAU.vih) в папке frm (у меня - gal810\FRM\API\TxoApi.rar\Api\GetKau.vih). Предоставляет возможность одиночного или множественного выбора любой аналитики по ее коду (в Вашем случае код аналитики 3). Множественный выбор осуществляется через маркер. Если не разберетесь - обращайтесь, будет время - накидаю примерчик.
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Сообщение KATZ »

GetPers вообще не через Pick работает
Судя по документации, так и есть. В F_Podot.chm этот интерфейс описан с одним параметром типа comp и предназначен для выбора одного сотрудника.
katerpillar
Сообщения: 11
Зарегистрирован: 13 июл 2009, 11:08

Сообщение katerpillar »

Нда... Когда есть документация - это гут.

Мож у кого есть список стандартных фейсов с параметрами? На форуме искал... Нашел 2005 года... Может есть свежее?

2 KATZ - Thnx, с параметром заработало.
k_vit
Постоянный обитатель
Сообщения: 143
Зарегистрирован: 09 авг 2006, 16:40
Откуда: Россия, Тюмень, ОАО "Сибирский Научно-Аналитический Центр"

Сообщение k_vit »

Мож у кого есть список стандартных фейсов с параметрами?

В папке Exe\GalDoc\!GSDK.chm
mwoland

Сообщение mwoland »

ard отчет с примером использования getkau (множественный выбор):

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

.form sample_getkau
.ard
.nameinlist 'Пример использования GetKau для множественного выбора'
.declare
#include getkau.vih
.enddeclare
.var
  iGetKau: GetKau;    //объектный фейс для выбора аналитики по коду.
  lMarker: longint;   //хэндл маркера, в который свалятся помеченные пользователем аналитики
  MarkerName: String; //имя маркера - для каждого кода аналитики - свой, получается из iGetKau.GetMarkerName
.endvar
.create view v         //выборка по persons, которые есть в маркере
as select * from persons
where searchmarker(lMarker, persons.nrec, 0);
.begin
  var KodGr: word; KodGr := 3; //Код аналитики для persons
  var cSelected: comp;
  iGetKau.GetCodeKau(2, KodGr, cSelected); //собсно запуск интерфейса множественного выбора
  //всё. пользователь пометил записи, которые сохранились в маркер, а маркер сохранился в dsk файл.
  //теперь необходимо проинициализировать маркер с таким же именем, с каким это сделал интерфейс iGetKau,
  //чтобы получить сохраненные в dsk-файле значения маркера 
  MarkerName := iGetKau.GetMarkerName(KodGr); //получаем имя маркера
  lMarker := initmarker(MarkerName, 8, 10, 100, false); //создаем маркер и читаем из дск файла то, что напомечал пользователь
end.
!выводим пользователей из маркера
.fields
  persons.tabnmb
  persons.fio
.endfields
.{table 'v.persons'
  @@@@@@@@@@@@@@@@@@@@@@ ^
.}
.begin
  donemarker(lMarker, MarkerName); //завершаем работу с маркером
end.
.endform
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

В описании к GetPers:
#doc
Выбор сотрудника предприятия из каталога физических лиц.<br>
В Н И М А Н И Е !<br>
12/12/02 Интерфейс закрыт для изменения и будет удален,
как только перестанет использоваться.<br>
Для выбора сотрудников используйте интерфейс выбора КАУ iGetKau.<br>
Например, так:<br>
<pre class="example">
iGetKau.GetCodeKau(cgiPick, cgKau_Persons, cKau).
</pre>
#end
Ответить