1. Вызов окна из скрипта самого окна


Скачать 93.5 Kb.
Название 1. Вызов окна из скрипта самого окна
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
How TODO in Terrasoft CRM 3.0

Содержание

1. Вызов окна из скрипта самого окна 1

2. Логирование сообщений 1

2.1. Вывод сообщений в лог 1

2.2. Вывод активного действия в лог 1

3. Создание соединения с системой 2

3.1. Создание соединения для конкретного пользователя 2

3.2. Соединение с вызовом формы логина 3

4. Импорт данных в Excel из Terrasoft CRM 3.0 4

5. Создание COM объекта и вызов COM объекта из скрипта 5

6. Экспорт данных из Terrasoft CRM 3.0 в Excel 5

7. Динамическое создание сервисов 6

8. Обновление грида детали раздела 6

9. Экспорт данных из Excel в Terrasoft CRM 3.0 7



1.Вызов окна из скрипта самого окна


Для вызова окна необходимо добавить в текст скрипта следующую функцию Main в которой указать имя требуемого окна, после чего нажать F9:

function Main() {

var Window = Services.GetNewItemByUSI('wnd_TestWindow');

Window.IsDesigning = false;

Window.Prepare();

Window.Show();

}

2.Логирование сообщений

2.1.Вывод сообщений в лог


Для вывода сообщений в лог системы можно воспользоваться методом объекта Log.Write(). Для использования констант необходимо в скрипт включить модуль scr_SysEnums

function Main() {

Log.Write(lmtInformation, 'Information Text');

Log.Write(lmtWarning, 'Warning Text');

Log.Write(lmtError, 'Error Text');

}

2.2.Вывод активного действия в лог


Вывод сообщений можно эффективно дополнить функцией вывода активного сообщения. Активное сообщение позволяет не только вывести информацию, но и произвести соответсвующее действие пользователем. Для этого необходимо воспользоваться методом объекта Log.WriteAction(). Например, следующее действие открывает дизайнер сервиса Select Query 'sq_Opportunity':

function Main() {

Log.Write(lmtError, 'Error In Service sq_Opportunity');

Log.WriteAction('Edit', 'Edit sq_Opportunity',

'function Main() {' +

' Designers = Core.DesignerCore.Designers;' +

' Designers.DesignServiceByUSI("sq_Opportunity", "", false);' +

'}');

}

Данный метод можно активно использовать для создания интуитивно понятных сообщений, наподобие таких: 'Если вы хотите отредактировать сервис sq_Opportunity нажмите на «Редактировать», если хотите удалить, нажмите на «Удалить», хотите создать новый, нажмите «Создать»'.

3.Создание соединения с системой

3.1.Создание соединения для конкретного пользователя


Для создания соединения необходимо создать объект "TSObjectLibrary.Connector" и вызвать его метод OpenConfiguration:

function OpenConfiguration(const Configuration: IConfiguration;

const UserName: WideString; const UserPassword: WideString): WordBool;

Пример создания соединения из Excel:

Sub Macro1()

Dim Connector

Dim Configuration

Dim Window

Set Connector = CreateObject("TSObjectLibrary.Connector")

Set Configuration = Connector.Configurations.ItemsByName("TSCRM")

If (Not Connector.OpenConfiguration(Configuration, "Supervisor", "")) Then

Exit Sub

End If

Set Window = Connector.Services.GetNewItemByUSI("wnd_TestWindow")

Window.WindowCaption = "Test Caption"

Window.Prepare

Window.ShowModal

End Sub

Для вызова из Delphi:

unit Unit1;
interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TSObjectLibrary_TLB, StdCtrls;
type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;
var

Form1: TForm1;
implementation
{$R *.dfm}
uses

TSWindowLibrary_TLB, ComObj;
procedure TForm1.Button1Click(Sender: TObject);

var

//Value: OleVariant;

Connector: IConnector;

Configuration: IConfiguration;

Service: IService;

Window: IWindow;

begin

{Value := CreateOleObject('TSObjectLibrary.Connector');

if (not Supports(Value, IConnector, Connector)) then

begin

Exit;

end;}

Connector := CoConnector.Create();

Configuration := Connector.Configurations.ItemsByName['TSCRM'];

if (not Connector.OpenConfiguration(Configuration, 'Supervisor', '')) then

begin

Exit;

end;

Service := Connector.Services.GetNewItemByUSI('wnd_Customer');

if (not Supports(Service, IWindow, Window)) then

begin

Exit;

end;

Window.Prepare();

Window.ShowModal();

end;
end.

3.2.Соединение с вызовом формы логина


Для создания соединения с вызовом формы логина необходимо создать объект "TSDskObjectLibrary.DskConnector" и вызвать его метод Login:

function Login(const ApplicationName: WideString): WordBool;

Пример создания соединения с вызовом формы из Excel:

Sub Macro1()

Dim Connector

Dim Window

Set Connector = CreateObject("TSDskObjectLibrary.DskConnector")

If (Not Connector.Login("Test Application")) Then

Exit Sub

End If

Set Window = Connector.Services.GetNewItemByUSI("wnd_TestWindow")

Window.WindowCaption = "Test Caption"

Window.Prepare

Window.ShowModal

End Sub

Для Delphi:

unit Unit1;
interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TSObjectLibrary_TLB, StdCtrls;
type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;
var

Form1: TForm1;
implementation
{$R *.dfm}
uses

TSWindowLibrary_TLB, TSDskObjectLibrary_TLB, ComObj;
procedure TForm1.Button1Click(Sender: TObject);

var

Connector: IDskConnector;

Configuration: IConfiguration;

Service: IService;

Window: IWindow;

begin

Connector := CoDskConnector.Create();

if (not Connector.Login()) then

begin

Exit;

end;

Service := Connector.Services.GetNewItemByUSI('wnd_Customer');

if (not Supports(Service, IWindow, Window)) then

begin

Exit;

end;

Window.Prepare();

Window.ShowModal();

end;
end.

4.Импорт данных в Excel из Terrasoft CRM 3.0


Sub ImportContacts()

Dim Connector

Dim Configuration

Set Connector = CreateObject("TSObjectLibrary.Connector")

Set Configuration = Connector.Configurations.ItemsByName("TSCRM")

If (Not Connector.OpenConfiguration(Configuration, "Supervisor", "")) Then

Exit Sub

End If

Dim Dataset

Set Dataset = Connector.Services.GetNewItemByUSI("ds_Contact")

Dim Sheet As Worksheet

Dataset.Open

Set Sheet = ActiveSheet

i = 2

Sheet.Cells(1, 1) = "Name"

Sheet.Cells(1, 2) = "Address"

While Not Dataset.IsEOF

Sheet.Cells(i, 1) = Dataset.ValAsStr("Name")

Sheet.Cells(i, 2) = Dataset.ValAsStr("Address")

Dataset.GotoNext

i = i + 1

Wend

Dataset.Close

End Sub

5.Создание COM объекта и вызов COM объекта из скрипта


1) Для создания COM объекта необходимо в Delphi создать проект (меню File  New  Other…  Закладка ActiveX  ActiveX Library ) и сохранить его с именем «TestComObject».

2) В проект добавляем объект автоматизации (меню File  New  Other…  Закладка ActiveX  ActiveX Library  Automation Object), вводим CoClassName «Test».

3) В редакторе библиотеки типа в интерфейсе ITest добавляем метод «MsgBox» с параметром Name = Message, Type = WideString.

Добавляем в раздел implementation модуль Dialogs:

implementation
uses ComServ, Dialogs;

А в тело метода MsgBox добавляем вызов функции ShowMessage:

procedure TTest.MsgBox(const Message: WideString);

begin

ShowMessage(Message);

end;

Сохраняем модуль объекта в файле Test.pas

4) Регистрируем библиотеку (меню Run  Register ActiveX Server).

5) Для вызова COM объекта необходимо создать произвольный сервис скрипта и добавить в текст скрипта следующую функцию Main, после чего нажать F9:

function Main() {

var TestObject = System.CreateObject('TestComObject.Test');

TestObject.MsgBox('Test Message');

}

6.Экспорт данных из Terrasoft CRM 3.0 в Excel


Для экспорта данных в Excel необходимо создать ActiveXObject с именем 'Excel.Application', затем создать Excel-книгу (Workbook) и вывести данные в соответствующие столбцы:

function btnExportToExcelOnClick(Control) {

var ExcelApplication = new ActiveXObject('Excel.Application');

var WorkBook = ExcelApplication.WorkBooks.Add();

var Sheet = WorkBook.ActiveSheet;

var Dataset = dlCustomer.Dataset;

Dataset.DisableEvents();

try {

for (var i = 0; i < Dataset.Datafields.Count; i++) {

var Datafield = Dataset.Datafields.Items(i);

Sheet.Cells(1, i + 1) = Datafield.Name;

}

var i = 2;

var IDField = Dataset.Datafields.ItemsByName('ID');

var NameField = Dataset.Datafields.ItemsByName('Name');

var AddressField = Dataset.Datafields.ItemsByName('Address');

var BalanceField = Dataset.Datafields.ItemsByName('Balance');

Dataset.GotoFirst();

while (!Dataset.IsEOF) {

Sheet.Cells(i, 1) = IDField.Value;

Sheet.Cells(i, 2) = NameField.Value;

Sheet.Cells(i, 3) = AddressField.Value;

Sheet.Cells(i, 4) = BalanceField.Value;

Dataset.GotoNext();

i = i + 1;

}

} finally {

Dataset.EnableEvents();

}

Sheet.Cells.Select();

Sheet.Cells.EntireColumn.AutoFit();

Sheet.Range('A2').Select();

ExcelApplication.Visible = true;

}

7.Динамическое создание сервисов


Для экспорта данных в Excel необходимо создать ActiveXObject с именем 'Excel.Application', затем создать Excel-книгу (Workbook) и вывести данные в соответствующие столбцы:

function btnExportToExcelOnClick(Control) {

.. TODO

8.Обновление грида детали раздела


Пример: необходимо после создания задачи для указанного проекта обновить делать «задачи проекта».

Для обновление грида детали раздела необходимо изменить в скрипте карточки задачи scr_TaskEdit метод btnOKOnClick() (вставленный код выделенный жирным шрифтом) и добавить в скрипт дополнительный модуль (Inclusions  Script) scr_DB:

function btnOKOnClick(Control) {

var Dataset = dlData.Dataset;

var IsFinished = GetTaskStatusIsFinishByID(Dataset.Values('StatusID'));

var WorkflowItemID = Dataset.Values('WorkflowItemID');

var MadeByWorkflow = (WorkflowItemID != null);

if (IsFinished && MadeByWorkflow) {

Dataset.DataFields('ResultID').IsRequired = true;

} else {

Dataset.DataFields('ResultID').IsRequired = false;

}

if (!CheckTaskData(Dataset)) {

return;

}

CreateRemindings();

TaskEdit.IsCompleting = true;

try {

var ResultFlag = scr_BaseDBEdit.btnOKOnClick(Control);

}

finally {

TaskEdit.IsCompleting = false;

}

if (Self.IsVisible) {

return;

}

var MainWindow = Connector.Attributes('MainWindow');

var wndWorkspace = MainWindow.ComponentsByName('wndWorkspace');

var WorkspaceWindow = wndWorkspace.Window;

var WorkspaceWindowUSICode = System.ExtractUSICode(WorkspaceWindow.USI);

if (WorkspaceWindowUSICode == 'wnd_OpportunitiesWorkspace')

{

var wndTasksDetail = WorkspaceWindow.ComponentsByName('wndTasksDetail');

var TasksDetailWindow = wndTasksDetail.Window;

var DatasetLink = TasksDetailWindow.ComponentsByName('dlData');

RefreshDataset(DatasetLink.Dataset);

}

var WorkflowItemID = Dataset.ValAsStr('WorkflowItemID');

if ((!TaskEdit.StatusChanged) || (!IsFinished) ||

(IsEmptyGUID(WorkflowItemID))) {

return;

}

var WorkflowEngine = GetAttribute(Connector, 'WorkflowEngine');

if (Assigned(WorkflowEngine)) {

WorkflowEngine.ProcessWorkflowItem(WorkflowItemID);

}

}

9.Экспорт данных из Excel в Terrasoft CRM 3.0


Sub ExportToTSCRM()

Dim Connector

Dim Configuration

Set Connector = CreateObject("TSObjectLibrary.Connector")

Set Configuration = Connector.Configurations.ItemsByName("TSCRM")

If (Not Connector.OpenConfiguration(Configuration, "Supervisor", "")) Then

Exit Sub

End If

Dim Dataset

Set Dataset = Connector.Services.GetNewItemByUSI("ds_Contact")

Dim Sheet As Worksheet

Dataset.Open

Set Sheet = ActiveSheet

Dim MaxRange As Range

Set MaxRange = Selection.End(xlDown)

For Row = 2 To MaxRange.Row

Dataset.Append

Dataset.ValAsStr("ID") = Connector.GenGUID

Dataset.ValAsStr("Name") = Sheet.Cells(Row, 1)

Dataset.ValAsStr("Address") = Sheet.Cells(Row, 2)

Dataset.Post

Next Row

Dataset.Close

End Sub
Исходная таблица данных в Excel




A

B

1

Name

Address

2

Contact1

Address1

3

Contact2

Address2

4

Contact3

Address3

5

Contact4

Address4

6

Contact5

Address5

7

Contact6

Address6

8

Contact7

Address7

9

Contact8

Address8

10

Contact9

Address9

11

Contact10

Address10

Похожие:

1. Вызов окна из скрипта самого окна icon В случае, если у Вас возникнут какие-либо вопросы или пожелания,...
Настоящая книжка включает в себя инструкцию по эксплуатации и гарантийный документ на дерево алюминиевые окна, деревянные окна и...
1. Вызов окна из скрипта самого окна icon С ерия hv в ентилятор для монтажа в окна и стены для кухонь, офисных помещений
Вентиляторы серии hv являются осевыми приточно-вытяжными вентиляторами и предназначены для установки в окна и стены
1. Вызов окна из скрипта самого окна icon Техническое задание на выполнение работ по замене деревянных окон...
Предмет договора: замена деревянных окон на окна пвх, в количестве 29 шт (см эскизы)
1. Вызов окна из скрипта самого окна icon Руководство пользователя Проведение операций Содержание Интерфейс...
Рабочая область. Здесь отображаются окна для проведения операций либо графики отчётов (если закрыты все окна)
1. Вызов окна из скрипта самого окна icon Где и когда существовали налоги на шляпы, перчатки, окна и обои?
Этот налог продержался 27 лет. В течение 18-19 веков в Англии существовало и множество других налогов подобного рода: на окна, обои,...
1. Вызов окна из скрипта самого окна icon Техническое задание на проведение открытого конкурса на выполнение...
Наименование конкурса – сервисные услуги по вырезке «окна» в 245мм технической колонне и проводке бокового ствола
1. Вызов окна из скрипта самого окна icon Техническое задание на проведение открытого конкурса на выполнение...
«окна» в 245мм тех колонне эксплуатационных скважин оп 1, 2, 3, 4 Чаяндинского нгкм
1. Вызов окна из скрипта самого окна icon Учебный план курса «Пользователь эвм» Уровень подготовки: начинающий....
Введение. Структура окна Worrd. Ввод текста. Вызов команд. Пиктограммное меню. Быстрая помощь, команды помощи. Общие установки....
1. Вызов окна из скрипта самого окна icon Ооо «ОлТо» Руководство по эксплуатации и уходу за окнами из пвх мы...
В новых окнах требуется подгонка всех подвижных деталей фурнитуры. Поэтому случается, что в первое время при закрытии створки необходимо...
1. Вызов окна из скрипта самого окна icon Рекомендации по оптимизации предоставления государственных и муниципальных...
Ульяновской области по принципу «одного окна» в рамках межведомственного взаимодействия, включая рекомендации по заполнению технологических...
1. Вызов окна из скрипта самого окна icon 2. техническое задание на поставку и замену деревянных окон на пластиковые...
Настоящее техническое задание содержит основные требования к выполнению работ по поставке и замене деревянных окон на пластиковые...
1. Вызов окна из скрипта самого окна icon Изменение Просмотра Рабочего Окна 12

1. Вызов окна из скрипта самого окна icon Изменение Просмотра Рабочего Окна 12

1. Вызов окна из скрипта самого окна icon Труп сидел прямо напротив меня, в каких-то трёх шагах, привалившись...
Именно эта вот «молотилка» сгребла его у самого окна, ясное дело. Скверная это штука, нехорошая. Сканер её не видит, болты пролетают,...
1. Вызов окна из скрипта самого окна icon Название компании
Общество с ограниченной ответственностью «богатырские окна и двери торгово-производственная компания»
1. Вызов окна из скрипта самого окна icon Вопросы для экзамена по информатике. Теоретические
Операционная система Windows. Элементы окна. Основные операции с папками и файлами

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск