Достать memo-поле
Модераторы: m0p3e, edward_K, Модераторы
Достать memo-поле
Добрый день!
Задача такая: в реестр приказов на увольнение добавить информацию, которая записана в примечании к этим приказам.
Честно говоря, даже не знаю с какой стороны к этому подступиться , а сделать это надо быстро...
Помогите, пожалуйста, люди добрые)
Задача такая: в реестр приказов на увольнение добавить информацию, которая записана в примечании к этим приказам.
Честно говоря, даже не знаю с какой стороны к этому подступиться , а сделать это надо быстро...
Помогите, пожалуйста, люди добрые)
Кто сказал, что бесполезно биться головой об стену?!
разве нельзя из формы?
примерно так попробуй:
примерно так попробуй:
Код: Выделить всё
.create view v1
var tempString : string
from DOCINFO
where
...
;
.{ table v1
.fields
v1.docinfo.name
tempString
.endfields
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.{ while memoreadln(tempString, tnDocInfo)=0
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.}
.}
.endform
-
- Местный житель
- Сообщения: 412
- Зарегистрирован: 28 апр 2005, 11:34
- Откуда: Галактика Млечный Путь
Неправда Все это может быть использовано в форме, только синтаксис будет немного другой. В доке описаны как методы так и функции доступа как мемо полю.edward_K писал(а):вопрос тока в том что мемополе не достать из формы - тока из vip получалось. Надо делать объектный фейс. На форуме уже вроде обсуждалось - попробуйте поискать. А эт вам для затравки
File FMemo;
if FMemo.OpenMemo(DocInfo.TEXTDATA)
{ FMemo.Seek(0);
while not FMemo.EOF
{
FMemo.Readln(s1);
S:=S+s1
}
}
в форме нужно использовать ф-ции.
Пример из доки:
Метод OpenMemo (Memo) : Boolean. Функция File_OpenMemo (LongInt, Memo) : Boolean
Что нужно писать в форме:
Вместо File FMemo; нужно получить ф-цией Handle ссылку на объект.
использовать полученный Handle в соотвествующих методам функциях.
А эт вам для затравки
var hfile : longint;
hfile := handle;
if FMemo_OpenMemo(hfile,DocInfo.TEXTDATA)
{ FMemo_Seek(hfile,0);
while not FMemo_EOF(hfile)
{
FMemo_Readln(hfile,s1);
S:=S+s1
}
}
-
- Местный житель
- Сообщения: 412
- Зарегистрирован: 28 апр 2005, 11:34
- Откуда: Галактика Млечный Путь
или вот еще вариант для печати в форме вызовом программы на випе:
/*
код таблицы для allmemo
нрек записи из таблицы для allmemo
логический параметр - преобразовывать перевод каретки в пробелы - да/нет
15-цать строковых переменных для приема текста
в отчете будет выглядеть выглядеть так
.begin
runinterface(Daimemopole,cokatmc,katmc.nrec,true,s[1],s[2],s[3],s[4],s[5],s[6],s[7],s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);
end.
.fields
s[1] s[2] s[3] s[4] s[5] s[6] s[7] s[8] s[9] s[10] s[11] s[12] s[13] s[14] s[15]
.ensfields
^^^^^^^^^^
*/
interface DaiMemoPole 'Запрос Мемо-поля', AlwaysReturn;
var s : array[1..15] of string;
TextStr : string;
c : char;
cnt : byte;
i : byte;
file TextOfDocument;
create view
var s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15 : string;
wtable : word;
crec : comp;
RSpace : boolean;
from
katos,
allmemo
where
((
wTable == allmemo.wtable
and cRec == allmemo.crec
));
Parameters wTable,cRec,RSpace,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15;
HandleEvent
cmInit:
{
for (i:=1;i<=15;i:=i+1) s := '';
if getfirst allmemo = tsOK
{
if ( TextOfDocument.OpenMemo(Allmemo.mem) )
{
if ( TextOfDocument.GetSize !=0 )
{
TextOfDocument.Seek(0);
i := 1;
while not TextOfDocument.EOF do
{
TextStr := '';
for(cnt:=1;cnt<250;cnt := cnt + 1)
{
TextOfDocument.read(c);
if RSpace
{
if c = chr(10) c := ' ';
if c = chr(13) c := ' ';
}
TextStr := TextStr + c;
if TextOfDocument.EOF break;
}
s := TextStr;
if i = 15 break;
i := i + 1;
}
}
TextOfDocument.Close;
}
}
s1 := s[1];
s2 := s[2];
s3 := s[3];
s4 := s[4];
s5 := s[5];
s6 := s[6];
s7 := s[7];
s8 := s[8];
s9 := s[9];
s10 := s[10];
s11 := s[11];
s12 := s[12];
s13 := s[13];
s14 := s[14];
s15 := s[15];
Abort;
Exit;
}
end;
end.
/*
код таблицы для allmemo
нрек записи из таблицы для allmemo
логический параметр - преобразовывать перевод каретки в пробелы - да/нет
15-цать строковых переменных для приема текста
в отчете будет выглядеть выглядеть так
.begin
runinterface(Daimemopole,cokatmc,katmc.nrec,true,s[1],s[2],s[3],s[4],s[5],s[6],s[7],s[8],s[9],s[10],s[11],s[12],s[13],s[14],s[15]);
end.
.fields
s[1] s[2] s[3] s[4] s[5] s[6] s[7] s[8] s[9] s[10] s[11] s[12] s[13] s[14] s[15]
.ensfields
^^^^^^^^^^
*/
interface DaiMemoPole 'Запрос Мемо-поля', AlwaysReturn;
var s : array[1..15] of string;
TextStr : string;
c : char;
cnt : byte;
i : byte;
file TextOfDocument;
create view
var s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15 : string;
wtable : word;
crec : comp;
RSpace : boolean;
from
katos,
allmemo
where
((
wTable == allmemo.wtable
and cRec == allmemo.crec
));
Parameters wTable,cRec,RSpace,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15;
HandleEvent
cmInit:
{
for (i:=1;i<=15;i:=i+1) s := '';
if getfirst allmemo = tsOK
{
if ( TextOfDocument.OpenMemo(Allmemo.mem) )
{
if ( TextOfDocument.GetSize !=0 )
{
TextOfDocument.Seek(0);
i := 1;
while not TextOfDocument.EOF do
{
TextStr := '';
for(cnt:=1;cnt<250;cnt := cnt + 1)
{
TextOfDocument.read(c);
if RSpace
{
if c = chr(10) c := ' ';
if c = chr(13) c := ' ';
}
TextStr := TextStr + c;
if TextOfDocument.EOF break;
}
s := TextStr;
if i = 15 break;
i := i + 1;
}
}
TextOfDocument.Close;
}
}
s1 := s[1];
s2 := s[2];
s3 := s[3];
s4 := s[4];
s5 := s[5];
s6 := s[6];
s7 := s[7];
s8 := s[8];
s9 := s[9];
s10 := s[10];
s11 := s[11];
s12 := s[12];
s13 := s[13];
s14 := s[14];
s15 := s[15];
Abort;
Exit;
}
end;
end.