ТМС:Сводник

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск

Полезные скрипты для работы с ТМС, WDict и Аналитическими отчетами

Передача параметра в справочник

var
qParams: TibQuery;
begin
 qParams := dm.TempQuery(nil);
 try
  qParams.sql.text := 'select * from rdb$database where 1=:tek_id';
  qParams.prepare;
  //
  //Определяем параметр
  qParams.parambyname('Имя параметра').asstring := Значение параметра;
  //
   //Вызываем справочник
  ShowWDict('ID справочника,'', qParams.params); 
 finally
  qParams.Free;
 end;
end;

Управление элементами в панели управления

работает тока в своднике

var
 pn: TAdvPanel;
begin 
 pn:=gsender.FindComponent('pnShow');
//Скрыть элемент статистики ... ...
 pn:=gsender.FindComponent('pnStat'); pn.Visible:=False; 
//Скрыть поиск
 pn:=gsender.FindComponent('ApnSearch');pn.Visible:=False;
//Скрыть фильтр
 pn:=gsender.FindComponent('ApnFilter');  pn.Visible:=False;
 pn:=gsender.FindComponent('AdvPanel1'); pn.Visible:=False;
 pn:=gsender.FindComponent('AdvPanel3'); 
//Скрыть элемент печать/экспорт
 pn:=gsender.FindComponent('ApnExport'); pn.Visible:=False;
//
 pn:=gsender.FindComponent('ApnChilds'); pn.Visible:=False;
 pn:=gsender.FindComponent('pnTop');
 pn.height:=120;
end;

Добавление своих кнопок

В ТМС инициализации создаем отдельну. форму с кнопками(Form), где кнопки помещаем на панель (TPanel) -pnButtons

var
frm: Tform2;
pn: TPanel;
begin
pn:=gsender.FindComponent('pnTop');
frm:=Tform2.Create(nil);
frm.pnButtons.Parent:=pn;
frm.pnButtons.Align:=alLeft;
frm.pnButtons.Left:=gSender.Width;                                       
end;

Получение ID записи на которой стоит курсор

uses
unFrameCustomDict,UnMain,dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid
begin
s:=inttostr(gSender.pgbList.FocusedNode.Values[gSender.pgbList.ColumnByFieldName('ID').Index]);
end


Обновление справочника при редактировании записи в Grid

uses
 Classes,unFrameCustomDict, unMain, Graphics, Controls, Forms, Dialogs;
procedure ActionAfterEditField;
 var frame:TFrameCustomDict;
begin
frame:=gsender.owner;
frame.ImmediateSelect;
end;    
begin 
gsender.ActionAfterEditField:='ActionAfterEditField'; 
end;