Страница 1 из 1
Получить "Руководителя" карточка организации
Добавлено: 27 фев 2017, 18:15
Masygreen
В карточке организации, на вкладке "Юридическая информация" есть поле "Руководитель", в поле вписать вручную имя ..
Судя по журнализации там какой-то бред в таблицу allmemo постоянно добавляются поля .. без удаления .. подобрал метод получения...
Код: Выделить всё
_loop allmemo where ((katorg.nrec == allmemo.crec and cokatorg == allmemo.wtable and 1014 == allmemo.tip(noindex)))
sGetDopInf := allmemo.name;
Но что-то мне подсказывает, что получить можно более гуманным способом
Re: Получить "Руководителя" карточка организации
Добавлено: 27 фев 2017, 18:46
Den
Вроде в podrinfo это лежало а не в мемо. Может конечно поменяли что то недавно
метод GetDirectorName в OrganizationInfo.obj
Re: Получить "Руководителя" карточка организации
Добавлено: 28 фев 2017, 00:47
Masygreen
Den писал(а):Вроде в podrinfo это лежало а не в мемо. Может конечно поменяли что то недавно
метод GetDirectorName в OrganizationInfo.obj
там что-то хитрое .. в podrinfo пихается с какими-то символами псевдоразметки и только короткое.. не понял закономерности вставки ..
с GetDirectorName посмотрю, спасибо
Re: Получить "Руководителя" карточка организации
Добавлено: 28 фев 2017, 10:26
edward_K
Лучше всегда юзать объект. Мало ли - поля из PodrInfo частью например уже перекачевали в katorg - адреса например. А в AllMemo видимо пишется история. Чтобы не гадали вот последний вариант
Код: Выделить всё
//------------------------------------------------------------------------------
function GetNameByMet(met : char) : string; //Получение имен представителя,
{ //директора и бухгалтера
var i
,j
,k : byte;
var Names : string;
Names := PodrInfo.PostAddr;
j := 0;
k := 0;
j := inStr(met + ';',Names);
if (j = 0)
Result := ''
else
{
for ( i := j-1; i < length(Names); i++ )
if (Names[i+1] = '&')
{
k := i+1;
break;
}
if (k = 0)
k := length(Names) + 1;
Result := SubStr(Names, j + 2, k - j - 2);
}
}
//------------------------------------------------------------------------------
function GetBigBoss : string;
{
Result := GetNameByMet('B');
}
// руководитель (ссылка на физическое лицо)
function GetDirector: comp;
{
if (KATORG.cBoss = 0) and IsOwnOrganization
Result := coGetTune('Boss');
else
Result := KATORG.cBoss;
}
//ФИО
function GetDirectorName: string;
var nRec : comp;
{
nRec := GetDirector;
Result := '';
if (nRec <> 0)
{
if ( GetFirst Persons where (( nRec == Persons.nRec )) = tsOk )
Result := Persons.FIO;
}
else
Result := GetBigBoss;
}
Re: Получить "Руководителя" карточка организации
Добавлено: 28 фев 2017, 11:31
Irina_
Здравствуйте.
Как-то понадобилось тоже получить ФИО директора и главбуха не своей организации. Тогда нашла их так. Сейчас немного подправила.
Function FindInfoOfOrg( cOrg:Comp; var Fio_dir: String; var Fio_gb: String):Boolean;
Var
String1 : String;
Pos_b, pos_e, len_ : Byte ;
Find_info : Boolean;
Begin
Find_info:= False;
Fio_dir:= ’’;
Fio_gb:= ’’;
If (Getfirst Katorg Where (( cOrg == KatOrg.Nrec )) = tsok)
{
Find_info:= True;
If (Getfirst Podrinfo Where (( cOrg == Podrinfo.cPodr )) = tsok)
{
String1:= Podrinfo.Postaddr;
Len_:= Length(String1);
Pos_b:= Pos( ’M;’ , String1);
If pos_b > 0
{
pos_e:= Pos( ’&B;’ , String1);
if pos_e > 0 then Fio_gb:= Substr(String1, Pos_b+2, Pos_e-Pos_b-2);
String1:= Substr( String1, Pos_e + 1, len_ - Pos_e + 1);
}
Pos_b:= Pos( ’B;’, String1);
If pos_b > 0
{
pos_e:= Pos( ’&’, String1);
if pos_e > 0 then Fio_dir:= Substr(String1, Pos_b+2, Pos_e-3);
}
}
}
FindInfoOfOrg:= Find_info;
End.
Re: Получить "Руководителя" карточка организации
Добавлено: 28 фев 2017, 18:16
Masygreen
Код: Выделить всё
var
Finder: IOrganizationInfoFinder; // загрузка информации об организации
var
Info: OrganizationJuridicalInfo; // юридические атрибуты организации
Finder := IOrganizationInfoFinder(Info); // загрузка информации об организации
Finder.Seek(katorg.nrec)
message(Info.GetDirectorName);
Всем спасибо .. все получилось