76

(41 replies, posted in Russian)

Мне кажется , что для личного использования достаточно и 1.45.
А для коммерческого  - можно и заплатить .

77

(4 replies, posted in Russian)

В действии " Новая запись" ошибки нет.
Есть уход от реальности , при разработке проекта  под Вашей программой.
(Этим и нравится)
У меня все на одной форме . Есть кнопка Сохранить в Таб1 , и есть Таб2(справочник) , к которой я приделал
кнопку для добавления записи в справочник. Увлекся и хотел делать через действие Новая запись (чтобы поле очистилось).
Дошло , что кнопка Новая запись относится с кнопкой Сохранить . Вот и ругалась , тк в Таб1 все поля не ноль.
Поменял на Показать форму .

78

(4 replies, posted in Russian)

Добрый день .
Подвал заработал , но перестали работать правильно стандартные действия кнопок.
Т.е. Сохранить без закрытия формы после 1 й записи повторно переписывает  по id последней  записи, Действие Новая запись
странно ругается на NULL в другую таблицу и тд

79

(4 replies, posted in Russian)

Добрый день !
Не выводится текст в подвал таблицы .
Даже в Вашем примере ( Calculate footer).
Что у меня может быть не так .(и 1,45 и 1,46)

80

(21 replies, posted in Russian)

Да , удобно .
Я с Вами .

81

(21 replies, posted in Russian)

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

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

mitrich45 wrote:

Соглашусь с вышеизложенным! Спасибо что выслушиваете все наши проблемы и оперативно их решаете (хотя это не входит в ваши обязанности), дорабатываете программу исходя из наших "хотелок", много чего подчеркиваю тут для себя и для развития и опыта. Программа мне очень облегчила работу в повседневной "сервисной" рутине, а так же всем нашим сотрудникам (автоматизация сервисного центра -прием техники, ведение ремонта, учет ЗЧ, выписка тех заключений, актов, нарядов, отчеты финансовые, складские документы и прочее).  Вот кстати что получилось (небольшая презентация у меня на форуме) http://forum.tagsmdlab.ru/threads/20/
      Спасибо Дмитрий! Процветания вашему проекту!


Присоединяюсь .

84

(4 replies, posted in Russian)

Спасибо ! Как то аж стыдно , спутать понятия ,идентификатор таблицы в БД и порядковый номер строки в гриде .
Да и докум. изучал ...
Извините .

85

(4 replies, posted in Russian)

Понял свою ошибку. Спасибо .
А как получить  порядковый номер выделенной строки в Гриде ?

86

(4 replies, posted in Russian)

Добрый день !
В Гриде , при получении данных из последних трех строк ( заполнен полностью и с вертик движком)
возвращает "пусто".
В таком варианте ...
   i,c: integer;
begin
  i := frmZayavRashodMat.TableGrid1.dbItemID -1;
   if frmZayavRashodMat.TableGrid1.Cells[11,i] <> '0' then

....  или в i  попадает лажа , но frmZayavRashodMat.TableGrid1.Cells[11,i]  = пусто .
Пришлось использовать SQL запрос прямо из базы .
( делал тест :  выводил значение в Edit  , весь Грид нормально , а последние 3 строки из любого столбца
выдает "пустое поле".)

Спасибо !

Отправил

Пишу табель рабочего времени.
Две кнопки Вход и Выход ( Проходная фабрики). Грид с таблицей персонала.
Выбираю человека и нажимаю Вход . В Табель прописываю человека и время входа (под кн. Вход обычный "Сохранить").
Форму не закрываю . Под Выходом - SQL запрос (UPDATE) - записываю время выхода.
На форме два DateTimePicker . Один - текущая дата . Второй - текущая дата и время.
Время меняется только после перезапуска программы .
В скриптах функций системных даты и времени я не нашел.
Пока решил сделать ручной режим, далее через электронный пропуск.
(Я с 82 го года специалист в микропроцессорах и микроконтроллерах )
Пока ввод данных только через клаву, собираюсь использовать протокол PS/2., хотя хотелось бы COM port.
Это открыло бы большие возможности по сбору данных не только от человека , но и автоматом от железа.
Увлекся ...
Время не меняется ( в Сохранить прописал ).

Добрый !
Как кнопкой "сохранить" записать системную дату и время в базу.
После открытия формы у DateTimePicker время не меняется .

91

(1 replies, posted in Russian)

Всем добрый день .
Может кому то пригодится .
Временно для удаленного компа применил подключение его в локалку через Hamachi.
Конечно по скорости тяжеловато , но только , когда обращаешься к таблице с большими файлами ( например изображения).
(все таки 3 сервера проходит)
В остальном быстро и надежно .

Спасибо !
Теперь все нормально .
И новая функция ко двору , т.к. на клавиатуре где цифрополе работает именно точка.

Предыдущее сообщение аннулирую , чтобы не запутать .
В Edit3 ввожу к-во отпускаемого материала фактическое
В TableGrid1.Cells[10,i] записано к-во материала плановое
В Edit5 к-во упаковок , а в CheckBox2 - тип упаковки ( разная масса )
Делаю защиту , чтобы не отпустили меньше ( больше можно )
Под Button2 SQL ЗАПРОС с :

INSERT INTO Nakladnie (Nomer,NakData,Otkuda,Kuda,Rasxod,PrixRasx,id_Materials,
ZayavNom,ZayavData,id_employees)
SELECT {Edit4},{DateTimePicker1},MatZayav2.Otkuda,MatZayav2.Kuda,{Edit3},
{CheckBox1},
MatZayav2.id_Materials,MatZayav2.NomerZayav,MatZayav2.DataZayav,{TableGrid2}
FROM MatZayav2
WHERE MatZayav2.id LIKE "{TableGrid1}"
AND MatZayav2.MatZaPriz<>1;

А в Button2_OnClick собственно проверка :

procedure frmZayavRashodMat_Button2_OnClick (Sender: string; var Cancel: boolean);
var
    i,c: integer;
    d: Extended;
begin
    i := frmZayavRashodMat.TableGrid1.dbItemID -1;
   if  frmZayavRashodMat.TableGrid1.Cells[11,i] = '1' then
     begin
      ShowMessage('  Материал по заявке уже выдан.');
      Cancel := True; // отменяем действие кнопки
    end;
    c := StrToInt(frmZayavRashodMat.Edit5.Text);
   if frmZayavRashodMat.CheckBox2.Checked then d:= c*0.75
   else  d:= c*0.2;
   if StrToFloat(frmZayavRashodMat.Edit3.Text) < (d + StrToFloat(frmZayavRashodMat.TableGrid1.Cells[10,i])) then
     begin
      ShowMessage('  Мало');
      Cancel := True;
    end;
end;


Происходит следующее :
Если я ввожу в Edit3  число с точкой в разделителе , то выходит сообщение об ошибке от функции StrToFloat , что  значение не Float
Если ввожу с запятой , то StrToFloat  пропускает , ругается SQL ЗАПРОС Под Button2 ( что я пытаюсь вставить 11 значений в 10 столбцов)
видимо запятая в Edit3 воспринимается как разделитель двух параметров.

Где не пользуюсь обработкой чисел скриптами , ввод разделителя в виде точки ( по Edit - ам) проходит норм.
С уважением .

Добрый день !
StrToFloat(s: String): Extended

Сначала делаю так :

SQLExecute(' UPDATE MatZayav2 SET EffektPlan=(SELECT (SumVesKroyPlan/MaterKolPlan*100) FROM MatZayav2 WHERE  MatZayav2.id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) +'),EffektReal=(SumVesKroyFakt/MaterKolFakt*100),EffektFakt=(SumVesKroyFakt/(VesLista*ZayavKol)*100) WHERE  MatZayav2.id = ' + IntToStr(frmZakroyniyCeh.TableGrid3.dbItemID) +' ;');

Потом мне надо раскрасить  EffektFakt в гриде если он хуже факта на 2,5 (%) .
Первоначальные данные  вводятся с точкой по режиму SQL ЗАПРОС

Добрый день !
Наткнулся на проблему . В скрипте формирую SQL запрос UPDATE  типа  X(real)= Y(REAL) / Z(REAL)*100 .
В гриде и в таблицах БД разделителем записывается точка . А функции преобразований для FLOAT требуют разделителем
запятую  и выдают ошибку( типа это не FLOAT) . Тоже когда беру из Грида .
Помогите !  Четыре дня потерял. Проект очень большой (автоматизация тех процессов целой фабрики).

Еще бы базу кинуть на удаленный сервер и подключаться к ней по IP

Здравствуйте !
Нужен ввод-вывод данных с COM port.
Сразу решит кучу проблем с вводом параметрических данных.
Это ВАЖНО.