1 (edited by sibprogsistem 2019-06-05 13:51:17)

Topic: колличество строк в таблице

колличество строк в таблице заранее не известно
как вывести записи?

procedure DUAll;
var
NxTextColumn: TNxTextColumn;
JSONObject, JSONObjProp: TJSONObject;
JSONString: TJSONString;
JsonArray, JsonArrayCoord: TJSONArray;
i:integer;
begin
  try
    if http.Status() = 200 then
      begin
        JSONObject:=TJSONObject(TJSONObject.ParseJSONValue(http.responsetext));
          if JSONObject <> nil then begin
            JSONString:=TJSONString(JSONObject.GetPairByName('success').JsonValue);
              if Pos('not session', JSONString.Value) > 0  then begin
                timerAu.Enabled:=False;
                frmAdmin.bAutorization.Caption:='Ошибка авторизации'; end else
                  if Pos('1', JSONString.Value) > 0  then begin
                    JSONString:=TJSONString(JSONObject.GetPairByName('days').JsonValue);
                    frmAdmin.bDays.Caption:='Осталось '+JSONString.Value+' дней';

                    frmAdmin.tgUserApp.Columns.Clear;
                      try
                        frmAdmin.tgUserApp.Columns.Add(TNxTextColumn);
                      except
                      end;
                      try
                        frmAdmin.tgUserApp.Columns.Add(TNxTextColumn);
                      except
                      end;
                      try
                        frmAdmin.tgUserApp.Columns.Add(TNxTextColumn);
                      except
                      end;
                      try
                        frmAdmin.tgUserApp.Columns.Add(TNxTextColumn);
                      except
                      end;

                    frmAdmin.tgUserApp.Columns[0].Color := clWhite;
                    frmAdmin.tgUserApp.Columns[1].Color := clWhite;
                    frmAdmin.tgUserApp.Columns[2].Color := clWhite;
                    frmAdmin.tgUserApp.Columns[3].Color := clWhite;
                    frmAdmin.tgUserApp.AddRow(6);//колличесво строк

                    JsonArray:=TJSONArray(JSONObject.GetPairByName('products').JsonValue);
                      for i := 0 to JsonArray.Size-1  do begin
                        JSONObjProp := TJSONObject( TJSONObject(JsonArray.Get(i)));
                        JSONString := TJSONString(JSONObjProp.GetPairByName('password').JsonValue);
                        frmAdmin.tgUserApp.Cells[0,i] := JSONString.Value;
                      end;
                    timerAu.Enabled:=False;
                 end;
               end;
             end;
        except

    end;
end;

у меня только так получается

for i := 0 to JsonArray.Size-1  do begin
                        frmAdmin.tgUserApp.AddRow(i+1);

но при этом одна лишняя строка

Re: колличество строк в таблице

Это?
//ограничение кол.выводимых записей//
      procedure frmOrder_Button34_OnClick (Sender: TObject; var Cancel: boolean);
begin
    frmOrder.GridOrder.SelectedRow := frmOrder.GridOrder.RowCount-1;
    frmOrder.GridOrder.dbLimit := frmOrder.GridOrder.dbLimit + 20;
    frmOrder.GridOrder.dbUpdate;
end;

надо идти вперёд....

Re: колличество строк в таблице

kovalenko wrote:

Это?
//ограничение кол.выводимых записей//
      procedure frmOrder_Button34_OnClick (Sender: TObject; var Cancel: boolean);
begin
    frmOrder.GridOrder.SelectedRow := frmOrder.GridOrder.RowCount-1;
    frmOrder.GridOrder.dbLimit := frmOrder.GridOrder.dbLimit + 20;
    frmOrder.GridOrder.dbUpdate;
end;

Выводится по 20 записей.

надо идти вперёд....

Re: колличество строк в таблице

kovalenko wrote:

Это?
//ограничение кол.выводимых записей//
      procedure frmOrder_Button34_OnClick (Sender: TObject; var Cancel: boolean);
begin
    frmOrder.GridOrder.SelectedRow := frmOrder.GridOrder.RowCount-1;
    frmOrder.GridOrder.dbLimit := frmOrder.GridOrder.dbLimit + 20;
    frmOrder.GridOrder.dbUpdate;
end;

нет колличество строк не извесно - их может быть и 20 и 40 и 2
в принцепе так
frmAdmin.tgUserApp.AddRow(i+1);
работает , только одна колонка лишняя получается..

Re: колличество строк в таблице

Добавляйте столько строк, сколько вам нужно, прямо в цикле:


for i := 0 to JsonArray.Size-1  do 
begin
  JSONObjProp := TJSONObject( TJSONObject(JsonArray.Get(i)));
  JSONString := TJSONString(JSONObjProp.GetPairByName('password').JsonValue);
  frmAdmin.tgUserApp.AddRow;
  frmAdmin.tgUserApp.Cells[0,frmAdmin.tgUserApp.LastAddedRow] := JSONString.Value;
end;
Визуальное программирование: блог и телеграм-канал.

Re: колличество строк в таблице

k245 wrote:

Добавляйте столько строк, сколько вам нужно, прямо в цикле:


for i := 0 to JsonArray.Size-1  do 
begin
  JSONObjProp := TJSONObject( TJSONObject(JsonArray.Get(i)));
  JSONString := TJSONString(JSONObjProp.GetPairByName('password').JsonValue);
  frmAdmin.tgUserApp.AddRow;
  frmAdmin.tgUserApp.Cells[0,frmAdmin.tgUserApp.LastAddedRow] := JSONString.Value;
end;

да я просто не мог понять почему

frmAdmin.tgUserApp.AddRow(i);

не срабатывает, а потом дошло, что нужно

frmAdmin.tgUserApp.AddRow(1); 

тоесть каждый раз добовляет по одной строке