Sep 01

Создаем грамотно кросс-таблицу

В том случае, когда у Вас есть острая необходимость создать кросс-таблицу, есть возможность сделать их в DBD именно так как QBE-шки…

В случае использования компонента под названием TQBE с целью загрузки только одной из представленных библиотек, есть возможность напрямую использовать только QBE-шки в Вашем приложении.

В нашем очередном примере считается, что абсолютно все служащие постоянно сообщает собственного оператору о данном месторасположении.

Сам код четко определяет само начало рабочей недели, начиная с понедельника, к тому же еще 4 дня рабочих с показом только необходимой даты.

Строки именно с первого по пятое в QBE1. А сама QBE (прямая описательная нулевая) в процедуре, которую мы приведем ниже немного позже, заменяется только кодом.

Итог всех написанных выше процедур состоит в том, что сама строка (в том случае, когда имеется таковая) прямо отображается в самой колонке уже установленного итога и само значение 'X' в том случае включается, когда едиственная запись еще.

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

Вот показательный пример кода:

procedure TCallInReport.ButtonSelectClick(Sender: TObject); begin

TableXTab.active := false ;

if EditWeekOf.Text = '' then

begin

messageBeep( 0 ) ;

messageDlg( 'С целью выбора самой записи нужна дата.', mtInformation, [mbOK], 0 );

exit ;

end ;

Screen.Cursor := crHourGlass ;

dtWeekOf := StrToDate( EditWeekOf.Text ) ;

dtStartDate := dtWeekOf - DayOfWeek( dtWeekOf ) + 2 ;

TableXTab.active := false ;

TableXTab.EmptyTable ;

TableXTab.active := true ;

{

Необходимо нам замените строки от одной до пяти в QBE1.QBE существующими датами

}

QBE1.QBE.Strings[ 1 ] := ' | _join1 | ' + DateToStr( dtStartDate ) + ' | ' ;

QBE1.QBE.Strings[ 2 ] := ' | _join2 | ' + DateToStr( dtStartDate + 1 ) + ' | ' ;

QBE1.QBE.Strings[ 3 ] := ' | _join3 | ' + DateToStr( dtStartDate + 2 ) + ' | ' ;

QBE1.QBE.Strings[ 4 ] := ' | _join4 | ' + DateToStr( dtStartDate + 3 ) + ' | ' ;

QBE1.QBE.Strings[ 5 ] := ' | _join5 | ' + DateToStr( dtStartDate + 4 ) + ' | ' ;

try

QBE1.active := true ;

except

on E: EDataBaseError do

begin

if E.Message = 'Именно здесь ошибка создания самого дескриптора Вашего курсора' then { Не надо вообще ничего делать. Делая саму TQBE уже активной, мы желаем курсор постаратся создать.

Все это исключительную постоянную ситуацию вызывает, которую постоянно надобно перехватить.

На сегодняшний день мы пока не нашли дельного способа избавится от представленного исключения. }

else

begin

Screen.Cursor := crDefault ;

raise ;

end ;

end;

else

Screen.Cursor := crDefault ;

raise ;

end;

TableXTab.refresh ;

Screen.Cursor := crDefault ;

TableXTab.active := true ;

end;

Вот мы и закончили. Очень надеемся, что Вам понравилось!

Спонсор поста: хотите поехать на отдых в Швейцарию, но не знаете как сделать визы? Компания travelswiss.ru - это всегда быстрая и недорогая виза в швейцарию, качественный сервис и высокая степень надежности. Обращайтесь, мы ждем именно Вас!



Поделитесь вашими мыслями

Поддерживаемые теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>