51

(5 replies, posted in Russian)

Как сделать чтобы в гриде время отображалось в формате HH:MM (без секунд)

52

(1 replies, posted in Russian)

Много написано про формат даты/время, а интересует как можно сделать чтобы в textbox отображались числа формата 123 456,78 число может быть любое (3-15 значное), маской не могу сделать.

В Excel это реализовано #  ##0,00 как сделать здесь не пойму

53

(37 replies, posted in Russian)

На сколько я понял ошибку - существует таблица пользователей и таблица с правами пользователей. Все сводится в один грид. При выводе данных, из грида в текстовое поле, права выводятся в виде id записи а не самого значения (в гриде отображается верно)

54

(37 replies, posted in Russian)

Login.TableGrid1.Cells[2,str] выводит id записи а не значение

55

(37 replies, posted in Russian)

Скрипт такой

procedure Login_TableGrid1_OnCellClick (Sender: string; ACol, ARow: Integer); // определение пользователя, пароля

var
str : integer;
begin
    str := Login.TableGrid1.SelectedRow;                //определяем выбранную строку в таблице
    Login.Edit1.Text:= Login.TableGrid1.Cells[0,str];// записываем в текстовое поле данные с колонок по выбранной строке
    Login.Edit2.Text:= Login.TableGrid1.Cells[2,str];
    sUser:= Login.TableGrid1.Cells[1,str];

end;



procedure Login_Button1_OnClick (Sender: string; var Cancel: boolean);  // вход по паролю
var
pas, pas1 : string;
begin
    pas:= Login.Edit2.Text;
    pas1:= Login.Edit3.Text;

    if pas = pas1 then Login.Close else MessageDlg('Пароль не верен', mtError, mbOk, 0);
end;

на пароль реагирует адекватно (при неверно введенном выдает ошибку ввода) но после входа переменная sUser:string; определяется как 1, ответственно разделение прав не работает

переменную назначаю в самом начале скриптов

56

(37 replies, posted in Russian)

DriveSoft wrote:
ZBear wrote:

При запуске из версии 3.0 неверно определяется пользователь и выходят ошибки. В 2.8 всё работает.

Исправил, скачайте пожалуйста снова последнюю версию 3.01а

Ошибок больше нет, но скрипт определения пользователя так и отрабатывает не верно, ещё раз отмечу - в 2.8 всё работает.

57

(37 replies, posted in Russian)

При запуске из версии 3.0 неверно определяется пользователь и выходят ошибки. В 2.8 всё работает.

58

(1 replies, posted in Russian)

Установи фильтр на значение поиска меньше либо равно и теперь при поиске появляется ошибка, при фильтре "равно" всё работает.
версия 2.5

59

(28 replies, posted in Russian)

Шаловливые ручки покою не дают. Попробую объяснить вопрос - есть база ТО приборов (парк ~3000 позиций) у каждого прибора ежемесячное ТО, в базе плановая дата и фактическая. Необходимо 31 января очищать все фактические даты и пересчитывать плановые на +1 год. Как возможно сделать? Проект во вложении но он рассчитан на MySQL

Форма ТОиППР пароль администратора $

60

(28 replies, posted in Russian)

Спасибо, работает

61

(28 replies, posted in Russian)

Спасибо, всё работает.
Назрел ещё один вопрос. У меня по чек-боксу срабатывает скрипт который меняет значение DateTimePicker.
При изменении данного DateTimePicker срабатывает скрипт но срабатывает только при ручном изменении.
Как сделать что-бы после сработки первого скрипта запускался второй? объединить в один не вариант так-как они достаточно громоздкие.

62

(28 replies, posted in Russian)

Увеличил до 512М. При загрузке файла в 32М выдаёт ошибку как во вложении

63

(28 replies, posted in Russian)

Не правильно сформулировал вопрос. Не импорт файла в базу, а сохранение файла в базу.

64

(28 replies, posted in Russian)

Что бы не плодить тем напишу здесь. Как снять ограничение на импорт файлов в базу MySQL? У меня грузит файлы до 4 мб, нужно в пределах 15

65

(28 replies, posted in Russian)

По поводу второй ошибки, программа не умеет автоматически связывать между собой те таблицы, между которыми нет связи, в вашем случае это таблицы SI и apparats, они связаны через таблицу posit, поэтому вы должны в таблице posit создать вычисляемое поле, в котором будет выведено необходимое значение из таблицы apparats и уже это вычисляемое поле необходимо выводить в грид.


Выч. поле для таблицы posit, которое выводит значение из apparats.apparat

(SELECT apparats.apparat FROM apparats WHERE apparats.id=posit.id_apparats)


И ещё вопрос, как связать три таблици SI->posit->apparats->plan_gp ?

66

(28 replies, posted in Russian)

Пароль 11, проверка заполнения поля пароля отключена так-что можно просто закрыть форму ввода пароля.

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

67

(28 replies, posted in Russian)

Спасибо за помощь.
Нашёл ещё ошибку (или я что-то не так делаю smile ), сделал связанные списки, на SQLite работает, на MySQL выходят ошибки главной таблици

68

(28 replies, posted in Russian)

В принципе с ошибкой решил. Переработал всю структуру базы.
Появился новый вопрос. Существует таблица:
Тип СИ                      Модель              Номер    и   т.д.
Манометр                 МП-4                     123              .....                     
Манометр                 МП-4                     145              .....
Манометр                 МП-3                      321            ........
Датчик давления    Метран-150          231            ..........

Необходимо подсчитать и вывести в отдельной таблице количество каждых Тип-Модель
В таком виде

Тип СИ                    Модель                Кол-во
Манометр                 МП-4                      2  шт.         
Манометр                 МП-3                      1 шт.
Датчик давления    Метран-150          1 шт.

69

(28 replies, posted in Russian)

Изображение вынес в отдельную таблицу-справочник.
Теперь при добавлении возникает такая ошибка (во вложении).

70

(28 replies, posted in Russian)

Спасибо, ошибки с изображением больше нет. Скрипт тоже стал более стабилен (иногда были ошибки).
Не работает такой момент:

                 begin
                       main.mainGrid.Cell[iCol,iRow].Color := clRed; // если год меньше текущего
                       main.mainGrid.Cell[15,iRow] := 'Просрочен';   //<= Не работает
                     end;

Хотелось что бы при определённом условии (в данном случае истёкший срок) заполнялось поле в таблице для осуществления поиска по этому идентификатору.


Всё, не актуально. Сделал просто поиск по дате с фильтром.

если ещё актуально

DecodeDate(si.DateTimePicker2.DateTime, YY, MM, DD);  // декодируем дату поверки
     si.Edit6.Text := (IntToStr(MM));  // извлекаем месяц
     si.Edit8.Text := (IntToStr(YY));  // извлекаем год
     m := StrToInt (si.Edit6.Text);
     y := StrToInt (si.Edit8.Text);

     if  (m >=1) and (m <=3)  then si.Edit7.Text := '1'; // определяем квартал
     if  (m >=4) and (m <=6)  then si.Edit7.Text := '2';
     if  (m >=7) and (m <=9)  then si.Edit7.Text := '3' ;
     if  (m >=10) and (m <=12)  then si.Edit7.Text := '4';

72

(28 replies, posted in Russian)

1. Добавляю поле.
2. Запускаю проект.
3. Открываю прибор через форму редактирования.
4. Появляется ошибка.


По первому вопросу есть какие-нибудь предложения?

73

(28 replies, posted in Russian)

И ещё вопрос.
Добавляю в основную базу поле ИЗОБРАЖЕНИЕ, при открытии формы для редактирования или просмотра записи появляется ошибка - #42S22Unknown column 'SI.foto_filename' in 'field list'
Добавляю в любой справочник - всё нормально

74

(28 replies, posted in Russian)

отправляю

75

(28 replies, posted in Russian)

Не могу вставить значение в ячейку. Ругается на несоответствие форматов, перепробовал уже все варианты. Может я что-то не так делаю

procedure main_mainGrid_OnChange (Sender: string; Action: string);
var
     i, mNow, yNow, c, q, e : integer;
     iRow, iCol : integer;
     k : integer;
     DD, YY, MM: word;
begin

     c := main.mainGrid.RowCount - 1;
     i := main.mainGrid.Columns.Count-1;
     for iRow := 0 to c do
     for iCol := 0 to i do

     begin
     DecodeDate(Now, YY, MM, DD);  // декодируем текущую дату
     mNow := StrToInt ((IntToStr(MM))); // извлекаем месяц
     yNow := StrToInt ((IntToStr(YY))); // извлекаем год
     q := StrToInt (main.mainGrid.Cells[13,iRow]); // определяем квартал поверки
     e := StrToInt (main.mainGrid.Cells[14,iRow]); // определяем год поверки

     if  (mNow >=1) and (mNow <=3)  then k := 1; // определяем текущий квартал
     if  (mNow >=4) and (mNow <=6)  then k := 2;
     if  (mNow >=7) and (mNow <=9)  then k := 3 ;
     if  (mNow >=10) and (mNow <=12)  then k := 4;

     if (e < yNow) then
                     begin
                       main.mainGrid.Cell[iCol,iRow].Color := clRed; // если год меньше текущего
                       main.mainGrid.Cell[15,iRow] := 'Просрочен';   //<= Не работает
                     end;
     if (e = yNow)and (q < k) then main.mainGrid.Cell[iCol,iRow].Color := clRed;  // год совпадает квартал меньше текущего
     if (e = yNow)and (q = k) then main.mainGrid.Cell[iCol,iRow].Color := clYellow; // квартал и год совпадает с текущим
     if (e = yNow)and (q - k = 1) then main.mainGrid.Cell[iCol,iRow].Color := clGreen; // квартал и год совпадает с текущим


           begin
            main.Edit3.Text := 'Списан';
            main.Edit4.Text := 'На списание';
                begin
                main.mainGrid.BestFitColumns(bfBoth); // автоподбор ширины по содержимому ячеек и названия колонок
                end;
           end;
     end;
end;

проект во вложении

в принципе мне нужен просто какой-то идентификатор по условию что-бы осуществлять по нему выборку(поиск)