Последняя версия DataExpress 3 beta от 15 сентября 2020 года.

Изображение Скачать | Изображение Что нового?



Объявление:

Если вам понравилась программа и вы ее интенсивно используете - замолвите словечко о ней на вашем сайте (блоге, форуме, твитере, краской на подъезде, ютуб-канале и т.д.) с активной (по-возможности) ссылкой на сайт программы/форум. Тем самым вы можете внести небольшой вклад в seo-карму проекта в виде входящих ссылок.
Спасибо! Администрация :)


>> Обсудить <<

Примеры скриптов

Все вопросы, связанные с написанием скриптов и SQL-запросов.
Аватара пользователя
admin
Разработчик
Сообщения: 5196
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 41 раз
Поблагодарили: 341 раз

Примеры скриптов

Сообщение admin » 11 фев 2017, 11:35

В данной теме можно делиться примерами использования скриптов.

В данном примере показано как можно программно открыть окно списка для выбора значения объекта.

ОКНО ОТЧЕТА И ОБЪЕКТ.ZIP
(56.67 КБ) 195 скачиваний
Использование окна отчета вместо окна списка для выбора значения объекта. Использование окна отчета при шопинге.

ЭКСПОРТ СВОДНОЙ ТАБЛИЦЫ.ZIP
(49.77 КБ) 223 скачивания
Экспорт сводной таблицы в MS Excel, используя OLE Automation.

ЭКСПОРТ В XML.ZIP
(48.29 КБ) 238 скачиваний
Экспорт формы и таблицы в файл XML.

ИМПОРТ ЭКСПОРТ ТАБЛИЦ.ZIP
(50.07 КБ) 430 скачиваний
Импорт/экспорт таблицы в файл CSV.

Аватара пользователя
kroks
Интересующийся
Сообщения: 173
Зарегистрирован: 01 мар 2017, 20:23

Re: Примеры скриптов

Сообщение kroks » 07 мар 2017, 10:50

Пример скрипта, косвенно вызывающего функцию/процедуру из модуля по имени кнопки.
Псевдоаналог выражения.


Принцип работы:

В цепочку условия можно добавлять какие-то процедуры и функции.
Использовать их не вникая в код (для ленивых или тех, кто не умеет программировать, но хочет получить от программы немного больше базового функционала выражений используя скрипты).
Создавая кнопку на форме: именовать ее согласно имени процедуры в цепочке условий.
Пример на скорую руку. Со временем немного расширю список и функционал.

Код: Выделить всё

{Пока для данного примера работают 2 имени кнопки:

1. S_MSG // Показывает сообщение
2. S_FORM_RED // Красит форму в красный цвет
}
{Пока для данного примера работают 2 имени кнопки:
1. S_MSG
2. S_FORM_RED
}

procedure CFP(S:TObject);
var Btn:TComponent;
begin
Btn := S as TComponent;

if Btn.Name = 'S_MSG' then
    msgbox('','Всем привет')

else if Btn.Name = 'S_FORM_RED' then
    begin
    Self.Color := clRed;
    Self.EditWindow.Color := clRed;
    end

else msgbox('', 'Кнопке "'+Btn.Name+'" не назначено никакого действия.' )

///........и так далее........

end;

procedure AssignButtons(S: TObject);
var
  i:integer;
  c:TdxButton;
begin
for i:=0 to Self.ComponentCount-1 do
  if Self.Components[i].ClassName = 'TdxButton' then
      begin;
      c:=TObject(Self.Components[i]) as TdxButton;
      c.OnClick := @CFP;
      end;
  end;

procedure Form_Create;
begin
  AssignButtons(Self);
end;
Отдал - возьми! Взял - отдай! Изображение

jurist23rus
Эксперт
Сообщения: 2707
Зарегистрирован: 30 сен 2016, 09:42
Откуда: Майкоп
Благодарил (а): 3 раза
Поблагодарили: 28 раз

Re: Примеры скриптов

Сообщение jurist23rus » 12 мар 2017, 20:15

Скрипт демонстрирует возможность сохранения сведений в поле формы о том какая закладка компонента PageControl была активна (на переднем плане). Даёт следующие возможности:
1. При переходе к конкретной, уже имеющейся в базе записи, а именно при переводе записи в режим редактирования, активируется та закладка, которая была активна при сохранении этой записи.
2. При создании новой записи программа определяет какая закладка была активна в предыдущей записи и в новой записи делает активной ту же закладку.

Активная закладка.zip
(86.94 КБ) 167 скачиваний


Благодарность за помощь в создании скрипта: Admin, porqes.
Destiny is a very convenient word for those who never take decisions.

jurist23rus
Эксперт
Сообщения: 2707
Зарегистрирован: 30 сен 2016, 09:42
Откуда: Майкоп
Благодарил (а): 3 раза
Поблагодарили: 28 раз

Re: Примеры скриптов

Сообщение jurist23rus » 19 мар 2017, 23:16

Пример, где у окна редактирования записи (EditWindow) заменены штатные кнопки "ОK" и "Отмена" на свои. Работа самодельных кнопок похожа на штатные, но у кнопки "Отмена" есть доп. возможность, при её нажатии появляется окно подтверждения действия - это для тех кто часто ошибается, нажимая на кнопку "Отмена", и тем самым не сохраняет нужную ему запись.


ПЛАВНАЯ ОТМЕНА.ZIP
(44.48 КБ) 136 скачиваний
Destiny is a very convenient word for those who never take decisions.

neitri
Мастер скриптов
Сообщения: 539
Зарегистрирован: 13 фев 2017, 17:42

Re: Примеры скриптов

Сообщение neitri » 20 мар 2017, 07:40

Отмена штатной кнопкой и запрос сохранения штатной кнопкой.
ПЛАВНАЯ ОТМЕНА 2.zip
(46.16 КБ) 194 скачивания
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3352
Зарегистрирован: 13 апр 2017, 08:57
Поблагодарили: 8 раз
Контактная информация:

Re: Примеры скриптов

Сообщение YurAnt » 27 ноя 2017, 16:40

Пример "тихой" печати HTML содержимого:

Код: Выделить всё

procedure PrintHTML(Sender: TObject);
var IE:Variant;
begin
try
 IE:= CreateOleObject('InternetExplorer.Application')
 IE.Navigate('aboutblank');
 IE.document.Open;
 IE.document.WriteLn('Ваш html-текст');
 IE.document.Close;
 IE.Visible := false; // для установки режима просмотра в браузере: true
 if IE.ExecWB(6,2) then // для отображения диалога выбора принтера: IE.ExecWB(6,1)
 IE.Quit;
except;
 IE:=Unassigned;
 debug(ExceptionParam);
finally;
 IE:=Unassigned;
end;
end;       

jurist23rus
Эксперт
Сообщения: 2707
Зарегистрирован: 30 сен 2016, 09:42
Откуда: Майкоп
Благодарил (а): 3 раза
Поблагодарили: 28 раз

Re: Примеры скриптов

Сообщение jurist23rus » 11 фев 2018, 16:55

Получение списка полей формы и сохранение его в динамический массив.
Вложения
ПОЛУЧЕНИЕ СПИСКА ПОЛЕЙ ФОРМЫ.ZIP
(45.78 КБ) 174 скачивания
Destiny is a very convenient word for those who never take decisions.

Zenitchik
Интересующийся
Сообщения: 66
Зарегистрирован: 08 мар 2018, 01:07

Re: Примеры скриптов

Сообщение Zenitchik » 23 мар 2018, 17:37

Преобразования cardinal в шестнадцатиричную систему.

Код: Выделить всё

function hexadecimal(decimal:cardinal):string;
var digit: byte; hexdigit:array of string;
begin
  hexdigit:=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];

  result:='';
  while decimal > 0 do begin
    digit := decimal mod 16;
    result := hexdigit[digit] + result;
    decimal := decimal / 16
  end;
end;     

Аватара пользователя
rausNT
Специалист
Сообщения: 765
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 133 раза
Поблагодарили: 11 раз

Re: Примеры скриптов

Сообщение rausNT » 23 мар 2018, 17:51

Zenitchik писал(а):Преобразования cardinal в шестнадцатиричную систему.


а разве стандарт языка не содержит этот функционал?

Код: Выделить всё

ShowMessage(Format('Hexadecimal      = %x', [140]));

Zenitchik
Интересующийся
Сообщения: 66
Зарегистрирован: 08 мар 2018, 01:07

Re: Примеры скриптов

Сообщение Zenitchik » 23 мар 2018, 18:01

Гугл мне не помог. Найдя три неправильных варианта, я решил, что написать свой - быстрее, чем продолжать гуглить и пробовать.


Вернуться в «Программирование в DataExpress»