Спасибо Владимир. Спасибо Константин. Не даром говорят - Когда знаешь, всё просто.

k245 wrote:

Обычно приведенную вами информацию размещают непосредственно в заголовке формы.

Хорошо. В таком случае, как в заголовке формы вывести?

Перечитал весь форум, но так и не нашел, как вывести определённую информацию вместо меню. Ну или рядом с меню. К примеру что то типа этой информации Caption := 'Demo version. Time left: ' + IntToStr(iDays) +' days.'; Как вообще это делается?

Спасибо. На самом деле я читаю эту книгу, но почему то именно этот раздел я обходил стороной. Теперь мне всё понятно.

sparrow wrote:

Можно попробовать почитать

http://myvisualdatabase.com/doc_ru/roles.html

Страница не открывается. Я думал если это встроенная, а не сторонняя форма авторизации то она должна быть понятна простым начинающим

Что то не пойму как работает встроенная авторизация. вход по логину и паролю. Как она вообще настраивается. Как её вообще редактировать. Таблицы появились, а что с ними делать не пойму. Как меняется пароль у админа. Совсем не понимаю

7

(6 replies, posted in Russian)

Это какое то чудо. Я уже и не надеялся. Всё именно то, что мне надо. Огромное спасибо Владимир и здоровья.

8

(6 replies, posted in Russian)

pavlenko.vladimir.v wrote:
oleg wrote:

В таблицу. К примеру я за работу беру наличкой соответственно запись об оплате добавляется  в одну ячейку, а если безнал, то надо чтобы поступала в другую. Всё это в одной строке, только ячейки разные.  Я всё от Excel не могу отойти, поэтому и пишу "ячейка". Кнопки хотелось бы не применять.

Тут просто, сохраняете все в одну таблицу, просто поле с типом оплаты будет либо 1(True) либо 0(False), соответственно нужно добавить два  грида на форму, просто дать им разные условия фильтра

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

9

(6 replies, posted in Russian)

pavlenko.vladimir.v wrote:
oleg wrote:

Подскажите есть ли возможность сделать так, что когда на ChekBok не стоит галочка, то запись сохраняется в один грид таблицы. А когда ставишь галочку, то в другой. То есть по умолчанию галочка не стоит, но иногда надо чтобы данные попадали в другое место. Заранее благодарен за помощь.

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

В таблицу. К примеру я за работу беру наличкой соответственно запись об оплате добавляется  в одну ячейку, а если безнал, то надо чтобы поступала в другую. Всё это в одной строке, только ячейки разные.  Я всё от Excel не могу отойти, поэтому и пишу "ячейка". Кнопки хотелось бы не применять.

10

(6 replies, posted in Russian)

Подскажите есть ли возможность сделать так, что когда на ChekBok не стоит галочка, то запись сохраняется в один грид таблицы. А когда ставишь галочку, то в другой. То есть по умолчанию галочка не стоит, но иногда надо чтобы данные попадали в другое место. Заранее благодарен за помощь.

Я немного не уточнил. Из ComboBox  данные вставляются в Edit. То есть ComboBox2 = Edit4, ComboBox4 = Edit3, ComboBox5 = Edit2, Edit5 здесь будет результат вычислений.  В итоге надо Edit2 * Edit3 -Edit4% = Edit5

Помогите написать формулу в скрипте. В математике знаю а тут не пойму как правильно составить. Прилагаю небольшую часть кода

procedure CalculateTotal;
var
    RentdayPrice, RentNumberdays: integer;     ///Присваиваем значение цене в сутки
    Total, Skidka: double;
begin
    Skidka := FrmRent.ComboBox3.dbItemID;           //Скидка
    RentdayPrice := FrmRent.ComboBox4.dbItemID;     //Цена за сутки
    RentNumberdays := FrmRent.ComboBox5.dbItemID;   //Количество дней

    if RentdayPrice <> -1 then
        Total := StrToFloat(SQLExecute('SELECT RentdayPrice FROM Type_Equipment WHERE id='+IntToStr(RentdayPrice)));
    if ValidFloat(FrmRent.Edit4.Text) then
        Skidka := StrToFloat(FrmRent.Edit4.Text);

    Total := RentdayPrice * RentNumberdays * (1 - Skidka / 100); // Рассчитываем общую стоимость
    FrmRent.Edit5.Text := IntToStr(Round(Total));

Надо RentdayPrice умножить на  RentNumberdays, а от результата отнять %. Процент это Skidka.
Буду очень признателен.

Может я проект приложу. Я не буду просить написать за меня код. Но вы люди опытные, просто посмотрите в том ли я направлении копаю

sparrow wrote:

Мне нравятся ваши выводы и заключения.
Хотя в другой ветке вы только три дня назад написали

Мне нравится. но я пока в скриптах ноль.

Дата а еще и время существует в множестве форматов и я могу использовать в своем коде ту,
что мне удобней в данной процедуре календаря.
К тому же ваш вопрос касается работы с таблицей. А календарь связан только формированием
фильтров для таблицы в моих примерах. Раскрашивайте таблицы как вам хочется..


Константин прав на счет дат.

Я и сейчас не отказываюсь от слов, что я в скриптах ноль. Но я учусь на чужих примерах и читаю документацию. С вашим проектом я разобрался и теперь с окрашиванием других дат вопросов нет. Теперь я пытаюсь к дате прибавить дни, но всё безрезультатно. И ошибок нет и дни не прибавляет. Может для кого то это легко, ну а я уже третий час мучаюсь. А Ваш проект я взял потому что в нём есть та самая фишка которая мне нужна и которую я вряд ли бы сам осилил.

k245 wrote:

StrToDate может выдавать ошибку, если содержимое ячейки по каким-то причинам не является датой. Рекомендую добавить проверку:

...
if ValidDate(MainFrm.tablegrid3.Cells[2, vrow]) and (StrToDate(MainFrm.tablegrid3.Cells[2, vrow]) < Now - 1) then
...

Да нет. Как выяснилось в другом. Я взял шаблон от sparrow с его проекта CustomCalendar и оказалось, что работать можно только с датой календаря, окрашивать или еще что то. А вот другие даты по мнению скрипта не является датой. Он об этом так и пишет. Я это случайно выяснил, пока не решил окрасить именно дату из календаря.

16

(14 replies, posted in General)

Good health. I have such a question about the calendar. It turns out that he has a kind of rigid binding to the date. that is, in this form I am creating another table in which I want to highlight past dates from another DateTimePicker in color. And so. My script does not want to work with this date, swears at the error, but everything is fine with the date that is linked to the calendar. Is it treated somehow?

Всё вопрос снимаю. Не знаю что это было, просто удалил sqlite.db и начал тестировать по новой, и всё заработало.

Надо, чтобы в таблице окрашивались просроченные дни, но скрипт упорно выдаёт ошибку на строке

if StrToDate(MainFrm.tablegrid3.Cells[2, vrow]) < Now - 1 then

Что не так то?

procedure MainFrm_TableGrid3_OnChange(Sender: string);
var
  vrow, vcolumn: integer;
begin
  for vrow := 0 to MainFrm.tablegrid3.RowCount - 1 do
  begin
    if StrToDate(MainFrm.tablegrid3.Cells[2, vrow]) < Now - 1 then
    begin
      for vcolumn := 0 to MainFrm.tablegrid3.Columns.Count - 1 do
      begin
        MainFrm.tablegrid3.Cell[vcolumn, vrow].TextColor := clRed;
      end;
    end;
  end;

  MainFrm.TableGrid3.Columns[0].Header.Multiline := True; // enables multiline header in the specified column
  MainFrm.TableGrid3.Columns[3].Header.Multiline := True;
  MainFrm.TableGrid3.HeaderSize := 36; // sets the height of the header
  MainFrm.TableGrid3.BestFitColumns(bfBoth); // automatically adjusts the column width based on cell contents and column names
end;

последние 4 строки можно не смотреть.

Осмелюсь задать ещё один вопрос. Я нашёл этот скрипт. Приведу кусочек кода в пример

   // запись в таблицу prodavec
   SQLExecute('INSERT INTO prodavec (nameS) VALUES ("'+Form2.Edit2.Text+'")');
   // получаем id последней записи в таблице prodavec
   maxID:= SQLExecute ('select max(id) from prodavec');

Вопрос по

SQLExecute('INSERT INTO prodavec (nameS) VALUES ("'+Form2.Edit2.Text+'")');

как мне вписать сюда все данные в таблицу Client, Если подскажите то уж с таблицей Rent я разберусь

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

Я понял вас. Но в этом случае мне придётся всю структуру главной таблицы менять. Там у меня в принципе должна быть вся информация об арендованных местах на стоянке. Обо всех клиентах и их машинах. Ну что ж буду думать.

Если честно, то не совсем понял вас. Дело в том, что главная форма она ещё в разработке, там будет отображаться другая общая информация по всем сделкам проекта. А эта форма для оформления, а в дальнейшем и для продления всех договоров об аренде. Вот и хотелось бы видеть все операции с конкретным клиентом.

pavlenko.vladimir.v wrote:

Загрузите ваш проект

Хорошо.

24

(14 replies, posted in General)

Мне нравится. но я пока в скриптах ноль. Когда я в таблицу попробовал добавить еще поле, то на выходе получил ошибку в 216 строке

linN := linN + tmpStep;

. Получается свои поля я добавить уже не могу?

Подскажите, существует ли такая возможность, чтобы в таблице на определённой форме появлялись сведения только по конкретному типу данных, а не все?