1

(2 replies, posted in Russian)

разобрался с помощью поиска по форуму

2

(2 replies, posted in Russian)

Забыл дописать версия 1.46......есть подозрение что фильтр в этой версии не работает

3

(2 replies, posted in Russian)

День добрый. Как то можно воспользоваться фильтром для комбобокса, чтобы пропускались пустые значения. При форме входа перечисляются пользователи, которые имеют право входить в программу, у других просто пустое поле. Как то можно отфильтровать комбобокс чтобы пропускал пустую запись при выборе? Просто если поставить галочку сорт, то сначала идут пустые значения, затем уже пользователи внизу списка.

Пишет незадекларированный идентификатор dbPopupMenu.....видимо из за версии 1.46

ООО Спасибо...то, что доктор прописал)

День добрый, где то на форуме совсем недавно видел строчку скрипта, позволяющую отключить открытие формы редактирования записи при двойном клике в гриде. Хочу чтобы можно было открывать запись только по кнопке. Ткните пожалуйста носом в тему или киньте эту строчку...ну оццццень нанама )))

Спааасибо Работаеееет!

Спасибо Дмитрий сейчас попробую

Нашел подобный пример,  но не то)

function CheckDublicate (Action, sTable, sField, sValue: string; id: integer;): boolean;
var
   s: string;
begin
     result := False;
     if Action = 'NewRecord' then
     begin
          s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE '+sField+' LIKE "' + sValue + '"');
          if StrToInt(s) > 0 then result := True;
     end;

     if Action = 'ShowRecord' then
     begin
          s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE ('+sField+' LIKE "' + sValue + '") AND (id <> '+ IntToStr(id) +')');
          if StrToInt(s) > 0 then result := True;
     end;
end;

procedure frmApplication_Button4_OnClick (Sender: string; var Cancel: boolean);
begin
    if frmApplication.Date.Checked = False then
    begin
       ShowMessage('Дата приема - обязательное поле!.'); 
       Cancel := True; 
    end;

begin
    if CheckDublicate(frmApplication.dbAction, 'application', 'clientname', frmApplication.edClient.Text, bl_list_device.Button1.dbGeneralTableId)
         then
     begin
          ShowMessage('Person already exists.');
          Cancel := True;

 end;
  end;
  end;

День добрый! Есть 2 таблицы: applications c полем clientname и bl_list_klient с полем name.
Не подскажете как реализовать - чтобы вводимые данные в поле clientname проверялись на совпадение в черном списке в поле name и в случае совпадения срабатывал скрипт Cancel := True; с сообщением "данный клиент в черном списке"

Спасибо Дмитрий!
Работает!

Нашел подходящий примерчик. Получилось копирование данных с 1 столбца в 1 мемо:

procedure PRICE_TableGrid1_OnCellClick (Sender: string; ACol, ARow: Integer);

      var
  sCol, sRow:integer;
  CellText:String;
begin
  sCol:= PRICE.TableGrid1.SelectedColumn; //выбранная колонка
  sRow:= PRICE.TableGrid1.SelectedRow; //выбранная строка
  CellText:= PRICE.TableGrid1.Cells(sCol,sRow); //текст выбранной ячейки
  PRICE.Memo1.Text:= CellText; //присваиваем компоненту TEdit текст выделенной ячейки
  PRICE.Memo1.SelectAll; //выбираем все
  PRICE.Memo1.CopyToClipboard; //копируем в буфер
end;

Еще-бы разобраться как сделать так, чтобы при выделении всей строки из 2 столбцов данные вставлялись в так же 2 мемо.....

День добрый! Поиском по этому поводу нечего не нашел, можно как то SQL запросом при клике по записи в таблице скопировать данные в Memo?
Мысль пришла после того, как физически через CTRL+C - CTRL-V получается скопировать, а хочется по клике по нужной записи.
Подскажите, если осуществимо.

Данные:
Grid1, в ней отображаются поля (name, price) таблицы (Price)
memo1, memo2 соответствуют полям (name,price) таблицы (Uslugi)

Спасибо!

День добрый. Как можно вынести кнопку с дизайнером отчета из главной формы на другую. У меня через главную форму осуществляется вход по логину \ паролю и потом форма скрывается.

DriveSoft wrote:

Проверил у себя, работает как надо.
у вас поле date_oplata какого типа? Дата или Дата/Время ?

Поле вида Дата/Время.
Спасибо, проблему решил.
Оказывается у меня одновременно были включены фильтры для компонента и в SQL запросе. Убрал в SQL application.date_oplata >={dtFrom} AND application.date_oplata <={dtTo} и заработало.

День добрый. Есть небольшая недоработка в SQL запросе:  при выборе интервала дат в отчет падают данные не включительно.
На примере - есть ремонт выполненный сегодняшним числом, чтобы он упал в отчет надо поставить интервал с 27.03.2015 по 28.03.2015, а мне надо  с 27.03.2015 по  27.03.2015
Как можно доработать запрос:

WHERE application.date_oplata >={dtFrom} AND application.date_oplata <={dtTo} AND application.id_master = {cbMaster} AND raboty.id_application = application.id

Пробовал менять <=,>= итд. не помогает.

18

(5 replies, posted in Russian)

Да перестроение структуры без потери информации Дмитрий устранил в версии 1.50

День добрый. Поиском информации не нашел, поэтому есть вопрос. Как то можно реализовать подключение базы через облачное хранилище. К сожалению статического адреса нет, только работа в локальной сети, а иногда необходимо подключиться к базе из дома. Или может как то можно реализовать через DDNS?
С Уважением Дмитрий.

интересный пример! Спасибо DenNik
Кстати тут подумал, как то можно реализовать на этом примере скрипт, чтобы указывал на пользователя где открыта печатная форма (например: у пользователя ххх открыта печатная форма)

Спасибо

День добрый, как скриптом можно отсечь сохранение записи, если в комбобоксе не выбран пункт?
На кнопках и радиокнопках понятно  Checked = False и Cancel := True;

Спасибо! Гораздо ваш пример компактнее будет

С одиночными данными разобрался, работает....но вот вводить несколько записей приходится так:

if (VarToStr( SQLExecute('SELECT count(id) FROM status WHERE statusname="Ремонтируется";') ) = '0') then
  begin
         SQLExecute('INSERT INTO  status ("statusname") VALUES ("Ремонтируется");');
    end;
    if  (VarToStr( SQLExecute('SELECT count(id) FROM status WHERE statusname="Готов";') ) = '0') then
  begin
       SQLExecute('INSERT INTO  status ("statusname") VALUES ("Готов");');
    end;

Может можно как то оптимизировать

День добрый, хочется реализовать автоматическое заполнение справочников при работе с базой с нуля.
Как можно задать скрипт который при старте будет проверять наличие записей в справочнике.
Допустим надо проверить справочник "Статусы ремонта"  на наличии записи  "Ремонтируется" , если такого нет, то создать.
Только такое в голову приходит

   if VarToStr( SQLExecute('SELECT count(id) FROM status WHERE statusname="Ремонтируется";') ) = '0' then
  begin
         SQLExecute('INSERT INTO  status ("statusname") VALUES ("Ремонтируется");');
    end;

Еще интересует, если надо заполнить скажем статусами "Готов", "Выдан", "Оплачен", какого вида код будет
Спасибо заранее