1

(3 replies, posted in Russian)

maxkyl wrote:

Как вариант: полю NUM присвоить Тип поля -ТЕКСТ

это верно, если использовать стандартные средства, через Edit... в Table...через
Button Search...
а тут через скрипт...
как в скрипте прописать ...
да, плюс еще - там-же-ж циферки считаются от и до...

2

(3 replies, posted in Russian)

Здравствуйте.

Кто подскажет как реализовать отображение ноликов в Гриде.
В Form1.edFrom.Text вводим номер(число) "000320"
В Form1.edTo.Text вводим номер(число) "000325"
После скрипта, естественно, в Гриде будет номер(число) от "320" до "325",
а нужно от "000320" до "000325"

Спасибо.

3

(4 replies, posted in Russian)

Спасибо Дмитрий, все работает.
Когда соберу проект у Вас будет возможность посмотреть на него ?
Я предполагаю, что скрипт упростить можно...
Еще раз Спасибо.

4

(4 replies, posted in Russian)

Дмитрий подскажите...
В колонке Грида есть цветные символьные ячейки(текст), получаемые по условию
...
    if Form1.TableGrid1.Cells[2,i] = '' then Form1.TableGrid1.Cell[1,i].Color := clGreen
    else Form1.TableGrid1.Cell[1,i].Color := clRed;
...
ячейка пустая(два апострофа рядом) - зеленый, в противном случае - красная.
Как указать значение ячейки - не пустая?
И еще вопросик. Таких ячеек под 100.
Есть-ли возможность посчитать сколько красных и сколько зеленых (пустых, непустых)?
Спасибо.

DriveSoft wrote:
Form1.Edit1.Value := Trunc(Random*99999999);

Спасибо, Дмитрий.

Не получается Random-ом ...
Как записать в TextBox случайное целое, положительное число (8 знаков).

Спасибо.

DriveSoft wrote:

К сожалению запаролить саму базу данных пока нет возможности, но в принципе это возможно, и в будущем реализую.
Чтобы паролей не было видно, можно хранить не сами пароли, а их хеши, проект с примером:
http://myvisualdatabase.com/forum/misc. … download=1

Спасибо.

Случайно еще никто не занялся проектом "Электронная очередь" :-)
по принципу QSystem ?
В качестве альтернативы - "Электронная очередь Apertum QSystem".
По идее как раз наш случай ( в плане регистрации и обслуживания клиентов).

И еще вопросик Дмитрию:
возможно запаролить непосредственно саму базу "sqlite.db" ?
Вход по логину - хорошо, но открыв Базу в Студио видим все наши пароли...
Спасибо.

9

(2 replies, posted in Russian)

Win 2000 SP4
5.00.2195
Intel Pentium 4 2Ghz, 512 RAM, 845G
(вот такая древняя машинка :-)

При запуске MyVisualDB или проекта, созданного в нем имеем ошибку:

"Точка входа в процедуру GetSystemTimes не найдена в библиотеке DLL kernel32.dll"
Хотя по сети работает (файл-сервер)

DriveSoft wrote:

А какое решение?

В отчете
...
procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
    begin
      MasterData2.RowCount := trunc(Engine.FreeSpace /  MasterData2.Height); 
    end;
...
MasterData1 - данные из Report
MasterData2 - пустые значения, RowCount=1 (пробовал разные значения - результат одинаков... вроде)

Мне нужно выводить 20 строк, и если их меньше допечатывать пустые.
Если у меня допустим MasterData состоит из 15 записей. RowCount := 20.
Мне получается нужно добавить еще 5 пустых строк.

Подскажите пожалуйста как это можно реализовать?

В отчете стоит: MasterData1, Footer1, MasterData2

procedure Footer1OnBeforePrint(Sender: TfrxComponent);
var
  EmptyCount: integer;
begin
  EmptyCount := 20 - COUNT(MasterData1);
  if EmptyCount > 0 then
  begin
    MasterData2.Visible := true;
    MasterData2.RowCount := EmptyCount;
  end;
end;

дает ошибку: " could not convert variant of type (Null) into type (Integer) "

Всем спасибо. Решено

12

(1 replies, posted in Russian)

Локальная одноранговая сеть. Пять пользователей. Папка общего доступа.

Как лучше использовать программу?

1. Проект лежит в общей папке(база данных там-же) и пользователи через ярлык запускают каждый свою копию.
2. 5 проектов (копии) лежат у каждого пользователя, а база в общей папке.

Работает и так и так.
Как правильнее?

Спасибо.

DriveSoft wrote:

Alex
Странно, какая версия программы у вас?
либо у вас компонент frmLogin.cbLogin не является ComboBox-ом

Не является.
Поэтому и вопрос возник. Хотелось-бы через ТекстБокс вводить Имя.
можно-ли  "idUser := frmLogin.cbLogin.dbItemID;"  вводить через "Текст"  -  "idUser := frmLogin.edLogin.Text;"
хотя и так пробовал - не работает (знаний не хватает...)

Версия 1.51

DriveSoft wrote:

Что именно не получается?

Когда из скрипта проекта "Login with protect own records and admin" вставляю в скрипт "LoginEx" процедуру:

-

procedure frmLogin_bLogin_OnClick (Sender: string; var Cancel: boolean);
var
   s: string;
begin
     // SQL query for check user and password
     s := SQLExecute('SELECT count(id) FROM users WHERE (id = ''' + IntToStr(frmLogin.cbLogin.dbItemID) + ''') AND (password = ''' + frmLogin.edPassword.Text + ''');');

     // if SQL query found login and password
     if (s <> '0') and (s<>'') then
     begin
          sUser := frmLogin.cbLogin.Text; // remember username
          idUser := frmLogin.cbLogin.dbItemID; // remember user id in database

-

сообщает об ошибке "Undeclared identifier: 'dbItemID' at 23:103"

Совсем запутался, не выходит никак ...
Помогите объединить три проекта: "LoginEx", "Login with check double login", "Login with protect own records and admin".
Хочется получить собственно авторизацию с правами из "LoginEx" (окошко "User" не "ComboBox", а "TextBox") и проверки
на повторный заход Пользователя с запретом редактирования чужих записей, кроме Админа.
Получится?
Спасибо

Дмитрий, alex842

спасибо

Дмитрий подскажите, можно-ли реализовать включение-отключение Кнопок управления окном "Свернуть" "Развернуть" "Закрыть"
на выбранных пользователем формах?

Например, кнопка "Развернуть" не активна по умолчанию на всех формах. Сделать размеры формы окна под один размер монитора не очень удобно. Когда окно будет открываться на другом (по размерам) мониторе, оно будет либо меньше, либо больше (от размера монитора зависит).

При активной кнопке "Развернуть" пользователь сможет увидеть окно во весь экран.

Спасибо.

Leonid wrote:

Смотря что вам нужно ...

Леонид спасибо большое, все получилось...Оказывается двойной клик в Событиях автоматом вставляет Процедуру в Скрипт...
Дмитрию спасибо за этот Продукт. Для новичков самое то. (ИМХО)

Всем спасибо.

Leonid wrote:

NovayaForma.EdKod2.Text:=Copy ( NovayaForma.MemoKod2..Text,1,3); // с позиции 1 копировать 3 символа

Подскажите как практически это реализовать. В скриптах не силен.
Когда этот код находится в Скрипте, валятся одни ошибки - то не задекларирована процедура,
то ожидается Begin, то End, то требует точку или точку с запятой...
Если в поле Calculated в таблице - тоже не работает...
Куда этот код вставить?

спс