ФИНАНСЫ БЕЗ ПРОБЛЕМ(tm):
ПЕРЕГОВОРНЫЙ ПУНКТ II

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
05.10.22 в 17:43:59


Наш сайт | Cтаpый форум (до 08.2003 года) | Интернет-магазин & Центр загрузок |
Главная | Помощь | Поиск | Участники | Вход | Регистрация
Модифицированный Клиент CLW32:
Из документации ...
На форуме...

Использование Клиента FCM:
1. Отчетный период и журнал операций.
2. Печать.
3. Экспорт.
4. Многострочная операция.
5. Редактирование многострочных операций.
http://www.fwp-client.com

Работа с ФБП через браузер:
Настройка для лечебных учреждений, оказывающих медицинские услуги:
На форуме...
http://vasoft.ru

Технический аудит настройки.
[Читать]

ФИНАНСЫ БЕЗ ПРОБЛЕМ (сетевая) и Opencart:
предлагаем:
1. Выгрузка новых покупателей из интернет-магазина в план счетов и сохранение информации в extrd.dat.
2. Выгрузка данных о заказанном товаре и сохранение в ФБП в журнале операций, номер заказа регистрируем в плане счетов как с.счет.
3. Українська локалізація.






   Финансы без пpоблем: Пеpеговоpный Пункт II
   ФБП для начинающих

   Как "вытащить" первую строчку ОФ
« Предыдущая Тема | Следующая Тема »
Страниц: 1  Ответить | Уведомлять | Послать Тему | Печатать
   Автор  Тема: Как "вытащить" первую строчку ОФ  (Прочитано 825 раз)
Seroga

*



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 40
Как "вытащить" первую строчку ОФ
« В: 12.08.21 в 14:41:06 »
Цитировать | Править

Как "вытащить" первую строчку отчетной формы (ОФ), т.е. название ОФ?
Далее ее разместить за именем файла (аналог ALT+F4) и что бы ОФ по нажатию на нее выполнялась.
Зарегистрирован
mine-R

***



compact & flexible rulezzz

   
Просмотреть Профиль |

Сообщений: 145
Re: Как "вытащить" первую строчку ОФ
« Ответить #1 В: 12.08.21 в 19:50:08 »
Цитировать | Править

on 12.08.21 в 14:41:06, Seroga wrote:
Как "вытащить" первую строчку отчетной формы (ОФ), т.е. название ОФ?
Далее ее разместить за именем файла (аналог ALT+F4) и что бы ОФ по нажатию на нее выполнялась.

 Grin настойчивость это хорошо
 
Но не всегда.
 
Я тоже упорно настаиваю что уже предлагал оптимальные варианты подходов к решению подобного. Ибо без "альпийских костылей" в виде последовательной загрузки в loadtxt всех форм только лишь ради одной строки заголовка, или же отправки запроса "F" через  файл ".in" (и это при условии что этот запрос не переопределен в USERS.RPT)- никак это название не "вытащить" и все подобные подходы являются тем, "как делать не следует".
 
Я предлагал.
 
1 вариант. Либо завести забалансовый счет, субсчетами которого по [n1] будут имена форм, а по [n2] обозначения (user-friendly комментарии в первой строке). Перебирая в цикле эти субсчета, можно выводить и манипулировать выводимым списком отчетных форм.
 
2 вариант. Создать отчетную форму списка отчетных форм. Ее тоже можно запускать с помощью N:R из другой отчетной формы или через уточнение ·R из операции. Можно предусмотреть запуск с параметрами и моделировать выдачу с помощью if-endif
Вот простейший вариант подобной формы
Code:
* Пример формы списка отчетных форм
ОТЧЕТНЫЕ ФОРМЫ
LF=([ch13]+[ch10])
N:ENTER:R #1
N:ENTER:#CLOSE
PRINTSTR ('FORM1     *Отчетная форма 1')+LF
PRINTSTR ('FORM2     *Отчетная форма 2')+LF
PRINTSTR ('FORM3     *Отчетная форма 3')+LF
* ...перечисляем отчетные формы
PRINTSTR ('FORMN     *Отчетная форма N')+LF

 
И да, каждое имя и каждый комментарий (*первую строку формы), при предлагаемых двух вариантах придется внести вручную. С учетом того, что существуют ctrl+C и ctrl+V это достаточно приемлемо. Всегда бывают случаи (имхо) когда такое вот "вручную" более оправдано, чем "альпийский код".  Smiley
Зарегистрирован
Svetlana
Moderator

*****





472860567 472860567    
Просмотреть Профиль |

Сообщений: 400
Re: Как "вытащить" первую строчку ОФ
« Ответить #2 В: 13.08.21 в 09:11:15 »
Цитировать | Править

Создаю у себя в настройках списки по варианту 2.
Зарегистрирован
Seroga

*



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 40
Re: Как "вытащить" первую строчку ОФ
« Ответить #3 В: 18.08.21 в 16:54:56 »
Цитировать | Править

Хреново ..., а, если еще и Аркадий напишет что-то подобное ....то вообще. После таких писем руки не писали ....
Да, гнать целую форму ... ради одной строчки, ... и она будет не в памяти, а будет выполняться каждый раз, поэтому написал вопрос.
Правда у меня еще один "вопрос", по ALT+F4 все быстро делается или путь все равно длинный и он делается при загрузке сервера, а потом просто из памяти. Ни кто не в курсе самого механизма?
Придется делать третий вариант .... хоть с каким-то контролем и с помощью if-endif.
Зарегистрирован
mine-R

***



compact & flexible rulezzz

   
Просмотреть Профиль |

Сообщений: 145
Re: Как "вытащить" первую строчку ОФ
« Ответить #4 В: 18.08.21 в 20:10:19 »
Цитировать | Править

on 18.08.21 в 16:54:56, Seroga wrote:
Хреново ..., а, если еще и Аркадий напишет что-то подобное ....то вообще. После таких писем руки не писали ....
Да, гнать целую форму ... ради одной строчки, ... и она будет не в памяти, а будет выполняться каждый раз, поэтому написал вопрос.

Аналога [jf] для списка форм не существует. Иначе бы я про "вручную" не писал.  
 
on 18.08.21 в 16:54:56, Seroga wrote:

Правда у меня еще один "вопрос", по ALT+F4 все быстро делается или путь все равно длинный и он делается при загрузке сервера, а потом просто из памяти. Ни кто не в курсе самого механизма?
Придется делать третий вариант .... хоть с каким-то контролем и с помощью if-endif.

Code:
* Форма примера самого механизма
Запустить:
N:ENTER:#1
F    * Список форм, загруженных Сервером
FCL  * Список форм из рабочей директории Клиента

 
Как ни крути, но даже по смыслу, если уж мы переопределяем стандартную выдачу списков форм - то только вручную.
Зарегистрирован
mine-R

***



compact & flexible rulezzz

   
Просмотреть Профиль |

Сообщений: 145
Re: Как "вытащить" первую строчку ОФ
« Ответить #5 В: 18.08.21 в 23:12:49 »
Цитировать | Править

Если уж непременно "вытащить"  Smiley
Code:
* Пример формы с вытаскиванием из ответа на запрос-F
Список с вытащенным названием.
LF=[CH13]+[CH10]
US=[USER]
AA='···F '
F1=[dir 1]+'TEST.REQ'
F2=[dir 1]+'TEST.IN'
F3=[dir 1]+'TEST.OUT'
F4=[dir 1]+'TEST.ANS'
IF ([FE F3]>-1)
deletefile F3
ENDIF
IF ([FE F4]>-1)
deletefile F4
ENDIF
\>FILE F1
FP=US+AA+LF
PRINTSTR FP TO FILE F1
renamefile F1 to F2
I=0
WHILE [FE F3]=-1
FF=[FE F3]
I=I+1
IF I>30000
GOTO ERROR
ENDIF
ENDWHILE
loadtxt F3
IF ([ged 'lt.overflow']<>0)
GOTO ERROR
ENDIF
J=[ged 'lt.N']
FOR I=2 TO J
TS=[ged 'lt.'+[intsn I]]
SP=[PS [ch32],TS]
IF SP>1
N1=[STRIP [CP TS,1,SP]]
N2=[STRIP [CP TS,SP,200]]
N:ENTER:R #1
N:ENTER:#CLOSE
^^^^^^^^N1   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^N2.
ENDIF
ENDFOR
STOP
:ERROR
 
ГДЕ-ТО ОШИБКА !!!
STOP

 
Примечание 1. Не предусмотрена обработка для пользователей, для которых определен пароль (нужно или временно убрать пароль в _RIGHTS_ или доработать код).
 
Примечание 2. Следует учесть, что действует только на стороне Сервера ( запрос FCL отправлять с помощью данного примера бессмысленно).
 
Примечание 3. Сам такой код никогда не использовал и никому не советую  Smiley
Зарегистрирован
Страниц: 1  Ответить | Уведомлять | Послать Тему | Печатать

« Предыдущая Тема | Следующая Тема »

Powered by YaBB 1 Gold - SP 1.3.2!
Forum software copyright й 2000-2004 Yet another Bulletin Board