Добавление копии формата файла для обрабатывающего центра и изменения параметров инструментов

Материал из ADGroupWiki
Перейти к навигации Перейти к поиску

Скрипт использует два события. Первое - в момент старта программы скрипт по событию OnAppStart добавляет в перечень файлов для экспорта данных копию одного из существующих форматов файлов. Второе событие - в момент формирования файла скрипт проверяет что событие вызвано вновь добавленным форматом файла и меняет коды инструментов, удаляет ненужные инструменты.

Файл:AppEvents.rar

  procedure OnAppStart;
  begin
    gd.StanokExports.AddItem(1000,'Обрабатывающий центр Schirmer BAZ-1000-2, формат "$TX" (*.$TX)|*.$TX',bpemObrabBAZ1000,2);
  end;
  
  procedure OnStanokExportBeforeCreateStructure;
  var
    i,k:integer;
    bi:TBinaryPilaExpItem; 
    ooi1:TObrabOperItem;
  begin       
    if gd.StanokExportCore.IdStanokExport<>1000 then exit;
    //Showmessage('Event!!! '+inttostr(gd.StanokExportCore.IdStanokExport));
    for i:=0 to gd.StanokExportCore.Items.Count-1 do
    begin       
      bi:=gd.StanokExportCore.Items.GetByNum(i);
      if assigned(bi)then
      begin
        // меняем номера инструментов 
        for k:=0 to bi.ObrabItems.Count-1 do  
        begin                    
          ooi1:=bi.ObrabItems.GetByNum(k);  
          if ooi1.Instr='285' then ooi1.Instr:='270';
          if ooi1.Instr='295' then ooi1.Instr:='270';
          if ooi1.Instr='002' then ooi1.Instr:='001';
          if ooi1.Instr='021' then ooi1.Instr:='020';
          if ooi1.Instr='022' then ooi1.Instr:='020';
          if ooi1.Instr='031' then ooi1.Instr:='030';
          if ooi1.Instr='032' then ooi1.Instr:='030';
          if ooi1.Instr='051' then ooi1.Instr:='050';
        end;
        // удаляем инструменты         
        k:=0;
        while k<bi.ObrabItems.Count do
        begin
          ooi1:=bi.ObrabItems.GetByNum(k);  
          if ooi1.Instr='250' then ooi1.Instr:='';
          if ooi1.Instr='251' then ooi1.Instr:='';
          if ooi1.Instr='286' then ooi1.Instr:='';
          if ooi1.Instr='287' then ooi1.Instr:='';
          if ooi1.Instr='296' then ooi1.Instr:='';
          if ooi1.Instr='297' then ooi1.Instr:='';      
          if ooi1.Instr='' then bi.ObrabItems.Delete(k)
                           else inc(k);
        end;  
      end;  
    end;
  end;