Страница 1 из 1
Должности в винительном подеже
Добавлено: 12 мар 2015, 12:04
Espada
Здравствуйте. столкнулся с такой проблемой: При формировании "Приказа на командировки" ФИО и должность должны быть указаны в Творительном(или родительном) подеже! с ФИО я разобрался, а вот с Должностями что-то не выходит. Думал сделать просто замену( типо "Водитель" на "Водителя", "Директор" на "Директора" и т.д.) но должностей много, не самый простой способ
Может можете посоветовать, что-нибудь попроще?) спасибо
Re: Должности в винительном подеже
Добавлено: 12 мар 2015, 12:37
RAJAH
Код: Выделить всё
#ifndef __StringUtils_vih__
#define __StringUtils_vih__
#component "Utils"
// Падежи
const
csNominativeCase = 1; // Именительный падеж (Кто? Что?)
csGenitiveCase = 2; // Родительный падеж (Кого? Чего?)
csDativeCase = 3; // Дательный (Кому? Чему?)
csAccusativeCase = 4; // Винительный (Кого? Что?)
csInstrumentativeCase = 5; // Творительный (Кем? Чем?)
csPrepositionCase = 6; // Предложный (О ком? О чём?)
end;
// Части речи
const
csUnknownWord = 0; // Неопределенное
csNounWord = 1; // Существительное
csAdjectiveWord = 2; // Прилагательное
end;
// Тип данных -> слово и часть речи
public type tWordWithType = record
WordStr : string;
WordType : byte;
end;
public type StringArray = array [1..1] of string;
public objInterface IStringUtils;
public:
////////////////////////////////////////////////////////////////////////
// Склонение слов и предложений, состоящих из существительных и прилагательных
// _case - падеж (константа)
// stopAfterNoun - прекратить склонение после того как наткнулись на существительное
////////////////////////////////////////////////////////////////////////
function ConvertWordToCase(str : string; _case : byte) : tWordWithType;
function ConvertStatementToCase(str : string; _case : byte; stopAfterNoun : boolean = false) : string;
end;
public vipInterface StringUtils implements IStringUtils;
#end
Re: Должности в винительном подеже
Добавлено: 12 мар 2015, 13:13
Irina_
Здравствуйте.
Сама не пробовала, но может подойдет следующее.
Компонент Z_Staff. В SpecialPropetiesForG.vih:
#doc
Функция возвращает должность в требуемом падеже
cPersons - ссылка на персону
CasePost - склонение должности : (1 - 6) (1 - именительный ... 6 - предложный)
#end
function GetPersPost (cPersons: comp; CasePost: word; rabDate: date): string;
Не могу сказать, нужны ли для работы данной функции какие-либо условия, например наличие внешних атрибутов к должностям.
О склонении должностей, например, см. в текстовике StaffOrders_res_... описание к ПИР 102.124275.
Re: Должности в винительном подеже
Добавлено: 12 мар 2015, 13:55
Espada
Спасибо. Примерно понял, про что вы) сейчас буду пробовать)