1 (edited by senseyesenseye1983 2021-03-04 07:52:54)

Topic: Прошу помощи пожалуйста!

Уважаемые опытные юзеры помогите со следующим моментом!
Есть Одна таблица в которую выгружаються даные Ф.И.О номер заказа и т д
Итоговое число записей снизу показываться например 100 ( ключил я их с помощью Cost)
На вкладе заказы есть CheckBox который сортируюет заказы в архив - и проблема в том что когда ты сортируешь CheckBox ставишь галочку на архиве по итогу записей так же 100   - а надо чтобы было без учета тех кого убрали в архив!

Например из 100 записей 10 в архиве и когда ты в таблице выполняешь поиск - то показывает 90
А у меня почему то показывает все 100 не считает тех кого я запихнул в архив
Тоесть по сути мне надо что бы те кто поместился в архив не отображались в основной таблице
В идеале нажимаешь на галочку "в архив" и у тебя показывает 10 человек в таблице, там же нажимаешь на галочку и у тебя показывает 90 челоек в таблице  ( окно и таблица одни и те же ) 
Помогите решить эту проблему
Заренее благодарен очень!

Re: Прошу помощи пожалуйста!

Вам нужно создать условия для фильтра записей

Re: Прошу помощи пожалуйста!

Привет,
Я бы посоветовал вам установить флажок 'allowgrayed = true', иначе вы можете видеть только 'заархивировано' и 'не заархивировано', но не ВСЕ записи (так что флажок имеет 3 состояния - по умолчанию 'ВСЕ', затем 'ЗАархивировано' а затем «НЕ ЗАархивировано».
Другой вариант - использовать 3 таблицы - основную сетку, а затем две дополнительные сетки, которые показывают записи «АРХИВИРОВАННЫЕ» и «НЕ АРХИВИРОВАННЫЕ».
Обе альтернативы есть во вложении.
Возможны и другие варианты.
Derek.
.
I would suggest that you set the checkbox to 'allowgrayed = true' otherwise you can only see 'archived' and 'not archived' but not ALL records (so the checkbox has 3 states - the default is 'ALL', then 'ARCHIVED' and then 'NOT ARCHIVED'.
Another option is to use 3 tablegrids - the main tablegrid and then 2 additional tablegrids that show the 'ARCHIVED' and 'NOT ARCHIVED records.
Both alternatives are in the attachment.
Other options are possible too.
Derek.

Post's attachments

Attachment icon archived orders.zip 679.83 kb, 224 downloads since 2021-03-04 

4 (edited by senseyesenseye1983 2021-03-07 09:57:42)

Re: Прошу помощи пожалуйста!

Derek спасибо за предоставленные варианты вложений, помогло но есть одна загвоздка. Подскажи а можно сделать так чтобы в основной таблице те которые ушли в архив - не показывались при оновном Поиске пока не уберешь у них голочку в архив их как бы не будет видно!
На предоставленном тобой варианте archivedorders1 основная таблица и в ней 5 записей: 2 из которой в архиве и вот нужно чтобы когда ты нажимаешь на Поиск у тебя отображались только те которое не в Архиве ( у меня почему то при нажатии Поиск отображаються все записи которые есть вообще.

5 (edited by sibprogsistem 2021-03-07 11:18:23)

Re: Прошу помощи пожалуйста!

senseyesenseye1983 wrote:

Derek спасибо за предоставленные варианты вложений, помогло но есть одна загвоздка. Подскажи а можно сделать так чтобы в основной таблице те которые ушли в архив - не показывались при оновном Поиске пока не уберешь у них голочку в архив их как бы не будет видно!
На предоставленном тобой варианте archivedorders1 основная таблица и в ней 5 записей: 2 из которой в архиве и вот нужно чтобы когда ты нажимаешь на Поиск у тебя отображались только те которое не в Архиве ( у меня почему то при нажатии Поиск отображаються все записи которые есть вообще.

 
(orderarchive=0)
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=7561&download=0

Post's attachments

Attachment icon Безымянный.png 308.62 kb, 96 downloads since 2021-03-07 

Re: Прошу помощи пожалуйста!

Все огромное спасибо, разобрался!

Re: Прошу помощи пожалуйста!

Все спасибо огромное всем кто помог. Для нашего учреждения хоть оно и маленькое, это незаменимая программа. Осталось только сделать форму входа(аторизации). Я ее создал все работает, создал экран приветствия но проблема в то что загружаеться сначала форма авторизации и после успеха грузиться Form1(основная форма) а подскажите пожалуйства как сделать или что добавить конкретно что бы сначала грузилась форма приветствия - потом форма авторизации и при успехе основная форма(Form1). Вот мой скрипт:

var
   Timer: TTimer;


procedure frmSplash_OnShow (Sender: string; Action: string);
begin
     Timer := TTimer.Create(nil); // create timer
     Timer.OnTimer := @OnTimer;  // event procedure
     Timer.Interval := 5000; // 5 sec
     Timer.Enabled := True;  // Start timer
     frmSplash.ShowModal; // Show welcome screen
end;

procedure OnTimer (Sender: TObject);
begin
     Timer.Enabled := False;
     frmSplash.Close;
     Timer.Free;
end;



CONST
    APP_NAME = 'MVDLogin';
var
   sUser: string = '';

procedure Form1_OnShow (Sender: string; Action: string);
begin
  // Initial check whether there is a database administrator user
  // if not, create an administrator with username admin and password admin
     if SQLExecute('SELECT count(id) FROM users;') = '0' then
         SQLExecute('INSERT INTO users (login, password) VALUES ("ОО", "ТАЙНА");');

     frmLogin.Button1.Default := True;

     LoadRememberUser;
     frmLogin.edPassword.PasswordChar := '*';
     frmLogin.ShowModal; // show windows for login
end;


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
          Form1.Caption := 'User: ' + sUser;
          frmLogin.Close; // close login form
          SaveRememberUser;
     end else MessageDlg('password is incorrect', mtError, mbOk, 0); // message if the password is incorrect

end;
// window closing event for login
procedure frmLogin_OnClose (Sender: string; Action: string);
begin
     // if the user has not been defined, and the user closes the login window, then close the main form
     if sUser='' then Form1.Close;
end;


procedure SaveRememberUser;
var
   reg: TRegistry;
begin
     reg := TRegistry.Create;
     reg.Access := KEY_ALL_ACCESS;
     reg.RootKey := HKEY_CURRENT_USER;

     if reg.OpenKey('software\' + APP_NAME, true) then
     begin
          if frmLogin.chbRemember.Checked then
              Reg.WriteInteger('userid', frmLogin.cbLogin.dbItemID)
          else Reg.DeleteValue('userid');
          reg.CloseKey;
     end;

     reg.Free;
end;
                                     

procedure LoadRememberUser;
var
   reg: TRegistry;
begin
     reg := TRegistry.Create;
     reg.Access := KEY_ALL_ACCESS;
     reg.RootKey := HKEY_CURRENT_USER;

     if reg.OpenKey('software\' + APP_NAME, true) then
     begin
         if reg.ValueExists('userid') then
         begin
             frmLogin.cbLogin.dbItemID := Reg.ReadInteger('userid');
             if Reg.ReadInteger('userid') <> -1 then frmLogin.chbRemember.Checked := True;
         end;
         reg.CloseKey;
     end;

     reg.Free;
end;

procedure frmLogin_Image1_OnMouseDown (Sender: TObject; MouseLeft, MouseRight, MouseMiddle: boolean; Shift, Alt, Ctrl: boolean; X, Y: Integer);
begin
  ReleaseCapture;
  SendMessage(Form1.Handle, WM_SYSCOMMAND, 61458, 0) ;
end;






procedure frmLogin_Label5_OnClick (Sender: TObject);
begin
  frmLogin.WindowState := wsMinimized;
end;

procedure frmLogin_Label5_OnMouseLeave (Sender: TObject);
begin
  Form1.Label5.Font.Style:= fsUnderline - fsUnderline;
end;

procedure frmLogin_Label6_OnClick (Sender: TObject);
begin
  frmLogin.Close;
end;

procedure frmLogin_chbRemember_OnMouseEnter (Sender: TObject);
begin
  frmLogin.chbRemember.Color:=$002F2C21 ;
end;



begin



end.

Re: Прошу помощи пожалуйста!

senseyesenseye1983 wrote:

Все спасибо огромное всем кто помог. Для нашего учреждения хоть оно и маленькое, это незаменимая программа. Осталось только сделать форму входа(аторизации). Я ее создал все работает, создал экран приветствия но проблема в то что загружаеться сначала форма авторизации и после успеха грузиться Form1(основная форма) а подскажите пожалуйства как сделать или что добавить конкретно что бы сначала грузилась форма приветствия - потом форма авторизации и при успехе основная форма(Form1).

Форма приветствия должна быть главной. В обработчике события onShow формы приветствия создаёте таймер. Это позволит управлять временем отображения приветственной формы. В обработчике таймера скрываете форму приветствия (методом Hide) и показываете форму входа. По итогам аутентификации либо показываете основную форму приложения (Form1) либо закрываете приложение (закрываете форму приветствия методом Close).

Визуальное программирование: блог и телеграм-канал.

Re: Прошу помощи пожалуйста!

Все спасибо разобрался smile