Resource

Resource Basics

Resource Name Search by Image ID
Resource Version 1.0
Category Search Scripts
Downloads 728
Release Date 2/12/2021 3:28:54 PM
 

Resource Details

Description This script will search for an image based on its unique ID.
Installation Instructions n.a.
Usage Instructions Download the script
Run the script
Enter the GUID
Changes in this version n.a.
Special Requirements
 

Author Information

Author Name IDimager Support
 

Script

var
  ATextBox: TvxTextBox;

  function CreateForm: TvxSceneForm;
  var
    ARoot: TvxVisualObject;
    ALabel: TvxLabel;
  begin
    result := TvxSceneForm.Create(nil);
    result.Caption := UTF8Encode('Search by Image ID');
    result.Position := poScreenCenter;
    result.Height := 100 * result.DPIFactor;

    ARoot := result.Root;

    ALabel := TvxLabel.Create(ARoot);
    ALabel.Text := 'Enter image ID to search for:';
    ALabel.TextAlign := vgTextAlignNear;
    ALabel.Padding.Left := 10;
    ALabel.Padding.Top := 10;
    ALabel.Align := vaTop;
    ARoot.AddObject(ALabel);

    ATextBox := TvxTextBox.Create(ARoot)
    ATextBox.Padding.Left := 10;
    ATextBox.Padding.Right := 10;
    ATextBox.Padding.Top := 10;
    ATextBox.Align := vaTop;
    ARoot.AddObject(ATextBox);

  end;

  procedure SearchGUID(ASearchString: WideString);
  var
    ADs: TDBXOMClientDataSet;
    AData: TidElement;
    AColl: TImageCollection;
  begin
    ADs := PublicCatalog.NewDataset;

    ADs.CommandText := 'select ' + PublicCatalog.FullColumnList('') + ' ' +
                       'from   v_catalogitem ' +
                       'where  GUID = ''' + ASearchString + ''' ' +
                       'UNION ALL ' +
                       'select ' + PublicCatalog.FullColumnList('') + ' ' +
                       'from   v_catalogitemversion ' +
                       'where  GUID = ''' + ASearchString + ''' ' +
                       '';
    ADs.LockType := ReadLockType;
    ADs.OpenSet
    try
      AData := TidElement.Create(nil);
      try
        PublicBroadCast(nil, 'OpenNewTab', nil);
        PublicBroadCastRequest(nil, 'ActiveCollection', AData);
        AColl := AData.Data;
        AColl.Clear;
        AColl.Items.AddDataset(ADs, True);
        PublicBroadCast(nil, 'RefreshActiveCollection', nil);
      finally
        AData.Free;
      end;
    finally
      ADs.CloseSet;
    end;

    PublicCatalog.FreeDataset(ADs);
  end;

var
  AForm: TvxSceneForm;
begin
  AForm := CreateForm;
  try
    ATextBox.Text := ReadFromRegistry('', 'scSearchGUID.LastText', '');
    AForm.PrepareModal([mbOK, mbCancel]);
    AForm.ShowModal;
    if AForm.ModalResult = mrOk then
    begin
      WriteToRegistry('', 'scSearchGUID.LastText', ATextBox.Text);
      SearchGUID(ATextBox.Text);
    end;
  finally
    AForm.Free;
  end;
end;