Страница 1 из 1
Проблема с интерфейсом GetPers
Добавлено: 21 июл 2009, 14:44
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, а то я не нашёл.
Заранее спасибо...
Добавлено: 21 июл 2009, 15:23
edward_K
мультиплай persons*attrdog
хотя бы так
word(48 ) == Pick.wList AND
AttrDog.cotv_my /== Pick.crec AND
AttrDog.cotv_my == Persons.nrec
да и вторая вьюха не блещет оптимизацией.
(( dogovornrec == Dogovor.nrec
))
вполне хватит.
Добавлено: 21 июл 2009, 15:30
katerpillar
Это куски кастрированных вьюх на самом деле... Поэтому там не до оптимизации. Они у меня изначально в одной вьюхе были - это я разобрал их, чтобы выяснить кто из них горбатый...
Все равно повис...
Ладно, щас попробую по-вашему
, спасибо.
Добавлено: 21 июл 2009, 17:47
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 работает;
- что-то еще...
Добавлено: 21 июл 2009, 17:59
mwoland
я бы Вам посоветовал не заморачиваться на F_PODOT::GETPERS, а использовать стандартный функционал iGetKAU (смотрите GetKAU.vih) в папке frm (у меня - gal810\FRM\API\TxoApi.rar\Api\GetKau.vih). Предоставляет возможность одиночного или множественного выбора любой аналитики по ее коду (в Вашем случае код аналитики 3). Множественный выбор осуществляется через маркер. Если не разберетесь - обращайтесь, будет время - накидаю примерчик.
Добавлено: 21 июл 2009, 18:00
KATZ
GetPers вообще не через Pick работает
Судя по документации, так и есть. В
F_Podot.chm этот интерфейс описан с одним параметром типа comp и предназначен для выбора
одного сотрудника.
Добавлено: 22 июл 2009, 10:16
katerpillar
Нда... Когда есть документация - это гут.
Мож у кого есть список стандартных фейсов с параметрами? На форуме искал... Нашел 2005 года... Может есть свежее?
2 KATZ - Thnx, с параметром заработало.
Добавлено: 22 июл 2009, 15:04
k_vit
Мож у кого есть список стандартных фейсов с параметрами?
В папке Exe\GalDoc\!GSDK.chm
Добавлено: 27 июл 2009, 02:20
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
Добавлено: 27 июл 2009, 10:52
m0p3e
В описании к GetPers:
#doc
Выбор сотрудника предприятия из каталога физических лиц.<br>
В Н И М А Н И Е !<br>
12/12/02 Интерфейс закрыт для изменения и будет удален,
как только перестанет использоваться.<br>
Для выбора сотрудников используйте интерфейс выбора КАУ iGetKau.<br>
Например, так:<br>
<pre class="example">
iGetKau.GetCodeKau(cgiPick, cgKau_Persons, cKau).
</pre>
#end