Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Сортировка в физическом порядке
Goto page 1, 2  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 09 Jul 2007 09:56    Post subject: Сортировка в физическом порядке Reply with quote

Как добавить сортировку в физическом порядке?

Как добавить сортировку по временному индексу (в данном случаи по полю date_calc)?

Как изменить индекс по умолчанию (индекс по которому отсортирован список при входе)?

Code:

Function Main()
  LOCAL aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc, bDel, _aSortSeek
  aSetKey:=SaveSetKey()
  DBPUSH()
  altd()

  NETUSE("F_form_arc",LOADPATH()+"form_arc.dbf")

  DISPBOX(1,0,24,79,( CHR( 201 ) + CHR( 205 ) + CHR( 187 ) + CHR( 186 ) + CHR( 188 ) + CHR( 205 ) + CHR( 200 ) + CHR( 186 )+' ' ),;
  "W+/B")

  nTop := 2
  nBot := 23

  cColHead:={" Код   Наименование формы отчетности               Дата    Начало     Конец   ",;
             " формы                                           создания  периода   периода  "}     
                                                                                           
  aBlockCols:={{{||SubStr(FIELD->code_var,7,4)}, 1},{{||FIELD->name_doc},7},{{||FIELD->Date_Calc},49},{{||FIELD->Period_Sta},59},{{||FIELD->Period_End},69}}

  cCurProc:={||"2"}

  _aSortSeek :={{"Период и код", "Код формы", "Code_Var",'UPPER(aIn[1])',,,,"Var"},;
                {"Имя формы", "Имя формы", "Name_Doc",'UPPER(aIn[1])',,,,"Name"},;
                {"Имя и период", {"Имя формы", "Начало периода", "Конец периода"},;
                  {"Name_Doc", "Period_Sta", "Period_End"},'UPPER(aIn[1]) + DTos(aIn[2]) + DTos(aIn[3])';
                   ,,,,"Code"};
               }

  F_form_arc->( INITLIST(nTop,nBot,cColHead,aBlockCols,cCurProc,;
          ,,,,,;                                                                 
          ,,,_aSortSeek,,))

  F_form_arc->( DBCLOSEAREA() )
  DbPop()
  RestSetKey(aSetkey)
Return

Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 09 Jul 2007 10:20    Post subject: Reply with quote

1. Для сортировки в физическом порядке искользуйте нулевой ТЭГ
2.Для сортировки по временному индексу надо создать временный индекс и включить имя ТЭГа в сортировку
3.При входе в Инитлист используется первый индекс массива aSortSeek
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 09 Jul 2007 13:16    Post subject: Reply with quote

nordk wrote:

3.При входе в Инитлист используется первый индекс массива aSortSeek


Сначала у меня сортировалось по первому индексу, но сейчас сортируется по 3-ему индексу. После чего так получилось я не понял

В ЗП есть возможность выбирать "Порядок сортировки сотрудников" (ЗП - Настройка подсистемы - Бух. настройка). Следовательно этим можно управлять ...
Back to top
View user's profile Send private message
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 09 Jul 2007 13:39    Post subject: Reply with quote

nordk wrote:
1. Для сортировки в физическом порядке искользуйте нулевой ТЭГ


Пишу:
Code:

  _aSortSeek :={{"Период и код", "Код формы", "Code_Var",'UPPER(aIn[1])',,,,"Var"},;
                {"Имя формы", "Имя формы", "Name_Doc",'UPPER(aIn[1])',,,,"Name"},;
                {"Имя и период", {"Имя формы", "Начало периода", "Конец периода"},;
                  {"Name_Doc", "Period_Sta", "Period_End"},'UPPER(aIn[1]) + DTos(aIn[2]) + DTos(aIn[3])';
                   ,,,,"Code"},;
                {"Физический", ,,,,,,};
               }


8-м параметром пробовал еще ставить 0, "0","". Не работает. Точнее в некоторых из этих вариантах работает со второй попытки, т.е. первый раз выбираешь сотрировку она не срабатывает, второй раз жмешь F3, курсор стоит на 2-й записи, выбираешь 4-й (физический) запись и срабатывает ...

Это одна проблема. Вторая проблема поиск. Можно убрать этот пунк из поиска (F7) и/или как сделать поиск по физическому номеру записи?
Back to top
View user's profile Send private message
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 09 Jul 2007 14:31    Post subject: Reply with quote

nordk wrote:

2.Для сортировки по временному индексу надо создать временный индекс и включить имя ТЭГа в сортировку


Здесь получилось, но опять срабатывает только со второго раза

Code:

  temp_index := F_form_arc -> (CreateTempIndex("DTos(date_calc)"))

  _aSortSeek :={{"Период и код", "Код формы", "Code_Var",'UPPER(aIn[1])',,,,"Var"},;
                {"Имя формы", "Имя формы", "Name_Doc",'UPPER(aIn[1])',,,,"Name"},;
                {"Имя и период", {"Имя формы", "Начало периода", "Конец периода"},;
                  {"Name_Doc", "Period_Sta", "Period_End"},'UPPER(aIn[1]) + DTos(aIn[2]) + DTos(aIn[3])';
                   ,,,,"Code"},;
                {"Дата создания", "Дата создания", "date_calc", "DTos(aIn[1])",,,,"temp_index"};
               }

Back to top
View user's profile Send private message
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 09 Jul 2007 14:53    Post subject: Reply with quote

По пути еще один вопрос из другой серии. Как из БЭСТ-а получить путь до каталога Bin?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 10 Jul 2007 10:32    Post subject: Reply with quote

Вообще-то путь до каталога BIN
/BIN
Но вопрос зачем Вам именно этот каталог: используйте лучше PRO
Управлять нельзя, можно просто при старте Инитлиста изощряться
с установкой индекса при входе. Ставьет первым.
ФИзический порядок ставьте просто 0 в имя тега.
Почему и он и временный индекс срабатывает у Вас со второго
раза мне непонятно - надо смотреть всю программу.
Пункт из F7 убирается легко последним (15) параметром aSortSeek
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 11 Jul 2007 09:30    Post subject: Reply with quote

nordk wrote:
Вообще-то путь до каталога BIN
/BIN
Но вопрос зачем Вам именно этот каталог: используйте лучше PRO


Выяснилось, что путь не нужен Мне нужно запусть файл frview.exe. Выяснилось, что он доступен так: BIN\frview.exe

Сейчас я запускаю отчет так:
Code:

  SETKEY(13,{||xRun ("BIN\frview.exe " + LoadPath() + AllTrim(memoline(F_form_arc->doc_string, 254, 1)))})


Но после выхода из отчета я выхожу и из плагина Как исправить ситуацию?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 11 Jul 2007 12:52    Post subject: Reply with quote

Не могу понять никак: что нужно ?
Осветите поподробнее ситуацию плз.
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 06 Aug 2007 08:55    Post subject: Reply with quote

Код программы:
Code:

Function Main()
  LOCAL aSet,aSetKey,nTop,nBot,cColHead,aBlockCols,cCurproc, bDel, _aSortSeek, temp_index
  aSetKey:=SaveSetKey()
  DBPUSH()
  altd()

  NETUSE("F_form_arc",LOADPATH()+"form_arc.dbf")

  SETKEY(13,{||xRun ("BIN\frview.exe " + LoadPath() + AllTrim(memoline(F_form_arc->doc_string, 254, 1)))})

  DISPBOX(1,0,24,79,( CHR( 201 ) + CHR( 205 ) + CHR( 187 ) + CHR( 186 ) + CHR( 188 ) + CHR( 205 ) + CHR( 200 ) + CHR( 186 )+' ' ),;
  "W+/B")

  nTop := 2

  nBot := 23

  cColHead:={" Код   Наименование формы отчетности               Дата    Начало     Конец   ",;
             " формы                                           создания  периода   периода  "}     
                                                                                           
  aBlockCols:={{{||SubStr(FIELD->code_var,7,4)}, 1},{{||FIELD->name_doc},7},{{||FIELD->Date_Calc},49},{{||FIELD->Period_Sta},59},{{||FIELD->Period_End},69}}

  cCurProc:={||"2"}

  bDel:={||.F.}

  F_form_arc -> (OrdCreate(GlobalTmpPath+ "cdx_form_arc", "temp_index", "DTos(date_calc)"))

  _aSortSeek :={{"Период и код", "Код формы", "Code_Var",'UPPER(aIn[1])',,,,"Var"},;
                {"Имя формы", "Имя формы", "Name_Doc",'UPPER(aIn[1])',,,,"Name"},;
                {"Имя и период", {"Имя формы", "Начало периода", "Конец периода"},;
                  {"Name_Doc", "Period_Sta", "Period_End"},'UPPER(aIn[1]) + DTos(aIn[2]) + DTos(aIn[3])';
                   ,,,,"Code"},;
                {"Дата создания", "Дата создания", "date_calc", "DTos(aIn[1])",,,,"temp_index"};
               }

  F_form_arc->( INITLIST(nTop,nBot,cColHead,aBlockCols,cCurProc,;
          ,,,,,;                     
          ,,,_aSortSeek,,))

  F_form_arc->( DBCLOSEAREA() )
  DbPop()
  RestSetKey(aSetkey)
Return


Обращаю внимаение, что реакция на Enter изменина с помощью SETKEY.

По нажатию Enter вызывается ФастРепорт. А после выхода из ФастРепорт выходишь и из программы. Как сделать чтобы при выходе из ФастРепорт возвращаться обратно в плагин?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 06 Aug 2007 13:49    Post subject: Reply with quote

Добавьте после вызова функции xRun в блоке кода через запятую 2
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 06 Aug 2007 15:10    Post subject: Reply with quote

nordk wrote:
Добавьте после вызова функции xRun в блоке кода через запятую 2


не понял куда надо добавить 2 Попробывал поставить ее в несколько мест, но это не помогло
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 06 Aug 2007 15:45    Post subject: Reply with quote

Это у Вас

Code:
SETKEY(13,{||xRun ("BIN\frview.exe " + LoadPath() + AllTrim(memoline(F_form_arc->doc_string, 254, 1)))})


А это я предложил
Code:
SETKEY(13,{||xRun ("BIN\frview.exe " + LoadPath() + AllTrim(memoline(F_form_arc->doc_string, 254, 1))),2})
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 06 Aug 2007 15:48    Post subject: Reply with quote

Вот здесь тоже
Code:
cCurProc:={||"2"}

исправьте на
Code:
cCurProc:={||2}
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 06 Aug 2007 15:51    Post subject: Reply with quote

Спасибо, получилось
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru