Это хорошее решение, но мне интересно как сделать что бы в Label отображалось количество строк всего и что бы это число изменялось в зависимости от найденного

Можно ли сделать отображение количества строк в таблице. Например у вас 20 пользователей добавляем еще пользователя или начинаем искать и пишет найдено 2 пользователя

3

(75 replies, posted in Russian)

спасибо заработало

4

(75 replies, posted in Russian)

пробовал ваш способ и так же измени вот так

procedure Form1_Button12_OnClick (Sender: TObject; var Cancel: boolean);
var
    sURL: string;
begin
    sURL := SQLExecute('SELECT printerIP FROM printer WHERE id='+IntToStr(Form1.TableGrid1.dbItemID));
    if sURL <> '' then OpenURL(sURL);
end;

никакой реакции

если сделать так

procedure Form1_Button12_OnClick (Sender: TObject; var Cancel: boolean);
var
    sURL: string;
    i: integer;
begin
    for i := 0 to Form1.TableGrid1.RowCount-1 do
    sURL := SQLExecute('SELECT printerIP FROM printer WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));
    if sURL <> '' then OpenURL(sURL);
end;

тоже не работает

5

(75 replies, posted in Russian)

Подскажите как еще сделать что бы по нажатию на кнопку открывался его веб интерфейс выбранного устройства в таблице?

6

(75 replies, posted in Russian)

Подскажите как можно сделать если в таблице во 2 столбце есть число -2 то вместо этого числа отображать надпись или просто заменить его на 0. при этом этот столбец вычисляемое число по формуле 100 / (MaxDrum / NowDrum)

7

(75 replies, posted in Russian)

Да вполне подходит спасибо

8

(75 replies, posted in Russian)

Спасибо большое все работает. Остается пока вопрос с некоректным ответом в виде Черный картридж 14A HP CF214A и еще вопрос можно ли как то сделать что бы модели хранились и подгружались из файла txt или таблицы?

9

(75 replies, posted in Russian)

вот такой ответ я получаю от принтера. Например 797 строчка это модель принтера. Если преобразовать в UTF-8 то текст виден нармально но через программу я получаю именно такой ответ.

10

(75 replies, posted in Russian)

Попробовал пример в итоге получается что если более 1 oid он зацикливается и так же не понял как привязать к моему проекту так как мне нужна запись в таблицу и + там еще идет расчет количества картриджа в зависимости от максимального и текущего.
https://drive.google.com/file/d/1YdJRak … sp=sharing

11

(75 replies, posted in Russian)

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

12

(75 replies, posted in Russian)

еще вопрос можно сделать отображение столбца пароля в таблице звездочками ****** ?

13

(75 replies, posted in Russian)

Спасибо)! Буду ждать

14

(75 replies, posted in Russian)

добавил как вы сказали

            if sTipCartBlack <> '' then SQLExecute('UPDATE printer SET TipCartBlack = '''+escape_special_characters(sTipCartBlack)+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));  // значение для получения типа картриджа черного
            if sTipCartBlue <> '' then SQLExecute('UPDATE printer SET TipCartBlue = '''+escape_special_characters(sTipCartBlue)+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));  // значение для получения типа картриджа черного
            if sTipCartMagento <> '' then SQLExecute('UPDATE printer SET TipCartMagento = '''+escape_special_characters(sTipCartMagento)+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));  // значение для получения типа картриджа черного
            if sTipCartYellow <> '' then SQLExecute('UPDATE printer SET TipCartYellow = '''+escape_special_characters(sTipCartYellow)+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));  // значение для получения типа картриджа черного
            if sPrintModel <> '' then SQLExecute('UPDATE printer SET PrintModel = '''+escape_special_characters(sPrintModel)+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));  // значение для получения модели принтера

именно при этом опросе получаю ошибку

но это не важно потом сам как нибудь решу лучше подскажите по этому способу

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

15

(75 replies, posted in Russian)

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

Вот про этот способ можно подробнее или лучше пример кинуть

16

(75 replies, posted in Russian)

Нет как раз модель известна и просто для него указать опрашивать oid только ЧБ а для другого уже все цвета опрашивать а для третьего предположим только красный картридж опрашивать. Тоесть при добавлении ip еще и указывать какой oid будет использоваться при опросе этого принтера (только ЧБ, Цветной  все цвета или каждый цвет отдельно)

17

(75 replies, posted in Russian)

как понял он текст понимает в кодировке ansi а при этом принтер передает в кодировке utf-8

вот какой ответ я получаю от принтера .1.3.6.1.2.1.43.11.1.1.6.1.1 = Черный картридж 14X HP CF214X
вот какой ответ я получаю через мониторинг который сделал в вашей среде разработки Черный картридж 14X HP CF214X

в чем может быть проблема?

18

(75 replies, posted in Russian)

и еще вопрос можно ли как то сделать? выбор типа принтера цветной или черно белый и в зависимости от выбора будет опрашивать oid только 1 картриджа или чб? вкратце сделать выбор какие oid будет опрашивать на каждый принтер

19

(75 replies, posted in Russian)

Проект. Понимаю что ошибка из за ответа от принтера но может как то это исправить можно?

20

(75 replies, posted in Russian)

Как можно исправить данную ошибку. Перевел проект на MySQL

21

(75 replies, posted in Russian)

Подскажите можно указать место хранения sql базы? предположим диск D

22

(75 replies, posted in Russian)

получается что то типо такого?

 begin
        ip := Form1.TableGrid1.Cells[0,i];
        if ip <> '' then
        begin
            Form1.Label1.Caption := ip;
            sStatus := GetMIBValue(ip, '1.3.6.1.2.1.43.11.1.1.8.1.1');
            if sStatus = '' then sStatus := '0';
                begin 
                   if sStatus <> '' then SQLExecute('UPDATE printer SET Status = '''+sStatus+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));
               end;
         end;

Я правильно понял?

23

(75 replies, posted in Russian)

В принципе мне надо что бы отображался принтер онлайн или нет. можно как вариант использовать oid статуса принтера который в ответ присылает 1 или 3. Вот как вариант решения я предложил что бы этот прараметр записывать и красить зеленым цветом то что больше 1. но вот как сделать что если он не получил ответ на oid то записать 0. Если есть какой другой вариант буду раз услышать) Спасибо заранее

24

(75 replies, posted in Russian)

в принципе есть параметр статус с ошибками там выдает от 1 до 3 но вот как сделать что если ответа не получил записать 0?

25

(75 replies, posted in Russian)

как можно реализовать что если принтер в сети то 1 если не в сети то 0