Re: Нужна помощь...

RZ-007
Увы я могу помочь только с конкретным вопросом, чтобы разобраться с данным вопросом и понять его, уйдет как минимум час времени, к сожалению не могу себе этого позволить.

Dmitry.

Re: Нужна помощь...

ПОСТ №25

Увы я могу помочь только с конкретным вопросом, чтобы разобраться с данным вопросом и понять его, уйдет как минимум час времени, к сожалению не могу себе этого позволить.

Дмитрий..."методом научного тыка" добился нужного результата.....
Вот результат моих бесонных ночей...

procedure Form3_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   sid: string;
begin

     if (Form3.ComboBox2.dbItemID = -1) and (Form3.ComboBox2.Text <> '')     then
     begin
          // проверить, если оценка уже существует

sid := SQLExecute('SELECT IFNULL(id_AAA, -1)FROM BBB WHERE id = ' +
       IntToStr(Form3.ComboBox2.dbItemID)+'  LIKE "'+Form3.ComboBox1.Text+'"');

          if ValidInt(sid) then
             Form3.ComboBox2.dbItemID:= StrToInt(sid)
//============== всё что ниже работает ОК!!!==================================================================
          // если оценка не существует, предложить  добавления
          else begin
               if 6 = MessageDlg('Добавить запись' + Form3.ComboBox2.Text, mtConfirmation, mbYes + mbNo, 0) then
               begin
       SQLExecute('INSERT INTO BBB (id_AAA,bbb) VALUES ('+Form3.ComboBox1.sqlValue+',"'+Form3.ComboBox2.Text+'")');

       Form3.Combobox2.DoOnChange;   //дал понять, что у него значение обновилось...
       UpdateDatabase('BBB');
       Form3.ComboBox2.dbItemID := Last_Insert_id('bbb');

               end else
               begin  // если Нет...делаем:

                Cancel := True;
                Form3.ComboBox2.dbItemID:= -1;
                Form3.ComboBox2.Text := '';
               end;
          end;
     end;
end;

Вроде как работает, НО.....в верхней части есть где-то ошибка.....
Если в этой строчке:

IntToStr(Form3.ComboBox2.dbItemID)+'  LIKE "'+Form3.ComboBox1.Text+'"');

перед LIKE стереть  два пробела выдаёт ошибку.....
добавляю   +  '(пробел+пробел с клавиатуры)LIKE   работает....
НЕ сочтите за трудность взгляните на скриптик.....

Post's attachments

Attachment icon выдаёт ОШИБКУ....png 13.09 kb, 297 downloads since 2016-05-25 

Re: Нужна помощь...

перед LIKE стереть  два пробела выдаёт ошибку.....
добавляю   +  '(пробел+пробел с клавиатуры)LIKE   работает....
НЕ сочтите за трудность взгляните на скриптик.....

между командой LIKE и параметрами поиска должен быть пробел, правда достаточно одного.

Dmitry.

Re: Нужна помощь...

Доброго времени суток!!!
есть таблица "ААА" в ней такие записи....

товар             дата             цена
________|___________|_____
хлеб          20.05.2016        1
хлеб          20.05.2016        3
хлеб          20.05.2016        5
------------------------------------------
молоко      20.05.2016        7
молоко      20.05.2016        3
=======================
хлеб          21.05.2016       3
хлеб          21.05.2016       2
хлеб          21.05.2016       3
----------------------------------------
молоко      21.05.2016      5
молоко      21.05.2016      6

подскажите как грамотно заполнить таблицу "ВВВ",
чтобы получить такие записи в таблице ???

товар              дата            цена
________|___________|_____
хлеб           20.05.2016       9
молоко       20.05.2016     10
----------------------------------------
хлеб           21.05.2016      8
молоко       21.05.2016     11

т.е...............
1.) отобразить дату которая присутствовала на тот период в таблице "ААА" один раз!
2.) отобразить товар один раз, который присутствовал в этот день!
3.) отобразить общую сумму товара за этот день!

Re: Нужна помощь...

RZ-007
Пожалуйста приложите тестовый проект с данными таблицами и данными, постараюсь что нибудь придумать.

Dmitry.

31 (edited by RZ-007 2016-05-30 18:36:39)

Re: Нужна помощь...

DriveSoft
Пожалуйста приложите тестовый проект с данными таблицами и данными, постараюсь что нибудь придумать...

smile и smile

Post's attachments

Attachment icon тест....zip 338.61 kb, 546 downloads since 2016-05-26 

Re: Нужна помощь...

ДРУЗЬЯ !!!
ПОСТ №29 или №31 безнадёжен или есть у кого мысль с чего начать....

Re: Нужна помощь...

К сожалению не могу вам помочь, т.к. вы используете нелицензионную версию программы.

Dmitry.

Re: Нужна помощь...

Друзья!!!
Подскажите скрипт для проверки дубликата в таблице,
где есть поля связь (id)    и  дата ???

35 (edited by RZ-007 2016-05-31 19:15:15)

Re: Нужна помощь...

Пост № 34...
использую вот этот скрипт:

procedure Form3_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   s: string;
begin
     // SQL-запрос для проверки имени пользователя и пароля
    s := SQLExecute('SELECT count(id) FROM AAA WHERE (id_BBB = ''' + IntToStr(Form3.ComboBox1.dbItemID) + ''') AND (data = ''' + Form3.DateTimePicker1.sqlDate + ''');');

     // если находка SQL запросов Логин и пароль
     if (s <> '0') and (s<>'') then
     begin
       Form4.Show;
     end else Form5.Show;
end;

К моему сожалению, не хочет работать с датой...подскажите в чём ошибка???

Re: Нужна помощь...

Здравствуйте!!!
Дмитрий Вас не было чуток дней....для нас как вечность...
Взгляните ПОСТ №35 ПОЖАЛУЙСТА???

Re: Нужна помощь...

RZ-007 wrote:

Здравствуйте!!!
Дмитрий Вас не было чуток дней....для нас как вечность...
Взгляните ПОСТ №35 ПОЖАЛУЙСТА???

попробуйте такой запрос

s := SQLExecute('SELECT count(id) FROM AAA WHERE (id_BBB = ' + Form3.ComboBox1.sqlValue + ') AND (date(data) =date( ' + Form3.DateTimePicker1.sqlDate + '));');
Dmitry.

Re: Нужна помощь...

ЭТО работает!!! УРА!!!
БЛАГОДАРЮ ВАС!!!

39 (edited by RZ-007 2017-01-31 10:01:15)

Re: Нужна помощь...

Здравсствуйте Дмитрий!!!
Использую такой скрипт:

 procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
    i: integer;
     S : String;
begin

     i := Form1.TableGrid1.RowCount - 1;

   //считаем количество записей в Б/Д...
     S := VarToStr ( SQLExecute('SELECT count(id) FROM GIS ;') );

        if  S <>''   then

begin
      if MessageDlg('  ВЫВЕСТИ   ВСЕ   <<  ' + S + '  >>   ЗАПИСЕЙ ? ? ? '  , mtInformation, mbYes+mbNo, 0) = mrYes

then
begin  // (1-условие) если Да...делаем:

        Form2.Show;

 end else
begin  // (2-условие) если Нет...делаем:

         Form3.Show;
end;
end else
begin   // (3-условие) если....нажимаем на крестик в верхнем правом углу у <<MessageDlg>> ...,то
             //  фома <<MessageDlg>> просто закрылась не выполняя ни каких условий!!!

      Cancel := True;
end;
end;

Поскажите пожайлуста как поправить скрипт..., что бы выполнялось (3-условие) ???
А то на данный момент нажимая на крестик в верхнем правом углу у <<MessageDlg>>
выполняется (2-условие)...!!!

Re: Нужна помощь...

RZ-007
Попробуйте  так

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
    i: integer;
    S : String;
    buttonSelected : Integer;
begin

    i := Form1.TableGrid1.RowCount - 1;

    //считаем количество записей в Б/Д...
    S := VarToStr ( SQLExecute('SELECT count(id) FROM GIS ;') );

    if  S <>'' then 
    begin
        buttonSelected := MessageDlg('  ВЫВЕСТИ   ВСЕ   <<  ' + S + '  >>   ЗАПИСЕЙ ? ? ? '  , mtInformation, mbYes+mbNo, 0);
        if buttonSelected = mrYes then
        begin
            Form2.Show;
        end;    
        
        if buttonSelected = mrNo then
        begin
            Form3.Show;
        end;    
        
        if buttonSelected = mrCancel then
        begin
            Cancel := True;
        end;        
    end else
    begin
        ShowMessage('Записей нет');
        Cancel := True;
    end;

end;
Dmitry.

Re: Нужна помощь...

Вау...даже лучше, чем я ожидал!!!
СПАСИБО...!!!...СПАСИБО...!!!...СПАСИБО...!!!

42 (edited by RZ-007 2018-08-24 16:02:20)

Re: Нужна помощь...

Здравсствуйте Дмитрий!!!
Подскажите пожайлуста, если это возможно...
как по клику на битон имея в txt-Блкноте№1 данные перенести в txt-Блкноте№2
только нужные числа с право на лево
более точнее вопрос выложил в рисунке...

Post's attachments

Attachment icon Скриншот 24-08-2018 172740.png 72.73 kb, 284 downloads since 2018-08-24 

Re: Нужна помощь...

Задачка решается при помощи SplitString и массива строк из первого файла плюс массив строк для второго файла...

Re: Нужна помощь...

RZ-007 wrote:

Здравсствуйте Дмитрий!!!
Подскажите пожайлуста, если это возможно...
как по клику на битон имея в txt-Блкноте№1 данные перенести в txt-Блкноте№2
только нужные числа с право на лево
более точнее вопрос выложил в рисунке...

Приветствую.


Пожалуйста приложите текстовый файл с данными как слева. Сделаю для вас проект с примером.

Dmitry.

45 (edited by RZ-007 2018-11-14 08:43:12)

Re: Нужна помощь...

Здравсствуйте Дмитрий!!!
прилагаю фаил...пост №42

Post's attachments

Attachment icon 3-Black.txt 720 b, 691 downloads since 2018-11-14 

Re: Нужна помощь...

Всем приветики!!!
Кое что получилось...
Друзья!!! Помогите в мемо перевернуть текст:
На данный момент имею в мемо1..., такие дпнные:
1 25 31 13 21
12 29 35 0
13 15 35
А мне надо так:
21 13 31 25 1
0 35 29 12
35 15 13
Это возможно...??? пост №42

Re: Нужна помощь...

procedure Form1_Button8_OnClick (Sender: TObject; var Cancel: boolean);
var
    sl: TStringList;
    i, c: integer;
    ai, ac: integer;
    arras: array of string;
    s: string;
begin
    sl:= TStringList.Create;
    sl.LoadFromFileAnsi('d:\3-Black.txt'); // открываем файл

    // удаляем лишние строки
    c := sl.Count-1;
    for i := c downto 0 do
    begin
        if Pos('Раунды', sl[i])=1 then sl.Delete(i)
        else if Pos(' ', sl[i])=0 then sl.Delete(i);
    end;


    // переворачиваем номера и формируем из них строки
    c := sl.Count-1;
    for i := c downto 0 do
    begin
        arras := SplitString(sl[i], ' ');
        ac := Length(arras)-1;
        s:= '';
        for ai := ac downto 0 do s := s + arras[ai]+#13#10;
        if s <> '' then SetLength(s, Length(s)-2);
        sl.Delete(i);
        sl.Insert(i, s);
    end;

    sl.SaveToFileAnsi('d:\2.txt'); // сохраняем в другой файл
    sl.Free;

end;
Dmitry.

48 (edited by RZ-007 2018-11-15 21:58:54)

Re: Нужна помощь...

УРА!!! РАБОТАЕТ!!!
СПАСИБО!!!
микро вопросики???
1)из программы я открыл tht фаил

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var TFOut : TFileStream;
begin
  TFOut := TFileStream.Create('3-Black.txt', fmCreate);
  TFOut.Free;
  OpenFile('3-Black.txt');
end ;

.внёс коректировку в нём...возможно ли после его сохранения (в последствие закрытия)сделать клик по Button2 для дальнейших действий???
2) я уже скопировал текст... он находится в буфере обмена...
подскажите скрипт для Button1 для вставки текста из буфера обмена в memo1...???

Re: Нужна помощь...

1. Возможно не совсем понимаю вопроса, но вы можете скриптом нажать на кнопку Form1.Button2.Click;


2.

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
    Form1.Memo1.PasteFromClipboard;
end;
Dmitry.

50 (edited by RZ-007 2018-11-16 01:37:08)

Re: Нужна помощь...

Вау... вопрос 2 закрыт...СПАСИБО!!!
вопрос №1
из программы я открыл tht фаил

procedure Form1_Button2_OnClick (Sender: TObject; var Cancel: boolean);
var TFOut : TFileStream;
begin
  TFOut := TFileStream.Create('3-Black.txt', fmCreate);
  TFOut.Free;
  OpenFile('3-Black.txt');
end ;

внёс коректировку в нём...(всем привет!!!) возможно ли после его сохранения (в последствие закрытия)сделать клик по Button3 для дальнейших действий???

Post's attachments

Attachment icon Скриншот 16-11-2018 040730.png 148.57 kb, 223 downloads since 2018-11-16