|
Text...Endtext
|
|||
---|---|---|---|
#18+
Никогда не пользовался этой конструкцией. Вот потребовалось. Нужно, в зависимости от условия, вставить строку, примерно так: text ... ... If uclovie <<вставляемая строка>> endi .... endtext те, при выполнении uclovie в выходной строке должна появиться строка <<...>>, иначе ее не должно быть. Или как-то иначе? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 08:59 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 09:03 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
Dima T, это-то понятно, но возникают проблемы преобразований и опять же пустая строка в полученном тексте ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 09:13 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
Можно такой кострукцией воспользоваться: SET TEXTMERGE ON TO MEMVAR sqlReq NOSHOW \BEGIN TRANSACTION \UPDATE contract SET \ ContractNumber = <<m.ContractNumber>> \ , ContractDate = <<m.ContractDate>> \WHERE id = <<m.idCntr>> \ BEGIN \ INSERT Contract \ (<<IIF(m.memberType = "1","idBank","idClientInk")>>, idContract) \ VALUES \ (<<IIF(m.memberType = "1", m.idBnk_, m.idClient)>>, <<(m.idCntr>>) \ END \ COMMIT TRANSACTION SET TEXTMERGE TO ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 09:52 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
glamisDima T, это-то понятно, но возникают проблемы преобразований и опять же пустая строка в полученном тексте Какие проблемы? Откуда пустая строка? Покажи на конкретном примере что тебя не устраивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 09:55 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
Дед Евгений, да, пожалуй так луче ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 11:06 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
Dima T, 1. Если условие .f., то будет строка в которой ничего не написано. 2. По преобразованиям: нать каждый раз помнить какого типа элементы выражения и преобразовыввать. Хорошо, если всегда одна переменная, а если разные, и с разными типами? например: дата-время-датавремя-строка? Кончно преобразовать не проблема, но зачем лишние напряги? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 11:11 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
А в чем проблема, можно и так: SET TEXTMERGE ON TO MEMVAR sqlReq NOSHOW \SELECT curValue, type AS tp \FROM Globals \WHERE UPPER(name) = '<<UPPER(varName)>>' IF m.actidData = 1 \ORDER BY <<VarDateTime>> ELSE \ORDER BY <<VarDate>> ENDIF SET TEXTMERGE TO Здесь в переменную попадают только те строчки, которые обозначены слешем, а между ними любые проверки и контролы можешь писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 11:28 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
glamisDima T, 1. Если условие .f., то будет строка в которой ничего не написано. Перевод строки надо делать внутри вставляемой строки lcEnter = chr(13) + chr(10) Код: sql 1. 2. 3. 4.
glamis2. По преобразованиям: нать каждый раз помнить какого типа элементы выражения и преобразовыввать. Хорошо, если всегда одна переменная, а если разные, и с разными типами? например: дата-время-датавремя-строка? Кончно преобразовать не проблема, но зачем лишние напряги? Тип поля/переменной надо знать всегда, иначе проблемы могут вылезти где угодно и решать их будет достаточно сложно. Для облегчения жизни придумана венгерская нотация. Преобразовывать обычно все равно надо, например строка может быть полем таблицы и будет с кучей пробелов. С числами еще интереснее. Запусти Код: sql 1. 2. 3. 4. 5. 6. 7.
PS Как вариант, можно один раз написать функцию преобразования, которая определит тип исходного значения и преобразует в строку. В коде использовать эту функцию не вспоминая о типах. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 12:39 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
Dima T, Да все это понятно. Вопрос был в ветвлении внутри text. Все решилось set textmerge ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 12:50 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
А зачем писать условие внутри? У text..endtext есть ключевое слов Additive позволяющее писать текст в конец ранее созданной переменной Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Кроме того, можно в опции PRETEXT указать параметр 4, который автоматически исключит все пустые строки из переменной Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 15:06 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
ВладимирМ, pretext - понятно, я применяю 7 additive - понятно, но на мой взгляд, для ветвления стройнее смотрится set textmerge ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 17:19 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
glamisadditive - понятно, но на мой взгляд, для ветвления стройнее смотрится set textmerge На мой взгляд - нет. Использование в коде программы символов для печати/вывода, с моей точки зрения, дурной стиль программирования. Процесс подготовки данных, по возможности, не стоит смешивать с процессом вывода/отображения данных. Собственно, лично я вообще сформировал бы итоговую переменную из кусков прямым сложением. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 18:02 |
|
Text...Endtext
|
|||
---|---|---|---|
#18+
ВладимирМ, На самом деле первоначально это и было сложение строк, но в больших кусках формируемого текста не всегда видны проблемные места, да и приходится поддерживать структурированность текста. В конструкциях text и \ вроде лучше видно. Ну а что касается того что лучше: text, \, = или Store - дело вкуса. Я обычно стараюсь, чтоб было 1- компактно, 2 - наглядно и 3- чтоб законченный блок влезал на экран. В каждом случае есть свои преимущества. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2013, 11:10 |
|
|
start [/forum/topic.php?desktop=1&fid=41&tid=1583093]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 169ms |
0 / 0 |