Массовая рассылка писем для БОУРМ

Автор:Xmlsot
Дата:26.09.2002
Просмотров:4108
Скачиваний:1044
Оценка: - , Оценок - 0
Скачать (zip-файл; Размер - 1262)

Обсудить в форуме

Описание

Массовая рассылка писем для БОУРМ

Текст примера

 /*************************************************************/
/* Создание письма для всех клиентов.                        */
/* Письмо должно лежат в каталоге .\TXTFILE                  */
/*************************************************************/

import cbmFormFields;
FILE imsg(clbimsg) key 6;
FILE imsgw(clbimsg) key 0 write;
file inn(clbclnt) key 0;
FILE tt () txt;


/* Структура документа */
RECORD CurrentRecord(clbimsg);
RECORD NewRecord(clbimsg);

const FormSeparatorBegin = "(", FormSeparatorEnd = ")";

var NewLine, sMessage, nj, bFlgFirstEntry, NDaysHollyday;

NewLine=strfor(10);

/* Ввод текста письма */
MACRO NewLetterAdd(sInn, dDate, sSubj, sText, sDocId, nReis)

VAR dictId, updateDate, updateTime, bFlgRet, RecId;
NewRecord.form = 1007;
NewRecord.BIC = "045354886";
NewRecord.INN = sInn;
NewRecord.imsgDate = dDate;
NewRecord.operDocId = sDocId;
NewRecord.imsgNum = nReis;

cbInitFormFields(NewRecord);

if(cbFormFieldsNum(NewRecord) != 0)
  cbSetFieldByName(NewRecord, "subj", sSubj);
  cbSetFieldByName(NewRecord, "text", sText);
end;

RecId=cbMakeAndSendInfoMessage(NewRecord);

if ( RecId != 0 )
  imsgw.Id=RecId;
  if (geteq(imsgw))
    imsgw.operDocId = sDocId;
    update(imsgw);
  end;
  println("Создано письмо ",dDate," N=",RecId," ",imsgw.operDocId);
  return(True);
end;
println(" Не удалось создать письмо для ",sDocId);
return(False);

OnError(x)
println("Error: ",x.code);
println(x.message);
if(x.code == 42) /* IER_RUNTIME - ловим баги вылетающие из вложенных макросов */
  return false;
end; 
RunError();
END;

var sSubj, sText = "", sDocId, nReis, sfile = "";

var textLoad = "Выберите файл для загрузки в письмо",
    fileMask = "*.txt";  

/* Вводим тему письма */
IF  ( NOT GETSTRING(sSubj,"Введите тему письма: ",70) )
   sSubj = STRING(date())+" Письменное сообщение для клиентов Банка ОИКБ РУСЬ.";
END;

/* Выбираем файл с письмом */
IF ( not(SelectFile(sfile,
   "..\\txtfile\\*.txt", textLoad)) );
   msgbox("Файл не выбран!");
   EXIT(1); 
ELSE
   msgbox("Выбран файл: "+sfile);
END;
OPEN (tt,sfile);

sDocId="1"; nReis=1;
while (next(inn))
   WHILE (NEXT(tt))
      sText = sText + (tt.str) + NewLine;
   END;
   NewLetterAdd(inn.Inn, Date, sSubj, sText, sDocId, nReis);
end;