Последняя версия DataExpress 3 beta от 2 ноября 2018 года. Скачать. Энциклопедия DX. Форум на Develop-Soft

БД учета и размещения оборудования

Раздел для обсуждения и помощи в процессе разработки баз данных пользователей.
Аватара пользователя
admin
Разработчик
Сообщения: 3873
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: БД учета и размещения оборудования

Сообщение admin » Пн май 28, 2018 10:43 am

makcim737 писал(а):Подскажите, можно ли как то сделать так что бы с кнопки "очистить" удалялись все данные из таблицы ? скрин 1.jpg во вложении.

Только скриптом, расширения по моему еще такого нет.
makcim737 писал(а):И еще вопрос, как можно сделать так что бы при не совпадении данных в родительской форме с данными в таблицы вылетала ошибка?

Попробуйте использовать в проверке значения функцию MAXIF для поиска и сравнения значений. А вообще, по конкретнее задайте вопрос.
makcim737 писал(а):можно ли как то сделать вставку или выбор определенного значения из списка объекта в форме, по нажатию кнопки?

Действие "Вызвать функцию" + setfield + objid.

Аватара пользователя
Гocть
Эксперт
Сообщения: 1210
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: БД учета и размещения оборудования

Сообщение Гocть » Пн май 28, 2018 12:03 pm

admin писал(а):
makcim737 писал(а):Подскажите, можно ли как то сделать так что бы с кнопки "очистить" удалялись все данные из таблицы ? скрин 1.jpg во вложении.

расширения по моему еще такого нет.

Есть, но принципиально ждёт своего часа (доступа к кнопкам таблицы в API) ;) .
Пока используйте такой вариант:

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

{@action
Id=0FF3CEFD-A5E8-4C50-BAB0-6D2E5DAB9D99
OrigName=ClearDxGrid
Name=Очистка таблицы
Group=Свойства компонентов
UI=<ui>
<childform name="grid1" caption="Таблица для очистки" filter="TdxGrid" required="1"/>
<checkbox name="dreq1" caption="Отображать диалог подтверждения">
</ui>
Description=<b>Действие очищает выбранную подчиненную таблицу формы.</b>
@}

procedure ClearDxGrid(GridName:string;DelReq:integer);
var ChildForm:TdxForm;
begin
if (Self.State<>dsInsert) and (Self.State<>dsEdit) then exit;
ChildForm:=TdxForm(Self.Forms[GridName]);
if (ChildForm.RecordCount=0) then exit;
if DelReq=1 then
if MessageDlg('Очистка таблицы',
'Таблица "'+GridName+'" будет полностью очищена.'+#13#10+
'Продолжить?',
mtConfirmation,
[mbYes,mbCancel]) <> mrYes then exit;
while not ChildForm.Eof do
  begin
  ChildForm.MoveLast;
  ChildForm.Delete;
  end;
end;   
Фрилансер. Разработка на заказ. Консультирование.

jurist23rus
Эксперт
Сообщения: 2453
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп

Re: БД учета и размещения оборудования

Сообщение jurist23rus » Пн май 28, 2018 6:25 pm

Гocть писал(а):Есть, но принципиально ждёт своего часа

Не расскажите, что это за принципы которыми вы руководствуетесь? Ну и про час тоже можно поподробнее. Может нам всем нужно подождать этого часа, а мы про него ничего не знаем.
Destiny is a very convenient word for those who never take decisions.

Аватара пользователя
Гocть
Эксперт
Сообщения: 1210
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: БД учета и размещения оборудования

Сообщение Гocть » Пн май 28, 2018 6:37 pm

Ничего особенного. Код который выше можно подключить к отдельной кнопке и поставить ее рядом с таблицей. А по феншую, так сказать, это расширение "хотело бы" иметь возможность само создать кнопку в "родной" панели кнопок таблицы и установить для нее соответствующую иконку. Этой возможности к сожалению нет.
А ждём мы все совершенства в каждом созданном уголке программы. Квартира есть, но евроремонт выполнен частично. :) "Застройщик" пока возится с сантехникой и газом. То там подтравливает, то здесь подтекает.
Фрилансер. Разработка на заказ. Консультирование.

makcim737
Интересующийся
Сообщения: 83
Зарегистрирован: Пн ноя 27, 2017 12:39 pm

Re: БД учета и размещения оборудования

Сообщение makcim737 » Чт май 31, 2018 1:17 pm

Гocть писал(а):
admin писал(а):
makcim737 писал(а):Подскажите, можно ли как то сделать так что бы с кнопки "очистить" удалялись все данные из таблицы ? скрин 1.jpg во вложении.

расширения по моему еще такого нет.

Есть, но принципиально ждёт своего часа (доступа к кнопкам таблицы в API) ;) .
Пока используйте такой вариант:

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

{@action
Id=0FF3CEFD-A5E8-4C50-BAB0-6D2E5DAB9D99
OrigName=ClearDxGrid
Name=Очистка таблицы
Group=Свойства компонентов
UI=<ui>
<childform name="grid1" caption="Таблица для очистки" filter="TdxGrid" required="1"/>
<checkbox name="dreq1" caption="Отображать диалог подтверждения">
</ui>
Description=<b>Действие очищает выбранную подчиненную таблицу формы.</b>
@}

procedure ClearDxGrid(GridName:string;DelReq:integer);
var ChildForm:TdxForm;
begin
if (Self.State<>dsInsert) and (Self.State<>dsEdit) then exit;
ChildForm:=TdxForm(Self.Forms[GridName]);
if (ChildForm.RecordCount=0) then exit;
if DelReq=1 then
if MessageDlg('Очистка таблицы',
'Таблица "'+GridName+'" будет полностью очищена.'+#13#10+
'Продолжить?',
mtConfirmation,
[mbYes,mbCancel]) <> mrYes then exit;
while not ChildForm.Eof do
  begin
  ChildForm.MoveLast;
  ChildForm.Delete;
  end;
end;   


Сделал, спасибо :) ;)

makcim737
Интересующийся
Сообщения: 83
Зарегистрирован: Пн ноя 27, 2017 12:39 pm

Re: БД учета и размещения оборудования

Сообщение makcim737 » Чт май 31, 2018 10:11 pm

admin писал(а):
makcim737 писал(а):Подскажите, можно ли как то сделать так что бы с кнопки "очистить" удалялись все данные из таблицы ? скрин 1.jpg во вложении.

Только скриптом, расширения по моему еще такого нет.
makcim737 писал(а):И еще вопрос, как можно сделать так что бы при не совпадении данных в родительской форме с данными в таблицы вылетала ошибка?

Попробуйте использовать в проверке значения функцию MAXIF для поиска и сравнения значений. А вообще, по конкретнее задайте вопрос.
makcim737 писал(а):можно ли как то сделать вставку или выбор определенного значения из списка объекта в форме, по нажатию кнопки?

Действие "Вызвать функцию" + setfield + objid.


Спасибо, помогло)

makcim737
Интересующийся
Сообщения: 83
Зарегистрирован: Пн ноя 27, 2017 12:39 pm

Re: БД учета и размещения оборудования

Сообщение makcim737 » Пт июл 06, 2018 11:57 am

Подскажите, не могу понять как сделать условие фильтра, т.е. нужно что бы если флажек(доверенности)=1, то фильтр работает, иначе не работает, пример: iif(Доверенности]=1,[Подписывать документы]=1,' ') - но так не хочет работать, все время просит поле источника.
Тогда делаю по другому [Подписывать документы]=iif([Доверенности]=1,1, ???) - тут если флажек =1 то фильтр показывает список тот который нужен, но мне нужно что бы если флажек = 0 то либо фильтр вообще не работал либо он показывал просто весь список, но так не получается т.к. на место ??? - могу поставить либо 0 или 1, а нужно то и другое, либо что бы вообще не фильтровал.
Как отключать/включить работу фильтра при определенном условии или какое значение подставить что бы он показывал весь список вот в чем вопрос.
Вложения
Inked1_LI.jpg
Inked1_LI.jpg (739.63 КБ) 316 просмотров

Аватара пользователя
admin
Разработчик
Сообщения: 3873
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: БД учета и размещения оборудования

Сообщение admin » Пт июл 06, 2018 12:15 pm

Есть такая штука в фильтре источника, называется "Необязательные поля". Надо перед названием поля ставить вопросительный знак. Если результат выражения будет равен null, то это поле исключается из фильтра. Надо так:

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

[?Подписывать документы]=iif([Доверенности]=1,1, null)

или так (краткий вариант):

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

[?Подписывать документы]=ifz([Доверенности], null)

makcim737
Интересующийся
Сообщения: 83
Зарегистрирован: Пн ноя 27, 2017 12:39 pm

Re: БД учета и размещения оборудования

Сообщение makcim737 » Пт июл 06, 2018 12:27 pm

admin писал(а):Есть такая штука в фильтре источника, называется "Необязательные поля". Надо перед названием поля ставить вопросительный знак. Если результат выражения будет равен null, то это поле исключается из фильтра. Надо так:

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

[?Подписывать документы]=iif([Доверенности]=1,1, null)

или так (краткий вариант):

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

[?Подписывать документы]=ifz([Доверенности], null)



Уфф спасибо) :) :) :)

makcim737
Интересующийся
Сообщения: 83
Зарегистрирован: Пн ноя 27, 2017 12:39 pm

Re: БД учета и размещения оборудования

Сообщение makcim737 » Вт июл 10, 2018 5:03 pm

Не подскажите, можно ли сделать так если например у меня на компе 3 учетки, и в базе 3 учетки и хотел сделать так что бы на каждой учетке в винде был автоматический вход на свою учетку в базе. В данный момент авто входом проблемы нет, просто если я войду под логином 1 например с 1 учетки, то войдя во вторую он тоже войдет в 1, хотя нужно во вторую... вообщем не запоминает какой логин от базы к какой учетке относится и заходит по последней... мож что я делаю не так или просто такой возможности сделать нет?


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